From 0984461aeb32d7de6abf09ffbec17b9f619eb346 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 25 Sep 2017 08:53:25 -0400 Subject: Start decomp of easy_chat --- src/easy_chat.c | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 src/easy_chat.c (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c new file mode 100644 index 000000000..edfab86b7 --- /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; + } +} -- cgit v1.2.3 From cdfdd2a29a100e1cf3e070df24a28cf6d3e4667d Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 25 Sep 2017 17:22:51 -0400 Subject: sub_811A428 --- src/easy_chat.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index edfab86b7..8ee46e215 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; +} -- cgit v1.2.3 From b62b67e4284b2204ac575698f9199584fe484606 Mon Sep 17 00:00:00 2001 From: scnorton Date: Mon, 25 Sep 2017 17:30:49 -0400 Subject: sub_811A4D0; constants for ezchat task data offsets --- src/easy_chat.c | 66 +++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 8ee46e215..1ff0ccc33 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); +} -- cgit v1.2.3 From 0e75d957d675564977b2e442c16822bab390aa2c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 25 Sep 2017 19:57:44 -0400 Subject: Update offset comments in save block 1 --- src/easy_chat.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 1ff0ccc33..dd490ddf8 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); +//} + -- cgit v1.2.3 From 01d6114da230e8526b21cbd3ae449d87fc2ba548 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 19:26:14 -0400 Subject: easy_chat_input_maybe --- src/easy_chat.c | 183 +++++++++++++++++++++++++++++----------------------- src/lilycove_lady.c | 22 +++---- 2 files changed, 114 insertions(+), 91 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 24f1a2b57..0d02e0d5a 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 3b7ae49f2..356b1a4b7 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) -- cgit v1.2.3 From 46068c0a6fd520f9dd0823729c5b88b7ae021f59 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 19:34:19 -0400 Subject: sub_811A7E4 --- src/easy_chat.c | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 0d02e0d5a..c2da4dc8a 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*/ void sub_811A4D0(MainCallback); /*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); +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); +} -- cgit v1.2.3 From 85eb28ba42f035bbf5ee2e2ffd2fecee1bf55990 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 19:44:03 -0400 Subject: through sub_811A8A4 --- src/easy_chat.c | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index c2da4dc8a..de66fb9eb 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); +} -- cgit v1.2.3 From 1049cd670d115c114f616e9118bc0fc9fb5fac64 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 19:48:43 -0400 Subject: through sub_811A938 --- src/easy_chat.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index de66fb9eb..c1a68f4e2 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); +} -- cgit v1.2.3 From 881d222621a0f92d8548ba70bb1c5dbdfcf0555f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 20:37:03 -0400 Subject: sub_811A95C --- src/easy_chat.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index c1a68f4e2..6a04d6514 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; +} -- cgit v1.2.3 From 42c1164d721ad4fa8bd0583d142b8eea77724475 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 20:51:13 -0400 Subject: sub_811AAAC --- src/easy_chat.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 58 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 6a04d6514..26f1f08b0 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; +} -- cgit v1.2.3 From 293dfc4823d6c984adc221b40be4e3705a3fa65b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 2 Nov 2017 20:54:13 -0400 Subject: sub_811AB44 --- src/easy_chat.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 26f1f08b0..9b69f1d0a 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; +} -- cgit v1.2.3 From 6b84feaaf2ba492bef23a42c28603bbaa3ccd2e6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Nov 2017 13:19:06 -0500 Subject: nonmatching sub_811AB68 --- src/easy_chat.c | 282 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 277 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 9b69f1d0a..0ed5bdea9 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 -- cgit v1.2.3 From 75b07292c99bdae7efe539bbe797aa4c381c880e Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Wed, 28 Mar 2018 19:20:20 +0200 Subject: Translate first functions of learn move --- src/learn_move.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/learn_move.c (limited to 'src') diff --git a/src/learn_move.c b/src/learn_move.c new file mode 100644 index 000000000..3a1ac72f4 --- /dev/null +++ b/src/learn_move.c @@ -0,0 +1,83 @@ +#include "global.h" +#include "main.h" +#include "task.h" +#include "script.h" +#include "sprite.h" +#include "palette.h" +#include "menu.h" +#include "list_menu.h" +#include "malloc.h" +#include "field_screen.h" +#include "event_data.h" +#include "learn_move.h" + +extern void (*gFieldCallback)(void); +extern struct LearnMoveStruct *gUnknown_0203BC34; + +// Ew, just copied from poeruby... +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 + +void sub_8160624(void) //VBlankCB_LearnMove +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_8160638(void) //TeachMoveTutorMove +{ + ScriptContext2_Enable(); + CreateTask(sub_8160664, 0xA); + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); +} + +void sub_8160664(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(sub_81606A0); + gFieldCallback = sub_80AF168; + DestroyTask(taskId); + } +} + +void sub_81606A0(void) //CB2_InitLearnMove +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + + + //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->partyMon = 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); +} -- cgit v1.2.3 From 990784a6d91a9b119ff974e3594a7bd5070549fc Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Wed, 28 Mar 2018 21:45:35 +0200 Subject: Improve comments --- src/learn_move.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/learn_move.c b/src/learn_move.c index 3a1ac72f4..36bf76eff 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; -- cgit v1.2.3 From cfacd23248ba56f5bca30895154625a06761ab45 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Thu, 29 Mar 2018 11:56:10 +0200 Subject: Fix temporarily --- src/learn_move.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/learn_move.c b/src/learn_move.c index 36bf76eff..d75e0a460 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); } -- cgit v1.2.3 From 17b9f5d892ad34e4af3b407e2ee44a83506ee2f3 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Thu, 29 Mar 2018 15:46:10 +0200 Subject: Fix compile error --- src/learn_move.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/learn_move.c b/src/learn_move.c index d75e0a460..f83707624 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; +} +*/ -- cgit v1.2.3 From 09e29a5cf8695cf43fe8ac18004049b07a59ccc5 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Sun, 1 Apr 2018 18:22:09 +0200 Subject: Fix three functions to have the right checksum --- src/learn_move.c | 129 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 75 insertions(+), 54 deletions(-) (limited to 'src') diff --git a/src/learn_move.c b/src/learn_move.c index f83707624..faa73a2d0 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); +// } +// */ -- cgit v1.2.3 From b2e8ee836d6334e525df3163d7b018b64f68ec95 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Mon, 2 Apr 2018 20:06:40 +0200 Subject: sub_81607EC and sub_816082C --- src/learn_move.c | 98 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 74 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/learn_move.c b/src/learn_move.c index faa73a2d0..0f5063fae 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" +EWRAM_DATA u8 *gUnknown_0203BC34 = 0; +EWRAM_DATA u8 gUnknown_0203BC38[8] = {0}; + extern void (*gFieldCallback)(void); -extern struct LearnMoveStruct *gUnknown_0203BC34; +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"); +// +// //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"); // -// ListMenuInit(&gMultiuseListMenuTemplate, 0, 0); +// ((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(); + +} -- cgit v1.2.3 From 2f96282c7f56ae90bc62b2710c8430abd2b345f3 Mon Sep 17 00:00:00 2001 From: Edouard Veyrier Date: Tue, 3 Apr 2018 00:07:55 +0200 Subject: cleaner --- src/learn_move.c | 156 ++++++++++++++++++++++--------------------------------- 1 file changed, 63 insertions(+), 93 deletions(-) (limited to 'src') diff --git a/src/learn_move.c b/src/learn_move.c index 0f5063fae..addae6a38 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" -// ); -// } - -// 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); -// } +// Doesn't match +void sub_81606A0(void) //CB2_InitLearnMove +{ + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + + 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(); - } -- cgit v1.2.3 From 4b1e30434d9c86964bf9735a392f4b3c2d7b1dcd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 1 May 2018 19:47:11 -0400 Subject: Through sub_80D787C --- src/contest.c | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/tv.c | 4 +- 2 files changed, 198 insertions(+), 2 deletions(-) create mode 100644 src/contest.c (limited to 'src') diff --git a/src/contest.c b/src/contest.c new file mode 100644 index 000000000..08d4f9b57 --- /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 b7c2812fe..769bd5080 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) -- cgit v1.2.3 From ef29d17c4128b674897c056a37aa424b21afe35c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 1 May 2018 21:27:24 -0400 Subject: through sub_80D7B24 --- src/contest.c | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 08d4f9b57..2e61b4629 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; + } +} + -- cgit v1.2.3 From 4bf09504216c1c9668843cc93b5392cd1022a4c1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 May 2018 08:43:27 -0400 Subject: through sub_80D7DE8 --- src/contest.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- src/item.c | 2 ++ 2 files changed, 94 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 2e61b4629..2c56eb14c 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 a17599db9..0c60c417d 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; -- cgit v1.2.3 From f9230e80aa1fd32d0428af9b684dcf4395148fc3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 May 2018 19:59:00 -0400 Subject: through vblank_cb_battle --- src/contest.c | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 187 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 2c56eb14c..6d9bfe460 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); +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); -bool8 sub_80D7E44(u8 *); 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(); +} -- cgit v1.2.3 From 7d446a9ef7737874f772f7537de97a8b8be2d7d4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 3 May 2018 08:51:52 -0400 Subject: through sub_80D8490 --- src/contest.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 107 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 6d9bfe460..95efd62e0 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; +} -- cgit v1.2.3 From 210cedd077d175937b5b12930d6a1cce2a367166 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 3 May 2018 21:01:22 -0400 Subject: through sub_80D883C --- src/contest.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 80 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 95efd62e0..4ff6cd4d3 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); +} -- cgit v1.2.3 From f05acd88d57f6059d0cb479312bf11ffaa9774c5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 3 May 2018 22:29:53 -0400 Subject: sub_80D8A88 --- src/contest.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 109 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 4ff6cd4d3..6d4fbae4f 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; + } +} -- cgit v1.2.3 From e6cca1523286e9f730db0ed36b9945047bde7bc6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 4 May 2018 18:59:59 -0400 Subject: sub_80D8B38 --- src/contest.c | 757 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 756 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 6d4fbae4f..7ac548a9c 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; + } +} -- cgit v1.2.3 From e8bb464de91bf4abf4998d7700ca44e0e4fd39cd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 7 May 2018 19:46:48 -0400 Subject: through sub_80DA4F4 --- src/contest.c | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 207 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 7ac548a9c..8bf381607 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; +} -- cgit v1.2.3 From f6fbecbc4124dead542bd6ab2a4461d3f4bb3151 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 7 May 2018 20:49:23 -0400 Subject: through sub_80DA874 --- src/contest.c | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 145 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 8bf381607..ac3f120a3 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(); +} -- cgit v1.2.3 From 5efe8f3a0d0db0228fd0980c90013a4602c731b3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 8 May 2018 19:00:23 -0400 Subject: through sub_80DAB8C --- src/contest.c | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 156 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index ac3f120a3..bd9fc0403 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); +} -- cgit v1.2.3 From 7fdebe0d15754d315386a5bb308d5b7a2eaf648f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 10 May 2018 17:54:30 -0400 Subject: through sub_80DAE0C --- 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 +- 19 files changed, 307 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index e956fd44f..2316b9759 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 0a8bf3ed7..9ef45020d 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 70eebed85..55845f2d1 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 d1a18e38f..7552d4872 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 777b4846f..e5d97be30 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 975c72a94..2f4cdc856 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 bd9fc0403..82547e428 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 fb288bf4a..1d4165d75 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 95fafc17b..060915fa6 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 975fef3ae..319d167fc 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 a1917ed24..37aa20950 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 59b1622eb..1782e9af8 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 9c1e02947..aa6945161 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 f77b7c38c..bf3e9aeee 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 4cb2eab49..eb48ab15a 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 db5935fc3..a16401fa2 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 eacfd2a1f..a902844e8 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 4b6e682bd..13d522f10 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 4f9241b21..88be4e4a1 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\ -- cgit v1.2.3 From 508a8e51824e4d9d09a5122576c3b69f43cb2cbf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 10 May 2018 18:16:58 -0400 Subject: through sub_80DAFA0 --- src/contest.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 82547e428..18e66714e 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); +} -- cgit v1.2.3 From 9bee601b163ff9fcfebba6021ea162880b6fed92 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 10 May 2018 19:28:52 -0400 Subject: through sub_80DB174 --- src/contest.c | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 111 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 18e66714e..1ce90fd45 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; +} -- cgit v1.2.3 From c15b50ac686632130512de37d01037bff6e10cd2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 11 May 2018 08:44:21 -0400 Subject: through prints_contest_move_description --- src/contest.c | 88 +++++++++++++++++++++++++++++++++++++++++++- src/pokemon_summary_screen.c | 17 +-------- 2 files changed, 87 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 1ce90fd45..b4e71d82b 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 bf3e9aeee..ee0a7f288 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]; -- cgit v1.2.3 From 8d0da7d8e006beda6c72c437545bca9f20086b28 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 11 May 2018 09:41:32 -0400 Subject: Propagate ASM_DIRECT --> NAKED renaming --- src/field_effect.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/field_effect.c b/src/field_effect.c index 6783473eb..692090779 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\ -- cgit v1.2.3 From 5539e282a39c34a278d1ea2fdc53ee46ffe154d5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 11 May 2018 10:51:38 -0400 Subject: through sub_80DB798 --- src/contest.c | 234 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 181 insertions(+), 53 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index b4e71d82b..4303c56ca 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; } -- cgit v1.2.3 From e3a82bd2c51054511da14e325cea104512e8a4ea Mon Sep 17 00:00:00 2001 From: MCboy Date: Thu, 19 Jul 2018 21:18:09 +0430 Subject: decompile player_field_avatar.s --- src/player_field_effect.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/player_field_effect.c (limited to 'src') diff --git a/src/player_field_effect.c b/src/player_field_effect.c new file mode 100644 index 000000000..b0d703e25 --- /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(); + } + } + } +} -- cgit v1.2.3 From a8f9adeaf54c855f4afdd23257df75f6270733fb Mon Sep 17 00:00:00 2001 From: MCboy Date: Thu, 19 Jul 2018 21:22:35 +0430 Subject: decompile player_field_avatar --- src/field_player_avatar.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/field_player_avatar.c (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c new file mode 100644 index 000000000..b0d703e25 --- /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(); + } + } + } +} -- cgit v1.2.3 From 416db8e75106d6d7355e706904922a4248708de5 Mon Sep 17 00:00:00 2001 From: MCboy Date: Thu, 19 Jul 2018 21:23:45 +0430 Subject: oops --- src/player_field_effect.c | 46 ---------------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 src/player_field_effect.c (limited to 'src') diff --git a/src/player_field_effect.c b/src/player_field_effect.c deleted file mode 100644 index b0d703e25..000000000 --- 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(); - } - } - } -} -- cgit v1.2.3 From 43fa9da52a4a204d6e75640b17b2416648f1ddc0 Mon Sep 17 00:00:00 2001 From: MCboy Date: Fri, 20 Jul 2018 03:44:20 +0430 Subject: decompile more code 1 non matching need help --- src/field_player_avatar.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index b0d703e25..191fc8aa4 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; +} -- cgit v1.2.3 From 201fb6f818e8c3a380bfc04edb62d6e9749b4c1b Mon Sep 17 00:00:00 2001 From: MCboy Date: Sat, 21 Jul 2018 03:06:40 +0430 Subject: ported code over from pokeruby --- src/field_player_avatar.c | 187 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 191fc8aa4..81e797676 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; + } +} -- cgit v1.2.3 From 82d88479ce94d79515c5152e669dbdc4acd5b9f4 Mon Sep 17 00:00:00 2001 From: MCboy Date: Tue, 24 Jul 2018 16:59:52 +0430 Subject: 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 | 363 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 355 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 81e797676..1be9ab73e 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" - -extern bool8 (*const gUnknown_08497444[])(void); -extern bool8 (*const gUnknown_084973FC[])(u8); - +#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" + +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) } } } - +#ifdef NONMATCHING +bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction) +{ + 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 *eventObject, u8 direction) +bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction) { - asm_unified("push {r4-r6,lr}\n\ + 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; + } + } +} -- cgit v1.2.3 From 94a5f8d5291eb42febbf689cea0e8dec357a0b90 Mon Sep 17 00:00:00 2001 From: MCboy Date: Wed, 25 Jul 2018 17:18:49 +0430 Subject: made file better ? --- src/field_player_avatar.c | 110 +++++++++++++--------------------------------- 1 file changed, 30 insertions(+), 80 deletions(-) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 1be9ab73e..a8eb835a3 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) - { - EventObjectClearHeldMovement(playerEventObj); - return FALSE; - } - else if(playerEventObj->movementDirection != direction) + if (direction == DIR_NONE) { return TRUE; } - else if(sub_808B028(direction) == FALSE) + + if (playerEventObj->movementDirection != r5) { EventObjectClearHeldMovement(playerEventObj); return FALSE; } - else + + if (!sub_808B028(r6)) { - return TRUE; + EventObjectClearHeldMovement(playerEventObj); + return FALSE; } } - 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) -- cgit v1.2.3 From 3a15012085227ff5986c0e73d11c19b827794947 Mon Sep 17 00:00:00 2001 From: MCboy Date: Wed, 25 Jul 2018 17:28:25 +0430 Subject: Update field_player_avatar.c --- src/field_player_avatar.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index a8eb835a3..9cdbf9956 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; } -- cgit v1.2.3 From 6c365fdc94f0adca78ce3533745b75f389ccc9f2 Mon Sep 17 00:00:00 2001 From: MCboy Date: Wed, 25 Jul 2018 17:47:04 +0430 Subject: Update field_player_avatar.c --- src/field_player_avatar.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 9cdbf9956..3289c1985 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) { -- cgit v1.2.3 From d5825230e57a187210ff4bb070dd723f5ea6ef6b Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sat, 28 Jul 2018 18:11:28 +0100 Subject: Merge "brendan" frames into sprite sheets --- src/data/field_event_obj/event_object_graphics.h | 91 +++--------------------- 1 file changed, 8 insertions(+), 83 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index b226b066a..407bc20e0 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -1,24 +1,8 @@ #ifndef GUARD_EVENT_OBJECT_GFX_H #define GUARD_EVENT_OBJECT_GFX_H -const u32 gEventObjectPic_BrendanNormal_0[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/00.4bpp"); -const u32 gEventObjectPic_BrendanNormal_1[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/01.4bpp"); -const u32 gEventObjectPic_BrendanNormal_2[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/02.4bpp"); -const u32 gEventObjectPic_BrendanNormal_3[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/03.4bpp"); -const u32 gEventObjectPic_BrendanNormal_4[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/04.4bpp"); -const u32 gEventObjectPic_BrendanNormal_5[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/05.4bpp"); -const u32 gEventObjectPic_BrendanNormal_6[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/06.4bpp"); -const u32 gEventObjectPic_BrendanNormal_7[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/07.4bpp"); -const u32 gEventObjectPic_BrendanNormal_8[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/08.4bpp"); -const u32 gEventObjectPic_BrendanNormal_9[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/09.4bpp"); -const u32 gEventObjectPic_BrendanNormal_10[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/10.4bpp"); -const u32 gEventObjectPic_BrendanNormal_11[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/11.4bpp"); -const u32 gEventObjectPic_BrendanNormal_12[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/12.4bpp"); -const u32 gEventObjectPic_BrendanNormal_13[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/13.4bpp"); -const u32 gEventObjectPic_BrendanNormal_14[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/14.4bpp"); -const u32 gEventObjectPic_BrendanNormal_15[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/15.4bpp"); -const u32 gEventObjectPic_BrendanNormal_16[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/16.4bpp"); -const u32 gEventObjectPic_BrendanNormal_17[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/normal/17.4bpp"); +const u32 gEventObjectPic_BrendanNormal[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/walking.4bpp"); +const u32 gEventObjectPic_BrendanRunning[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/running.4bpp"); const u16 gEventObjectPalette8[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_08.gbapal"); const u32 gEventObjectPic_RubySapphireBrendan_0[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/00.4bpp"); const u32 gEventObjectPic_RubySapphireBrendan_1[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/01.4bpp"); @@ -56,71 +40,12 @@ const u16 NullPalette_8499BD8[16] = {}; const u16 NullPalette_8499BF8[16] = {}; const u16 gEventObjectPalette9[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_09.gbapal"); const u16 gEventObjectPalette10[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_10.gbapal"); -const u32 gEventObjectPic_BrendanFieldMove_0[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/field_move/0.4bpp"); -const u32 gEventObjectPic_BrendanFieldMove_1[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/field_move/1.4bpp"); -const u32 gEventObjectPic_BrendanFieldMove_2[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/field_move/2.4bpp"); -const u32 gEventObjectPic_BrendanFieldMove_3[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/field_move/3.4bpp"); -const u32 gEventObjectPic_BrendanFieldMove_4[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/field_move/4.4bpp"); -const u32 gEventObjectPic_BrendanSurfing_0[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/surfing/0.4bpp"); -const u32 gEventObjectPic_BrendanSurfing_3[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/surfing/3.4bpp"); -const u32 gEventObjectPic_BrendanSurfing_1[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/surfing/1.4bpp"); -const u32 gEventObjectPic_BrendanSurfing_4[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/surfing/4.4bpp"); -const u32 gEventObjectPic_BrendanSurfing_2[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/surfing/2.4bpp"); -const u32 gEventObjectPic_BrendanSurfing_5[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/surfing/5.4bpp"); -const u32 gEventObjectPic_BrendanMachBike_0[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike/0.4bpp"); -const u32 gEventObjectPic_BrendanMachBike_1[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike/1.4bpp"); -const u32 gEventObjectPic_BrendanMachBike_2[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike/2.4bpp"); -const u32 gEventObjectPic_BrendanMachBike_3[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike/3.4bpp"); -const u32 gEventObjectPic_BrendanMachBike_4[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike/4.4bpp"); -const u32 gEventObjectPic_BrendanMachBike_5[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike/5.4bpp"); -const u32 gEventObjectPic_BrendanMachBike_6[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike/6.4bpp"); -const u32 gEventObjectPic_BrendanMachBike_7[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike/7.4bpp"); -const u32 gEventObjectPic_BrendanMachBike_8[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike/8.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_0[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/00.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_1[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/01.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_2[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/02.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_3[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/03.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_4[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/04.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_5[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/05.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_6[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/06.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_7[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/07.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_8[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/08.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_9[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/09.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_10[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/10.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_11[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/11.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_12[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/12.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_13[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/13.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_14[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/14.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_15[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/15.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_16[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/16.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_17[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/17.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_18[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/18.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_19[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/19.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_20[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/20.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_21[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/21.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_22[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/22.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_23[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/23.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_24[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/24.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_25[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/25.4bpp"); -const u32 gEventObjectPic_BrendanAcroBike_26[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike/26.4bpp"); -const u32 gEventObjectPic_BrendanFishing_0[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/00.4bpp"); -const u32 gEventObjectPic_BrendanFishing_1[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/01.4bpp"); -const u32 gEventObjectPic_BrendanFishing_2[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/02.4bpp"); -const u32 gEventObjectPic_BrendanFishing_3[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/03.4bpp"); -const u32 gEventObjectPic_BrendanFishing_4[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/04.4bpp"); -const u32 gEventObjectPic_BrendanFishing_5[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/05.4bpp"); -const u32 gEventObjectPic_BrendanFishing_6[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/06.4bpp"); -const u32 gEventObjectPic_BrendanFishing_7[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/07.4bpp"); -const u32 gEventObjectPic_BrendanFishing_8[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/08.4bpp"); -const u32 gEventObjectPic_BrendanFishing_9[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/09.4bpp"); -const u32 gEventObjectPic_BrendanFishing_10[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/10.4bpp"); -const u32 gEventObjectPic_BrendanFishing_11[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing/11.4bpp"); -const u32 gEventObjectPic_BrendanWatering_0[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/watering/0.4bpp"); -const u32 gEventObjectPic_BrendanWatering_3[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/watering/3.4bpp"); -const u32 gEventObjectPic_BrendanWatering_1[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/watering/1.4bpp"); -const u32 gEventObjectPic_BrendanWatering_4[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/watering/4.4bpp"); -const u32 gEventObjectPic_BrendanWatering_2[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/watering/2.4bpp"); -const u32 gEventObjectPic_BrendanWatering_5[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/watering/5.4bpp"); +const u32 gEventObjectPic_BrendanFieldMove[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/field_move.4bpp"); +const u32 gEventObjectPic_BrendanSurfing[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/surfing.4bpp"); +const u32 gEventObjectPic_BrendanMachBike[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/mach_bike.4bpp"); +const u32 gEventObjectPic_BrendanAcroBike[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/acro_bike.4bpp"); +const u32 gEventObjectPic_BrendanFishing[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/fishing.4bpp"); +const u32 gEventObjectPic_BrendanWatering[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/watering.4bpp"); const u32 gEventObjectPic_BrendanDecorating[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/decorating.4bpp"); const u32 gEventObjectPic_MayDecorating[] = INCBIN_U32("graphics/event_objects/pics/people/may/decorating.4bpp"); const u32 gEventObjectPic_BrendanUnderwater_0[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/underwater/0.4bpp"); -- cgit v1.2.3 From 52aa9cedcf34c3cadcf163722130d9800f99caa7 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 29 Jul 2018 17:29:36 +0100 Subject: Merge May frames into sprite sheets Plus fix Brendan's surfing and watering frame order. --- src/data/field_event_obj/event_object_graphics.h | 101 +++-------------------- 1 file changed, 10 insertions(+), 91 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index 407bc20e0..42385f0c4 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -48,33 +48,11 @@ const u32 gEventObjectPic_BrendanFishing[] = INCBIN_U32("graphics/event_objects/ const u32 gEventObjectPic_BrendanWatering[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/watering.4bpp"); const u32 gEventObjectPic_BrendanDecorating[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/decorating.4bpp"); const u32 gEventObjectPic_MayDecorating[] = INCBIN_U32("graphics/event_objects/pics/people/may/decorating.4bpp"); -const u32 gEventObjectPic_BrendanUnderwater_0[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/underwater/0.4bpp"); -const u32 gEventObjectPic_BrendanUnderwater_1[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/underwater/1.4bpp"); -const u32 gEventObjectPic_BrendanUnderwater_2[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/underwater/2.4bpp"); -const u32 gEventObjectPic_BrendanUnderwater_3[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/underwater/3.4bpp"); -const u32 gEventObjectPic_MayUnderwater_0[] = INCBIN_U32("graphics/event_objects/pics/people/may/underwater/0.4bpp"); -const u32 gEventObjectPic_MayUnderwater_1[] = INCBIN_U32("graphics/event_objects/pics/people/may/underwater/1.4bpp"); -const u32 gEventObjectPic_MayUnderwater_2[] = INCBIN_U32("graphics/event_objects/pics/people/may/underwater/2.4bpp"); -const u32 gEventObjectPic_MayUnderwater_3[] = INCBIN_U32("graphics/event_objects/pics/people/may/underwater/3.4bpp"); +const u32 gEventObjectPic_BrendanUnderwater[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/underwater.4bpp"); +const u32 gEventObjectPic_MayUnderwater[] = INCBIN_U32("graphics/event_objects/pics/people/may/underwater.4bpp"); const u16 gEventObjectPalette11[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_11.gbapal"); -const u32 gEventObjectPic_MayNormal_0[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/00.4bpp"); -const u32 gEventObjectPic_MayNormal_1[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/01.4bpp"); -const u32 gEventObjectPic_MayNormal_2[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/02.4bpp"); -const u32 gEventObjectPic_MayNormal_3[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/03.4bpp"); -const u32 gEventObjectPic_MayNormal_4[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/04.4bpp"); -const u32 gEventObjectPic_MayNormal_5[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/05.4bpp"); -const u32 gEventObjectPic_MayNormal_6[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/06.4bpp"); -const u32 gEventObjectPic_MayNormal_7[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/07.4bpp"); -const u32 gEventObjectPic_MayNormal_8[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/08.4bpp"); -const u32 gEventObjectPic_MayNormal_9[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/09.4bpp"); -const u32 gEventObjectPic_MayNormal_10[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/10.4bpp"); -const u32 gEventObjectPic_MayNormal_11[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/11.4bpp"); -const u32 gEventObjectPic_MayNormal_12[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/12.4bpp"); -const u32 gEventObjectPic_MayNormal_13[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/13.4bpp"); -const u32 gEventObjectPic_MayNormal_14[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/14.4bpp"); -const u32 gEventObjectPic_MayNormal_15[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/15.4bpp"); -const u32 gEventObjectPic_MayNormal_16[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/16.4bpp"); -const u32 gEventObjectPic_MayNormal_17[] = INCBIN_U32("graphics/event_objects/pics/people/may/normal/17.4bpp"); +const u32 gEventObjectPic_MayNormal[] = INCBIN_U32("graphics/event_objects/pics/people/may/walking.4bpp"); +const u32 gEventObjectPic_MayRunning[] = INCBIN_U32("graphics/event_objects/pics/people/may/running.4bpp"); const u16 gEventObjectPalette17[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_17.gbapal"); const u16 gEventObjectPalette18[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_18.gbapal"); const u32 gEventObjectPic_RubySapphireMay_0[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/00.4bpp"); @@ -111,71 +89,12 @@ const u16 NullPalette_84A5638[16] = {}; const u16 NullPalette_84A5658[16] = {}; const u16 NullPalette_84A5678[16] = {}; const u16 NullPalette_84A5698[16] = {}; -const u32 gEventObjectPic_MayMachBike_0[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike/0.4bpp"); -const u32 gEventObjectPic_MayMachBike_1[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike/1.4bpp"); -const u32 gEventObjectPic_MayMachBike_2[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike/2.4bpp"); -const u32 gEventObjectPic_MayMachBike_3[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike/3.4bpp"); -const u32 gEventObjectPic_MayMachBike_4[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike/4.4bpp"); -const u32 gEventObjectPic_MayMachBike_5[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike/5.4bpp"); -const u32 gEventObjectPic_MayMachBike_6[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike/6.4bpp"); -const u32 gEventObjectPic_MayMachBike_7[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike/7.4bpp"); -const u32 gEventObjectPic_MayMachBike_8[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike/8.4bpp"); -const u32 gEventObjectPic_MayAcroBike_0[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/00.4bpp"); -const u32 gEventObjectPic_MayAcroBike_1[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/01.4bpp"); -const u32 gEventObjectPic_MayAcroBike_2[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/02.4bpp"); -const u32 gEventObjectPic_MayAcroBike_3[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/03.4bpp"); -const u32 gEventObjectPic_MayAcroBike_4[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/04.4bpp"); -const u32 gEventObjectPic_MayAcroBike_5[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/05.4bpp"); -const u32 gEventObjectPic_MayAcroBike_6[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/06.4bpp"); -const u32 gEventObjectPic_MayAcroBike_7[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/07.4bpp"); -const u32 gEventObjectPic_MayAcroBike_8[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/08.4bpp"); -const u32 gEventObjectPic_MayAcroBike_9[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/09.4bpp"); -const u32 gEventObjectPic_MayAcroBike_10[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/10.4bpp"); -const u32 gEventObjectPic_MayAcroBike_11[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/11.4bpp"); -const u32 gEventObjectPic_MayAcroBike_12[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/12.4bpp"); -const u32 gEventObjectPic_MayAcroBike_13[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/13.4bpp"); -const u32 gEventObjectPic_MayAcroBike_14[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/14.4bpp"); -const u32 gEventObjectPic_MayAcroBike_15[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/15.4bpp"); -const u32 gEventObjectPic_MayAcroBike_16[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/16.4bpp"); -const u32 gEventObjectPic_MayAcroBike_17[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/17.4bpp"); -const u32 gEventObjectPic_MayAcroBike_18[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/18.4bpp"); -const u32 gEventObjectPic_MayAcroBike_19[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/19.4bpp"); -const u32 gEventObjectPic_MayAcroBike_20[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/20.4bpp"); -const u32 gEventObjectPic_MayAcroBike_21[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/21.4bpp"); -const u32 gEventObjectPic_MayAcroBike_22[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/22.4bpp"); -const u32 gEventObjectPic_MayAcroBike_23[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/23.4bpp"); -const u32 gEventObjectPic_MayAcroBike_24[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/24.4bpp"); -const u32 gEventObjectPic_MayAcroBike_25[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/25.4bpp"); -const u32 gEventObjectPic_MayAcroBike_26[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike/26.4bpp"); -const u32 gEventObjectPic_MaySurfing_0[] = INCBIN_U32("graphics/event_objects/pics/people/may/surfing/0.4bpp"); -const u32 gEventObjectPic_MaySurfing_3[] = INCBIN_U32("graphics/event_objects/pics/people/may/surfing/3.4bpp"); -const u32 gEventObjectPic_MaySurfing_1[] = INCBIN_U32("graphics/event_objects/pics/people/may/surfing/1.4bpp"); -const u32 gEventObjectPic_MaySurfing_4[] = INCBIN_U32("graphics/event_objects/pics/people/may/surfing/4.4bpp"); -const u32 gEventObjectPic_MaySurfing_2[] = INCBIN_U32("graphics/event_objects/pics/people/may/surfing/2.4bpp"); -const u32 gEventObjectPic_MaySurfing_5[] = INCBIN_U32("graphics/event_objects/pics/people/may/surfing/5.4bpp"); -const u32 gEventObjectPic_MayFieldMove_0[] = INCBIN_U32("graphics/event_objects/pics/people/may/field_move/0.4bpp"); -const u32 gEventObjectPic_MayFieldMove_1[] = INCBIN_U32("graphics/event_objects/pics/people/may/field_move/1.4bpp"); -const u32 gEventObjectPic_MayFieldMove_2[] = INCBIN_U32("graphics/event_objects/pics/people/may/field_move/2.4bpp"); -const u32 gEventObjectPic_MayFieldMove_3[] = INCBIN_U32("graphics/event_objects/pics/people/may/field_move/3.4bpp"); -const u32 gEventObjectPic_MayFieldMove_4[] = INCBIN_U32("graphics/event_objects/pics/people/may/field_move/4.4bpp"); -const u32 gEventObjectPic_MayFishing_0[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/00.4bpp"); -const u32 gEventObjectPic_MayFishing_1[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/01.4bpp"); -const u32 gEventObjectPic_MayFishing_2[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/02.4bpp"); -const u32 gEventObjectPic_MayFishing_3[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/03.4bpp"); -const u32 gEventObjectPic_MayFishing_4[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/04.4bpp"); -const u32 gEventObjectPic_MayFishing_5[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/05.4bpp"); -const u32 gEventObjectPic_MayFishing_6[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/06.4bpp"); -const u32 gEventObjectPic_MayFishing_7[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/07.4bpp"); -const u32 gEventObjectPic_MayFishing_8[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/08.4bpp"); -const u32 gEventObjectPic_MayFishing_9[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/09.4bpp"); -const u32 gEventObjectPic_MayFishing_10[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/10.4bpp"); -const u32 gEventObjectPic_MayFishing_11[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing/11.4bpp"); -const u32 gEventObjectPic_MayWatering_0[] = INCBIN_U32("graphics/event_objects/pics/people/may/watering/0.4bpp"); -const u32 gEventObjectPic_MayWatering_3[] = INCBIN_U32("graphics/event_objects/pics/people/may/watering/3.4bpp"); -const u32 gEventObjectPic_MayWatering_1[] = INCBIN_U32("graphics/event_objects/pics/people/may/watering/1.4bpp"); -const u32 gEventObjectPic_MayWatering_4[] = INCBIN_U32("graphics/event_objects/pics/people/may/watering/4.4bpp"); -const u32 gEventObjectPic_MayWatering_2[] = INCBIN_U32("graphics/event_objects/pics/people/may/watering/2.4bpp"); -const u32 gEventObjectPic_MayWatering_5[] = INCBIN_U32("graphics/event_objects/pics/people/may/watering/5.4bpp"); +const u32 gEventObjectPic_MayMachBike[] = INCBIN_U32("graphics/event_objects/pics/people/may/mach_bike.4bpp"); +const u32 gEventObjectPic_MayAcroBike[] = INCBIN_U32("graphics/event_objects/pics/people/may/acro_bike.4bpp"); +const u32 gEventObjectPic_MaySurfing[] = INCBIN_U32("graphics/event_objects/pics/people/may/surfing.4bpp"); +const u32 gEventObjectPic_MayFieldMove[] = INCBIN_U32("graphics/event_objects/pics/people/may/field_move.4bpp"); +const u32 gEventObjectPic_MayFishing[] = INCBIN_U32("graphics/event_objects/pics/people/may/fishing.4bpp"); +const u32 gEventObjectPic_MayWatering[] = INCBIN_U32("graphics/event_objects/pics/people/may/watering.4bpp"); const u16 gEventObjectPalette0[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_00.gbapal"); const u16 gEventObjectPalette1[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_01.gbapal"); const u16 gEventObjectPalette2[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_02.gbapal"); -- cgit v1.2.3 From 5917f7d1080117021279aa99ac4588a334aee743 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Thu, 2 Aug 2018 00:34:28 +0100 Subject: Merge frontier brains, team magma and team aqua frames --- src/data/field_event_obj/event_object_graphics.h | 130 +++-------------------- 1 file changed, 13 insertions(+), 117 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index 42385f0c4..ccdf842fb 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -699,42 +699,10 @@ const u32 gEventObjectPic_Man7_5[] = INCBIN_U32("graphics/event_objects/pics/peo const u32 gEventObjectPic_Man7_6[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/6.4bpp"); const u32 gEventObjectPic_Man7_7[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/7.4bpp"); const u32 gEventObjectPic_Man7_8[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/8.4bpp"); -const u32 gEventObjectPic_AquaMemberM_0[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_m/0.4bpp"); -const u32 gEventObjectPic_AquaMemberM_1[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_m/1.4bpp"); -const u32 gEventObjectPic_AquaMemberM_2[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_m/2.4bpp"); -const u32 gEventObjectPic_AquaMemberM_3[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_m/3.4bpp"); -const u32 gEventObjectPic_AquaMemberM_4[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_m/4.4bpp"); -const u32 gEventObjectPic_AquaMemberM_5[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_m/5.4bpp"); -const u32 gEventObjectPic_AquaMemberM_6[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_m/6.4bpp"); -const u32 gEventObjectPic_AquaMemberM_7[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_m/7.4bpp"); -const u32 gEventObjectPic_AquaMemberM_8[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_m/8.4bpp"); -const u32 gEventObjectPic_AquaMemberF_0[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_f/0.4bpp"); -const u32 gEventObjectPic_AquaMemberF_1[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_f/1.4bpp"); -const u32 gEventObjectPic_AquaMemberF_2[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_f/2.4bpp"); -const u32 gEventObjectPic_AquaMemberF_3[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_f/3.4bpp"); -const u32 gEventObjectPic_AquaMemberF_4[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_f/4.4bpp"); -const u32 gEventObjectPic_AquaMemberF_5[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_f/5.4bpp"); -const u32 gEventObjectPic_AquaMemberF_6[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_f/6.4bpp"); -const u32 gEventObjectPic_AquaMemberF_7[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_f/7.4bpp"); -const u32 gEventObjectPic_AquaMemberF_8[] = INCBIN_U32("graphics/event_objects/pics/people/aqua_member_f/8.4bpp"); -const u32 gEventObjectPic_MagmaMemberM_0[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_m/0.4bpp"); -const u32 gEventObjectPic_MagmaMemberM_1[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_m/1.4bpp"); -const u32 gEventObjectPic_MagmaMemberM_2[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_m/2.4bpp"); -const u32 gEventObjectPic_MagmaMemberM_3[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_m/3.4bpp"); -const u32 gEventObjectPic_MagmaMemberM_4[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_m/4.4bpp"); -const u32 gEventObjectPic_MagmaMemberM_5[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_m/5.4bpp"); -const u32 gEventObjectPic_MagmaMemberM_6[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_m/6.4bpp"); -const u32 gEventObjectPic_MagmaMemberM_7[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_m/7.4bpp"); -const u32 gEventObjectPic_MagmaMemberM_8[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_m/8.4bpp"); -const u32 gEventObjectPic_MagmaMemberF_0[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_f/0.4bpp"); -const u32 gEventObjectPic_MagmaMemberF_1[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_f/1.4bpp"); -const u32 gEventObjectPic_MagmaMemberF_2[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_f/2.4bpp"); -const u32 gEventObjectPic_MagmaMemberF_3[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_f/3.4bpp"); -const u32 gEventObjectPic_MagmaMemberF_4[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_f/4.4bpp"); -const u32 gEventObjectPic_MagmaMemberF_5[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_f/5.4bpp"); -const u32 gEventObjectPic_MagmaMemberF_6[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_f/6.4bpp"); -const u32 gEventObjectPic_MagmaMemberF_7[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_f/7.4bpp"); -const u32 gEventObjectPic_MagmaMemberF_8[] = INCBIN_U32("graphics/event_objects/pics/people/magma_member_f/8.4bpp"); +const u32 gEventObjectPic_AquaMemberM[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/aqua_member_m.4bpp"); +const u32 gEventObjectPic_AquaMemberF[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/aqua_member_f.4bpp"); +const u32 gEventObjectPic_MagmaMemberM[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/magma_member_m.4bpp"); +const u32 gEventObjectPic_MagmaMemberF[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/magma_member_f.4bpp"); const u32 gEventObjectPic_Sidney_0[] = INCBIN_U32("graphics/event_objects/pics/people/sidney/0.4bpp"); const u32 gEventObjectPic_Sidney_1[] = INCBIN_U32("graphics/event_objects/pics/people/sidney/1.4bpp"); const u32 gEventObjectPic_Sidney_2[] = INCBIN_U32("graphics/event_objects/pics/people/sidney/2.4bpp"); @@ -837,24 +805,8 @@ const u32 gEventObjectPic_ContestOldMan_5[] = INCBIN_U32("graphics/event_objects const u32 gEventObjectPic_ContestOldMan_6[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/6.4bpp"); const u32 gEventObjectPic_ContestOldMan_7[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/7.4bpp"); const u32 gEventObjectPic_ContestOldMan_8[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/8.4bpp"); -const u32 gEventObjectPic_Archie_0[] = INCBIN_U32("graphics/event_objects/pics/people/archie/0.4bpp"); -const u32 gEventObjectPic_Archie_1[] = INCBIN_U32("graphics/event_objects/pics/people/archie/1.4bpp"); -const u32 gEventObjectPic_Archie_2[] = INCBIN_U32("graphics/event_objects/pics/people/archie/2.4bpp"); -const u32 gEventObjectPic_Archie_3[] = INCBIN_U32("graphics/event_objects/pics/people/archie/3.4bpp"); -const u32 gEventObjectPic_Archie_4[] = INCBIN_U32("graphics/event_objects/pics/people/archie/4.4bpp"); -const u32 gEventObjectPic_Archie_5[] = INCBIN_U32("graphics/event_objects/pics/people/archie/5.4bpp"); -const u32 gEventObjectPic_Archie_6[] = INCBIN_U32("graphics/event_objects/pics/people/archie/6.4bpp"); -const u32 gEventObjectPic_Archie_7[] = INCBIN_U32("graphics/event_objects/pics/people/archie/7.4bpp"); -const u32 gEventObjectPic_Archie_8[] = INCBIN_U32("graphics/event_objects/pics/people/archie/8.4bpp"); -const u32 gEventObjectPic_Maxie_0[] = INCBIN_U32("graphics/event_objects/pics/people/maxie/0.4bpp"); -const u32 gEventObjectPic_Maxie_1[] = INCBIN_U32("graphics/event_objects/pics/people/maxie/1.4bpp"); -const u32 gEventObjectPic_Maxie_2[] = INCBIN_U32("graphics/event_objects/pics/people/maxie/2.4bpp"); -const u32 gEventObjectPic_Maxie_3[] = INCBIN_U32("graphics/event_objects/pics/people/maxie/3.4bpp"); -const u32 gEventObjectPic_Maxie_4[] = INCBIN_U32("graphics/event_objects/pics/people/maxie/4.4bpp"); -const u32 gEventObjectPic_Maxie_5[] = INCBIN_U32("graphics/event_objects/pics/people/maxie/5.4bpp"); -const u32 gEventObjectPic_Maxie_6[] = INCBIN_U32("graphics/event_objects/pics/people/maxie/6.4bpp"); -const u32 gEventObjectPic_Maxie_7[] = INCBIN_U32("graphics/event_objects/pics/people/maxie/7.4bpp"); -const u32 gEventObjectPic_Maxie_8[] = INCBIN_U32("graphics/event_objects/pics/people/maxie/8.4bpp"); +const u32 gEventObjectPic_Archie[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/archie.4bpp"); +const u32 gEventObjectPic_Maxie[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/maxie.4bpp"); const u32 gEventObjectPic_KyogreFront_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre_front/0.4bpp"); const u32 gEventObjectPic_KyogreFront_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre_front/1.4bpp"); const u32 gEventObjectPic_KyogreSide_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre_side/0.4bpp"); @@ -1440,69 +1392,13 @@ const u32 gEventObjectPic_BirthIslandStone[] = INCBIN_U32("graphics/event_object const u16 gEventObjectPalette29[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_29.gbapal"); const u32 gEventObjectPic_Deoxys_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/deoxys/0.4bpp"); const u32 gEventObjectPic_Deoxys_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/deoxys/1.4bpp"); -const u32 gEventObjectPic_Anabel_0[] = INCBIN_U32("graphics/event_objects/pics/people/anabel/0.4bpp"); -const u32 gEventObjectPic_Anabel_1[] = INCBIN_U32("graphics/event_objects/pics/people/anabel/1.4bpp"); -const u32 gEventObjectPic_Anabel_2[] = INCBIN_U32("graphics/event_objects/pics/people/anabel/2.4bpp"); -const u32 gEventObjectPic_Anabel_3[] = INCBIN_U32("graphics/event_objects/pics/people/anabel/3.4bpp"); -const u32 gEventObjectPic_Anabel_4[] = INCBIN_U32("graphics/event_objects/pics/people/anabel/4.4bpp"); -const u32 gEventObjectPic_Anabel_5[] = INCBIN_U32("graphics/event_objects/pics/people/anabel/5.4bpp"); -const u32 gEventObjectPic_Anabel_6[] = INCBIN_U32("graphics/event_objects/pics/people/anabel/6.4bpp"); -const u32 gEventObjectPic_Anabel_7[] = INCBIN_U32("graphics/event_objects/pics/people/anabel/7.4bpp"); -const u32 gEventObjectPic_Anabel_8[] = INCBIN_U32("graphics/event_objects/pics/people/anabel/8.4bpp"); -const u32 gEventObjectPic_Tucker_0[] = INCBIN_U32("graphics/event_objects/pics/people/tucker/0.4bpp"); -const u32 gEventObjectPic_Tucker_1[] = INCBIN_U32("graphics/event_objects/pics/people/tucker/1.4bpp"); -const u32 gEventObjectPic_Tucker_2[] = INCBIN_U32("graphics/event_objects/pics/people/tucker/2.4bpp"); -const u32 gEventObjectPic_Tucker_3[] = INCBIN_U32("graphics/event_objects/pics/people/tucker/3.4bpp"); -const u32 gEventObjectPic_Tucker_4[] = INCBIN_U32("graphics/event_objects/pics/people/tucker/4.4bpp"); -const u32 gEventObjectPic_Tucker_5[] = INCBIN_U32("graphics/event_objects/pics/people/tucker/5.4bpp"); -const u32 gEventObjectPic_Tucker_6[] = INCBIN_U32("graphics/event_objects/pics/people/tucker/6.4bpp"); -const u32 gEventObjectPic_Tucker_7[] = INCBIN_U32("graphics/event_objects/pics/people/tucker/7.4bpp"); -const u32 gEventObjectPic_Tucker_8[] = INCBIN_U32("graphics/event_objects/pics/people/tucker/8.4bpp"); -const u32 gEventObjectPic_Spenser_0[] = INCBIN_U32("graphics/event_objects/pics/people/spenser/0.4bpp"); -const u32 gEventObjectPic_Spenser_1[] = INCBIN_U32("graphics/event_objects/pics/people/spenser/1.4bpp"); -const u32 gEventObjectPic_Spenser_2[] = INCBIN_U32("graphics/event_objects/pics/people/spenser/2.4bpp"); -const u32 gEventObjectPic_Spenser_3[] = INCBIN_U32("graphics/event_objects/pics/people/spenser/3.4bpp"); -const u32 gEventObjectPic_Spenser_4[] = INCBIN_U32("graphics/event_objects/pics/people/spenser/4.4bpp"); -const u32 gEventObjectPic_Spenser_5[] = INCBIN_U32("graphics/event_objects/pics/people/spenser/5.4bpp"); -const u32 gEventObjectPic_Spenser_6[] = INCBIN_U32("graphics/event_objects/pics/people/spenser/6.4bpp"); -const u32 gEventObjectPic_Spenser_7[] = INCBIN_U32("graphics/event_objects/pics/people/spenser/7.4bpp"); -const u32 gEventObjectPic_Spenser_8[] = INCBIN_U32("graphics/event_objects/pics/people/spenser/8.4bpp"); -const u32 gEventObjectPic_Greta_0[] = INCBIN_U32("graphics/event_objects/pics/people/greta/0.4bpp"); -const u32 gEventObjectPic_Greta_1[] = INCBIN_U32("graphics/event_objects/pics/people/greta/1.4bpp"); -const u32 gEventObjectPic_Greta_2[] = INCBIN_U32("graphics/event_objects/pics/people/greta/2.4bpp"); -const u32 gEventObjectPic_Greta_3[] = INCBIN_U32("graphics/event_objects/pics/people/greta/3.4bpp"); -const u32 gEventObjectPic_Greta_4[] = INCBIN_U32("graphics/event_objects/pics/people/greta/4.4bpp"); -const u32 gEventObjectPic_Greta_5[] = INCBIN_U32("graphics/event_objects/pics/people/greta/5.4bpp"); -const u32 gEventObjectPic_Greta_6[] = INCBIN_U32("graphics/event_objects/pics/people/greta/6.4bpp"); -const u32 gEventObjectPic_Greta_7[] = INCBIN_U32("graphics/event_objects/pics/people/greta/7.4bpp"); -const u32 gEventObjectPic_Greta_8[] = INCBIN_U32("graphics/event_objects/pics/people/greta/8.4bpp"); -const u32 gEventObjectPic_Noland_0[] = INCBIN_U32("graphics/event_objects/pics/people/noland/0.4bpp"); -const u32 gEventObjectPic_Noland_1[] = INCBIN_U32("graphics/event_objects/pics/people/noland/1.4bpp"); -const u32 gEventObjectPic_Noland_2[] = INCBIN_U32("graphics/event_objects/pics/people/noland/2.4bpp"); -const u32 gEventObjectPic_Noland_3[] = INCBIN_U32("graphics/event_objects/pics/people/noland/3.4bpp"); -const u32 gEventObjectPic_Noland_4[] = INCBIN_U32("graphics/event_objects/pics/people/noland/4.4bpp"); -const u32 gEventObjectPic_Noland_5[] = INCBIN_U32("graphics/event_objects/pics/people/noland/5.4bpp"); -const u32 gEventObjectPic_Noland_6[] = INCBIN_U32("graphics/event_objects/pics/people/noland/6.4bpp"); -const u32 gEventObjectPic_Noland_7[] = INCBIN_U32("graphics/event_objects/pics/people/noland/7.4bpp"); -const u32 gEventObjectPic_Noland_8[] = INCBIN_U32("graphics/event_objects/pics/people/noland/8.4bpp"); -const u32 gEventObjectPic_Lucy_0[] = INCBIN_U32("graphics/event_objects/pics/people/lucy/0.4bpp"); -const u32 gEventObjectPic_Lucy_1[] = INCBIN_U32("graphics/event_objects/pics/people/lucy/1.4bpp"); -const u32 gEventObjectPic_Lucy_2[] = INCBIN_U32("graphics/event_objects/pics/people/lucy/2.4bpp"); -const u32 gEventObjectPic_Lucy_3[] = INCBIN_U32("graphics/event_objects/pics/people/lucy/3.4bpp"); -const u32 gEventObjectPic_Lucy_4[] = INCBIN_U32("graphics/event_objects/pics/people/lucy/4.4bpp"); -const u32 gEventObjectPic_Lucy_5[] = INCBIN_U32("graphics/event_objects/pics/people/lucy/5.4bpp"); -const u32 gEventObjectPic_Lucy_6[] = INCBIN_U32("graphics/event_objects/pics/people/lucy/6.4bpp"); -const u32 gEventObjectPic_Lucy_7[] = INCBIN_U32("graphics/event_objects/pics/people/lucy/7.4bpp"); -const u32 gEventObjectPic_Lucy_8[] = INCBIN_U32("graphics/event_objects/pics/people/lucy/8.4bpp"); -const u32 gEventObjectPic_Brandon_0[] = INCBIN_U32("graphics/event_objects/pics/people/brandon/0.4bpp"); -const u32 gEventObjectPic_Brandon_1[] = INCBIN_U32("graphics/event_objects/pics/people/brandon/1.4bpp"); -const u32 gEventObjectPic_Brandon_2[] = INCBIN_U32("graphics/event_objects/pics/people/brandon/2.4bpp"); -const u32 gEventObjectPic_Brandon_3[] = INCBIN_U32("graphics/event_objects/pics/people/brandon/3.4bpp"); -const u32 gEventObjectPic_Brandon_4[] = INCBIN_U32("graphics/event_objects/pics/people/brandon/4.4bpp"); -const u32 gEventObjectPic_Brandon_5[] = INCBIN_U32("graphics/event_objects/pics/people/brandon/5.4bpp"); -const u32 gEventObjectPic_Brandon_6[] = INCBIN_U32("graphics/event_objects/pics/people/brandon/6.4bpp"); -const u32 gEventObjectPic_Brandon_7[] = INCBIN_U32("graphics/event_objects/pics/people/brandon/7.4bpp"); -const u32 gEventObjectPic_Brandon_8[] = INCBIN_U32("graphics/event_objects/pics/people/brandon/8.4bpp"); +const u32 gEventObjectPic_Anabel[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/anabel.4bpp"); +const u32 gEventObjectPic_Tucker[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/tucker.4bpp"); +const u32 gEventObjectPic_Spenser[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/spenser.4bpp"); +const u32 gEventObjectPic_Greta[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/greta.4bpp"); +const u32 gEventObjectPic_Noland[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/noland.4bpp"); +const u32 gEventObjectPic_Lucy[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/lucy.4bpp"); +const u32 gEventObjectPic_Brandon[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/brandon.4bpp"); const u32 gEventObjectPic_Lugia_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/lugia/0.4bpp"); const u32 gEventObjectPic_Lugia_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/lugia/1.4bpp"); const u16 gEventObjectPalette32[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_32.gbapal"); -- cgit v1.2.3 From ab2cc59629bfb8c4809807e82cb5224b4596844a Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 7 Aug 2018 22:16:03 +0100 Subject: Merge remaining "people" overworld frames --- src/data/field_event_obj/event_object_graphics.h | 897 +++-------------------- 1 file changed, 100 insertions(+), 797 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index ccdf842fb..d2307a932 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -4,24 +4,8 @@ const u32 gEventObjectPic_BrendanNormal[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/walking.4bpp"); const u32 gEventObjectPic_BrendanRunning[] = INCBIN_U32("graphics/event_objects/pics/people/brendan/running.4bpp"); const u16 gEventObjectPalette8[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_08.gbapal"); -const u32 gEventObjectPic_RubySapphireBrendan_0[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/00.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_1[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/01.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_2[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/02.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_3[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/03.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_4[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/04.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_5[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/05.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_6[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/06.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_7[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/07.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_8[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/08.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_9[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/09.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_10[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/10.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_11[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/11.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_12[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/12.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_13[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/13.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_14[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/14.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_15[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/15.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_16[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/16.4bpp"); -const u32 gEventObjectPic_RubySapphireBrendan_17[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/17.4bpp"); +const u32 gEventObjectPic_RubySapphireBrendanNormal[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/walking.4bpp"); +const u32 gEventObjectPic_RubySapphireBrendanRunning[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_brendan/running.4bpp"); const u16 gEventObjectPalette33[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_33.gbapal"); const u16 NullPalette_8499A38[16] = {}; const u16 NullPalette_8499A58[16] = {}; @@ -55,24 +39,8 @@ const u32 gEventObjectPic_MayNormal[] = INCBIN_U32("graphics/event_objects/pics/ const u32 gEventObjectPic_MayRunning[] = INCBIN_U32("graphics/event_objects/pics/people/may/running.4bpp"); const u16 gEventObjectPalette17[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_17.gbapal"); const u16 gEventObjectPalette18[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_18.gbapal"); -const u32 gEventObjectPic_RubySapphireMay_0[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/00.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_1[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/01.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_2[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/02.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_3[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/03.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_4[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/04.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_5[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/05.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_6[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/06.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_7[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/07.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_8[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/08.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_9[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/09.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_10[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/10.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_11[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/11.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_12[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/12.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_13[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/13.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_14[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/14.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_15[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/15.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_16[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/16.4bpp"); -const u32 gEventObjectPic_RubySapphireMay_17[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/17.4bpp"); +const u32 gEventObjectPic_RubySapphireMayNormal[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/walking.4bpp"); +const u32 gEventObjectPic_RubySapphireMayRunning[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_may/running.4bpp"); const u16 gEventObjectPalette34[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_34.gbapal"); const u16 gUnusedEventObjectPalette[] = INCBIN_U16("graphics/event_objects/palettes/unused_palette.gbapal"); const u16 NullPalette_84A54F8[16] = {}; @@ -103,708 +71,101 @@ const u16 gEventObjectPalette4[] = INCBIN_U16("graphics/event_objects/palettes/f const u16 gEventObjectPalette5[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_05.gbapal"); const u16 gEventObjectPalette6[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_06.gbapal"); const u16 gEventObjectPalette7[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_07.gbapal"); -const u32 gEventObjectPic_LittleBoy1_0[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1/0.4bpp"); -const u32 gEventObjectPic_LittleBoy1_1[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1/1.4bpp"); -const u32 gEventObjectPic_LittleBoy1_2[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1/2.4bpp"); -const u32 gEventObjectPic_LittleBoy1_3[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1/3.4bpp"); -const u32 gEventObjectPic_LittleBoy1_4[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1/4.4bpp"); -const u32 gEventObjectPic_LittleBoy1_5[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1/5.4bpp"); -const u32 gEventObjectPic_LittleBoy1_6[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1/6.4bpp"); -const u32 gEventObjectPic_LittleBoy1_7[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1/7.4bpp"); -const u32 gEventObjectPic_LittleBoy1_8[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1/8.4bpp"); -const u32 gEventObjectPic_LittleGirl1_0[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1/0.4bpp"); -const u32 gEventObjectPic_LittleGirl1_1[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1/1.4bpp"); -const u32 gEventObjectPic_LittleGirl1_2[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1/2.4bpp"); -const u32 gEventObjectPic_LittleGirl1_3[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1/3.4bpp"); -const u32 gEventObjectPic_LittleGirl1_4[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1/4.4bpp"); -const u32 gEventObjectPic_LittleGirl1_5[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1/5.4bpp"); -const u32 gEventObjectPic_LittleGirl1_6[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1/6.4bpp"); -const u32 gEventObjectPic_LittleGirl1_7[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1/7.4bpp"); -const u32 gEventObjectPic_LittleGirl1_8[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1/8.4bpp"); -const u32 gEventObjectPic_Boy1_0[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1/0.4bpp"); -const u32 gEventObjectPic_Boy1_1[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1/1.4bpp"); -const u32 gEventObjectPic_Boy1_2[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1/2.4bpp"); -const u32 gEventObjectPic_Boy1_3[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1/3.4bpp"); -const u32 gEventObjectPic_Boy1_4[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1/4.4bpp"); -const u32 gEventObjectPic_Boy1_5[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1/5.4bpp"); -const u32 gEventObjectPic_Boy1_6[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1/6.4bpp"); -const u32 gEventObjectPic_Boy1_7[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1/7.4bpp"); -const u32 gEventObjectPic_Boy1_8[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1/8.4bpp"); -const u32 gEventObjectPic_Girl1_0[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1/0.4bpp"); -const u32 gEventObjectPic_Girl1_1[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1/1.4bpp"); -const u32 gEventObjectPic_Girl1_2[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1/2.4bpp"); -const u32 gEventObjectPic_Girl1_3[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1/3.4bpp"); -const u32 gEventObjectPic_Girl1_4[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1/4.4bpp"); -const u32 gEventObjectPic_Girl1_5[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1/5.4bpp"); -const u32 gEventObjectPic_Girl1_6[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1/6.4bpp"); -const u32 gEventObjectPic_Girl1_7[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1/7.4bpp"); -const u32 gEventObjectPic_Girl1_8[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1/8.4bpp"); -const u32 gEventObjectPic_Boy2_0[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2/0.4bpp"); -const u32 gEventObjectPic_Boy2_1[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2/1.4bpp"); -const u32 gEventObjectPic_Boy2_2[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2/2.4bpp"); -const u32 gEventObjectPic_Boy2_3[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2/3.4bpp"); -const u32 gEventObjectPic_Boy2_4[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2/4.4bpp"); -const u32 gEventObjectPic_Boy2_5[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2/5.4bpp"); -const u32 gEventObjectPic_Boy2_6[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2/6.4bpp"); -const u32 gEventObjectPic_Boy2_7[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2/7.4bpp"); -const u32 gEventObjectPic_Boy2_8[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2/8.4bpp"); -const u32 gEventObjectPic_Girl2_0[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2/0.4bpp"); -const u32 gEventObjectPic_Girl2_1[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2/1.4bpp"); -const u32 gEventObjectPic_Girl2_2[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2/2.4bpp"); -const u32 gEventObjectPic_Girl2_3[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2/3.4bpp"); -const u32 gEventObjectPic_Girl2_4[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2/4.4bpp"); -const u32 gEventObjectPic_Girl2_5[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2/5.4bpp"); -const u32 gEventObjectPic_Girl2_6[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2/6.4bpp"); -const u32 gEventObjectPic_Girl2_7[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2/7.4bpp"); -const u32 gEventObjectPic_Girl2_8[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2/8.4bpp"); -const u32 gEventObjectPic_LittleBoy2_0[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2/0.4bpp"); -const u32 gEventObjectPic_LittleBoy2_1[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2/1.4bpp"); -const u32 gEventObjectPic_LittleBoy2_2[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2/2.4bpp"); -const u32 gEventObjectPic_LittleBoy2_3[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2/3.4bpp"); -const u32 gEventObjectPic_LittleBoy2_4[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2/4.4bpp"); -const u32 gEventObjectPic_LittleBoy2_5[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2/5.4bpp"); -const u32 gEventObjectPic_LittleBoy2_6[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2/6.4bpp"); -const u32 gEventObjectPic_LittleBoy2_7[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2/7.4bpp"); -const u32 gEventObjectPic_LittleBoy2_8[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2/8.4bpp"); -const u32 gEventObjectPic_LittleGirl2_0[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2/0.4bpp"); -const u32 gEventObjectPic_LittleGirl2_1[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2/1.4bpp"); -const u32 gEventObjectPic_LittleGirl2_2[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2/2.4bpp"); -const u32 gEventObjectPic_LittleGirl2_3[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2/3.4bpp"); -const u32 gEventObjectPic_LittleGirl2_4[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2/4.4bpp"); -const u32 gEventObjectPic_LittleGirl2_5[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2/5.4bpp"); -const u32 gEventObjectPic_LittleGirl2_6[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2/6.4bpp"); -const u32 gEventObjectPic_LittleGirl2_7[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2/7.4bpp"); -const u32 gEventObjectPic_LittleGirl2_8[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2/8.4bpp"); -const u32 gEventObjectPic_Boy3_0[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3/0.4bpp"); -const u32 gEventObjectPic_Boy3_1[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3/1.4bpp"); -const u32 gEventObjectPic_Boy3_2[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3/2.4bpp"); -const u32 gEventObjectPic_Boy3_3[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3/3.4bpp"); -const u32 gEventObjectPic_Boy3_4[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3/4.4bpp"); -const u32 gEventObjectPic_Boy3_5[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3/5.4bpp"); -const u32 gEventObjectPic_Boy3_6[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3/6.4bpp"); -const u32 gEventObjectPic_Boy3_7[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3/7.4bpp"); -const u32 gEventObjectPic_Boy3_8[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3/8.4bpp"); -const u32 gEventObjectPic_Girl3_0[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3/0.4bpp"); -const u32 gEventObjectPic_Girl3_1[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3/1.4bpp"); -const u32 gEventObjectPic_Girl3_2[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3/2.4bpp"); -const u32 gEventObjectPic_Girl3_3[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3/3.4bpp"); -const u32 gEventObjectPic_Girl3_4[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3/4.4bpp"); -const u32 gEventObjectPic_Girl3_5[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3/5.4bpp"); -const u32 gEventObjectPic_Girl3_6[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3/6.4bpp"); -const u32 gEventObjectPic_Girl3_7[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3/7.4bpp"); -const u32 gEventObjectPic_Girl3_8[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3/8.4bpp"); -const u32 gEventObjectPic_Boy4_0[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4/0.4bpp"); -const u32 gEventObjectPic_Boy4_1[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4/1.4bpp"); -const u32 gEventObjectPic_Boy4_2[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4/2.4bpp"); -const u32 gEventObjectPic_Boy4_3[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4/3.4bpp"); -const u32 gEventObjectPic_Boy4_4[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4/4.4bpp"); -const u32 gEventObjectPic_Boy4_5[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4/5.4bpp"); -const u32 gEventObjectPic_Boy4_6[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4/6.4bpp"); -const u32 gEventObjectPic_Boy4_7[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4/7.4bpp"); -const u32 gEventObjectPic_Boy4_8[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4/8.4bpp"); -const u32 gEventObjectPic_Woman1_0[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1/0.4bpp"); -const u32 gEventObjectPic_Woman1_1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1/1.4bpp"); -const u32 gEventObjectPic_Woman1_2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1/2.4bpp"); -const u32 gEventObjectPic_Woman1_3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1/3.4bpp"); -const u32 gEventObjectPic_Woman1_4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1/4.4bpp"); -const u32 gEventObjectPic_Woman1_5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1/5.4bpp"); -const u32 gEventObjectPic_Woman1_6[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1/6.4bpp"); -const u32 gEventObjectPic_Woman1_7[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1/7.4bpp"); -const u32 gEventObjectPic_Woman1_8[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1/8.4bpp"); -const u32 gEventObjectPic_FatMan_0[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man/0.4bpp"); -const u32 gEventObjectPic_FatMan_1[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man/1.4bpp"); -const u32 gEventObjectPic_FatMan_2[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man/2.4bpp"); -const u32 gEventObjectPic_FatMan_3[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man/3.4bpp"); -const u32 gEventObjectPic_FatMan_4[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man/4.4bpp"); -const u32 gEventObjectPic_FatMan_5[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man/5.4bpp"); -const u32 gEventObjectPic_FatMan_6[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man/6.4bpp"); -const u32 gEventObjectPic_FatMan_7[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man/7.4bpp"); -const u32 gEventObjectPic_FatMan_8[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man/8.4bpp"); -const u32 gEventObjectPic_Woman2_0[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2/0.4bpp"); -const u32 gEventObjectPic_Woman2_1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2/1.4bpp"); -const u32 gEventObjectPic_Woman2_2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2/2.4bpp"); -const u32 gEventObjectPic_Woman2_3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2/3.4bpp"); -const u32 gEventObjectPic_Woman2_4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2/4.4bpp"); -const u32 gEventObjectPic_Woman2_5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2/5.4bpp"); -const u32 gEventObjectPic_Woman2_6[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2/6.4bpp"); -const u32 gEventObjectPic_Woman2_7[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2/7.4bpp"); -const u32 gEventObjectPic_Woman2_8[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2/8.4bpp"); -const u32 gEventObjectPic_Man1_0[] = INCBIN_U32("graphics/event_objects/pics/people/man_1/0.4bpp"); -const u32 gEventObjectPic_Man1_1[] = INCBIN_U32("graphics/event_objects/pics/people/man_1/1.4bpp"); -const u32 gEventObjectPic_Man1_2[] = INCBIN_U32("graphics/event_objects/pics/people/man_1/2.4bpp"); -const u32 gEventObjectPic_Man1_3[] = INCBIN_U32("graphics/event_objects/pics/people/man_1/3.4bpp"); -const u32 gEventObjectPic_Man1_4[] = INCBIN_U32("graphics/event_objects/pics/people/man_1/4.4bpp"); -const u32 gEventObjectPic_Man1_5[] = INCBIN_U32("graphics/event_objects/pics/people/man_1/5.4bpp"); -const u32 gEventObjectPic_Man1_6[] = INCBIN_U32("graphics/event_objects/pics/people/man_1/6.4bpp"); -const u32 gEventObjectPic_Man1_7[] = INCBIN_U32("graphics/event_objects/pics/people/man_1/7.4bpp"); -const u32 gEventObjectPic_Man1_8[] = INCBIN_U32("graphics/event_objects/pics/people/man_1/8.4bpp"); -const u32 gEventObjectPic_Woman3_0[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3/0.4bpp"); -const u32 gEventObjectPic_Woman3_1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3/1.4bpp"); -const u32 gEventObjectPic_Woman3_2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3/2.4bpp"); -const u32 gEventObjectPic_Woman3_3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3/3.4bpp"); -const u32 gEventObjectPic_Woman3_4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3/4.4bpp"); -const u32 gEventObjectPic_Woman3_5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3/5.4bpp"); -const u32 gEventObjectPic_Woman3_6[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3/6.4bpp"); -const u32 gEventObjectPic_Woman3_7[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3/7.4bpp"); -const u32 gEventObjectPic_Woman3_8[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3/8.4bpp"); -const u32 gEventObjectPic_OldMan1_0[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1/0.4bpp"); -const u32 gEventObjectPic_OldMan1_1[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1/1.4bpp"); -const u32 gEventObjectPic_OldMan1_2[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1/2.4bpp"); -const u32 gEventObjectPic_OldMan1_3[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1/3.4bpp"); -const u32 gEventObjectPic_OldMan1_4[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1/4.4bpp"); -const u32 gEventObjectPic_OldMan1_5[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1/5.4bpp"); -const u32 gEventObjectPic_OldMan1_6[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1/6.4bpp"); -const u32 gEventObjectPic_OldMan1_7[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1/7.4bpp"); -const u32 gEventObjectPic_OldMan1_8[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1/8.4bpp"); -const u32 gEventObjectPic_OldWoman1_0[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1/0.4bpp"); -const u32 gEventObjectPic_OldWoman1_1[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1/1.4bpp"); -const u32 gEventObjectPic_OldWoman1_2[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1/2.4bpp"); -const u32 gEventObjectPic_OldWoman1_3[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1/3.4bpp"); -const u32 gEventObjectPic_OldWoman1_4[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1/4.4bpp"); -const u32 gEventObjectPic_OldWoman1_5[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1/5.4bpp"); -const u32 gEventObjectPic_OldWoman1_6[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1/6.4bpp"); -const u32 gEventObjectPic_OldWoman1_7[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1/7.4bpp"); -const u32 gEventObjectPic_OldWoman1_8[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1/8.4bpp"); -const u32 gEventObjectPic_Man2_0[] = INCBIN_U32("graphics/event_objects/pics/people/man_2/0.4bpp"); -const u32 gEventObjectPic_Man2_1[] = INCBIN_U32("graphics/event_objects/pics/people/man_2/1.4bpp"); -const u32 gEventObjectPic_Man2_2[] = INCBIN_U32("graphics/event_objects/pics/people/man_2/2.4bpp"); -const u32 gEventObjectPic_Man2_3[] = INCBIN_U32("graphics/event_objects/pics/people/man_2/3.4bpp"); -const u32 gEventObjectPic_Man2_4[] = INCBIN_U32("graphics/event_objects/pics/people/man_2/4.4bpp"); -const u32 gEventObjectPic_Man2_5[] = INCBIN_U32("graphics/event_objects/pics/people/man_2/5.4bpp"); -const u32 gEventObjectPic_Man2_6[] = INCBIN_U32("graphics/event_objects/pics/people/man_2/6.4bpp"); -const u32 gEventObjectPic_Man2_7[] = INCBIN_U32("graphics/event_objects/pics/people/man_2/7.4bpp"); -const u32 gEventObjectPic_Man2_8[] = INCBIN_U32("graphics/event_objects/pics/people/man_2/8.4bpp"); -const u32 gEventObjectPic_Woman4_0[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4/0.4bpp"); -const u32 gEventObjectPic_Woman4_1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4/1.4bpp"); -const u32 gEventObjectPic_Woman4_2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4/2.4bpp"); -const u32 gEventObjectPic_Woman4_3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4/3.4bpp"); -const u32 gEventObjectPic_Woman4_4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4/4.4bpp"); -const u32 gEventObjectPic_Woman4_5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4/5.4bpp"); -const u32 gEventObjectPic_Woman4_6[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4/6.4bpp"); -const u32 gEventObjectPic_Woman4_7[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4/7.4bpp"); -const u32 gEventObjectPic_Woman4_8[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4/8.4bpp"); -const u32 gEventObjectPic_Man3_0[] = INCBIN_U32("graphics/event_objects/pics/people/man_3/0.4bpp"); -const u32 gEventObjectPic_Man3_1[] = INCBIN_U32("graphics/event_objects/pics/people/man_3/1.4bpp"); -const u32 gEventObjectPic_Man3_2[] = INCBIN_U32("graphics/event_objects/pics/people/man_3/2.4bpp"); -const u32 gEventObjectPic_Man3_3[] = INCBIN_U32("graphics/event_objects/pics/people/man_3/3.4bpp"); -const u32 gEventObjectPic_Man3_4[] = INCBIN_U32("graphics/event_objects/pics/people/man_3/4.4bpp"); -const u32 gEventObjectPic_Man3_5[] = INCBIN_U32("graphics/event_objects/pics/people/man_3/5.4bpp"); -const u32 gEventObjectPic_Man3_6[] = INCBIN_U32("graphics/event_objects/pics/people/man_3/6.4bpp"); -const u32 gEventObjectPic_Man3_7[] = INCBIN_U32("graphics/event_objects/pics/people/man_3/7.4bpp"); -const u32 gEventObjectPic_Man3_8[] = INCBIN_U32("graphics/event_objects/pics/people/man_3/8.4bpp"); -const u32 gEventObjectPic_Woman5_0[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5/0.4bpp"); -const u32 gEventObjectPic_Woman5_1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5/1.4bpp"); -const u32 gEventObjectPic_Woman5_2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5/2.4bpp"); -const u32 gEventObjectPic_Woman5_3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5/3.4bpp"); -const u32 gEventObjectPic_Woman5_4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5/4.4bpp"); -const u32 gEventObjectPic_Woman5_5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5/5.4bpp"); -const u32 gEventObjectPic_Woman5_6[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5/6.4bpp"); -const u32 gEventObjectPic_Woman5_7[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5/7.4bpp"); -const u32 gEventObjectPic_Woman5_8[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5/8.4bpp"); -const u32 gEventObjectPic_Cook_0[] = INCBIN_U32("graphics/event_objects/pics/people/cook/0.4bpp"); -const u32 gEventObjectPic_Cook_1[] = INCBIN_U32("graphics/event_objects/pics/people/cook/1.4bpp"); -const u32 gEventObjectPic_Cook_2[] = INCBIN_U32("graphics/event_objects/pics/people/cook/2.4bpp"); -const u32 gEventObjectPic_Woman6_0[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6/0.4bpp"); -const u32 gEventObjectPic_Woman6_1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6/1.4bpp"); -const u32 gEventObjectPic_Woman6_2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6/2.4bpp"); -const u32 gEventObjectPic_Woman6_3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6/3.4bpp"); -const u32 gEventObjectPic_Woman6_4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6/4.4bpp"); -const u32 gEventObjectPic_Woman6_5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6/5.4bpp"); -const u32 gEventObjectPic_Woman6_6[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6/6.4bpp"); -const u32 gEventObjectPic_Woman6_7[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6/7.4bpp"); -const u32 gEventObjectPic_Woman6_8[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6/8.4bpp"); -const u32 gEventObjectPic_OldMan2_0[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_2/0.4bpp"); -const u32 gEventObjectPic_OldMan2_1[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_2/1.4bpp"); -const u32 gEventObjectPic_OldMan2_2[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_2/2.4bpp"); -const u32 gEventObjectPic_OldWoman2_0[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2/0.4bpp"); -const u32 gEventObjectPic_OldWoman2_1[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2/1.4bpp"); -const u32 gEventObjectPic_OldWoman2_2[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2/2.4bpp"); -const u32 gEventObjectPic_OldWoman2_3[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2/3.4bpp"); -const u32 gEventObjectPic_OldWoman2_4[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2/4.4bpp"); -const u32 gEventObjectPic_OldWoman2_5[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2/5.4bpp"); -const u32 gEventObjectPic_OldWoman2_6[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2/6.4bpp"); -const u32 gEventObjectPic_OldWoman2_7[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2/7.4bpp"); -const u32 gEventObjectPic_OldWoman2_8[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2/8.4bpp"); -const u32 gEventObjectPic_Camper_0[] = INCBIN_U32("graphics/event_objects/pics/people/camper/0.4bpp"); -const u32 gEventObjectPic_Camper_1[] = INCBIN_U32("graphics/event_objects/pics/people/camper/1.4bpp"); -const u32 gEventObjectPic_Camper_2[] = INCBIN_U32("graphics/event_objects/pics/people/camper/2.4bpp"); -const u32 gEventObjectPic_Camper_3[] = INCBIN_U32("graphics/event_objects/pics/people/camper/3.4bpp"); -const u32 gEventObjectPic_Camper_4[] = INCBIN_U32("graphics/event_objects/pics/people/camper/4.4bpp"); -const u32 gEventObjectPic_Camper_5[] = INCBIN_U32("graphics/event_objects/pics/people/camper/5.4bpp"); -const u32 gEventObjectPic_Camper_6[] = INCBIN_U32("graphics/event_objects/pics/people/camper/6.4bpp"); -const u32 gEventObjectPic_Camper_7[] = INCBIN_U32("graphics/event_objects/pics/people/camper/7.4bpp"); -const u32 gEventObjectPic_Camper_8[] = INCBIN_U32("graphics/event_objects/pics/people/camper/8.4bpp"); -const u32 gEventObjectPic_Picnicker_0[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker/0.4bpp"); -const u32 gEventObjectPic_Picnicker_1[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker/1.4bpp"); -const u32 gEventObjectPic_Picnicker_2[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker/2.4bpp"); -const u32 gEventObjectPic_Picnicker_3[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker/3.4bpp"); -const u32 gEventObjectPic_Picnicker_4[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker/4.4bpp"); -const u32 gEventObjectPic_Picnicker_5[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker/5.4bpp"); -const u32 gEventObjectPic_Picnicker_6[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker/6.4bpp"); -const u32 gEventObjectPic_Picnicker_7[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker/7.4bpp"); -const u32 gEventObjectPic_Picnicker_8[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker/8.4bpp"); -const u32 gEventObjectPic_Man4_0[] = INCBIN_U32("graphics/event_objects/pics/people/man_4/0.4bpp"); -const u32 gEventObjectPic_Man4_1[] = INCBIN_U32("graphics/event_objects/pics/people/man_4/1.4bpp"); -const u32 gEventObjectPic_Man4_2[] = INCBIN_U32("graphics/event_objects/pics/people/man_4/2.4bpp"); -const u32 gEventObjectPic_Man4_3[] = INCBIN_U32("graphics/event_objects/pics/people/man_4/3.4bpp"); -const u32 gEventObjectPic_Man4_4[] = INCBIN_U32("graphics/event_objects/pics/people/man_4/4.4bpp"); -const u32 gEventObjectPic_Man4_5[] = INCBIN_U32("graphics/event_objects/pics/people/man_4/5.4bpp"); -const u32 gEventObjectPic_Man4_6[] = INCBIN_U32("graphics/event_objects/pics/people/man_4/6.4bpp"); -const u32 gEventObjectPic_Man4_7[] = INCBIN_U32("graphics/event_objects/pics/people/man_4/7.4bpp"); -const u32 gEventObjectPic_Man4_8[] = INCBIN_U32("graphics/event_objects/pics/people/man_4/8.4bpp"); -const u32 gEventObjectPic_Woman7_0[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7/0.4bpp"); -const u32 gEventObjectPic_Woman7_1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7/1.4bpp"); -const u32 gEventObjectPic_Woman7_2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7/2.4bpp"); -const u32 gEventObjectPic_Woman7_3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7/3.4bpp"); -const u32 gEventObjectPic_Woman7_4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7/4.4bpp"); -const u32 gEventObjectPic_Woman7_5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7/5.4bpp"); -const u32 gEventObjectPic_Woman7_6[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7/6.4bpp"); -const u32 gEventObjectPic_Woman7_7[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7/7.4bpp"); -const u32 gEventObjectPic_Woman7_8[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7/8.4bpp"); -const u32 gEventObjectPic_Youngster_0[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/0.4bpp"); -const u32 gEventObjectPic_Youngster_1[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/1.4bpp"); -const u32 gEventObjectPic_Youngster_2[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/2.4bpp"); -const u32 gEventObjectPic_Youngster_3[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/3.4bpp"); -const u32 gEventObjectPic_Youngster_4[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/4.4bpp"); -const u32 gEventObjectPic_Youngster_5[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/5.4bpp"); -const u32 gEventObjectPic_Youngster_6[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/6.4bpp"); -const u32 gEventObjectPic_Youngster_7[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/7.4bpp"); -const u32 gEventObjectPic_Youngster_8[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/8.4bpp"); -const u32 gEventObjectPic_BugCatcher_0[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher/0.4bpp"); -const u32 gEventObjectPic_BugCatcher_1[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher/1.4bpp"); -const u32 gEventObjectPic_BugCatcher_2[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher/2.4bpp"); -const u32 gEventObjectPic_BugCatcher_3[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher/3.4bpp"); -const u32 gEventObjectPic_BugCatcher_4[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher/4.4bpp"); -const u32 gEventObjectPic_BugCatcher_5[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher/5.4bpp"); -const u32 gEventObjectPic_BugCatcher_6[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher/6.4bpp"); -const u32 gEventObjectPic_BugCatcher_7[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher/7.4bpp"); -const u32 gEventObjectPic_BugCatcher_8[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher/8.4bpp"); -const u32 gEventObjectPic_PsychicM_0[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m/0.4bpp"); -const u32 gEventObjectPic_PsychicM_1[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m/1.4bpp"); -const u32 gEventObjectPic_PsychicM_2[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m/2.4bpp"); -const u32 gEventObjectPic_PsychicM_3[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m/3.4bpp"); -const u32 gEventObjectPic_PsychicM_4[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m/4.4bpp"); -const u32 gEventObjectPic_PsychicM_5[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m/5.4bpp"); -const u32 gEventObjectPic_PsychicM_6[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m/6.4bpp"); -const u32 gEventObjectPic_PsychicM_7[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m/7.4bpp"); -const u32 gEventObjectPic_PsychicM_8[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m/8.4bpp"); -const u32 gEventObjectPic_SchoolKidM_0[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m/0.4bpp"); -const u32 gEventObjectPic_SchoolKidM_1[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m/1.4bpp"); -const u32 gEventObjectPic_SchoolKidM_2[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m/2.4bpp"); -const u32 gEventObjectPic_SchoolKidM_3[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m/3.4bpp"); -const u32 gEventObjectPic_SchoolKidM_4[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m/4.4bpp"); -const u32 gEventObjectPic_SchoolKidM_5[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m/5.4bpp"); -const u32 gEventObjectPic_SchoolKidM_6[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m/6.4bpp"); -const u32 gEventObjectPic_SchoolKidM_7[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m/7.4bpp"); -const u32 gEventObjectPic_SchoolKidM_8[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m/8.4bpp"); -const u32 gEventObjectPic_Maniac_0[] = INCBIN_U32("graphics/event_objects/pics/people/maniac/0.4bpp"); -const u32 gEventObjectPic_Maniac_1[] = INCBIN_U32("graphics/event_objects/pics/people/maniac/1.4bpp"); -const u32 gEventObjectPic_Maniac_2[] = INCBIN_U32("graphics/event_objects/pics/people/maniac/2.4bpp"); -const u32 gEventObjectPic_Maniac_3[] = INCBIN_U32("graphics/event_objects/pics/people/maniac/3.4bpp"); -const u32 gEventObjectPic_Maniac_4[] = INCBIN_U32("graphics/event_objects/pics/people/maniac/4.4bpp"); -const u32 gEventObjectPic_Maniac_5[] = INCBIN_U32("graphics/event_objects/pics/people/maniac/5.4bpp"); -const u32 gEventObjectPic_Maniac_6[] = INCBIN_U32("graphics/event_objects/pics/people/maniac/6.4bpp"); -const u32 gEventObjectPic_Maniac_7[] = INCBIN_U32("graphics/event_objects/pics/people/maniac/7.4bpp"); -const u32 gEventObjectPic_Maniac_8[] = INCBIN_U32("graphics/event_objects/pics/people/maniac/8.4bpp"); -const u32 gEventObjectPic_HexManiac_0[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac/0.4bpp"); -const u32 gEventObjectPic_HexManiac_1[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac/1.4bpp"); -const u32 gEventObjectPic_HexManiac_2[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac/2.4bpp"); -const u32 gEventObjectPic_HexManiac_3[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac/3.4bpp"); -const u32 gEventObjectPic_HexManiac_4[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac/4.4bpp"); -const u32 gEventObjectPic_HexManiac_5[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac/5.4bpp"); -const u32 gEventObjectPic_HexManiac_6[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac/6.4bpp"); -const u32 gEventObjectPic_HexManiac_7[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac/7.4bpp"); -const u32 gEventObjectPic_HexManiac_8[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac/8.4bpp"); -const u32 gEventObjectPic_UnusedWoman_0[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman/0.4bpp"); -const u32 gEventObjectPic_UnusedWoman_1[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman/1.4bpp"); -const u32 gEventObjectPic_UnusedWoman_2[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman/2.4bpp"); -const u32 gEventObjectPic_UnusedWoman_3[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman/3.4bpp"); -const u32 gEventObjectPic_UnusedWoman_4[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman/4.4bpp"); -const u32 gEventObjectPic_UnusedWoman_5[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman/5.4bpp"); -const u32 gEventObjectPic_UnusedWoman_6[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman/6.4bpp"); -const u32 gEventObjectPic_UnusedWoman_7[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman/7.4bpp"); -const u32 gEventObjectPic_UnusedWoman_8[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman/8.4bpp"); -const u32 gEventObjectPic_SwimmerM_0[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m/0.4bpp"); -const u32 gEventObjectPic_SwimmerM_1[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m/1.4bpp"); -const u32 gEventObjectPic_SwimmerM_2[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m/2.4bpp"); -const u32 gEventObjectPic_SwimmerM_3[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m/3.4bpp"); -const u32 gEventObjectPic_SwimmerM_4[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m/4.4bpp"); -const u32 gEventObjectPic_SwimmerM_5[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m/5.4bpp"); -const u32 gEventObjectPic_SwimmerM_6[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m/6.4bpp"); -const u32 gEventObjectPic_SwimmerM_7[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m/7.4bpp"); -const u32 gEventObjectPic_SwimmerM_8[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m/8.4bpp"); -const u32 gEventObjectPic_SwimmerF_0[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f/0.4bpp"); -const u32 gEventObjectPic_SwimmerF_1[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f/1.4bpp"); -const u32 gEventObjectPic_SwimmerF_2[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f/2.4bpp"); -const u32 gEventObjectPic_SwimmerF_3[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f/3.4bpp"); -const u32 gEventObjectPic_SwimmerF_4[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f/4.4bpp"); -const u32 gEventObjectPic_SwimmerF_5[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f/5.4bpp"); -const u32 gEventObjectPic_SwimmerF_6[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f/6.4bpp"); -const u32 gEventObjectPic_SwimmerF_7[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f/7.4bpp"); -const u32 gEventObjectPic_SwimmerF_8[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f/8.4bpp"); -const u32 gEventObjectPic_BlackBelt_0[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt/0.4bpp"); -const u32 gEventObjectPic_BlackBelt_1[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt/1.4bpp"); -const u32 gEventObjectPic_BlackBelt_2[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt/2.4bpp"); -const u32 gEventObjectPic_BlackBelt_3[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt/3.4bpp"); -const u32 gEventObjectPic_BlackBelt_4[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt/4.4bpp"); -const u32 gEventObjectPic_BlackBelt_5[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt/5.4bpp"); -const u32 gEventObjectPic_BlackBelt_6[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt/6.4bpp"); -const u32 gEventObjectPic_BlackBelt_7[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt/7.4bpp"); -const u32 gEventObjectPic_BlackBelt_8[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt/8.4bpp"); -const u32 gEventObjectPic_Beauty_0[] = INCBIN_U32("graphics/event_objects/pics/people/beauty/0.4bpp"); -const u32 gEventObjectPic_Beauty_1[] = INCBIN_U32("graphics/event_objects/pics/people/beauty/1.4bpp"); -const u32 gEventObjectPic_Beauty_2[] = INCBIN_U32("graphics/event_objects/pics/people/beauty/2.4bpp"); -const u32 gEventObjectPic_Beauty_3[] = INCBIN_U32("graphics/event_objects/pics/people/beauty/3.4bpp"); -const u32 gEventObjectPic_Beauty_4[] = INCBIN_U32("graphics/event_objects/pics/people/beauty/4.4bpp"); -const u32 gEventObjectPic_Beauty_5[] = INCBIN_U32("graphics/event_objects/pics/people/beauty/5.4bpp"); -const u32 gEventObjectPic_Beauty_6[] = INCBIN_U32("graphics/event_objects/pics/people/beauty/6.4bpp"); -const u32 gEventObjectPic_Beauty_7[] = INCBIN_U32("graphics/event_objects/pics/people/beauty/7.4bpp"); -const u32 gEventObjectPic_Beauty_8[] = INCBIN_U32("graphics/event_objects/pics/people/beauty/8.4bpp"); -const u32 gEventObjectPic_Scientist1_0[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1/0.4bpp"); -const u32 gEventObjectPic_Scientist1_1[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1/1.4bpp"); -const u32 gEventObjectPic_Scientist1_2[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1/2.4bpp"); -const u32 gEventObjectPic_Scientist1_3[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1/3.4bpp"); -const u32 gEventObjectPic_Scientist1_4[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1/4.4bpp"); -const u32 gEventObjectPic_Scientist1_5[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1/5.4bpp"); -const u32 gEventObjectPic_Scientist1_6[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1/6.4bpp"); -const u32 gEventObjectPic_Scientist1_7[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1/7.4bpp"); -const u32 gEventObjectPic_Scientist1_8[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1/8.4bpp"); -const u32 gEventObjectPic_Lass_0[] = INCBIN_U32("graphics/event_objects/pics/people/lass/0.4bpp"); -const u32 gEventObjectPic_Lass_1[] = INCBIN_U32("graphics/event_objects/pics/people/lass/1.4bpp"); -const u32 gEventObjectPic_Lass_2[] = INCBIN_U32("graphics/event_objects/pics/people/lass/2.4bpp"); -const u32 gEventObjectPic_Lass_3[] = INCBIN_U32("graphics/event_objects/pics/people/lass/3.4bpp"); -const u32 gEventObjectPic_Lass_4[] = INCBIN_U32("graphics/event_objects/pics/people/lass/4.4bpp"); -const u32 gEventObjectPic_Lass_5[] = INCBIN_U32("graphics/event_objects/pics/people/lass/5.4bpp"); -const u32 gEventObjectPic_Lass_6[] = INCBIN_U32("graphics/event_objects/pics/people/lass/6.4bpp"); -const u32 gEventObjectPic_Lass_7[] = INCBIN_U32("graphics/event_objects/pics/people/lass/7.4bpp"); -const u32 gEventObjectPic_Lass_8[] = INCBIN_U32("graphics/event_objects/pics/people/lass/8.4bpp"); -const u32 gEventObjectPic_Gentleman_0[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman/0.4bpp"); -const u32 gEventObjectPic_Gentleman_1[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman/1.4bpp"); -const u32 gEventObjectPic_Gentleman_2[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman/2.4bpp"); -const u32 gEventObjectPic_Gentleman_3[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman/3.4bpp"); -const u32 gEventObjectPic_Gentleman_4[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman/4.4bpp"); -const u32 gEventObjectPic_Gentleman_5[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman/5.4bpp"); -const u32 gEventObjectPic_Gentleman_6[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman/6.4bpp"); -const u32 gEventObjectPic_Gentleman_7[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman/7.4bpp"); -const u32 gEventObjectPic_Gentleman_8[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman/8.4bpp"); -const u32 gEventObjectPic_Sailor_0[] = INCBIN_U32("graphics/event_objects/pics/people/sailor/0.4bpp"); -const u32 gEventObjectPic_Sailor_1[] = INCBIN_U32("graphics/event_objects/pics/people/sailor/1.4bpp"); -const u32 gEventObjectPic_Sailor_2[] = INCBIN_U32("graphics/event_objects/pics/people/sailor/2.4bpp"); -const u32 gEventObjectPic_Sailor_3[] = INCBIN_U32("graphics/event_objects/pics/people/sailor/3.4bpp"); -const u32 gEventObjectPic_Sailor_4[] = INCBIN_U32("graphics/event_objects/pics/people/sailor/4.4bpp"); -const u32 gEventObjectPic_Sailor_5[] = INCBIN_U32("graphics/event_objects/pics/people/sailor/5.4bpp"); -const u32 gEventObjectPic_Sailor_6[] = INCBIN_U32("graphics/event_objects/pics/people/sailor/6.4bpp"); -const u32 gEventObjectPic_Sailor_7[] = INCBIN_U32("graphics/event_objects/pics/people/sailor/7.4bpp"); -const u32 gEventObjectPic_Sailor_8[] = INCBIN_U32("graphics/event_objects/pics/people/sailor/8.4bpp"); -const u32 gEventObjectPic_Fisherman_0[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman/0.4bpp"); -const u32 gEventObjectPic_Fisherman_1[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman/1.4bpp"); -const u32 gEventObjectPic_Fisherman_2[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman/2.4bpp"); -const u32 gEventObjectPic_Fisherman_3[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman/3.4bpp"); -const u32 gEventObjectPic_Fisherman_4[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman/4.4bpp"); -const u32 gEventObjectPic_Fisherman_5[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman/5.4bpp"); -const u32 gEventObjectPic_Fisherman_6[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman/6.4bpp"); -const u32 gEventObjectPic_Fisherman_7[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman/7.4bpp"); -const u32 gEventObjectPic_Fisherman_8[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman/8.4bpp"); -const u32 gEventObjectPic_RunningTriathleteM_0[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m/0.4bpp"); -const u32 gEventObjectPic_RunningTriathleteM_1[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m/1.4bpp"); -const u32 gEventObjectPic_RunningTriathleteM_2[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m/2.4bpp"); -const u32 gEventObjectPic_RunningTriathleteM_3[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m/3.4bpp"); -const u32 gEventObjectPic_RunningTriathleteM_4[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m/4.4bpp"); -const u32 gEventObjectPic_RunningTriathleteM_5[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m/5.4bpp"); -const u32 gEventObjectPic_RunningTriathleteM_6[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m/6.4bpp"); -const u32 gEventObjectPic_RunningTriathleteM_7[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m/7.4bpp"); -const u32 gEventObjectPic_RunningTriathleteM_8[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m/8.4bpp"); -const u32 gEventObjectPic_RunningTriathleteF_0[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f/0.4bpp"); -const u32 gEventObjectPic_RunningTriathleteF_1[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f/1.4bpp"); -const u32 gEventObjectPic_RunningTriathleteF_2[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f/2.4bpp"); -const u32 gEventObjectPic_RunningTriathleteF_3[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f/3.4bpp"); -const u32 gEventObjectPic_RunningTriathleteF_4[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f/4.4bpp"); -const u32 gEventObjectPic_RunningTriathleteF_5[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f/5.4bpp"); -const u32 gEventObjectPic_RunningTriathleteF_6[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f/6.4bpp"); -const u32 gEventObjectPic_RunningTriathleteF_7[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f/7.4bpp"); -const u32 gEventObjectPic_RunningTriathleteF_8[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f/8.4bpp"); -const u32 gEventObjectPic_TuberF_0[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f/0.4bpp"); -const u32 gEventObjectPic_TuberF_1[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f/1.4bpp"); -const u32 gEventObjectPic_TuberF_2[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f/2.4bpp"); -const u32 gEventObjectPic_TuberF_3[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f/3.4bpp"); -const u32 gEventObjectPic_TuberF_4[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f/4.4bpp"); -const u32 gEventObjectPic_TuberF_5[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f/5.4bpp"); -const u32 gEventObjectPic_TuberF_6[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f/6.4bpp"); -const u32 gEventObjectPic_TuberF_7[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f/7.4bpp"); -const u32 gEventObjectPic_TuberF_8[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f/8.4bpp"); -const u32 gEventObjectPic_TuberM_0[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m/0.4bpp"); -const u32 gEventObjectPic_TuberM_1[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m/1.4bpp"); -const u32 gEventObjectPic_TuberM_2[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m/2.4bpp"); -const u32 gEventObjectPic_TuberM_3[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m/3.4bpp"); -const u32 gEventObjectPic_TuberM_4[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m/4.4bpp"); -const u32 gEventObjectPic_TuberM_5[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m/5.4bpp"); -const u32 gEventObjectPic_TuberM_6[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m/6.4bpp"); -const u32 gEventObjectPic_TuberM_7[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m/7.4bpp"); -const u32 gEventObjectPic_TuberM_8[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m/8.4bpp"); -const u32 gEventObjectPic_Hiker_0[] = INCBIN_U32("graphics/event_objects/pics/people/hiker/0.4bpp"); -const u32 gEventObjectPic_Hiker_1[] = INCBIN_U32("graphics/event_objects/pics/people/hiker/1.4bpp"); -const u32 gEventObjectPic_Hiker_2[] = INCBIN_U32("graphics/event_objects/pics/people/hiker/2.4bpp"); -const u32 gEventObjectPic_Hiker_3[] = INCBIN_U32("graphics/event_objects/pics/people/hiker/3.4bpp"); -const u32 gEventObjectPic_Hiker_4[] = INCBIN_U32("graphics/event_objects/pics/people/hiker/4.4bpp"); -const u32 gEventObjectPic_Hiker_5[] = INCBIN_U32("graphics/event_objects/pics/people/hiker/5.4bpp"); -const u32 gEventObjectPic_Hiker_6[] = INCBIN_U32("graphics/event_objects/pics/people/hiker/6.4bpp"); -const u32 gEventObjectPic_Hiker_7[] = INCBIN_U32("graphics/event_objects/pics/people/hiker/7.4bpp"); -const u32 gEventObjectPic_Hiker_8[] = INCBIN_U32("graphics/event_objects/pics/people/hiker/8.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteM_0[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m/0.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteM_1[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m/1.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteM_2[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m/2.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteM_3[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m/3.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteM_4[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m/4.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteM_5[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m/5.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteM_6[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m/6.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteM_7[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m/7.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteM_8[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m/8.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteF_0[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f/0.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteF_1[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f/1.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteF_2[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f/2.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteF_3[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f/3.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteF_4[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f/4.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteF_5[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f/5.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteF_6[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f/6.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteF_7[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f/7.4bpp"); -const u32 gEventObjectPic_CyclingTriathleteF_8[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f/8.4bpp"); -const u32 gEventObjectPic_Man5_0[] = INCBIN_U32("graphics/event_objects/pics/people/man_5/0.4bpp"); -const u32 gEventObjectPic_Man5_1[] = INCBIN_U32("graphics/event_objects/pics/people/man_5/1.4bpp"); -const u32 gEventObjectPic_Man5_2[] = INCBIN_U32("graphics/event_objects/pics/people/man_5/2.4bpp"); -const u32 gEventObjectPic_Man5_3[] = INCBIN_U32("graphics/event_objects/pics/people/man_5/3.4bpp"); -const u32 gEventObjectPic_Man5_4[] = INCBIN_U32("graphics/event_objects/pics/people/man_5/4.4bpp"); -const u32 gEventObjectPic_Man5_5[] = INCBIN_U32("graphics/event_objects/pics/people/man_5/5.4bpp"); -const u32 gEventObjectPic_Man5_6[] = INCBIN_U32("graphics/event_objects/pics/people/man_5/6.4bpp"); -const u32 gEventObjectPic_Man5_7[] = INCBIN_U32("graphics/event_objects/pics/people/man_5/7.4bpp"); -const u32 gEventObjectPic_Man5_8[] = INCBIN_U32("graphics/event_objects/pics/people/man_5/8.4bpp"); -const u32 gEventObjectPic_Man6_0[] = INCBIN_U32("graphics/event_objects/pics/people/man_6/0.4bpp"); -const u32 gEventObjectPic_Man6_1[] = INCBIN_U32("graphics/event_objects/pics/people/man_6/1.4bpp"); -const u32 gEventObjectPic_Man6_2[] = INCBIN_U32("graphics/event_objects/pics/people/man_6/2.4bpp"); -const u32 gEventObjectPic_Man6_3[] = INCBIN_U32("graphics/event_objects/pics/people/man_6/3.4bpp"); -const u32 gEventObjectPic_Man6_4[] = INCBIN_U32("graphics/event_objects/pics/people/man_6/4.4bpp"); -const u32 gEventObjectPic_Man6_5[] = INCBIN_U32("graphics/event_objects/pics/people/man_6/5.4bpp"); -const u32 gEventObjectPic_Man6_6[] = INCBIN_U32("graphics/event_objects/pics/people/man_6/6.4bpp"); -const u32 gEventObjectPic_Man6_7[] = INCBIN_U32("graphics/event_objects/pics/people/man_6/7.4bpp"); -const u32 gEventObjectPic_Man6_8[] = INCBIN_U32("graphics/event_objects/pics/people/man_6/8.4bpp"); -const u32 gEventObjectPic_Nurse_0[] = INCBIN_U32("graphics/event_objects/pics/people/nurse/0.4bpp"); -const u32 gEventObjectPic_Nurse_1[] = INCBIN_U32("graphics/event_objects/pics/people/nurse/1.4bpp"); -const u32 gEventObjectPic_Nurse_2[] = INCBIN_U32("graphics/event_objects/pics/people/nurse/2.4bpp"); -const u32 gEventObjectPic_Nurse_3[] = INCBIN_U32("graphics/event_objects/pics/people/nurse/3.4bpp"); +const u32 gEventObjectPic_LittleBoy1[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_1.4bpp"); +const u32 gEventObjectPic_LittleGirl1[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_1.4bpp"); +const u32 gEventObjectPic_Boy1[] = INCBIN_U32("graphics/event_objects/pics/people/boy_1.4bpp"); +const u32 gEventObjectPic_Girl1[] = INCBIN_U32("graphics/event_objects/pics/people/girl_1.4bpp"); +const u32 gEventObjectPic_Boy2[] = INCBIN_U32("graphics/event_objects/pics/people/boy_2.4bpp"); +const u32 gEventObjectPic_Girl2[] = INCBIN_U32("graphics/event_objects/pics/people/girl_2.4bpp"); +const u32 gEventObjectPic_LittleBoy2[] = INCBIN_U32("graphics/event_objects/pics/people/little_boy_2.4bpp"); +const u32 gEventObjectPic_LittleGirl2[] = INCBIN_U32("graphics/event_objects/pics/people/little_girl_2.4bpp"); +const u32 gEventObjectPic_Boy3[] = INCBIN_U32("graphics/event_objects/pics/people/boy_3.4bpp"); +const u32 gEventObjectPic_Girl3[] = INCBIN_U32("graphics/event_objects/pics/people/girl_3.4bpp"); +const u32 gEventObjectPic_Boy4[] = INCBIN_U32("graphics/event_objects/pics/people/boy_4.4bpp"); +const u32 gEventObjectPic_Woman1[] = INCBIN_U32("graphics/event_objects/pics/people/woman_1.4bpp"); +const u32 gEventObjectPic_FatMan[] = INCBIN_U32("graphics/event_objects/pics/people/fat_man.4bpp"); +const u32 gEventObjectPic_Woman2[] = INCBIN_U32("graphics/event_objects/pics/people/woman_2.4bpp"); +const u32 gEventObjectPic_Man1[] = INCBIN_U32("graphics/event_objects/pics/people/man_1.4bpp"); +const u32 gEventObjectPic_Woman3[] = INCBIN_U32("graphics/event_objects/pics/people/woman_3.4bpp"); +const u32 gEventObjectPic_OldMan1[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_1.4bpp"); +const u32 gEventObjectPic_OldWoman1[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_1.4bpp"); +const u32 gEventObjectPic_Man2[] = INCBIN_U32("graphics/event_objects/pics/people/man_2.4bpp"); +const u32 gEventObjectPic_Woman4[] = INCBIN_U32("graphics/event_objects/pics/people/woman_4.4bpp"); +const u32 gEventObjectPic_Man3[] = INCBIN_U32("graphics/event_objects/pics/people/man_3.4bpp"); +const u32 gEventObjectPic_Woman5[] = INCBIN_U32("graphics/event_objects/pics/people/woman_5.4bpp"); +const u32 gEventObjectPic_Cook[] = INCBIN_U32("graphics/event_objects/pics/people/cook.4bpp"); +const u32 gEventObjectPic_Woman6[] = INCBIN_U32("graphics/event_objects/pics/people/woman_6.4bpp"); +const u32 gEventObjectPic_OldMan2[] = INCBIN_U32("graphics/event_objects/pics/people/old_man_2.4bpp"); +const u32 gEventObjectPic_OldWoman2[] = INCBIN_U32("graphics/event_objects/pics/people/old_woman_2.4bpp"); +const u32 gEventObjectPic_Camper[] = INCBIN_U32("graphics/event_objects/pics/people/camper.4bpp"); +const u32 gEventObjectPic_Picnicker[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker.4bpp"); +const u32 gEventObjectPic_Man4[] = INCBIN_U32("graphics/event_objects/pics/people/man_4.4bpp"); +const u32 gEventObjectPic_Woman7[] = INCBIN_U32("graphics/event_objects/pics/people/wwoman_7.4bpp"); +const u32 gEventObjectPic_Youngster[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/0.4bpp"); +const u32 gEventObjectPic_BugCatcher[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher.4bpp"); +const u32 gEventObjectPic_PsychicM[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m.4bpp"); +const u32 gEventObjectPic_SchoolKidM[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m.4bpp"); +const u32 gEventObjectPic_Maniac[] = INCBIN_U32("graphics/event_objects/pics/people/maniac.4bpp"); +const u32 gEventObjectPic_HexManiac[] = INCBIN_U32("graphics/event_objects/pics/people/hex_maniac.4bpp"); +const u32 gEventObjectPic_UnusedWoman[] = INCBIN_U32("graphics/event_objects/pics/people/unused_woman.4bpp"); +const u32 gEventObjectPic_SwimmerM[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_m.4bpp"); +const u32 gEventObjectPic_SwimmerF[] = INCBIN_U32("graphics/event_objects/pics/people/swimmer_f.4bpp"); +const u32 gEventObjectPic_BlackBelt[] = INCBIN_U32("graphics/event_objects/pics/people/black_belt.4bpp"); +const u32 gEventObjectPic_Beauty[] = INCBIN_U32("graphics/event_objects/pics/people/beauty.4bpp"); +const u32 gEventObjectPic_Scientist1[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_1.4bpp"); +const u32 gEventObjectPic_Lass[] = INCBIN_U32("graphics/event_objects/pics/people/lass.4bpp"); +const u32 gEventObjectPic_Gentleman[] = INCBIN_U32("graphics/event_objects/pics/people/gentleman.4bpp"); +const u32 gEventObjectPic_Sailor[] = INCBIN_U32("graphics/event_objects/pics/people/sailor.4bpp"); +const u32 gEventObjectPic_Fisherman[] = INCBIN_U32("graphics/event_objects/pics/people/fisherman.4bpp"); +const u32 gEventObjectPic_RunningTriathleteM[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_m.4bpp"); +const u32 gEventObjectPic_RunningTriathleteF[] = INCBIN_U32("graphics/event_objects/pics/people/running_triathlete_f.4bpp"); +const u32 gEventObjectPic_TuberF[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_f.4bpp"); +const u32 gEventObjectPic_TuberM[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m.4bpp"); +const u32 gEventObjectPic_Hiker[] = INCBIN_U32("graphics/event_objects/pics/people/hiker.4bpp"); +const u32 gEventObjectPic_CyclingTriathleteM[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_m.4bpp"); +const u32 gEventObjectPic_CyclingTriathleteF[] = INCBIN_U32("graphics/event_objects/pics/people/cycling_triathlete_f.4bpp"); +const u32 gEventObjectPic_Man5[] = INCBIN_U32("graphics/event_objects/pics/people/man_5.4bpp"); +const u32 gEventObjectPic_Man6[] = INCBIN_U32("graphics/event_objects/pics/people/man_6.4bpp"); +const u32 gEventObjectPic_Nurse[] = INCBIN_U32("graphics/event_objects/pics/people/nurse.4bpp"); const u32 gEventObjectPic_ItemBall[] = INCBIN_U32("graphics/event_objects/pics/misc/item_ball.4bpp"); -const u32 gEventObjectPic_ProfBirch_0[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch/0.4bpp"); -const u32 gEventObjectPic_ProfBirch_1[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch/1.4bpp"); -const u32 gEventObjectPic_ProfBirch_2[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch/2.4bpp"); -const u32 gEventObjectPic_ProfBirch_3[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch/3.4bpp"); -const u32 gEventObjectPic_ProfBirch_4[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch/4.4bpp"); -const u32 gEventObjectPic_ProfBirch_5[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch/5.4bpp"); -const u32 gEventObjectPic_ProfBirch_6[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch/6.4bpp"); -const u32 gEventObjectPic_ProfBirch_7[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch/7.4bpp"); -const u32 gEventObjectPic_ProfBirch_8[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch/8.4bpp"); -const u32 gEventObjectPic_ReporterM_0[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m/0.4bpp"); -const u32 gEventObjectPic_ReporterM_1[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m/1.4bpp"); -const u32 gEventObjectPic_ReporterM_2[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m/2.4bpp"); -const u32 gEventObjectPic_ReporterM_3[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m/3.4bpp"); -const u32 gEventObjectPic_ReporterM_4[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m/4.4bpp"); -const u32 gEventObjectPic_ReporterM_5[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m/5.4bpp"); -const u32 gEventObjectPic_ReporterM_6[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m/6.4bpp"); -const u32 gEventObjectPic_ReporterM_7[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m/7.4bpp"); -const u32 gEventObjectPic_ReporterM_8[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m/8.4bpp"); -const u32 gEventObjectPic_ReporterF_0[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f/0.4bpp"); -const u32 gEventObjectPic_ReporterF_1[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f/1.4bpp"); -const u32 gEventObjectPic_ReporterF_2[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f/2.4bpp"); -const u32 gEventObjectPic_ReporterF_3[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f/3.4bpp"); -const u32 gEventObjectPic_ReporterF_4[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f/4.4bpp"); -const u32 gEventObjectPic_ReporterF_5[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f/5.4bpp"); -const u32 gEventObjectPic_ReporterF_6[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f/6.4bpp"); -const u32 gEventObjectPic_ReporterF_7[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f/7.4bpp"); -const u32 gEventObjectPic_ReporterF_8[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f/8.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan1_0[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1/0.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan1_1[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1/1.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan1_2[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1/2.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan1_3[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1/3.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan1_4[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1/4.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan1_5[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1/5.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan1_6[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1/6.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan1_7[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1/7.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan1_8[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1/8.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan2_0[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2/0.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan2_1[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2/1.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan2_2[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2/2.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan2_3[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2/3.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan2_4[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2/4.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan2_5[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2/5.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan2_6[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2/6.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan2_7[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2/7.4bpp"); -const u32 gEventObjectPic_MauvilleOldMan2_8[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2/8.4bpp"); -const u32 gEventObjectPic_MartEmployee_0[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee/0.4bpp"); -const u32 gEventObjectPic_MartEmployee_1[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee/1.4bpp"); -const u32 gEventObjectPic_MartEmployee_2[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee/2.4bpp"); -const u32 gEventObjectPic_MartEmployee_3[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee/3.4bpp"); -const u32 gEventObjectPic_MartEmployee_4[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee/4.4bpp"); -const u32 gEventObjectPic_MartEmployee_5[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee/5.4bpp"); -const u32 gEventObjectPic_MartEmployee_6[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee/6.4bpp"); -const u32 gEventObjectPic_MartEmployee_7[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee/7.4bpp"); -const u32 gEventObjectPic_MartEmployee_8[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee/8.4bpp"); -const u32 gEventObjectPic_RooftopSaleWoman_0[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman/0.4bpp"); -const u32 gEventObjectPic_RooftopSaleWoman_1[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman/1.4bpp"); -const u32 gEventObjectPic_RooftopSaleWoman_2[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman/2.4bpp"); -const u32 gEventObjectPic_RooftopSaleWoman_3[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman/3.4bpp"); -const u32 gEventObjectPic_RooftopSaleWoman_4[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman/4.4bpp"); -const u32 gEventObjectPic_RooftopSaleWoman_5[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman/5.4bpp"); -const u32 gEventObjectPic_RooftopSaleWoman_6[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman/6.4bpp"); -const u32 gEventObjectPic_RooftopSaleWoman_7[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman/7.4bpp"); -const u32 gEventObjectPic_RooftopSaleWoman_8[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman/8.4bpp"); -const u32 gEventObjectPic_Teala_0[] = INCBIN_U32("graphics/event_objects/pics/people/teala/0.4bpp"); -const u32 gEventObjectPic_Teala_1[] = INCBIN_U32("graphics/event_objects/pics/people/teala/1.4bpp"); -const u32 gEventObjectPic_Teala_2[] = INCBIN_U32("graphics/event_objects/pics/people/teala/2.4bpp"); -const u32 gEventObjectPic_Teala_3[] = INCBIN_U32("graphics/event_objects/pics/people/teala/3.4bpp"); -const u32 gEventObjectPic_Teala_4[] = INCBIN_U32("graphics/event_objects/pics/people/teala/4.4bpp"); -const u32 gEventObjectPic_Teala_5[] = INCBIN_U32("graphics/event_objects/pics/people/teala/5.4bpp"); -const u32 gEventObjectPic_Teala_6[] = INCBIN_U32("graphics/event_objects/pics/people/teala/6.4bpp"); -const u32 gEventObjectPic_Teala_7[] = INCBIN_U32("graphics/event_objects/pics/people/teala/7.4bpp"); -const u32 gEventObjectPic_Teala_8[] = INCBIN_U32("graphics/event_objects/pics/people/teala/8.4bpp"); -const u32 gEventObjectPic_Artist_0[] = INCBIN_U32("graphics/event_objects/pics/people/artist/0.4bpp"); -const u32 gEventObjectPic_Artist_1[] = INCBIN_U32("graphics/event_objects/pics/people/artist/1.4bpp"); -const u32 gEventObjectPic_Artist_2[] = INCBIN_U32("graphics/event_objects/pics/people/artist/2.4bpp"); -const u32 gEventObjectPic_Artist_3[] = INCBIN_U32("graphics/event_objects/pics/people/artist/3.4bpp"); -const u32 gEventObjectPic_Artist_4[] = INCBIN_U32("graphics/event_objects/pics/people/artist/4.4bpp"); -const u32 gEventObjectPic_Artist_5[] = INCBIN_U32("graphics/event_objects/pics/people/artist/5.4bpp"); -const u32 gEventObjectPic_Artist_6[] = INCBIN_U32("graphics/event_objects/pics/people/artist/6.4bpp"); -const u32 gEventObjectPic_Artist_7[] = INCBIN_U32("graphics/event_objects/pics/people/artist/7.4bpp"); -const u32 gEventObjectPic_Artist_8[] = INCBIN_U32("graphics/event_objects/pics/people/artist/8.4bpp"); -const u32 gEventObjectPic_Cameraman_0[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman/0.4bpp"); -const u32 gEventObjectPic_Cameraman_1[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman/1.4bpp"); -const u32 gEventObjectPic_Cameraman_2[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman/2.4bpp"); -const u32 gEventObjectPic_Cameraman_3[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman/3.4bpp"); -const u32 gEventObjectPic_Cameraman_4[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman/4.4bpp"); -const u32 gEventObjectPic_Cameraman_5[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman/5.4bpp"); -const u32 gEventObjectPic_Cameraman_6[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman/6.4bpp"); -const u32 gEventObjectPic_Cameraman_7[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman/7.4bpp"); -const u32 gEventObjectPic_Cameraman_8[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman/8.4bpp"); -const u32 gEventObjectPic_Scientist2_0[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2/0.4bpp"); -const u32 gEventObjectPic_Scientist2_1[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2/1.4bpp"); -const u32 gEventObjectPic_Scientist2_2[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2/2.4bpp"); -const u32 gEventObjectPic_Scientist2_3[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2/3.4bpp"); -const u32 gEventObjectPic_Scientist2_4[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2/4.4bpp"); -const u32 gEventObjectPic_Scientist2_5[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2/5.4bpp"); -const u32 gEventObjectPic_Scientist2_6[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2/6.4bpp"); -const u32 gEventObjectPic_Scientist2_7[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2/7.4bpp"); -const u32 gEventObjectPic_Scientist2_8[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2/8.4bpp"); -const u32 gEventObjectPic_Man7_0[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/0.4bpp"); -const u32 gEventObjectPic_Man7_1[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/1.4bpp"); -const u32 gEventObjectPic_Man7_2[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/2.4bpp"); -const u32 gEventObjectPic_Man7_3[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/3.4bpp"); -const u32 gEventObjectPic_Man7_4[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/4.4bpp"); -const u32 gEventObjectPic_Man7_5[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/5.4bpp"); -const u32 gEventObjectPic_Man7_6[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/6.4bpp"); -const u32 gEventObjectPic_Man7_7[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/7.4bpp"); -const u32 gEventObjectPic_Man7_8[] = INCBIN_U32("graphics/event_objects/pics/people/man_7/8.4bpp"); +const u32 gEventObjectPic_ProfBirch[] = INCBIN_U32("graphics/event_objects/pics/people/prof_birch.4bpp"); +const u32 gEventObjectPic_ReporterM[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_m.4bpp"); +const u32 gEventObjectPic_ReporterF[] = INCBIN_U32("graphics/event_objects/pics/people/reporter_f.4bpp"); +const u32 gEventObjectPic_MauvilleOldMan1[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_1.4bpp"); +const u32 gEventObjectPic_MauvilleOldMan2[] = INCBIN_U32("graphics/event_objects/pics/people/mauville_old_man_2.4bpp"); +const u32 gEventObjectPic_MartEmployee[] = INCBIN_U32("graphics/event_objects/pics/people/mart_employee.4bpp"); +const u32 gEventObjectPic_RooftopSaleWoman[] = INCBIN_U32("graphics/event_objects/pics/people/rooftop_sale_woman.4bpp"); +const u32 gEventObjectPic_Teala[] = INCBIN_U32("graphics/event_objects/pics/people/teala.4bpp"); +const u32 gEventObjectPic_Artist[] = INCBIN_U32("graphics/event_objects/pics/people/artist.4bpp"); +const u32 gEventObjectPic_Cameraman[] = INCBIN_U32("graphics/event_objects/pics/people/cameraman.4bpp"); +const u32 gEventObjectPic_Scientist2[] = INCBIN_U32("graphics/event_objects/pics/people/scientist_2.4bpp"); +const u32 gEventObjectPic_Man7[] = INCBIN_U32("graphics/event_objects/pics/people/man_7.4bpp"); const u32 gEventObjectPic_AquaMemberM[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/aqua_member_m.4bpp"); const u32 gEventObjectPic_AquaMemberF[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/aqua_member_f.4bpp"); const u32 gEventObjectPic_MagmaMemberM[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/magma_member_m.4bpp"); const u32 gEventObjectPic_MagmaMemberF[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/magma_member_f.4bpp"); -const u32 gEventObjectPic_Sidney_0[] = INCBIN_U32("graphics/event_objects/pics/people/sidney/0.4bpp"); -const u32 gEventObjectPic_Sidney_1[] = INCBIN_U32("graphics/event_objects/pics/people/sidney/1.4bpp"); -const u32 gEventObjectPic_Sidney_2[] = INCBIN_U32("graphics/event_objects/pics/people/sidney/2.4bpp"); -const u32 gEventObjectPic_Phoebe_0[] = INCBIN_U32("graphics/event_objects/pics/people/phoebe/0.4bpp"); -const u32 gEventObjectPic_Phoebe_1[] = INCBIN_U32("graphics/event_objects/pics/people/phoebe/1.4bpp"); -const u32 gEventObjectPic_Phoebe_2[] = INCBIN_U32("graphics/event_objects/pics/people/phoebe/2.4bpp"); -const u32 gEventObjectPic_Glacia_0[] = INCBIN_U32("graphics/event_objects/pics/people/glacia/0.4bpp"); -const u32 gEventObjectPic_Glacia_1[] = INCBIN_U32("graphics/event_objects/pics/people/glacia/1.4bpp"); -const u32 gEventObjectPic_Glacia_2[] = INCBIN_U32("graphics/event_objects/pics/people/glacia/2.4bpp"); -const u32 gEventObjectPic_Drake_0[] = INCBIN_U32("graphics/event_objects/pics/people/drake/0.4bpp"); -const u32 gEventObjectPic_Drake_1[] = INCBIN_U32("graphics/event_objects/pics/people/drake/1.4bpp"); -const u32 gEventObjectPic_Drake_2[] = INCBIN_U32("graphics/event_objects/pics/people/drake/2.4bpp"); -const u32 gEventObjectPic_Roxanne_0[] = INCBIN_U32("graphics/event_objects/pics/people/roxanne/0.4bpp"); -const u32 gEventObjectPic_Roxanne_1[] = INCBIN_U32("graphics/event_objects/pics/people/roxanne/1.4bpp"); -const u32 gEventObjectPic_Roxanne_2[] = INCBIN_U32("graphics/event_objects/pics/people/roxanne/2.4bpp"); -const u32 gEventObjectPic_Brawly_0[] = INCBIN_U32("graphics/event_objects/pics/people/brawly/0.4bpp"); -const u32 gEventObjectPic_Brawly_1[] = INCBIN_U32("graphics/event_objects/pics/people/brawly/1.4bpp"); -const u32 gEventObjectPic_Brawly_2[] = INCBIN_U32("graphics/event_objects/pics/people/brawly/2.4bpp"); -const u32 gEventObjectPic_Wattson_0[] = INCBIN_U32("graphics/event_objects/pics/people/wattson/0.4bpp"); -const u32 gEventObjectPic_Wattson_1[] = INCBIN_U32("graphics/event_objects/pics/people/wattson/1.4bpp"); -const u32 gEventObjectPic_Wattson_2[] = INCBIN_U32("graphics/event_objects/pics/people/wattson/2.4bpp"); -const u32 gEventObjectPic_Flannery_0[] = INCBIN_U32("graphics/event_objects/pics/people/flannery/0.4bpp"); -const u32 gEventObjectPic_Flannery_1[] = INCBIN_U32("graphics/event_objects/pics/people/flannery/1.4bpp"); -const u32 gEventObjectPic_Flannery_2[] = INCBIN_U32("graphics/event_objects/pics/people/flannery/2.4bpp"); -const u32 gEventObjectPic_Norman_0[] = INCBIN_U32("graphics/event_objects/pics/people/norman/0.4bpp"); -const u32 gEventObjectPic_Norman_1[] = INCBIN_U32("graphics/event_objects/pics/people/norman/1.4bpp"); -const u32 gEventObjectPic_Norman_2[] = INCBIN_U32("graphics/event_objects/pics/people/norman/2.4bpp"); -const u32 gEventObjectPic_Norman_3[] = INCBIN_U32("graphics/event_objects/pics/people/norman/3.4bpp"); -const u32 gEventObjectPic_Norman_4[] = INCBIN_U32("graphics/event_objects/pics/people/norman/4.4bpp"); -const u32 gEventObjectPic_Norman_5[] = INCBIN_U32("graphics/event_objects/pics/people/norman/5.4bpp"); -const u32 gEventObjectPic_Norman_6[] = INCBIN_U32("graphics/event_objects/pics/people/norman/6.4bpp"); -const u32 gEventObjectPic_Norman_7[] = INCBIN_U32("graphics/event_objects/pics/people/norman/7.4bpp"); -const u32 gEventObjectPic_Norman_8[] = INCBIN_U32("graphics/event_objects/pics/people/norman/8.4bpp"); -const u32 gEventObjectPic_Winona_0[] = INCBIN_U32("graphics/event_objects/pics/people/winona/0.4bpp"); -const u32 gEventObjectPic_Winona_1[] = INCBIN_U32("graphics/event_objects/pics/people/winona/1.4bpp"); -const u32 gEventObjectPic_Winona_2[] = INCBIN_U32("graphics/event_objects/pics/people/winona/2.4bpp"); -const u32 gEventObjectPic_Liza_0[] = INCBIN_U32("graphics/event_objects/pics/people/liza/0.4bpp"); -const u32 gEventObjectPic_Liza_1[] = INCBIN_U32("graphics/event_objects/pics/people/liza/1.4bpp"); -const u32 gEventObjectPic_Liza_2[] = INCBIN_U32("graphics/event_objects/pics/people/liza/2.4bpp"); -const u32 gEventObjectPic_Tate_0[] = INCBIN_U32("graphics/event_objects/pics/people/tate/0.4bpp"); -const u32 gEventObjectPic_Tate_1[] = INCBIN_U32("graphics/event_objects/pics/people/tate/1.4bpp"); -const u32 gEventObjectPic_Tate_2[] = INCBIN_U32("graphics/event_objects/pics/people/tate/2.4bpp"); -const u32 gEventObjectPic_Wallace_0[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/0.4bpp"); -const u32 gEventObjectPic_Wallace_1[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/1.4bpp"); -const u32 gEventObjectPic_Wallace_2[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/2.4bpp"); -const u32 gEventObjectPic_Wallace_3[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/3.4bpp"); -const u32 gEventObjectPic_Wallace_4[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/4.4bpp"); -const u32 gEventObjectPic_Wallace_5[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/5.4bpp"); -const u32 gEventObjectPic_Wallace_6[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/6.4bpp"); -const u32 gEventObjectPic_Wallace_7[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/7.4bpp"); -const u32 gEventObjectPic_Wallace_8[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/8.4bpp"); -const u32 gEventObjectPic_Steven_0[] = INCBIN_U32("graphics/event_objects/pics/people/steven/0.4bpp"); -const u32 gEventObjectPic_Steven_1[] = INCBIN_U32("graphics/event_objects/pics/people/steven/1.4bpp"); -const u32 gEventObjectPic_Steven_2[] = INCBIN_U32("graphics/event_objects/pics/people/steven/2.4bpp"); -const u32 gEventObjectPic_Steven_3[] = INCBIN_U32("graphics/event_objects/pics/people/steven/3.4bpp"); -const u32 gEventObjectPic_Steven_4[] = INCBIN_U32("graphics/event_objects/pics/people/steven/4.4bpp"); -const u32 gEventObjectPic_Steven_5[] = INCBIN_U32("graphics/event_objects/pics/people/steven/5.4bpp"); -const u32 gEventObjectPic_Steven_6[] = INCBIN_U32("graphics/event_objects/pics/people/steven/6.4bpp"); -const u32 gEventObjectPic_Steven_7[] = INCBIN_U32("graphics/event_objects/pics/people/steven/7.4bpp"); -const u32 gEventObjectPic_Steven_8[] = INCBIN_U32("graphics/event_objects/pics/people/steven/8.4bpp"); -const u32 gEventObjectPic_Wally_0[] = INCBIN_U32("graphics/event_objects/pics/people/wally/0.4bpp"); -const u32 gEventObjectPic_Wally_1[] = INCBIN_U32("graphics/event_objects/pics/people/wally/1.4bpp"); -const u32 gEventObjectPic_Wally_2[] = INCBIN_U32("graphics/event_objects/pics/people/wally/2.4bpp"); -const u32 gEventObjectPic_Wally_3[] = INCBIN_U32("graphics/event_objects/pics/people/wally/3.4bpp"); -const u32 gEventObjectPic_Wally_4[] = INCBIN_U32("graphics/event_objects/pics/people/wally/4.4bpp"); -const u32 gEventObjectPic_Wally_5[] = INCBIN_U32("graphics/event_objects/pics/people/wally/5.4bpp"); -const u32 gEventObjectPic_Wally_6[] = INCBIN_U32("graphics/event_objects/pics/people/wally/6.4bpp"); -const u32 gEventObjectPic_Wally_7[] = INCBIN_U32("graphics/event_objects/pics/people/wally/7.4bpp"); -const u32 gEventObjectPic_Wally_8[] = INCBIN_U32("graphics/event_objects/pics/people/wally/8.4bpp"); -const u32 gEventObjectPic_RubySapphireLittleBoy_0[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_little_boy/0.4bpp"); -const u32 gEventObjectPic_RubySapphireLittleBoy_1[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_little_boy/1.4bpp"); -const u32 gEventObjectPic_RubySapphireLittleBoy_2[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_little_boy/2.4bpp"); -const u32 gEventObjectPic_RubySapphireLittleBoy_3[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_little_boy/3.4bpp"); -const u32 gEventObjectPic_RubySapphireLittleBoy_4[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_little_boy/4.4bpp"); -const u32 gEventObjectPic_RubySapphireLittleBoy_5[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_little_boy/5.4bpp"); -const u32 gEventObjectPic_RubySapphireLittleBoy_6[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_little_boy/6.4bpp"); -const u32 gEventObjectPic_RubySapphireLittleBoy_7[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_little_boy/7.4bpp"); -const u32 gEventObjectPic_RubySapphireLittleBoy_8[] = INCBIN_U32("graphics/event_objects/pics/people/ruby_sapphire_little_boy/8.4bpp"); -const u32 gEventObjectPic_HotSpringsOldWoman_0[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman/0.4bpp"); -const u32 gEventObjectPic_HotSpringsOldWoman_1[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman/1.4bpp"); -const u32 gEventObjectPic_HotSpringsOldWoman_2[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman/2.4bpp"); -const u32 gEventObjectPic_HotSpringsOldWoman_3[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman/3.4bpp"); -const u32 gEventObjectPic_HotSpringsOldWoman_4[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman/4.4bpp"); -const u32 gEventObjectPic_HotSpringsOldWoman_5[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman/5.4bpp"); -const u32 gEventObjectPic_HotSpringsOldWoman_6[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman/6.4bpp"); -const u32 gEventObjectPic_HotSpringsOldWoman_7[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman/7.4bpp"); -const u32 gEventObjectPic_HotSpringsOldWoman_8[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman/8.4bpp"); +const u32 gEventObjectPic_Sidney[] = INCBIN_U32("graphics/event_objects/pics/people/elite_four/sidney.4bpp"); +const u32 gEventObjectPic_Phoebe[] = INCBIN_U32("graphics/event_objects/pics/people/elite_four/phoebe.4bpp"); +const u32 gEventObjectPic_Glacia[] = INCBIN_U32("graphics/event_objects/pics/people/elite_four/glacia.4bpp"); +const u32 gEventObjectPic_Drake[] = INCBIN_U32("graphics/event_objects/pics/people/elite_four/drake.4bpp"); +const u32 gEventObjectPic_Roxanne[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/roxanne.4bpp"); +const u32 gEventObjectPic_Brawly[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/brawly.4bpp"); +const u32 gEventObjectPic_Wattson[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/wattson.4bpp"); +const u32 gEventObjectPic_Flannery[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/flannery.4bpp"); +const u32 gEventObjectPic_Norman[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/norman.4bpp"); +const u32 gEventObjectPic_Winona[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/winona.4bpp"); +const u32 gEventObjectPic_Liza[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/liza.4bpp"); +const u32 gEventObjectPic_Tate[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/tate.4bpp"); +const u32 gEventObjectPic_Wallace[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/wallace.4bpp"); +const u32 gEventObjectPic_Steven[] = INCBIN_U32("graphics/event_objects/pics/people/steven.4bpp"); +const u32 gEventObjectPic_Wally[] = INCBIN_U32("graphics/event_objects/pics/people/wally.4bpp"); +const u32 gEventObjectPic_RubySapphireLittleBoy[] = INCBIN_U32("graphics/event_objects/pics/people/rs_little_boy.4bpp"); +const u32 gEventObjectPic_HotSpringsOldWoman[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman.4bpp"); const u32 gEventObjectPic_LatiasLatios_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/latias_latios/0.4bpp"); const u32 gEventObjectPic_LatiasLatios_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/latias_latios/1.4bpp"); const u32 gEventObjectPic_LatiasLatios_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/latias_latios/2.4bpp"); -const u32 gEventObjectPic_Boy5_0[] = INCBIN_U32("graphics/event_objects/pics/people/boy_5/0.4bpp"); -const u32 gEventObjectPic_Boy5_1[] = INCBIN_U32("graphics/event_objects/pics/people/boy_5/1.4bpp"); -const u32 gEventObjectPic_Boy5_2[] = INCBIN_U32("graphics/event_objects/pics/people/boy_5/2.4bpp"); -const u32 gEventObjectPic_ContestOldMan_0[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/0.4bpp"); -const u32 gEventObjectPic_ContestOldMan_1[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/1.4bpp"); -const u32 gEventObjectPic_ContestOldMan_2[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/2.4bpp"); -const u32 gEventObjectPic_ContestOldMan_3[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/3.4bpp"); -const u32 gEventObjectPic_ContestOldMan_4[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/4.4bpp"); -const u32 gEventObjectPic_ContestOldMan_5[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/5.4bpp"); -const u32 gEventObjectPic_ContestOldMan_6[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/6.4bpp"); -const u32 gEventObjectPic_ContestOldMan_7[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/7.4bpp"); -const u32 gEventObjectPic_ContestOldMan_8[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man/8.4bpp"); +const u32 gEventObjectPic_Boy5[] = INCBIN_U32("graphics/event_objects/pics/people/boy_5.4bpp"); +const u32 gEventObjectPic_ContestOldMan[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man.4bpp"); const u32 gEventObjectPic_Archie[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/archie.4bpp"); const u32 gEventObjectPic_Maxie[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/maxie.4bpp"); const u32 gEventObjectPic_KyogreFront_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre_front/0.4bpp"); @@ -843,27 +204,11 @@ const u32 gEventObjectPic_Wingull_1[] = INCBIN_U32("graphics/event_objects/pics/ const u32 gEventObjectPic_Wingull_4[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull/4.4bpp"); const u32 gEventObjectPic_Wingull_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull/2.4bpp"); const u32 gEventObjectPic_Wingull_5[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull/5.4bpp"); -const u32 gEventObjectPic_TuberMSwimming_0[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming/0.4bpp"); -const u32 gEventObjectPic_TuberMSwimming_1[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming/1.4bpp"); -const u32 gEventObjectPic_TuberMSwimming_2[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming/2.4bpp"); -const u32 gEventObjectPic_TuberMSwimming_3[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming/3.4bpp"); -const u32 gEventObjectPic_TuberMSwimming_4[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming/4.4bpp"); -const u32 gEventObjectPic_TuberMSwimming_5[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming/5.4bpp"); -const u32 gEventObjectPic_TuberMSwimming_6[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming/6.4bpp"); -const u32 gEventObjectPic_TuberMSwimming_7[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming/7.4bpp"); -const u32 gEventObjectPic_TuberMSwimming_8[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming/8.4bpp"); +const u32 gEventObjectPic_TuberMSwimming[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming.4bpp"); const u32 gEventObjectPic_Azurill_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azurill/0.4bpp"); const u32 gEventObjectPic_Azurill_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azurill/1.4bpp"); const u32 gEventObjectPic_Azurill_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azurill/2.4bpp"); -const u32 gEventObjectPic_Mom_0[] = INCBIN_U32("graphics/event_objects/pics/people/mom/0.4bpp"); -const u32 gEventObjectPic_Mom_1[] = INCBIN_U32("graphics/event_objects/pics/people/mom/1.4bpp"); -const u32 gEventObjectPic_Mom_2[] = INCBIN_U32("graphics/event_objects/pics/people/mom/2.4bpp"); -const u32 gEventObjectPic_Mom_3[] = INCBIN_U32("graphics/event_objects/pics/people/mom/3.4bpp"); -const u32 gEventObjectPic_Mom_4[] = INCBIN_U32("graphics/event_objects/pics/people/mom/4.4bpp"); -const u32 gEventObjectPic_Mom_5[] = INCBIN_U32("graphics/event_objects/pics/people/mom/5.4bpp"); -const u32 gEventObjectPic_Mom_6[] = INCBIN_U32("graphics/event_objects/pics/people/mom/6.4bpp"); -const u32 gEventObjectPic_Mom_7[] = INCBIN_U32("graphics/event_objects/pics/people/mom/7.4bpp"); -const u32 gEventObjectPic_Mom_8[] = INCBIN_U32("graphics/event_objects/pics/people/mom/8.4bpp"); +const u32 gEventObjectPic_Mom[] = INCBIN_U32("graphics/event_objects/pics/people/mom.4bpp"); const u16 gEventObjectPalette22[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_22.gbapal"); const u16 gEventObjectPalette23[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_23.gbapal"); const u16 gEventObjectPalette24[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_24.gbapal"); @@ -1159,13 +504,7 @@ const u32 gEventObjectPic_TamatoBerryTree_5[] = INCBIN_U32("graphics/event_objec const u32 gFieldEffectObjectPic_SurfBlob_0[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob/0.4bpp"); const u32 gFieldEffectObjectPic_SurfBlob_1[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob/1.4bpp"); const u32 gFieldEffectObjectPic_SurfBlob_2[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob/2.4bpp"); -const u32 gEventObjectPic_QuintyPlump_0[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump/0.4bpp"); -const u32 gEventObjectPic_QuintyPlump_1[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump/1.4bpp"); -const u32 gEventObjectPic_QuintyPlump_2[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump/2.4bpp"); -const u32 gEventObjectPic_QuintyPlump_3[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump/3.4bpp"); -const u32 gEventObjectPic_QuintyPlump_4[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump/4.4bpp"); -const u32 gEventObjectPic_QuintyPlump_5[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump/5.4bpp"); -const u32 gEventObjectPic_QuintyPlump_6[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump/6.4bpp"); +const u32 gEventObjectPic_QuintyPlump[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump.4bpp"); const u16 gEventObjectPalette12[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_12.gbapal"); const u16 gEventObjectPalette13[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_13.gbapal"); const u32 gFieldEffectObjectPic_ShadowSmall[] = INCBIN_U32("graphics/event_objects/pics/effects/shadow_small.4bpp"); @@ -1311,24 +650,8 @@ const u32 gFieldEffectObjectPic_Unknown35_0[] = INCBIN_U32("graphics/event_objec const u32 gFieldEffectObjectPic_Unknown35_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35/1.4bpp"); const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_03.gbapal"); const u32 gFieldEffectObjectPic_Bird[] = INCBIN_U32("graphics/event_objects/pics/effects/bird.4bpp"); -const u32 gEventObjectPic_Juan_0[] = INCBIN_U32("graphics/event_objects/pics/people/juan/0.4bpp"); -const u32 gEventObjectPic_Juan_1[] = INCBIN_U32("graphics/event_objects/pics/people/juan/1.4bpp"); -const u32 gEventObjectPic_Juan_2[] = INCBIN_U32("graphics/event_objects/pics/people/juan/2.4bpp"); -const u32 gEventObjectPic_Juan_3[] = INCBIN_U32("graphics/event_objects/pics/people/juan/3.4bpp"); -const u32 gEventObjectPic_Juan_4[] = INCBIN_U32("graphics/event_objects/pics/people/juan/4.4bpp"); -const u32 gEventObjectPic_Juan_5[] = INCBIN_U32("graphics/event_objects/pics/people/juan/5.4bpp"); -const u32 gEventObjectPic_Juan_6[] = INCBIN_U32("graphics/event_objects/pics/people/juan/6.4bpp"); -const u32 gEventObjectPic_Juan_7[] = INCBIN_U32("graphics/event_objects/pics/people/juan/7.4bpp"); -const u32 gEventObjectPic_Juan_8[] = INCBIN_U32("graphics/event_objects/pics/people/juan/8.4bpp"); -const u32 gEventObjectPic_Scott_0[] = INCBIN_U32("graphics/event_objects/pics/people/scott/0.4bpp"); -const u32 gEventObjectPic_Scott_1[] = INCBIN_U32("graphics/event_objects/pics/people/scott/1.4bpp"); -const u32 gEventObjectPic_Scott_2[] = INCBIN_U32("graphics/event_objects/pics/people/scott/2.4bpp"); -const u32 gEventObjectPic_Scott_3[] = INCBIN_U32("graphics/event_objects/pics/people/scott/3.4bpp"); -const u32 gEventObjectPic_Scott_4[] = INCBIN_U32("graphics/event_objects/pics/people/scott/4.4bpp"); -const u32 gEventObjectPic_Scott_5[] = INCBIN_U32("graphics/event_objects/pics/people/scott/5.4bpp"); -const u32 gEventObjectPic_Scott_6[] = INCBIN_U32("graphics/event_objects/pics/people/scott/6.4bpp"); -const u32 gEventObjectPic_Scott_7[] = INCBIN_U32("graphics/event_objects/pics/people/scott/7.4bpp"); -const u32 gEventObjectPic_Scott_8[] = INCBIN_U32("graphics/event_objects/pics/people/scott/8.4bpp"); +const u32 gEventObjectPic_Juan[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/juan.4bpp"); +const u32 gEventObjectPic_Scott[] = INCBIN_U32("graphics/event_objects/pics/people/scott.4bpp"); const u32 gEventObjectPic_Statue[] = INCBIN_U32("graphics/event_objects/pics/misc/statue.4bpp"); const u32 gEventObjectPic_Kirlia_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/0.4bpp"); const u32 gEventObjectPic_Kirlia_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/1.4bpp"); @@ -1348,12 +671,8 @@ const u32 gEventObjectPic_Dusclops_5[] = INCBIN_U32("graphics/event_objects/pics const u32 gEventObjectPic_Dusclops_6[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/6.4bpp"); const u32 gEventObjectPic_Dusclops_7[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/7.4bpp"); const u32 gEventObjectPic_Dusclops_8[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/8.4bpp"); -const u32 gEventObjectPic_MysteryEventDeliveryman_0[] = INCBIN_U32("graphics/event_objects/pics/people/mystery_event_deliveryman/0.4bpp"); -const u32 gEventObjectPic_MysteryEventDeliveryman_1[] = INCBIN_U32("graphics/event_objects/pics/people/mystery_event_deliveryman/1.4bpp"); -const u32 gEventObjectPic_MysteryEventDeliveryman_2[] = INCBIN_U32("graphics/event_objects/pics/people/mystery_event_deliveryman/2.4bpp"); -const u32 gEventObjectPic_UnionRoomAttendant_0[] = INCBIN_U32("graphics/event_objects/pics/people/union_room_attendant/0.4bpp"); -const u32 gEventObjectPic_UnionRoomAttendant_1[] = INCBIN_U32("graphics/event_objects/pics/people/union_room_attendant/1.4bpp"); -const u32 gEventObjectPic_UnionRoomAttendant_2[] = INCBIN_U32("graphics/event_objects/pics/people/union_room_attendant/2.4bpp"); +const u32 gEventObjectPic_MysteryEventDeliveryman[] = INCBIN_U32("graphics/event_objects/pics/people/mystery_event_deliveryman.4bpp"); +const u32 gEventObjectPic_UnionRoomAttendant[] = INCBIN_U32("graphics/event_objects/pics/people/union_room_attendant.4bpp"); const u32 gEventObjectPic_MovingBox[] = INCBIN_U32("graphics/event_objects/pics/misc/moving_box.4bpp"); const u16 gEventObjectPalette19[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_19.gbapal"); const u32 gEventObjectPic_Sudowoodo_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/sudowoodo/0.4bpp"); @@ -1369,24 +688,8 @@ const u32 gEventObjectPic_Mew_6[] = INCBIN_U32("graphics/event_objects/pics/poke const u32 gEventObjectPic_Mew_7[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/7.4bpp"); const u32 gEventObjectPic_Mew_8[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/8.4bpp"); const u16 gEventObjectPalette28[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_28.gbapal"); -const u32 gEventObjectPic_Red_0[] = INCBIN_U32("graphics/event_objects/pics/people/red/0.4bpp"); -const u32 gEventObjectPic_Red_1[] = INCBIN_U32("graphics/event_objects/pics/people/red/1.4bpp"); -const u32 gEventObjectPic_Red_2[] = INCBIN_U32("graphics/event_objects/pics/people/red/2.4bpp"); -const u32 gEventObjectPic_Red_3[] = INCBIN_U32("graphics/event_objects/pics/people/red/3.4bpp"); -const u32 gEventObjectPic_Red_4[] = INCBIN_U32("graphics/event_objects/pics/people/red/4.4bpp"); -const u32 gEventObjectPic_Red_5[] = INCBIN_U32("graphics/event_objects/pics/people/red/5.4bpp"); -const u32 gEventObjectPic_Red_6[] = INCBIN_U32("graphics/event_objects/pics/people/red/6.4bpp"); -const u32 gEventObjectPic_Red_7[] = INCBIN_U32("graphics/event_objects/pics/people/red/7.4bpp"); -const u32 gEventObjectPic_Red_8[] = INCBIN_U32("graphics/event_objects/pics/people/red/8.4bpp"); -const u32 gEventObjectPic_Leaf_0[] = INCBIN_U32("graphics/event_objects/pics/people/leaf/0.4bpp"); -const u32 gEventObjectPic_Leaf_1[] = INCBIN_U32("graphics/event_objects/pics/people/leaf/1.4bpp"); -const u32 gEventObjectPic_Leaf_2[] = INCBIN_U32("graphics/event_objects/pics/people/leaf/2.4bpp"); -const u32 gEventObjectPic_Leaf_3[] = INCBIN_U32("graphics/event_objects/pics/people/leaf/3.4bpp"); -const u32 gEventObjectPic_Leaf_4[] = INCBIN_U32("graphics/event_objects/pics/people/leaf/4.4bpp"); -const u32 gEventObjectPic_Leaf_5[] = INCBIN_U32("graphics/event_objects/pics/people/leaf/5.4bpp"); -const u32 gEventObjectPic_Leaf_6[] = INCBIN_U32("graphics/event_objects/pics/people/leaf/6.4bpp"); -const u32 gEventObjectPic_Leaf_7[] = INCBIN_U32("graphics/event_objects/pics/people/leaf/7.4bpp"); -const u32 gEventObjectPic_Leaf_8[] = INCBIN_U32("graphics/event_objects/pics/people/leaf/8.4bpp"); +const u32 gEventObjectPic_Red[] = INCBIN_U32("graphics/event_objects/pics/people/red.4bpp"); +const u32 gEventObjectPic_Leaf[] = INCBIN_U32("graphics/event_objects/pics/people/leaf.4bpp"); const u16 gEventObjectPalette30[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_30.gbapal"); const u32 gEventObjectPic_BirthIslandStone[] = INCBIN_U32("graphics/event_objects/pics/misc/birth_island_stone.4bpp"); const u16 gEventObjectPalette29[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_29.gbapal"); -- cgit v1.2.3 From 45b730e4747df42c5bd2dd775d34cdaed51b4045 Mon Sep 17 00:00:00 2001 From: garak Date: Tue, 7 Aug 2018 23:05:48 -0400 Subject: copy heal_location changes from pokeruby --- src/heal_location.c | 96 +++++++++++++++++++++-------------------------------- src/overworld.c | 6 ++-- 2 files changed, 40 insertions(+), 62 deletions(-) (limited to 'src') diff --git a/src/heal_location.c b/src/heal_location.c index aa90fe1ae..41b9898fe 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 772f8a057..d85af9e4d 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); } -- cgit v1.2.3 From 90896e38c966df57ca9e4434a1d726ccbfa448e7 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 8 Aug 2018 01:37:12 -0700 Subject: Begin porting/decompiling field_specials --- 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 +- 9 files changed, 1701 insertions(+), 44 deletions(-) create mode 100644 src/field_specials.c (limited to 'src') diff --git a/src/battle_setup.c b/src/battle_setup.c index e478af936..2955a33fc 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 ccbb0c24b..91eb5f16d 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 168f3e8a3..a88e4b549 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 34b6089df..f56548068 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 39977808f..6f33b2c9b 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 000000000..a0d640ccd --- /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 aa6945161..99eb6d65a 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 5176d4996..4ed856c09 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 9b96d416c..3d95d75ac 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; -- cgit v1.2.3 From dea0bba64e255615e6a5d7e712dd6150afd00b0b Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Thu, 9 Aug 2018 00:55:32 +0100 Subject: Merge "pokemon" frames --- src/data/field_event_obj/event_object_graphics.h | 120 ++++------------------- 1 file changed, 21 insertions(+), 99 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index d2307a932..546b26f17 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -161,53 +161,24 @@ const u32 gEventObjectPic_Steven[] = INCBIN_U32("graphics/event_objects/pics/peo const u32 gEventObjectPic_Wally[] = INCBIN_U32("graphics/event_objects/pics/people/wally.4bpp"); const u32 gEventObjectPic_RubySapphireLittleBoy[] = INCBIN_U32("graphics/event_objects/pics/people/rs_little_boy.4bpp"); const u32 gEventObjectPic_HotSpringsOldWoman[] = INCBIN_U32("graphics/event_objects/pics/people/hot_springs_old_woman.4bpp"); -const u32 gEventObjectPic_LatiasLatios_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/latias_latios/0.4bpp"); -const u32 gEventObjectPic_LatiasLatios_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/latias_latios/1.4bpp"); -const u32 gEventObjectPic_LatiasLatios_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/latias_latios/2.4bpp"); +const u32 gEventObjectPic_LatiasLatios[] = INCBIN_U32("graphics/event_objects/pics/pokemon/latias_latios.4bpp"); const u32 gEventObjectPic_Boy5[] = INCBIN_U32("graphics/event_objects/pics/people/boy_5.4bpp"); const u32 gEventObjectPic_ContestOldMan[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man.4bpp"); const u32 gEventObjectPic_Archie[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/archie.4bpp"); const u32 gEventObjectPic_Maxie[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/maxie.4bpp"); -const u32 gEventObjectPic_KyogreFront_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre_front/0.4bpp"); -const u32 gEventObjectPic_KyogreFront_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre_front/1.4bpp"); -const u32 gEventObjectPic_KyogreSide_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre_side/0.4bpp"); -const u32 gEventObjectPic_KyogreSide_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre_side/1.4bpp"); -const u32 gEventObjectPic_GroudonFront_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/groudon_front/0.4bpp"); -const u32 gEventObjectPic_GroudonFront_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/groudon_front/1.4bpp"); -const u32 gEventObjectPic_GroudonSide_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/groudon_side/0.4bpp"); -const u32 gEventObjectPic_GroudonSide_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/groudon_side/1.4bpp"); +const u32 gEventObjectPic_KyogreFront[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre.4bpp"); +const u32 gEventObjectPic_GroudonFront[] = INCBIN_U32("graphics/event_objects/pics/pokemon/groudon.4bpp"); const u32 gEventObjectPic_Regi[] = INCBIN_U32("graphics/event_objects/pics/pokemon/regi.4bpp"); -const u32 gEventObjectPic_Skitty_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/skitty/0.4bpp"); -const u32 gEventObjectPic_Skitty_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/skitty/1.4bpp"); -const u32 gEventObjectPic_Skitty_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/skitty/2.4bpp"); -const u32 gEventObjectPic_Kecleon_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kecleon/0.4bpp"); -const u32 gEventObjectPic_Kecleon_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kecleon/1.4bpp"); -const u32 gEventObjectPic_Kecleon_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kecleon/2.4bpp"); -const u32 gEventObjectPic_Rayquaza_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza/0.4bpp"); -const u32 gEventObjectPic_Rayquaza_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza/1.4bpp"); -const u32 gEventObjectPic_Rayquaza_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza/2.4bpp"); -const u32 gEventObjectPic_Rayquaza_3[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza/3.4bpp"); -const u32 gEventObjectPic_Rayquaza_4[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza/4.4bpp"); +const u32 gEventObjectPic_Skitty_[] = INCBIN_U32("graphics/event_objects/pics/pokemon/skitty.4bpp"); +const u32 gEventObjectPic_Kecleon[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kecleon.4bpp"); +const u32 gEventObjectPic_Rayquaza[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza.4bpp"); const u32 gEventObjectPic_RayquazaStill[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza_still.4bpp"); -const u32 gEventObjectPic_Zigzagoon_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/zigzagoon/0.4bpp"); -const u32 gEventObjectPic_Zigzagoon_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/zigzagoon/1.4bpp"); -const u32 gEventObjectPic_Zigzagoon_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/zigzagoon/2.4bpp"); -const u32 gEventObjectPic_Pikachu_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/pikachu/0.4bpp"); -const u32 gEventObjectPic_Pikachu_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/pikachu/1.4bpp"); -const u32 gEventObjectPic_Pikachu_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/pikachu/2.4bpp"); -const u32 gEventObjectPic_Azumarill_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azumarill/0.4bpp"); -const u32 gEventObjectPic_Azumarill_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azumarill/1.4bpp"); -const u32 gEventObjectPic_Azumarill_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azumarill/2.4bpp"); -const u32 gEventObjectPic_Wingull_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull/0.4bpp"); -const u32 gEventObjectPic_Wingull_3[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull/3.4bpp"); -const u32 gEventObjectPic_Wingull_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull/1.4bpp"); -const u32 gEventObjectPic_Wingull_4[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull/4.4bpp"); -const u32 gEventObjectPic_Wingull_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull/2.4bpp"); -const u32 gEventObjectPic_Wingull_5[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull/5.4bpp"); +const u32 gEventObjectPic_Zigzagoon[] = INCBIN_U32("graphics/event_objects/pics/pokemon/zigzagoon.4bpp"); +const u32 gEventObjectPic_Pikachu[] = INCBIN_U32("graphics/event_objects/pics/pokemon/pikachu.4bpp"); +const u32 gEventObjectPic_Azumarill[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azumarill.4bpp"); +const u32 gEventObjectPic_Wingull[] = INCBIN_U32("graphics/event_objects/pics/pokemon/wingull.4bpp"); const u32 gEventObjectPic_TuberMSwimming[] = INCBIN_U32("graphics/event_objects/pics/people/tuber_m_swimming.4bpp"); -const u32 gEventObjectPic_Azurill_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azurill/0.4bpp"); -const u32 gEventObjectPic_Azurill_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azurill/1.4bpp"); -const u32 gEventObjectPic_Azurill_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azurill/2.4bpp"); +const u32 gEventObjectPic_Azurill[] = INCBIN_U32("graphics/event_objects/pics/pokemon/azurill.4bpp"); const u32 gEventObjectPic_Mom[] = INCBIN_U32("graphics/event_objects/pics/people/mom.4bpp"); const u16 gEventObjectPalette22[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_22.gbapal"); const u16 gEventObjectPalette23[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_23.gbapal"); @@ -281,32 +252,12 @@ const u32 gEventObjectPic_SubmarineShadow[] = INCBIN_U32("graphics/event_objects const u16 gEventObjectPalette26[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_26.gbapal"); const u32 gEventObjectPic_Truck[] = INCBIN_U32("graphics/event_objects/pics/misc/truck.4bpp"); const u16 gEventObjectPalette14[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_14.gbapal"); -const u32 gEventObjectPic_VigorothCarryingBox_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/vigoroth_carrying_box/0.4bpp"); -const u32 gEventObjectPic_VigorothCarryingBox_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/vigoroth_carrying_box/1.4bpp"); -const u32 gEventObjectPic_VigorothCarryingBox_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/vigoroth_carrying_box/2.4bpp"); -const u32 gEventObjectPic_VigorothFacingAway_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/vigoroth_facing_away/0.4bpp"); -const u32 gEventObjectPic_VigorothFacingAway_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/vigoroth_facing_away/1.4bpp"); +const u32 gEventObjectPic_Vigoroth[] = INCBIN_U32("graphics/event_objects/pics/pokemon/vigoroth.4bpp"); const u16 gEventObjectPalette15[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_15.gbapal"); const u32 gEventObjectPic_BirchsBag[] = INCBIN_U32("graphics/event_objects/pics/misc/birchs_bag.4bpp"); -const u32 gEventObjectPic_EnemyZigzagoon_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon/0.4bpp"); -const u32 gEventObjectPic_EnemyZigzagoon_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon/1.4bpp"); -const u32 gEventObjectPic_EnemyZigzagoon_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon/2.4bpp"); -const u32 gEventObjectPic_EnemyZigzagoon_3[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon/3.4bpp"); -const u32 gEventObjectPic_EnemyZigzagoon_4[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon/4.4bpp"); -const u32 gEventObjectPic_EnemyZigzagoon_5[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon/5.4bpp"); -const u32 gEventObjectPic_EnemyZigzagoon_6[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon/6.4bpp"); -const u32 gEventObjectPic_EnemyZigzagoon_7[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon/7.4bpp"); -const u32 gEventObjectPic_EnemyZigzagoon_8[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon/8.4bpp"); +const u32 gEventObjectPic_EnemyZigzagoon[] = INCBIN_U32("graphics/event_objects/pics/pokemon/enemy_zigzagoon.4bpp"); const u16 gEventObjectPalette16[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_16.gbapal"); -const u32 gEventObjectPic_Poochyena_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena/0.4bpp"); -const u32 gEventObjectPic_Poochyena_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena/1.4bpp"); -const u32 gEventObjectPic_Poochyena_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena/2.4bpp"); -const u32 gEventObjectPic_Poochyena_3[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena/3.4bpp"); -const u32 gEventObjectPic_Poochyena_4[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena/4.4bpp"); -const u32 gEventObjectPic_Poochyena_5[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena/5.4bpp"); -const u32 gEventObjectPic_Poochyena_6[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena/6.4bpp"); -const u32 gEventObjectPic_Poochyena_7[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena/7.4bpp"); -const u32 gEventObjectPic_Poochyena_8[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena/8.4bpp"); +const u32 gEventObjectPic_Poochyena[] = INCBIN_U32("graphics/event_objects/pics/pokemon/poochyena.4bpp"); const u16 gEventObjectPalette27[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_27.gbapal"); const u32 gEventObjectPic_CableCar[] = INCBIN_U32("graphics/event_objects/pics/misc/cable_car.4bpp"); const u16 gEventObjectPalette20[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_20.gbapal"); @@ -653,48 +604,21 @@ const u32 gFieldEffectObjectPic_Bird[] = INCBIN_U32("graphics/event_objects/pics const u32 gEventObjectPic_Juan[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/juan.4bpp"); const u32 gEventObjectPic_Scott[] = INCBIN_U32("graphics/event_objects/pics/people/scott.4bpp"); const u32 gEventObjectPic_Statue[] = INCBIN_U32("graphics/event_objects/pics/misc/statue.4bpp"); -const u32 gEventObjectPic_Kirlia_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/0.4bpp"); -const u32 gEventObjectPic_Kirlia_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/1.4bpp"); -const u32 gEventObjectPic_Kirlia_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/2.4bpp"); -const u32 gEventObjectPic_Kirlia_3[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/3.4bpp"); -const u32 gEventObjectPic_Kirlia_4[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/4.4bpp"); -const u32 gEventObjectPic_Kirlia_5[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/5.4bpp"); -const u32 gEventObjectPic_Kirlia_6[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/6.4bpp"); -const u32 gEventObjectPic_Kirlia_7[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/7.4bpp"); -const u32 gEventObjectPic_Kirlia_8[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia/8.4bpp"); -const u32 gEventObjectPic_Dusclops_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/0.4bpp"); -const u32 gEventObjectPic_Dusclops_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/1.4bpp"); -const u32 gEventObjectPic_Dusclops_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/2.4bpp"); -const u32 gEventObjectPic_Dusclops_3[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/3.4bpp"); -const u32 gEventObjectPic_Dusclops_4[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/4.4bpp"); -const u32 gEventObjectPic_Dusclops_5[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/5.4bpp"); -const u32 gEventObjectPic_Dusclops_6[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/6.4bpp"); -const u32 gEventObjectPic_Dusclops_7[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/7.4bpp"); -const u32 gEventObjectPic_Dusclops_8[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops/8.4bpp"); +const u32 gEventObjectPic_Kirlia[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kirlia.4bpp"); +const u32 gEventObjectPic_Dusclops[] = INCBIN_U32("graphics/event_objects/pics/pokemon/dusclops.4bpp"); const u32 gEventObjectPic_MysteryEventDeliveryman[] = INCBIN_U32("graphics/event_objects/pics/people/mystery_event_deliveryman.4bpp"); const u32 gEventObjectPic_UnionRoomAttendant[] = INCBIN_U32("graphics/event_objects/pics/people/union_room_attendant.4bpp"); const u32 gEventObjectPic_MovingBox[] = INCBIN_U32("graphics/event_objects/pics/misc/moving_box.4bpp"); const u16 gEventObjectPalette19[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_19.gbapal"); -const u32 gEventObjectPic_Sudowoodo_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/sudowoodo/0.4bpp"); -const u32 gEventObjectPic_Sudowoodo_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/sudowoodo/1.4bpp"); -const u32 gEventObjectPic_Sudowoodo_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/sudowoodo/2.4bpp"); -const u32 gEventObjectPic_Mew_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/0.4bpp"); -const u32 gEventObjectPic_Mew_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/1.4bpp"); -const u32 gEventObjectPic_Mew_2[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/2.4bpp"); -const u32 gEventObjectPic_Mew_3[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/3.4bpp"); -const u32 gEventObjectPic_Mew_4[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/4.4bpp"); -const u32 gEventObjectPic_Mew_5[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/5.4bpp"); -const u32 gEventObjectPic_Mew_6[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/6.4bpp"); -const u32 gEventObjectPic_Mew_7[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/7.4bpp"); -const u32 gEventObjectPic_Mew_8[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew/8.4bpp"); +const u32 gEventObjectPic_Sudowoodo[] = INCBIN_U32("graphics/event_objects/pics/pokemon/sudowoodo.4bpp"); +const u32 gEventObjectPic_Mew[] = INCBIN_U32("graphics/event_objects/pics/pokemon/mew.4bpp"); const u16 gEventObjectPalette28[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_28.gbapal"); const u32 gEventObjectPic_Red[] = INCBIN_U32("graphics/event_objects/pics/people/red.4bpp"); const u32 gEventObjectPic_Leaf[] = INCBIN_U32("graphics/event_objects/pics/people/leaf.4bpp"); const u16 gEventObjectPalette30[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_30.gbapal"); const u32 gEventObjectPic_BirthIslandStone[] = INCBIN_U32("graphics/event_objects/pics/misc/birth_island_stone.4bpp"); const u16 gEventObjectPalette29[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_29.gbapal"); -const u32 gEventObjectPic_Deoxys_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/deoxys/0.4bpp"); -const u32 gEventObjectPic_Deoxys_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/deoxys/1.4bpp"); +const u32 gEventObjectPic_Deoxys[] = INCBIN_U32("graphics/event_objects/pics/pokemon/deoxys.4bpp"); const u32 gEventObjectPic_Anabel[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/anabel.4bpp"); const u32 gEventObjectPic_Tucker[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/tucker.4bpp"); const u32 gEventObjectPic_Spenser[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/spenser.4bpp"); @@ -702,11 +626,9 @@ const u32 gEventObjectPic_Greta[] = INCBIN_U32("graphics/event_objects/pics/peop const u32 gEventObjectPic_Noland[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/noland.4bpp"); const u32 gEventObjectPic_Lucy[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/lucy.4bpp"); const u32 gEventObjectPic_Brandon[] = INCBIN_U32("graphics/event_objects/pics/people/frontier_brains/brandon.4bpp"); -const u32 gEventObjectPic_Lugia_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/lugia/0.4bpp"); -const u32 gEventObjectPic_Lugia_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/lugia/1.4bpp"); +const u32 gEventObjectPic_Lugia[] = INCBIN_U32("graphics/event_objects/pics/pokemon/lugia.4bpp"); const u16 gEventObjectPalette32[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_32.gbapal"); -const u32 gEventObjectPic_HoOh_0[] = INCBIN_U32("graphics/event_objects/pics/pokemon/ho_oh/0.4bpp"); -const u32 gEventObjectPic_HoOh_1[] = INCBIN_U32("graphics/event_objects/pics/pokemon/ho_oh/1.4bpp"); +const u32 gEventObjectPic_HoOh[] = INCBIN_U32("graphics/event_objects/pics/pokemon/ho_oh.4bpp"); const u16 gEventObjectPalette31[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_31.gbapal"); #endif //GUARD_EVENT_OBJECT_GFX_H -- cgit v1.2.3 From bad170b0cb7a0a7ecb8725e6fc458a39c11a7e4d Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 8 Aug 2018 23:53:21 -0700 Subject: Continue decompiling field_specials --- src/field_specials.c | 1061 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/main_menu.c | 2 +- src/menu.c | 2 +- src/scrcmd.c | 2 +- 4 files changed, 1064 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/field_specials.c b/src/field_specials.c index a0d640ccd..5f4b4f784 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 87673c9b2..3afe1abe5 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 96dda3075..223f8fd52 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 a15ad666c..01d04704a 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); -- cgit v1.2.3 From 877a80d3bcae652fdaf33c221d69588cc9bd2ad6 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Thu, 9 Aug 2018 23:19:45 +0100 Subject: Merge berry tree frames --- src/data/field_event_obj/event_object_graphics.h | 219 ++++------------------- 1 file changed, 34 insertions(+), 185 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index 546b26f17..e9f700a99 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -166,10 +166,10 @@ const u32 gEventObjectPic_Boy5[] = INCBIN_U32("graphics/event_objects/pics/peopl const u32 gEventObjectPic_ContestOldMan[] = INCBIN_U32("graphics/event_objects/pics/people/contest_old_man.4bpp"); const u32 gEventObjectPic_Archie[] = INCBIN_U32("graphics/event_objects/pics/people/team_aqua/archie.4bpp"); const u32 gEventObjectPic_Maxie[] = INCBIN_U32("graphics/event_objects/pics/people/team_magma/maxie.4bpp"); -const u32 gEventObjectPic_KyogreFront[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre.4bpp"); -const u32 gEventObjectPic_GroudonFront[] = INCBIN_U32("graphics/event_objects/pics/pokemon/groudon.4bpp"); +const u32 gEventObjectPic_Kyogre[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kyogre.4bpp"); +const u32 gEventObjectPic_Groudon[] = INCBIN_U32("graphics/event_objects/pics/pokemon/groudon.4bpp"); const u32 gEventObjectPic_Regi[] = INCBIN_U32("graphics/event_objects/pics/pokemon/regi.4bpp"); -const u32 gEventObjectPic_Skitty_[] = INCBIN_U32("graphics/event_objects/pics/pokemon/skitty.4bpp"); +const u32 gEventObjectPic_Skitty[] = INCBIN_U32("graphics/event_objects/pics/pokemon/skitty.4bpp"); const u32 gEventObjectPic_Kecleon[] = INCBIN_U32("graphics/event_objects/pics/pokemon/kecleon.4bpp"); const u32 gEventObjectPic_Rayquaza[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza.4bpp"); const u32 gEventObjectPic_RayquazaStill[] = INCBIN_U32("graphics/event_objects/pics/pokemon/rayquaza_still.4bpp"); @@ -270,188 +270,37 @@ const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_3[] = INCBIN_U32("graphic const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_4[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/4.4bpp"); const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_5[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/5.4bpp"); const u32 gEventObjectPic_BerryTreeDirtPile[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/dirt_pile.4bpp"); -const u32 gEventObjectPic_BerryTreeSprout_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sprout/0.4bpp"); -const u32 gEventObjectPic_BerryTreeSprout_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sprout/1.4bpp"); -const u32 gEventObjectPic_PechaBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha/0.4bpp"); -const u32 gEventObjectPic_PechaBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha/1.4bpp"); -const u32 gEventObjectPic_PechaBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha/2.4bpp"); -const u32 gEventObjectPic_PechaBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha/3.4bpp"); -const u32 gEventObjectPic_PechaBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha/4.4bpp"); -const u32 gEventObjectPic_PechaBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha/5.4bpp"); -const u32 gEventObjectPic_KelpsyBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/kelpsy/0.4bpp"); -const u32 gEventObjectPic_KelpsyBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/kelpsy/1.4bpp"); -const u32 gEventObjectPic_KelpsyBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/kelpsy/2.4bpp"); -const u32 gEventObjectPic_KelpsyBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/kelpsy/3.4bpp"); -const u32 gEventObjectPic_KelpsyBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/kelpsy/4.4bpp"); -const u32 gEventObjectPic_KelpsyBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/kelpsy/5.4bpp"); -const u32 gEventObjectPic_WepearBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wepear/0.4bpp"); -const u32 gEventObjectPic_WepearBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wepear/1.4bpp"); -const u32 gEventObjectPic_WepearBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wepear/2.4bpp"); -const u32 gEventObjectPic_WepearBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wepear/3.4bpp"); -const u32 gEventObjectPic_WepearBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wepear/4.4bpp"); -const u32 gEventObjectPic_WepearBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wepear/5.4bpp"); -const u32 gEventObjectPic_IapapaBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/iapapa/0.4bpp"); -const u32 gEventObjectPic_IapapaBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/iapapa/1.4bpp"); -const u32 gEventObjectPic_IapapaBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/iapapa/2.4bpp"); -const u32 gEventObjectPic_IapapaBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/iapapa/3.4bpp"); -const u32 gEventObjectPic_IapapaBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/iapapa/4.4bpp"); -const u32 gEventObjectPic_IapapaBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/iapapa/5.4bpp"); -const u32 gEventObjectPic_CheriBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cheri/0.4bpp"); -const u32 gEventObjectPic_CheriBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cheri/1.4bpp"); -const u32 gEventObjectPic_CheriBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cheri/2.4bpp"); -const u32 gEventObjectPic_CheriBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cheri/3.4bpp"); -const u32 gEventObjectPic_CheriBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cheri/4.4bpp"); -const u32 gEventObjectPic_CheriBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cheri/5.4bpp"); -const u32 gEventObjectPic_FigyBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/figy/0.4bpp"); -const u32 gEventObjectPic_FigyBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/figy/1.4bpp"); -const u32 gEventObjectPic_FigyBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/figy/2.4bpp"); -const u32 gEventObjectPic_FigyBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/figy/3.4bpp"); -const u32 gEventObjectPic_FigyBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/figy/4.4bpp"); -const u32 gEventObjectPic_FigyBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/figy/5.4bpp"); -const u32 gEventObjectPic_MagoBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/mago/0.4bpp"); -const u32 gEventObjectPic_MagoBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/mago/1.4bpp"); -const u32 gEventObjectPic_MagoBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/mago/2.4bpp"); -const u32 gEventObjectPic_MagoBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/mago/3.4bpp"); -const u32 gEventObjectPic_MagoBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/mago/4.4bpp"); -const u32 gEventObjectPic_MagoBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/mago/5.4bpp"); -const u32 gEventObjectPic_LumBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lum/0.4bpp"); -const u32 gEventObjectPic_LumBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lum/1.4bpp"); -const u32 gEventObjectPic_LumBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lum/2.4bpp"); -const u32 gEventObjectPic_LumBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lum/3.4bpp"); -const u32 gEventObjectPic_LumBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lum/4.4bpp"); -const u32 gEventObjectPic_LumBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lum/5.4bpp"); -const u32 gEventObjectPic_RazzBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/razz/0.4bpp"); -const u32 gEventObjectPic_RazzBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/razz/1.4bpp"); -const u32 gEventObjectPic_RazzBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/razz/2.4bpp"); -const u32 gEventObjectPic_RazzBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/razz/3.4bpp"); -const u32 gEventObjectPic_RazzBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/razz/4.4bpp"); -const u32 gEventObjectPic_RazzBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/razz/5.4bpp"); -const u32 gEventObjectPic_GrepaBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/grepa/0.4bpp"); -const u32 gEventObjectPic_GrepaBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/grepa/1.4bpp"); -const u32 gEventObjectPic_GrepaBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/grepa/2.4bpp"); -const u32 gEventObjectPic_GrepaBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/grepa/3.4bpp"); -const u32 gEventObjectPic_GrepaBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/grepa/4.4bpp"); -const u32 gEventObjectPic_GrepaBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/grepa/5.4bpp"); -const u32 gEventObjectPic_RabutaBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rabuta/0.4bpp"); -const u32 gEventObjectPic_RabutaBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rabuta/1.4bpp"); -const u32 gEventObjectPic_RabutaBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rabuta/2.4bpp"); -const u32 gEventObjectPic_RabutaBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rabuta/3.4bpp"); -const u32 gEventObjectPic_RabutaBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rabuta/4.4bpp"); -const u32 gEventObjectPic_RabutaBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rabuta/5.4bpp"); -const u32 gEventObjectPic_NomelBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/nomel/0.4bpp"); -const u32 gEventObjectPic_NomelBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/nomel/1.4bpp"); -const u32 gEventObjectPic_NomelBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/nomel/2.4bpp"); -const u32 gEventObjectPic_NomelBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/nomel/3.4bpp"); -const u32 gEventObjectPic_NomelBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/nomel/4.4bpp"); -const u32 gEventObjectPic_NomelBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/nomel/5.4bpp"); -const u32 gEventObjectPic_LeppaBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/leppa/0.4bpp"); -const u32 gEventObjectPic_LeppaBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/leppa/1.4bpp"); -const u32 gEventObjectPic_LeppaBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/leppa/2.4bpp"); -const u32 gEventObjectPic_LeppaBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/leppa/3.4bpp"); -const u32 gEventObjectPic_LeppaBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/leppa/4.4bpp"); -const u32 gEventObjectPic_LeppaBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/leppa/5.4bpp"); -const u32 gEventObjectPic_LiechiBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/liechi/0.4bpp"); -const u32 gEventObjectPic_LiechiBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/liechi/1.4bpp"); -const u32 gEventObjectPic_LiechiBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/liechi/2.4bpp"); -const u32 gEventObjectPic_LiechiBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/liechi/3.4bpp"); -const u32 gEventObjectPic_LiechiBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/liechi/4.4bpp"); -const u32 gEventObjectPic_LiechiBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/liechi/5.4bpp"); -const u32 gEventObjectPic_HondewBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/hondew/0.4bpp"); -const u32 gEventObjectPic_HondewBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/hondew/1.4bpp"); -const u32 gEventObjectPic_HondewBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/hondew/2.4bpp"); -const u32 gEventObjectPic_HondewBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/hondew/3.4bpp"); -const u32 gEventObjectPic_HondewBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/hondew/4.4bpp"); -const u32 gEventObjectPic_HondewBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/hondew/5.4bpp"); -const u32 gEventObjectPic_AguavBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aguav/0.4bpp"); -const u32 gEventObjectPic_AguavBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aguav/1.4bpp"); -const u32 gEventObjectPic_AguavBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aguav/2.4bpp"); -const u32 gEventObjectPic_AguavBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aguav/3.4bpp"); -const u32 gEventObjectPic_AguavBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aguav/4.4bpp"); -const u32 gEventObjectPic_AguavBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aguav/5.4bpp"); -const u32 gEventObjectPic_WikiBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wiki/0.4bpp"); -const u32 gEventObjectPic_WikiBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wiki/1.4bpp"); -const u32 gEventObjectPic_WikiBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wiki/2.4bpp"); -const u32 gEventObjectPic_WikiBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wiki/3.4bpp"); -const u32 gEventObjectPic_WikiBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wiki/4.4bpp"); -const u32 gEventObjectPic_WikiBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wiki/5.4bpp"); -const u32 gEventObjectPic_PomegBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pomeg/0.4bpp"); -const u32 gEventObjectPic_PomegBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pomeg/1.4bpp"); -const u32 gEventObjectPic_PomegBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pomeg/2.4bpp"); -const u32 gEventObjectPic_PomegBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pomeg/3.4bpp"); -const u32 gEventObjectPic_PomegBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pomeg/4.4bpp"); -const u32 gEventObjectPic_PomegBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pomeg/5.4bpp"); -const u32 gEventObjectPic_RawstBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rawst/0.4bpp"); -const u32 gEventObjectPic_RawstBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rawst/1.4bpp"); -const u32 gEventObjectPic_RawstBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rawst/2.4bpp"); -const u32 gEventObjectPic_RawstBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rawst/3.4bpp"); -const u32 gEventObjectPic_RawstBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rawst/4.4bpp"); -const u32 gEventObjectPic_RawstBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rawst/5.4bpp"); -const u32 gEventObjectPic_SpelonBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/spelon/0.4bpp"); -const u32 gEventObjectPic_SpelonBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/spelon/1.4bpp"); -const u32 gEventObjectPic_SpelonBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/spelon/2.4bpp"); -const u32 gEventObjectPic_SpelonBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/spelon/3.4bpp"); -const u32 gEventObjectPic_SpelonBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/spelon/4.4bpp"); -const u32 gEventObjectPic_SpelonBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/spelon/5.4bpp"); -const u32 gEventObjectPic_ChestoBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/chesto/0.4bpp"); -const u32 gEventObjectPic_ChestoBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/chesto/1.4bpp"); -const u32 gEventObjectPic_ChestoBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/chesto/2.4bpp"); -const u32 gEventObjectPic_ChestoBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/chesto/3.4bpp"); -const u32 gEventObjectPic_ChestoBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/chesto/4.4bpp"); -const u32 gEventObjectPic_ChestoBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/chesto/5.4bpp"); -const u32 gEventObjectPic_OranBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/oran/0.4bpp"); -const u32 gEventObjectPic_OranBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/oran/1.4bpp"); -const u32 gEventObjectPic_OranBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/oran/2.4bpp"); -const u32 gEventObjectPic_OranBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/oran/3.4bpp"); -const u32 gEventObjectPic_OranBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/oran/4.4bpp"); -const u32 gEventObjectPic_OranBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/oran/5.4bpp"); -const u32 gEventObjectPic_PersimBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/persim/0.4bpp"); -const u32 gEventObjectPic_PersimBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/persim/1.4bpp"); -const u32 gEventObjectPic_PersimBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/persim/2.4bpp"); -const u32 gEventObjectPic_PersimBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/persim/3.4bpp"); -const u32 gEventObjectPic_PersimBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/persim/4.4bpp"); -const u32 gEventObjectPic_PersimBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/persim/5.4bpp"); -const u32 gEventObjectPic_SitrusBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sitrus/0.4bpp"); -const u32 gEventObjectPic_SitrusBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sitrus/1.4bpp"); -const u32 gEventObjectPic_SitrusBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sitrus/2.4bpp"); -const u32 gEventObjectPic_SitrusBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sitrus/3.4bpp"); -const u32 gEventObjectPic_SitrusBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sitrus/4.4bpp"); -const u32 gEventObjectPic_SitrusBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sitrus/5.4bpp"); -const u32 gEventObjectPic_AspearBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aspear/0.4bpp"); -const u32 gEventObjectPic_AspearBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aspear/1.4bpp"); -const u32 gEventObjectPic_AspearBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aspear/2.4bpp"); -const u32 gEventObjectPic_AspearBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aspear/3.4bpp"); -const u32 gEventObjectPic_AspearBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aspear/4.4bpp"); -const u32 gEventObjectPic_AspearBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aspear/5.4bpp"); -const u32 gEventObjectPic_PamtreBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pamtre/0.4bpp"); -const u32 gEventObjectPic_PamtreBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pamtre/1.4bpp"); -const u32 gEventObjectPic_PamtreBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pamtre/2.4bpp"); -const u32 gEventObjectPic_PamtreBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pamtre/3.4bpp"); -const u32 gEventObjectPic_PamtreBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pamtre/4.4bpp"); -const u32 gEventObjectPic_PamtreBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pamtre/5.4bpp"); -const u32 gEventObjectPic_CornnBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cornn/0.4bpp"); -const u32 gEventObjectPic_CornnBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cornn/1.4bpp"); -const u32 gEventObjectPic_CornnBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cornn/2.4bpp"); -const u32 gEventObjectPic_CornnBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cornn/3.4bpp"); -const u32 gEventObjectPic_CornnBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cornn/4.4bpp"); -const u32 gEventObjectPic_CornnBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cornn/5.4bpp"); -const u32 gEventObjectPic_LansatBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lansat/0.4bpp"); -const u32 gEventObjectPic_LansatBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lansat/1.4bpp"); -const u32 gEventObjectPic_LansatBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lansat/2.4bpp"); -const u32 gEventObjectPic_LansatBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lansat/3.4bpp"); -const u32 gEventObjectPic_LansatBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lansat/4.4bpp"); -const u32 gEventObjectPic_LansatBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lansat/5.4bpp"); -const u32 gEventObjectPic_DurinBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/durin/0.4bpp"); -const u32 gEventObjectPic_DurinBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/durin/1.4bpp"); -const u32 gEventObjectPic_DurinBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/durin/2.4bpp"); -const u32 gEventObjectPic_DurinBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/durin/3.4bpp"); -const u32 gEventObjectPic_DurinBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/durin/4.4bpp"); -const u32 gEventObjectPic_DurinBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/durin/5.4bpp"); -const u32 gEventObjectPic_TamatoBerryTree_0[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/tamato/0.4bpp"); -const u32 gEventObjectPic_TamatoBerryTree_1[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/tamato/1.4bpp"); -const u32 gEventObjectPic_TamatoBerryTree_2[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/tamato/2.4bpp"); -const u32 gEventObjectPic_TamatoBerryTree_3[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/tamato/3.4bpp"); -const u32 gEventObjectPic_TamatoBerryTree_4[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/tamato/4.4bpp"); -const u32 gEventObjectPic_TamatoBerryTree_5[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/tamato/5.4bpp"); +const u32 gEventObjectPic_BerryTreeSprout[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sprout.4bpp"); +const u32 gEventObjectPic_PechaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha.4bpp"); +const u32 gEventObjectPic_KelpsyBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/kelpsy.4bpp"); +const u32 gEventObjectPic_WepearBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wepear.4bpp"); +const u32 gEventObjectPic_IapapaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/iapapa.4bpp"); +const u32 gEventObjectPic_CheriBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cheri.4bpp"); +const u32 gEventObjectPic_FigyBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/figy.4bpp"); +const u32 gEventObjectPic_MagoBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/mago.4bpp"); +const u32 gEventObjectPic_LumBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lum.4bpp"); +const u32 gEventObjectPic_RazzBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/razz.4bpp"); +const u32 gEventObjectPic_GrepaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/grepa.4bpp"); +const u32 gEventObjectPic_RabutaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rabuta.4bpp"); +const u32 gEventObjectPic_NomelBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/nomel.4bpp"); +const u32 gEventObjectPic_LeppaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/leppa.4bpp"); +const u32 gEventObjectPic_LiechiBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/liechi.4bpp"); +const u32 gEventObjectPic_HondewBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/hondew.4bpp"); +const u32 gEventObjectPic_AguavBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aguav.4bpp"); +const u32 gEventObjectPic_WikiBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/wiki.4bpp"); +const u32 gEventObjectPic_PomegBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pomeg.4bpp"); +const u32 gEventObjectPic_RawstBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/rawst.4bpp"); +const u32 gEventObjectPic_SpelonBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/spelon.4bpp"); +const u32 gEventObjectPic_ChestoBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/chesto.4bpp"); +const u32 gEventObjectPic_OranBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/oran.4bpp"); +const u32 gEventObjectPic_PersimBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/persim.4bpp"); +const u32 gEventObjectPic_SitrusBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sitrus.4bpp"); +const u32 gEventObjectPic_AspearBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/aspear.4bpp"); +const u32 gEventObjectPic_PamtreBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pamtre.4bpp"); +const u32 gEventObjectPic_CornnBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/cornn.4bpp"); +const u32 gEventObjectPic_LansatBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lansat.4bpp"); +const u32 gEventObjectPic_DurinBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/durin.4bpp"); +const u32 gEventObjectPic_TamatoBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/tamato.4bpp"); const u32 gFieldEffectObjectPic_SurfBlob_0[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob/0.4bpp"); const u32 gFieldEffectObjectPic_SurfBlob_1[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob/1.4bpp"); const u32 gFieldEffectObjectPic_SurfBlob_2[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob/2.4bpp"); -- cgit v1.2.3 From bc42c5054c335f4de8a6b43135673ce931991c3e Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Fri, 10 Aug 2018 00:20:19 +0100 Subject: Merge remaining overworld frames --- src/data/field_event_obj/event_object_graphics.h | 108 ++++------------------- 1 file changed, 18 insertions(+), 90 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index e9f700a99..2fd1380ee 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -235,18 +235,10 @@ const u32 gEventObjectPic_BigWailmerDoll[] = INCBIN_U32("graphics/event_objects/ const u32 gEventObjectPic_BigRegirockDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_regirock_doll.4bpp"); const u32 gEventObjectPic_BigRegiceDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_regice_doll.4bpp"); const u32 gEventObjectPic_BigRegisteelDoll[] = INCBIN_U32("graphics/event_objects/pics/dolls/big_registeel_doll.4bpp"); -const u32 gEventObjectPic_CuttableTree_0[] = INCBIN_U32("graphics/event_objects/pics/misc/cuttable_tree/0.4bpp"); -const u32 gEventObjectPic_CuttableTree_1[] = INCBIN_U32("graphics/event_objects/pics/misc/cuttable_tree/1.4bpp"); -const u32 gEventObjectPic_CuttableTree_2[] = INCBIN_U32("graphics/event_objects/pics/misc/cuttable_tree/2.4bpp"); -const u32 gEventObjectPic_CuttableTree_3[] = INCBIN_U32("graphics/event_objects/pics/misc/cuttable_tree/3.4bpp"); -const u32 gEventObjectPic_BreakableRock_0[] = INCBIN_U32("graphics/event_objects/pics/misc/breakable_rock/0.4bpp"); -const u32 gEventObjectPic_BreakableRock_1[] = INCBIN_U32("graphics/event_objects/pics/misc/breakable_rock/1.4bpp"); -const u32 gEventObjectPic_BreakableRock_2[] = INCBIN_U32("graphics/event_objects/pics/misc/breakable_rock/2.4bpp"); -const u32 gEventObjectPic_BreakableRock_3[] = INCBIN_U32("graphics/event_objects/pics/misc/breakable_rock/3.4bpp"); +const u32 gEventObjectPic_CuttableTree[] = INCBIN_U32("graphics/event_objects/pics/misc/cuttable_tree.4bpp"); +const u32 gEventObjectPic_BreakableRock[] = INCBIN_U32("graphics/event_objects/pics/misc/breakable_rock.4bpp"); const u32 gEventObjectPic_PushableBoulder[] = INCBIN_U32("graphics/event_objects/pics/misc/pushable_boulder.4bpp"); -const u32 gEventObjectPic_MrBrineysBoat_0[] = INCBIN_U32("graphics/event_objects/pics/misc/mr_brineys_boat/0.4bpp"); -const u32 gEventObjectPic_MrBrineysBoat_1[] = INCBIN_U32("graphics/event_objects/pics/misc/mr_brineys_boat/1.4bpp"); -const u32 gEventObjectPic_MrBrineysBoat_2[] = INCBIN_U32("graphics/event_objects/pics/misc/mr_brineys_boat/2.4bpp"); +const u32 gEventObjectPic_MrBrineysBoat[] = INCBIN_U32("graphics/event_objects/pics/misc/mr_brineys_boat.4bpp"); const u32 gEventObjectPic_Fossil[] = INCBIN_U32("graphics/event_objects/pics/misc/fossil.4bpp"); const u32 gEventObjectPic_SubmarineShadow[] = INCBIN_U32("graphics/event_objects/pics/misc/submarine_shadow.4bpp"); const u16 gEventObjectPalette26[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_26.gbapal"); @@ -301,9 +293,7 @@ const u32 gEventObjectPic_CornnBerryTree[] = INCBIN_U32("graphics/event_objects/ const u32 gEventObjectPic_LansatBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/lansat.4bpp"); const u32 gEventObjectPic_DurinBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/durin.4bpp"); const u32 gEventObjectPic_TamatoBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/tamato.4bpp"); -const u32 gFieldEffectObjectPic_SurfBlob_0[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob/0.4bpp"); -const u32 gFieldEffectObjectPic_SurfBlob_1[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob/1.4bpp"); -const u32 gFieldEffectObjectPic_SurfBlob_2[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob/2.4bpp"); +const u32 gFieldEffectObjectPic_SurfBlob[] = INCBIN_U32("graphics/event_objects/pics/effects/surf_blob.4bpp"); const u32 gEventObjectPic_QuintyPlump[] = INCBIN_U32("graphics/event_objects/pics/people/quinty_plump.4bpp"); const u16 gEventObjectPalette12[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_12.gbapal"); const u16 gEventObjectPalette13[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_13.gbapal"); @@ -315,24 +305,9 @@ const u32 filler_8368A08[0x48] = {}; const u8 gFieldEffectPic_CutGrass[] = INCBIN_U8("graphics/event_objects/pics/effects/cut_grass.4bpp"); const u32 gFieldEffectPic_CutGrass_Copy[] = INCBIN_U32("graphics/event_objects/pics/effects/cut_grass.4bpp"); const u16 gFieldEffectObjectPalette6[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_06.gbapal"); -const u32 gFieldEffectObjectPic_Ripple_0[] = INCBIN_U32("graphics/event_objects/pics/effects/ripple/0.4bpp"); -const u32 gFieldEffectObjectPic_Ripple_1[] = INCBIN_U32("graphics/event_objects/pics/effects/ripple/1.4bpp"); -const u32 gFieldEffectObjectPic_Ripple_2[] = INCBIN_U32("graphics/event_objects/pics/effects/ripple/2.4bpp"); -const u32 gFieldEffectObjectPic_Ripple_3[] = INCBIN_U32("graphics/event_objects/pics/effects/ripple/3.4bpp"); -const u32 gFieldEffectObjectPic_Ripple_4[] = INCBIN_U32("graphics/event_objects/pics/effects/ripple/4.4bpp"); -const u32 gFieldEffectObjectPic_Ash_0[] = INCBIN_U32("graphics/event_objects/pics/effects/ash/0.4bpp"); -const u32 gFieldEffectObjectPic_Ash_1[] = INCBIN_U32("graphics/event_objects/pics/effects/ash/1.4bpp"); -const u32 gFieldEffectObjectPic_Ash_2[] = INCBIN_U32("graphics/event_objects/pics/effects/ash/2.4bpp"); -const u32 gFieldEffectObjectPic_Ash_3[] = INCBIN_U32("graphics/event_objects/pics/effects/ash/3.4bpp"); -const u32 gFieldEffectObjectPic_Ash_4[] = INCBIN_U32("graphics/event_objects/pics/effects/ash/4.4bpp"); -const u32 gFieldEffectObjectPic_Arrow_0[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/0.4bpp"); -const u32 gFieldEffectObjectPic_Arrow_1[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/1.4bpp"); -const u32 gFieldEffectObjectPic_Arrow_2[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/2.4bpp"); -const u32 gFieldEffectObjectPic_Arrow_3[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/3.4bpp"); -const u32 gFieldEffectObjectPic_Arrow_4[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/4.4bpp"); -const u32 gFieldEffectObjectPic_Arrow_5[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/5.4bpp"); -const u32 gFieldEffectObjectPic_Arrow_6[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/6.4bpp"); -const u32 gFieldEffectObjectPic_Arrow_7[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/7.4bpp"); +const u32 gFieldEffectObjectPic_Ripple[] = INCBIN_U32("graphics/event_objects/pics/effects/ripple.4bpp"); +const u32 gFieldEffectObjectPic_Ash[] = INCBIN_U32("graphics/event_objects/pics/effects/ash.4bpp"); +const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/0.4bpp"); const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_00.gbapal"); const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_01.gbapal"); const u32 gFieldEffectObjectPic_GroundImpactDust_0[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust/0.4bpp"); @@ -353,14 +328,7 @@ const u32 gFieldEffectObjectPic_Unknown16_3[] = INCBIN_U32("graphics/event_objec const u32 gFieldEffectObjectPic_Unknown16_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/4.4bpp"); const u32 gUnknown_084F7E38[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_4F7E38/0.4bpp"); const u32 gFieldEffectObjectPic_Unknown16_5[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/5.4bpp"); -const u32 gFieldEffectObjectPic_Unknown17_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown17_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown17_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown17_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown17_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17/4.4bpp"); -const u32 gFieldEffectObjectPic_Unknown17_5[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17/5.4bpp"); -const u32 gFieldEffectObjectPic_Unknown17_6[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17/6.4bpp"); -const u32 gFieldEffectObjectPic_Unknown17_7[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17/7.4bpp"); +const u32 gFieldEffectObjectPic_Unknown17[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17.4bpp"); const u32 gFieldEffectObjectPic_Unknown18_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/0.4bpp"); const u32 gFieldEffectObjectPic_Unknown18_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/1.4bpp"); const u32 gFieldEffectObjectPic_Unknown18_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/2.4bpp"); @@ -369,13 +337,8 @@ const u32 gFieldEffectObjectPic_LongGrass_0[] = INCBIN_U32("graphics/event_objec const u32 gFieldEffectObjectPic_LongGrass_1[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/1.4bpp"); const u32 gFieldEffectObjectPic_LongGrass_2[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/2.4bpp"); const u32 gFieldEffectObjectPic_LongGrass_3[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/3.4bpp"); -const u32 gFieldEffectObjectPic_TallGrass_0[] = INCBIN_U32("graphics/event_objects/pics/effects/tall_grass/0.4bpp"); -const u32 gFieldEffectObjectPic_TallGrass_1[] = INCBIN_U32("graphics/event_objects/pics/effects/tall_grass/1.4bpp"); -const u32 gFieldEffectObjectPic_TallGrass_2[] = INCBIN_U32("graphics/event_objects/pics/effects/tall_grass/2.4bpp"); -const u32 gFieldEffectObjectPic_TallGrass_3[] = INCBIN_U32("graphics/event_objects/pics/effects/tall_grass/3.4bpp"); -const u32 gFieldEffectObjectPic_TallGrass_4[] = INCBIN_U32("graphics/event_objects/pics/effects/tall_grass/4.4bpp"); -const u32 gFieldEffectObjectPic_ShortGrass_0[] = INCBIN_U32("graphics/event_objects/pics/effects/short_grass/0.4bpp"); -const u32 gFieldEffectObjectPic_ShortGrass_1[] = INCBIN_U32("graphics/event_objects/pics/effects/short_grass/1.4bpp"); +const u32 gFieldEffectObjectPic_TallGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/tall_grass.4bpp"); +const u32 gFieldEffectObjectPic_ShortGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/short_grass.4bpp"); const u32 gFieldEffectObjectPic_SandFootprints_0[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_footprints/0.4bpp"); const u32 gFieldEffectObjectPic_SandFootprints_1[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_footprints/1.4bpp"); const u32 gFieldEffectObjectPic_DeepSandFootprints_0[] = INCBIN_U32("graphics/event_objects/pics/effects/deep_sand_footprints/0.4bpp"); @@ -391,61 +354,26 @@ const u32 gFieldEffectObjectPic_Unknown19_3[] = INCBIN_U32("graphics/event_objec const u32 gFieldEffectObjectPic_Unknown29_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29/0.4bpp"); const u32 gFieldEffectObjectPic_Unknown29_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29/1.4bpp"); const u32 gFieldEffectObjectPic_Unknown29_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29/2.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopBigSplash_0[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_big_splash/0.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopBigSplash_1[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_big_splash/1.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopBigSplash_2[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_big_splash/2.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopBigSplash_3[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_big_splash/3.4bpp"); -const u32 gFieldEffectObjectPic_Splash_0[] = INCBIN_U32("graphics/event_objects/pics/effects/splash/0.4bpp"); -const u32 gFieldEffectObjectPic_Splash_1[] = INCBIN_U32("graphics/event_objects/pics/effects/splash/1.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopSmallSplash_0[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_small_splash/0.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopSmallSplash_1[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_small_splash/1.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopSmallSplash_2[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_small_splash/2.4bpp"); +const u32 gFieldEffectObjectPic_BikeHopBigSplash[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_big_splash.4bpp"); +const u32 gFieldEffectObjectPic_Splash[] = INCBIN_U32("graphics/event_objects/pics/effects/splash.4bpp"); +const u32 gFieldEffectObjectPic_BikeHopSmallSplash[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_small_splash.4bpp"); const u32 gFieldEffectObjectPic_Unknown20_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/0.4bpp"); const u32 gFieldEffectObjectPic_Unknown20_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/1.4bpp"); const u32 gFieldEffectObjectPic_Unknown20_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/2.4bpp"); const u32 gFieldEffectObjectPic_Unknown20_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/3.4bpp"); const u32 gFieldEffectObjectPic_Unknown20_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/4.4bpp"); -const u32 gFieldEffectObjectPic_TreeDisguise_0[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise/0.4bpp"); -const u32 gFieldEffectObjectPic_TreeDisguise_1[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise/1.4bpp"); -const u32 gFieldEffectObjectPic_TreeDisguise_2[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise/2.4bpp"); -const u32 gFieldEffectObjectPic_TreeDisguise_3[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise/3.4bpp"); -const u32 gFieldEffectObjectPic_TreeDisguise_4[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise/4.4bpp"); -const u32 gFieldEffectObjectPic_TreeDisguise_5[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise/5.4bpp"); -const u32 gFieldEffectObjectPic_TreeDisguise_6[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise/6.4bpp"); -const u32 gFieldEffectObjectPic_MountainDisguise_0[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise/0.4bpp"); -const u32 gFieldEffectObjectPic_MountainDisguise_1[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise/1.4bpp"); -const u32 gFieldEffectObjectPic_MountainDisguise_2[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise/2.4bpp"); -const u32 gFieldEffectObjectPic_MountainDisguise_3[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise/3.4bpp"); -const u32 gFieldEffectObjectPic_MountainDisguise_4[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise/4.4bpp"); -const u32 gFieldEffectObjectPic_MountainDisguise_5[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise/5.4bpp"); -const u32 gFieldEffectObjectPic_MountainDisguise_6[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise/6.4bpp"); -const u32 gFieldEffectObjectPic_SandDisguisePlaceholder_0[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder/0.4bpp"); -const u32 gFieldEffectObjectPic_SandDisguisePlaceholder_1[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder/1.4bpp"); -const u32 gFieldEffectObjectPic_SandDisguisePlaceholder_2[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder/2.4bpp"); -const u32 gFieldEffectObjectPic_SandDisguisePlaceholder_3[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder/3.4bpp"); -const u32 gFieldEffectObjectPic_SandDisguisePlaceholder_4[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder/4.4bpp"); -const u32 gFieldEffectObjectPic_SandDisguisePlaceholder_5[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder/5.4bpp"); -const u32 gFieldEffectObjectPic_SandDisguisePlaceholder_6[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder/6.4bpp"); +const u32 gFieldEffectObjectPic_TreeDisguise[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise.4bpp"); +const u32 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise.4bpp"); +const u32 gFieldEffectObjectPic_SandDisguisePlaceholder[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder.4bpp"); const u32 gFieldEffectObjectPic_HotSpringsWater[] = INCBIN_U32("graphics/event_objects/pics/effects/hot_springs_water.4bpp"); const u16 gFieldEffectObjectPalette2[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_02.gbapal"); -const u32 gFieldEffectObjectPic_JumpOutOfAsh_0[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash/0.4bpp"); -const u32 gFieldEffectObjectPic_JumpOutOfAsh_1[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash/1.4bpp"); -const u32 gFieldEffectObjectPic_JumpOutOfAsh_2[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash/2.4bpp"); -const u32 gFieldEffectObjectPic_JumpOutOfAsh_3[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash/3.4bpp"); -const u32 gFieldEffectObjectPic_JumpOutOfAsh_4[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash/4.4bpp"); +const u32 gFieldEffectObjectPic_JumpOutOfAsh[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash.4bpp"); const u32 gFieldEffectObjectPic_Unknown33_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/0.4bpp"); const u32 gFieldEffectObjectPic_Unknown33_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/1.4bpp"); const u32 gFieldEffectObjectPic_Unknown33_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/2.4bpp"); const u32 gFieldEffectObjectPic_Unknown33_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/3.4bpp"); const u32 gFieldEffectObjectPic_Unknown33_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/4.4bpp"); -const u32 gFieldEffectObjectPic_Bubbles_0[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles/0.4bpp"); -const u32 gFieldEffectObjectPic_Bubbles_1[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles/1.4bpp"); -const u32 gFieldEffectObjectPic_Bubbles_2[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles/2.4bpp"); -const u32 gFieldEffectObjectPic_Bubbles_3[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles/3.4bpp"); -const u32 gFieldEffectObjectPic_Bubbles_4[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles/4.4bpp"); -const u32 gFieldEffectObjectPic_Bubbles_5[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles/5.4bpp"); -const u32 gFieldEffectObjectPic_Bubbles_6[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles/6.4bpp"); -const u32 gFieldEffectObjectPic_Bubbles_7[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles/7.4bpp"); +const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles.4bpp"); const u32 gFieldEffectObjectPic_Unknown35_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35/0.4bpp"); const u32 gFieldEffectObjectPic_Unknown35_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35/1.4bpp"); const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_03.gbapal"); -- cgit v1.2.3 From 12ff59f9c1d9618a2c7b7408c9ffea8e4c617629 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 10 Aug 2018 00:42:06 -0700 Subject: Continue decompiling field_specials --- src/field_specials.c | 876 ++++++++++++++++++++++++++++++++++++++++++++++++++- src/menu.c | 1 - 2 files changed, 874 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/field_specials.c b/src/field_specials.c index 5f4b4f784..20165180b 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 223f8fd52..f4ffec023 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); -- cgit v1.2.3 From c3512e3b39117c29c92b6e6cd3f59a7e6036eb13 Mon Sep 17 00:00:00 2001 From: garak Date: Fri, 10 Aug 2018 10:45:15 -0400 Subject: port larger heal location changes from poke ruby pr --- src/data/heal_locations.h | 25 +++++++++++++++++++++++++ src/heal_location.c | 26 +------------------------- src/region_map.c | 42 ++++++++++++++++++++++-------------------- 3 files changed, 48 insertions(+), 45 deletions(-) create mode 100644 src/data/heal_locations.h (limited to 'src') diff --git a/src/data/heal_locations.h b/src/data/heal_locations.h new file mode 100644 index 000000000..613bcebe8 --- /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 41b9898fe..b378e8e8c 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 5176d4996..5420fbefa 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) -- cgit v1.2.3 From 1e0f3ec433875aa38c259b866fca7ea38b39d072 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 10 Aug 2018 14:07:23 -0700 Subject: Continue decompiling field_specials --- src/field_specials.c | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 253 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/field_specials.c b/src/field_specials.c index 20165180b..7d57bddde 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 -- cgit v1.2.3 From 2fc3b7f1714011b126c66dbd445194ed50229bb5 Mon Sep 17 00:00:00 2001 From: garak Date: Sat, 11 Aug 2018 10:28:13 -0400 Subject: change sUnknown_085A1E3C to sMapHealLocations --- src/region_map.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/region_map.c b/src/region_map.c index 5420fbefa..3bf6ce800 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; } -- cgit v1.2.3 From 7961aa44baa7935c5d410203e4fc7f29ff194ca1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 11 Aug 2018 17:57:20 +0200 Subject: start porting slot machine --- src/slot_machine.c | 887 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 887 insertions(+) create mode 100644 src/slot_machine.c (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c new file mode 100644 index 000000000..02e842ce9 --- /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; +} -- cgit v1.2.3 From 0e0d1030443ee5c1ffd281eaa89e0b4dccad6ae7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 11 Aug 2018 18:47:56 +0200 Subject: port more of slot machine --- src/slot_machine.c | 485 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 482 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index 02e842ce9..fd4726879 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; +} -- cgit v1.2.3 From feee4751eb504f9e6cec67f53c43ee849f42fbc3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 11 Aug 2018 22:54:34 +0200 Subject: Make event data look cleaner --- src/event_data.c | 72 +++++++++++++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/event_data.c b/src/event_data.c index efd439a3c..e42f5d514 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) -- cgit v1.2.3 From 7f167ca9f49c258e4c97e25430e2619a2ddd490f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 11 Aug 2018 23:00:16 +0200 Subject: Update battle_script_commands.c --- src/battle_script_commands.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 5c0b78240..7f5a4fb48 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) -- cgit v1.2.3 From b54793be91b1937d059751ea928112052a2429e0 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 11 Aug 2018 14:51:54 -0700 Subject: Finish decompiling field_specials --- src/field_specials.c | 1397 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 942 insertions(+), 455 deletions(-) (limited to 'src') diff --git a/src/field_specials.c b/src/field_specials.c index 7d57bddde..897bcc8d7 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 -}; +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 + }; -void sub_813A694(u8 taskId) -{ 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 -}; +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, + }; -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_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_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 -}; + 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 + }; -void sub_813ABD4(u16 a0); + 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 + }; -void sub_813AA60(u16 a0, u16 a1) -{ 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, -}; +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, + }; -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, -}; + 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, + }; -void sub_813AD34(u8 a0, u16 a1) -{ 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) + { + return FALSE; + } + + 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; + } +} + +void sub_813B484(void) +{ + 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 (++var1 > 999) + if (gSaveBlock1Ptr->location.mapGroup == gUnknown_085B3420[i][0]) { - VarSet(VAR_0x4038, 0); - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE)) + if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3420[i][1]) { - switch (gSaveBlock1Ptr->location.mapNum) + 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) { - 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; + gTasks[taskId].data[0]++; + } + else + { + SendBlock(bitmask_all_link_players_but_self(), &gSpecialVar_0x8004, 2); + gTasks[taskId].data[0]++; } } - - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER3)) + 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 { - switch (gSaveBlock1Ptr->location.mapNum) + if (gSpecialVar_Result == 3) { - case MAP_NUM(UNDERWATER3): - case MAP_NUM(UNDERWATER5): - case MAP_NUM(UNDERWATER6): - case MAP_NUM(UNDERWATER7): - VarSet(VAR_0x4039, 1); - return FALSE; - default: - break; + 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; + } +} - if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] && - gSaveBlock1Ptr->location.mapGroup == 0) +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) { - return TRUE; + sub_813BB74(); + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] &= 0xFF80; } else { - VarSet(VAR_0x4037, 0); - return FALSE; + gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] = (gSaveBlock1Ptr->vars[VAR_FANCLUB_UNKNOWN_1 - VARS_START] & 0xFF80) | 0x14; } } else { - VarSet(VAR_0x4038, var1); - return FALSE; + 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 { - return FALSE; + StringCopyN(gStringVar1, record->name, 7); + gStringVar1[7] = EOS; + ConvertInternationalString(gStringVar1, linkRecords->languages[a]); } } -#else -NAKED -bool32 sub_813B3B0(void) + +void sub_813BF10(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"); + 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 -- cgit v1.2.3 From 658f9351fe9349eb16edab8d5d503ef741449d4a Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 11 Aug 2018 14:58:51 -0700 Subject: Rename some specials --- src/hof_pc.c | 4 ++-- src/mauville_old_man.c | 36 ++++++++++++++++++------------------ src/trader.c | 12 ++++++------ 3 files changed, 26 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/hof_pc.c b/src/hof_pc.c index 44b929337..38bf26c65 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 591e3ad9a..752e19e9c 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 c4d70ac9a..2cb74b23c 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); -- cgit v1.2.3 From df5009cb3e723d2bceca45a63acccf54dfafb095 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 00:03:19 +0200 Subject: Move move descriptions to C --- src/data/text/move_descriptions.h | 714 ++++++++++++++++++++++++++++++++++++++ src/data/text/move_names.h | 3 +- src/pokemon_summary_screen.c | 5 +- 3 files changed, 720 insertions(+), 2 deletions(-) create mode 100644 src/data/text/move_descriptions.h (limited to 'src') diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h new file mode 100644 index 000000000..f8830c593 --- /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 3df7c886b..9f540f1d6 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 32d2bde4f..728b887f8 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; -- cgit v1.2.3 From cb9127ccafd894708ede6ece8831de7af483f695 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 11 Aug 2018 15:16:41 -0700 Subject: Revert "Rename some specials" This reverts commit 658f9351fe9349eb16edab8d5d503ef741449d4a. --- src/hof_pc.c | 4 ++-- src/mauville_old_man.c | 36 ++++++++++++++++++------------------ src/trader.c | 12 ++++++------ 3 files changed, 26 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/hof_pc.c b/src/hof_pc.c index 38bf26c65..44b929337 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 752e19e9c..591e3ad9a 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 2cb74b23c..c4d70ac9a 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); -- cgit v1.2.3 From 57b3393192106f628bde9032308917f7fc3f39cf Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 11 Aug 2018 15:42:08 -0700 Subject: Fix compile error --- src/rotating_gate.c | 6 ------ 1 file changed, 6 deletions(-) (limited to 'src') diff --git a/src/rotating_gate.c b/src/rotating_gate.c index 1f5ef165f..fcced6c8c 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[] = -- cgit v1.2.3 From 7b9a7765e00ea01f07ab7c4169804881749f6513 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 00:42:25 +0200 Subject: Make learnsets easier to edit --- src/pokemon.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pokemon.c b/src/pokemon.c index cd7e45758..7c010cd39 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; } } -- cgit v1.2.3 From 3a72e6a80d52215533936f92efbe8e4f3454b7e6 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 11:39:09 +0200 Subject: Easy chat review changes --- src/easy_chat.c | 17 +++++++---------- src/lilycove_lady.c | 22 +++++++++++----------- 2 files changed, 18 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/easy_chat.c b/src/easy_chat.c index 26a69f9ff..fbf4c0e70 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 159ede91e..1012a8e08 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) -- cgit v1.2.3 From 1229bead2ea61019955ededd5f06e64d7e776155 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 11:50:26 +0200 Subject: slot machine review changes --- src/slot_machine.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index fd4726879..5422103c3 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]; -- cgit v1.2.3 From e787d5b60230550a4a8f1f3251b90e141bfcc5ff Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 12:08:51 +0200 Subject: Contest review changes --- src/contest.c | 49 +++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/contest.c b/src/contest.c index b2d35f450..8513fc4a9 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(); -- cgit v1.2.3 From 7dac22314ee647645771ec713407bb83b3ec3de4 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 16:40:31 +0200 Subject: Decompile a bit of pokemon storarage system --- src/pokemon_storage_system.c | 523 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 504 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 7f8c24ab7..7c622c223 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; + + dest_width *= 2; + dest += dest_top * 0x20 + dest_left; + src += src_top * src_width + src_left; + for (i = 0; i < dest_height; 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()) + { + 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]); + } +} - size <<= 0x11; - dst += (dstToMul * 32) + dstToAdd; - src += (srcToMul * srcBy) + srcToAdd; +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(); +} - i = 0; - if (i < count) +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) { - size >>= 1; - for (i = 0; i < count; i++) + sprite->data[1] = 0; + sprite->pos2.x += sprite->data[0]; + if (++sprite->data[2] > 5) { - CpuSet(src, dst, size >> 0x10); - dst += 0x20; - src += srcBy; + 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(); +} -- cgit v1.2.3 From 2ddabca996047b0e6404b926f6455b9e73fc27b2 Mon Sep 17 00:00:00 2001 From: MCboy Date: Sun, 12 Aug 2018 22:31:58 +0430 Subject: apply some changes --- src/field_player_avatar.c | 124 ++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 76 deletions(-) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 3289c1985..6ab721643 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" - -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); +#include "field_player_avatar.h" + +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; -- cgit v1.2.3 From 2dd5fc23d4d34890e17a412ae9ad80e23c7aa50d Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sun, 12 Aug 2018 12:54:07 -0700 Subject: Prepare learn_move for merge --- 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 +- 17 files changed, 817 insertions(+), 114 deletions(-) (limited to 'src') diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 7f5a4fb48..b13727a12 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 257c7233f..46b0f76ad 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 266ea8250..5c1f7db20 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 67876f33b..ab0cd92a2 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 f039c5f24..7960d6cba 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 d134e6375..f58c2b8b3 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 addae6a38..b65fd2045 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" + +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 u8 *gUnknown_0203BC34 = 0; -EWRAM_DATA u8 gUnknown_0203BC38[8] = {0}; +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(); - - gUnknown_0203BC34 = AllocZeroed(0x118); //gUnknown_0203BC34 ? - gUnknown_0203BC34[68] = gSpecialVar_0x8004; + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + clear_scheduled_bg_copies_to_vram(); + sLearnMoveStruct = AllocZeroed(sizeof(struct LearnMoveStruct)); + sLearnMoveStruct->partyMon = gSpecialVar_0x8004; + SetVBlankCallback(VBlankCB_LearnMove); - SetVBlankCallback(sub_8160624); - sub_81607EC(); - sub_81D2824(0); + sub_81607EC(); + sub_81D2824(0); - //gUnknown_0203BC38 ? - gUnknown_0203BC38[0] = 0; - gUnknown_0203BC38[2] = 0; - gUnknown_0203BC38[4] = 0; + gUnknown_0203BC38.listOffset = 0; + gUnknown_0203BC38.listRow = 0; + gUnknown_0203BC38.showContestInfo = 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(); - - gUnknown_0203BC34 = AllocZeroed(0x118); //gUnknown_0203BC34 ? - gUnknown_0203BC34[68] = gSpecialVar_0x8004; - gUnknown_0203BC34[69] = gSpecialVar_0x8005; - - SetVBlankCallback(sub_8160624); - sub_81607EC(); + 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_0203BC38 ? - sub_81D2824(gUnknown_0203BC38[4]); - sub_8161280(); + sub_81607EC(); + sub_81D2824(gUnknown_0203BC38.showContestInfo); + sub_8161280(); - LoadSpriteSheet(&gUnknown_085CEBB0); - LoadSpritePalette(&gUnknown_085CEBB8); + 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); } 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 3afe1abe5..052035e34 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 f4ffec023..eda9513ba 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 178fbb5fa..217fdabae 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 ba18b45ab..ef00e2e06 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 7dd20b237..e615693b9 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 728b887f8..55600b3c4 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 c71f7ed23..b75163200 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 7591d3b57..60271317a 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 b55b0fbc5..36e2b121a 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 3d95d75ac..5be20d5c9 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); -- cgit v1.2.3 From f1daf7442dfd25d12daacd7f59b4c42129d48c09 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 22:04:49 +0200 Subject: event data review changes --- src/event_data.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/event_data.c b/src/event_data.c index e42f5d514..2cbe50f13 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) -- cgit v1.2.3 From b40957c09b0fdebae2923b9080e1a08d92ad0812 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sun, 12 Aug 2018 13:33:41 -0700 Subject: Finish decompiling learn_move --- src/event_data.c | 8 +-- src/learn_move.c | 190 +++++++++++++++++++++++++---------------------------- src/slot_machine.c | 2 +- 3 files changed, 96 insertions(+), 104 deletions(-) (limited to 'src') diff --git a/src/event_data.c b/src/event_data.c index 2cbe50f13..8a998fe26 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 b65fd2045..9058a3287 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*/ -}; - -EWRAM_DATA struct LearnMoveStruct *sLearnMoveStruct = {0}; -EWRAM_DATA struct { + 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}; + +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); - -void VBlankCB_LearnMove(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); + +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 5422103c3..6b6a46cf8 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); -- cgit v1.2.3 From 0d68af7f061ec0826e7f38751b91bae0fd296d55 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 12 Aug 2018 23:20:17 +0200 Subject: copy contest effect from ruby --- src/contest.c | 10 +- src/contest_effect.c | 1174 ++++++++++++++++++++++++++++++++++++++++++++++ src/data/contest_moves.h | 536 +++++++++++++++++++++ 3 files changed, 1715 insertions(+), 5 deletions(-) create mode 100644 src/contest_effect.c create mode 100644 src/data/contest_moves.h (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 8513fc4a9..910637387 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 000000000..40774641d --- /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 000000000..fd0bc5564 --- /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 -- cgit v1.2.3 From 6dac87abfd2bea0ddf126cdc1e9c31757c8fee36 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sun, 12 Aug 2018 14:01:08 -0700 Subject: Cleanup and document learn_move --- src/learn_move.c | 181 +++++++++++++++++++++++++++---------------------------- 1 file changed, 90 insertions(+), 91 deletions(-) (limited to 'src') diff --git a/src/learn_move.c b/src/learn_move.c index 9058a3287..e288a393d 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; -- cgit v1.2.3 From 1a0e6f7aedf66d0c0da07eccd1dd00c4cbc38a93 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 13 Aug 2018 21:24:11 +0200 Subject: match contest effect --- src/contest_effect.c | 44 +-- src/data/contest_moves.h | 712 +++++++++++++++++++++++------------------------ 2 files changed, 383 insertions(+), 373 deletions(-) (limited to 'src') diff --git a/src/contest_effect.c b/src/contest_effect.c index 40774641d..bf155240c 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 fd0bc5564..b47eecb23 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[] = -- cgit v1.2.3 From c72b55a5c4793a75480ba641634d155c806f1cd3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 14 Aug 2018 22:28:25 +0200 Subject: Match the worst function ever --- src/contest_effect.c | 164 +++++++-------------------------------------------- 1 file changed, 22 insertions(+), 142 deletions(-) (limited to 'src') diff --git a/src/contest_effect.c b/src/contest_effect.c index bf155240c..34b9b5807 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) -- cgit v1.2.3 From 0c7063c5bae47d7152c9563751381b5eee384e4a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 14 Aug 2018 23:50:58 +0200 Subject: 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(-) (limited to 'src') diff --git a/src/contest_effect.c b/src/contest_effect.c index 34b9b5807..d54fb769e 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 b47eecb23..fc262dd21 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[] = -- cgit v1.2.3 From 0b22ad4ab520d007b1d0f8b9e1fe9027a2302c40 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 00:01:43 +0200 Subject: make contest effect build --- src/pokemon_summary_screen.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 38b1fea4f..83554eba5 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]; -- cgit v1.2.3 From ba225f8eaab5e46f7fc825adc6df833f3996b38d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 00:25:19 +0200 Subject: Fix fakematching in contest effect --- src/contest_effect.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/contest_effect.c b/src/contest_effect.c index d54fb769e..7c086b799 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; -- cgit v1.2.3 From a07d69d7c2e65ed8ea71ec88cc3c4cadbb444510 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Tue, 14 Aug 2018 21:56:11 -0700 Subject: Finish pokemon_summary_screen --- src/battle_pyramid.c | 248 ++++ src/data/text/nature_names.h | 54 + src/pokemon_summary_screen.c | 2336 +++++++++++++++++++--------------- src/unk_pokedex_area_screen_helper.c | 75 ++ 4 files changed, 1682 insertions(+), 1031 deletions(-) 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 (limited to 'src') diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c new file mode 100644 index 000000000..f9cc48a9a --- /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 000000000..d0d217d9b --- /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 7e20a2a92..b5117d45d 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1,364 +1,731 @@ #include "global.h" +#include "main.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 "constants/items.h" #include "link.h" #include "m4a.h" -#include "main.h" #include "malloc.h" -#include "constants/moves.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 "constants/songs.h" +#include "pokemon_storage_system.h" +#include "region_map.h" +#include "scanline_effect.h" #include "sound.h" -#include "constants/species.h" #include "sprite.h" -#include "dynamic_placeholder_text_util.h" #include "string_util.h" +#include "strings.h" #include "task.h" #include "text.h" +#include "tv.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 "contest.h" -#include "contest_effect.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[]; +static EWRAM_DATA struct UnkSummaryStruct +{ + /*0x00*/ union + { + struct Pokemon *mons; + struct BoxPokemon *boxMons; + } monList; + /*0x04*/ void (*callback)(void); + /*0x08*/ struct Sprite *markingsSpriteId; + /*0x0C*/ struct Pokemon currentMon; + /*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; + bool8 unk40C3; + u16 newMove; + u8 firstMoveIndex; + u8 secondMoveIndex; + bool8 unk40C8; + u8 unk40C9; + 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}; -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); +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(); -u8 sub_81BFEB0(); -void sub_81C2554(); -void sub_81C1BA0(); +void sub_81BFE24(void); +u8 sub_81BFEB0(void); 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_81C0348(void); void sub_81C0484(u8 taskId); -void sub_81C4898(); -void sub_806F47C(u8 a); -u8 GetLRKeysState(); +void sub_81C0510(u8 taskId); 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); +s8 sub_81C09B4(s8 a); bool8 sub_81C0A50(struct Pokemon* mon); -void sub_81C49E0(); -void sub_81C0E24(); -void sub_81C2C38(u8 a); +void sub_81C0A8C(u8 taskId, s8 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_81C0CC4(u8 taskId); void sub_81C0D44(u8 taskId); -void sub_81C22CC(struct Pokemon* mon); +void sub_81C0E24(void); +void sub_81C0E48(u8 taskId); void sub_81C0F44(u8 taskId); -void sub_81C3E9C(u16 a); -void sub_81C3F44(); -void sub_81C44F0(); -void sub_81C4AF8(u8 a); +bool8 sub_81C1040(void); 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_81C171C(u8 taskId); void sub_81C174C(u8 taskId); -bool8 sub_81C18A8(); +bool8 sub_81C18A8(void); void sub_81C18F4(u8 a); -u8 sub_81B6D14(u16 a); void sub_81C1940(u8 taskId); -void sub_81C4154(); +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_81C2628(); -void sub_81C2794(); +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_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_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(); -bool8 sub_81C32BC(); -void sub_81C35E4(); -void sub_81C3690(); -void sub_81C3710(); -void sub_81C37D8(); -void sub_81C3808(); -void sub_81C3890(); -void sub_81C38C0(); +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_81C4D18(); - -void SetBgAttribute(u8 bg, u8 attributeId, u8 value); - -bool8 sub_81BFB10(); -u8 sub_81B1250(); - -union UnkUnion -{ - 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; - /*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; - u8 unk40C0; - u8 unk40C1; - u8 unk40C2; - u8 unk40C3; - u16 unk40C4; - u8 unk40C6; - u8 unk40C7; - u8 unk40C8; - u8 unk40C9; - u8 unk40CA; - u8 unk40CB[8]; - u8 unk40D3[0x1C]; - u8 unk40EF; - s16 unk40F0; - u8 unk_filler4[6]; -}; +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) -{ - 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; +void sub_81BF8EC(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; + + 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 -{ - 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) +void sub_81C1CB0(const struct UnkStruct_61CC04 *unkStruct, u16 *dest, u8 c, bool8 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) + +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); -} -#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"); + sub_81C25A4(sp, text, offset, a * 16 + 1, 0, ppState); } -#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->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 - sub_81C4318(NUMBER_OF_MON_TYPES + gContestMoves[gUnknown_0203CF1C->unk40C4].contestCategory, 0x55, 0x60, 7); + { + 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 000000000..3bed79a65 --- /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); +} -- cgit v1.2.3 From 332a8bcb1d6c9b01e27cc4f5a7a08ae26bf62f79 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Tue, 14 Aug 2018 22:05:48 -0700 Subject: Extract rodata for unk_pokedex_area_screen_helper --- src/pokemon_summary_screen.c | 17 ++++++++--------- src/unk_pokedex_area_screen_helper.c | 8 ++++---- 2 files changed, 12 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index b5117d45d..4d194f74a 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 3bed79a65..521af6dd9 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 { -- cgit v1.2.3 From 0bc975bf57a1603d2d23265ea9fad39cc05622b9 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 15 Aug 2018 01:44:20 -0700 Subject: Document and cleanup pokemon_summary_screen --- src/pokemon_summary_screen.c | 992 +++++++++++++++++++++++-------------------- 1 file changed, 535 insertions(+), 457 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 4d194f74a..347f38285 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) -{ - BlitBitmapToWindow(a, (b) ? &gUnknown_0861CDD3[0] : &gUnknown_0861CDD3[0] - 0x80, c, 0, 16, 16); -} - -void sub_81C286C(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); +void PrintAOrBButtonIcon(u8 windowId, bool8 bButton, u32 x) +{ + BlitBitmapToWindow(windowId, (bButton) ? gUnknown_0861CDD3 : gUnknown_0861CDD3 - 0x80, x, 0, 16, 16); +} + +void PrintRentalMonStatsPage(void) +{ + 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) -- cgit v1.2.3 From c806992cfc5a4fac53f2c8a52b32f7a039773e41 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 11:43:57 +0200 Subject: Port contest ai from pokeruby --- src/contest.c | 10 +- src/contest_ai.c | 1758 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1763 insertions(+), 5 deletions(-) create mode 100644 src/contest_ai.c (limited to 'src') diff --git a/src/contest.c b/src/contest.c index 8513fc4a9..910637387 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 000000000..059c351e9 --- /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; +} -- cgit v1.2.3 From 92c4fc6345faf9e5c8af4035103eea26164b68bd Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 11:50:18 +0200 Subject: Contest AI clean-up --- src/contest_ai.c | 102 +++++++++++++++++++++++++++---------------------------- 1 file changed, 50 insertions(+), 52 deletions(-) (limited to 'src') diff --git a/src/contest_ai.c b/src/contest_ai.c index 059c351e9..3324ddf87 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; -- cgit v1.2.3 From dc6cf391cec2bdf1fd0717f6ece90d3b1a55fccd Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 12:06:23 +0200 Subject: Make contest ai compile. --- src/pokemon_summary_screen.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 7e20a2a92..53320544d 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]; -- cgit v1.2.3 From a54fa23b5f30b0c6cc24f211137b3f6c892b3cd5 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 15:49:50 +0200 Subject: Begin battle frontier 1 --- src/battle_frontier_1.c | 1235 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1235 insertions(+) create mode 100644 src/battle_frontier_1.c (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c new file mode 100644 index 000000000..b84e91973 --- /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]); +} -- cgit v1.2.3 From ac3f4fd99475912ce52fb88be76a0809d9b6fbed Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 15 Aug 2018 11:47:10 -0700 Subject: Continue documentation and cleanup of pokemon_summary_screen --- src/pokemon.c | 6 +- src/pokemon_summary_screen.c | 226 ++++++++++++++++++++++--------------------- 2 files changed, 119 insertions(+), 113 deletions(-) (limited to 'src') diff --git a/src/pokemon.c b/src/pokemon.c index 7c010cd39..76eaf65e3 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 347f38285..ef55129f4 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); } } -- cgit v1.2.3 From 8896b54e8f45528fc6c21cd55cdace2ad03b2796 Mon Sep 17 00:00:00 2001 From: Tetrable Date: Wed, 15 Aug 2018 20:10:28 +0100 Subject: Add national/hoenn dex defines, update dex arrays --- src/pokemon.c | 1250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1247 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pokemon.c b/src/pokemon.c index 7c010cd39..585071254 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[] = { -- cgit v1.2.3 From e2f5e7344593c980b1fbce0a67ab4d57ff76fcd7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Aug 2018 23:04:46 +0200 Subject: More battle dome --- src/battle_frontier_1.c | 440 +++++++++++++++++++++++++++++++++++++++++++----- src/battle_message.c | 2 +- 2 files changed, 395 insertions(+), 47 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index b84e91973..3c97215e3 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 13502d6f2..78b9ac53b 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, -- cgit v1.2.3 From e7da51438286bceaa085aad524065cbfe645faf0 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 15 Aug 2018 15:58:41 -0700 Subject: Finish documenting and cleaning up summary_screen Also fix remaining nonmatchings --- src/pokemon_summary_screen.c | 1716 +++++++++++++++++------------------------- 1 file changed, 684 insertions(+), 1032 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index ef55129f4..c47ddb14c 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; } +static void SwapMonMoves(struct Pokemon *mon, u8 moveIndex1, u8 moveIndex2) +{ + struct PokeSummary* summary = &pssData->summary; + + u16 move1 = summary->moves[moveIndex1]; + u16 move2 = summary->moves[moveIndex2]; + u8 move1pp = summary->pp[moveIndex1]; + u8 move2pp = summary->pp[moveIndex2]; + u8 ppBonuses = summary->ppBonuses; + + // 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)); + + // 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; + + summary->pp[moveIndex1] = move2pp; + summary->pp[moveIndex2] = move1pp; + + summary->ppBonuses = ppBonuses; +} + +static void SwapBoxMonMoves(struct BoxPokemon *mon, u8 moveIndex1, u8 moveIndex2) +{ + struct PokeSummary* summary = &pssData->summary; + + u16 move1 = summary->moves[moveIndex1]; + u16 move2 = summary->moves[moveIndex2]; + u8 move1pp = summary->pp[moveIndex1]; + u8 move2pp = summary->pp[moveIndex2]; + u8 ppBonuses = summary->ppBonuses; -#ifdef NONMATCHING -void sub_81C14BC(struct Pokemon *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; - - moveFromPtr = &gUnknown_0203CF1C->summary.moves[swappingFromId]; - localMoveFrom = *moveFromPtr; - - moveToPtr = &gUnknown_0203CF1C->summary.moves[swappingToId]; - localMoveTo = *moveToPtr; - - ppFromPtr = &gUnknown_0203CF1C->summary.pp[swappingFromId]; - localPpFrom = *ppFromPtr; - - 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))); -} - - 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) -{ - 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 - -#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; - - moveFromPtr = &gUnknown_0203CF1C->summary.moves[swappingFromId]; - localMoveFrom = *moveFromPtr; - - moveToPtr = &gUnknown_0203CF1C->summary.moves[swappingToId]; - localMoveTo = *moveToPtr; - - ppFromPtr = &gUnknown_0203CF1C->summary.pp[swappingFromId]; - localPpFrom = *ppFromPtr; - - 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))); -} - - 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) + // 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)); + + // 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; + + summary->pp[moveIndex1] = move2pp; + summary->pp[moveIndex2] = move1pp; + + summary->ppBonuses = ppBonuses; +} + +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; + { + pssData->spriteIds[i] = 0xFF; + } } -void DestroySpriteInArray(u8 spriteArrayId) +static void DestroySpriteInArray(u8 spriteArrayId) { - if (gUnknown_0203CF1C->spriteIds[spriteArrayId] != 0xFF) + if (pssData->spriteIds[spriteArrayId] != 0xFF) { - DestroySprite(&gSprites[gUnknown_0203CF1C->spriteIds[spriteArrayId]]); - gUnknown_0203CF1C->spriteIds[spriteArrayId] = 0xFF; + DestroySprite(&gSprites[pssData->spriteIds[spriteArrayId]]); + pssData->spriteIds[spriteArrayId] = 0xFF; } } -void sub_81C4204(u8 spriteArrayId, bool8 invisible) +static void sub_81C4204(u8 spriteArrayId, bool8 invisible) { - gSprites[gUnknown_0203CF1C->spriteIds[spriteArrayId]].invisible = invisible; + gSprites[pssData->spriteIds[spriteArrayId]].invisible = invisible; } -void sub_81C424C(void) +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++) { -- cgit v1.2.3 From 2b81db7acecd8baa3e343de66fd229040ec81381 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 15 Aug 2018 18:50:56 -0700 Subject: Fix Task_Truck1 --- src/field_special_scene.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 6f33b2c9b..c6cb0741d 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) -- cgit v1.2.3 From 7669a94f0d01c0a825d2ae48c12adef0be445d81 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Aug 2018 22:46:02 +0200 Subject: this function is driving me insane --- src/battle_frontier_1.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 3c97215e3..04faad6cd 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; -}*/ +} -- cgit v1.2.3 From 5dd1afd383fafda3bb8b956073e426ffad42fa00 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Aug 2018 22:55:36 +0200 Subject: contest effect review changes --- src/contest_effect.c | 24 ++++++++++++++++++++---- src/data/contest_moves.h | 5 ----- 2 files changed, 20 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/contest_effect.c b/src/contest_effect.c index 7c086b799..760d74d69 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 fc262dd21..ae560c833 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 -- cgit v1.2.3 From 63cbc8f3ccb11b05c627717a2de82d3134d599d9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 18 Aug 2018 00:54:18 +0200 Subject: battle dome - a couple more functions --- 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 +- 7 files changed, 812 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 04faad6cd..d217bfa60 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 ab0cd92a2..1c626cc86 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 7960d6cba..ae15e79fe 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 f57c4b48f..8d1988686 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 b729f86eb..457e44a01 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 eda9513ba..8a4b4fce5 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 0d73a9fe1..2a0033306 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); -- cgit v1.2.3 From f7fd5ce75c481ff1f019d661b4e817c6a8d1a34f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 18 Aug 2018 18:23:40 +0200 Subject: Match one of the hardest battle dome functions --- src/battle_frontier_1.c | 1829 +++++++++++++++++++++++------------------------ 1 file changed, 889 insertions(+), 940 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index d217bfa60..c977f7d76 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) + do { - val = sub_8162548(sub_81A39C4() + 1, 0); - for (k = 1; k < l; k++) + trainerId = sub_8162548(sub_81A39C4() + 1, 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; } - for (var_38 = 0; var_38 < 3; var_38++) + for (j = 0; j < 3; j++) { - u16 val2; + // Make sure the mon is valid. do { - val2 = sub_8163524(val); - for (i = 0; i < l; i++) + monTournamentId = RandomizeFacilityTrainerMonId(trainerId); + for (k = 0; k < j; k++) { - 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) + 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 (i != var_38); + } while (k != j); - gSaveBlock2Ptr->frontier.domeMonId[var_24] = val2; - array[var_38] = gFacilityTrainerMons[val2].field_0; + gSaveBlock2Ptr->frontier.domeMonId[i][j] = monTournamentId; + species[j] = gFacilityTrainerMons[monTournamentId].species; } - gSaveBlock2Ptr->frontier.domeTrainers[var_28].unk1 = 0; - gSaveBlock2Ptr->frontier.domeTrainers[var_28].unk2 = 0; - gSaveBlock2Ptr->frontier.domeTrainers[var_28].unk3 = 0; + 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; } - 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, =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\ - "); + 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); + } + } + } + } + + 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); } -#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; + } +} -- cgit v1.2.3 From e4649245bac064d700413e922b067ecb50133175 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 18 Aug 2018 19:52:25 +0200 Subject: this file is too much --- src/battle_frontier_1.c | 146 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 133 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index c977f7d76..784ad3656 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; +} -- cgit v1.2.3 From fb19a8fc59fcf67c6d4ddfd696e172bcacff27b7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Aug 2018 01:06:10 +0200 Subject: battle dome cards sensibly renamed --- src/battle_dome_cards.c | 433 ------------------------------------------ src/battle_frontier_1.c | 180 +++++++++--------- 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 +- src/trainer_pokemon_sprites.c | 413 ++++++++++++++++++++++++++++++++++++++++ 14 files changed, 620 insertions(+), 650 deletions(-) delete mode 100644 src/battle_dome_cards.c create mode 100644 src/trainer_pokemon_sprites.c (limited to 'src') diff --git a/src/battle_dome_cards.c b/src/battle_dome_cards.c deleted file mode 100644 index 5e659a2e8..000000000 --- a/src/battle_dome_cards.c +++ /dev/null @@ -1,433 +0,0 @@ - -// Includes -#include "global.h" -#include "sprite.h" -#include "window.h" -#include "malloc.h" -#include "constants/species.h" -#include "palette.h" -#include "decompress.h" -#include "battle_dome_cards.h" - -extern const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES]; -extern const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES]; -extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; -extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern const union AffineAnimCmd *const gUnknown_082FF618[]; -extern const union AffineAnimCmd *const gUnknown_082FF694[]; -extern const union AnimCmd *const gPlayerMonSpriteAnimsTable[]; -extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[NUM_SPECIES]; -extern const union AnimCmd *const *const gUnknown_0830536C[]; -extern const u8 gFacilityClassToPicIndex[]; - -// Static type declarations - -struct BattleDomeCard -{ - u8 *frames; - struct SpriteFrameImage *images; - u16 paletteTag; - u8 spriteId; - u8 active; -}; - -// Static RAM declarations - -static EWRAM_DATA struct SpriteTemplate gUnknown_0203CCEC = {}; -static EWRAM_DATA struct BattleDomeCard gUnknown_0203CD04[8] = {}; - -// Static ROM declarations - -// .rodata - -static const struct BattleDomeCard gUnknown_0860B058 = {}; -static const struct OamData gUnknown_0860B064 = -{ - .size = 3 -}; -static const struct OamData gUnknown_0860B06C = -{ - .affineMode = 1, .size = 3 -}; - -// .text - -static void nullsub_122(struct Sprite *sprite) -{ - -} - -bool16 dp13_810BB8C(void) -{ - int i; - - for (i = 0; i < 8; i ++) - { - gUnknown_0203CD04[i] = gUnknown_0860B058; - } - return FALSE; -} - -static bool16 load_pokemon_image_TODO(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) -{ - return load_pokemon_image_TODO(species, personality, isFrontPic, dest, isTrainer, FALSE); -} - -static void sub_818D0C4(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) -{ - if (!isTrainer) - { - if (paletteTag == 0xFFFF) - { - gUnknown_0203CCEC.paletteTag |= 0xFFFF; - LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20); - } - else - { - gUnknown_0203CCEC.paletteTag = paletteTag; - LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); - } - } - else - { - if (paletteTag == 0xFFFF) - { - gUnknown_0203CCEC.paletteTag |= 0xFFFF; - LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20); - } - else - { - gUnknown_0203CCEC.paletteTag = paletteTag; - LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]); - } - } -} - -static void sub_818D180(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) -{ - if (!isTrainer) - { - gUnknown_0203CCEC.anims = gPlayerMonSpriteAnimsTable; - } - else - { - gUnknown_0203CCEC.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) -{ - u8 i; - u8 *framePics; - struct SpriteFrameImage *images; - int j; - u8 spriteId; - - for (i = 0; i < 8; i ++) - { - if (!gUnknown_0203CD04[i].active) - { - break; - } - } - if (i == 8) - { - return 0xFFFF; - } - framePics = Alloc(4 * 0x800); - if (!framePics) - { - return 0xFFFF; - } - images = Alloc(4 * sizeof(struct SpriteFrameImage)); - if (!images) - { - Free(framePics); - return 0xFFFF; - } - if (load_pokemon_image_TODO(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys)) - { - // debug trap? - return 0xFFFF; - } - for (j = 0; j < 4; j ++) - { - 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); - 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; - return spriteId; -} - -static u16 sub_818D384(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); -} - -u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) -{ - u8 *framePics; - struct SpriteFrameImage *images; - int j; - u8 i; - u8 spriteId; - u8 flags2; - - for (i = 0; i < 8; i ++) - { - if (!gUnknown_0203CD04[i].active) - { - break; - } - } - if (i == 8) - { - return 0xFFFF; - } - framePics = Alloc(4 * 0x800); - if (!framePics) - { - return 0xFFFF; - } - if (flags & 0x80) - { - flags &= 0x7F; - flags2 = 3; - } - else - { - flags2 = flags; - } - images = Alloc(4 * sizeof(struct SpriteFrameImage)); - if (!images) - { - Free(framePics); - return 0xFFFF; - } - if (load_pokemon_image_TODO(species, personality, flags, framePics, FALSE, FALSE)) - { - // debug trap? - return 0xFFFF; - } - for (j = 0; j < 4; j ++) - { - images[j].data = framePics + 0x800 * j; - images[j].size = 0x800; - } - gUnknown_0203CCEC.tileTag = 0xFFFF; - gUnknown_0203CCEC.anims = gMonAnimationsSpriteAnimsPtrTable[species]; - gUnknown_0203CCEC.images = images; - if (flags2 == 0x01) - { - gUnknown_0203CCEC.affineAnims = gUnknown_082FF694; - gUnknown_0203CCEC.oam = &gUnknown_0860B06C; - } - else if (flags2 == 0x00) - { - gUnknown_0203CCEC.affineAnims = gUnknown_082FF618; - gUnknown_0203CCEC.oam = &gUnknown_0860B06C; - } - else - { - gUnknown_0203CCEC.oam = &gUnknown_0860B064; - gUnknown_0203CCEC.affineAnims = gDummySpriteAffineAnimTable; - } - gUnknown_0203CCEC.callback = nullsub_122; - sub_818D0C4(species, otId, personality, paletteSlot, paletteTag, FALSE); - spriteId = CreateSprite(&gUnknown_0203CCEC, 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; - return spriteId; -} - -static u16 sub_818D5B0(u16 spriteId) -{ - u8 i; - u8 *framePics; - struct SpriteFrameImage *images; - - for (i = 0; i < 8; i ++) - { - if (gUnknown_0203CD04[i].spriteId == spriteId) - { - break; - } - } - if (i == 8) - { - return 0xFFFF; - } - framePics = gUnknown_0203CD04[i].frames; - images = gUnknown_0203CD04[i].images; - if (gUnknown_0203CD04[i].paletteTag != 0xFFFF) - { - FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); - } - DestroySprite(&gSprites[spriteId]); - Free(framePics); - Free(images); - gUnknown_0203CD04[i] = gUnknown_0860B058; - 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)) - { - return 0xFFFF; - } - sub_818D180(species, otId, personality, paletteSlot, isTrainer); - return 0; -} - -static u16 sub_818D6CC(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId, bool8 isTrainer) -{ - u8 *framePics; - - framePics = Alloc(4 * 0x800); - if (framePics && !sub_818D09C(species, personality, isFrontPic, framePics, isTrainer)) - { - BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40); - sub_818D180(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) -{ - return oamt_spawn_poke_or_trainer_picture(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) -{ - return sub_818D778(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE); -} - -u16 sub_818D820(u16 spriteId) -{ - return sub_818D5B0(spriteId); -} - -u16 sub_818D834(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) -{ - return sub_818D65C(species, otId, personality, isFrontPic, paletteSlot, windowId, FALSE); -} - -u16 sub_818D864(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) -{ - 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) -{ - return sub_818D384(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE); -} - -u16 sub_818D8F0(u16 spriteId) -{ - return sub_818D5B0(spriteId); -} - -u16 sub_818D904(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId) -{ - return sub_818D65C(species, 0, 0, isFrontPic, paletteSlot, windowId, TRUE); -} - -u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) -{ - return sub_818D6CC(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE); -} - -u8 sub_818D97C(u8 a0, u8 a1) -{ - if (a1 == 1) - { - switch (a0) - { - default: - return gFacilityClassToPicIndex[0x3F]; - case 0: - return gFacilityClassToPicIndex[0x3C]; - } - } - return a0; -} diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 784ad3656..a1d8b2c31 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 == 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) + 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) { - retVal = 7; - gUnknown_0203CD78->unk_10--; + gUnknown_0203CD78->unk_10++; + retVal = 4; } - else if (gMain.newKeys & DPAD_RIGHT && (gUnknown_0203CD78->unk_10 == 0 || gUnknown_0203CD78->unk_10 == 1)) + if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].unk1 && gUnknown_0203CD78->unk_10 - 1 < roundId) { - retVal = 8; gUnknown_0203CD78->unk_10++; + retVal = 4; } + } - 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 == 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 != 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_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 a88e4b549..c054958ce 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 f047c78a3..13de58aa4 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 897bcc8d7..e20ccf618 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 f5c4ba491..33c85d448 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 052035e34..e28faf986 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 8b8436d10..da5e91229 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 d85af9e4d..1cf830cf7 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 2a0033306..2cb3c153f 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 7c010cd39..7dedc917f 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 8b21e214f..8e85fed18 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 36e2b121a..c1e7eea40 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/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c new file mode 100644 index 000000000..085e66214 --- /dev/null +++ b/src/trainer_pokemon_sprites.c @@ -0,0 +1,413 @@ +#include "global.h" +#include "sprite.h" +#include "window.h" +#include "malloc.h" +#include "constants/species.h" +#include "palette.h" +#include "decompress.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]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; +extern const union AffineAnimCmd *const gUnknown_082FF618[]; +extern const union AffineAnimCmd *const gUnknown_082FF694[]; +extern const union AnimCmd *const gPlayerMonSpriteAnimsTable[]; +extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[NUM_SPECIES]; +extern const union AnimCmd *const *const gUnknown_0830536C[]; + +// Static type declarations + +struct PicData +{ + u8 *frames; + struct SpriteFrameImage *images; + u16 paletteTag; + u8 spriteId; + u8 active; +}; + +// Static RAM declarations +#define PICS_COUNT 8 + +static EWRAM_DATA struct SpriteTemplate sCreatingSpriteTemplate = {}; +static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {}; + +// Static ROM declarations + +// .rodata + +static const struct PicData sDummyPicData = {}; +static const struct OamData gUnknown_0860B064 = +{ + .size = 3 +}; +static const struct OamData gUnknown_0860B06C = +{ + .affineMode = 1, .size = 3 +}; + +// .text + +static void DummyPicSpriteCallback(struct Sprite *sprite) +{ + +} + +bool16 ResetAllPicSprites(void) +{ + int i; + + for (i = 0; i < PICS_COUNT; i ++) + sSpritePics[i] = sDummyPicData; + + return FALSE; +} + +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 DecompressPic_HandleDeoxys(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer) +{ + return DecompressPic(species, personality, isFrontPic, dest, isTrainer, FALSE); +} + +static void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +{ + if (!isTrainer) + { + if (paletteTag == 0xFFFF) + { + sCreatingSpriteTemplate.paletteTag |= 0xFFFF; + LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20); + } + else + { + sCreatingSpriteTemplate.paletteTag = paletteTag; + LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); + } + } + else + { + if (paletteTag == 0xFFFF) + { + sCreatingSpriteTemplate.paletteTag |= 0xFFFF; + LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20); + } + else + { + sCreatingSpriteTemplate.paletteTag = paletteTag; + LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]); + } + } +} + +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 AssignSpriteAnimsTable(bool8 isTrainer) +{ + if (!isTrainer) + sCreatingSpriteTemplate.anims = gPlayerMonSpriteAnimsTable; + else + sCreatingSpriteTemplate.anims = gUnknown_0830536C[0]; +} + +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; + struct SpriteFrameImage *images; + int j; + u8 spriteId; + + for (i = 0; i < PICS_COUNT; i ++) + { + if (!sSpritePics[i].active) + { + break; + } + } + if (i == PICS_COUNT) + { + return 0xFFFF; + } + framePics = Alloc(4 * 0x800); + if (!framePics) + { + return 0xFFFF; + } + images = Alloc(4 * sizeof(struct SpriteFrameImage)); + if (!images) + { + Free(framePics); + return 0xFFFF; + } + if (DecompressPic(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys)) + { + // debug trap? + return 0xFFFF; + } + for (j = 0; j < 4; j ++) + { + images[j].data = framePics + 0x800 * j; + images[j].size = 0x800; + } + 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; + } + sSpritePics[i].frames = framePics; + sSpritePics[i].images = images; + sSpritePics[i].paletteTag = paletteTag; + sSpritePics[i].spriteId = spriteId; + sSpritePics[i].active = TRUE; + return spriteId; +} + +static u16 CreatePicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +{ + return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE); +} + +u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + u8 *framePics; + struct SpriteFrameImage *images; + int j; + u8 i; + u8 spriteId; + u8 flags2; + + for (i = 0; i < PICS_COUNT; i ++) + { + if (!sSpritePics[i].active) + { + break; + } + } + if (i == PICS_COUNT) + { + return 0xFFFF; + } + framePics = Alloc(4 * 0x800); + if (!framePics) + { + return 0xFFFF; + } + if (flags & 0x80) + { + flags &= 0x7F; + flags2 = 3; + } + else + { + flags2 = flags; + } + images = Alloc(4 * sizeof(struct SpriteFrameImage)); + if (!images) + { + Free(framePics); + return 0xFFFF; + } + if (DecompressPic(species, personality, flags, framePics, FALSE, FALSE)) + { + // debug trap? + return 0xFFFF; + } + for (j = 0; j < 4; j ++) + { + images[j].data = framePics + 0x800 * j; + images[j].size = 0x800; + } + sCreatingSpriteTemplate.tileTag = 0xFFFF; + sCreatingSpriteTemplate.anims = gMonAnimationsSpriteAnimsPtrTable[species]; + sCreatingSpriteTemplate.images = images; + if (flags2 == 0x01) + { + sCreatingSpriteTemplate.affineAnims = gUnknown_082FF694; + sCreatingSpriteTemplate.oam = &gUnknown_0860B06C; + } + else if (flags2 == 0x00) + { + sCreatingSpriteTemplate.affineAnims = gUnknown_082FF618; + sCreatingSpriteTemplate.oam = &gUnknown_0860B06C; + } + else + { + sCreatingSpriteTemplate.oam = &gUnknown_0860B064; + sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; + } + sCreatingSpriteTemplate.callback = DummyPicSpriteCallback; + LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, FALSE); + spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0); + if (paletteTag == 0xFFFF) + { + gSprites[spriteId].oam.paletteNum = paletteSlot; + } + sSpritePics[i].frames = framePics; + sSpritePics[i].images = images; + sSpritePics[i].paletteTag = paletteTag; + sSpritePics[i].spriteId = spriteId; + sSpritePics[i].active = TRUE; + return spriteId; +} + +static u16 FreeAndDestroyPicSpriteInternal(u16 spriteId) +{ + u8 i; + u8 *framePics; + struct SpriteFrameImage *images; + + for (i = 0; i < PICS_COUNT; i ++) + { + if (sSpritePics[i].spriteId == spriteId) + { + break; + } + } + if (i == PICS_COUNT) + { + return 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); + sSpritePics[i] = sDummyPicData; + return 0; +} + +static u16 sub_818D65C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer) +{ + if (DecompressPic_HandleDeoxys(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE)) + { + return 0xFFFF; + } + LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer); + return 0; +} + +static u16 sub_818D6CC(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId, bool8 isTrainer) +{ + u8 *framePics; + + framePics = Alloc(4 * 0x800); + if (framePics && !DecompressPic_HandleDeoxys(species, personality, isFrontPic, framePics, isTrainer)) + { + BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40); + LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer); + Free(framePics); + return 0; + } + return 0xFFFF; +} + +static u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys) +{ + return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys); +} + +u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + return CreateMonPicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE); +} + +u16 FreeAndDestroyMonPicSprite(u16 spriteId) +{ + return FreeAndDestroyPicSpriteInternal(spriteId); +} + +u16 sub_818D834(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +{ + return sub_818D65C(species, otId, personality, isFrontPic, paletteSlot, windowId, FALSE); +} + +u16 sub_818D864(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) +{ + return sub_818D6CC(species, otId, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE); +} + +u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + return CreatePicSprite_HandleDeoxys(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE); +} + +u16 FreeAndDestroyTrainerPicSprite(u16 spriteId) +{ + return FreeAndDestroyPicSpriteInternal(spriteId); +} + +u16 sub_818D904(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +{ + return sub_818D65C(species, 0, 0, isFrontPic, paletteSlot, windowId, TRUE); +} + +u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) +{ + return sub_818D6CC(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE); +} + +u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass) +{ + if (getClass == TRUE) + { + switch (gender) + { + default: + return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_MAY]; + case MALE: + return gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_BRENDAN]; + } + } + return gender; +} -- cgit v1.2.3 From 239c56496b2bc88f485b6305ddce44155735410b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Aug 2018 17:13:05 +0200 Subject: This is impossible --- src/battle_frontier_1.c | 388 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 382 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index a1d8b2c31..692f942fc 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); } -*/ -- cgit v1.2.3 From 4a0f7398ece5d07e432c555ed75106554db8f97c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Aug 2018 20:21:37 +0200 Subject: Cant believe Ive matched this --- src/battle_frontier_1.c | 146 ++++++++++++++++++++++++------------------------ 1 file changed, 73 insertions(+), 73 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 692f942fc..f65a25a16 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) ) ) { -- cgit v1.2.3 From 5da12f2b21e5e9018fc151b2765587cb84109cfb Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Aug 2018 22:26:07 +0200 Subject: battle dome - more work --- src/battle_frontier_1.c | 432 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 428 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index f65a25a16..0c718ed74 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; +} -- cgit v1.2.3 From a12b69eae1d24168e0135b42c766b3b5d64d7007 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 20 Aug 2018 22:56:05 +0200 Subject: DisplayMatchInfoOnCard decompiled --- src/battle_frontier_1.c | 372 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 297 insertions(+), 75 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 0c718ed74..ccead0845 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); +} -- cgit v1.2.3 From dea1de3fed1e47323dd148fa62225712fc0d52b2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 21 Aug 2018 23:36:59 +0200 Subject: More battle dome --- src/battle_frontier_1.c | 186 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 177 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index ccead0845..db6f99c8c 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; +} -- cgit v1.2.3 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: Move some data from data2b.s to C --- src/data2b.c | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 src/data2b.c (limited to 'src') diff --git a/src/data2b.c b/src/data2b.c new file mode 100644 index 000000000..8a78a9d90 --- /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, +}; -- cgit v1.2.3 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: Convert more data --- src/data2b.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/data2b.c b/src/data2b.c index 8a78a9d90..78e671a7a 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" -- cgit v1.2.3 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: Convert more of data2b.s to C --- src/data2b.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/data2b.c b/src/data2b.c index 78e671a7a..e7ca473a9 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" -- cgit v1.2.3 From 26ef40553c651560afb2ac9ba1f9a6c1aad4bc8d Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Thu, 23 Aug 2018 02:32:34 -0500 Subject: Move data from include to src --- src/data/bard_music/actions.h | 630 ++ src/data/bard_music/adjectives.h | 294 + src/data/bard_music/bard_sounds.h | 52 + src/data/bard_music/battle.h | 510 + src/data/bard_music/conditions.h | 558 + src/data/bard_music/default_sound.h | 13 + src/data/bard_music/endings.h | 558 + src/data/bard_music/events.h | 238 + src/data/bard_music/feelings.h | 558 + src/data/bard_music/greetings.h | 342 + src/data/bard_music/hobbies.h | 438 + src/data/bard_music/length_table.h | 21 + src/data/bard_music/lifestyle.h | 366 + src/data/bard_music/misc.h | 342 + src/data/bard_music/moves.h | 2851 +++++ src/data/bard_music/people.h | 606 ++ src/data/bard_music/pokemon.h | 3306 ++++++ src/data/bard_music/speech.h | 486 + src/data/bard_music/status.h | 878 ++ src/data/bard_music/time.h | 366 + src/data/bard_music/trainer.h | 222 + src/data/bard_music/trendysaying.h | 270 + src/data/bard_music/voices.h | 510 + src/data/bard_music/word_pitch.h | 183 + src/data/battle_moves.h | 3913 +++++++ src/data/decoration/description.h | 581 + src/data/decoration/header.h | 1100 ++ src/data/decoration/icon.h | 132 + src/data/decoration/tilemaps.h | 239 + src/data/decoration/tiles.h | 646 ++ src/data/item_icon_table.h | 414 + src/data/items.h | 6079 +++++++++++ src/data/pokedex_orders.h | 1199 +++ src/data/pokemon/base_stats.h | 13576 ++++++++++++++++++++++++ src/data/pokemon/cry_ids.h | 143 + src/data/pokemon/egg_moves.h | 1315 +++ src/data/pokemon/evolution.h | 192 + src/data/pokemon/experience_tables.h | 849 ++ src/data/pokemon/item_effects.h | 241 + src/data/pokemon/level_up_learnset_pointers.h | 420 + src/data/pokemon/level_up_learnsets.h | 5623 ++++++++++ src/data/pokemon/tmhm_learnsets.h | 9393 ++++++++++++++++ src/data/pokemon/trainer_class_lookups.h | 176 + src/data/region_map/region_map_entries.h | 421 + src/data/text/abilities.h | 247 + src/data/text/item_descriptions.h | 329 + 46 files changed, 61826 insertions(+) create mode 100644 src/data/bard_music/actions.h create mode 100644 src/data/bard_music/adjectives.h create mode 100644 src/data/bard_music/bard_sounds.h create mode 100644 src/data/bard_music/battle.h create mode 100644 src/data/bard_music/conditions.h create mode 100644 src/data/bard_music/default_sound.h create mode 100644 src/data/bard_music/endings.h create mode 100644 src/data/bard_music/events.h create mode 100644 src/data/bard_music/feelings.h create mode 100644 src/data/bard_music/greetings.h create mode 100644 src/data/bard_music/hobbies.h create mode 100644 src/data/bard_music/length_table.h create mode 100644 src/data/bard_music/lifestyle.h create mode 100644 src/data/bard_music/misc.h create mode 100644 src/data/bard_music/moves.h create mode 100644 src/data/bard_music/people.h create mode 100644 src/data/bard_music/pokemon.h create mode 100644 src/data/bard_music/speech.h create mode 100644 src/data/bard_music/status.h create mode 100644 src/data/bard_music/time.h create mode 100644 src/data/bard_music/trainer.h create mode 100644 src/data/bard_music/trendysaying.h create mode 100644 src/data/bard_music/voices.h create mode 100644 src/data/bard_music/word_pitch.h create mode 100644 src/data/battle_moves.h create mode 100644 src/data/decoration/description.h create mode 100644 src/data/decoration/header.h create mode 100644 src/data/decoration/icon.h create mode 100644 src/data/decoration/tilemaps.h create mode 100644 src/data/decoration/tiles.h create mode 100644 src/data/item_icon_table.h create mode 100644 src/data/items.h create mode 100644 src/data/pokedex_orders.h create mode 100644 src/data/pokemon/base_stats.h create mode 100644 src/data/pokemon/cry_ids.h create mode 100644 src/data/pokemon/egg_moves.h create mode 100644 src/data/pokemon/evolution.h create mode 100644 src/data/pokemon/experience_tables.h create mode 100644 src/data/pokemon/item_effects.h create mode 100644 src/data/pokemon/level_up_learnset_pointers.h create mode 100644 src/data/pokemon/level_up_learnsets.h create mode 100644 src/data/pokemon/tmhm_learnsets.h create mode 100644 src/data/pokemon/trainer_class_lookups.h create mode 100644 src/data/region_map/region_map_entries.h create mode 100644 src/data/text/abilities.h create mode 100644 src/data/text/item_descriptions.h (limited to 'src') diff --git a/src/data/bard_music/actions.h b/src/data/bard_music/actions.h new file mode 100644 index 000000000..fd8e63061 --- /dev/null +++ b/src/data/bard_music/actions.h @@ -0,0 +1,630 @@ +#ifndef GUARD_DATA_BARD_MUSIC_ACTIONS_H +#define GUARD_DATA_BARD_MUSIC_ACTIONS_H +const struct BardSound gBardSounds_Actions[][6] = { + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x2f, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2f, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2f, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2f, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_ACTIONS_H diff --git a/src/data/bard_music/adjectives.h b/src/data/bard_music/adjectives.h new file mode 100644 index 000000000..e56efaa24 --- /dev/null +++ b/src/data/bard_music/adjectives.h @@ -0,0 +1,294 @@ +#ifndef GUARD_DATA_BARD_MUSIC_ADJECTIVES_H +#define GUARD_DATA_BARD_MUSIC_ADJECTIVES_H +const struct BardSound gBardSounds_Adjectives[][6] = { + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 } + } +}; + +#endif // GUARD_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 000000000..4a0911726 --- /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/src/data/bard_music/battle.h b/src/data/bard_music/battle.h new file mode 100644 index 000000000..19d032f56 --- /dev/null +++ b/src/data/bard_music/battle.h @@ -0,0 +1,510 @@ +#ifndef GUARD_DATA_BARD_MUSIC_BATTLE_H +#define GUARD_DATA_BARD_MUSIC_BATTLE_H +const struct BardSound gBardSounds_Battle[][6] = { + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x16, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_BATTLE_H diff --git a/src/data/bard_music/conditions.h b/src/data/bard_music/conditions.h new file mode 100644 index 000000000..d79cc100b --- /dev/null +++ b/src/data/bard_music/conditions.h @@ -0,0 +1,558 @@ +#ifndef GUARD_DATA_BARD_MUSIC_CONDITIONS_H +#define GUARD_DATA_BARD_MUSIC_CONDITIONS_H +const struct BardSound gBardSounds_Conditions[][6] = { + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x20, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x19, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x16, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x16, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x1c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_CONDITIONS_H diff --git a/src/data/bard_music/default_sound.h b/src/data/bard_music/default_sound.h new file mode 100644 index 000000000..ad4008e16 --- /dev/null +++ b/src/data/bard_music/default_sound.h @@ -0,0 +1,13 @@ +#ifndef GUARD_default_sound_H +#define GUARD_default_sound_H + +const struct BardSound gBardSound_InvalidWord[] = { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND +}; + +#endif //GUARD_default_sound_H diff --git a/src/data/bard_music/endings.h b/src/data/bard_music/endings.h new file mode 100644 index 000000000..7e4304521 --- /dev/null +++ b/src/data/bard_music/endings.h @@ -0,0 +1,558 @@ +#ifndef GUARD_DATA_BARD_MUSIC_ENDINGS_H +#define GUARD_DATA_BARD_MUSIC_ENDINGS_H +const struct BardSound gBardSounds_Endings[][6] = { + { + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_ENDINGS_H diff --git a/src/data/bard_music/events.h b/src/data/bard_music/events.h new file mode 100644 index 000000000..70960e15d --- /dev/null +++ b/src/data/bard_music/events.h @@ -0,0 +1,238 @@ +#ifndef GUARD_DATA_BARD_MUSIC_EVENTS_H +#define GUARD_DATA_BARD_MUSIC_EVENTS_H +const struct BardSound gBardSounds_Events[][6] = { + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_EVENTS_H diff --git a/src/data/bard_music/feelings.h b/src/data/bard_music/feelings.h new file mode 100644 index 000000000..cdab88639 --- /dev/null +++ b/src/data/bard_music/feelings.h @@ -0,0 +1,558 @@ +#ifndef GUARD_DATA_BARD_MUSIC_FEELINGS_H +#define GUARD_DATA_BARD_MUSIC_FEELINGS_H +const struct BardSound gBardSounds_Feelings[][6] = { + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x19, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x20, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x31, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x31, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x20, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x20, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x31, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x31, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x20, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x20, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_FEELINGS_H diff --git a/src/data/bard_music/greetings.h b/src/data/bard_music/greetings.h new file mode 100644 index 000000000..22af4dd5c --- /dev/null +++ b/src/data/bard_music/greetings.h @@ -0,0 +1,342 @@ +#ifndef GUARD_DATA_BARD_MUSIC_GREETINGS_H +#define GUARD_DATA_BARD_MUSIC_GREETINGS_H +const struct BardSound gBardSounds_Greetings[][6] = { + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x28, 0x0, 0x0, 0x0, 0x0 }, + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_GREETINGS_H diff --git a/src/data/bard_music/hobbies.h b/src/data/bard_music/hobbies.h new file mode 100644 index 000000000..66fdbc0c7 --- /dev/null +++ b/src/data/bard_music/hobbies.h @@ -0,0 +1,438 @@ +#ifndef GUARD_DATA_BARD_MUSIC_HOBBIES_H +#define GUARD_DATA_BARD_MUSIC_HOBBIES_H +const struct BardSound gBardSounds_Hobbies[][6] = { + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2f, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2f, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_HOBBIES_H diff --git a/src/data/bard_music/length_table.h b/src/data/bard_music/length_table.h new file mode 100644 index 000000000..144c70dfc --- /dev/null +++ b/src/data/bard_music/length_table.h @@ -0,0 +1,21 @@ +#ifndef GUARD_LENGTH_TABLE_H +#define GUARD_LENGTH_TABLE_H + +const int gBardSoundLengthTable[] = { + 0x09, 0x16, 0x0f, 0x10, + 0x27, 0x15, 0x09, 0x1e, + 0x18, 0x0f, 0x19, 0x0c, + 0x16, 0x2d, 0x18, 0x0f, + 0x28, 0x09, 0x15, 0x2a, + 0x12, 0x09, 0x16, 0x0f, + 0x1b, 0x30, 0x12, 0x1b, + 0x21, 0x18, 0x19, 0x27, + 0x13, 0x10, 0x36, 0x12, + 0x09, 0x2d, 0x0f, 0x0c, + 0x27, 0x17, 0x05, 0x2d, + 0x0c, 0x15, 0x30, 0x0c, + 0x15, 0x45, 0x12, 0x0f +}; + + +#endif //GUARD_LENGTH_TABLE_H diff --git a/src/data/bard_music/lifestyle.h b/src/data/bard_music/lifestyle.h new file mode 100644 index 000000000..7054283f4 --- /dev/null +++ b/src/data/bard_music/lifestyle.h @@ -0,0 +1,366 @@ +#ifndef GUARD_DATA_BARD_MUSIC_LIFESTYLE_H +#define GUARD_DATA_BARD_MUSIC_LIFESTYLE_H +const struct BardSound gBardSounds_Lifestyle[][6] = { + { + { 0x31, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_LIFESTYLE_H diff --git a/src/data/bard_music/misc.h b/src/data/bard_music/misc.h new file mode 100644 index 000000000..84e1d5530 --- /dev/null +++ b/src/data/bard_music/misc.h @@ -0,0 +1,342 @@ +#ifndef GUARD_DATA_BARD_MUSIC_MISC_H +#define GUARD_DATA_BARD_MUSIC_MISC_H +const struct BardSound gBardSounds_Misc[][6] = { + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2e, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_MISC_H diff --git a/src/data/bard_music/moves.h b/src/data/bard_music/moves.h new file mode 100644 index 000000000..6bb350a7c --- /dev/null +++ b/src/data/bard_music/moves.h @@ -0,0 +1,2851 @@ +#ifndef GUARD_DATA_BARD_MUSIC_MOVES_H +#define GUARD_DATA_BARD_MUSIC_MOVES_H + +#include "moves.h" + +const u16 gUnknown_085FA1D4 = 0x163; + +const struct BardSound gBardSounds_Moves[][6] = { + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0xa, 0x0, 0x0, 0x0, 0x0}, + { 0x2, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x2, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x23, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0xa, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x29, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xd, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x2d, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x29, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2b, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x28, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x14, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0xd, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0xa, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x14, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x4, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0} + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0} + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif //GUARD_DATA_BARD_MUSIC_MOVES_H diff --git a/src/data/bard_music/people.h b/src/data/bard_music/people.h new file mode 100644 index 000000000..2db017080 --- /dev/null +++ b/src/data/bard_music/people.h @@ -0,0 +1,606 @@ +#ifndef GUARD_DATA_BARD_MUSIC_PEOPLE_H +#define GUARD_DATA_BARD_MUSIC_PEOPLE_H +const struct BardSound gBardSounds_People[][6] = { + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x13, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, -0x9, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x7, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x28, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x31, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x31, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_PEOPLE_H diff --git a/src/data/bard_music/pokemon.h b/src/data/bard_music/pokemon.h new file mode 100644 index 000000000..693005360 --- /dev/null +++ b/src/data/bard_music/pokemon.h @@ -0,0 +1,3306 @@ +#ifndef GUARD_DATA_BARD_MUSIC_POKEMON_H +#define GUARD_DATA_BARD_MUSIC_POKEMON_H +#include "constants/species.h" + +const u16 gUnknown_085F5490 = NUM_SPECIES; + +const struct BardSound gBardSounds_Pokemon[][6] = { + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x2, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x26, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x17, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x8, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x8, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0}, + { 0x10, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x10, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x26, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x26, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x23, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x26, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x15, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x28, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x17, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x6, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0}, + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0xb, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x26, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x24, 0x0, 0x0, 0x0, 0x0}, + { 0xf, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x32, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x2c, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1d, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x1a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x27, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x7, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0xe, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x30, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x3, 0x0, 0x0, 0x0, 0x0}, + { 0x2a, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0}, + { 0x1b, 0x0, 0x0, 0x0, 0x0}, + { 0x11, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0}, + { 0x9, 0x0, 0x0, 0x0, 0x0}, + { 0x18, 0x0, 0x0, 0x0, 0x0}, + { 0x33, 0x0, 0x0, 0x0, 0x0}, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif //GUARD_DATA_BARD_MUSIC_POKEMON_H diff --git a/src/data/bard_music/speech.h b/src/data/bard_music/speech.h new file mode 100644 index 000000000..d0d4abb11 --- /dev/null +++ b/src/data/bard_music/speech.h @@ -0,0 +1,486 @@ +#ifndef GUARD_DATA_BARD_MUSIC_SPEECH_H +#define GUARD_DATA_BARD_MUSIC_SPEECH_H +const struct BardSound gBardSounds_Speech[][6] = { + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x7, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x10, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x28, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_SPEECH_H diff --git a/src/data/bard_music/status.h b/src/data/bard_music/status.h new file mode 100644 index 000000000..418fe639a --- /dev/null +++ b/src/data/bard_music/status.h @@ -0,0 +1,878 @@ +#ifndef GUARD_DATA_BARD_MUSIC_STATUS_H +#define GUARD_DATA_BARD_MUSIC_STATUS_H +const struct BardSound gBardSounds_Status[][6] = { + { + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x29, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x20, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x20, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x7, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + { 0x7, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_STATUS_H diff --git a/src/data/bard_music/time.h b/src/data/bard_music/time.h new file mode 100644 index 000000000..5755353a0 --- /dev/null +++ b/src/data/bard_music/time.h @@ -0,0 +1,366 @@ +#ifndef GUARD_DATA_BARD_MUSIC_TIME_H +#define GUARD_DATA_BARD_MUSIC_TIME_H +const struct BardSound gBardSounds_Time[][6] = { + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x1c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x28, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x21, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_TIME_H diff --git a/src/data/bard_music/trainer.h b/src/data/bard_music/trainer.h new file mode 100644 index 000000000..a59689b6c --- /dev/null +++ b/src/data/bard_music/trainer.h @@ -0,0 +1,222 @@ +#ifndef GUARD_DATA_BARD_MUSIC_TRAINER_H +#define GUARD_DATA_BARD_MUSIC_TRAINER_H +const struct BardSound gBardSounds_Trainer[][6] = { + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x2d, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x15, 0x0, 0x0, 0x0, 0x0 }, + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 } + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x8, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 } + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x32, 0x0, 0x0, 0x0, 0x0 }, + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_TRAINER_H diff --git a/src/data/bard_music/trendysaying.h b/src/data/bard_music/trendysaying.h new file mode 100644 index 000000000..4830725ad --- /dev/null +++ b/src/data/bard_music/trendysaying.h @@ -0,0 +1,270 @@ +#ifndef GUARD_DATA_BARD_MUSIC_TRENDYSAYING_H +#define GUARD_DATA_BARD_MUSIC_TRENDYSAYING_H +const struct BardSound gBardSounds_TrendySaying[][6] = { + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x14, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x1b, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x26, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x3, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1d, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2b, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_TRENDYSAYING_H diff --git a/src/data/bard_music/voices.h b/src/data/bard_music/voices.h new file mode 100644 index 000000000..868ebaecf --- /dev/null +++ b/src/data/bard_music/voices.h @@ -0,0 +1,510 @@ +#ifndef GUARD_DATA_BARD_MUSIC_VOICES_H +#define GUARD_DATA_BARD_MUSIC_VOICES_H +const struct BardSound gBardSounds_Voices[][6] = { + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1b, 0x5, 0x8, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x31, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x28, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x19, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1c, 0x0, 0x0, 0x0, 0x0 }, + { 0x31, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x23, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + { 0x11, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xa, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x24, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND + }, + { + { 0x13, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x12, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + { 0x1e, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + { 0xb, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x17, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x5, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x13, 0x0, 0x0, 0x0, 0x0 }, + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0x7, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + { 0xc, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x9, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x2a, 0x0, 0x0, 0x0, 0x0 }, + { 0x2c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0xe, 0x0, 0x0, 0x0, 0x0 }, + { 0x30, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x1c, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + { 0x27, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0xf, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x18, 0x0, 0x0, 0x0, 0x0 }, + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x4, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x7, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x22, 0x0, 0x0, 0x0, 0x0 }, + { 0xd, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x7, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + { 0x33, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND + }, + { + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + { 0x6, 0x0, 0x0, 0x0, 0x0 }, + NULL_BARD_SOUND, + NULL_BARD_SOUND + } +}; + +#endif // GUARD_DATA_BARD_MUSIC_VOICES_H diff --git a/src/data/bard_music/word_pitch.h b/src/data/bard_music/word_pitch.h new file mode 100644 index 000000000..54a87acc9 --- /dev/null +++ b/src/data/bard_music/word_pitch.h @@ -0,0 +1,183 @@ +#ifndef GUARD_WORD_PITCH_H +#define GUARD_WORD_PITCH_H + +const s16 gUnknown_0860A1C0[] = { + -0x300, 0x1800 +}; + +const s16 gUnknown_0860A1C4[] = { + 0x0900, 0x1800 +}; + +const s16 gUnknown_0860A1C8[] = { + 0x0100, 0x1800 +}; + +const s16 gUnknown_0860A1CC[] = { + 0x0400, 0x1800 +}; + +const s16 gUnknown_0860A1D0[] = { + 0x0b00, 0x1800 +}; + +const s16 gUnknown_0860A1D4[] = { + -0x300, -0x100, 0x1800 +}; + +const s16 gUnknown_0860A1DA[] = { + -0x300, 0x0200, 0x1800 +}; + +const s16 gUnknown_0860A1E0[] = { + 0x0200, 0x0400, 0x1800 +}; + +const s16 gUnknown_0860A1E6[] = { + 0x0600, 0x0800, 0x1800 +}; + +const s16 gUnknown_0860A1EC[] = { + 0x0900, 0x0800, 0x1800 +}; + +const s16 gUnknown_0860A1F2[] = { + -0x300, -0x100, -0x300, 0x1800 +}; + +const s16 gUnknown_0860A1FA[] = { + 0x0400, -0x300, 0x0400, 0x1800 +}; + +const s16 gUnknown_0860A202[] = { + 0x0900, 0x0800, 0x0600, 0x1800 +}; + +const s16 gUnknown_0860A20A[] = { + 0x0100, 0x0200, 0x0400, 0x1800 +}; + +const s16 gUnknown_0860A212[] = { + 0x0600, 0x1000, 0x0d00, 0x1800 +}; + +const s16 gUnknown_0860A21A[] = { + 0x0400, 0x0900, 0x0400, 0x0900, 0x1800 +}; + +const s16 gUnknown_0860A224[] = { + 0x0900, 0x0400, 0x0d00, 0x0400, 0x1800 +}; + +const s16 gUnknown_0860A22E[] = { + 0x0100, 0x0200, 0x0400, 0x0600, 0x1800 +}; + +const s16 gUnknown_0860A238[] = { + 0x0800, 0x0600, 0x0400, 0x0200, 0x1800 +}; + +const s16 gUnknown_0860A242[] = { + 0x0f00, 0x0d00, 0x0b00, 0x0a00, 0x1800 +}; + +const s16 gUnknown_0860A24C[] = { + -0x300, -0x100, 0x0100, 0x0200, 0x0400, 0x1800 +}; + +const s16 gUnknown_0860A258[] = { + 0x0900, 0x0800, 0x0600, 0x0400, 0x0200, 0x1800 +}; + +const s16 gUnknown_0860A264[] = { + 0x0100, 0x0400, 0x0900, 0x0400, 0x0100, 0x1800 +}; + +const s16 gUnknown_0860A270[] = { + 0x0900, 0x0400, 0x0900, 0x0400, -0x300, 0x1800 +}; + +const s16 gUnknown_0860A27C[] = { + 0x0b00, 0x0800, 0x0400, 0x0400, 0x0600, 0x1800 +}; + +const s16 gUnknown_0860A288[] = { + -0x300, -0x100, 0x0100, 0x0200, 0x0400, 0x0600, 0x1800 +}; + +const s16 gUnknown_0860A296[] = { + 0x0800, 0x0600, 0x0400, 0x0200, 0x0100, -0x100, 0x1800 +}; + +const s16 gUnknown_0860A2A4[] = { + 0x0100, 0x0200, 0x0400, 0x0100, 0x0200, 0x1000, 0x1800 +}; + +const s16 gUnknown_0860A2B2[] = { + 0x0400, -0x300, 0x0900, 0x0400, 0x0900, 0x0400, 0x1800 +}; + +const s16 gUnknown_0860A2C0[] = { + 0x0800, 0x0900, 0x0800, 0x0900, 0x0800, 0x0900, 0x1800 +}; + +const s16 gUnknown_0860A2CE[] = { + 0x0200, 0x0100, 0x0200, 0x0100, 0x0200, 0x0400, 0x0200, 0x1800 +}; + +const s16 gUnknown_0860A2DE[] = { + 0x0100, 0x0100, -0x100, -0x100, -0x300, 0x0400, -0x300, 0x1800 +}; + +const s16 gUnknown_0860A2EE[] = { + 0x0800, 0x0900, 0x0b00, 0x0d00, 0x0e00, 0x0d00, 0x0b00, 0x1800 +}; + +const s16 gUnknown_0860A2FE[] = { + 0x0800, 0x0600, 0x0400, 0x0200, 0x0d00, 0x0b00, 0x0900, 0x1800 +}; + +const s16 gUnknown_0860A30E[] = { + 0x0300, 0x0400, 0x0600, 0x0800, 0x0700, 0x0800, 0x0400, 0x1800 +}; + +const s16 *const gBardSoundPitchTables[] = { + gUnknown_0860A1C0, + gUnknown_0860A1C4, + gUnknown_0860A1C8, + gUnknown_0860A1CC, + gUnknown_0860A1D0, + gUnknown_0860A1D4, + gUnknown_0860A1DA, + gUnknown_0860A1E0, + gUnknown_0860A1E6, + gUnknown_0860A1EC, + gUnknown_0860A1F2, + gUnknown_0860A1FA, + gUnknown_0860A202, + gUnknown_0860A20A, + gUnknown_0860A212, + gUnknown_0860A21A, + gUnknown_0860A224, + gUnknown_0860A22E, + gUnknown_0860A238, + gUnknown_0860A242, + gUnknown_0860A24C, + gUnknown_0860A258, + gUnknown_0860A264, + gUnknown_0860A270, + gUnknown_0860A27C, + gUnknown_0860A288, + gUnknown_0860A296, + gUnknown_0860A2A4, + gUnknown_0860A2B2, + gUnknown_0860A2C0, + gUnknown_0860A2CE, + gUnknown_0860A2DE, + gUnknown_0860A2EE, + gUnknown_0860A2FE, + gUnknown_0860A30E +}; + + +#endif //GUARD_WORD_PITCH_H diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h new file mode 100644 index 000000000..00a6f7fdb --- /dev/null +++ b/src/data/battle_moves.h @@ -0,0 +1,3913 @@ +#ifndef GUARD_DATA_BATTLE_MOVES +#define GUARD_DATA_BATTLE_MOVES + +const struct BattleMove gBattleMoves[MOVES_COUNT] = +{ + { // MOVE_NONE + .effect = EFFECT_HIT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 0, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + { // MOVE_POUND + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_KARATE_CHOP + .effect = EFFECT_HIGH_CRITICAL, + .power = 50, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_DOUBLE_SLAP + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_COMET_PUNCH + .effect = EFFECT_MULTI_HIT, + .power = 18, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_MEGA_PUNCH + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_PAY_DAY + .effect = EFFECT_PAY_DAY, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_FIRE_PUNCH + .effect = EFFECT_BURN_HIT, + .power = 75, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ICE_PUNCH + .effect = EFFECT_FREEZE_HIT, + .power = 75, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_THUNDER_PUNCH + .effect = EFFECT_PARALYZE_HIT, + .power = 75, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SCRATCH + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_VICE_GRIP + .effect = EFFECT_HIT, + .power = 55, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_GUILLOTINE + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_RAZOR_WIND + .effect = EFFECT_RAZOR_WIND, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SWORDS_DANCE + .effect = EFFECT_ATTACK_UP_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_CUT + .effect = EFFECT_HIT, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_GUST + .effect = EFFECT_GUST, + .power = 40, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_WING_ATTACK + .effect = EFFECT_HIT, + .power = 60, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_WHIRLWIND + .effect = EFFECT_ROAR, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -6, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FLY + .effect = EFFECT_SEMI_INVULNERABLE, + .power = 70, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_BIND + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SLAM + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_VINE_WHIP + .effect = EFFECT_HIT, + .power = 35, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_STOMP + .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .power = 65, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_DOUBLE_KICK + .effect = EFFECT_DOUBLE_HIT, + .power = 30, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_MEGA_KICK + .effect = EFFECT_HIT, + .power = 120, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_JUMP_KICK + .effect = EFFECT_RECOIL_IF_MISS, + .power = 70, + .type = TYPE_FIGHTING, + .accuracy = 95, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_ROLLING_KICK + .effect = EFFECT_FLINCH_HIT, + .power = 60, + .type = TYPE_FIGHTING, + .accuracy = 85, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SAND_ATTACK + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_HEADBUTT + .effect = EFFECT_FLINCH_HIT, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_HORN_ATTACK + .effect = EFFECT_HIT, + .power = 65, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_FURY_ATTACK + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_HORN_DRILL + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_TACKLE + .effect = EFFECT_HIT, + .power = 35, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_BODY_SLAM + .effect = EFFECT_PARALYZE_HIT, + .power = 85, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_WRAP + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_TAKE_DOWN + .effect = EFFECT_RECOIL, + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_THRASH + .effect = EFFECT_RAMPAGE, + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_RANDOM, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_DOUBLE_EDGE + .effect = EFFECT_DOUBLE_EDGE, + .power = 120, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_TAIL_WHIP + .effect = EFFECT_DEFENSE_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_POISON_STING + .effect = EFFECT_POISON_HIT, + .power = 15, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_TWINEEDLE + .effect = EFFECT_TWINEEDLE, + .power = 25, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_PIN_MISSILE + .effect = EFFECT_MULTI_HIT, + .power = 14, + .type = TYPE_BUG, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_LEER + .effect = EFFECT_DEFENSE_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_BITE + .effect = EFFECT_FLINCH_HIT, + .power = 60, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_GROWL + .effect = EFFECT_ATTACK_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ROAR + .effect = EFFECT_ROAR, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -6, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SING + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 55, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SUPERSONIC + .effect = EFFECT_CONFUSE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 55, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SONIC_BOOM + .effect = EFFECT_SONICBOOM, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_DISABLE + .effect = EFFECT_DISABLE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 55, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ACID + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 40, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_EMBER + .effect = EFFECT_BURN_HIT, + .power = 40, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FLAMETHROWER + .effect = EFFECT_BURN_HIT, + .power = 95, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MIST + .effect = EFFECT_MIST, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_WATER_GUN + .effect = EFFECT_HIT, + .power = 40, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_HYDRO_PUMP + .effect = EFFECT_HIT, + .power = 120, + .type = TYPE_WATER, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SURF + .effect = EFFECT_HIT, + .power = 95, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_ICE_BEAM + .effect = EFFECT_FREEZE_HIT, + .power = 95, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_BLIZZARD + .effect = EFFECT_FREEZE_HIT, + .power = 120, + .type = TYPE_ICE, + .accuracy = 70, + .pp = 5, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_PSYBEAM + .effect = EFFECT_CONFUSE_HIT, + .power = 65, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_BUBBLE_BEAM + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 65, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_AURORA_BEAM + .effect = EFFECT_ATTACK_DOWN_HIT, + .power = 65, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_HYPER_BEAM + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_PECK + .effect = EFFECT_HIT, + .power = 35, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_DRILL_PECK + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SUBMISSION + .effect = EFFECT_RECOIL, + .power = 80, + .type = TYPE_FIGHTING, + .accuracy = 80, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_LOW_KICK + .effect = EFFECT_LOW_KICK, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_COUNTER + .effect = EFFECT_COUNTER, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = -5, + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SEISMIC_TOSS + .effect = EFFECT_LEVEL_DAMAGE, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_STRENGTH + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_ABSORB + .effect = EFFECT_ABSORB, + .power = 20, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MEGA_DRAIN + .effect = EFFECT_ABSORB, + .power = 40, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_LEECH_SEED + .effect = EFFECT_LEECH_SEED, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_GROWTH + .effect = EFFECT_SPECIAL_ATTACK_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_RAZOR_LEAF + .effect = EFFECT_HIGH_CRITICAL, + .power = 55, + .type = TYPE_GRASS, + .accuracy = 95, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SOLAR_BEAM + .effect = EFFECT_SOLARBEAM, + .power = 120, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_POISON_POWDER + .effect = EFFECT_POISON, + .power = 0, + .type = TYPE_POISON, + .accuracy = 75, + .pp = 35, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_STUN_SPORE + .effect = EFFECT_PARALYZE, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 75, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SLEEP_POWDER + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 75, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_PETAL_DANCE + .effect = EFFECT_RAMPAGE, + .power = 70, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_RANDOM, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_STRING_SHOT + .effect = EFFECT_SPEED_DOWN, + .power = 0, + .type = TYPE_BUG, + .accuracy = 95, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_DRAGON_RAGE + .effect = EFFECT_DRAGON_RAGE, + .power = 1, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_FIRE_SPIN + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_FIRE, + .accuracy = 70, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_THUNDER_SHOCK + .effect = EFFECT_PARALYZE_HIT, + .power = 40, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_THUNDERBOLT + .effect = EFFECT_PARALYZE_HIT, + .power = 95, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_THUNDER_WAVE + .effect = EFFECT_PARALYZE, + .power = 0, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_THUNDER + .effect = EFFECT_THUNDER, + .power = 120, + .type = TYPE_ELECTRIC, + .accuracy = 70, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ROCK_THROW + .effect = EFFECT_HIT, + .power = 50, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_EARTHQUAKE + .effect = EFFECT_EARTHQUAKE, + .power = 100, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_FISSURE + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_GROUND, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_DIG + .effect = EFFECT_SEMI_INVULNERABLE, + .power = 60, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_TOXIC + .effect = EFFECT_TOXIC, + .power = 0, + .type = TYPE_POISON, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_CONFUSION + .effect = EFFECT_CONFUSE_HIT, + .power = 50, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_PSYCHIC + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 90, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_HYPNOSIS + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 60, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MEDITATE + .effect = EFFECT_ATTACK_UP, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_AGILITY + .effect = EFFECT_SPEED_UP_2, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_QUICK_ATTACK + .effect = EFFECT_QUICK_ATTACK, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 1, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_RAGE + .effect = EFFECT_RAGE, + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_TELEPORT + .effect = EFFECT_TELEPORT, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_NIGHT_SHADE + .effect = EFFECT_LEVEL_DAMAGE, + .power = 1, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_MIMIC + .effect = EFFECT_MIMIC, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + { // MOVE_SCREECH + .effect = EFFECT_DEFENSE_DOWN_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_DOUBLE_TEAM + .effect = EFFECT_EVASION_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_RECOVER + .effect = EFFECT_RESTORE_HP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_HARDEN + .effect = EFFECT_DEFENSE_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_MINIMIZE + .effect = EFFECT_MINIMIZE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_SMOKESCREEN + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_CONFUSE_RAY + .effect = EFFECT_CONFUSE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_WITHDRAW + .effect = EFFECT_DEFENSE_UP, + .power = 0, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_DEFENSE_CURL + .effect = EFFECT_DEFENSE_CURL, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_BARRIER + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_LIGHT_SCREEN + .effect = EFFECT_LIGHT_SCREEN, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_HAZE + .effect = EFFECT_HAZE, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + { // MOVE_REFLECT + .effect = EFFECT_REFLECT, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_FOCUS_ENERGY + .effect = EFFECT_FOCUS_ENERGY, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_BIDE + .effect = EFFECT_BIDE, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_METRONOME + .effect = EFFECT_METRONOME, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + { // MOVE_MIRROR_MOVE + .effect = EFFECT_MIRROR_MOVE, + .power = 0, + .type = TYPE_FLYING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + { // MOVE_SELF_DESTRUCT + .effect = EFFECT_EXPLOSION, + .power = 200, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_EGG_BOMB + .effect = EFFECT_HIT, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_LICK + .effect = EFFECT_PARALYZE_HIT, + .power = 20, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SMOG + .effect = EFFECT_POISON_HIT, + .power = 20, + .type = TYPE_POISON, + .accuracy = 70, + .pp = 20, + .secondaryEffectChance = 40, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SLUDGE + .effect = EFFECT_POISON_HIT, + .power = 65, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_BONE_CLUB + .effect = EFFECT_FLINCH_HIT, + .power = 65, + .type = TYPE_GROUND, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FIRE_BLAST + .effect = EFFECT_BURN_HIT, + .power = 120, + .type = TYPE_FIRE, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_WATERFALL + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_CLAMP + .effect = EFFECT_TRAP, + .power = 35, + .type = TYPE_WATER, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SWIFT + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SKULL_BASH + .effect = EFFECT_SKULL_BASH, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SPIKE_CANNON + .effect = EFFECT_MULTI_HIT, + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_CONSTRICT + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 10, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 35, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_AMNESIA + .effect = EFFECT_SPECIAL_DEFENSE_UP_2, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_KINESIS + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 80, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SOFT_BOILED + .effect = EFFECT_SOFTBOILED, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_HI_JUMP_KICK + .effect = EFFECT_RECOIL_IF_MISS, + .power = 85, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_GLARE + .effect = EFFECT_PARALYZE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_DREAM_EATER + .effect = EFFECT_DREAM_EATER, + .power = 100, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_POISON_GAS + .effect = EFFECT_POISON, + .power = 0, + .type = TYPE_POISON, + .accuracy = 55, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_BARRAGE + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_NORMAL, + .accuracy = 85, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_LEECH_LIFE + .effect = EFFECT_ABSORB, + .power = 20, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_LOVELY_KISS + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SKY_ATTACK + .effect = EFFECT_SKY_ATTACK, + .power = 140, + .type = TYPE_FLYING, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_TRANSFORM + .effect = EFFECT_TRANSFORM, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + { // MOVE_BUBBLE + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 20, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_DIZZY_PUNCH + .effect = EFFECT_CONFUSE_HIT, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SPORE + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FLASH + .effect = EFFECT_ACCURACY_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 70, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_PSYWAVE + .effect = EFFECT_PSYWAVE, + .power = 1, + .type = TYPE_PSYCHIC, + .accuracy = 80, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SPLASH + .effect = EFFECT_SPLASH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_ACID_ARMOR + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_POISON, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_CRABHAMMER + .effect = EFFECT_HIGH_CRITICAL, + .power = 90, + .type = TYPE_WATER, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_EXPLOSION + .effect = EFFECT_EXPLOSION, + .power = 250, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_FURY_SWIPES + .effect = EFFECT_MULTI_HIT, + .power = 18, + .type = TYPE_NORMAL, + .accuracy = 80, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_BONEMERANG + .effect = EFFECT_DOUBLE_HIT, + .power = 50, + .type = TYPE_GROUND, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_REST + .effect = EFFECT_REST, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_ROCK_SLIDE + .effect = EFFECT_FLINCH_HIT, + .power = 75, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_HYPER_FANG + .effect = EFFECT_FLINCH_HIT, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SHARPEN + .effect = EFFECT_ATTACK_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_CONVERSION + .effect = EFFECT_CONVERSION, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_TRI_ATTACK + .effect = EFFECT_TRI_ATTACK, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SUPER_FANG + .effect = EFFECT_SUPER_FANG, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SLASH + .effect = EFFECT_HIGH_CRITICAL, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SUBSTITUTE + .effect = EFFECT_SUBSTITUTE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_STRUGGLE + .effect = EFFECT_RECOIL, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 1, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SKETCH + .effect = EFFECT_SKETCH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 1, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + { // MOVE_TRIPLE_KICK + .effect = EFFECT_TRIPLE_KICK, + .power = 10, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_THIEF + .effect = EFFECT_THIEF, + .power = 40, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SPIDER_WEB + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MIND_READER + .effect = EFFECT_LOCK_ON, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_NIGHTMARE + .effect = EFFECT_NIGHTMARE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FLAME_WHEEL + .effect = EFFECT_THAW_HIT, + .power = 60, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SNORE + .effect = EFFECT_SNORE, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_CURSE + .effect = EFFECT_CURSE, + .power = 0, + .type = TYPE_MYSTERY, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + { // MOVE_FLAIL + .effect = EFFECT_FLAIL, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_CONVERSION_2 + .effect = EFFECT_CONVERSION_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_AEROBLAST + .effect = EFFECT_HIGH_CRITICAL, + .power = 100, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_COTTON_SPORE + .effect = EFFECT_SPEED_DOWN_2, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 85, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_REVERSAL + .effect = EFFECT_FLAIL, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SPITE + .effect = EFFECT_SPITE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_POWDER_SNOW + .effect = EFFECT_FREEZE_HIT, + .power = 40, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_PROTECT + .effect = EFFECT_PROTECT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 3, + .flags = 0, + }, + { // MOVE_MACH_PUNCH + .effect = EFFECT_QUICK_ATTACK, + .power = 40, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 1, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SCARY_FACE + .effect = EFFECT_SPEED_DOWN_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FAINT_ATTACK + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_DARK, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SWEET_KISS + .effect = EFFECT_CONFUSE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 75, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_BELLY_DRUM + .effect = EFFECT_BELLY_DRUM, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_SLUDGE_BOMB + .effect = EFFECT_POISON_HIT, + .power = 90, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MUD_SLAP + .effect = EFFECT_ACCURACY_DOWN_HIT, + .power = 20, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_OCTAZOOKA + .effect = EFFECT_ACCURACY_DOWN_HIT, + .power = 65, + .type = TYPE_WATER, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SPIKES + .effect = EFFECT_SPIKES, + .power = 0, + .type = TYPE_GROUND, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_OPPONENTS_FIELD, + .priority = 0, + .flags = 0, + }, + { // MOVE_ZAP_CANNON + .effect = EFFECT_PARALYZE_HIT, + .power = 100, + .type = TYPE_ELECTRIC, + .accuracy = 50, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FORESIGHT + .effect = EFFECT_FORESIGHT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_DESTINY_BOND + .effect = EFFECT_DESTINY_BOND, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_PERISH_SONG + .effect = EFFECT_PERISH_SONG, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_ICY_WIND + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 55, + .type = TYPE_ICE, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_DETECT + .effect = EFFECT_PROTECT, + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 3, + .flags = 0, + }, + { // MOVE_BONE_RUSH + .effect = EFFECT_MULTI_HIT, + .power = 25, + .type = TYPE_GROUND, + .accuracy = 80, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_LOCK_ON + .effect = EFFECT_LOCK_ON, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_OUTRAGE + .effect = EFFECT_RAMPAGE, + .power = 90, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_RANDOM, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SANDSTORM + .effect = EFFECT_SANDSTORM, + .power = 0, + .type = TYPE_ROCK, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_GIGA_DRAIN + .effect = EFFECT_ABSORB, + .power = 60, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ENDURE + .effect = EFFECT_ENDURE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 3, + .flags = 0, + }, + { // MOVE_CHARM + .effect = EFFECT_ATTACK_DOWN_2, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ROLLOUT + .effect = EFFECT_ROLLOUT, + .power = 30, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_FALSE_SWIPE + .effect = EFFECT_FALSE_SWIPE, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SWAGGER + .effect = EFFECT_SWAGGER, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MILK_DRINK + .effect = EFFECT_SOFTBOILED, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_SNATCH_AFFECTED, + }, + { // MOVE_SPARK + .effect = EFFECT_PARALYZE_HIT, + .power = 65, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FURY_CUTTER + .effect = EFFECT_FURY_CUTTER, + .power = 10, + .type = TYPE_BUG, + .accuracy = 95, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_STEEL_WING + .effect = EFFECT_DEFENSE_UP_HIT, + .power = 70, + .type = TYPE_STEEL, + .accuracy = 90, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_MEAN_LOOK + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ATTRACT + .effect = EFFECT_ATTRACT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SLEEP_TALK + .effect = EFFECT_SLEEP_TALK, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + { // MOVE_HEAL_BELL + .effect = EFFECT_HEAL_BELL, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_RETURN + .effect = EFFECT_RETURN, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_PRESENT + .effect = EFFECT_PRESENT, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FRUSTRATION + .effect = EFFECT_FRUSTRATION, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SAFEGUARD + .effect = EFFECT_SAFEGUARD, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_PAIN_SPLIT + .effect = EFFECT_PAIN_SPLIT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SACRED_FIRE + .effect = EFFECT_THAW_HIT, + .power = 100, + .type = TYPE_FIRE, + .accuracy = 95, + .pp = 5, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MAGNITUDE + .effect = EFFECT_MAGNITUDE, + .power = 1, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_DYNAMIC_PUNCH + .effect = EFFECT_CONFUSE_HIT, + .power = 100, + .type = TYPE_FIGHTING, + .accuracy = 50, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MEGAHORN + .effect = EFFECT_HIT, + .power = 120, + .type = TYPE_BUG, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_DRAGON_BREATH + .effect = EFFECT_PARALYZE_HIT, + .power = 60, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_BATON_PASS + .effect = EFFECT_BATON_PASS, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_ENCORE + .effect = EFFECT_ENCORE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_PURSUIT + .effect = EFFECT_PURSUIT, + .power = 40, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_RAPID_SPIN + .effect = EFFECT_RAPID_SPIN, + .power = 20, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SWEET_SCENT + .effect = EFFECT_EVASION_DOWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_IRON_TAIL + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 100, + .type = TYPE_STEEL, + .accuracy = 75, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_METAL_CLAW + .effect = EFFECT_ATTACK_UP_HIT, + .power = 50, + .type = TYPE_STEEL, + .accuracy = 95, + .pp = 35, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_VITAL_THROW + .effect = EFFECT_VITAL_THROW, + .power = 70, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -1, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_MORNING_SUN + .effect = EFFECT_MORNING_SUN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_SYNTHESIS + .effect = EFFECT_SYNTHESIS, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_MOONLIGHT + .effect = EFFECT_MOONLIGHT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_HIDDEN_POWER + .effect = EFFECT_HIDDEN_POWER, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_CROSS_CHOP + .effect = EFFECT_HIGH_CRITICAL, + .power = 100, + .type = TYPE_FIGHTING, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_TWISTER + .effect = EFFECT_TWISTER, + .power = 40, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_RAIN_DANCE + .effect = EFFECT_RAIN_DANCE, + .power = 0, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_SUNNY_DAY + .effect = EFFECT_SUNNY_DAY, + .power = 0, + .type = TYPE_FIRE, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_CRUNCH + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 80, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MIRROR_COAT + .effect = EFFECT_MIRROR_COAT, + .power = 1, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = -5, + .flags = FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_PSYCH_UP + .effect = EFFECT_PSYCH_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_EXTREME_SPEED + .effect = EFFECT_QUICK_ATTACK, + .power = 80, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 1, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_ANCIENT_POWER + .effect = EFFECT_ALL_STATS_UP_HIT, + .power = 60, + .type = TYPE_ROCK, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SHADOW_BALL + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 80, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FUTURE_SIGHT + .effect = EFFECT_FUTURE_SIGHT, + .power = 80, + .type = TYPE_PSYCHIC, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + { // MOVE_ROCK_SMASH + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 20, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_WHIRLPOOL + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_WATER, + .accuracy = 70, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_BEAT_UP + .effect = EFFECT_BEAT_UP, + .power = 10, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_FAKE_OUT + .effect = EFFECT_FAKE_OUT, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 1, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_UPROAR + .effect = EFFECT_UPROAR, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_RANDOM, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_STOCKPILE + .effect = EFFECT_STOCKPILE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_SPIT_UP + .effect = EFFECT_SPIT_UP, + .power = 100, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SWALLOW + .effect = EFFECT_SWALLOW, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_HEAT_WAVE + .effect = EFFECT_BURN_HIT, + .power = 100, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_HAIL + .effect = EFFECT_HAIL, + .power = 0, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + { // MOVE_TORMENT + .effect = EFFECT_TORMENT, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FLATTER + .effect = EFFECT_FLATTER, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_WILL_O_WISP + .effect = EFFECT_WILL_O_WISP, + .power = 0, + .type = TYPE_FIRE, + .accuracy = 75, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MEMENTO + .effect = EFFECT_MEMENTO, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FACADE + .effect = EFFECT_FACADE, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FOCUS_PUNCH + .effect = EFFECT_FOCUS_PUNCH, + .power = 150, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -3, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, + }, + { // MOVE_SMELLING_SALT + .effect = EFFECT_SMELLINGSALT, + .power = 60, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FOLLOW_ME + .effect = EFFECT_FOLLOW_ME, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 3, + .flags = 0, + }, + { // MOVE_NATURE_POWER + .effect = EFFECT_NATURE_POWER, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + { // MOVE_CHARGE + .effect = EFFECT_CHARGE, + .power = 0, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_TAUNT + .effect = EFFECT_TAUNT, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + { // MOVE_HELPING_HAND + .effect = EFFECT_HELPING_HAND, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 5, + .flags = 0, + }, + { // MOVE_TRICK + .effect = EFFECT_TRICK, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ROLE_PLAY + .effect = EFFECT_ROLE_PLAY, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + { // MOVE_WISH + .effect = EFFECT_WISH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + { // MOVE_ASSIST + .effect = EFFECT_ASSIST, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 0, + .flags = 0, + }, + { // MOVE_INGRAIN + .effect = EFFECT_INGRAIN, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_SUPERPOWER + .effect = EFFECT_SUPERPOWER, + .power = 120, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MAGIC_COAT + .effect = EFFECT_MAGIC_COAT, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 4, + .flags = 0, + }, + { // MOVE_RECYCLE + .effect = EFFECT_RECYCLE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_REVENGE + .effect = EFFECT_REVENGE, + .power = 60, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = -4, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_BRICK_BREAK + .effect = EFFECT_BRICK_BREAK, + .power = 75, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_YAWN + .effect = EFFECT_YAWN, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_KNOCK_OFF + .effect = EFFECT_KNOCK_OFF, + .power = 20, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ENDEAVOR + .effect = EFFECT_ENDEAVOR, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_ERUPTION + .effect = EFFECT_ERUPTION, + .power = 150, + .type = TYPE_FIRE, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SKILL_SWAP + .effect = EFFECT_SKILL_SWAP, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_IMPRISON + .effect = EFFECT_IMPRISON, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + { // MOVE_REFRESH + .effect = EFFECT_REFRESH, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_GRUDGE + .effect = EFFECT_GRUDGE, + .power = 0, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SNATCH + .effect = EFFECT_SNATCH, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_DEPENDS, + .priority = 4, + .flags = FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SECRET_POWER + .effect = EFFECT_SECRET_POWER, + .power = 70, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_DIVE + .effect = EFFECT_SEMI_INVULNERABLE, + .power = 60, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_ARM_THRUST + .effect = EFFECT_MULTI_HIT, + .power = 15, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_CAMOUFLAGE + .effect = EFFECT_CAMOUFLAGE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_TAIL_GLOW + .effect = EFFECT_SPECIAL_ATTACK_UP_2, + .power = 0, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_LUSTER_PURGE + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .power = 70, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MIST_BALL + .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, + .power = 70, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_FEATHER_DANCE + .effect = EFFECT_ATTACK_DOWN_2, + .power = 0, + .type = TYPE_FLYING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_TEETER_DANCE + .effect = EFFECT_TEETER_DANCE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_FOES_AND_ALLY, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED, + }, + { // MOVE_BLAZE_KICK + .effect = EFFECT_BLAZE_KICK, + .power = 85, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MUD_SPORT + .effect = EFFECT_MUD_SPORT, + .power = 0, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_ICE_BALL + .effect = EFFECT_ROLLOUT, + .power = 30, + .type = TYPE_ICE, + .accuracy = 90, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_NEEDLE_ARM + .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .power = 60, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SLACK_OFF + .effect = EFFECT_RESTORE_HP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_HYPER_VOICE + .effect = EFFECT_HIT, + .power = 90, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_POISON_FANG + .effect = EFFECT_POISON_FANG, + .power = 50, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_CRUSH_CLAW + .effect = EFFECT_DEFENSE_DOWN_HIT, + .power = 75, + .type = TYPE_NORMAL, + .accuracy = 95, + .pp = 10, + .secondaryEffectChance = 50, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_BLAST_BURN + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_HYDRO_CANNON + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_WATER, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_METEOR_MASH + .effect = EFFECT_ATTACK_UP_HIT, + .power = 100, + .type = TYPE_STEEL, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_ASTONISH + .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .power = 30, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_WEATHER_BALL + .effect = EFFECT_WEATHER_BALL, + .power = 50, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_AROMATHERAPY + .effect = EFFECT_HEAL_BELL, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_FAKE_TEARS + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, + .power = 0, + .type = TYPE_DARK, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_AIR_CUTTER + .effect = EFFECT_HIGH_CRITICAL, + .power = 55, + .type = TYPE_FLYING, + .accuracy = 95, + .pp = 25, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_OVERHEAT + .effect = EFFECT_OVERHEAT, + .power = 140, + .type = TYPE_FIRE, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_ODOR_SLEUTH + .effect = EFFECT_FORESIGHT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_ROCK_TOMB + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 50, + .type = TYPE_ROCK, + .accuracy = 80, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SILVER_WIND + .effect = EFFECT_ALL_STATS_UP_HIT, + .power = 60, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_METAL_SOUND + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, + .power = 0, + .type = TYPE_STEEL, + .accuracy = 85, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_GRASS_WHISTLE + .effect = EFFECT_SLEEP, + .power = 0, + .type = TYPE_GRASS, + .accuracy = 55, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_TICKLE + .effect = EFFECT_TICKLE, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_COSMIC_POWER + .effect = EFFECT_COSMIC_POWER, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_WATER_SPOUT + .effect = EFFECT_ERUPTION, + .power = 150, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SIGNAL_BEAM + .effect = EFFECT_CONFUSE_HIT, + .power = 75, + .type = TYPE_BUG, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SHADOW_PUNCH + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_GHOST, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_EXTRASENSORY + .effect = EFFECT_FLINCH_MINIMIZE_HIT, + .power = 80, + .type = TYPE_PSYCHIC, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_SKY_UPPERCUT + .effect = EFFECT_SKY_UPPERCUT, + .power = 85, + .type = TYPE_FIGHTING, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SAND_TOMB + .effect = EFFECT_TRAP, + .power = 15, + .type = TYPE_GROUND, + .accuracy = 70, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SHEER_COLD + .effect = EFFECT_OHKO, + .power = 1, + .type = TYPE_ICE, + .accuracy = 30, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_MUDDY_WATER + .effect = EFFECT_ACCURACY_DOWN_HIT, + .power = 95, + .type = TYPE_WATER, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_BOTH, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_BULLET_SEED + .effect = EFFECT_MULTI_HIT, + .power = 10, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_AERIAL_ACE + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_FLYING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_ICICLE_SPEAR + .effect = EFFECT_MULTI_HIT, + .power = 10, + .type = TYPE_ICE, + .accuracy = 100, + .pp = 30, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_IRON_DEFENSE + .effect = EFFECT_DEFENSE_UP_2, + .power = 0, + .type = TYPE_STEEL, + .accuracy = 0, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_BLOCK + .effect = EFFECT_MEAN_LOOK, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_HOWL + .effect = EFFECT_ATTACK_UP, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 40, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_DRAGON_CLAW + .effect = EFFECT_HIT, + .power = 80, + .type = TYPE_DRAGON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_FRENZY_PLANT + .effect = EFFECT_RECHARGE, + .power = 150, + .type = TYPE_GRASS, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_BULK_UP + .effect = EFFECT_BULK_UP, + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_BOUNCE + .effect = EFFECT_SEMI_INVULNERABLE, + .power = 85, + .type = TYPE_FLYING, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_MUD_SHOT + .effect = EFFECT_SPEED_DOWN_HIT, + .power = 55, + .type = TYPE_GROUND, + .accuracy = 95, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_POISON_TAIL + .effect = EFFECT_POISON_TAIL, + .power = 50, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 25, + .secondaryEffectChance = 10, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_COVET + .effect = EFFECT_THIEF, + .power = 40, + .type = TYPE_NORMAL, + .accuracy = 100, + .pp = 40, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + }, + { // MOVE_VOLT_TACKLE + .effect = EFFECT_DOUBLE_EDGE, + .power = 120, + .type = TYPE_ELECTRIC, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_MAGICAL_LEAF + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_WATER_SPORT + .effect = EFFECT_WATER_SPORT, + .power = 0, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + }, + { // MOVE_CALM_MIND + .effect = EFFECT_CALM_MIND, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_LEAF_BLADE + .effect = EFFECT_HIGH_CRITICAL, + .power = 70, + .type = TYPE_GRASS, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_DRAGON_DANCE + .effect = EFFECT_DRAGON_DANCE, + .power = 0, + .type = TYPE_DRAGON, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + }, + { // MOVE_ROCK_BLAST + .effect = EFFECT_MULTI_HIT, + .power = 25, + .type = TYPE_ROCK, + .accuracy = 80, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_SHOCK_WAVE + .effect = EFFECT_ALWAYS_HIT, + .power = 60, + .type = TYPE_ELECTRIC, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_WATER_PULSE + .effect = EFFECT_CONFUSE_HIT, + .power = 60, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 20, + .secondaryEffectChance = 20, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, + { // MOVE_DOOM_DESIRE + .effect = EFFECT_FUTURE_SIGHT, + .power = 120, + .type = TYPE_STEEL, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = 0, + }, + { // MOVE_PSYCHO_BOOST + .effect = EFFECT_OVERHEAT, + .power = 140, + .type = TYPE_PSYCHIC, + .accuracy = 90, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + }, +}; + +#endif // GUARD_DATA_BATTLE_MOVES diff --git a/src/data/decoration/description.h b/src/data/decoration/description.h new file mode 100644 index 000000000..ba4c3dd54 --- /dev/null +++ b/src/data/decoration/description.h @@ -0,0 +1,581 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_DATA_DECORATION_DESCRIPTION_H +#define GUARD_DATA_DECORATION_DESCRIPTION_H + +const u8 DecorDesc_SMALL_DESK[] = _( + "A small desk built\n" + "for one."); + +const u8 DecorDesc_POKEMON_DESK[] = _( + "A small desk built in\n" + "the shape of a POKé\n" + "BALL."); + +const u8 DecorDesc_HEAVY_DESK[] = _( + "A large desk made\n" + "of steel. Put some\n" + "decorations on it."); + +const u8 DecorDesc_RAGGED_DESK[] = _( + "A large desk made\n" + "of wood. Put some\n" + "decorations on it."); + +const u8 DecorDesc_COMFORT_DESK[] = _( + "A large desk made\n" + "of leaves. Put some\n" + "decorations on it."); + +const u8 DecorDesc_PRETTY_DESK[] = _( + "A huge desk made\n" + "of glass. Holds lots\n" + "of decorations."); + +const u8 DecorDesc_BRICK_DESK[] = _( + "A huge desk made\n" + "of brick. Holds lots\n" + "of decorations."); + +const u8 DecorDesc_CAMP_DESK[] = _( + "A huge desk made\n" + "of logs. Put lots of\n" + "decorations on it."); + +const u8 DecorDesc_HARD_DESK[] = _( + "A huge desk made\n" + "of rocks. Holds\n" + "many decorations."); + +const u8 DecorDesc_SMALL_CHAIR[] = _( + "A small chair made\n" + "for one."); + +const u8 DecorDesc_POKEMON_CHAIR[] = _( + "A small chair built\n" + "in the shape of a\n" + "POKé BALL."); + +const u8 DecorDesc_HEAVY_CHAIR[] = _( + "A small chair made\n" + "of steel."); + +const u8 DecorDesc_PRETTY_CHAIR[] = _( + "A small chair made\n" + "of glass."); + +const u8 DecorDesc_COMFORT_CHAIR[] = _( + "A small chair made\n" + "of leaves."); + +const u8 DecorDesc_RAGGED_CHAIR[] = _( + "A small chair made\n" + "of wood."); + +const u8 DecorDesc_BRICK_CHAIR[] = _( + "A small chair made\n" + "of brick."); + +const u8 DecorDesc_CAMP_CHAIR[] = _( + "A small chair made\n" + "of logs."); + +const u8 DecorDesc_HARD_CHAIR[] = _( + "A small chair made\n" + "of rock."); + +const u8 DecorDesc_RED_PLANT[] = _( + "A vivid red potted\n" + "plant."); + +const u8 DecorDesc_TROPICAL_PLANT[] = _( + "A flowering tropical\n" + "plant in a pot."); + +const u8 DecorDesc_PRETTY_FLOWERS[] = _( + "A pot of cute\n" + "flowers."); + +const u8 DecorDesc_COLORFUL_PLANT[] = _( + "A large pot with\n" + "many colorful\n" + "flowers."); + +const u8 DecorDesc_BIG_PLANT[] = _( + "A large, umbrella-\n" + "shaped plant in a\n" + "big pot."); + +const u8 DecorDesc_GORGEOUS_PLANT[] = _( + "A large, impressive\n" + "plant in a big pot."); + +const u8 DecorDesc_RED_BRICK[] = _( + "A red-colored brick.\n" + "Decorations can be\n" + "placed on top."); + +const u8 DecorDesc_YELLOW_BRICK[] = _( + "A yellow-colored\n" + "brick. Put some\n" + "decorations on top."); + +const u8 DecorDesc_BLUE_BRICK[] = _( + "A blue-colored\n" + "brick. Put some\n" + "decorations on top."); + +const u8 DecorDesc_RED_BALLOON[] = _( + "A red balloon filled\n" + "with water. Bursts\n" + "if stepped on."); + +const u8 DecorDesc_BLUE_BALLOON[] = _( + "A blue balloon filled\n" + "with water. Bursts\n" + "if stepped on."); + +const u8 DecorDesc_YELLOW_BALLOON[] = _( + "A yellow balloon\n" + "filled with water.\n" + "Pops if stepped on."); + +const u8 DecorDesc_RED_TENT[] = _( + "A large red tent.\n" + "You can hide inside\n" + "it."); + +const u8 DecorDesc_BLUE_TENT[] = _( + "A large blue tent.\n" + "You can hide inside\n" + "it."); + +const u8 DecorDesc_SOLID_BOARD[] = _( + "Place over a hole to\n" + "cross to the other\n" + "side."); + +const u8 DecorDesc_SLIDE[] = _( + "Use to slide down\n" + "from the platform."); + +const u8 DecorDesc_FENCE_LENGTH[] = _( + "A small fence that\n" + "blocks passage."); + +const u8 DecorDesc_FENCE_WIDTH[] = _( + "A small fence that\n" + "blocks passage."); + +const u8 DecorDesc_TIRE[] = _( + "An old large tire.\n" + "Decorations can be\n" + "placed on top."); + +const u8 DecorDesc_STAND[] = _( + "A large pedestal\n" + "with steps."); + +const u8 DecorDesc_MUD_BALL[] = _( + "A large ball of mud.\n" + "Crumbles if stepped\n" + "on."); + +const u8 DecorDesc_BREAKABLE_DOOR[] = _( + "A weird door that\n" + "people can walk\n" + "right through."); + +const u8 DecorDesc_SAND_ORNAMENT[] = _( + "An ornament made\n" + "of sand. Crumbles if\n" + "touched."); + +const u8 DecorDesc_SILVER_SHIELD[] = _( + "Awarded for 50\n" + "straight wins at\n" + "the BATTLE TOWER."); + +const u8 DecorDesc_GOLD_SHIELD[] = _( + "Awarded for 100\n" + "straight wins at\n" + "the BATTLE TOWER."); + +const u8 DecorDesc_GLASS_ORNAMENT[] = _( + "A glass replica of\n" + "a famous sculpture\n" + "at the ART MUSEUM."); + +const u8 DecorDesc_TV[] = _( + "A small, gray-\n" + "colored toy TV."); + +const u8 DecorDesc_ROUND_TV[] = _( + "A toy TV modeled\n" + "in the image of a\n" + "SEEDOT."); + +const u8 DecorDesc_CUTE_TV[] = _( + "A toy TV modeled\n" + "in the image of a\n" + "SKITTY."); + +const u8 DecorDesc_GLITTER_MAT[] = _( + "An odd mat that\n" + "glitters if stepped\n" + "on."); + +const u8 DecorDesc_JUMP_MAT[] = _( + "A trick mat that\n" + "jumps when it is\n" + "stepped on."); + +const u8 DecorDesc_SPIN_MAT[] = _( + "A trick mat that\n" + "spins around when\n" + "stepped on."); + +const u8 DecorDesc_C_LOW_NOTE_MAT[] = _( + "A mat that plays\n" + "a low C note when\n" + "stepped on."); + +const u8 DecorDesc_D_NOTE_MAT[] = _( + "A mat that plays\n" + "a D note when\n" + "stepped on."); + +const u8 DecorDesc_E_NOTE_MAT[] = _( + "A mat that plays\n" + "an E note when\n" + "stepped on."); + +const u8 DecorDesc_F_NOTE_MAT[] = _( + "A mat that plays\n" + "an F note when\n" + "stepped on."); + +const u8 DecorDesc_G_NOTE_MAT[] = _( + "A mat that plays\n" + "a G note when\n" + "stepped on."); + +const u8 DecorDesc_A_NOTE_MAT[] = _( + "A mat that plays\n" + "an A note when\n" + "stepped on."); + +const u8 DecorDesc_B_NOTE_MAT[] = _( + "A mat that plays\n" + "a B note when\n" + "stepped on."); + +const u8 DecorDesc_C_HIGH_NOTE_MAT[] = _( + "A mat that plays\n" + "a high C note when\n" + "stepped on."); + +const u8 DecorDesc_SURF_MAT[] = _( + "A mat designed with\n" + "a SURF image.\n" + "Put items on top."); + +const u8 DecorDesc_THUNDER_MAT[] = _( + "A mat designed with\n" + "a THUNDER image.\n" + "Put items on top."); + +const u8 DecorDesc_FIRE_BLAST_MAT[] = _( + "A mat designed with\n" + "a FIRE BLAST image.\n" + "Put items on top."); + +const u8 DecorDesc_POWDER_SNOW_MAT[] = _( + "A mat with a POWDER\n" + "SNOW image design.\n" + "Put items on top."); + +const u8 DecorDesc_ATTRACT_MAT[] = _( + "A mat designed with\n" + "an ATTRACT image.\n" + "Put items on top."); + +const u8 DecorDesc_FISSURE_MAT[] = _( + "A mat designed with\n" + "a FISSURE image.\n" + "Put items on top."); + +const u8 DecorDesc_SPIKES_MAT[] = _( + "A mat designed with\n" + "a SPIKES image.\n" + "Put items on top."); + +const u8 DecorDesc_BALL_POSTER[] = _( + "A small poster\n" + "printed with POKé\n" + "BALLS."); + +const u8 DecorDesc_GREEN_POSTER[] = _( + "A small poster with\n" + "a TREECKO print."); + +const u8 DecorDesc_RED_POSTER[] = _( + "A small poster with\n" + "a TORCHIC print."); + +const u8 DecorDesc_BLUE_POSTER[] = _( + "A small poster with\n" + "a MUDKIP print."); + +const u8 DecorDesc_CUTE_POSTER[] = _( + "A small poster with\n" + "an AZURILL print."); + +const u8 DecorDesc_PIKA_POSTER[] = _( + "A large poster with\n" + "a PIKACHU and\n" + "PICHU print."); + +const u8 DecorDesc_LONG_POSTER[] = _( + "A large poster with\n" + "a SEVIPER print."); + +const u8 DecorDesc_SEA_POSTER[] = _( + "A large poster with\n" + "a RELICANTH print."); + +const u8 DecorDesc_SKY_POSTER[] = _( + "A large poster with\n" + "a WINGULL print."); + +const u8 DecorDesc_KISS_POSTER[] = _( + "A large poster with\n" + "a SMOOCHUM print."); + +const u8 DecorDesc_PICHU_DOLL[] = _( + "A PICHU doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_PIKACHU_DOLL[] = _( + "A PIKACHU doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_MARILL_DOLL[] = _( + "A MARILL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TOGEPI_DOLL[] = _( + "A TOGEPI doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CYNDAQUIL_DOLL[] = _( + "A CYNDAQUIL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CHIKORITA_DOLL[] = _( + "A CHIKORITA doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TOTODILE_DOLL[] = _( + "A TOTODILE doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_JIGGLYPUFF_DOLL[] = _( + "A JIGGLYPUFF doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_MEOWTH_DOLL[] = _( + "A MEOWTH doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CLEFAIRY_DOLL[] = _( + "A CLEFAIRY doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_DITTO_DOLL[] = _( + "A DITTO doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SMOOCHUM_DOLL[] = _( + "A SMOOCHUM doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TREECKO_DOLL[] = _( + "A TREECKO doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_TORCHIC_DOLL[] = _( + "A TORCHIC doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_MUDKIP_DOLL[] = _( + "A MUDKIP doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_DUSKULL_DOLL[] = _( + "A DUSKULL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_WYNAUT_DOLL[] = _( + "A WYNAUT doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_BALTOY_DOLL[] = _( + "A BALTOY doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_KECLEON_DOLL[] = _( + "A KECLEON doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_AZURILL_DOLL[] = _( + "An AZURILL doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SKITTY_DOLL[] = _( + "A SKITTY doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SWABLU_DOLL[] = _( + "A SWABLU doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_GULPIN_DOLL[] = _( + "A GULPIN doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_LOTAD_DOLL[] = _( + "A LOTAD doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_SEEDOT_DOLL[] = _( + "A SEEDOT doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_PIKA_CUSHION[] = _( + "A PIKACHU cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_ROUND_CUSHION[] = _( + "A MARILL cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_KISS_CUSHION[] = _( + "A SMOOCHUM\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_ZIGZAG_CUSHION[] = _( + "A ZIGZAGOON\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_SPIN_CUSHION[] = _( + "A SPINDA cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_DIAMOND_CUSHION[] = _( + "A SABLEYE cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_BALL_CUSHION[] = _( + "A BALL cushion.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_GRASS_CUSHION[] = _( + "A grass-mark\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_FIRE_CUSHION[] = _( + "A fire-mark\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_WATER_CUSHION[] = _( + "A water-mark\n" + "cushion. Place it on\n" + "a mat or a desk."); + +const u8 DecorDesc_SNORLAX_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_RHYDON_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_LAPRAS_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_VENUSAUR_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_CHARIZARD_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_BLASTOISE_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_WAILMER_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_REGIROCK_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_REGICE_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); + +const u8 DecorDesc_REGISTEEL_DOLL[] = _( + "A large doll.\n" + "Place it on a mat\n" + "or a desk."); +#endif //GUARD_DATA_DECORATION_DESCRIPTION_H diff --git a/src/data/decoration/header.h b/src/data/decoration/header.h new file mode 100644 index 000000000..64bed1c7e --- /dev/null +++ b/src/data/decoration/header.h @@ -0,0 +1,1100 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_DATA_DECORATION_HEADER_H +#define GUARD_DATA_DECORATION_HEADER_H + +const struct Decoration gDecorations[] = { + { + DECOR_NONE, + _("SMALL DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_DESK, + 0, + DecorDesc_SMALL_DESK, + DecorGfx_SMALL_DESK + }, { + DECOR_SMALL_DESK, + _("SMALL DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_DESK, + 3000, + DecorDesc_SMALL_DESK, + DecorGfx_SMALL_DESK + }, { + DECOR_POKEMON_DESK, + _("POKéMON DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_DESK, + 3000, + DecorDesc_POKEMON_DESK, + DecorGfx_POKEMON_DESK + }, { + DECOR_HEAVY_DESK, + _("HEAVY DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x2, + DECORCAT_DESK, + 6000, + DecorDesc_HEAVY_DESK, + DecorGfx_HEAVY_DESK + }, { + DECOR_RAGGED_DESK, + _("RAGGED DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x2, + DECORCAT_DESK, + 6000, + DecorDesc_RAGGED_DESK, + DecorGfx_RAGGED_DESK + }, { + DECOR_COMFORT_DESK, + _("COMFORT DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x2, + DECORCAT_DESK, + 6000, + DecorDesc_COMFORT_DESK, + DecorGfx_COMFORT_DESK + }, { + DECOR_PRETTY_DESK, + _("PRETTY DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x3, + DECORCAT_DESK, + 9000, + DecorDesc_PRETTY_DESK, + DecorGfx_PRETTY_DESK + }, { + DECOR_BRICK_DESK, + _("BRICK DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x3, + DECORCAT_DESK, + 9000, + DecorDesc_BRICK_DESK, + DecorGfx_BRICK_DESK + }, { + DECOR_CAMP_DESK, + _("CAMP DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x3, + DECORCAT_DESK, + 9000, + DecorDesc_CAMP_DESK, + DecorGfx_CAMP_DESK + }, { + DECOR_HARD_DESK, + _("HARD DESK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_3x3, + DECORCAT_DESK, + 9000, + DecorDesc_HARD_DESK, + DecorGfx_HARD_DESK + }, { + DECOR_SMALL_CHAIR, + _("SMALL CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_SMALL_CHAIR, + DecorGfx_SMALL_CHAIR + }, { + DECOR_POKEMON_CHAIR, + _("POKéMON CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_POKEMON_CHAIR, + DecorGfx_POKEMON_CHAIR + }, { + DECOR_HEAVY_CHAIR, + _("HEAVY CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_HEAVY_CHAIR, + DecorGfx_HEAVY_CHAIR + }, { + DECOR_PRETTY_CHAIR, + _("PRETTY CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_PRETTY_CHAIR, + DecorGfx_PRETTY_CHAIR + }, { + DECOR_COMFORT_CHAIR, + _("COMFORT CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_COMFORT_CHAIR, + DecorGfx_COMFORT_CHAIR + }, { + DECOR_RAGGED_CHAIR, + _("RAGGED CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_RAGGED_CHAIR, + DecorGfx_RAGGED_CHAIR + }, { + DECOR_BRICK_CHAIR, + _("BRICK CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_BRICK_CHAIR, + DecorGfx_BRICK_CHAIR + }, { + DECOR_CAMP_CHAIR, + _("CAMP CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_CAMP_CHAIR, + DecorGfx_CAMP_CHAIR + }, { + DECOR_HARD_CHAIR, + _("HARD CHAIR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_CHAIR, + 2000, + DecorDesc_HARD_CHAIR, + DecorGfx_HARD_CHAIR + }, { + DECOR_RED_PLANT, + _("RED PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_PLANT, + 3000, + DecorDesc_RED_PLANT, + DecorGfx_RED_PLANT + }, { + DECOR_TROPICAL_PLANT, + _("TROPICAL PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_PLANT, + 3000, + DecorDesc_TROPICAL_PLANT, + DecorGfx_TROPICAL_PLANT + }, { + DECOR_PRETTY_FLOWERS, + _("PRETTY FLOWERS"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_PLANT, + 3000, + DecorDesc_PRETTY_FLOWERS, + DecorGfx_PRETTY_FLOWERS + }, { + DECOR_COLORFUL_PLANT, + _("COLORFUL PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_2x2, + DECORCAT_PLANT, + 5000, + DecorDesc_COLORFUL_PLANT, + DecorGfx_COLORFUL_PLANT + }, { + DECOR_BIG_PLANT, + _("BIG PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_2x2, + DECORCAT_PLANT, + 5000, + DecorDesc_BIG_PLANT, + DecorGfx_BIG_PLANT + }, { + DECOR_GORGEOUS_PLANT, + _("GORGEOUS PLANT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_2x2, + DECORCAT_PLANT, + 5000, + DecorDesc_GORGEOUS_PLANT, + DecorGfx_GORGEOUS_PLANT + }, { + DECOR_RED_BRICK, + _("RED BRICK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 500, + DecorDesc_RED_BRICK, + DecorGfx_RED_BRICK + }, { + DECOR_YELLOW_BRICK, + _("YELLOW BRICK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 500, + DecorDesc_YELLOW_BRICK, + DecorGfx_YELLOW_BRICK + }, { + DECOR_BLUE_BRICK, + _("BLUE BRICK"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 500, + DecorDesc_BLUE_BRICK, + DecorGfx_BLUE_BRICK + }, { + DECOR_RED_BALLOON, + _("RED BALLOON"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_RED_BALLOON, + DecorGfx_RED_BALLOON + }, { + DECOR_BLUE_BALLOON, + _("BLUE BALLOON"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_BLUE_BALLOON, + DecorGfx_BLUE_BALLOON + }, { + DECOR_YELLOW_BALLOON, + _("YELLOW BALLOON"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_YELLOW_BALLOON, + DecorGfx_YELLOW_BALLOON + }, { + DECOR_RED_TENT, + _("RED TENT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_ORNAMENT, + 10000, + DecorDesc_RED_TENT, + DecorGfx_RED_TENT + }, { + DECOR_BLUE_TENT, + _("BLUE TENT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_ORNAMENT, + 10000, + DecorDesc_BLUE_TENT, + DecorGfx_BLUE_TENT + }, { + DECOR_SOLID_BOARD, + _("SOLID BOARD"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 3000, + DecorDesc_SOLID_BOARD, + DecorGfx_SOLID_BOARD + }, { + DECOR_SLIDE, + _("SLIDE"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_2x4, + DECORCAT_ORNAMENT, + 8000, + DecorDesc_SLIDE, + DecorGfx_SLIDE + }, { + DECOR_FENCE_LENGTH, + _("FENCE LENGTH"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_FENCE_LENGTH, + DecorGfx_FENCE_LENGTH + }, { + DECOR_FENCE_WIDTH, + _("FENCE WIDTH"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 500, + DecorDesc_FENCE_WIDTH, + DecorGfx_FENCE_WIDTH + }, { + DECOR_TIRE, + _("TIRE"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_2x2, + DECORCAT_ORNAMENT, + 800, + DecorDesc_TIRE, + DecorGfx_TIRE + }, { + DECOR_STAND, + _("STAND"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_4x2, + DECORCAT_ORNAMENT, + 7000, + DecorDesc_STAND, + DecorGfx_STAND + }, { + DECOR_MUD_BALL, + _("MUD BALL"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 200, + DecorDesc_MUD_BALL, + DecorGfx_MUD_BALL + }, { + DECOR_BREAKABLE_DOOR, + _("BREAKABLE DOOR"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 3000, + DecorDesc_BREAKABLE_DOOR, + DecorGfx_BREAKABLE_DOOR + }, { + DECOR_SAND_ORNAMENT, + _("SAND ORNAMENT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 3000, + DecorDesc_SAND_ORNAMENT, + DecorGfx_SAND_ORNAMENT + }, { + DECOR_SILVER_SHIELD, + _("SILVER SHIELD"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 0, + DecorDesc_SILVER_SHIELD, + DecorGfx_SILVER_SHIELD + }, { + DECOR_GOLD_SHIELD, + _("GOLD SHIELD"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 0, + DecorDesc_GOLD_SHIELD, + DecorGfx_GOLD_SHIELD + }, { + DECOR_GLASS_ORNAMENT, + _("GLASS ORNAMENT"), + DECORPERM_BEHIND_FLOOR, + DECORSHAPE_1x2, + DECORCAT_ORNAMENT, + 0, + DecorDesc_GLASS_ORNAMENT, + DecorGfx_GLASS_ORNAMENT + }, { + DECOR_TV, + _("TV"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 3000, + DecorDesc_TV, + DecorGfx_TV + }, { + DECOR_ROUND_TV, + _("ROUND TV"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 4000, + DecorDesc_ROUND_TV, + DecorGfx_ROUND_TV + }, { + DECOR_CUTE_TV, + _("CUTE TV"), + DECORPERM_SOLID_FLOOR, + DECORSHAPE_1x1, + DECORCAT_ORNAMENT, + 4000, + DecorDesc_CUTE_TV, + DecorGfx_CUTE_TV + }, { + DECOR_GLITTER_MAT, + _("GLITTER MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 2000, + DecorDesc_GLITTER_MAT, + DecorGfx_GLITTER_MAT + }, { + DECOR_JUMP_MAT, + _("JUMP MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 2000, + DecorDesc_JUMP_MAT, + DecorGfx_JUMP_MAT + }, { + DECOR_SPIN_MAT, + _("SPIN MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 2000, + DecorDesc_SPIN_MAT, + DecorGfx_SPIN_MAT + }, { + DECOR_C_LOW_NOTE_MAT, + _("C Low NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_C_LOW_NOTE_MAT, + DecorGfx_C_LOW_NOTE_MAT + }, { + DECOR_D_NOTE_MAT, + _("D NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_D_NOTE_MAT, + DecorGfx_D_NOTE_MAT + }, { + DECOR_E_NOTE_MAT, + _("E NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_E_NOTE_MAT, + DecorGfx_E_NOTE_MAT + }, { + DECOR_F_NOTE_MAT, + _("F NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_F_NOTE_MAT, + DecorGfx_F_NOTE_MAT + }, { + DECOR_G_NOTE_MAT, + _("G NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_G_NOTE_MAT, + DecorGfx_G_NOTE_MAT + }, { + DECOR_A_NOTE_MAT, + _("A NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_A_NOTE_MAT, + DecorGfx_A_NOTE_MAT + }, { + DECOR_B_NOTE_MAT, + _("B NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_B_NOTE_MAT, + DecorGfx_B_NOTE_MAT + }, { + DECOR_C_HIGH_NOTE_MAT, + _("C High NOTE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_1x1, + DECORCAT_MAT, + 500, + DecorDesc_C_HIGH_NOTE_MAT, + DecorGfx_C_HIGH_NOTE_MAT + }, { + DECOR_SURF_MAT, + _("SURF MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_SURF_MAT, + DecorGfx_SURF_MAT + }, { + DECOR_THUNDER_MAT, + _("THUNDER MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_THUNDER_MAT, + DecorGfx_THUNDER_MAT + }, { + DECOR_FIRE_BLAST_MAT, + _("FIRE BLAST MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_FIRE_BLAST_MAT, + DecorGfx_FIRE_BLAST_MAT + }, { + DECOR_POWDER_SNOW_MAT, + _("POWDER SNOW MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_POWDER_SNOW_MAT, + DecorGfx_POWDER_SNOW_MAT + }, { + DECOR_ATTRACT_MAT, + _("ATTRACT MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_ATTRACT_MAT, + DecorGfx_ATTRACT_MAT + }, { + DECOR_FISSURE_MAT, + _("FISSURE MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_FISSURE_MAT, + DecorGfx_FISSURE_MAT + }, { + DECOR_SPIKES_MAT, + _("SPIKES MAT"), + DECORPERM_PASS_FLOOR, + DECORSHAPE_3x3, + DECORCAT_MAT, + 4000, + DecorDesc_SPIKES_MAT, + DecorGfx_SPIKES_MAT + }, { + DECOR_BALL_POSTER, + _("BALL POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_BALL_POSTER, + DecorGfx_BALL_POSTER + }, { + DECOR_GREEN_POSTER, + _("GREEN POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_GREEN_POSTER, + DecorGfx_GREEN_POSTER + }, { + DECOR_RED_POSTER, + _("RED POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_RED_POSTER, + DecorGfx_RED_POSTER + }, { + DECOR_BLUE_POSTER, + _("BLUE POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_BLUE_POSTER, + DecorGfx_BLUE_POSTER + }, { + DECOR_CUTE_POSTER, + _("CUTE POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_1x1, + DECORCAT_POSTER, + 1000, + DecorDesc_CUTE_POSTER, + DecorGfx_CUTE_POSTER + }, { + DECOR_PIKA_POSTER, + _("PIKA POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_PIKA_POSTER, + DecorGfx_PIKA_POSTER + }, { + DECOR_LONG_POSTER, + _("LONG POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_LONG_POSTER, + DecorGfx_LONG_POSTER + }, { + DECOR_SEA_POSTER, + _("SEA POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_SEA_POSTER, + DecorGfx_SEA_POSTER + }, { + DECOR_SKY_POSTER, + _("SKY POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_SKY_POSTER, + DecorGfx_SKY_POSTER + }, { + DECOR_KISS_POSTER, + _("KISS POSTER"), + DECORPERM_NA_WALL, + DECORSHAPE_2x1, + DECORCAT_POSTER, + 1500, + DecorDesc_KISS_POSTER, + DecorGfx_KISS_POSTER + }, { + DECOR_PICHU_DOLL, + _("PICHU DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_PICHU_DOLL, + DecorGfx_PICHU_DOLL + }, { + DECOR_PIKACHU_DOLL, + _("PIKACHU DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_PIKACHU_DOLL, + DecorGfx_PIKACHU_DOLL + }, { + DECOR_MARILL_DOLL, + _("MARILL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_MARILL_DOLL, + DecorGfx_MARILL_DOLL + }, { + DECOR_TOGEPI_DOLL, + _("TOGEPI DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_TOGEPI_DOLL, + DecorGfx_TOGEPI_DOLL + }, { + DECOR_CYNDAQUIL_DOLL, + _("CYNDAQUIL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_CYNDAQUIL_DOLL, + DecorGfx_CYNDAQUIL_DOLL + }, { + DECOR_CHIKORITA_DOLL, + _("CHIKORITA DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_CHIKORITA_DOLL, + DecorGfx_CHIKORITA_DOLL + }, { + DECOR_TOTODILE_DOLL, + _("TOTODILE DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_TOTODILE_DOLL, + DecorGfx_TOTODILE_DOLL + }, { + DECOR_JIGGLYPUFF_DOLL, + _("JIGGLYPUFF DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_JIGGLYPUFF_DOLL, + DecorGfx_JIGGLYPUFF_DOLL + }, { + DECOR_MEOWTH_DOLL, + _("MEOWTH DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_MEOWTH_DOLL, + DecorGfx_MEOWTH_DOLL + }, { + DECOR_CLEFAIRY_DOLL, + _("CLEFAIRY DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_CLEFAIRY_DOLL, + DecorGfx_CLEFAIRY_DOLL + }, { + DECOR_DITTO_DOLL, + _("DITTO DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_DITTO_DOLL, + DecorGfx_DITTO_DOLL + }, { + DECOR_SMOOCHUM_DOLL, + _("SMOOCHUM DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_SMOOCHUM_DOLL, + DecorGfx_SMOOCHUM_DOLL + }, { + DECOR_TREECKO_DOLL, + _("TREECKO DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_TREECKO_DOLL, + DecorGfx_TREECKO_DOLL + }, { + DECOR_TORCHIC_DOLL, + _("TORCHIC DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_TORCHIC_DOLL, + DecorGfx_TORCHIC_DOLL + }, { + DECOR_MUDKIP_DOLL, + _("MUDKIP DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_MUDKIP_DOLL, + DecorGfx_MUDKIP_DOLL + }, { + DECOR_DUSKULL_DOLL, + _("DUSKULL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_DUSKULL_DOLL, + DecorGfx_DUSKULL_DOLL + }, { + DECOR_WYNAUT_DOLL, + _("WYNAUT DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_WYNAUT_DOLL, + DecorGfx_WYNAUT_DOLL + }, { + DECOR_BALTOY_DOLL, + _("BALTOY DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_BALTOY_DOLL, + DecorGfx_BALTOY_DOLL + }, { + DECOR_KECLEON_DOLL, + _("KECLEON DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_KECLEON_DOLL, + DecorGfx_KECLEON_DOLL + }, { + DECOR_AZURILL_DOLL, + _("AZURILL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_AZURILL_DOLL, + DecorGfx_AZURILL_DOLL + }, { + DECOR_SKITTY_DOLL, + _("SKITTY DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_SKITTY_DOLL, + DecorGfx_SKITTY_DOLL + }, { + DECOR_SWABLU_DOLL, + _("SWABLU DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_SWABLU_DOLL, + DecorGfx_SWABLU_DOLL + }, { + DECOR_GULPIN_DOLL, + _("GULPIN DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_GULPIN_DOLL, + DecorGfx_GULPIN_DOLL + }, { + DECOR_LOTAD_DOLL, + _("LOTAD DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_LOTAD_DOLL, + DecorGfx_LOTAD_DOLL + }, { + DECOR_SEEDOT_DOLL, + _("SEEDOT DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_DOLL, + 3000, + DecorDesc_SEEDOT_DOLL, + DecorGfx_SEEDOT_DOLL + }, { + DECOR_PIKA_CUSHION, + _("PIKA CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_PIKA_CUSHION, + DecorGfx_PIKA_CUSHION + }, { + DECOR_ROUND_CUSHION, + _("ROUND CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_ROUND_CUSHION, + DecorGfx_ROUND_CUSHION + }, { + DECOR_KISS_CUSHION, + _("KISS CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_KISS_CUSHION, + DecorGfx_KISS_CUSHION + }, { + DECOR_ZIGZAG_CUSHION, + _("ZIGZAG CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_ZIGZAG_CUSHION, + DecorGfx_ZIGZAG_CUSHION + }, { + DECOR_SPIN_CUSHION, + _("SPIN CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_SPIN_CUSHION, + DecorGfx_SPIN_CUSHION + }, { + DECOR_DIAMOND_CUSHION, + _("DIAMOND CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_DIAMOND_CUSHION, + DecorGfx_DIAMOND_CUSHION + }, { + DECOR_BALL_CUSHION, + _("BALL CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_BALL_CUSHION, + DecorGfx_BALL_CUSHION + }, { + DECOR_GRASS_CUSHION, + _("GRASS CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_GRASS_CUSHION, + DecorGfx_GRASS_CUSHION + }, { + DECOR_FIRE_CUSHION, + _("FIRE CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_FIRE_CUSHION, + DecorGfx_FIRE_CUSHION + }, { + DECOR_WATER_CUSHION, + _("WATER CUSHION"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x1, + DECORCAT_CUSHION, + 2000, + DecorDesc_WATER_CUSHION, + DecorGfx_WATER_CUSHION + }, { + DECOR_SNORLAX_DOLL, + _("SNORLAX DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_SNORLAX_DOLL, + DecorGfx_SNORLAX_DOLL + }, { + DECOR_RHYDON_DOLL, + _("RHYDON DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_RHYDON_DOLL, + DecorGfx_RHYDON_DOLL + }, { + DECOR_LAPRAS_DOLL, + _("LAPRAS DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_LAPRAS_DOLL, + DecorGfx_LAPRAS_DOLL + }, { + DECOR_VENUSAUR_DOLL, + _("VENUSAUR DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_VENUSAUR_DOLL, + DecorGfx_VENUSAUR_DOLL + }, { + DECOR_CHARIZARD_DOLL, + _("CHARIZARD DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_CHARIZARD_DOLL, + DecorGfx_CHARIZARD_DOLL + }, { + DECOR_BLASTOISE_DOLL, + _("BLASTOISE DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_BLASTOISE_DOLL, + DecorGfx_BLASTOISE_DOLL + }, { + DECOR_WAILMER_DOLL, + _("WAILMER DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_WAILMER_DOLL, + DecorGfx_WAILMER_DOLL + }, { + DECOR_REGIROCK_DOLL, + _("REGIROCK DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_REGIROCK_DOLL, + DecorGfx_REGIROCK_DOLL + }, { + DECOR_REGICE_DOLL, + _("REGICE DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_REGICE_DOLL, + DecorGfx_REGICE_DOLL + }, { + DECOR_REGISTEEL_DOLL, + _("REGISTEEL DOLL"), + DECORPERM_SOLID_MAT, + DECORSHAPE_1x2, + DECORCAT_DOLL, + 10000, + DecorDesc_REGISTEEL_DOLL, + DecorGfx_REGISTEEL_DOLL} +}; + +#endif //GUARD_DATA_DECORATION_HEADER_H diff --git a/src/data/decoration/icon.h b/src/data/decoration/icon.h new file mode 100644 index 000000000..1f11bc19f --- /dev/null +++ b/src/data/decoration/icon.h @@ -0,0 +1,132 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_ICON_H +#define GUARD_ICON_H + +const u8 *const gUnknown_085A6BE8[][2] = { + {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB7AA0, gUnknown_08DB7B34}, + {gUnknown_08DB7B5C, gUnknown_08DB7BEC}, + {gUnknown_08DB7C08, gUnknown_08DB7CE8}, + {gUnknown_08DB7D08, gUnknown_08DB7DCC}, + {gUnknown_08DB7DF4, gUnknown_08DB7EA0}, + {gUnknown_08DB7EC4, gUnknown_08DB7F60}, + {gUnknown_08DB7F7C, gUnknown_08DB8070}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB808C, gUnknown_08DB8138}, + {gUnknown_08DB8160, gUnknown_08DB8218}, + {gUnknown_08DB823C, gUnknown_08DB8300}, + {gUnknown_08DB8328, gUnknown_08DB8430}, + {gUnknown_08DB8458, gUnknown_08DB8528}, + {gUnknown_08DB854C, gUnknown_08DB862C}, + {gUnknown_08DB8654, gUnknown_08DB86C4}, + {gUnknown_08DB86E0, gUnknown_08DB8750}, + {gUnknown_08DB876C, gUnknown_08DB87DC}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB87F8, gUnknown_08DB88D8}, + {gUnknown_08DB8900, gUnknown_08DB89E0}, + {gUnknown_08DB8A08, gUnknown_08DB8A68}, + {gUnknown_08DB8A84, gUnknown_08DB8B40}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB8B68, gUnknown_08DB8C40}, + {gUnknown_08DB8C5C, gUnknown_08DB8CF4}, + {NULL, NULL}, + {gUnknown_08DB8D18, gUnknown_08DB8DB0}, + {gUnknown_08DB8DD4, gUnknown_08DB8E80}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB8EA0, gUnknown_08DB8F58}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB8F7C, gUnknown_08DB9038}, + {gUnknown_08DB9058, gUnknown_08DB9130}, + {gUnknown_08DB9154, gUnknown_08DB9218}, + {gUnknown_08DB9234, gUnknown_08DB92FC}, + {gUnknown_08DB931C, gUnknown_08DB93E8}, + {gUnknown_08DB940C, gUnknown_08DB94CC}, + {gUnknown_08DB94E8, gUnknown_08DB95AC}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {NULL, NULL}, + {gUnknown_08DB95D0, gUnknown_08DB96C4}, + {gUnknown_08DB96EC, gUnknown_08DB97F4}, + {gUnknown_08DB981C, gUnknown_08DB9908}, + {gUnknown_08DB9930, gUnknown_08DB9A54}, + {gUnknown_08DB9A7C, gUnknown_08DB9B7C}, + {gUnknown_08DB9BA4, gUnknown_08DB9CB0}, + {gUnknown_08DB9CD8, gUnknown_08DB9DAC}, + {gUnknown_08DB9F08, gUnknown_08DB9FFC}, + {gUnknown_08DB9DD4, gUnknown_08DB9EE4}, + {gUnknown_08DBA020, gUnknown_08DBA12C} +}; + +#endif //GUARD_ICON_H diff --git a/src/data/decoration/tilemaps.h b/src/data/decoration/tilemaps.h new file mode 100644 index 000000000..1cca7ae0b --- /dev/null +++ b/src/data/decoration/tilemaps.h @@ -0,0 +1,239 @@ +// +// Created by scott on 10/21/2017. +// + +#ifndef GUARD_TILEMAPS_H +#define GUARD_TILEMAPS_H + +const u8 Unknown_085A6FB0[] = { + 0x00, 0x01, 0x02, 0x03 +}; + +const u8 Unknown_085A6FB4[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d +}; + +const u8 Unknown_085A6FC0[] = { + 0x00, 0x01, 0x02, 0x03, + 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f +}; + +const u8 Unknown_085A6FD0[] = { + 0x00, 0x01, 0x04, 0x05, + 0x08, 0x09, 0x0c, 0x0d, + 0x10, 0x11, 0x14, 0x15 +}; + +const u8 Unknown_085A6FDC[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 +}; + +const u8 Unknown_085A6FE4[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f +}; + +const u8 Unknown_085A7004[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d +}; + +const u8 Unknown_085A7028[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d +}; + +const u8 Unknown_085A7040[] = { + 0x00, 0x00, 0x00, 0x00 +}; + +const u8 Unknown_085A7044[] = { + 0x00, 0x00, 0x01, 0x01, + 0x00, 0x00, 0x01, 0x01 +}; + +const u8 Unknown_085A704C[] = { + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02 +}; + +const u8 Unknown_085A7058[] = { + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, + 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07, + 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07 +}; + +const u8 Unknown_085A7078[] = { + 0x00, 0x00, 0x01, 0x01, + 0x00, 0x00, 0x01, 0x01, + 0x02, 0x02, 0x03, 0x03, + 0x02, 0x02, 0x03, 0x03 +}; + +const u8 Unknown_085A7088[] = { + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01 +}; + +const u8 Unknown_085A7090[] = { + 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x01, + 0x02, 0x02, 0x02, 0x02 +}; + +const u8 Unknown_085A709C[] = { + 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, + 0x02, 0x02, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, + 0x04, 0x04, 0x05, 0x05, 0x04, 0x04, 0x05, 0x05, + 0x06, 0x06, 0x07, 0x07, 0x06, 0x06, 0x07, 0x07 +}; + +const u8 Unknown_085A70BC[] = { + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, + 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, + 0x06, 0x06, 0x07, 0x07, 0x08, 0x08, + 0x06, 0x06, 0x07, 0x07, 0x08, 0x08 +}; + +const u8 Unknown_085A70E0[] = { + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, + 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, + 0x03, 0x03, 0x04, 0x04, 0x05, 0x05 +}; + +const u8 Unknown_085A70F8[] = { + 0x04, 0x05, 0x06, 0x07 +}; + +const u8 Unknown_085A70FC[] = { + 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7104[] = { + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7110[] = { + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7130[] = { + 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7140[] = { + 0x04, 0x05, 0x06, 0x07, + 0x04, 0x05, 0x06, 0x07 +}; + +const u8 Unknown_085A7148[] = { + 0x04, 0x05, 0x06, 0x07, + 0x04, 0x05, 0x06, 0x07, + 0x04, 0x05, 0x06, 0x07 +}; + +const u8 Unknown_085A7154[] = { + 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7174[] = { + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 +}; + +const u8 Unknown_085A7198[] = { + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, + 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, + 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 +}; + +const struct { + const u8 *tiles; + const u8 *y; + const u8 *x; + u8 size; +} gUnknown_085A71B0[] = { + { + Unknown_085A6FB0, + Unknown_085A7040, + Unknown_085A70F8, + 0x04 + }, { + Unknown_085A6FDC, + Unknown_085A7044, + Unknown_085A70FC, + 0x08 + }, { + Unknown_085A6FB4, + Unknown_085A704C, + Unknown_085A7104, + 0x0c + }, { + Unknown_085A6FE4, + Unknown_085A7058, + Unknown_085A7110, + 0x20 + }, { + Unknown_085A6FC0, + Unknown_085A7078, + Unknown_085A7130, + 0x10 + }, { + Unknown_085A6FDC, + Unknown_085A7088, + Unknown_085A7140, + 0x08 + }, { + Unknown_085A6FD0, + Unknown_085A7090, + Unknown_085A7148, + 0x0c + }, { + Unknown_085A6FE4, + Unknown_085A709C, + Unknown_085A7154, + 0x20 + }, { + Unknown_085A7004, + Unknown_085A70BC, + Unknown_085A7174, + 0x24 + }, { + Unknown_085A7028, + Unknown_085A70E0, + Unknown_085A7198, + 0x18 + }}; + +#endif //GUARD_TILEMAPS_H diff --git a/src/data/decoration/tiles.h b/src/data/decoration/tiles.h new file mode 100644 index 000000000..6b3ed699f --- /dev/null +++ b/src/data/decoration/tiles.h @@ -0,0 +1,646 @@ +#ifndef GUARD_DATA_DECORATION_TILES +#define GUARD_DATA_DECORATION_TILES + +const u16 DecorGfx_SMALL_DESK[] = { + 0x87 +}; + +const u16 DecorGfx_POKEMON_DESK[] = { + 0x8F +}; + +const u16 DecorGfx_HEAVY_DESK[] = { + 0x90, + 0x91, + 0x92, + 0x98, + 0x99, + 0x9A +}; + +const u16 DecorGfx_RAGGED_DESK[] = { + 0x93, + 0x94, + 0x95, + 0x9B, + 0x9C, + 0x9D +}; + +const u16 DecorGfx_COMFORT_DESK[] = { + 0x96, + 0x97, + 0xA3, + 0x9E, + 0x9F, + 0xAB +}; + +const u16 DecorGfx_PRETTY_DESK[] = { + 0xBD, + 0xBE, + 0xBF, + 0xC5, + 0xC6, + 0xC7, + 0xCD, + 0xCE, + 0xCF +}; + +const u16 DecorGfx_BRICK_DESK[] = { + 0xA0, + 0xA1, + 0xA2, + 0xA8, + 0xA9, + 0xAA, + 0xB0, + 0xB1, + 0xB2 +}; + +const u16 DecorGfx_CAMP_DESK[] = { + 0xA4, + 0xA5, + 0xA6, + 0xAC, + 0xAD, + 0xAE, + 0xB4, + 0xB5, + 0xB6 +}; + +const u16 DecorGfx_HARD_DESK[] = { + 0xA7, + 0xBB, + 0xBC, + 0xAF, + 0xC3, + 0xC4, + 0xB7, + 0xCB, + 0xCC +}; + +const u16 DecorGfx_SMALL_CHAIR[] = { + 0xB8 +}; + +const u16 DecorGfx_POKEMON_CHAIR[] = { + 0xB9 +}; + +const u16 DecorGfx_HEAVY_CHAIR[] = { + 0xBA +}; + +const u16 DecorGfx_PRETTY_CHAIR[] = { + 0xC0 +}; + +const u16 DecorGfx_COMFORT_CHAIR[] = { + 0xC1 +}; + +const u16 DecorGfx_RAGGED_CHAIR[] = { + 0xC2 +}; + +const u16 DecorGfx_BRICK_CHAIR[] = { + 0xC8 +}; + +const u16 DecorGfx_CAMP_CHAIR[] = { + 0xC9 +}; + +const u16 DecorGfx_HARD_CHAIR[] = { + 0xCA +}; + +const u16 DecorGfx_RED_PLANT[] = { + 0xD0, + 0xD8 +}; + +const u16 DecorGfx_TROPICAL_PLANT[] = { + 0xD2, + 0xDA +}; + +const u16 DecorGfx_PRETTY_FLOWERS[] = { + 0xD4, + 0xDC +}; + +const u16 DecorGfx_COLORFUL_PLANT[] = { + 0xE0, + 0xE2, + 0xE8, + 0xE9 +}; + +const u16 DecorGfx_BIG_PLANT[] = { + 0xE4, + 0xE6, + 0xEC, + 0xED +}; + +const u16 DecorGfx_GORGEOUS_PLANT[] = { + 0xF0, + 0xF2, + 0xF8, + 0xF9 +}; + +const u16 DecorGfx_RED_BRICK[] = { + 0x25, + 0x2D +}; + +const u16 DecorGfx_YELLOW_BRICK[] = { + 0x26, + 0x2E +}; + +const u16 DecorGfx_BLUE_BRICK[] = { + 0x27, + 0x2F +}; + +const u16 DecorGfx_RED_BALLOON[] = { + 0x138 +}; + +const u16 DecorGfx_BLUE_BALLOON[] = { + 0x13C +}; + +const u16 DecorGfx_YELLOW_BALLOON[] = { + 0x140 +}; + +const u16 DecorGfx_RED_TENT[] = { + 0x30, + 0x31, + 0x32, + 0x38, + 0x39, + 0x3A, + 0x40, + 0x41, + 0x3B +}; + +const u16 DecorGfx_BLUE_TENT[] = { + 0x48, + 0x49, + 0x68, + 0x50, + 0x51, + 0x70, + 0x58, + 0x59, + 0x69 +}; + +const u16 DecorGfx_SOLID_BOARD[] = { + 0x34, + 0x3C +}; + +const u16 DecorGfx_SLIDE[] = { + 0x35, + 0x36, + 0x3D, + 0x3E, + 0x63, + 0x64, + 0x6F, + 0x77 +}; + +const u16 DecorGfx_FENCE_LENGTH[] = { + 0x33 +}; + +const u16 DecorGfx_FENCE_WIDTH[] = { + 0x2C +}; + +const u16 DecorGfx_TIRE[] = { + 0x80, + 0x81, + 0x88, + 0x89 +}; + +const u16 DecorGfx_STAND[] = { + 0x6A, + 0x6B, + 0x6C, + 0x6D, + 0x72, + 0x73, + 0x74, + 0x75 +}; + +const u16 DecorGfx_MUD_BALL[] = { + 0x28 +}; + +const u16 DecorGfx_BREAKABLE_DOOR[] = { + 0x37, + 0x3F +}; + +const u16 DecorGfx_SAND_ORNAMENT[] = { + 0x85, + 0x8D +}; + +const u16 DecorGfx_SILVER_SHIELD[] = { + 0xD6, + 0xDE +}; + +const u16 DecorGfx_GOLD_SHIELD[] = { + 0x12E, + 0x136 +}; + +const u16 DecorGfx_GLASS_ORNAMENT[] = { + 0x82, + 0x8A +}; + +const u16 DecorGfx_TV[] = { + 0xF4 +}; + +const u16 DecorGfx_ROUND_TV[] = { + 0xF5 +}; + +const u16 DecorGfx_CUTE_TV[] = { + 0xF6 +}; + +const u16 DecorGfx_GLITTER_MAT[] = { + 0x60 +}; + +const u16 DecorGfx_JUMP_MAT[] = { + 0x61 +}; + +const u16 DecorGfx_SPIN_MAT[] = { + 0x62 +}; + +const u16 DecorGfx_C_LOW_NOTE_MAT[] = { + 0x78 +}; + +const u16 DecorGfx_D_NOTE_MAT[] = { + 0x79 +}; + +const u16 DecorGfx_E_NOTE_MAT[] = { + 0x7A +}; + +const u16 DecorGfx_F_NOTE_MAT[] = { + 0x7B +}; + +const u16 DecorGfx_G_NOTE_MAT[] = { + 0x7C +}; + +const u16 DecorGfx_A_NOTE_MAT[] = { + 0x7D +}; + +const u16 DecorGfx_B_NOTE_MAT[] = { + 0x7E +}; + +const u16 DecorGfx_C_HIGH_NOTE_MAT[] = { + 0xB3 +}; + +const u16 DecorGfx_SURF_MAT[] = { + 0x42, + 0x43, + 0x44, + 0x4A, + 0x4B, + 0x4C, + 0x52, + 0x53, + 0x54 +}; + +const u16 DecorGfx_THUNDER_MAT[] = { + 0x45, + 0x46, + 0x47, + 0x4D, + 0x4E, + 0x4F, + 0x55, + 0x56, + 0x57 +}; + +const u16 DecorGfx_FIRE_BLAST_MAT[] = { + 0x5A, + 0x5B, + 0x5C, + 0x5D, + 0x5E, + 0x5F, + 0x65, + 0x66, + 0x67 +}; + +const u16 DecorGfx_POWDER_SNOW_MAT[] = { + 0x100, + 0x101, + 0x102, + 0x108, + 0x109, + 0x10A, + 0x110, + 0x111, + 0x112 +}; + +const u16 DecorGfx_ATTRACT_MAT[] = { + 0x103, + 0x104, + 0x105, + 0x10B, + 0x10C, + 0x10D, + 0x113, + 0x114, + 0x115 +}; + +const u16 DecorGfx_FISSURE_MAT[] = { + 0x106, + 0x107, + 0x118, + 0x10E, + 0x10F, + 0x120, + 0x116, + 0x117, + 0x128 +}; + +const u16 DecorGfx_SPIKES_MAT[] = { + 0x119, + 0x11A, + 0x11B, + 0x121, + 0x122, + 0x123, + 0x129, + 0x12A, + 0x12B +}; + +const u16 DecorGfx_BALL_POSTER[] = { + 0x130 +}; + +const u16 DecorGfx_GREEN_POSTER[] = { + 0x131 +}; + +const u16 DecorGfx_RED_POSTER[] = { + 0x132 +}; + +const u16 DecorGfx_BLUE_POSTER[] = { + 0x133 +}; + +const u16 DecorGfx_CUTE_POSTER[] = { + 0x134 +}; + +const u16 DecorGfx_PIKA_POSTER[] = { + 0x11C, + 0x11D +}; + +const u16 DecorGfx_LONG_POSTER[] = { + 0x11E, + 0x11F +}; + +const u16 DecorGfx_SEA_POSTER[] = { + 0x124, + 0x125 +}; + +const u16 DecorGfx_SKY_POSTER[] = { + 0x126, + 0x127 +}; + +const u16 DecorGfx_KISS_POSTER[] = { + 0x12C, + 0x12D +}; + +const u16 DecorGfx_PICHU_DOLL[] = { + EVENT_OBJ_GFX_PICHU_DOLL +}; + +const u16 DecorGfx_PIKACHU_DOLL[] = { + EVENT_OBJ_GFX_PIKACHU_DOLL +}; + +const u16 DecorGfx_MARILL_DOLL[] = { + EVENT_OBJ_GFX_MARILL_DOLL +}; + +const u16 DecorGfx_TOGEPI_DOLL[] = { + EVENT_OBJ_GFX_TOGEPI_DOLL +}; + +const u16 DecorGfx_CYNDAQUIL_DOLL[] = { + EVENT_OBJ_GFX_CYNDAQUIL_DOLL +}; + +const u16 DecorGfx_CHIKORITA_DOLL[] = { + EVENT_OBJ_GFX_CHIKORITA_DOLL +}; + +const u16 DecorGfx_TOTODILE_DOLL[] = { + EVENT_OBJ_GFX_TOTODILE_DOLL +}; + +const u16 DecorGfx_JIGGLYPUFF_DOLL[] = { + EVENT_OBJ_GFX_JIGGLYPUFF_DOLL +}; + +const u16 DecorGfx_MEOWTH_DOLL[] = { + EVENT_OBJ_GFX_MEOWTH_DOLL +}; + +const u16 DecorGfx_CLEFAIRY_DOLL[] = { + EVENT_OBJ_GFX_CLEFAIRY_DOLL +}; + +const u16 DecorGfx_DITTO_DOLL[] = { + EVENT_OBJ_GFX_DITTO_DOLL +}; + +const u16 DecorGfx_SMOOCHUM_DOLL[] = { + EVENT_OBJ_GFX_SMOOCHUM_DOLL +}; + +const u16 DecorGfx_TREECKO_DOLL[] = { + EVENT_OBJ_GFX_TREECKO_DOLL +}; + +const u16 DecorGfx_TORCHIC_DOLL[] = { + EVENT_OBJ_GFX_TORCHIC_DOLL +}; + +const u16 DecorGfx_MUDKIP_DOLL[] = { + EVENT_OBJ_GFX_MUDKIP_DOLL +}; + +const u16 DecorGfx_DUSKULL_DOLL[] = { + EVENT_OBJ_GFX_DUSKULL_DOLL +}; + +const u16 DecorGfx_WYNAUT_DOLL[] = { + EVENT_OBJ_GFX_WYNAUT_DOLL +}; + +const u16 DecorGfx_BALTOY_DOLL[] = { + EVENT_OBJ_GFX_BALTOY_DOLL +}; + +const u16 DecorGfx_KECLEON_DOLL[] = { + EVENT_OBJ_GFX_KECLEON_DOLL +}; + +const u16 DecorGfx_AZURILL_DOLL[] = { + EVENT_OBJ_GFX_AZURILL_DOLL +}; + +const u16 DecorGfx_SKITTY_DOLL[] = { + EVENT_OBJ_GFX_SKITTY_DOLL +}; + +const u16 DecorGfx_SWABLU_DOLL[] = { + EVENT_OBJ_GFX_SWABLU_DOLL +}; + +const u16 DecorGfx_GULPIN_DOLL[] = { + EVENT_OBJ_GFX_GULPIN_DOLL +}; + +const u16 DecorGfx_LOTAD_DOLL[] = { + EVENT_OBJ_GFX_LOTAD_DOLL +}; + +const u16 DecorGfx_SEEDOT_DOLL[] = { + EVENT_OBJ_GFX_SEEDOT_DOLL +}; + +const u16 DecorGfx_PIKA_CUSHION[] = { + EVENT_OBJ_GFX_PIKA_CUSHION +}; + +const u16 DecorGfx_ROUND_CUSHION[] = { + EVENT_OBJ_GFX_ROUND_CUSHION +}; + +const u16 DecorGfx_KISS_CUSHION[] = { + EVENT_OBJ_GFX_KISS_CUSHION +}; + +const u16 DecorGfx_ZIGZAG_CUSHION[] = { + EVENT_OBJ_GFX_ZIGZAG_CUSHION +}; + +const u16 DecorGfx_SPIN_CUSHION[] = { + EVENT_OBJ_GFX_SPIN_CUSHION +}; + +const u16 DecorGfx_DIAMOND_CUSHION[] = { + EVENT_OBJ_GFX_DIAMOND_CUSHION +}; + +const u16 DecorGfx_BALL_CUSHION[] = { + EVENT_OBJ_GFX_BALL_CUSHION +}; + +const u16 DecorGfx_GRASS_CUSHION[] = { + EVENT_OBJ_GFX_GRASS_CUSHION +}; + +const u16 DecorGfx_FIRE_CUSHION[] = { + EVENT_OBJ_GFX_FIRE_CUSHION +}; + +const u16 DecorGfx_WATER_CUSHION[] = { + EVENT_OBJ_GFX_WATER_CUSHION +}; + +const u16 DecorGfx_SNORLAX_DOLL[] = { + EVENT_OBJ_GFX_BIG_SNORLAX_DOLL +}; + +const u16 DecorGfx_RHYDON_DOLL[] = { + EVENT_OBJ_GFX_BIG_RHYDON_DOLL +}; + +const u16 DecorGfx_LAPRAS_DOLL[] = { + EVENT_OBJ_GFX_BIG_LAPRAS_DOLL +}; + +const u16 DecorGfx_VENUSAUR_DOLL[] = { + EVENT_OBJ_GFX_BIG_VENUSAUR_DOLL +}; + +const u16 DecorGfx_CHARIZARD_DOLL[] = { + EVENT_OBJ_GFX_BIG_CHARIZARD_DOLL +}; + +const u16 DecorGfx_BLASTOISE_DOLL[] = { + EVENT_OBJ_GFX_BIG_BLASTOISE_DOLL +}; + +const u16 DecorGfx_WAILMER_DOLL[] = { + EVENT_OBJ_GFX_BIG_WAILMER_DOLL +}; + +const u16 DecorGfx_REGIROCK_DOLL[] = { + EVENT_OBJ_GFX_BIG_REGIROCK_DOLL +}; + +const u16 DecorGfx_REGICE_DOLL[] = { + EVENT_OBJ_GFX_BIG_REGICE_DOLL +}; + +const u16 DecorGfx_REGISTEEL_DOLL[] = { + EVENT_OBJ_GFX_BIG_REGISTEEL_DOLL +}; + +#endif // GUARD_DATA_DECORATION_TILES diff --git a/src/data/item_icon_table.h b/src/data/item_icon_table.h new file mode 100644 index 000000000..0a24c0572 --- /dev/null +++ b/src/data/item_icon_table.h @@ -0,0 +1,414 @@ +#ifndef GUARD_DATA_ITEM_ICON_TABLE_H +#define GUARD_DATA_ITEM_ICON_TABLE_H + +#include "global.h" +#include "graphics.h" + +const u8 * const gItemIconTable[][2] = +{ + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// Pokeballs + gItemIcon_MasterBall, gItemIconPalette_MasterBall, + gItemIcon_UltraBall, gItemIconPalette_UltraBall, + gItemIcon_GreatBall, gItemIconPalette_GreatBall, + gItemIcon_PokeBall, gItemIconPalette_PokeBall, + gItemIcon_SafariBall, gItemIconPalette_SafariBall, + gItemIcon_NetBall, gItemIconPalette_NetBall, + gItemIcon_DiveBall, gItemIconPalette_DiveBall, + gItemIcon_NestBall, gItemIconPalette_NestBall, + gItemIcon_RepeatBall, gItemIconPalette_RepeatBall, + gItemIcon_TimerBall, gItemIconPalette_RepeatBall, + gItemIcon_LuxuryBall, gItemIconPalette_LuxuryBall, + gItemIcon_PremierBall, gItemIconPalette_LuxuryBall, +// Medicine + gItemIcon_Potion, gItemIconPalette_Potion, + gItemIcon_Antidote, gItemIconPalette_Antidote, + gItemIcon_StatusHeal, gItemIconPalette_BurnHeal, + gItemIcon_StatusHeal, gItemIconPalette_IceHeal, + gItemIcon_StatusHeal, gItemIconPalette_Awakening, + gItemIcon_StatusHeal, gItemIconPalette_ParalyzeHeal, + gItemIcon_LargePotion, gItemIconPalette_FullRestore, + gItemIcon_LargePotion, gItemIconPalette_MaxPotion, + gItemIcon_Potion, gItemIconPalette_HyperPotion, + gItemIcon_Potion, gItemIconPalette_SuperPotion, + gItemIcon_FullHeal, gItemIconPalette_FullHeal, + gItemIcon_Revive, gItemIconPalette_Revive, + gItemIcon_MaxRevive, gItemIconPalette_Revive, + gItemIcon_FreshWater, gItemIconPalette_FreshWater, + gItemIcon_SodaPop, gItemIconPalette_SodaPop, + gItemIcon_Lemonade, gItemIconPalette_Lemonade, + gItemIcon_MoomooMilk, gItemIconPalette_MoomooMilk, + gItemIcon_Powder, gItemIconPalette_EnergyPowder, + gItemIcon_EnergyRoot, gItemIconPalette_EnergyRoot, + gItemIcon_Powder, gItemIconPalette_HealPowder, + gItemIcon_RevivalHerb, gItemIconPalette_RevivalHerb, + gItemIcon_Ether, gItemIconPalette_Ether, + gItemIcon_Ether, gItemIconPalette_MaxEther, + gItemIcon_Ether, gItemIconPalette_Elixir, + gItemIcon_Ether, gItemIconPalette_MaxElixir, + gItemIcon_LavaCookie, gItemIconPalette_LavaCookieAndLetter, + gItemIcon_Flute, gItemIconPalette_BlueFlute, + gItemIcon_Flute, gItemIconPalette_YellowFlute, + gItemIcon_Flute, gItemIconPalette_RedFlute, + gItemIcon_Flute, gItemIconPalette_BlackFlute, + gItemIcon_Flute, gItemIconPalette_WhiteFlute, + gItemIcon_BerryJuice, gItemIconPalette_BerryJuice, + gItemIcon_SacredAsh, gItemIconPalette_SacredAsh, +// Collectibles + gItemIcon_Powder, gItemIconPalette_ShoalSalt, + gItemIcon_ShoalShell, gItemIconPalette_Shell, + gItemIcon_Shard, gItemIconPalette_RedShard, + gItemIcon_Shard, gItemIconPalette_BlueShard, + gItemIcon_Shard, gItemIconPalette_YellowShard, + gItemIcon_Shard, gItemIconPalette_GreenShard, +// ???????? + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// Vitamins + gItemIcon_HPUp, gItemIconPalette_HPUp, + gItemIcon_Vitamin, gItemIconPalette_Protein, + gItemIcon_Vitamin, gItemIconPalette_Iron, + gItemIcon_Vitamin, gItemIconPalette_Carbos, + gItemIcon_Vitamin, gItemIconPalette_Calcium, + gItemIcon_RareCandy, gItemIconPalette_RareCandy, + gItemIcon_PPUp, gItemIconPalette_PPUp, + gItemIcon_Vitamin, gItemIconPalette_Zinc, + gItemIcon_PPMax, gItemIconPalette_PPMax, +// ???????? + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// Battle items + gItemIcon_BattleStatItem, gItemIconPalette_GuardSpec, + gItemIcon_BattleStatItem, gItemIconPalette_DireHit, + gItemIcon_BattleStatItem, gItemIconPalette_XAttack, + gItemIcon_BattleStatItem, gItemIconPalette_XDefend, + gItemIcon_BattleStatItem, gItemIconPalette_XSpeed, + gItemIcon_BattleStatItem, gItemIconPalette_XAccuracy, + gItemIcon_BattleStatItem, gItemIconPalette_XSpecial, + gItemIcon_PokeDoll, gItemIconPalette_PokeDoll, + gItemIcon_FluffyTail, gItemIconPalette_FluffyTail, +// ???????? + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// Field items + gItemIcon_Repel, gItemIconPalette_SuperRepel, + gItemIcon_Repel, gItemIconPalette_MaxRepel, + gItemIcon_EscapeRope, gItemIconPalette_EscapeRope, + gItemIcon_Repel, gItemIconPalette_Repel, +// ???????? + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// Evolution stones + gItemIcon_SunStone, gItemIconPalette_SunStone, + gItemIcon_MoonStone, gItemIconPalette_MoonStone, + gItemIcon_FireStone, gItemIconPalette_FireStone, + gItemIcon_ThunderStone, gItemIconPalette_ThunderStone, + gItemIcon_WaterStone, gItemIconPalette_WaterStone, + gItemIcon_LeafStone, gItemIconPalette_LeafStone, +// ???????? + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// Valuables + gItemIcon_TinyMushroom, gItemIconPalette_Mushroom, + gItemIcon_BigMushroom, gItemIconPalette_Mushroom, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_Pearl, gItemIconPalette_Pearl, + gItemIcon_BigPearl, gItemIconPalette_Pearl, + gItemIcon_Stardust, gItemIconPalette_Star, + gItemIcon_StarPiece, gItemIconPalette_Star, + gItemIcon_Nugget, gItemIconPalette_Nugget, + gItemIcon_HeartScale, gItemIconPalette_HeartScale, +// ???????? + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// Mail + gItemIcon_OrangeMail, gItemIconPalette_OrangeMail, + gItemIcon_HarborMail, gItemIconPalette_HarborMail, + gItemIcon_GlitterMail, gItemIconPalette_GlitterMail, + gItemIcon_MechMail, gItemIconPalette_MechMail, + gItemIcon_WoodMail, gItemIconPalette_WoodMail, + gItemIcon_WaveMail, gItemIconPalette_WaveMail, + gItemIcon_BeadMail, gItemIconPalette_BeadMail, + gItemIcon_ShadowMail, gItemIconPalette_ShadowMail, + gItemIcon_TropicMail, gItemIconPalette_TropicMail, + gItemIcon_DreamMail, gItemIconPalette_DreamMail, + gItemIcon_FabMail, gItemIconPalette_FabMail, + gItemIcon_RetroMail, gItemIconPalette_RetroMail, +// Berries + gItemIcon_CheriBerry, gItemIconPalette_CheriBerry, + gItemIcon_ChestoBerry, gItemIconPalette_ChestoBerry, + gItemIcon_PechaBerry, gItemIconPalette_PechaBerry, + gItemIcon_RawstBerry, gItemIconPalette_RawstBerry, + gItemIcon_AspearBerry, gItemIconPalette_AspearBerry, + gItemIcon_LeppaBerry, gItemIconPalette_LeppaBerry, + gItemIcon_OranBerry, gItemIconPalette_OranBerry, + gItemIcon_PersimBerry, gItemIconPalette_PersimBerry, + gItemIcon_LumBerry, gItemIconPalette_LumBerry, + gItemIcon_SitrusBerry, gItemIconPalette_SitrusBerry, + gItemIcon_FigyBerry, gItemIconPalette_FigyBerry, + gItemIcon_WikiBerry, gItemIconPalette_WikiBerry, + gItemIcon_MagoBerry, gItemIconPalette_MagoBerry, + gItemIcon_AguavBerry, gItemIconPalette_AguavBerry, + gItemIcon_IapapaBerry, gItemIconPalette_IapapaBerry, + gItemIcon_RazzBerry, gItemIconPalette_RazzBerry, + gItemIcon_BlukBerry, gItemIconPalette_BlukBerry, + gItemIcon_NanabBerry, gItemIconPalette_NanabBerry, + gItemIcon_WepearBerry, gItemIconPalette_WepearBerry, + gItemIcon_PinapBerry, gItemIconPalette_PinapBerry, + gItemIcon_PomegBerry, gItemIconPalette_PomegBerry, + gItemIcon_KelpsyBerry, gItemIconPalette_KelpsyBerry, + gItemIcon_QualotBerry, gItemIconPalette_QualotBerry, + gItemIcon_HondewBerry, gItemIconPalette_HondewBerry, + gItemIcon_GrepaBerry, gItemIconPalette_GrepaBerry, + gItemIcon_TamatoBerry, gItemIconPalette_TamatoBerry, + gItemIcon_CornnBerry, gItemIconPalette_CornnBerry, + gItemIcon_MagostBerry, gItemIconPalette_MagostBerry, + gItemIcon_RabutaBerry, gItemIconPalette_RabutaBerry, + gItemIcon_NomelBerry, gItemIconPalette_NomelBerry, + gItemIcon_SpelonBerry, gItemIconPalette_SpelonBerry, + gItemIcon_PamtreBerry, gItemIconPalette_PamtreBerry, + gItemIcon_WatmelBerry, gItemIconPalette_WatmelBerry, + gItemIcon_DurinBerry, gItemIconPalette_DurinBerry, + gItemIcon_BelueBerry, gItemIconPalette_BelueBerry, + gItemIcon_LiechiBerry, gItemIconPalette_LiechiBerry, + gItemIcon_GanlonBerry, gItemIconPalette_GanlonBerry, + gItemIcon_SalacBerry, gItemIconPalette_SalacBerry, + gItemIcon_PetayaBerry, gItemIconPalette_PetayaBerry, + gItemIcon_ApicotBerry, gItemIconPalette_ApicotBerry, + gItemIcon_LansatBerry, gItemIconPalette_LansatBerry, + gItemIcon_StarfBerry, gItemIconPalette_StarfBerry, + gItemIcon_EnigmaBerry, gItemIconPalette_EnigmaBerry, +// ???????? + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// Hold items + gItemIcon_BrightPowder, gItemIconPalette_BrightPowder, + gItemIcon_InBattleHerb, gItemIconPalette_WhiteHerb, + gItemIcon_MachoBrace, gItemIconPalette_MachoBrace, + gItemIcon_ExpShare, gItemIconPalette_ExpShare, + gItemIcon_QuickClaw, gItemIconPalette_QuickClaw, + gItemIcon_SootheBell, gItemIconPalette_SootheBell, + gItemIcon_InBattleHerb, gItemIconPalette_MentalHerb, + gItemIcon_ChoiceBand, gItemIconPalette_ChoiceBand, + gItemIcon_KingsRock, gItemIconPalette_KingsRock, + gItemIcon_SilverPowder, gItemIconPalette_SilverPowder, + gItemIcon_AmuletCoin, gItemIconPalette_AmuletCoin, + gItemIcon_CleanseTag, gItemIconPalette_CleanseTag, + gItemIcon_SoulDew, gItemIconPalette_SoulDew, + gItemIcon_DeepSeaTooth, gItemIconPalette_DeepSeaTooth, + gItemIcon_DeepSeaScale, gItemIconPalette_DeepSeaScale, + gItemIcon_SmokeBall, gItemIconPalette_SmokeBall, + gItemIcon_Everstone, gItemIconPalette_Everstone, + gItemIcon_FocusBand, gItemIconPalette_FocusBand, + gItemIcon_LuckyEgg, gItemIconPalette_LuckyEgg, + gItemIcon_ScopeLens, gItemIconPalette_ScopeLens, + gItemIcon_MetalCoat, gItemIconPalette_MetalCoat, + gItemIcon_Leftovers, gItemIconPalette_Leftovers, + gItemIcon_DragonScale, gItemIconPalette_DragonScale, + gItemIcon_LightBall, gItemIconPalette_LightBall, + gItemIcon_SoftSand, gItemIconPalette_SoftSand, + gItemIcon_HardStone, gItemIconPalette_HardStone, + gItemIcon_MiracleSeed, gItemIconPalette_MiracleSeed, + gItemIcon_BlackGlasses, gItemIconPalette_BlackTypeEnhancingItem, + gItemIcon_BlackBelt, gItemIconPalette_BlackTypeEnhancingItem, + gItemIcon_Magnet, gItemIconPalette_Magnet, + gItemIcon_MysticWater, gItemIconPalette_MysticWater, + gItemIcon_SharpBeak, gItemIconPalette_SharpBeak, + gItemIcon_PoisonBarb, gItemIconPalette_PoisonBarb, + gItemIcon_NeverMeltIce, gItemIconPalette_NeverMeltIce, + gItemIcon_SpellTag, gItemIconPalette_SpellTag, + gItemIcon_TwistedSpoon, gItemIconPalette_TwistedSpoon, + gItemIcon_Charcoal, gItemIconPalette_Charcoal, + gItemIcon_DragonFang, gItemIconPalette_DragonFang, + gItemIcon_SilkScarf, gItemIconPalette_SilkScarf, + gItemIcon_UpGrade, gItemIconPalette_UpGrade, + gItemIcon_ShellBell, gItemIconPalette_Shell, + gItemIcon_SeaIncense, gItemIconPalette_SeaIncense, + gItemIcon_LaxIncense, gItemIconPalette_LaxIncense, + gItemIcon_LuckyPunch, gItemIconPalette_LuckyPunch, + gItemIcon_MetalPowder, gItemIconPalette_MetalPowder, + gItemIcon_ThickClub, gItemIconPalette_ThickClub, + gItemIcon_Stick, gItemIconPalette_Stick, +// ???????? + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// Contest hold items + gItemIcon_Scarf, gItemIconPalette_RedScarf, + gItemIcon_Scarf, gItemIconPalette_BlueScarf, + gItemIcon_Scarf, gItemIconPalette_PinkScarf, + gItemIcon_Scarf, gItemIconPalette_GreenScarf, + gItemIcon_Scarf, gItemIconPalette_YellowScarf, +// Key items + gItemIcon_MachBike, gItemIconPalette_MachBike, + gItemIcon_CoinCase, gItemIconPalette_CoinCase, + gItemIcon_Itemfinder, gItemIconPalette_Itemfinder, + gItemIcon_OldRod, gItemIconPalette_OldRod, + gItemIcon_GoodRod, gItemIconPalette_GoodRod, + gItemIcon_SuperRod, gItemIconPalette_SuperRod, + gItemIcon_SSTicket, gItemIconPalette_SSTicket, + gItemIcon_ContestPass, gItemIconPalette_ContestPass, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_WailmerPail, gItemIconPalette_WailmerPail, + gItemIcon_DevonGoods, gItemIconPalette_DevonGoods, + gItemIcon_SootSack, gItemIconPalette_SootSack, + gItemIcon_BasementKey, gItemIconPalette_OldKey, + gItemIcon_AcroBike, gItemIconPalette_AcroBike, + gItemIcon_PokeblockCase, gItemIconPalette_PokeblockCase, + gItemIcon_Letter, gItemIconPalette_LavaCookieAndLetter, + gItemIcon_EonTicket, gItemIconPalette_EonTicket, + gItemIcon_Orb, gItemIconPalette_RedOrb, + gItemIcon_Orb, gItemIconPalette_BlueOrb, + gItemIcon_Scanner, gItemIconPalette_Scanner, + gItemIcon_GoGoggles, gItemIconPalette_GoGoggles, + gItemIcon_Meteorite, gItemIconPalette_Meteorite, + gItemIcon_Room1Key, gItemIconPalette_Key, + gItemIcon_Room2Key, gItemIconPalette_Key, + gItemIcon_Room4Key, gItemIconPalette_Key, + gItemIcon_Room6Key, gItemIconPalette_Key, + gItemIcon_StorageKey, gItemIconPalette_OldKey, + gItemIcon_RootFossil, gItemIconPalette_HoennFossil, + gItemIcon_ClawFossil, gItemIconPalette_HoennFossil, + gItemIcon_DevonScope, gItemIconPalette_DevonScope, +// TMs/HMs + gItemIcon_TM, gItemIconPalette_FightingTMHM, // TM01 + gItemIcon_TM, gItemIconPalette_DragonTMHM, // TM02 + gItemIcon_TM, gItemIconPalette_WaterTMHM, // TM03 + gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM04 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM05 + gItemIcon_TM, gItemIconPalette_PoisonTMHM, // TM06 + gItemIcon_TM, gItemIconPalette_IceTMHM, // TM07 + gItemIcon_TM, gItemIconPalette_FightingTMHM, // TM08 + gItemIcon_TM, gItemIconPalette_GrassTMHM, // TM09 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM10 + gItemIcon_TM, gItemIconPalette_FireTMHM, // TM11 + gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM12 + gItemIcon_TM, gItemIconPalette_IceTMHM, // TM13 + gItemIcon_TM, gItemIconPalette_IceTMHM, // TM14 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM15 + gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM16 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM17 + gItemIcon_TM, gItemIconPalette_WaterTMHM, // TM18 + gItemIcon_TM, gItemIconPalette_GrassTMHM, // TM19 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM20 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM21 + gItemIcon_TM, gItemIconPalette_GrassTMHM, // TM22 + gItemIcon_TM, gItemIconPalette_SteelTMHM, // TM23 + gItemIcon_TM, gItemIconPalette_ElectricTMHM, // TM24 + gItemIcon_TM, gItemIconPalette_ElectricTMHM, // TM25 + gItemIcon_TM, gItemIconPalette_GroundTMHM, // TM26 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM27 + gItemIcon_TM, gItemIconPalette_GroundTMHM, // TM28 + gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM29 + gItemIcon_TM, gItemIconPalette_GhostTMHM, // TM30 + gItemIcon_TM, gItemIconPalette_FightingTMHM, // TM31 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM32 + gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM33 + gItemIcon_TM, gItemIconPalette_ElectricTMHM, // TM34 + gItemIcon_TM, gItemIconPalette_FireTMHM, // TM35 + gItemIcon_TM, gItemIconPalette_PoisonTMHM, // TM36 + gItemIcon_TM, gItemIconPalette_RockTMHM, // TM37 + gItemIcon_TM, gItemIconPalette_FireTMHM, // TM38 + gItemIcon_TM, gItemIconPalette_RockTMHM, // TM39 + gItemIcon_TM, gItemIconPalette_FlyingTMHM, // TM40 + gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM41 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM42 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM43 + gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM44 + gItemIcon_TM, gItemIconPalette_NormalTMHM, // TM45 + gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM46 + gItemIcon_TM, gItemIconPalette_SteelTMHM, // TM47 + gItemIcon_TM, gItemIconPalette_PsychicTMHM, // TM48 + gItemIcon_TM, gItemIconPalette_DarkTMHM, // TM49 + gItemIcon_TM, gItemIconPalette_FireTMHM, // TM50 + gItemIcon_HM, gItemIconPalette_NormalTMHM, // HM01 + gItemIcon_HM, gItemIconPalette_FlyingTMHM, // HM02 + gItemIcon_HM, gItemIconPalette_WaterTMHM, // HM03 + gItemIcon_HM, gItemIconPalette_NormalTMHM, // HM04 + gItemIcon_HM, gItemIconPalette_NormalTMHM, // HM05 + gItemIcon_HM, gItemIconPalette_FightingTMHM, // HM06 + gItemIcon_HM, gItemIconPalette_WaterTMHM, // HM07 + gItemIcon_HM, gItemIconPalette_WaterTMHM, // HM08 +// ???????? + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, + gItemIcon_QuestionMark, gItemIconPalette_QuestionMark, +// FireRed/LeafGreen key items + gItemIcon_OaksParcel, gItemIconPalette_OaksParcel, + gItemIcon_PokeFlute, gItemIconPalette_PokeFlute, + gItemIcon_SecretKey, gItemIconPalette_SecretKey, + gItemIcon_BikeVoucher, gItemIconPalette_BikeVoucher, + gItemIcon_GoldTeeth, gItemIconPalette_GoldTeeth, + gItemIcon_OldAmber, gItemIconPalette_OldAmber, + gItemIcon_CardKey, gItemIconPalette_CardKey, + gItemIcon_LiftKey, gItemIconPalette_Key, + gItemIcon_HelixFossil, gItemIconPalette_KantoFossil, + gItemIcon_DomeFossil, gItemIconPalette_KantoFossil, + gItemIcon_SilphScope, gItemIconPalette_SilphScope, + gItemIcon_Bicycle, gItemIconPalette_Bicycle, + gItemIcon_TownMap, gItemIconPalette_TownMap, + gItemIcon_VSSeeker, gItemIconPalette_VSSeeker, + gItemIcon_FameChecker, gItemIconPalette_FameChecker, + gItemIcon_TMCase, gItemIconPalette_TMCase, + gItemIcon_BerryPouch, gItemIconPalette_BerryPouch, + gItemIcon_TeachyTV, gItemIconPalette_TeachyTV, + gItemIcon_TriPass, gItemIconPalette_TriPass, + gItemIcon_RainbowPass, gItemIconPalette_RainbowPass, + gItemIcon_Tea, gItemIconPalette_Tea, + gItemIcon_MysticTicket, gItemIconPalette_MysticTicket, + gItemIcon_AuroraTicket, gItemIconPalette_AuroraTicket, + gItemIcon_PowderJar, gItemIconPalette_PowderJar, + gItemIcon_Gem, gItemIconPalette_Ruby, + gItemIcon_Gem, gItemIconPalette_Sapphire, +// Emerald-only key items + gItemIcon_MagmaEmblem, gItemIconPalette_MagmaEmblem, + gItemIcon_OldSeaMap, gItemIconPalette_OldSeaMap, +// Return to field arrow + gItemIcon_ReturnToFieldArrow, gItemIconPalette_ReturnToFieldArrow, +}; +#endif // GUARD_DATA_ITEM_ICON_TABLE_H diff --git a/src/data/items.h b/src/data/items.h new file mode 100644 index 000000000..49f981faf --- /dev/null +++ b/src/data/items.h @@ -0,0 +1,6079 @@ +const struct Item gItems[] = +{ + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Pokeballs + + { + .name = _("MASTER BALL"), + .itemId = ITEM_MASTER_BALL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gMasterBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 0, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 0, + }, + { + .name = _("ULTRA BALL"), + .itemId = ITEM_ULTRA_BALL, + .price = 1200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gUltraBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 1, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 1, + }, + { + .name = _("GREAT BALL"), + .itemId = ITEM_GREAT_BALL, + .price = 600, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gGreatBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 2, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 2, + }, + { + .name = _("POKé BALL"), + .itemId = ITEM_POKE_BALL, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPokeBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 3, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 3, + }, + { + .name = _("SAFARI BALL"), + .itemId = ITEM_SAFARI_BALL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSafariBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 4, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 4, + }, + { + .name = _("NET BALL"), + .itemId = ITEM_NET_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gNetBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 5, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 5, + }, + { + .name = _("DIVE BALL"), + .itemId = ITEM_DIVE_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDiveBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 6, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 6, + }, + { + .name = _("NEST BALL"), + .itemId = ITEM_NEST_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gNestBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 7, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 7, + }, + { + .name = _("REPEAT BALL"), + .itemId = ITEM_REPEAT_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRepeatBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 8, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 8, + }, + { + .name = _("TIMER BALL"), + .itemId = ITEM_TIMER_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTimerBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 9, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 9, + }, + { + .name = _("LUXURY BALL"), + .itemId = ITEM_LUXURY_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gLuxuryBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 10, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 10, + }, + { + .name = _("PREMIER BALL"), + .itemId = ITEM_PREMIER_BALL, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPremierBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 11, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 11, + }, + +//Medicine + + { + .name = _("POTION"), + .itemId = ITEM_POTION, + .price = 300, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 20, + .description = gPotionItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ANTIDOTE"), + .itemId = ITEM_ANTIDOTE, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gAntidoteItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("BURN HEAL"), + .itemId = ITEM_BURN_HEAL, + .price = 250, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBurnHealItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ICE HEAL"), + .itemId = ITEM_ICE_HEAL, + .price = 250, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gIceHealItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("AWAKENING"), + .itemId = ITEM_AWAKENING, + .price = 250, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gAwakeningItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PARLYZ HEAL"), + .itemId = ITEM_PARALYZE_HEAL, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gParalyzeHealItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FULL RESTORE"), + .itemId = ITEM_FULL_RESTORE, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gFullRestoreItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("MAX POTION"), + .itemId = ITEM_MAX_POTION, + .price = 2500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gMaxPotionItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("HYPER POTION"), + .itemId = ITEM_HYPER_POTION, + .price = 1200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 200, + .description = gHyperPotionItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SUPER POTION"), + .itemId = ITEM_SUPER_POTION, + .price = 700, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 50, + .description = gSuperPotionItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FULL HEAL"), + .itemId = ITEM_FULL_HEAL, + .price = 600, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gFullHealItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("REVIVE"), + .itemId = ITEM_REVIVE, + .price = 1500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gReviveItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("MAX REVIVE"), + .itemId = ITEM_MAX_REVIVE, + .price = 4000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gMaxReviveItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FRESH WATER"), + .itemId = ITEM_FRESH_WATER, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 50, + .description = gFreshWaterItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SODA POP"), + .itemId = ITEM_SODA_POP, + .price = 300, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 60, + .description = gSodaPopItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("LEMONADE"), + .itemId = ITEM_LEMONADE, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 80, + .description = gLemonadeItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("MOOMOO MILK"), + .itemId = ITEM_MOOMOO_MILK, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 100, + .description = gMoomooMilkItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ENERGYPOWDER"), + .itemId = ITEM_ENERGY_POWDER, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gEnergyPowderItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ENERGY ROOT"), + .itemId = ITEM_ENERGY_ROOT, + .price = 800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gEnergyRootItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("HEAL POWDER"), + .itemId = ITEM_HEAL_POWDER, + .price = 450, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHealPowderItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("REVIVAL HERB"), + .itemId = ITEM_REVIVAL_HERB, + .price = 2800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRevivalHerbItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ETHER"), + .itemId = ITEM_ETHER, + .price = 1200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 10, + .description = gEtherItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("MAX ETHER"), + .itemId = ITEM_MAX_ETHER, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gMaxEtherItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("ELIXIR"), + .itemId = ITEM_ELIXIR, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 10, + .description = gElixirItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("MAX ELIXIR"), + .itemId = ITEM_MAX_ELIXIR, + .price = 4500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gMaxElixirItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("LAVA COOKIE"), + .itemId = ITEM_LAVA_COOKIE, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gLavaCookieItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("BLUE FLUTE"), + .itemId = ITEM_BLUE_FLUTE, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBlueFluteItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("YELLOW FLUTE"), + .itemId = ITEM_YELLOW_FLUTE, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gYellowFluteItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("RED FLUTE"), + .itemId = ITEM_RED_FLUTE, + .price = 300, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRedFluteItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("BLACK FLUTE"), + .itemId = ITEM_BLACK_FLUTE, + .price = 400, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 50, + .description = gBlackFluteItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WHITE FLUTE"), + .itemId = ITEM_WHITE_FLUTE, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 150, + .description = gWhiteFluteItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BERRY JUICE"), + .itemId = ITEM_BERRY_JUICE, + .price = 100, + .holdEffect = HOLD_EFFECT_RESTORE_HP, + .holdEffectParam = 20, + .description = gBerryJuiceItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SACRED ASH"), + .itemId = ITEM_SACRED_ASH, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSacredAshItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_SacredAsh, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Collectibles + + { + .name = _("SHOAL SALT"), + .itemId = ITEM_SHOAL_SALT, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gShoalSaltItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SHOAL SHELL"), + .itemId = ITEM_SHOAL_SHELL, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gShoalShellItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RED SHARD"), + .itemId = ITEM_RED_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRedShardItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLUE SHARD"), + .itemId = ITEM_BLUE_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBlueShardItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("YELLOW SHARD"), + .itemId = ITEM_YELLOW_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gYellowShardItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GREEN SHARD"), + .itemId = ITEM_GREEN_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gGreenShardItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Vitamins + + { + .name = _("HP UP"), + .itemId = ITEM_HP_UP, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHPUpItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PROTEIN"), + .itemId = ITEM_PROTEIN, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gProteinItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("IRON"), + .itemId = ITEM_IRON, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gIronItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CARBOS"), + .itemId = ITEM_CARBOS, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gCarbosItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CALCIUM"), + .itemId = ITEM_CALCIUM, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gCalciumItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RARE CANDY"), + .itemId = ITEM_RARE_CANDY, + .price = 4800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRareCandyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_RareCandy, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PP UP"), + .itemId = ITEM_PP_UP, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPPUpItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPUp, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ZINC"), + .itemId = ITEM_ZINC, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gZincItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PP MAX"), + .itemId = ITEM_PP_MAX, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPPMaxItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPUp, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Battle items + + { + .name = _("GUARD SPEC."), + .itemId = ITEM_GUARD_SPEC, + .price = 700, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gGuardSpecItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("DIRE HIT"), + .itemId = ITEM_DIRE_HIT, + .price = 650, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDireHitItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X ATTACK"), + .itemId = ITEM_X_ATTACK, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gXAttackItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X DEFEND"), + .itemId = ITEM_X_DEFEND, + .price = 550, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gXDefendItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X SPEED"), + .itemId = ITEM_X_SPEED, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gXSpeedItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X ACCURACY"), + .itemId = ITEM_X_ACCURACY, + .price = 950, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gXAccuracyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X SPECIAL"), + .itemId = ITEM_X_SPECIAL, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gXSpecialItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("POKé DOLL"), + .itemId = ITEM_POKE_DOLL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPokeDollItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_Escape, + .secondaryId = 0, + }, + { + .name = _("FLUFFY TAIL"), + .itemId = ITEM_FLUFFY_TAIL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gFluffyTailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_Escape, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Field items + + { + .name = _("SUPER REPEL"), + .itemId = ITEM_SUPER_REPEL, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 200, + .description = gSuperRepelItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_Repel, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAX REPEL"), + .itemId = ITEM_MAX_REPEL, + .price = 700, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 250, + .description = gMaxRepelItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_Repel, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ESCAPE ROPE"), + .itemId = ITEM_ESCAPE_ROPE, + .price = 550, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gEscapeRopeItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_EscapeRope, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("REPEL"), + .itemId = ITEM_REPEL, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 100, + .description = gRepelItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_Repel, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Evolution stones + + { + .name = _("SUN STONE"), + .itemId = ITEM_SUN_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSunStoneItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MOON STONE"), + .itemId = ITEM_MOON_STONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gMoonStoneItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("FIRE STONE"), + .itemId = ITEM_FIRE_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gFireStoneItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("THUNDERSTONE"), + .itemId = ITEM_THUNDER_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gThunderStoneItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WATER STONE"), + .itemId = ITEM_WATER_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gWaterStoneItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LEAF STONE"), + .itemId = ITEM_LEAF_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gLeafStoneItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Valuable items + + { + .name = _("TINYMUSHROOM"), + .itemId = ITEM_TINY_MUSHROOM, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTinyMushroomItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BIG MUSHROOM"), + .itemId = ITEM_BIG_MUSHROOM, + .price = 5000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBigMushroomItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PEARL"), + .itemId = ITEM_PEARL, + .price = 1400, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPearlItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BIG PEARL"), + .itemId = ITEM_BIG_PEARL, + .price = 7500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBigPearlItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STARDUST"), + .itemId = ITEM_STARDUST, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gStardustItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STAR PIECE"), + .itemId = ITEM_STAR_PIECE, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gStarPieceItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NUGGET"), + .itemId = ITEM_NUGGET, + .price = 10000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gNuggetItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HEART SCALE"), + .itemId = ITEM_HEART_SCALE, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHeartScaleItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Mail + { + .name = _("ORANGE MAIL"), + .itemId = ITEM_ORANGE_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gOrangeMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HARBOR MAIL"), + .itemId = ITEM_HARBOR_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHarborMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("GLITTER MAIL"), + .itemId = ITEM_GLITTER_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gGlitterMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 2, + }, + { + .name = _("MECH MAIL"), + .itemId = ITEM_MECH_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gMechMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 3, + }, + { + .name = _("WOOD MAIL"), + .itemId = ITEM_WOOD_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gWoodMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 4, + }, + { + .name = _("WAVE MAIL"), + .itemId = ITEM_WAVE_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gWaveMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 5, + }, + { + .name = _("BEAD MAIL"), + .itemId = ITEM_BEAD_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBeadMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 6, + }, + { + .name = _("SHADOW MAIL"), + .itemId = ITEM_SHADOW_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gShadowMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 7, + }, + { + .name = _("TROPIC MAIL"), + .itemId = ITEM_TROPIC_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTropicMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 8, + }, + { + .name = _("DREAM MAIL"), + .itemId = ITEM_DREAM_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDreamMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 9, + }, + { + .name = _("FAB MAIL"), + .itemId = ITEM_FAB_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gFabMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 10, + }, + { + .name = _("RETRO MAIL"), + .itemId = ITEM_RETRO_MAIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRetroMailItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 11, + }, + +//Berries + + { + .name = _("CHERI BERRY"), + .itemId = ITEM_CHERI_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_PAR, + .holdEffectParam = 0, + .description = gCheriBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("CHESTO BERRY"), + .itemId = ITEM_CHESTO_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_SLP, + .holdEffectParam = 0, + .description = gChestoBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PECHA BERRY"), + .itemId = ITEM_PECHA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_PSN, + .holdEffectParam = 0, + .description = gPechaBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("RAWST BERRY"), + .itemId = ITEM_RAWST_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_BRN, + .holdEffectParam = 0, + .description = gRawstBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ASPEAR BERRY"), + .itemId = ITEM_ASPEAR_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_FRZ, + .holdEffectParam = 0, + .description = gAspearBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("LEPPA BERRY"), + .itemId = ITEM_LEPPA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RESTORE_PP, + .holdEffectParam = 10, + .description = gLeppaBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("ORAN BERRY"), + .itemId = ITEM_ORAN_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RESTORE_HP, + .holdEffectParam = 10, + .description = gOranBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PERSIM BERRY"), + .itemId = ITEM_PERSIM_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_CONFUSION, + .holdEffectParam = 0, + .description = gPersimBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("LUM BERRY"), + .itemId = ITEM_LUM_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_STATUS, + .holdEffectParam = 0, + .description = gLumBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SITRUS BERRY"), + .itemId = ITEM_SITRUS_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RESTORE_HP, + .holdEffectParam = 30, + .description = gSitrusBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FIGY BERRY"), + .itemId = ITEM_FIGY_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_SPICY, + .holdEffectParam = 8, + .description = gFigyBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WIKI BERRY"), + .itemId = ITEM_WIKI_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_DRY, + .holdEffectParam = 8, + .description = gWikiBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAGO BERRY"), + .itemId = ITEM_MAGO_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_SWEET, + .holdEffectParam = 8, + .description = gMagoBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("AGUAV BERRY"), + .itemId = ITEM_AGUAV_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_BITTER, + .holdEffectParam = 8, + .description = gAguavBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("IAPAPA BERRY"), + .itemId = ITEM_IAPAPA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_SOUR, + .holdEffectParam = 8, + .description = gIapapaBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RAZZ BERRY"), + .itemId = ITEM_RAZZ_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRazzBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLUK BERRY"), + .itemId = ITEM_BLUK_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBlukBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NANAB BERRY"), + .itemId = ITEM_NANAB_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gNanabBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WEPEAR BERRY"), + .itemId = ITEM_WEPEAR_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gWepearBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PINAP BERRY"), + .itemId = ITEM_PINAP_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPinapBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("POMEG BERRY"), + .itemId = ITEM_POMEG_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPomegBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KELPSY BERRY"), + .itemId = ITEM_KELPSY_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gKelpsyBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("QUALOT BERRY"), + .itemId = ITEM_QUALOT_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gQualotBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HONDEW BERRY"), + .itemId = ITEM_HONDEW_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHondewBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GREPA BERRY"), + .itemId = ITEM_GREPA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gGrepaBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TAMATO BERRY"), + .itemId = ITEM_TAMATO_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTamatoBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CORNN BERRY"), + .itemId = ITEM_CORNN_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gCornnBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAGOST BERRY"), + .itemId = ITEM_MAGOST_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gMagostBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RABUTA BERRY"), + .itemId = ITEM_RABUTA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRabutaBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NOMEL BERRY"), + .itemId = ITEM_NOMEL_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gNomelBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SPELON BERRY"), + .itemId = ITEM_SPELON_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSpelonBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PAMTRE BERRY"), + .itemId = ITEM_PAMTRE_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPamtreBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WATMEL BERRY"), + .itemId = ITEM_WATMEL_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gWatmelBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DURIN BERRY"), + .itemId = ITEM_DURIN_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDurinBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BELUE BERRY"), + .itemId = ITEM_BELUE_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBelueBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LIECHI BERRY"), + .itemId = ITEM_LIECHI_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_ATTACK_UP, + .holdEffectParam = 4, + .description = gLiechiBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GANLON BERRY"), + .itemId = ITEM_GANLON_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_DEFENSE_UP, + .holdEffectParam = 4, + .description = gGanlonBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SALAC BERRY"), + .itemId = ITEM_SALAC_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_SPEED_UP, + .holdEffectParam = 4, + .description = gSalacBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PETAYA BERRY"), + .itemId = ITEM_PETAYA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_SP_ATTACK_UP, + .holdEffectParam = 4, + .description = gPetayaBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("APICOT BERRY"), + .itemId = ITEM_APICOT_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_SP_DEFENSE_UP, + .holdEffectParam = 4, + .description = gApicotBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LANSAT BERRY"), + .itemId = ITEM_LANSAT_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CRITICAL_UP, + .holdEffectParam = 4, + .description = gLansatBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STARF BERRY"), + .itemId = ITEM_STARF_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RANDOM_STAT_UP, + .holdEffectParam = 4, + .description = gStarfBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ENIGMA BERRY"), + .itemId = ITEM_ENIGMA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gEnigmaBerryItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_EnigmaBerry, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_EnigmaBerry, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Hold items + + { + .name = _("BRIGHTPOWDER"), + .itemId = ITEM_BRIGHT_POWDER, + .price = 10, + .holdEffect = HOLD_EFFECT_EVASION_UP, + .holdEffectParam = 10, + .description = gBrightPowderItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WHITE HERB"), + .itemId = ITEM_WHITE_HERB, + .price = 100, + .holdEffect = HOLD_EFFECT_RESTORE_STATS, + .holdEffectParam = 0, + .description = gWhiteHerbItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MACHO BRACE"), + .itemId = ITEM_MACHO_BRACE, + .price = 3000, + .holdEffect = HOLD_EFFECT_MACHO_BRACE, + .holdEffectParam = 0, + .description = gMachoBraceItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EXP. SHARE"), + .itemId = ITEM_EXP_SHARE, + .price = 3000, + .holdEffect = HOLD_EFFECT_EXP_SHARE, + .holdEffectParam = 0, + .description = gExpShareItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("QUICK CLAW"), + .itemId = ITEM_QUICK_CLAW, + .price = 100, + .holdEffect = HOLD_EFFECT_QUICK_CLAW, + .holdEffectParam = 20, + .description = gQuickClawItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SOOTHE BELL"), + .itemId = ITEM_SOOTHE_BELL, + .price = 100, + .holdEffect = HOLD_EFFECT_HAPPINESS_UP, + .holdEffectParam = 0, + .description = gSootheBellItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MENTAL HERB"), + .itemId = ITEM_MENTAL_HERB, + .price = 100, + .holdEffect = HOLD_EFFECT_CURE_ATTRACT, + .holdEffectParam = 0, + .description = gMentalHerbItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CHOICE BAND"), + .itemId = ITEM_CHOICE_BAND, + .price = 100, + .holdEffect = HOLD_EFFECT_CHOICE_BAND, + .holdEffectParam = 0, + .description = gChoiceBandItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KING’S ROCK"), + .itemId = ITEM_KINGS_ROCK, + .price = 100, + .holdEffect = HOLD_EFFECT_FLINCH, + .holdEffectParam = 10, + .description = gKingsRockItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SILVERPOWDER"), + .itemId = ITEM_SILVER_POWDER, + .price = 100, + .holdEffect = HOLD_EFFECT_BUG_POWER, + .holdEffectParam = 10, + .description = gSilverPowderItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("AMULET COIN"), + .itemId = ITEM_AMULET_COIN, + .price = 100, + .holdEffect = HOLD_EFFECT_DOUBLE_PRIZE, + .holdEffectParam = 10, + .description = gAmuletCoinItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CLEANSE TAG"), + .itemId = ITEM_CLEANSE_TAG, + .price = 200, + .holdEffect = HOLD_EFFECT_REPEL, + .holdEffectParam = 0, + .description = gCleanseTagItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SOUL DEW"), + .itemId = ITEM_SOUL_DEW, + .price = 200, + .holdEffect = HOLD_EFFECT_SOUL_DEW, + .holdEffectParam = 0, + .description = gSoulDewItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEEPSEATOOTH"), + .itemId = ITEM_DEEP_SEA_TOOTH, + .price = 200, + .holdEffect = HOLD_EFFECT_DEEP_SEA_TOOTH, + .holdEffectParam = 0, + .description = gDeepSeaToothItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEEPSEASCALE"), + .itemId = ITEM_DEEP_SEA_SCALE, + .price = 200, + .holdEffect = HOLD_EFFECT_DEEP_SEA_SCALE, + .holdEffectParam = 0, + .description = gDeepSeaScaleItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SMOKE BALL"), + .itemId = ITEM_SMOKE_BALL, + .price = 200, + .holdEffect = HOLD_EFFECT_CAN_ALWAYS_RUN, + .holdEffectParam = 0, + .description = gSmokeBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EVERSTONE"), + .itemId = ITEM_EVERSTONE, + .price = 200, + .holdEffect = HOLD_EFFECT_PREVENT_EVOLVE, + .holdEffectParam = 0, + .description = gEverstoneItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("FOCUS BAND"), + .itemId = ITEM_FOCUS_BAND, + .price = 200, + .holdEffect = HOLD_EFFECT_FOCUS_BAND, + .holdEffectParam = 10, + .description = gFocusBandItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LUCKY EGG"), + .itemId = ITEM_LUCKY_EGG, + .price = 200, + .holdEffect = HOLD_EFFECT_LUCKY_EGG, + .holdEffectParam = 0, + .description = gLuckyEggItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCOPE LENS"), + .itemId = ITEM_SCOPE_LENS, + .price = 200, + .holdEffect = HOLD_EFFECT_SCOPE_LENS, + .holdEffectParam = 0, + .description = gScopeLensItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("METAL COAT"), + .itemId = ITEM_METAL_COAT, + .price = 100, + .holdEffect = HOLD_EFFECT_STEEL_POWER, + .holdEffectParam = 10, + .description = gMetalCoatItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LEFTOVERS"), + .itemId = ITEM_LEFTOVERS, + .price = 200, + .holdEffect = HOLD_EFFECT_LEFTOVERS, + .holdEffectParam = 10, + .description = gLeftoversItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DRAGON SCALE"), + .itemId = ITEM_DRAGON_SCALE, + .price = 2100, + .holdEffect = HOLD_EFFECT_DRAGON_SCALE, + .holdEffectParam = 10, + .description = gDragonScaleItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LIGHT BALL"), + .itemId = ITEM_LIGHT_BALL, + .price = 100, + .holdEffect = HOLD_EFFECT_LIGHT_BALL, + .holdEffectParam = 0, + .description = gLightBallItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SOFT SAND"), + .itemId = ITEM_SOFT_SAND, + .price = 100, + .holdEffect = HOLD_EFFECT_GROUND_POWER, + .holdEffectParam = 10, + .description = gSoftSandItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HARD STONE"), + .itemId = ITEM_HARD_STONE, + .price = 100, + .holdEffect = HOLD_EFFECT_ROCK_POWER, + .holdEffectParam = 10, + .description = gHardStoneItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MIRACLE SEED"), + .itemId = ITEM_MIRACLE_SEED, + .price = 100, + .holdEffect = HOLD_EFFECT_GRASS_POWER, + .holdEffectParam = 10, + .description = gMiracleSeedItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLACKGLASSES"), + .itemId = ITEM_BLACK_GLASSES, + .price = 100, + .holdEffect = HOLD_EFFECT_DARK_POWER, + .holdEffectParam = 10, + .description = gBlackGlassesItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLACK BELT"), + .itemId = ITEM_BLACK_BELT, + .price = 100, + .holdEffect = HOLD_EFFECT_FIGHTING_POWER, + .holdEffectParam = 10, + .description = gBlackBeltItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAGNET"), + .itemId = ITEM_MAGNET, + .price = 100, + .holdEffect = HOLD_EFFECT_ELECTRIC_POWER, + .holdEffectParam = 10, + .description = gMagnetItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MYSTIC WATER"), + .itemId = ITEM_MYSTIC_WATER, + .price = 100, + .holdEffect = HOLD_EFFECT_WATER_POWER, + .holdEffectParam = 10, + .description = gMysticWaterItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SHARP BEAK"), + .itemId = ITEM_SHARP_BEAK, + .price = 100, + .holdEffect = HOLD_EFFECT_FLYING_POWER, + .holdEffectParam = 10, + .description = gSharpBeakItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("POISON BARB"), + .itemId = ITEM_POISON_BARB, + .price = 100, + .holdEffect = HOLD_EFFECT_POISON_POWER, + .holdEffectParam = 10, + .description = gPoisonBarbItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NEVERMELTICE"), + .itemId = ITEM_NEVER_MELT_ICE, + .price = 100, + .holdEffect = HOLD_EFFECT_ICE_POWER, + .holdEffectParam = 10, + .description = gNeverMeltIceItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SPELL TAG"), + .itemId = ITEM_SPELL_TAG, + .price = 100, + .holdEffect = HOLD_EFFECT_GHOST_POWER, + .holdEffectParam = 10, + .description = gSpellTagItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TWISTEDSPOON"), + .itemId = ITEM_TWISTED_SPOON, + .price = 100, + .holdEffect = HOLD_EFFECT_PSYCHIC_POWER, + .holdEffectParam = 10, + .description = gTwistedSpoonItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CHARCOAL"), + .itemId = ITEM_CHARCOAL, + .price = 9800, + .holdEffect = HOLD_EFFECT_FIRE_POWER, + .holdEffectParam = 10, + .description = gCharcoalItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DRAGON FANG"), + .itemId = ITEM_DRAGON_FANG, + .price = 100, + .holdEffect = HOLD_EFFECT_DRAGON_POWER, + .holdEffectParam = 10, + .description = gDragonFangItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SILK SCARF"), + .itemId = ITEM_SILK_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NORMAL_POWER, + .holdEffectParam = 10, + .description = gSilkScarfItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("UP-GRADE"), + .itemId = ITEM_UP_GRADE, + .price = 2100, + .holdEffect = HOLD_EFFECT_UP_GRADE, + .holdEffectParam = 0, + .description = gUpGradeItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SHELL BELL"), + .itemId = ITEM_SHELL_BELL, + .price = 200, + .holdEffect = HOLD_EFFECT_SHELL_BELL, + .holdEffectParam = 8, + .description = gShellBellItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SEA INCENSE"), + .itemId = ITEM_SEA_INCENSE, + .price = 9600, + .holdEffect = HOLD_EFFECT_WATER_POWER, + .holdEffectParam = 5, + .description = gSeaIncenseItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LAX INCENSE"), + .itemId = ITEM_LAX_INCENSE, + .price = 9600, + .holdEffect = HOLD_EFFECT_EVASION_UP, + .holdEffectParam = 5, + .description = gLaxIncenseItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LUCKY PUNCH"), + .itemId = ITEM_LUCKY_PUNCH, + .price = 10, + .holdEffect = HOLD_EFFECT_LUCKY_PUNCH, + .holdEffectParam = 0, + .description = gLuckyPunchItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("METAL POWDER"), + .itemId = ITEM_METAL_POWDER, + .price = 10, + .holdEffect = HOLD_EFFECT_METAL_POWDER, + .holdEffectParam = 0, + .description = gMetalPowderItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("THICK CLUB"), + .itemId = ITEM_THICK_CLUB, + .price = 500, + .holdEffect = HOLD_EFFECT_THICK_CLUB, + .holdEffectParam = 0, + .description = gThickClubItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STICK"), + .itemId = ITEM_STICK, + .price = 200, + .holdEffect = HOLD_EFFECT_STICK, + .holdEffectParam = 0, + .description = gStickItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RED SCARF"), + .itemId = ITEM_RED_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRedScarfItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLUE SCARF"), + .itemId = ITEM_BLUE_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBlueScarfItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PINK SCARF"), + .itemId = ITEM_PINK_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPinkScarfItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GREEN SCARF"), + .itemId = ITEM_GREEN_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gGreenScarfItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("YELLOW SCARF"), + .itemId = ITEM_YELLOW_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gYellowScarfItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Key items + + { + .name = _("MACH BIKE"), + .itemId = ITEM_MACH_BIKE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gMachBikeItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Bike, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("COIN CASE"), + .itemId = ITEM_COIN_CASE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gCoinCaseItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CoinCase, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ITEMFINDER"), + .itemId = ITEM_ITEMFINDER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemfinderItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Itemfinder, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("OLD ROD"), + .itemId = ITEM_OLD_ROD, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gOldRodItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Rod, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GOOD ROD"), + .itemId = ITEM_GOOD_ROD, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gGoodRodItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Rod, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("SUPER ROD"), + .itemId = ITEM_SUPER_ROD, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSuperRodItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Rod, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 2, + }, + { + .name = _("S.S. TICKET"), + .itemId = ITEM_SS_TICKET, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSSTicketItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CONTEST PASS"), + .itemId = ITEM_CONTEST_PASS, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gContestPassItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WAILMER PAIL"), + .itemId = ITEM_WAILMER_PAIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gWailmerPailItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_WailmerPail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEVON GOODS"), + .itemId = ITEM_DEVON_GOODS, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDevonGoodsItemDescription, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SOOT SACK"), + .itemId = ITEM_SOOT_SACK, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSootSackItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BASEMENT KEY"), + .itemId = ITEM_BASEMENT_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBasementKeyItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ACRO BIKE"), + .itemId = ITEM_ACRO_BIKE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gAcroBikeItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Bike, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("{POKEBLOCK} CASE"), + .itemId = ITEM_POKEBLOCK_CASE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPokeblockCaseItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 3, + .fieldUseFunc = ItemUseOutOfBattle_PokeblockCase, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LETTER"), + .itemId = ITEM_LETTER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gLetterItemDescription, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EON TICKET"), + .itemId = ITEM_EON_TICKET, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gEonTicketItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("RED ORB"), + .itemId = ITEM_RED_ORB, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRedOrbItemDescription, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLUE ORB"), + .itemId = ITEM_BLUE_ORB, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBlueOrbItemDescription, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCANNER"), + .itemId = ITEM_SCANNER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gScannerItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GO-GOGGLES"), + .itemId = ITEM_GO_GOGGLES, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gGoGogglesItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("METEORITE"), + .itemId = ITEM_METEORITE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gMeteoriteItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RM. 1 KEY"), + .itemId = ITEM_ROOM_1_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRoom1KeyItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RM. 2 KEY"), + .itemId = ITEM_ROOM_2_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRoom2KeyItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RM. 4 KEY"), + .itemId = ITEM_ROOM_4_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRoom4KeyItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RM. 6 KEY"), + .itemId = ITEM_ROOM_6_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRoom6KeyItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STORAGE KEY"), + .itemId = ITEM_STORAGE_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gStorageKeyItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ROOT FOSSIL"), + .itemId = ITEM_ROOT_FOSSIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRootFossilItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CLAW FOSSIL"), + .itemId = ITEM_CLAW_FOSSIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gClawFossilItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEVON SCOPE"), + .itemId = ITEM_DEVON_SCOPE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDevonScopeItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//TMs/HMs + + { + .name = _("TM01"), + .itemId = ITEM_TM01_FOCUS_PUNCH, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM01ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM02"), + .itemId = ITEM_TM02_DRAGON_CLAW, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM02ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM03"), + .itemId = ITEM_TM03_WATER_PULSE, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM03ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM04"), + .itemId = ITEM_TM04_CALM_MIND, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM04ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM05"), + .itemId = ITEM_TM05_ROAR, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM05ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM06"), + .itemId = ITEM_TM06_TOXIC, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM06ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM07"), + .itemId = ITEM_TM07_HAIL, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM07ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM08"), + .itemId = ITEM_TM08_BULK_UP, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM08ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM09"), + .itemId = ITEM_TM09_BULLET_SEED, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM09ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM10"), + .itemId = ITEM_TM10_HIDDEN_POWER, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM10ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM11"), + .itemId = ITEM_TM11_SUNNY_DAY, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM11ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM12"), + .itemId = ITEM_TM12_TAUNT, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM12ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM13"), + .itemId = ITEM_TM13_ICE_BEAM, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM13ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM14"), + .itemId = ITEM_TM14_BLIZZARD, + .price = 5500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM14ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM15"), + .itemId = ITEM_TM15_HYPER_BEAM, + .price = 7500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM15ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM16"), + .itemId = ITEM_TM16_LIGHT_SCREEN, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM16ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM17"), + .itemId = ITEM_TM17_PROTECT, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM17ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM18"), + .itemId = ITEM_TM18_RAIN_DANCE, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM18ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM19"), + .itemId = ITEM_TM19_GIGA_DRAIN, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM19ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM20"), + .itemId = ITEM_TM20_SAFEGUARD, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM20ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM21"), + .itemId = ITEM_TM21_FRUSTRATION, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM21ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM22"), + .itemId = ITEM_TM22_SOLARBEAM, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM22ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM23"), + .itemId = ITEM_TM23_IRON_TAIL, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM23ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM24"), + .itemId = ITEM_TM24_THUNDERBOLT, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM24ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM25"), + .itemId = ITEM_TM25_THUNDER, + .price = 5500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM25ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM26"), + .itemId = ITEM_TM26_EARTHQUAKE, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM26ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM27"), + .itemId = ITEM_TM27_RETURN, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM27ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM28"), + .itemId = ITEM_TM28_DIG, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM28ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM29"), + .itemId = ITEM_TM29_PSYCHIC, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM29ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM30"), + .itemId = ITEM_TM30_SHADOW_BALL, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM30ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM31"), + .itemId = ITEM_TM31_BRICK_BREAK, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM31ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM32"), + .itemId = ITEM_TM32_DOUBLE_TEAM, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM32ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM33"), + .itemId = ITEM_TM33_REFLECT, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM33ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM34"), + .itemId = ITEM_TM34_SHOCK_WAVE, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM34ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM35"), + .itemId = ITEM_TM35_FLAMETHROWER, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM35ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM36"), + .itemId = ITEM_TM36_SLUDGE_BOMB, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM36ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM37"), + .itemId = ITEM_TM37_SANDSTORM, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM37ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM38"), + .itemId = ITEM_TM38_FIRE_BLAST, + .price = 5500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM38ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM39"), + .itemId = ITEM_TM39_ROCK_TOMB, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM39ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM40"), + .itemId = ITEM_TM40_AERIAL_ACE, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM40ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM41"), + .itemId = ITEM_TM41_TORMENT, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM41ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM42"), + .itemId = ITEM_TM42_FACADE, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM42ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM43"), + .itemId = ITEM_TM43_SECRET_POWER, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM43ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM44"), + .itemId = ITEM_TM44_REST, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM44ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM45"), + .itemId = ITEM_TM45_ATTRACT, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM45ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM46"), + .itemId = ITEM_TM46_THIEF, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM46ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM47"), + .itemId = ITEM_TM47_STEEL_WING, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM47ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM48"), + .itemId = ITEM_TM48_SKILL_SWAP, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM48ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM49"), + .itemId = ITEM_TM49_SNATCH, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM49ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM50"), + .itemId = ITEM_TM50_OVERHEAT, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTM50ItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM01"), + .itemId = ITEM_HM01_CUT, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHM01ItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM02"), + .itemId = ITEM_HM02_FLY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHM02ItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM03"), + .itemId = ITEM_HM03_SURF, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHM03ItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM04"), + .itemId = ITEM_HM04_STRENGTH, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHM04ItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM05"), + .itemId = ITEM_HM05_FLASH, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHM05ItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM06"), + .itemId = ITEM_HM06_ROCK_SMASH, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHM06ItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM07"), + .itemId = ITEM_HM07_WATERFALL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHM07ItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM08"), + .itemId = ITEM_HM08_DIVE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHM08ItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDummyItemDescription, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//FireRed/LeafGreen key items + + { + .name = _("OAK’S PARCEL"), + .itemId = ITEM_OAKS_PARCEL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gOaksParcelItemDescription, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("POKé FLUTE"), + .itemId = ITEM_POKE_FLUTE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPokeFluteItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SECRET KEY"), + .itemId = ITEM_SECRET_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSecretKeyItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BIKE VOUCHER"), + .itemId = ITEM_BIKE_VOUCHER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBikeVoucherItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GOLD TEETH"), + .itemId = ITEM_GOLD_TEETH, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gGoldTeethItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("OLD AMBER"), + .itemId = ITEM_OLD_AMBER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gOldAmberItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CARD KEY"), + .itemId = ITEM_CARD_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gCardKeyItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LIFT KEY"), + .itemId = ITEM_LIFT_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gLiftKeyItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HELIX FOSSIL"), + .itemId = ITEM_HELIX_FOSSIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gHelixFossilItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DOME FOSSIL"), + .itemId = ITEM_DOME_FOSSIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gDomeFossilItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SILPH SCOPE"), + .itemId = ITEM_SILPH_SCOPE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSilphScopeItemDescription, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BICYCLE"), + .itemId = ITEM_BICYCLE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBicycleItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TOWN MAP"), + .itemId = ITEM_TOWN_MAP, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTownMapItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("VS SEEKER"), + .itemId = ITEM_VS_SEEKER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gVSSeekerItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("FAME CHECKER"), + .itemId = ITEM_FAME_CHECKER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gFameCheckerItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM CASE"), + .itemId = ITEM_TM_CASE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTMCaseItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BERRY POUCH"), + .itemId = ITEM_BERRY_POUCH, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gBerryPouchItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TEACHY TV"), + .itemId = ITEM_TEACHY_TV, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTeachyTVItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TRI-PASS"), + .itemId = ITEM_TRI_PASS, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTriPassItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RAINBOW PASS"), + .itemId = ITEM_RAINBOW_PASS, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRainbowPassItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TEA"), + .itemId = ITEM_TEA, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gTeaItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MYSTICTICKET"), + .itemId = ITEM_MYSTIC_TICKET, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gMysticTicketItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("AURORATICKET"), + .itemId = ITEM_AURORA_TICKET, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gAuroraTicketItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("POWDER JAR"), + .itemId = ITEM_POWDER_JAR, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gPowderJarItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_PowderJar, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RUBY"), + .itemId = ITEM_RUBY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gRubyItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SAPPHIRE"), + .itemId = ITEM_SAPPHIRE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gSapphireItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + +//Emerald-specific key items + + { + .name = _("MAGMA EMBLEM"), + .itemId = ITEM_MAGMA_EMBLEM, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gMagmaEmblemItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("OLD SEA MAP"), + .itemId = ITEM_OLD_SEA_MAP, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gOldSeaMapItemDescription, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, +}; diff --git a/src/data/pokedex_orders.h b/src/data/pokedex_orders.h new file mode 100644 index 000000000..61fbd289c --- /dev/null +++ b/src/data/pokedex_orders.h @@ -0,0 +1,1199 @@ +#ifndef GUARD_DATA_POKEDEX_ORDERS +#define GUARD_DATA_POKEDEX_ORDERS + +const u16 gPokedexOrder_Alphabetical[] = +{ + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 63, // Abra + 359, // Absol + 142, // Aerodactyl + 306, // Aggron + 190, // Aipom + 65, // Alakazam + 334, // Altaria + 181, // Ampharos + 347, // Anorith + 24, // Arbok + 59, // Arcanine + 168, // Ariados + 348, // Armaldo + 304, // Aron + 144, // Articuno + 184, // Azumarill + 298, // Azurill + 371, // Bagon + 343, // Baltoy + 354, // Banette + 339, // Barboach + 153, // Bayleef + 267, // Beautifly + 15, // Beedrill + 374, // Beldum + 182, // Bellossom + 69, // Bellsprout + 9, // Blastoise + 257, // Blaziken + 242, // Blissey + 286, // Breloom + 1, // Bulbasaur + 12, // Butterfree + 331, // Cacnea + 332, // Cacturne + 323, // Camerupt + 318, // Carvanha + 268, // Cascoon + 351, // Castform + 10, // Caterpie + 251, // Celebi + 113, // Chansey + 6, // Charizard + 4, // Charmander + 5, // Charmeleon + 152, // Chikorita + 358, // Chimecho + 170, // Chinchou + 366, // Clamperl + 344, // Claydol + 36, // Clefable + 35, // Clefairy + 173, // Cleffa + 91, // Cloyster + 256, // Combusken + 341, // Corphish + 222, // Corsola + 346, // Cradily + 342, // Crawdaunt + 169, // Crobat + 159, // Croconaw + 104, // Cubone + 155, // Cyndaquil + 301, // Delcatty + 225, // Delibird + 386, // Deoxys + 87, // Dewgong + 50, // Diglett + 132, // Ditto + 85, // Dodrio + 84, // Doduo + 232, // Donphan + 148, // Dragonair + 149, // Dragonite + 147, // Dratini + 96, // Drowzee + 51, // Dugtrio + 206, // Dunsparce + 356, // Dusclops + 355, // Duskull + 269, // Dustox + 133, // Eevee + 23, // Ekans + 125, // Electabuzz + 309, // Electrike + 101, // Electrode + 239, // Elekid + 244, // Entei + 196, // Espeon + 102, // Exeggcute + 103, // Exeggutor + 295, // Exploud + 83, // Farfetch'd + 22, // Fearow + 349, // Feebas + 160, // Feraligatr + 180, // Flaaffy + 136, // Flareon + 330, // Flygon + 205, // Forretress + 162, // Furret + 282, // Gardevoir + 92, // Gastly + 94, // Gengar + 74, // Geodude + 203, // Girafarig + 362, // Glalie + 207, // Gligar + 44, // Gloom + 42, // Golbat + 118, // Goldeen + 55, // Golduck + 76, // Golem + 368, // Gorebyss + 210, // Granbull + 75, // Graveler + 88, // Grimer + 383, // Groudon + 253, // Grovyle + 58, // Growlithe + 326, // Grumpig + 316, // Gulpin + 130, // Gyarados + 297, // Hariyama + 93, // Haunter + 214, // Heracross + 107, // Hitmonchan + 106, // Hitmonlee + 237, // Hitmontop + 250, // Ho-Oh + 163, // Hoothoot + 187, // Hoppip + 116, // Horsea + 229, // Houndoom + 228, // Houndour + 367, // Huntail + 97, // Hypno + 174, // Igglybuff + 314, // Illumise + 2, // Ivysaur + 39, // Jigglypuff + 385, // Jirachi + 135, // Jolteon + 189, // Jumpluff + 124, // Jynx + 140, // Kabuto + 141, // Kabutops + 64, // Kadabra + 14, // Kakuna + 115, // Kangaskhan + 352, // Kecleon + 230, // Kingdra + 99, // Kingler + 281, // Kirlia + 109, // Koffing + 98, // Krabby + 382, // Kyogre + 305, // Lairon + 171, // Lanturn + 131, // Lapras + 246, // Larvitar + 380, // Latias + 381, // Latios + 166, // Ledian + 165, // Ledyba + 108, // Lickitung + 345, // Lileep + 264, // Linoone + 271, // Lombre + 270, // Lotad + 294, // Loudred + 272, // Ludicolo + 249, // Lugia + 337, // Lunatone + 370, // Luvdisc + 68, // Machamp + 67, // Machoke + 66, // Machop + 240, // Magby + 219, // Magcargo + 129, // Magikarp + 126, // Magmar + 81, // Magnemite + 82, // Magneton + 296, // Makuhita + 310, // Manectric + 56, // Mankey + 226, // Mantine + 179, // Mareep + 183, // Marill + 105, // Marowak + 259, // Marshtomp + 284, // Masquerain + 303, // Mawile + 308, // Medicham + 307, // Meditite + 154, // Meganium + 52, // Meowth + 376, // Metagross + 375, // Metang + 11, // Metapod + 151, // Mew + 150, // Mewtwo + 262, // Mightyena + 350, // Milotic + 241, // Miltank + 312, // Minun + 200, // Misdreavus + 146, // Moltres + 122, // Mr. mime + 258, // Mudkip + 89, // Muk + 198, // Murkrow + 177, // Natu + 34, // Nidoking + 31, // Nidoqueen + 29, // Nidoran? + 32, // Nidoran? + 30, // Nidorina + 33, // Nidorino + 290, // Nincada + 38, // Ninetales + 291, // Ninjask + 164, // Noctowl + 299, // Nosepass + 322, // Numel + 274, // Nuzleaf + 224, // Octillery + 43, // Oddish + 138, // Omanyte + 139, // Omastar + 95, // Onix + 46, // Paras + 47, // Parasect + 279, // Pelipper + 53, // Persian + 231, // Phanpy + 172, // Pichu + 18, // Pidgeot + 17, // Pidgeotto + 16, // Pidgey + 25, // Pikachu + 221, // Piloswine + 204, // Pineco + 127, // Pinsir + 311, // Plusle + 186, // Politoed + 60, // Poliwag + 61, // Poliwhirl + 62, // Poliwrath + 77, // Ponyta + 261, // Poochyena + 137, // Porygon + 233, // Porygon2 + 57, // Primeape + 54, // Psyduck + 247, // Pupitar + 195, // Quagsire + 156, // Quilava + 211, // Qwilfish + 26, // Raichu + 243, // Raikou + 280, // Ralts + 78, // Rapidash + 20, // Raticate + 19, // Rattata + 384, // Rayquaza + 378, // Regice + 377, // Regirock + 379, // Registeel + 369, // Relicanth + 223, // Remoraid + 112, // Rhydon + 111, // Rhyhorn + 315, // Roselia + 302, // Sableye + 373, // Salamence + 27, // Sandshrew + 28, // Sandslash + 254, // Sceptile + 212, // Scizor + 123, // Scyther + 117, // Seadra + 119, // Seaking + 364, // Sealeo + 273, // Seedot + 86, // Seel + 161, // Sentret + 336, // Seviper + 319, // Sharpedo + 292, // Shedinja + 372, // Shelgon + 90, // Shellder + 275, // Shiftry + 285, // Shroomish + 213, // Shuckle + 353, // Shuppet + 266, // Silcoon + 227, // Skarmory + 188, // Skiploom + 300, // Skitty + 289, // Slaking + 287, // Slakoth + 80, // Slowbro + 199, // Slowking + 79, // Slowpoke + 218, // Slugma + 235, // Smeargle + 238, // Smoochum + 215, // Sneasel + 143, // Snorlax + 361, // Snorunt + 209, // Snubbull + 338, // Solrock + 21, // Spearow + 363, // Spheal + 167, // Spinarak + 327, // Spinda + 325, // Spoink + 7, // Squirtle + 234, // Stantler + 121, // Starmie + 120, // Staryu + 208, // Steelix + 185, // Sudowoodo + 245, // Suicune + 192, // Sunflora + 191, // Sunkern + 283, // Surskit + 333, // Swablu + 317, // Swalot + 260, // Swampert + 277, // Swellow + 220, // Swinub + 276, // Taillow + 114, // Tangela + 128, // Tauros + 216, // Teddiursa + 72, // Tentacool + 73, // Tentacruel + 175, // Togepi + 176, // Togetic + 255, // Torchic + 324, // Torkoal + 158, // Totodile + 328, // Trapinch + 252, // Treecko + 357, // Tropius + 157, // Typhlosion + 248, // Tyranitar + 236, // Tyrogue + 197, // Umbreon + 201, // Unown + 217, // Ursaring + 134, // Vaporeon + 49, // Venomoth + 48, // Venonat + 3, // Venusaur + 329, // Vibrava + 71, // Victreebel + 288, // Vigoroth + 45, // Vileplume + 313, // Volbeat + 100, // Voltorb + 37, // Vulpix + 320, // Wailmer + 321, // Wailord + 365, // Walrein + 8, // Wartortle + 13, // Weedle + 70, // Weepinbell + 110, // Weezing + 340, // Whiscash + 293, // Whismur + 40, // Wigglytuff + 278, // Wingull + 202, // Wobbuffet + 194, // Wooper + 265, // Wurmple + 360, // Wynaut + 178, // Xatu + 193, // Yanma + 335, // Zangoose + 145, // Zapdos + 263, // Zigzagoon + 41, // Zubat +}; + +const u16 gPokedexOrder_Weight[] = +{ + 92, // Gastly + 93, // Haunter + 187, // Hoppip + 50, // Diglett + 351, // Castform + 109, // Koffing + 174, // Igglybuff + 200, // Misdreavus + 358, // Chimecho + 188, // Skiploom + 385, // Jirachi + 333, // Swablu + 292, // Shedinja + 175, // Togepi + 283, // Surskit + 16, // Pidgey + 191, // Sunkern + 339, // Barboach + 172, // Pichu + 298, // Azurill + 315, // Roselia + 177, // Natu + 21, // Spearow + 198, // Murkrow + 353, // Shuppet + 276, // Taillow + 102, // Exeggcute + 255, // Torchic + 270, // Lotad + 10, // Caterpie + 189, // Jumpluff + 173, // Cleffa + 13, // Weedle + 176, // Togetic + 147, // Dratini + 19, // Rattata + 284, // Masquerain + 265, // Wurmple + 211, // Qwilfish + 151, // Mew + 90, // Shellder + 273, // Seedot + 132, // Ditto + 69, // Bellsprout + 311, // Plusle + 52, // Meowth + 312, // Minun + 285, // Shroomish + 251, // Celebi + 222, // Corsola + 252, // Treecko + 327, // Spinda + 201, // Unown + 46, // Paras + 43, // Oddish + 39, // Jigglypuff + 290, // Nincada + 182, // Bellossom + 81, // Magnemite + 25, // Pikachu + 238, // Smoochum + 161, // Sentret + 70, // Weepinbell + 152, // Chikorita + 220, // Swinub + 133, // Eevee + 98, // Krabby + 104, // Cubone + 280, // Ralts + 1, // Bulbasaur + 23, // Ekans + 29, // Nidoran? + 204, // Pineco + 349, // Feebas + 138, // Omanyte + 41, // Zubat + 35, // Clefairy + 258, // Mudkip + 209, // Snubbull + 179, // Mareep + 155, // Cyndaquil + 116, // Horsea + 4, // Charmander + 192, // Sunflora + 183, // Marill + 194, // Wooper + 167, // Spinarak + 44, // Gloom + 370, // Luvdisc + 216, // Teddiursa + 32, // Nidoran? + 7, // Squirtle + 278, // Wingull + 158, // Totodile + 110, // Weezing + 37, // Vulpix + 11, // Metapod + 266, // Silcoon + 129, // Magikarp + 14, // Kakuna + 316, // Gulpin + 100, // Voltorb + 165, // Ledyba + 228, // Houndour + 300, // Skitty + 302, // Sableye + 307, // Meditite + 341, // Corphish + 190, // Aipom + 268, // Cascoon + 303, // Mawile + 140, // Kabuto + 40, // Wigglytuff + 27, // Sandshrew + 223, // Remoraid + 291, // Ninjask + 170, // Chinchou + 60, // Poliwag + 347, // Anorith + 49, // Venomoth + 354, // Banette + 2, // Ivysaur + 180, // Flaaffy + 261, // Poochyena + 360, // Wynaut + 206, // Dunsparce + 178, // Xatu + 355, // Duskull + 83, // Farfetch'd + 328, // Trapinch + 118, // Goldeen + 309, // Electrike + 329, // Vibrava + 71, // Victreebel + 153, // Bayleef + 225, // Delibird + 293, // Whismur + 148, // Dragonair + 361, // Snorunt + 263, // Zigzagoon + 314, // Illumise + 313, // Volbeat + 20, // Raticate + 45, // Vileplume + 156, // Quilava + 5, // Charmeleon + 58, // Growlithe + 256, // Combusken + 66, // Machop + 63, // Abra + 33, // Nidorino + 54, // Psyduck + 277, // Swellow + 38, // Ninetales + 30, // Nidorina + 61, // Poliwhirl + 74, // Geodude + 281, // Kirlia + 213, // Shuckle + 334, // Altaria + 318, // Carvanha + 236, // Tyrogue + 163, // Hoothoot + 240, // Magby + 343, // Baltoy + 253, // Grovyle + 352, // Kecleon + 171, // Lanturn + 8, // Wartortle + 368, // Gorebyss + 369, // Relicanth + 239, // Elekid + 340, // Whiscash + 345, // Lileep + 322, // Numel + 287, // Slakoth + 135, // Jolteon + 159, // Croconaw + 136, // Flareon + 117, // Seadra + 196, // Espeon + 367, // Huntail + 197, // Umbreon + 259, // Marshtomp + 274, // Nuzleaf + 215, // Sneasel + 56, // Mankey + 279, // Pelipper + 267, // Beautifly + 224, // Octillery + 184, // Azumarill + 202, // Wobbuffet + 134, // Vaporeon + 28, // Sandslash + 47, // Parasect + 15, // Beedrill + 89, // Muk + 17, // Pidgeotto + 88, // Grimer + 26, // Raichu + 77, // Ponyta + 125, // Electabuzz + 48, // Venonat + 325, // Spoink + 356, // Dusclops + 308, // Medicham + 269, // Dustox + 53, // Persian + 12, // Butterfree + 57, // Primeape + 96, // Drowzee + 162, // Furret + 233, // Porygon2 + 271, // Lombre + 264, // Linoone + 301, // Delcatty + 342, // Crawdaunt + 51, // Dugtrio + 168, // Ariados + 231, // Phanpy + 186, // Politoed + 120, // Staryu + 113, // Chansey + 139, // Omastar + 114, // Tangela + 218, // Slugma + 229, // Houndoom + 166, // Ledian + 79, // Slowpoke + 137, // Porygon + 262, // Mightyena + 193, // Yanma + 22, // Fearow + 185, // Sudowoodo + 119, // Seaking + 286, // Breloom + 84, // Doduo + 18, // Pidgeot + 363, // Spheal + 36, // Clefable + 380, // Latias + 310, // Manectric + 335, // Zangoose + 141, // Kabutops + 94, // Gengar + 294, // Loudred + 124, // Jynx + 164, // Noctowl + 203, // Girafarig + 371, // Bagon + 126, // Magmar + 105, // Marowak + 72, // Tentacool + 288, // Vigoroth + 242, // Blissey + 359, // Absol + 65, // Alakazam + 237, // Hitmontop + 282, // Gardevoir + 210, // Granbull + 106, // Hitmonlee + 107, // Hitmonchan + 227, // Skarmory + 331, // Cacnea + 257, // Blaziken + 254, // Sceptile + 336, // Seviper + 366, // Clamperl + 145, // Zapdos + 214, // Heracross + 62, // Poliwrath + 122, // Mr. mime + 127, // Pinsir + 272, // Ludicolo + 73, // Tentacruel + 42, // Golbat + 219, // Magcargo + 144, // Articuno + 221, // Piloswine + 123, // Scyther + 64, // Kadabra + 235, // Smeargle + 142, // Aerodactyl + 275, // Shiftry + 99, // Kingler + 31, // Nidoqueen + 82, // Magneton + 304, // Aron + 381, // Latios + 146, // Moltres + 346, // Cradily + 386, // Deoxys + 181, // Ampharos + 34, // Nidoking + 207, // Gligar + 24, // Arbok + 108, // Lickitung + 101, // Electrode + 348, // Armaldo + 67, // Machoke + 234, // Stantler + 326, // Grumpig + 246, // Larvitar + 169, // Crobat + 195, // Quagsire + 241, // Miltank + 97, // Hypno + 55, // Golduck + 332, // Cacturne + 80, // Slowbro + 157, // Typhlosion + 199, // Slowking + 115, // Kangaskhan + 121, // Starmie + 317, // Swalot + 324, // Torkoal + 260, // Swampert + 330, // Flygon + 295, // Exploud + 85, // Dodrio + 9, // Blastoise + 296, // Makuhita + 364, // Sealeo + 128, // Tauros + 319, // Sharpedo + 160, // Feraligatr + 86, // Seel + 6, // Charizard + 78, // Rapidash + 374, // Beldum + 299, // Nosepass + 3, // Venusaur + 357, // Tropius + 154, // Meganium + 373, // Salamence + 75, // Graveler + 344, // Claydol + 372, // Shelgon + 111, // Rhyhorn + 212, // Scizor + 87, // Dewgong + 112, // Rhydon + 232, // Donphan + 103, // Exeggutor + 305, // Lairon + 150, // Mewtwo + 217, // Ursaring + 205, // Forretress + 68, // Machamp + 320, // Wailmer + 289, // Slaking + 91, // Cloyster + 365, // Walrein + 247, // Pupitar + 230, // Kingdra + 338, // Solrock + 59, // Arcanine + 350, // Milotic + 337, // Lunatone + 378, // Regice + 243, // Raikou + 245, // Suicune + 244, // Entei + 250, // Ho-Oh + 248, // Tyranitar + 375, // Metang + 379, // Registeel + 384, // Rayquaza + 95, // Onix + 149, // Dragonite + 249, // Lugia + 131, // Lapras + 323, // Camerupt + 226, // Mantine + 377, // Regirock + 130, // Gyarados + 297, // Hariyama + 362, // Glalie + 76, // Golem + 382, // Kyogre + 306, // Aggron + 321, // Wailord + 208, // Steelix + 143, // Snorlax + 376, // Metagross + 383, // Groudon +}; + +const u16 gPokedexOrder_Height[] = +{ + 50, // Diglett + 298, // Azurill + 177, // Natu + 13, // Weedle + 172, // Pichu + 173, // Cleffa + 175, // Togepi + 351, // Castform + 174, // Igglybuff + 10, // Caterpie + 276, // Taillow + 132, // Ditto + 133, // Eevee + 315, // Roselia + 21, // Spearow + 16, // Pidgey + 191, // Sunkern + 90, // Shellder + 19, // Rattata + 81, // Magnemite + 46, // Paras + 265, // Wurmple + 385, // Jirachi + 104, // Cubone + 258, // Mudkip + 194, // Wooper + 116, // Horsea + 52, // Meowth + 29, // Nidoran? + 220, // Swinub + 151, // Mew + 333, // Swablu + 304, // Aron + 311, // Plusle + 312, // Minun + 102, // Exeggcute + 25, // Pikachu + 182, // Bellossom + 316, // Gulpin + 263, // Zigzagoon + 285, // Shroomish + 138, // Omanyte + 331, // Cacnea + 98, // Krabby + 280, // Ralts + 187, // Hoppip + 255, // Torchic + 366, // Clamperl + 74, // Geodude + 183, // Marill + 339, // Barboach + 238, // Smoochum + 100, // Voltorb + 290, // Nincada + 302, // Sableye + 198, // Murkrow + 211, // Qwilfish + 7, // Squirtle + 252, // Treecko + 343, // Baltoy + 43, // Oddish + 270, // Lotad + 39, // Jigglypuff + 283, // Surskit + 155, // Cyndaquil + 140, // Kabuto + 264, // Linoone + 324, // Torkoal + 32, // Nidoran? + 167, // Spinarak + 56, // Mankey + 273, // Seedot + 261, // Poochyena + 231, // Phanpy + 201, // Unown + 170, // Chinchou + 233, // Porygon2 + 60, // Poliwag + 371, // Bagon + 349, // Feebas + 353, // Shuppet + 158, // Totodile + 251, // Celebi + 360, // Wynaut + 27, // Sandshrew + 358, // Chimecho + 370, // Luvdisc + 228, // Houndour + 266, // Silcoon + 309, // Electrike + 4, // Charmander + 307, // Meditite + 278, // Wingull + 223, // Remoraid + 341, // Corphish + 222, // Corsola + 314, // Illumise + 209, // Snubbull + 37, // Vulpix + 246, // Larvitar + 374, // Beldum + 293, // Whismur + 204, // Pineco + 239, // Elekid + 35, // Clefairy + 213, // Shuckle + 216, // Teddiursa + 14, // Kakuna + 300, // Skitty + 176, // Togetic + 118, // Goldeen + 303, // Mawile + 179, // Mareep + 188, // Skiploom + 109, // Koffing + 51, // Dugtrio + 268, // Cascoon + 322, // Numel + 347, // Anorith + 313, // Volbeat + 163, // Hoothoot + 328, // Trapinch + 325, // Spoink + 11, // Metapod + 69, // Bellsprout + 361, // Snorunt + 20, // Raticate + 259, // Marshtomp + 277, // Swellow + 240, // Magby + 58, // Growlithe + 200, // Misdreavus + 1, // Bulbasaur + 236, // Tyrogue + 218, // Slugma + 287, // Slakoth + 281, // Kirlia + 190, // Aipom + 135, // Jolteon + 30, // Nidorina + 184, // Azumarill + 292, // Shedinja + 66, // Machop + 291, // Ninjask + 284, // Masquerain + 355, // Duskull + 192, // Sunflora + 189, // Jumpluff + 120, // Staryu + 180, // Flaaffy + 363, // Spheal + 54, // Psyduck + 219, // Magcargo + 83, // Farfetch'd + 41, // Zubat + 137, // Porygon + 161, // Sentret + 318, // Carvanha + 44, // Gloom + 26, // Raichu + 129, // Magikarp + 215, // Sneasel + 305, // Lairon + 256, // Combusken + 224, // Octillery + 33, // Nidorino + 136, // Flareon + 225, // Delibird + 72, // Tentacool + 63, // Abra + 253, // Grovyle + 340, // Whiscash + 156, // Quilava + 196, // Espeon + 88, // Grimer + 152, // Chikorita + 326, // Grumpig + 299, // Nosepass + 53, // Persian + 262, // Mightyena + 48, // Venonat + 82, // Magneton + 77, // Ponyta + 296, // Makuhita + 337, // Lunatone + 28, // Sandslash + 96, // Drowzee + 114, // Tangela + 57, // Primeape + 165, // Ledyba + 40, // Wigglytuff + 47, // Parasect + 139, // Omastar + 294, // Loudred + 8, // Wartortle + 75, // Graveler + 197, // Umbreon + 345, // Lileep + 61, // Poliwhirl + 134, // Vaporeon + 15, // Beedrill + 105, // Marowak + 70, // Weepinbell + 369, // Relicanth + 111, // Rhyhorn + 2, // Ivysaur + 352, // Kecleon + 274, // Nuzleaf + 267, // Beautifly + 17, // Pidgeotto + 168, // Ariados + 86, // Seel + 186, // Politoed + 159, // Croconaw + 113, // Chansey + 354, // Banette + 232, // Donphan + 121, // Starmie + 5, // Charmeleon + 221, // Piloswine + 12, // Butterfree + 329, // Vibrava + 125, // Electabuzz + 342, // Crawdaunt + 301, // Delcatty + 334, // Altaria + 372, // Shelgon + 38, // Ninetales + 207, // Gligar + 364, // Sealeo + 327, // Spinda + 247, // Pupitar + 79, // Slowpoke + 338, // Solrock + 241, // Miltank + 22, // Fearow + 45, // Vileplume + 89, // Muk + 205, // Forretress + 185, // Sudowoodo + 359, // Absol + 193, // Yanma + 269, // Dustox + 108, // Lickitung + 235, // Smeargle + 171, // Lanturn + 101, // Electrode + 271, // Lombre + 286, // Breloom + 153, // Bayleef + 117, // Seadra + 110, // Weezing + 279, // Pelipper + 375, // Metang + 31, // Nidoqueen + 332, // Cacturne + 275, // Shiftry + 308, // Medicham + 335, // Zangoose + 141, // Kabutops + 99, // Kingler + 64, // Kadabra + 119, // Seaking + 36, // Clefable + 126, // Magmar + 202, // Wobbuffet + 92, // Gastly + 122, // Mr. mime + 62, // Poliwrath + 128, // Tauros + 380, // Latias + 181, // Ampharos + 288, // Vigoroth + 166, // Ledian + 76, // Golem + 365, // Walrein + 84, // Doduo + 229, // Houndoom + 34, // Nidoking + 124, // Jynx + 107, // Hitmonchan + 234, // Stantler + 210, // Granbull + 237, // Hitmontop + 195, // Quagsire + 344, // Claydol + 260, // Swampert + 242, // Blissey + 272, // Ludicolo + 295, // Exploud + 206, // Dunsparce + 127, // Pinsir + 91, // Cloyster + 67, // Machoke + 203, // Girafarig + 18, // Pidgeot + 178, // Xatu + 346, // Cradily + 106, // Hitmonlee + 49, // Venomoth + 94, // Gengar + 214, // Heracross + 362, // Glalie + 123, // Scyther + 373, // Salamence + 310, // Manectric + 348, // Armaldo + 65, // Alakazam + 97, // Hypno + 164, // Noctowl + 73, // Tentacruel + 356, // Dusclops + 145, // Zapdos + 42, // Golbat + 376, // Metagross + 282, // Gardevoir + 9, // Blastoise + 80, // Slowbro + 93, // Haunter + 68, // Machamp + 377, // Regirock + 317, // Swalot + 254, // Sceptile + 227, // Skarmory + 55, // Golduck + 386, // Deoxys + 71, // Victreebel + 78, // Rapidash + 6, // Charizard + 367, // Huntail + 87, // Dewgong + 144, // Articuno + 157, // Typhlosion + 142, // Aerodactyl + 368, // Gorebyss + 217, // Ursaring + 154, // Meganium + 378, // Regice + 212, // Scizor + 230, // Kingdra + 147, // Dratini + 85, // Dodrio + 319, // Sharpedo + 169, // Crobat + 162, // Furret + 59, // Arcanine + 243, // Raikou + 257, // Blaziken + 323, // Camerupt + 112, // Rhydon + 379, // Registeel + 23, // Ekans + 330, // Flygon + 357, // Tropius + 381, // Latios + 245, // Suicune + 146, // Moltres + 3, // Venusaur + 103, // Exeggutor + 199, // Slowking + 248, // Tyranitar + 289, // Slaking + 320, // Wailmer + 150, // Mewtwo + 306, // Aggron + 143, // Snorlax + 226, // Mantine + 244, // Entei + 149, // Dragonite + 115, // Kangaskhan + 297, // Hariyama + 160, // Feraligatr + 131, // Lapras + 336, // Seviper + 24, // Arbok + 383, // Groudon + 250, // Ho-Oh + 148, // Dragonair + 382, // Kyogre + 249, // Lugia + 350, // Milotic + 130, // Gyarados + 384, // Rayquaza + 95, // Onix + 208, // Steelix + 321, // Wailord +}; + +#endif // GUARD_DATA_POKEDEX_ORDERS diff --git a/src/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h new file mode 100644 index 000000000..bc6572b46 --- /dev/null +++ b/src/data/pokemon/base_stats.h @@ -0,0 +1,13576 @@ +#ifndef GUARD_BASE_STATS_H +#define GUARD_BASE_STATS_H + +// Maximum value for a female pokemon is 254 (MON_FEMALE) which is 100% female. +// 255 (MON_GENDERLESS) is reserved for genderless pokemon. +#define PERCENT_FEMALE(percent) min(254, ((percent * 255) / 100)) + +const struct BaseStats gBaseStats[] = +{ + [SPECIES_NONE] = {0}, + + [SPECIES_BULBASAUR] = + { + .baseHP = 45, + .baseAttack = 49, + .baseDefense = 49, + .baseSpeed = 45, + .baseSpAttack = 65, + .baseSpDefense = 65, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 64, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_OVERGROW, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_IVYSAUR] = + { + .baseHP = 60, + .baseAttack = 62, + .baseDefense = 63, + .baseSpeed = 60, + .baseSpAttack = 80, + .baseSpDefense = 80, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 141, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_OVERGROW, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_VENUSAUR] = + { + .baseHP = 80, + .baseAttack = 82, + .baseDefense = 83, + .baseSpeed = 80, + .baseSpAttack = 100, + .baseSpDefense = 100, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 208, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_OVERGROW, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_CHARMANDER] = + { + .baseHP = 39, + .baseAttack = 52, + .baseDefense = 43, + .baseSpeed = 65, + .baseSpAttack = 60, + .baseSpDefense = 50, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 65, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_BLAZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_CHARMELEON] = + { + .baseHP = 58, + .baseAttack = 64, + .baseDefense = 58, + .baseSpeed = 80, + .baseSpAttack = 80, + .baseSpDefense = 65, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 142, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_BLAZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_CHARIZARD] = + { + .baseHP = 78, + .baseAttack = 84, + .baseDefense = 78, + .baseSpeed = 100, + .baseSpAttack = 109, + .baseSpDefense = 85, + .type1 = TYPE_FIRE, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 209, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_BLAZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_SQUIRTLE] = + { + .baseHP = 44, + .baseAttack = 48, + .baseDefense = 65, + .baseSpeed = 43, + .baseSpAttack = 50, + .baseSpDefense = 64, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 66, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_TORRENT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_WARTORTLE] = + { + .baseHP = 59, + .baseAttack = 63, + .baseDefense = 80, + .baseSpeed = 58, + .baseSpAttack = 65, + .baseSpDefense = 80, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 143, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_TORRENT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_BLASTOISE] = + { + .baseHP = 79, + .baseAttack = 83, + .baseDefense = 100, + .baseSpeed = 78, + .baseSpAttack = 85, + .baseSpDefense = 105, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 210, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_TORRENT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_CATERPIE] = + { + .baseHP = 45, + .baseAttack = 30, + .baseDefense = 35, + .baseSpeed = 45, + .baseSpAttack = 20, + .baseSpDefense = 20, + .type1 = TYPE_BUG, + .type2 = TYPE_BUG, + .catchRate = 255, + .expYield = 53, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SHIELD_DUST, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_METAPOD] = + { + .baseHP = 50, + .baseAttack = 20, + .baseDefense = 55, + .baseSpeed = 30, + .baseSpAttack = 25, + .baseSpDefense = 25, + .type1 = TYPE_BUG, + .type2 = TYPE_BUG, + .catchRate = 120, + .expYield = 72, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SHED_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_BUTTERFREE] = + { + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 50, + .baseSpeed = 70, + .baseSpAttack = 80, + .baseSpDefense = 80, + .type1 = TYPE_BUG, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 160, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_SILVER_POWDER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_COMPOUND_EYES, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_WEEDLE] = + { + .baseHP = 40, + .baseAttack = 35, + .baseDefense = 30, + .baseSpeed = 50, + .baseSpAttack = 20, + .baseSpDefense = 20, + .type1 = TYPE_BUG, + .type2 = TYPE_POISON, + .catchRate = 255, + .expYield = 52, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SHIELD_DUST, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_KAKUNA] = + { + .baseHP = 45, + .baseAttack = 25, + .baseDefense = 50, + .baseSpeed = 35, + .baseSpAttack = 25, + .baseSpDefense = 25, + .type1 = TYPE_BUG, + .type2 = TYPE_POISON, + .catchRate = 120, + .expYield = 71, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SHED_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_BEEDRILL] = + { + .baseHP = 65, + .baseAttack = 80, + .baseDefense = 40, + .baseSpeed = 75, + .baseSpAttack = 45, + .baseSpDefense = 80, + .type1 = TYPE_BUG, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 159, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_PIDGEY] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 56, + .baseSpAttack = 35, + .baseSpDefense = 35, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 255, + .expYield = 55, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_PIDGEOTTO] = + { + .baseHP = 63, + .baseAttack = 60, + .baseDefense = 55, + .baseSpeed = 71, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 120, + .expYield = 113, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_PIDGEOT] = + { + .baseHP = 83, + .baseAttack = 80, + .baseDefense = 75, + .baseSpeed = 91, + .baseSpAttack = 70, + .baseSpDefense = 70, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 172, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 3, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_RATTATA] = + { + .baseHP = 30, + .baseAttack = 56, + .baseDefense = 35, + .baseSpeed = 72, + .baseSpAttack = 25, + .baseSpDefense = 35, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 255, + .expYield = 57, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_GUTS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_RATICATE] = + { + .baseHP = 55, + .baseAttack = 81, + .baseDefense = 60, + .baseSpeed = 97, + .baseSpAttack = 50, + .baseSpDefense = 70, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 127, + .expYield = 116, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_GUTS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_SPEAROW] = + { + .baseHP = 40, + .baseAttack = 60, + .baseDefense = 30, + .baseSpeed = 70, + .baseSpAttack = 31, + .baseSpDefense = 31, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 255, + .expYield = 58, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_FEAROW] = + { + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 65, + .baseSpeed = 100, + .baseSpAttack = 61, + .baseSpDefense = 61, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 90, + .expYield = 162, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SHARP_BEAK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_EKANS] = + { + .baseHP = 35, + .baseAttack = 60, + .baseDefense = 44, + .baseSpeed = 55, + .baseSpAttack = 40, + .baseSpDefense = 54, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 255, + .expYield = 62, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_SHED_SKIN, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_ARBOK] = + { + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 69, + .baseSpeed = 80, + .baseSpAttack = 65, + .baseSpDefense = 79, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 90, + .expYield = 147, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_SHED_SKIN, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_PIKACHU] = + { + .baseHP = 35, + .baseAttack = 55, + .baseDefense = 30, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = 40, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 190, + .expYield = 82, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_ORAN_BERRY, + .item2 = ITEM_LIGHT_BALL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 6, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_RAICHU] = + { + .baseHP = 60, + .baseAttack = 90, + .baseDefense = 55, + .baseSpeed = 100, + .baseSpAttack = 90, + .baseSpDefense = 80, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 75, + .expYield = 122, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 3, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_ORAN_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_SANDSHREW] = + { + .baseHP = 50, + .baseAttack = 75, + .baseDefense = 85, + .baseSpeed = 40, + .baseSpAttack = 20, + .baseSpDefense = 30, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 255, + .expYield = 93, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SAND_VEIL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_SANDSLASH] = + { + .baseHP = 75, + .baseAttack = 100, + .baseDefense = 110, + .baseSpeed = 65, + .baseSpAttack = 45, + .baseSpDefense = 55, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 90, + .expYield = 163, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SAND_VEIL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_NIDORAN_F] = + { + .baseHP = 55, + .baseAttack = 47, + .baseDefense = 52, + .baseSpeed = 41, + .baseSpAttack = 40, + .baseSpDefense = 40, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 235, + .expYield = 59, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_POISON_POINT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_NIDORINA] = + { + .baseHP = 70, + .baseAttack = 62, + .baseDefense = 67, + .baseSpeed = 56, + .baseSpAttack = 55, + .baseSpDefense = 55, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 120, + .expYield = 117, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_POISON_POINT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_NIDOQUEEN] = + { + .baseHP = 90, + .baseAttack = 82, + .baseDefense = 87, + .baseSpeed = 76, + .baseSpAttack = 75, + .baseSpDefense = 85, + .type1 = TYPE_POISON, + .type2 = TYPE_GROUND, + .catchRate = 45, + .expYield = 194, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_POISON_POINT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_NIDORAN_M] = + { + .baseHP = 46, + .baseAttack = 57, + .baseDefense = 40, + .baseSpeed = 50, + .baseSpAttack = 40, + .baseSpDefense = 40, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 235, + .expYield = 60, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_POISON_POINT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_NIDORINO] = + { + .baseHP = 61, + .baseAttack = 72, + .baseDefense = 57, + .baseSpeed = 65, + .baseSpAttack = 55, + .baseSpDefense = 55, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 120, + .expYield = 118, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_POISON_POINT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_NIDOKING] = + { + .baseHP = 81, + .baseAttack = 92, + .baseDefense = 77, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 75, + .type1 = TYPE_POISON, + .type2 = TYPE_GROUND, + .catchRate = 45, + .expYield = 195, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_POISON_POINT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_CLEFAIRY] = + { + .baseHP = 70, + .baseAttack = 45, + .baseDefense = 48, + .baseSpeed = 35, + .baseSpAttack = 60, + .baseSpDefense = 65, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 150, + .expYield = 68, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_LEPPA_BERRY, + .item2 = ITEM_MOON_STONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_CUTE_CHARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_CLEFABLE] = + { + .baseHP = 95, + .baseAttack = 70, + .baseDefense = 73, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 90, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 25, + .expYield = 129, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_LEPPA_BERRY, + .item2 = ITEM_MOON_STONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_CUTE_CHARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_VULPIX] = + { + .baseHP = 38, + .baseAttack = 41, + .baseDefense = 40, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 65, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 190, + .expYield = 63, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_RAWST_BERRY, + .item2 = ITEM_RAWST_BERRY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_FLASH_FIRE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_NINETALES] = + { + .baseHP = 73, + .baseAttack = 76, + .baseDefense = 75, + .baseSpeed = 100, + .baseSpAttack = 81, + .baseSpDefense = 100, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 75, + .expYield = 178, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_RAWST_BERRY, + .item2 = ITEM_RAWST_BERRY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_FLASH_FIRE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_JIGGLYPUFF] = + { + .baseHP = 115, + .baseAttack = 45, + .baseDefense = 20, + .baseSpeed = 20, + .baseSpAttack = 45, + .baseSpDefense = 25, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 170, + .expYield = 76, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_CUTE_CHARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_WIGGLYTUFF] = + { + .baseHP = 140, + .baseAttack = 70, + .baseDefense = 45, + .baseSpeed = 45, + .baseSpAttack = 75, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 50, + .expYield = 109, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_CUTE_CHARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_ZUBAT] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 35, + .baseSpeed = 55, + .baseSpAttack = 30, + .baseSpDefense = 40, + .type1 = TYPE_POISON, + .type2 = TYPE_FLYING, + .catchRate = 255, + .expYield = 54, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_INNER_FOCUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_GOLBAT] = + { + .baseHP = 75, + .baseAttack = 80, + .baseDefense = 70, + .baseSpeed = 90, + .baseSpAttack = 65, + .baseSpDefense = 75, + .type1 = TYPE_POISON, + .type2 = TYPE_FLYING, + .catchRate = 90, + .expYield = 171, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_INNER_FOCUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_ODDISH] = + { + .baseHP = 45, + .baseAttack = 50, + .baseDefense = 55, + .baseSpeed = 30, + .baseSpAttack = 75, + .baseSpDefense = 65, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 255, + .expYield = 78, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 4, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_GLOOM] = + { + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 85, + .baseSpDefense = 75, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 120, + .expYield = 132, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 6, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_VILEPLUME] = + { + .baseHP = 75, + .baseAttack = 80, + .baseDefense = 85, + .baseSpeed = 50, + .baseSpAttack = 100, + .baseSpDefense = 90, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 184, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_PARAS] = + { + .baseHP = 35, + .baseAttack = 70, + .baseDefense = 55, + .baseSpeed = 25, + .baseSpAttack = 45, + .baseSpDefense = 55, + .type1 = TYPE_BUG, + .type2 = TYPE_GRASS, + .catchRate = 190, + .expYield = 70, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_TINY_MUSHROOM, + .item2 = ITEM_BIG_MUSHROOM, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_EFFECT_SPORE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_PARASECT] = + { + .baseHP = 60, + .baseAttack = 95, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 60, + .baseSpDefense = 80, + .type1 = TYPE_BUG, + .type2 = TYPE_GRASS, + .catchRate = 75, + .expYield = 128, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_TINY_MUSHROOM, + .item2 = ITEM_BIG_MUSHROOM, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_EFFECT_SPORE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_VENONAT] = + { + .baseHP = 60, + .baseAttack = 55, + .baseDefense = 50, + .baseSpeed = 45, + .baseSpAttack = 40, + .baseSpDefense = 55, + .type1 = TYPE_BUG, + .type2 = TYPE_POISON, + .catchRate = 190, + .expYield = 75, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_COMPOUND_EYES, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_VENOMOTH] = + { + .baseHP = 70, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 90, + .baseSpAttack = 90, + .baseSpDefense = 75, + .type1 = TYPE_BUG, + .type2 = TYPE_POISON, + .catchRate = 75, + .expYield = 138, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SHIELD_DUST, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_DIGLETT] = + { + .baseHP = 10, + .baseAttack = 55, + .baseDefense = 25, + .baseSpeed = 95, + .baseSpAttack = 35, + .baseSpDefense = 45, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 255, + .expYield = 81, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SAND_VEIL, + .ability2 = ABILITY_ARENA_TRAP, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_DUGTRIO] = + { + .baseHP = 35, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 120, + .baseSpAttack = 50, + .baseSpDefense = 70, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 50, + .expYield = 153, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SAND_VEIL, + .ability2 = ABILITY_ARENA_TRAP, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_MEOWTH] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 35, + .baseSpeed = 90, + .baseSpAttack = 40, + .baseSpDefense = 40, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 255, + .expYield = 69, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_PICKUP, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_PERSIAN] = + { + .baseHP = 65, + .baseAttack = 70, + .baseDefense = 60, + .baseSpeed = 115, + .baseSpAttack = 65, + .baseSpDefense = 65, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 90, + .expYield = 148, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_LIMBER, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_PSYDUCK] = + { + .baseHP = 50, + .baseAttack = 52, + .baseDefense = 48, + .baseSpeed = 55, + .baseSpAttack = 65, + .baseSpDefense = 50, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 190, + .expYield = 80, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_DAMP, + .ability2 = ABILITY_CLOUD_NINE, + .safariZoneFleeRate = 6, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_GOLDUCK] = + { + .baseHP = 80, + .baseAttack = 82, + .baseDefense = 78, + .baseSpeed = 85, + .baseSpAttack = 95, + .baseSpDefense = 80, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 75, + .expYield = 174, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_DAMP, + .ability2 = ABILITY_CLOUD_NINE, + .safariZoneFleeRate = 8, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_MANKEY] = + { + .baseHP = 40, + .baseAttack = 80, + .baseDefense = 35, + .baseSpeed = 70, + .baseSpAttack = 35, + .baseSpDefense = 45, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 190, + .expYield = 74, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_VITAL_SPIRIT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_PRIMEAPE] = + { + .baseHP = 65, + .baseAttack = 105, + .baseDefense = 60, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 75, + .expYield = 149, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_VITAL_SPIRIT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_GROWLITHE] = + { + .baseHP = 55, + .baseAttack = 70, + .baseDefense = 45, + .baseSpeed = 60, + .baseSpAttack = 70, + .baseSpDefense = 50, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 190, + .expYield = 91, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_RAWST_BERRY, + .item2 = ITEM_RAWST_BERRY, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_FLASH_FIRE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_ARCANINE] = + { + .baseHP = 90, + .baseAttack = 110, + .baseDefense = 80, + .baseSpeed = 95, + .baseSpAttack = 100, + .baseSpDefense = 80, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 75, + .expYield = 213, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_RAWST_BERRY, + .item2 = ITEM_RAWST_BERRY, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_FLASH_FIRE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_POLIWAG] = + { + .baseHP = 40, + .baseAttack = 50, + .baseDefense = 40, + .baseSpeed = 90, + .baseSpAttack = 40, + .baseSpDefense = 40, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 255, + .expYield = 77, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_WATER_ABSORB, + .ability2 = ABILITY_DAMP, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + }, + + [SPECIES_POLIWHIRL] = + { + .baseHP = 65, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 120, + .expYield = 131, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_WATER_ABSORB, + .ability2 = ABILITY_DAMP, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + }, + + [SPECIES_POLIWRATH] = + { + .baseHP = 90, + .baseAttack = 85, + .baseDefense = 95, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 90, + .type1 = TYPE_WATER, + .type2 = TYPE_FIGHTING, + .catchRate = 45, + .expYield = 185, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 3, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_WATER_ABSORB, + .ability2 = ABILITY_DAMP, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + }, + + [SPECIES_ABRA] = + { + .baseHP = 25, + .baseAttack = 20, + .baseDefense = 15, + .baseSpeed = 90, + .baseSpAttack = 105, + .baseSpDefense = 55, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 200, + .expYield = 73, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_TWISTED_SPOON, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_INNER_FOCUS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_KADABRA] = + { + .baseHP = 40, + .baseAttack = 35, + .baseDefense = 30, + .baseSpeed = 105, + .baseSpAttack = 120, + .baseSpDefense = 70, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 100, + .expYield = 145, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_TWISTED_SPOON, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_INNER_FOCUS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_ALAKAZAM] = + { + .baseHP = 55, + .baseAttack = 50, + .baseDefense = 45, + .baseSpeed = 120, + .baseSpAttack = 135, + .baseSpDefense = 85, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 50, + .expYield = 186, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_TWISTED_SPOON, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_INNER_FOCUS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_MACHOP] = + { + .baseHP = 70, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 35, + .baseSpAttack = 35, + .baseSpDefense = 35, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 180, + .expYield = 88, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_GUTS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_MACHOKE] = + { + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 45, + .baseSpAttack = 50, + .baseSpDefense = 60, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 90, + .expYield = 146, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_GUTS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_MACHAMP] = + { + .baseHP = 90, + .baseAttack = 130, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 65, + .baseSpDefense = 85, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 45, + .expYield = 193, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_GUTS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_BELLSPROUT] = + { + .baseHP = 50, + .baseAttack = 75, + .baseDefense = 35, + .baseSpeed = 40, + .baseSpAttack = 70, + .baseSpDefense = 30, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 255, + .expYield = 84, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_WEEPINBELL] = + { + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 50, + .baseSpeed = 55, + .baseSpAttack = 85, + .baseSpDefense = 45, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 120, + .expYield = 151, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_VICTREEBEL] = + { + .baseHP = 80, + .baseAttack = 105, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 100, + .baseSpDefense = 60, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 191, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_TENTACOOL] = + { + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 35, + .baseSpeed = 70, + .baseSpAttack = 50, + .baseSpDefense = 100, + .type1 = TYPE_WATER, + .type2 = TYPE_POISON, + .catchRate = 190, + .expYield = 105, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_CLEAR_BODY, + .ability2 = ABILITY_LIQUID_OOZE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_TENTACRUEL] = + { + .baseHP = 80, + .baseAttack = 70, + .baseDefense = 65, + .baseSpeed = 100, + .baseSpAttack = 80, + .baseSpDefense = 120, + .type1 = TYPE_WATER, + .type2 = TYPE_POISON, + .catchRate = 60, + .expYield = 205, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_CLEAR_BODY, + .ability2 = ABILITY_LIQUID_OOZE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_GEODUDE] = + { + .baseHP = 40, + .baseAttack = 80, + .baseDefense = 100, + .baseSpeed = 20, + .baseSpAttack = 30, + .baseSpDefense = 30, + .type1 = TYPE_ROCK, + .type2 = TYPE_GROUND, + .catchRate = 255, + .expYield = 86, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_EVERSTONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_STURDY, + .safariZoneFleeRate = 4, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_GRAVELER] = + { + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 115, + .baseSpeed = 35, + .baseSpAttack = 45, + .baseSpDefense = 45, + .type1 = TYPE_ROCK, + .type2 = TYPE_GROUND, + .catchRate = 120, + .expYield = 134, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_EVERSTONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_STURDY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_GOLEM] = + { + .baseHP = 80, + .baseAttack = 110, + .baseDefense = 130, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 65, + .type1 = TYPE_ROCK, + .type2 = TYPE_GROUND, + .catchRate = 45, + .expYield = 177, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 3, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_EVERSTONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_STURDY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_PONYTA] = + { + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 90, + .baseSpAttack = 65, + .baseSpDefense = 65, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 190, + .expYield = 152, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_FLASH_FIRE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_RAPIDASH] = + { + .baseHP = 65, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 105, + .baseSpAttack = 80, + .baseSpDefense = 80, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 60, + .expYield = 192, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_FLASH_FIRE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_SLOWPOKE] = + { + .baseHP = 90, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 15, + .baseSpAttack = 40, + .baseSpDefense = 40, + .type1 = TYPE_WATER, + .type2 = TYPE_PSYCHIC, + .catchRate = 190, + .expYield = 99, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_OWN_TEMPO, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_SLOWBRO] = + { + .baseHP = 95, + .baseAttack = 75, + .baseDefense = 110, + .baseSpeed = 30, + .baseSpAttack = 100, + .baseSpDefense = 80, + .type1 = TYPE_WATER, + .type2 = TYPE_PSYCHIC, + .catchRate = 75, + .expYield = 164, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_OWN_TEMPO, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_MAGNEMITE] = + { + .baseHP = 25, + .baseAttack = 35, + .baseDefense = 70, + .baseSpeed = 45, + .baseSpAttack = 95, + .baseSpDefense = 55, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_STEEL, + .catchRate = 190, + .expYield = 89, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_MAGNET_PULL, + .ability2 = ABILITY_STURDY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_MAGNETON] = + { + .baseHP = 50, + .baseAttack = 60, + .baseDefense = 95, + .baseSpeed = 70, + .baseSpAttack = 120, + .baseSpDefense = 70, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_STEEL, + .catchRate = 60, + .expYield = 161, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_MAGNET_PULL, + .ability2 = ABILITY_STURDY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_FARFETCHD] = + { + .baseHP = 52, + .baseAttack = 65, + .baseDefense = 55, + .baseSpeed = 60, + .baseSpAttack = 58, + .baseSpDefense = 62, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 94, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_STICK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_INNER_FOCUS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_DODUO] = + { + .baseHP = 35, + .baseAttack = 85, + .baseDefense = 45, + .baseSpeed = 75, + .baseSpAttack = 35, + .baseSpDefense = 35, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 190, + .expYield = 96, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SHARP_BEAK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 8, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_DODRIO] = + { + .baseHP = 60, + .baseAttack = 110, + .baseDefense = 70, + .baseSpeed = 100, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 158, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SHARP_BEAK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 10, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_SEEL] = + { + .baseHP = 65, + .baseAttack = 45, + .baseDefense = 55, + .baseSpeed = 45, + .baseSpAttack = 45, + .baseSpDefense = 70, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 190, + .expYield = 100, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_DEWGONG] = + { + .baseHP = 90, + .baseAttack = 70, + .baseDefense = 80, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 95, + .type1 = TYPE_WATER, + .type2 = TYPE_ICE, + .catchRate = 75, + .expYield = 176, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_GRIMER] = + { + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 25, + .baseSpAttack = 40, + .baseSpDefense = 50, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 190, + .expYield = 90, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NUGGET, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_STENCH, + .ability2 = ABILITY_STICKY_HOLD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_MUK] = + { + .baseHP = 105, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 100, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 75, + .expYield = 157, + .evYield_HP = 1, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NUGGET, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_STENCH, + .ability2 = ABILITY_STICKY_HOLD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_SHELLDER] = + { + .baseHP = 30, + .baseAttack = 65, + .baseDefense = 100, + .baseSpeed = 40, + .baseSpAttack = 45, + .baseSpDefense = 25, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 190, + .expYield = 97, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_PEARL, + .item2 = ITEM_BIG_PEARL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_SHELL_ARMOR, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_CLOYSTER] = + { + .baseHP = 50, + .baseAttack = 95, + .baseDefense = 180, + .baseSpeed = 70, + .baseSpAttack = 85, + .baseSpDefense = 45, + .type1 = TYPE_WATER, + .type2 = TYPE_ICE, + .catchRate = 60, + .expYield = 203, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_PEARL, + .item2 = ITEM_BIG_PEARL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_SHELL_ARMOR, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_GASTLY] = + { + .baseHP = 30, + .baseAttack = 35, + .baseDefense = 30, + .baseSpeed = 80, + .baseSpAttack = 100, + .baseSpDefense = 35, + .type1 = TYPE_GHOST, + .type2 = TYPE_POISON, + .catchRate = 190, + .expYield = 95, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_HAUNTER] = + { + .baseHP = 45, + .baseAttack = 50, + .baseDefense = 45, + .baseSpeed = 95, + .baseSpAttack = 115, + .baseSpDefense = 55, + .type1 = TYPE_GHOST, + .type2 = TYPE_POISON, + .catchRate = 90, + .expYield = 126, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_GENGAR] = + { + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 110, + .baseSpAttack = 130, + .baseSpDefense = 75, + .type1 = TYPE_GHOST, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 190, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_ONIX] = + { + .baseHP = 35, + .baseAttack = 45, + .baseDefense = 160, + .baseSpeed = 70, + .baseSpAttack = 30, + .baseSpDefense = 45, + .type1 = TYPE_ROCK, + .type2 = TYPE_GROUND, + .catchRate = 45, + .expYield = 108, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_STURDY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_DROWZEE] = + { + .baseHP = 60, + .baseAttack = 48, + .baseDefense = 45, + .baseSpeed = 42, + .baseSpAttack = 43, + .baseSpDefense = 90, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 190, + .expYield = 102, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_INSOMNIA, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_HYPNO] = + { + .baseHP = 85, + .baseAttack = 73, + .baseDefense = 70, + .baseSpeed = 67, + .baseSpAttack = 73, + .baseSpDefense = 115, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 75, + .expYield = 165, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_INSOMNIA, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_KRABBY] = + { + .baseHP = 30, + .baseAttack = 105, + .baseDefense = 90, + .baseSpeed = 50, + .baseSpAttack = 25, + .baseSpDefense = 25, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 225, + .expYield = 115, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_HYPER_CUTTER, + .ability2 = ABILITY_SHELL_ARMOR, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_KINGLER] = + { + .baseHP = 55, + .baseAttack = 130, + .baseDefense = 115, + .baseSpeed = 75, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 60, + .expYield = 206, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_HYPER_CUTTER, + .ability2 = ABILITY_SHELL_ARMOR, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + }, + + [SPECIES_VOLTORB] = + { + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 50, + .baseSpeed = 100, + .baseSpAttack = 55, + .baseSpDefense = 55, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 190, + .expYield = 103, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_SOUNDPROOF, + .ability2 = ABILITY_STATIC, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_ELECTRODE] = + { + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 70, + .baseSpeed = 140, + .baseSpAttack = 80, + .baseSpDefense = 80, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 60, + .expYield = 150, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_SOUNDPROOF, + .ability2 = ABILITY_STATIC, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_EXEGGCUTE] = + { + .baseHP = 60, + .baseAttack = 40, + .baseDefense = 80, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 45, + .type1 = TYPE_GRASS, + .type2 = TYPE_PSYCHIC, + .catchRate = 90, + .expYield = 98, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_EXEGGUTOR] = + { + .baseHP = 95, + .baseAttack = 95, + .baseDefense = 85, + .baseSpeed = 55, + .baseSpAttack = 125, + .baseSpDefense = 65, + .type1 = TYPE_GRASS, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 212, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_CUBONE] = + { + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 95, + .baseSpeed = 35, + .baseSpAttack = 40, + .baseSpDefense = 50, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 190, + .expYield = 87, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_THICK_CLUB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_LIGHTNING_ROD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_MAROWAK] = + { + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 45, + .baseSpAttack = 50, + .baseSpDefense = 80, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 75, + .expYield = 124, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_THICK_CLUB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_LIGHTNING_ROD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_HITMONLEE] = + { + .baseHP = 50, + .baseAttack = 120, + .baseDefense = 53, + .baseSpeed = 87, + .baseSpAttack = 35, + .baseSpDefense = 110, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 45, + .expYield = 139, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_LIMBER, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_HITMONCHAN] = + { + .baseHP = 50, + .baseAttack = 105, + .baseDefense = 79, + .baseSpeed = 76, + .baseSpAttack = 35, + .baseSpDefense = 110, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 45, + .expYield = 140, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_LICKITUNG] = + { + .baseHP = 90, + .baseAttack = 55, + .baseDefense = 75, + .baseSpeed = 30, + .baseSpAttack = 60, + .baseSpDefense = 75, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 127, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_OWN_TEMPO, + .ability2 = ABILITY_OBLIVIOUS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_KOFFING] = + { + .baseHP = 40, + .baseAttack = 65, + .baseDefense = 95, + .baseSpeed = 35, + .baseSpAttack = 60, + .baseSpDefense = 45, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 190, + .expYield = 114, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SMOKE_BALL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_WEEZING] = + { + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 120, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 70, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 60, + .expYield = 173, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SMOKE_BALL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_RHYHORN] = + { + .baseHP = 80, + .baseAttack = 85, + .baseDefense = 95, + .baseSpeed = 25, + .baseSpAttack = 30, + .baseSpDefense = 30, + .type1 = TYPE_GROUND, + .type2 = TYPE_ROCK, + .catchRate = 120, + .expYield = 135, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_LIGHTNING_ROD, + .ability2 = ABILITY_ROCK_HEAD, + .safariZoneFleeRate = 4, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_RHYDON] = + { + .baseHP = 105, + .baseAttack = 130, + .baseDefense = 120, + .baseSpeed = 40, + .baseSpAttack = 45, + .baseSpDefense = 45, + .type1 = TYPE_GROUND, + .type2 = TYPE_ROCK, + .catchRate = 60, + .expYield = 204, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_LIGHTNING_ROD, + .ability2 = ABILITY_ROCK_HEAD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_CHANSEY] = + { + .baseHP = 250, + .baseAttack = 5, + .baseDefense = 5, + .baseSpeed = 50, + .baseSpAttack = 35, + .baseSpDefense = 105, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 30, + .expYield = 255, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_LUCKY_EGG, + .genderRatio = MON_FEMALE, + .eggCycles = 40, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_NATURAL_CURE, + .ability2 = ABILITY_SERENE_GRACE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_TANGELA] = + { + .baseHP = 65, + .baseAttack = 55, + .baseDefense = 115, + .baseSpeed = 60, + .baseSpAttack = 100, + .baseSpDefense = 40, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 166, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_KANGASKHAN] = + { + .baseHP = 105, + .baseAttack = 95, + .baseDefense = 80, + .baseSpeed = 90, + .baseSpAttack = 40, + .baseSpDefense = 80, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 175, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_EARLY_BIRD, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_HORSEA] = + { + .baseHP = 30, + .baseAttack = 40, + .baseDefense = 70, + .baseSpeed = 60, + .baseSpAttack = 70, + .baseSpDefense = 25, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 225, + .expYield = 83, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SEADRA] = + { + .baseHP = 55, + .baseAttack = 65, + .baseDefense = 95, + .baseSpeed = 85, + .baseSpAttack = 95, + .baseSpDefense = 45, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 75, + .expYield = 155, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_POISON_POINT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_GOLDEEN] = + { + .baseHP = 45, + .baseAttack = 67, + .baseDefense = 60, + .baseSpeed = 63, + .baseSpAttack = 35, + .baseSpDefense = 50, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 225, + .expYield = 111, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_WATER_VEIL, + .safariZoneFleeRate = 4, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_SEAKING] = + { + .baseHP = 80, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 68, + .baseSpAttack = 65, + .baseSpDefense = 80, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 60, + .expYield = 170, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_WATER_VEIL, + .safariZoneFleeRate = 6, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_STARYU] = + { + .baseHP = 30, + .baseAttack = 45, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 70, + .baseSpDefense = 55, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 225, + .expYield = 106, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_STARDUST, + .item2 = ITEM_STAR_PIECE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_ILLUMINATE, + .ability2 = ABILITY_NATURAL_CURE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_STARMIE] = + { + .baseHP = 60, + .baseAttack = 75, + .baseDefense = 85, + .baseSpeed = 115, + .baseSpAttack = 100, + .baseSpDefense = 85, + .type1 = TYPE_WATER, + .type2 = TYPE_PSYCHIC, + .catchRate = 60, + .expYield = 207, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_STARDUST, + .item2 = ITEM_STAR_PIECE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_ILLUMINATE, + .ability2 = ABILITY_NATURAL_CURE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_MR_MIME] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 65, + .baseSpeed = 90, + .baseSpAttack = 100, + .baseSpDefense = 120, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 136, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_LEPPA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_SOUNDPROOF, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_SCYTHER] = + { + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 80, + .baseSpeed = 105, + .baseSpAttack = 55, + .baseSpDefense = 80, + .type1 = TYPE_BUG, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 187, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_JYNX] = + { + .baseHP = 65, + .baseAttack = 50, + .baseDefense = 35, + .baseSpeed = 95, + .baseSpAttack = 115, + .baseSpDefense = 95, + .type1 = TYPE_ICE, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 137, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_ASPEAR_BERRY, + .item2 = ITEM_ASPEAR_BERRY, + .genderRatio = MON_FEMALE, + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_ELECTABUZZ] = + { + .baseHP = 65, + .baseAttack = 83, + .baseDefense = 57, + .baseSpeed = 105, + .baseSpAttack = 95, + .baseSpDefense = 85, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 45, + .expYield = 156, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = TRUE, + }, + + [SPECIES_MAGMAR] = + { + .baseHP = 65, + .baseAttack = 95, + .baseDefense = 57, + .baseSpeed = 93, + .baseSpAttack = 100, + .baseSpDefense = 85, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 167, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_RAWST_BERRY, + .item2 = ITEM_RAWST_BERRY, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_FLAME_BODY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_PINSIR] = + { + .baseHP = 65, + .baseAttack = 125, + .baseDefense = 100, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 70, + .type1 = TYPE_BUG, + .type2 = TYPE_BUG, + .catchRate = 45, + .expYield = 200, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_HYPER_CUTTER, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 8, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_TAUROS] = + { + .baseHP = 75, + .baseAttack = 100, + .baseDefense = 95, + .baseSpeed = 110, + .baseSpAttack = 40, + .baseSpDefense = 70, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 211, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_MAGIKARP] = + { + .baseHP = 20, + .baseAttack = 10, + .baseDefense = 55, + .baseSpeed = 80, + .baseSpAttack = 15, + .baseSpDefense = 20, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 255, + .expYield = 20, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 4, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_GYARADOS] = + { + .baseHP = 95, + .baseAttack = 125, + .baseDefense = 79, + .baseSpeed = 81, + .baseSpAttack = 60, + .baseSpDefense = 100, + .type1 = TYPE_WATER, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 214, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_LAPRAS] = + { + .baseHP = 130, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 95, + .type1 = TYPE_WATER, + .type2 = TYPE_ICE, + .catchRate = 45, + .expYield = 219, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_WATER_ABSORB, + .ability2 = ABILITY_SHELL_ARMOR, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_DITTO] = + { + .baseHP = 48, + .baseAttack = 48, + .baseDefense = 48, + .baseSpeed = 48, + .baseSpAttack = 48, + .baseSpDefense = 48, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 35, + .expYield = 61, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_METAL_POWDER, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_DITTO, + .eggGroup2 = EGG_GROUP_DITTO, + .ability1 = ABILITY_LIMBER, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_EEVEE] = + { + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 50, + .baseSpeed = 55, + .baseSpAttack = 45, + .baseSpDefense = 65, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 92, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_VAPOREON] = + { + .baseHP = 130, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 65, + .baseSpAttack = 110, + .baseSpDefense = 95, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 196, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_WATER_ABSORB, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_JOLTEON] = + { + .baseHP = 65, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 130, + .baseSpAttack = 110, + .baseSpDefense = 95, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 45, + .expYield = 197, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_VOLT_ABSORB, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_FLAREON] = + { + .baseHP = 65, + .baseAttack = 130, + .baseDefense = 60, + .baseSpeed = 65, + .baseSpAttack = 95, + .baseSpDefense = 110, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 198, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_FLASH_FIRE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_PORYGON] = + { + .baseHP = 65, + .baseAttack = 60, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 85, + .baseSpDefense = 75, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 130, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_TRACE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_OMANYTE] = + { + .baseHP = 35, + .baseAttack = 40, + .baseDefense = 100, + .baseSpeed = 35, + .baseSpAttack = 90, + .baseSpDefense = 55, + .type1 = TYPE_ROCK, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 120, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_SHELL_ARMOR, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_OMASTAR] = + { + .baseHP = 70, + .baseAttack = 60, + .baseDefense = 125, + .baseSpeed = 55, + .baseSpAttack = 115, + .baseSpDefense = 70, + .type1 = TYPE_ROCK, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 199, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_SHELL_ARMOR, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_KABUTO] = + { + .baseHP = 30, + .baseAttack = 80, + .baseDefense = 90, + .baseSpeed = 55, + .baseSpAttack = 55, + .baseSpDefense = 45, + .type1 = TYPE_ROCK, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 119, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_BATTLE_ARMOR, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_KABUTOPS] = + { + .baseHP = 60, + .baseAttack = 115, + .baseDefense = 105, + .baseSpeed = 80, + .baseSpAttack = 65, + .baseSpDefense = 70, + .type1 = TYPE_ROCK, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 201, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_BATTLE_ARMOR, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_AERODACTYL] = + { + .baseHP = 80, + .baseAttack = 105, + .baseDefense = 65, + .baseSpeed = 130, + .baseSpAttack = 60, + .baseSpDefense = 75, + .type1 = TYPE_ROCK, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 202, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_PRESSURE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_SNORLAX] = + { + .baseHP = 160, + .baseAttack = 110, + .baseDefense = 65, + .baseSpeed = 30, + .baseSpAttack = 65, + .baseSpDefense = 110, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 25, + .expYield = 154, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_LEFTOVERS, + .item2 = ITEM_LEFTOVERS, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 40, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_IMMUNITY, + .ability2 = ABILITY_THICK_FAT, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_ARTICUNO] = + { + .baseHP = 90, + .baseAttack = 85, + .baseDefense = 100, + .baseSpeed = 85, + .baseSpAttack = 95, + .baseSpDefense = 125, + .type1 = TYPE_ICE, + .type2 = TYPE_FLYING, + .catchRate = 3, + .expYield = 215, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_ZAPDOS] = + { + .baseHP = 90, + .baseAttack = 90, + .baseDefense = 85, + .baseSpeed = 100, + .baseSpAttack = 125, + .baseSpDefense = 90, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_FLYING, + .catchRate = 3, + .expYield = 216, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_MOLTRES] = + { + .baseHP = 90, + .baseAttack = 100, + .baseDefense = 90, + .baseSpeed = 90, + .baseSpAttack = 125, + .baseSpDefense = 85, + .type1 = TYPE_FIRE, + .type2 = TYPE_FLYING, + .catchRate = 3, + .expYield = 217, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_DRATINI] = + { + .baseHP = 41, + .baseAttack = 64, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_DRAGON, + .type2 = TYPE_DRAGON, + .catchRate = 45, + .expYield = 67, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_SHED_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_DRAGONAIR] = + { + .baseHP = 61, + .baseAttack = 84, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .type1 = TYPE_DRAGON, + .type2 = TYPE_DRAGON, + .catchRate = 45, + .expYield = 144, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_SHED_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_DRAGONITE] = + { + .baseHP = 91, + .baseAttack = 134, + .baseDefense = 95, + .baseSpeed = 80, + .baseSpAttack = 100, + .baseSpDefense = 100, + .type1 = TYPE_DRAGON, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 218, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_INNER_FOCUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_MEWTWO] = + { + .baseHP = 106, + .baseAttack = 110, + .baseDefense = 90, + .baseSpeed = 130, + .baseSpAttack = 154, + .baseSpDefense = 90, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 3, + .expYield = 220, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_MEW] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 64, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_LUM_BERRY, + .item2 = ITEM_LUM_BERRY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_CHIKORITA] = + { + .baseHP = 45, + .baseAttack = 49, + .baseDefense = 65, + .baseSpeed = 45, + .baseSpAttack = 49, + .baseSpDefense = 65, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 64, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_OVERGROW, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_BAYLEEF] = + { + .baseHP = 60, + .baseAttack = 62, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 63, + .baseSpDefense = 80, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 141, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_OVERGROW, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_MEGANIUM] = + { + .baseHP = 80, + .baseAttack = 82, + .baseDefense = 100, + .baseSpeed = 80, + .baseSpAttack = 83, + .baseSpDefense = 100, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 208, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_OVERGROW, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_CYNDAQUIL] = + { + .baseHP = 39, + .baseAttack = 52, + .baseDefense = 43, + .baseSpeed = 65, + .baseSpAttack = 60, + .baseSpDefense = 50, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 65, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_BLAZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_QUILAVA] = + { + .baseHP = 58, + .baseAttack = 64, + .baseDefense = 58, + .baseSpeed = 80, + .baseSpAttack = 80, + .baseSpDefense = 65, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 142, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_BLAZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_TYPHLOSION] = + { + .baseHP = 78, + .baseAttack = 84, + .baseDefense = 78, + .baseSpeed = 100, + .baseSpAttack = 109, + .baseSpDefense = 85, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 209, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_BLAZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_TOTODILE] = + { + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 64, + .baseSpeed = 43, + .baseSpAttack = 44, + .baseSpDefense = 48, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 66, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_TORRENT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_CROCONAW] = + { + .baseHP = 65, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 58, + .baseSpAttack = 59, + .baseSpDefense = 63, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 143, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_TORRENT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + }, + + [SPECIES_FERALIGATR] = + { + .baseHP = 85, + .baseAttack = 105, + .baseDefense = 100, + .baseSpeed = 78, + .baseSpAttack = 79, + .baseSpDefense = 83, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 210, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_TORRENT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SENTRET] = + { + .baseHP = 35, + .baseAttack = 46, + .baseDefense = 34, + .baseSpeed = 20, + .baseSpAttack = 35, + .baseSpDefense = 45, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 255, + .expYield = 57, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_ORAN_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_KEEN_EYE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_FURRET] = + { + .baseHP = 85, + .baseAttack = 76, + .baseDefense = 64, + .baseSpeed = 90, + .baseSpAttack = 45, + .baseSpDefense = 55, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 90, + .expYield = 116, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_ORAN_BERRY, + .item2 = ITEM_SITRUS_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_KEEN_EYE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_HOOTHOOT] = + { + .baseHP = 60, + .baseAttack = 30, + .baseDefense = 30, + .baseSpeed = 50, + .baseSpAttack = 36, + .baseSpDefense = 56, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 255, + .expYield = 58, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_INSOMNIA, + .ability2 = ABILITY_KEEN_EYE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_NOCTOWL] = + { + .baseHP = 100, + .baseAttack = 50, + .baseDefense = 50, + .baseSpeed = 70, + .baseSpAttack = 76, + .baseSpDefense = 96, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 90, + .expYield = 162, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_INSOMNIA, + .ability2 = ABILITY_KEEN_EYE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_LEDYBA] = + { + .baseHP = 40, + .baseAttack = 20, + .baseDefense = 30, + .baseSpeed = 55, + .baseSpAttack = 40, + .baseSpDefense = 80, + .type1 = TYPE_BUG, + .type2 = TYPE_FLYING, + .catchRate = 255, + .expYield = 54, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWARM, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_LEDIAN] = + { + .baseHP = 55, + .baseAttack = 35, + .baseDefense = 50, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 110, + .type1 = TYPE_BUG, + .type2 = TYPE_FLYING, + .catchRate = 90, + .expYield = 134, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWARM, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_SPINARAK] = + { + .baseHP = 40, + .baseAttack = 60, + .baseDefense = 40, + .baseSpeed = 30, + .baseSpAttack = 40, + .baseSpDefense = 40, + .type1 = TYPE_BUG, + .type2 = TYPE_POISON, + .catchRate = 255, + .expYield = 54, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWARM, + .ability2 = ABILITY_INSOMNIA, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_ARIADOS] = + { + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_BUG, + .type2 = TYPE_POISON, + .catchRate = 90, + .expYield = 134, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWARM, + .ability2 = ABILITY_INSOMNIA, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_CROBAT] = + { + .baseHP = 85, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 130, + .baseSpAttack = 70, + .baseSpDefense = 80, + .type1 = TYPE_POISON, + .type2 = TYPE_FLYING, + .catchRate = 90, + .expYield = 204, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 3, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_INNER_FOCUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_CHINCHOU] = + { + .baseHP = 75, + .baseAttack = 38, + .baseDefense = 38, + .baseSpeed = 67, + .baseSpAttack = 56, + .baseSpDefense = 56, + .type1 = TYPE_WATER, + .type2 = TYPE_ELECTRIC, + .catchRate = 190, + .expYield = 90, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_YELLOW_SHARD, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_VOLT_ABSORB, + .ability2 = ABILITY_ILLUMINATE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_LANTURN] = + { + .baseHP = 125, + .baseAttack = 58, + .baseDefense = 58, + .baseSpeed = 67, + .baseSpAttack = 76, + .baseSpDefense = 76, + .type1 = TYPE_WATER, + .type2 = TYPE_ELECTRIC, + .catchRate = 75, + .expYield = 156, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_YELLOW_SHARD, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_VOLT_ABSORB, + .ability2 = ABILITY_ILLUMINATE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_PICHU] = + { + .baseHP = 20, + .baseAttack = 40, + .baseDefense = 15, + .baseSpeed = 60, + .baseSpAttack = 35, + .baseSpDefense = 35, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 190, + .expYield = 42, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_ORAN_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_CLEFFA] = + { + .baseHP = 50, + .baseAttack = 25, + .baseDefense = 28, + .baseSpeed = 15, + .baseSpAttack = 45, + .baseSpDefense = 55, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 150, + .expYield = 37, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_LEPPA_BERRY, + .item2 = ITEM_MOON_STONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_CUTE_CHARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_IGGLYBUFF] = + { + .baseHP = 90, + .baseAttack = 30, + .baseDefense = 15, + .baseSpeed = 15, + .baseSpAttack = 40, + .baseSpDefense = 20, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 170, + .expYield = 39, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_CUTE_CHARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = TRUE, + }, + + [SPECIES_TOGEPI] = + { + .baseHP = 35, + .baseAttack = 20, + .baseDefense = 65, + .baseSpeed = 20, + .baseSpAttack = 40, + .baseSpDefense = 65, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 190, + .expYield = 74, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_HUSTLE, + .ability2 = ABILITY_SERENE_GRACE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_TOGETIC] = + { + .baseHP = 55, + .baseAttack = 40, + .baseDefense = 85, + .baseSpeed = 40, + .baseSpAttack = 80, + .baseSpDefense = 105, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 75, + .expYield = 114, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_HUSTLE, + .ability2 = ABILITY_SERENE_GRACE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_NATU] = + { + .baseHP = 40, + .baseAttack = 50, + .baseDefense = 45, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 45, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_FLYING, + .catchRate = 190, + .expYield = 73, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 6, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_XATU] = + { + .baseHP = 65, + .baseAttack = 75, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 95, + .baseSpDefense = 70, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_FLYING, + .catchRate = 75, + .expYield = 171, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 8, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_MAREEP] = + { + .baseHP = 55, + .baseAttack = 40, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 65, + .baseSpDefense = 45, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 235, + .expYield = 59, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_FLAAFFY] = + { + .baseHP = 70, + .baseAttack = 55, + .baseDefense = 55, + .baseSpeed = 45, + .baseSpAttack = 80, + .baseSpDefense = 60, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 120, + .expYield = 117, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_AMPHAROS] = + { + .baseHP = 90, + .baseAttack = 75, + .baseDefense = 75, + .baseSpeed = 55, + .baseSpAttack = 115, + .baseSpDefense = 90, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 45, + .expYield = 194, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_BELLOSSOM] = + { + .baseHP = 75, + .baseAttack = 80, + .baseDefense = 85, + .baseSpeed = 50, + .baseSpAttack = 90, + .baseSpDefense = 100, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 184, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_MARILL] = + { + .baseHP = 70, + .baseAttack = 20, + .baseDefense = 50, + .baseSpeed = 40, + .baseSpAttack = 20, + .baseSpDefense = 50, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 190, + .expYield = 58, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_HUGE_POWER, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_AZUMARILL] = + { + .baseHP = 100, + .baseAttack = 50, + .baseDefense = 80, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 80, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 75, + .expYield = 153, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_HUGE_POWER, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SUDOWOODO] = + { + .baseHP = 70, + .baseAttack = 100, + .baseDefense = 115, + .baseSpeed = 30, + .baseSpAttack = 30, + .baseSpDefense = 65, + .type1 = TYPE_ROCK, + .type2 = TYPE_ROCK, + .catchRate = 65, + .expYield = 135, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_STURDY, + .ability2 = ABILITY_ROCK_HEAD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_POLITOED] = + { + .baseHP = 90, + .baseAttack = 75, + .baseDefense = 75, + .baseSpeed = 70, + .baseSpAttack = 90, + .baseSpDefense = 100, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 185, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_WATER_ABSORB, + .ability2 = ABILITY_DAMP, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + }, + + [SPECIES_HOPPIP] = + { + .baseHP = 35, + .baseAttack = 35, + .baseDefense = 40, + .baseSpeed = 50, + .baseSpAttack = 35, + .baseSpDefense = 55, + .type1 = TYPE_GRASS, + .type2 = TYPE_FLYING, + .catchRate = 255, + .expYield = 74, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_SKIPLOOM] = + { + .baseHP = 55, + .baseAttack = 45, + .baseDefense = 50, + .baseSpeed = 80, + .baseSpAttack = 45, + .baseSpDefense = 65, + .type1 = TYPE_GRASS, + .type2 = TYPE_FLYING, + .catchRate = 120, + .expYield = 136, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_JUMPLUFF] = + { + .baseHP = 75, + .baseAttack = 55, + .baseDefense = 70, + .baseSpeed = 110, + .baseSpAttack = 55, + .baseSpDefense = 85, + .type1 = TYPE_GRASS, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 176, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 3, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_AIPOM] = + { + .baseHP = 55, + .baseAttack = 70, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 40, + .baseSpDefense = 55, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 94, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_PICKUP, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_SUNKERN] = + { + .baseHP = 30, + .baseAttack = 30, + .baseDefense = 30, + .baseSpeed = 30, + .baseSpAttack = 30, + .baseSpDefense = 30, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 235, + .expYield = 52, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_SUNFLORA] = + { + .baseHP = 75, + .baseAttack = 75, + .baseDefense = 55, + .baseSpeed = 30, + .baseSpAttack = 105, + .baseSpDefense = 85, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 120, + .expYield = 146, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_YANMA] = + { + .baseHP = 65, + .baseAttack = 65, + .baseDefense = 45, + .baseSpeed = 95, + .baseSpAttack = 75, + .baseSpDefense = 45, + .type1 = TYPE_BUG, + .type2 = TYPE_FLYING, + .catchRate = 75, + .expYield = 147, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SPEED_BOOST, + .ability2 = ABILITY_COMPOUND_EYES, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_WOOPER] = + { + .baseHP = 55, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .type1 = TYPE_WATER, + .type2 = TYPE_GROUND, + .catchRate = 255, + .expYield = 52, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_DAMP, + .ability2 = ABILITY_WATER_ABSORB, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_QUAGSIRE] = + { + .baseHP = 95, + .baseAttack = 85, + .baseDefense = 85, + .baseSpeed = 35, + .baseSpAttack = 65, + .baseSpDefense = 65, + .type1 = TYPE_WATER, + .type2 = TYPE_GROUND, + .catchRate = 90, + .expYield = 137, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_DAMP, + .ability2 = ABILITY_WATER_ABSORB, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_ESPEON] = + { + .baseHP = 65, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 110, + .baseSpAttack = 130, + .baseSpDefense = 95, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 197, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_UMBREON] = + { + .baseHP = 95, + .baseAttack = 65, + .baseDefense = 110, + .baseSpeed = 65, + .baseSpAttack = 60, + .baseSpDefense = 130, + .type1 = TYPE_DARK, + .type2 = TYPE_DARK, + .catchRate = 45, + .expYield = 197, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_MURKROW] = + { + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 42, + .baseSpeed = 91, + .baseSpAttack = 85, + .baseSpDefense = 42, + .type1 = TYPE_DARK, + .type2 = TYPE_FLYING, + .catchRate = 30, + .expYield = 107, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_INSOMNIA, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_SLOWKING] = + { + .baseHP = 95, + .baseAttack = 75, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 100, + .baseSpDefense = 110, + .type1 = TYPE_WATER, + .type2 = TYPE_PSYCHIC, + .catchRate = 70, + .expYield = 164, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_OWN_TEMPO, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_MISDREAVUS] = + { + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 85, + .type1 = TYPE_GHOST, + .type2 = TYPE_GHOST, + .catchRate = 45, + .expYield = 147, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_UNOWN] = + { + .baseHP = 48, + .baseAttack = 72, + .baseDefense = 48, + .baseSpeed = 48, + .baseSpAttack = 72, + .baseSpDefense = 48, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 225, + .expYield = 61, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + }, + + [SPECIES_WOBBUFFET] = + { + .baseHP = 190, + .baseAttack = 33, + .baseDefense = 58, + .baseSpeed = 33, + .baseSpAttack = 33, + .baseSpDefense = 58, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 177, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_SHADOW_TAG, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 4, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_GIRAFARIG] = + { + .baseHP = 70, + .baseAttack = 80, + .baseDefense = 65, + .baseSpeed = 85, + .baseSpAttack = 90, + .baseSpDefense = 65, + .type1 = TYPE_NORMAL, + .type2 = TYPE_PSYCHIC, + .catchRate = 60, + .expYield = 149, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_PERSIM_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_INNER_FOCUS, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 4, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_PINECO] = + { + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 90, + .baseSpeed = 15, + .baseSpAttack = 35, + .baseSpDefense = 35, + .type1 = TYPE_BUG, + .type2 = TYPE_BUG, + .catchRate = 190, + .expYield = 60, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_STURDY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_FORRETRESS] = + { + .baseHP = 75, + .baseAttack = 90, + .baseDefense = 140, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_BUG, + .type2 = TYPE_STEEL, + .catchRate = 75, + .expYield = 118, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_STURDY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_DUNSPARCE] = + { + .baseHP = 100, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 45, + .baseSpAttack = 65, + .baseSpDefense = 65, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 190, + .expYield = 75, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SERENE_GRACE, + .ability2 = ABILITY_RUN_AWAY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_GLIGAR] = + { + .baseHP = 65, + .baseAttack = 75, + .baseDefense = 105, + .baseSpeed = 85, + .baseSpAttack = 35, + .baseSpDefense = 65, + .type1 = TYPE_GROUND, + .type2 = TYPE_FLYING, + .catchRate = 60, + .expYield = 108, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_HYPER_CUTTER, + .ability2 = ABILITY_SAND_VEIL, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_STEELIX] = + { + .baseHP = 75, + .baseAttack = 85, + .baseDefense = 200, + .baseSpeed = 30, + .baseSpAttack = 55, + .baseSpDefense = 65, + .type1 = TYPE_STEEL, + .type2 = TYPE_GROUND, + .catchRate = 25, + .expYield = 196, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_METAL_COAT, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_STURDY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_SNUBBULL] = + { + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 30, + .baseSpAttack = 40, + .baseSpDefense = 40, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 190, + .expYield = 63, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_RUN_AWAY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_GRANBULL] = + { + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 75, + .baseSpeed = 45, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 75, + .expYield = 178, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_INTIMIDATE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_QWILFISH] = + { + .baseHP = 65, + .baseAttack = 95, + .baseDefense = 75, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 55, + .type1 = TYPE_WATER, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 100, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_POISON_POINT, + .ability2 = ABILITY_SWIFT_SWIM, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_SCIZOR] = + { + .baseHP = 70, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 65, + .baseSpAttack = 55, + .baseSpDefense = 80, + .type1 = TYPE_BUG, + .type2 = TYPE_STEEL, + .catchRate = 25, + .expYield = 200, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_SHUCKLE] = + { + .baseHP = 20, + .baseAttack = 10, + .baseDefense = 230, + .baseSpeed = 5, + .baseSpAttack = 10, + .baseSpDefense = 230, + .type1 = TYPE_BUG, + .type2 = TYPE_ROCK, + .catchRate = 190, + .expYield = 80, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_ORAN_BERRY, + .item2 = ITEM_ORAN_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_STURDY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_HERACROSS] = + { + .baseHP = 80, + .baseAttack = 125, + .baseDefense = 75, + .baseSpeed = 85, + .baseSpAttack = 40, + .baseSpDefense = 95, + .type1 = TYPE_BUG, + .type2 = TYPE_FIGHTING, + .catchRate = 45, + .expYield = 200, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWARM, + .ability2 = ABILITY_GUTS, + .safariZoneFleeRate = 8, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SNEASEL] = + { + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 55, + .baseSpeed = 115, + .baseSpAttack = 35, + .baseSpDefense = 75, + .type1 = TYPE_DARK, + .type2 = TYPE_ICE, + .catchRate = 60, + .expYield = 132, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_INNER_FOCUS, + .ability2 = ABILITY_KEEN_EYE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + }, + + [SPECIES_TEDDIURSA] = + { + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 40, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 120, + .expYield = 124, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_PICKUP, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + }, + + [SPECIES_URSARING] = + { + .baseHP = 90, + .baseAttack = 130, + .baseDefense = 75, + .baseSpeed = 55, + .baseSpAttack = 75, + .baseSpDefense = 75, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 60, + .expYield = 189, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_GUTS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_SLUGMA] = + { + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 40, + .baseSpeed = 20, + .baseSpAttack = 70, + .baseSpDefense = 40, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 190, + .expYield = 78, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_MAGMA_ARMOR, + .ability2 = ABILITY_FLAME_BODY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_MAGCARGO] = + { + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 120, + .baseSpeed = 30, + .baseSpAttack = 80, + .baseSpDefense = 80, + .type1 = TYPE_FIRE, + .type2 = TYPE_ROCK, + .catchRate = 75, + .expYield = 154, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_MAGMA_ARMOR, + .ability2 = ABILITY_FLAME_BODY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_SWINUB] = + { + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 40, + .baseSpeed = 50, + .baseSpAttack = 30, + .baseSpDefense = 30, + .type1 = TYPE_ICE, + .type2 = TYPE_GROUND, + .catchRate = 225, + .expYield = 78, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_PILOSWINE] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 80, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_ICE, + .type2 = TYPE_GROUND, + .catchRate = 75, + .expYield = 160, + .evYield_HP = 1, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_CORSOLA] = + { + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 85, + .baseSpeed = 35, + .baseSpAttack = 65, + .baseSpDefense = 85, + .type1 = TYPE_WATER, + .type2 = TYPE_ROCK, + .catchRate = 60, + .expYield = 113, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_RED_SHARD, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_HUSTLE, + .ability2 = ABILITY_NATURAL_CURE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_REMORAID] = + { + .baseHP = 35, + .baseAttack = 65, + .baseDefense = 35, + .baseSpeed = 65, + .baseSpAttack = 65, + .baseSpDefense = 35, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 190, + .expYield = 78, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_HUSTLE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_OCTILLERY] = + { + .baseHP = 75, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 45, + .baseSpAttack = 105, + .baseSpDefense = 75, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 75, + .expYield = 164, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_SUCTION_CUPS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_DELIBIRD] = + { + .baseHP = 45, + .baseAttack = 55, + .baseDefense = 45, + .baseSpeed = 75, + .baseSpAttack = 65, + .baseSpDefense = 45, + .type1 = TYPE_ICE, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 183, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_VITAL_SPIRIT, + .ability2 = ABILITY_HUSTLE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_MANTINE] = + { + .baseHP = 65, + .baseAttack = 40, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 80, + .baseSpDefense = 140, + .type1 = TYPE_WATER, + .type2 = TYPE_FLYING, + .catchRate = 25, + .expYield = 168, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_WATER_ABSORB, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_SKARMORY] = + { + .baseHP = 65, + .baseAttack = 80, + .baseDefense = 140, + .baseSpeed = 70, + .baseSpAttack = 40, + .baseSpDefense = 70, + .type1 = TYPE_STEEL, + .type2 = TYPE_FLYING, + .catchRate = 25, + .expYield = 168, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_STURDY, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_HOUNDOUR] = + { + .baseHP = 45, + .baseAttack = 60, + .baseDefense = 30, + .baseSpeed = 65, + .baseSpAttack = 80, + .baseSpDefense = 50, + .type1 = TYPE_DARK, + .type2 = TYPE_FIRE, + .catchRate = 120, + .expYield = 114, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_EARLY_BIRD, + .ability2 = ABILITY_FLASH_FIRE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_HOUNDOOM] = + { + .baseHP = 75, + .baseAttack = 90, + .baseDefense = 50, + .baseSpeed = 95, + .baseSpAttack = 110, + .baseSpDefense = 80, + .type1 = TYPE_DARK, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 204, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_EARLY_BIRD, + .ability2 = ABILITY_FLASH_FIRE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_KINGDRA] = + { + .baseHP = 75, + .baseAttack = 95, + .baseDefense = 95, + .baseSpeed = 85, + .baseSpAttack = 95, + .baseSpDefense = 95, + .type1 = TYPE_WATER, + .type2 = TYPE_DRAGON, + .catchRate = 45, + .expYield = 207, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_PHANPY] = + { + .baseHP = 90, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 40, + .baseSpAttack = 40, + .baseSpDefense = 40, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 120, + .expYield = 124, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_PICKUP, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 10, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_DONPHAN] = + { + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 120, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 60, + .expYield = 189, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_STURDY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_PORYGON2] = + { + .baseHP = 85, + .baseAttack = 80, + .baseDefense = 90, + .baseSpeed = 60, + .baseSpAttack = 105, + .baseSpDefense = 95, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 180, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_TRACE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_STANTLER] = + { + .baseHP = 73, + .baseAttack = 95, + .baseDefense = 62, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 65, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 165, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_SMEARGLE] = + { + .baseHP = 55, + .baseAttack = 20, + .baseDefense = 35, + .baseSpeed = 75, + .baseSpAttack = 20, + .baseSpDefense = 45, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 106, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_OWN_TEMPO, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_TYROGUE] = + { + .baseHP = 35, + .baseAttack = 35, + .baseDefense = 35, + .baseSpeed = 35, + .baseSpAttack = 35, + .baseSpDefense = 35, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 75, + .expYield = 91, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_GUTS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_HITMONTOP] = + { + .baseHP = 50, + .baseAttack = 95, + .baseDefense = 95, + .baseSpeed = 70, + .baseSpAttack = 35, + .baseSpDefense = 110, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 45, + .expYield = 138, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_SMOOCHUM] = + { + .baseHP = 45, + .baseAttack = 30, + .baseDefense = 15, + .baseSpeed = 65, + .baseSpAttack = 85, + .baseSpDefense = 65, + .type1 = TYPE_ICE, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 87, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_ASPEAR_BERRY, + .item2 = ITEM_ASPEAR_BERRY, + .genderRatio = MON_FEMALE, + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_ELEKID] = + { + .baseHP = 45, + .baseAttack = 63, + .baseDefense = 37, + .baseSpeed = 95, + .baseSpAttack = 65, + .baseSpDefense = 55, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 45, + .expYield = 106, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = TRUE, + }, + + [SPECIES_MAGBY] = + { + .baseHP = 45, + .baseAttack = 75, + .baseDefense = 37, + .baseSpeed = 83, + .baseSpAttack = 70, + .baseSpDefense = 55, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 117, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_RAWST_BERRY, + .item2 = ITEM_RAWST_BERRY, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_FLAME_BODY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_MILTANK] = + { + .baseHP = 95, + .baseAttack = 80, + .baseDefense = 105, + .baseSpeed = 100, + .baseSpAttack = 40, + .baseSpDefense = 70, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 200, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_MOOMOO_MILK, + .item2 = ITEM_MOOMOO_MILK, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_BLISSEY] = + { + .baseHP = 255, + .baseAttack = 10, + .baseDefense = 10, + .baseSpeed = 55, + .baseSpAttack = 75, + .baseSpDefense = 135, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 30, + .expYield = 255, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_LUCKY_EGG, + .genderRatio = MON_FEMALE, + .eggCycles = 40, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_NATURAL_CURE, + .ability2 = ABILITY_SERENE_GRACE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_RAIKOU] = + { + .baseHP = 90, + .baseAttack = 85, + .baseDefense = 75, + .baseSpeed = 115, + .baseSpAttack = 115, + .baseSpDefense = 100, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 3, + .expYield = 216, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_ENTEI] = + { + .baseHP = 115, + .baseAttack = 115, + .baseDefense = 85, + .baseSpeed = 100, + .baseSpAttack = 90, + .baseSpDefense = 75, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 3, + .expYield = 217, + .evYield_HP = 1, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_SUICUNE] = + { + .baseHP = 100, + .baseAttack = 75, + .baseDefense = 115, + .baseSpeed = 85, + .baseSpAttack = 90, + .baseSpDefense = 115, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 3, + .expYield = 215, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_LARVITAR] = + { + .baseHP = 50, + .baseAttack = 64, + .baseDefense = 50, + .baseSpeed = 41, + .baseSpAttack = 45, + .baseSpDefense = 50, + .type1 = TYPE_ROCK, + .type2 = TYPE_GROUND, + .catchRate = 45, + .expYield = 67, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_GUTS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_PUPITAR] = + { + .baseHP = 70, + .baseAttack = 84, + .baseDefense = 70, + .baseSpeed = 51, + .baseSpAttack = 65, + .baseSpDefense = 70, + .type1 = TYPE_ROCK, + .type2 = TYPE_GROUND, + .catchRate = 45, + .expYield = 144, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_SHED_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_TYRANITAR] = + { + .baseHP = 100, + .baseAttack = 134, + .baseDefense = 110, + .baseSpeed = 61, + .baseSpAttack = 95, + .baseSpDefense = 100, + .type1 = TYPE_ROCK, + .type2 = TYPE_DARK, + .catchRate = 45, + .expYield = 218, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_SAND_STREAM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_LUGIA] = + { + .baseHP = 106, + .baseAttack = 90, + .baseDefense = 130, + .baseSpeed = 110, + .baseSpAttack = 90, + .baseSpDefense = 154, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_FLYING, + .catchRate = 3, + .expYield = 220, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_HO_OH] = + { + .baseHP = 106, + .baseAttack = 130, + .baseDefense = 90, + .baseSpeed = 90, + .baseSpAttack = 110, + .baseSpDefense = 154, + .type1 = TYPE_FIRE, + .type2 = TYPE_FLYING, + .catchRate = 3, + .expYield = 220, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_SACRED_ASH, + .item2 = ITEM_SACRED_ASH, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_CELEBI] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 64, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_LUM_BERRY, + .item2 = ITEM_LUM_BERRY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NATURAL_CURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_B] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_C] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_D] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_E] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_F] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_G] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_H] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_I] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_J] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_K] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_L] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_M] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_N] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_O] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_P] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_Q] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_R] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_S] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_T] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_U] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_V] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_W] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_X] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_Y] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_OLD_UNOWN_Z] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 3, + .expYield = 1, + .evYield_HP = 2, + .evYield_Attack = 2, + .evYield_Defense = 2, + .evYield_Speed = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_NONE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_TREECKO] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 35, + .baseSpeed = 70, + .baseSpAttack = 65, + .baseSpDefense = 55, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 65, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_OVERGROW, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_GROVYLE] = + { + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 45, + .baseSpeed = 95, + .baseSpAttack = 85, + .baseSpDefense = 65, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 141, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_OVERGROW, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_SCEPTILE] = + { + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 65, + .baseSpeed = 120, + .baseSpAttack = 105, + .baseSpDefense = 85, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 208, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 3, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_OVERGROW, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_TORCHIC] = + { + .baseHP = 45, + .baseAttack = 60, + .baseDefense = 40, + .baseSpeed = 45, + .baseSpAttack = 70, + .baseSpDefense = 50, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 45, + .expYield = 65, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_BLAZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_COMBUSKEN] = + { + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 60, + .baseSpeed = 55, + .baseSpAttack = 85, + .baseSpDefense = 60, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIGHTING, + .catchRate = 45, + .expYield = 142, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_BLAZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_BLAZIKEN] = + { + .baseHP = 80, + .baseAttack = 120, + .baseDefense = 70, + .baseSpeed = 80, + .baseSpAttack = 110, + .baseSpDefense = 70, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIGHTING, + .catchRate = 45, + .expYield = 209, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_BLAZE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_MUDKIP] = + { + .baseHP = 50, + .baseAttack = 70, + .baseDefense = 50, + .baseSpeed = 40, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 65, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_TORRENT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_MARSHTOMP] = + { + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 70, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 70, + .type1 = TYPE_WATER, + .type2 = TYPE_GROUND, + .catchRate = 45, + .expYield = 143, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_TORRENT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SWAMPERT] = + { + .baseHP = 100, + .baseAttack = 110, + .baseDefense = 90, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 90, + .type1 = TYPE_WATER, + .type2 = TYPE_GROUND, + .catchRate = 45, + .expYield = 210, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_TORRENT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_POOCHYENA] = + { + .baseHP = 35, + .baseAttack = 55, + .baseDefense = 35, + .baseSpeed = 35, + .baseSpAttack = 30, + .baseSpDefense = 30, + .type1 = TYPE_DARK, + .type2 = TYPE_DARK, + .catchRate = 255, + .expYield = 55, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_RUN_AWAY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_MIGHTYENA] = + { + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_DARK, + .type2 = TYPE_DARK, + .catchRate = 127, + .expYield = 128, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_PECHA_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_ZIGZAGOON] = + { + .baseHP = 38, + .baseAttack = 30, + .baseDefense = 41, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 41, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 255, + .expYield = 60, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_ORAN_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_PICKUP, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_LINOONE] = + { + .baseHP = 78, + .baseAttack = 70, + .baseDefense = 61, + .baseSpeed = 100, + .baseSpAttack = 50, + .baseSpDefense = 61, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 90, + .expYield = 128, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_ORAN_BERRY, + .item2 = ITEM_SITRUS_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_PICKUP, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_WURMPLE] = + { + .baseHP = 45, + .baseAttack = 45, + .baseDefense = 35, + .baseSpeed = 20, + .baseSpAttack = 20, + .baseSpDefense = 30, + .type1 = TYPE_BUG, + .type2 = TYPE_BUG, + .catchRate = 255, + .expYield = 54, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SHIELD_DUST, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_SILCOON] = + { + .baseHP = 50, + .baseAttack = 35, + .baseDefense = 55, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .type1 = TYPE_BUG, + .type2 = TYPE_BUG, + .catchRate = 120, + .expYield = 71, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SHED_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_BEAUTIFLY] = + { + .baseHP = 60, + .baseAttack = 70, + .baseDefense = 50, + .baseSpeed = 65, + .baseSpAttack = 90, + .baseSpDefense = 50, + .type1 = TYPE_BUG, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 161, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SILVER_POWDER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_CASCOON] = + { + .baseHP = 50, + .baseAttack = 35, + .baseDefense = 55, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .type1 = TYPE_BUG, + .type2 = TYPE_BUG, + .catchRate = 120, + .expYield = 72, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SHED_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_DUSTOX] = + { + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 70, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 90, + .type1 = TYPE_BUG, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 160, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_SILVER_POWDER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SHIELD_DUST, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_LOTAD] = + { + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 30, + .baseSpeed = 30, + .baseSpAttack = 40, + .baseSpDefense = 50, + .type1 = TYPE_WATER, + .type2 = TYPE_GRASS, + .catchRate = 255, + .expYield = 74, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_RAIN_DISH, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_LOMBRE] = + { + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 50, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 70, + .type1 = TYPE_WATER, + .type2 = TYPE_GRASS, + .catchRate = 120, + .expYield = 141, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_RAIN_DISH, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_LUDICOLO] = + { + .baseHP = 80, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 90, + .baseSpDefense = 100, + .type1 = TYPE_WATER, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 181, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_RAIN_DISH, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_SEEDOT] = + { + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 30, + .baseSpAttack = 30, + .baseSpDefense = 30, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 255, + .expYield = 74, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_NUZLEAF] = + { + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 40, + .baseSpeed = 60, + .baseSpAttack = 60, + .baseSpDefense = 40, + .type1 = TYPE_GRASS, + .type2 = TYPE_DARK, + .catchRate = 120, + .expYield = 141, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_SHIFTRY] = + { + .baseHP = 90, + .baseAttack = 100, + .baseDefense = 60, + .baseSpeed = 80, + .baseSpAttack = 90, + .baseSpDefense = 60, + .type1 = TYPE_GRASS, + .type2 = TYPE_DARK, + .catchRate = 45, + .expYield = 181, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_EARLY_BIRD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_NINCADA] = + { + .baseHP = 31, + .baseAttack = 45, + .baseDefense = 90, + .baseSpeed = 40, + .baseSpAttack = 30, + .baseSpDefense = 30, + .type1 = TYPE_BUG, + .type2 = TYPE_GROUND, + .catchRate = 255, + .expYield = 65, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_COMPOUND_EYES, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_NINJASK] = + { + .baseHP = 61, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 160, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_BUG, + .type2 = TYPE_FLYING, + .catchRate = 120, + .expYield = 155, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SPEED_BOOST, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_SHEDINJA] = + { + .baseHP = 1, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 40, + .baseSpAttack = 30, + .baseSpDefense = 30, + .type1 = TYPE_BUG, + .type2 = TYPE_GHOST, + .catchRate = 45, + .expYield = 95, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_WONDER_GUARD, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_TAILLOW] = + { + .baseHP = 40, + .baseAttack = 55, + .baseDefense = 30, + .baseSpeed = 85, + .baseSpAttack = 30, + .baseSpDefense = 30, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 200, + .expYield = 59, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_GUTS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SWELLOW] = + { + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 60, + .baseSpeed = 125, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 162, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_GUTS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SHROOMISH] = + { + .baseHP = 60, + .baseAttack = 40, + .baseDefense = 60, + .baseSpeed = 35, + .baseSpAttack = 40, + .baseSpDefense = 60, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 255, + .expYield = 65, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_EFFECT_SPORE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_BRELOOM] = + { + .baseHP = 60, + .baseAttack = 130, + .baseDefense = 80, + .baseSpeed = 70, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_GRASS, + .type2 = TYPE_FIGHTING, + .catchRate = 90, + .expYield = 165, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_EFFECT_SPORE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_SPINDA] = + { + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 60, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 255, + .expYield = 85, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_OWN_TEMPO, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + }, + + [SPECIES_WINGULL] = + { + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 30, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 30, + .type1 = TYPE_WATER, + .type2 = TYPE_FLYING, + .catchRate = 190, + .expYield = 64, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_PELIPPER] = + { + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 100, + .baseSpeed = 65, + .baseSpAttack = 85, + .baseSpDefense = 70, + .type1 = TYPE_WATER, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 164, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FLYING, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_SURSKIT] = + { + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 32, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 52, + .type1 = TYPE_BUG, + .type2 = TYPE_WATER, + .catchRate = 200, + .expYield = 63, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_MASQUERAIN] = + { + .baseHP = 70, + .baseAttack = 60, + .baseDefense = 62, + .baseSpeed = 60, + .baseSpAttack = 80, + .baseSpDefense = 82, + .type1 = TYPE_BUG, + .type2 = TYPE_FLYING, + .catchRate = 75, + .expYield = 128, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_SILVER_POWDER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_WAILMER] = + { + .baseHP = 130, + .baseAttack = 70, + .baseDefense = 35, + .baseSpeed = 60, + .baseSpAttack = 70, + .baseSpDefense = 35, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 125, + .expYield = 137, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_WATER_VEIL, + .ability2 = ABILITY_OBLIVIOUS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_WAILORD] = + { + .baseHP = 170, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 60, + .baseSpAttack = 90, + .baseSpDefense = 45, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 60, + .expYield = 206, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_WATER_VEIL, + .ability2 = ABILITY_OBLIVIOUS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SKITTY] = + { + .baseHP = 50, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 35, + .baseSpDefense = 35, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 255, + .expYield = 65, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_LEPPA_BERRY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_CUTE_CHARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_DELCATTY] = + { + .baseHP = 70, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 55, + .baseSpDefense = 55, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 60, + .expYield = 138, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_LEPPA_BERRY, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_CUTE_CHARM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_KECLEON] = + { + .baseHP = 60, + .baseAttack = 90, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 120, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 200, + .expYield = 132, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_PERSIM_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_COLOR_CHANGE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_BALTOY] = + { + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 55, + .baseSpeed = 55, + .baseSpAttack = 40, + .baseSpDefense = 70, + .type1 = TYPE_GROUND, + .type2 = TYPE_PSYCHIC, + .catchRate = 255, + .expYield = 58, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_CLAYDOL] = + { + .baseHP = 60, + .baseAttack = 70, + .baseDefense = 105, + .baseSpeed = 75, + .baseSpAttack = 70, + .baseSpDefense = 120, + .type1 = TYPE_GROUND, + .type2 = TYPE_PSYCHIC, + .catchRate = 90, + .expYield = 189, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_NOSEPASS] = + { + .baseHP = 30, + .baseAttack = 45, + .baseDefense = 135, + .baseSpeed = 30, + .baseSpAttack = 45, + .baseSpDefense = 90, + .type1 = TYPE_ROCK, + .type2 = TYPE_ROCK, + .catchRate = 255, + .expYield = 108, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_STURDY, + .ability2 = ABILITY_MAGNET_PULL, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_TORKOAL] = + { + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 140, + .baseSpeed = 20, + .baseSpAttack = 85, + .baseSpDefense = 70, + .type1 = TYPE_FIRE, + .type2 = TYPE_FIRE, + .catchRate = 90, + .expYield = 161, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_WHITE_SMOKE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_SABLEYE] = + { + .baseHP = 50, + .baseAttack = 75, + .baseDefense = 75, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 65, + .type1 = TYPE_DARK, + .type2 = TYPE_GHOST, + .catchRate = 45, + .expYield = 98, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_KEEN_EYE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_BARBOACH] = + { + .baseHP = 50, + .baseAttack = 48, + .baseDefense = 43, + .baseSpeed = 60, + .baseSpAttack = 46, + .baseSpDefense = 41, + .type1 = TYPE_WATER, + .type2 = TYPE_GROUND, + .catchRate = 190, + .expYield = 92, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_WHISCASH] = + { + .baseHP = 110, + .baseAttack = 78, + .baseDefense = 73, + .baseSpeed = 60, + .baseSpAttack = 76, + .baseSpDefense = 71, + .type1 = TYPE_WATER, + .type2 = TYPE_GROUND, + .catchRate = 75, + .expYield = 158, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_LUVDISC] = + { + .baseHP = 43, + .baseAttack = 30, + .baseDefense = 55, + .baseSpeed = 97, + .baseSpAttack = 40, + .baseSpDefense = 65, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 225, + .expYield = 110, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_HEART_SCALE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_CORPHISH] = + { + .baseHP = 43, + .baseAttack = 80, + .baseDefense = 65, + .baseSpeed = 35, + .baseSpAttack = 50, + .baseSpDefense = 35, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 205, + .expYield = 111, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_HYPER_CUTTER, + .ability2 = ABILITY_SHELL_ARMOR, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_CRAWDAUNT] = + { + .baseHP = 63, + .baseAttack = 120, + .baseDefense = 85, + .baseSpeed = 55, + .baseSpAttack = 90, + .baseSpDefense = 55, + .type1 = TYPE_WATER, + .type2 = TYPE_DARK, + .catchRate = 155, + .expYield = 161, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_HYPER_CUTTER, + .ability2 = ABILITY_SHELL_ARMOR, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_FEEBAS] = + { + .baseHP = 20, + .baseAttack = 15, + .baseDefense = 20, + .baseSpeed = 80, + .baseSpAttack = 10, + .baseSpDefense = 55, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 255, + .expYield = 61, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_MILOTIC] = + { + .baseHP = 95, + .baseAttack = 60, + .baseDefense = 79, + .baseSpeed = 81, + .baseSpAttack = 100, + .baseSpDefense = 125, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 60, + .expYield = 213, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_MARVEL_SCALE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_CARVANHA] = + { + .baseHP = 45, + .baseAttack = 90, + .baseDefense = 20, + .baseSpeed = 65, + .baseSpAttack = 65, + .baseSpDefense = 20, + .type1 = TYPE_WATER, + .type2 = TYPE_DARK, + .catchRate = 225, + .expYield = 88, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_ROUGH_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_SHARPEDO] = + { + .baseHP = 70, + .baseAttack = 120, + .baseDefense = 40, + .baseSpeed = 95, + .baseSpAttack = 95, + .baseSpDefense = 40, + .type1 = TYPE_WATER, + .type2 = TYPE_DARK, + .catchRate = 60, + .expYield = 175, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_ROUGH_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_TRAPINCH] = + { + .baseHP = 45, + .baseAttack = 100, + .baseDefense = 45, + .baseSpeed = 10, + .baseSpAttack = 45, + .baseSpDefense = 45, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 255, + .expYield = 73, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_HYPER_CUTTER, + .ability2 = ABILITY_ARENA_TRAP, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_VIBRAVA] = + { + .baseHP = 50, + .baseAttack = 70, + .baseDefense = 50, + .baseSpeed = 70, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_GROUND, + .type2 = TYPE_DRAGON, + .catchRate = 120, + .expYield = 126, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_LEVITATE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_FLYGON] = + { + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 80, + .baseSpeed = 100, + .baseSpAttack = 80, + .baseSpDefense = 80, + .type1 = TYPE_GROUND, + .type2 = TYPE_DRAGON, + .catchRate = 45, + .expYield = 197, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_LEVITATE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_MAKUHITA] = + { + .baseHP = 72, + .baseAttack = 60, + .baseDefense = 30, + .baseSpeed = 25, + .baseSpAttack = 20, + .baseSpDefense = 30, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 180, + .expYield = 87, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_GUTS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_HARIYAMA] = + { + .baseHP = 144, + .baseAttack = 120, + .baseDefense = 60, + .baseSpeed = 50, + .baseSpAttack = 40, + .baseSpDefense = 60, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_FIGHTING, + .catchRate = 200, + .expYield = 184, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_GUTS, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_ELECTRIKE] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 65, + .baseSpAttack = 65, + .baseSpDefense = 40, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 120, + .expYield = 104, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_LIGHTNING_ROD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_MANECTRIC] = + { + .baseHP = 70, + .baseAttack = 75, + .baseDefense = 60, + .baseSpeed = 105, + .baseSpAttack = 105, + .baseSpDefense = 60, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 45, + .expYield = 168, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_STATIC, + .ability2 = ABILITY_LIGHTNING_ROD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_NUMEL] = + { + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 65, + .baseSpDefense = 45, + .type1 = TYPE_FIRE, + .type2 = TYPE_GROUND, + .catchRate = 255, + .expYield = 88, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_RAWST_BERRY, + .item2 = ITEM_RAWST_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_CAMERUPT] = + { + .baseHP = 70, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 105, + .baseSpDefense = 75, + .type1 = TYPE_FIRE, + .type2 = TYPE_GROUND, + .catchRate = 150, + .expYield = 175, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_RAWST_BERRY, + .item2 = ITEM_RAWST_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_MAGMA_ARMOR, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_SPHEAL] = + { + .baseHP = 70, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 25, + .baseSpAttack = 55, + .baseSpDefense = 50, + .type1 = TYPE_ICE, + .type2 = TYPE_WATER, + .catchRate = 255, + .expYield = 75, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SEALEO] = + { + .baseHP = 90, + .baseAttack = 60, + .baseDefense = 70, + .baseSpeed = 45, + .baseSpAttack = 75, + .baseSpDefense = 70, + .type1 = TYPE_ICE, + .type2 = TYPE_WATER, + .catchRate = 120, + .expYield = 128, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_WALREIN] = + { + .baseHP = 110, + .baseAttack = 80, + .baseDefense = 90, + .baseSpeed = 65, + .baseSpAttack = 95, + .baseSpDefense = 90, + .type1 = TYPE_ICE, + .type2 = TYPE_WATER, + .catchRate = 45, + .expYield = 192, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_CACNEA] = + { + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 85, + .baseSpDefense = 40, + .type1 = TYPE_GRASS, + .type2 = TYPE_GRASS, + .catchRate = 190, + .expYield = 97, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_SAND_VEIL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_CACTURNE] = + { + .baseHP = 70, + .baseAttack = 115, + .baseDefense = 60, + .baseSpeed = 55, + .baseSpAttack = 115, + .baseSpDefense = 60, + .type1 = TYPE_GRASS, + .type2 = TYPE_DARK, + .catchRate = 60, + .expYield = 177, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_SAND_VEIL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_SNORUNT] = + { + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 50, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_ICE, + .type2 = TYPE_ICE, + .catchRate = 190, + .expYield = 74, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_INNER_FOCUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_GLALIE] = + { + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 80, + .baseSpAttack = 80, + .baseSpDefense = 80, + .type1 = TYPE_ICE, + .type2 = TYPE_ICE, + .catchRate = 75, + .expYield = 187, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NEVER_MELT_ICE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_INNER_FOCUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_LUNATONE] = + { + .baseHP = 70, + .baseAttack = 55, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 85, + .type1 = TYPE_ROCK, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 150, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_MOON_STONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_SOLROCK] = + { + .baseHP = 70, + .baseAttack = 95, + .baseDefense = 85, + .baseSpeed = 70, + .baseSpAttack = 55, + .baseSpDefense = 65, + .type1 = TYPE_ROCK, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 150, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SUN_STONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_AZURILL] = + { + .baseHP = 50, + .baseAttack = 20, + .baseDefense = 40, + .baseSpeed = 20, + .baseSpAttack = 20, + .baseSpDefense = 40, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 150, + .expYield = 33, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_HUGE_POWER, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SPOINK] = + { + .baseHP = 60, + .baseAttack = 25, + .baseDefense = 35, + .baseSpeed = 60, + .baseSpAttack = 70, + .baseSpDefense = 80, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 255, + .expYield = 89, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_OWN_TEMPO, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_GRUMPIG] = + { + .baseHP = 80, + .baseAttack = 45, + .baseDefense = 65, + .baseSpeed = 80, + .baseSpAttack = 90, + .baseSpDefense = 110, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 60, + .expYield = 164, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_THICK_FAT, + .ability2 = ABILITY_OWN_TEMPO, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_PLUSLE] = + { + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 40, + .baseSpeed = 95, + .baseSpAttack = 85, + .baseSpDefense = 75, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 200, + .expYield = 120, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_PLUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_MINUN] = + { + .baseHP = 60, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 95, + .baseSpAttack = 75, + .baseSpDefense = 85, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_ELECTRIC, + .catchRate = 200, + .expYield = 120, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_MINUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_MAWILE] = + { + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 85, + .baseSpeed = 50, + .baseSpAttack = 55, + .baseSpDefense = 55, + .type1 = TYPE_STEEL, + .type2 = TYPE_STEEL, + .catchRate = 45, + .expYield = 98, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FAIRY, + .ability1 = ABILITY_HYPER_CUTTER, + .ability2 = ABILITY_INTIMIDATE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_MEDITITE] = + { + .baseHP = 30, + .baseAttack = 40, + .baseDefense = 55, + .baseSpeed = 60, + .baseSpAttack = 40, + .baseSpDefense = 55, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_PSYCHIC, + .catchRate = 180, + .expYield = 91, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_PURE_POWER, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_MEDICHAM] = + { + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 75, + .baseSpeed = 80, + .baseSpAttack = 60, + .baseSpDefense = 75, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_PSYCHIC, + .catchRate = 90, + .expYield = 153, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_HUMAN_LIKE, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_PURE_POWER, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_SWABLU] = + { + .baseHP = 45, + .baseAttack = 40, + .baseDefense = 60, + .baseSpeed = 50, + .baseSpAttack = 40, + .baseSpDefense = 75, + .type1 = TYPE_NORMAL, + .type2 = TYPE_FLYING, + .catchRate = 255, + .expYield = 74, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_NATURAL_CURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_ALTARIA] = + { + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 90, + .baseSpeed = 80, + .baseSpAttack = 70, + .baseSpDefense = 105, + .type1 = TYPE_DRAGON, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 188, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_NATURAL_CURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_WYNAUT] = + { + .baseHP = 95, + .baseAttack = 23, + .baseDefense = 48, + .baseSpeed = 23, + .baseSpAttack = 23, + .baseSpDefense = 48, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 125, + .expYield = 44, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_SHADOW_TAG, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_DUSKULL] = + { + .baseHP = 20, + .baseAttack = 40, + .baseDefense = 90, + .baseSpeed = 25, + .baseSpAttack = 30, + .baseSpDefense = 90, + .type1 = TYPE_GHOST, + .type2 = TYPE_GHOST, + .catchRate = 190, + .expYield = 97, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_DUSCLOPS] = + { + .baseHP = 40, + .baseAttack = 70, + .baseDefense = 130, + .baseSpeed = 25, + .baseSpAttack = 60, + .baseSpDefense = 130, + .type1 = TYPE_GHOST, + .type2 = TYPE_GHOST, + .catchRate = 90, + .expYield = 179, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_ROSELIA] = + { + .baseHP = 50, + .baseAttack = 60, + .baseDefense = 45, + .baseSpeed = 65, + .baseSpAttack = 100, + .baseSpDefense = 80, + .type1 = TYPE_GRASS, + .type2 = TYPE_POISON, + .catchRate = 150, + .expYield = 152, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_NATURAL_CURE, + .ability2 = ABILITY_POISON_POINT, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + }, + + [SPECIES_SLAKOTH] = + { + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 30, + .baseSpAttack = 35, + .baseSpDefense = 35, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 255, + .expYield = 83, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_TRUANT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_VIGOROTH] = + { + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 90, + .baseSpAttack = 55, + .baseSpDefense = 55, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 120, + .expYield = 126, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 2, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_VITAL_SPIRIT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_SLAKING] = + { + .baseHP = 150, + .baseAttack = 160, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 95, + .baseSpDefense = 65, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 210, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_TRUANT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_GULPIN] = + { + .baseHP = 70, + .baseAttack = 43, + .baseDefense = 53, + .baseSpeed = 40, + .baseSpAttack = 43, + .baseSpDefense = 53, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 225, + .expYield = 75, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_BIG_PEARL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LIQUID_OOZE, + .ability2 = ABILITY_STICKY_HOLD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_SWALOT] = + { + .baseHP = 100, + .baseAttack = 73, + .baseDefense = 83, + .baseSpeed = 55, + .baseSpAttack = 73, + .baseSpDefense = 83, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 75, + .expYield = 168, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_BIG_PEARL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LIQUID_OOZE, + .ability2 = ABILITY_STICKY_HOLD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_TROPIUS] = + { + .baseHP = 99, + .baseAttack = 68, + .baseDefense = 83, + .baseSpeed = 51, + .baseSpAttack = 72, + .baseSpDefense = 87, + .type1 = TYPE_GRASS, + .type2 = TYPE_FLYING, + .catchRate = 200, + .expYield = 169, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_GRASS, + .ability1 = ABILITY_CHLOROPHYLL, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_WHISMUR] = + { + .baseHP = 64, + .baseAttack = 51, + .baseDefense = 23, + .baseSpeed = 28, + .baseSpAttack = 51, + .baseSpDefense = 23, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 190, + .expYield = 68, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SOUNDPROOF, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_LOUDRED] = + { + .baseHP = 84, + .baseAttack = 71, + .baseDefense = 43, + .baseSpeed = 48, + .baseSpAttack = 71, + .baseSpDefense = 43, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 120, + .expYield = 126, + .evYield_HP = 2, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SOUNDPROOF, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_EXPLOUD] = + { + .baseHP = 104, + .baseAttack = 91, + .baseDefense = 63, + .baseSpeed = 68, + .baseSpAttack = 91, + .baseSpDefense = 63, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 184, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_CHESTO_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_SOUNDPROOF, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_CLAMPERL] = + { + .baseHP = 35, + .baseAttack = 64, + .baseDefense = 85, + .baseSpeed = 32, + .baseSpAttack = 74, + .baseSpDefense = 55, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 255, + .expYield = 142, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_BLUE_SHARD, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_SHELL_ARMOR, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_HUNTAIL] = + { + .baseHP = 55, + .baseAttack = 104, + .baseDefense = 105, + .baseSpeed = 52, + .baseSpAttack = 94, + .baseSpDefense = 75, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 60, + .expYield = 178, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_GOREBYSS] = + { + .baseHP = 55, + .baseAttack = 84, + .baseDefense = 105, + .baseSpeed = 52, + .baseSpAttack = 114, + .baseSpDefense = 75, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 60, + .expYield = 178, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_1, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + }, + + [SPECIES_ABSOL] = + { + .baseHP = 65, + .baseAttack = 130, + .baseDefense = 60, + .baseSpeed = 75, + .baseSpAttack = 75, + .baseSpDefense = 60, + .type1 = TYPE_DARK, + .type2 = TYPE_DARK, + .catchRate = 30, + .expYield = 174, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + }, + + [SPECIES_SHUPPET] = + { + .baseHP = 44, + .baseAttack = 75, + .baseDefense = 35, + .baseSpeed = 45, + .baseSpAttack = 63, + .baseSpDefense = 33, + .type1 = TYPE_GHOST, + .type2 = TYPE_GHOST, + .catchRate = 225, + .expYield = 97, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_INSOMNIA, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_BANETTE] = + { + .baseHP = 64, + .baseAttack = 115, + .baseDefense = 65, + .baseSpeed = 65, + .baseSpAttack = 83, + .baseSpDefense = 63, + .type1 = TYPE_GHOST, + .type2 = TYPE_GHOST, + .catchRate = 45, + .expYield = 179, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_INSOMNIA, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_SEVIPER] = + { + .baseHP = 73, + .baseAttack = 100, + .baseDefense = 60, + .baseSpeed = 65, + .baseSpAttack = 100, + .baseSpDefense = 60, + .type1 = TYPE_POISON, + .type2 = TYPE_POISON, + .catchRate = 90, + .expYield = 165, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_SHED_SKIN, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + }, + + [SPECIES_ZANGOOSE] = + { + .baseHP = 73, + .baseAttack = 115, + .baseDefense = 60, + .baseSpeed = 90, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 90, + .expYield = 165, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .ability1 = ABILITY_IMMUNITY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + }, + + [SPECIES_RELICANTH] = + { + .baseHP = 100, + .baseAttack = 90, + .baseDefense = 130, + .baseSpeed = 55, + .baseSpAttack = 45, + .baseSpDefense = 65, + .type1 = TYPE_WATER, + .type2 = TYPE_ROCK, + .catchRate = 25, + .expYield = 198, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_GREEN_SHARD, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 40, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_WATER_1, + .eggGroup2 = EGG_GROUP_WATER_2, + .ability1 = ABILITY_SWIFT_SWIM, + .ability2 = ABILITY_ROCK_HEAD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_ARON] = + { + .baseHP = 50, + .baseAttack = 70, + .baseDefense = 100, + .baseSpeed = 30, + .baseSpAttack = 40, + .baseSpDefense = 40, + .type1 = TYPE_STEEL, + .type2 = TYPE_ROCK, + .catchRate = 180, + .expYield = 96, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_STURDY, + .ability2 = ABILITY_ROCK_HEAD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_LAIRON] = + { + .baseHP = 60, + .baseAttack = 90, + .baseDefense = 140, + .baseSpeed = 40, + .baseSpAttack = 50, + .baseSpDefense = 50, + .type1 = TYPE_STEEL, + .type2 = TYPE_ROCK, + .catchRate = 90, + .expYield = 152, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_STURDY, + .ability2 = ABILITY_ROCK_HEAD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_AGGRON] = + { + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 180, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 60, + .type1 = TYPE_STEEL, + .type2 = TYPE_ROCK, + .catchRate = 45, + .expYield = 205, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 3, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MONSTER, + .ability1 = ABILITY_STURDY, + .ability2 = ABILITY_ROCK_HEAD, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_CASTFORM] = + { + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .type1 = TYPE_NORMAL, + .type2 = TYPE_NORMAL, + .catchRate = 45, + .expYield = 145, + .evYield_HP = 1, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_MYSTIC_WATER, + .item2 = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FAIRY, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_FORECAST, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_VOLBEAT] = + { + .baseHP = 65, + .baseAttack = 73, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 47, + .baseSpDefense = 75, + .type1 = TYPE_BUG, + .type2 = TYPE_BUG, + .catchRate = 150, + .expYield = 146, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_ILLUMINATE, + .ability2 = ABILITY_SWARM, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_ILLUMISE] = + { + .baseHP = 65, + .baseAttack = 47, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 73, + .baseSpDefense = 75, + .type1 = TYPE_BUG, + .type2 = TYPE_BUG, + .catchRate = 150, + .expYield = 146, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_FEMALE, + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_FLUCTUATING, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_HUMAN_LIKE, + .ability1 = ABILITY_OBLIVIOUS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_LILEEP] = + { + .baseHP = 66, + .baseAttack = 41, + .baseDefense = 77, + .baseSpeed = 23, + .baseSpAttack = 61, + .baseSpDefense = 87, + .type1 = TYPE_ROCK, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 121, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_SUCTION_CUPS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + }, + + [SPECIES_CRADILY] = + { + .baseHP = 86, + .baseAttack = 81, + .baseDefense = 97, + .baseSpeed = 43, + .baseSpAttack = 81, + .baseSpDefense = 107, + .type1 = TYPE_ROCK, + .type2 = TYPE_GRASS, + .catchRate = 45, + .expYield = 201, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 2, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_SUCTION_CUPS, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_ANORITH] = + { + .baseHP = 45, + .baseAttack = 95, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .type1 = TYPE_ROCK, + .type2 = TYPE_BUG, + .catchRate = 45, + .expYield = 119, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_BATTLE_ARMOR, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_ARMALDO] = + { + .baseHP = 75, + .baseAttack = 125, + .baseDefense = 100, + .baseSpeed = 45, + .baseSpAttack = 70, + .baseSpDefense = 80, + .type1 = TYPE_ROCK, + .type2 = TYPE_BUG, + .catchRate = 45, + .expYield = 200, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = 70, + .growthRate = GROWTH_ERRATIC, + .eggGroup1 = EGG_GROUP_WATER_3, + .eggGroup2 = EGG_GROUP_WATER_3, + .ability1 = ABILITY_BATTLE_ARMOR, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_RALTS] = + { + .baseHP = 28, + .baseAttack = 25, + .baseDefense = 25, + .baseSpeed = 40, + .baseSpAttack = 45, + .baseSpDefense = 35, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 235, + .expYield = 70, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_TRACE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_KIRLIA] = + { + .baseHP = 38, + .baseAttack = 35, + .baseDefense = 35, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 55, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 120, + .expYield = 140, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_TRACE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_GARDEVOIR] = + { + .baseHP = 68, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 80, + .baseSpAttack = 125, + .baseSpDefense = 115, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 208, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_SYNCHRONIZE, + .ability2 = ABILITY_TRACE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_BAGON] = + { + .baseHP = 45, + .baseAttack = 75, + .baseDefense = 60, + .baseSpeed = 50, + .baseSpAttack = 40, + .baseSpDefense = 30, + .type1 = TYPE_DRAGON, + .type2 = TYPE_DRAGON, + .catchRate = 45, + .expYield = 89, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_DRAGON, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_SHELGON] = + { + .baseHP = 65, + .baseAttack = 95, + .baseDefense = 100, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 50, + .type1 = TYPE_DRAGON, + .type2 = TYPE_DRAGON, + .catchRate = 45, + .expYield = 144, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_DRAGON, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_ROCK_HEAD, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + }, + + [SPECIES_SALAMENCE] = + { + .baseHP = 95, + .baseAttack = 135, + .baseDefense = 80, + .baseSpeed = 100, + .baseSpAttack = 110, + .baseSpDefense = 80, + .type1 = TYPE_DRAGON, + .type2 = TYPE_FLYING, + .catchRate = 45, + .expYield = 218, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_DRAGON, + .eggGroup2 = EGG_GROUP_DRAGON, + .ability1 = ABILITY_INTIMIDATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_BELDUM] = + { + .baseHP = 40, + .baseAttack = 55, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 35, + .baseSpDefense = 60, + .type1 = TYPE_STEEL, + .type2 = TYPE_PSYCHIC, + .catchRate = 3, + .expYield = 103, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 1, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_CLEAR_BODY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_METANG] = + { + .baseHP = 60, + .baseAttack = 75, + .baseDefense = 100, + .baseSpeed = 50, + .baseSpAttack = 55, + .baseSpDefense = 80, + .type1 = TYPE_STEEL, + .type2 = TYPE_PSYCHIC, + .catchRate = 3, + .expYield = 153, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_CLEAR_BODY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_METAGROSS] = + { + .baseHP = 80, + .baseAttack = 135, + .baseDefense = 130, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 90, + .type1 = TYPE_STEEL, + .type2 = TYPE_PSYCHIC, + .catchRate = 3, + .expYield = 210, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 3, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .ability1 = ABILITY_CLEAR_BODY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_REGIROCK] = + { + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 200, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 100, + .type1 = TYPE_ROCK, + .type2 = TYPE_ROCK, + .catchRate = 3, + .expYield = 217, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 3, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_CLEAR_BODY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_REGICE] = + { + .baseHP = 80, + .baseAttack = 50, + .baseDefense = 100, + .baseSpeed = 50, + .baseSpAttack = 100, + .baseSpDefense = 200, + .type1 = TYPE_ICE, + .type2 = TYPE_ICE, + .catchRate = 3, + .expYield = 216, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_CLEAR_BODY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_REGISTEEL] = + { + .baseHP = 80, + .baseAttack = 75, + .baseDefense = 150, + .baseSpeed = 50, + .baseSpAttack = 75, + .baseSpDefense = 150, + .type1 = TYPE_STEEL, + .type2 = TYPE_STEEL, + .catchRate = 3, + .expYield = 215, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 2, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_CLEAR_BODY, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_KYOGRE] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 90, + .baseSpeed = 90, + .baseSpAttack = 150, + .baseSpDefense = 140, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 5, + .expYield = 218, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_DRIZZLE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_GROUDON] = + { + .baseHP = 100, + .baseAttack = 150, + .baseDefense = 140, + .baseSpeed = 90, + .baseSpAttack = 100, + .baseSpDefense = 90, + .type1 = TYPE_GROUND, + .type2 = TYPE_GROUND, + .catchRate = 5, + .expYield = 218, + .evYield_HP = 0, + .evYield_Attack = 3, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_DROUGHT, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_RAYQUAZA] = + { + .baseHP = 105, + .baseAttack = 150, + .baseDefense = 90, + .baseSpeed = 95, + .baseSpAttack = 150, + .baseSpDefense = 90, + .type1 = TYPE_DRAGON, + .type2 = TYPE_FLYING, + .catchRate = 3, + .expYield = 220, + .evYield_HP = 0, + .evYield_Attack = 2, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_AIR_LOCK, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + + [SPECIES_LATIAS] = + { + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 90, + .baseSpeed = 110, + .baseSpAttack = 110, + .baseSpDefense = 130, + .type1 = TYPE_DRAGON, + .type2 = TYPE_PSYCHIC, + .catchRate = 3, + .expYield = 211, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 3, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_FEMALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + }, + + [SPECIES_LATIOS] = + { + .baseHP = 80, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 110, + .baseSpAttack = 130, + .baseSpDefense = 110, + .type1 = TYPE_DRAGON, + .type2 = TYPE_PSYCHIC, + .catchRate = 3, + .expYield = 211, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_JIRACHI] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .type1 = TYPE_STEEL, + .type2 = TYPE_PSYCHIC, + .catchRate = 3, + .expYield = 215, + .evYield_HP = 3, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 0, + .evYield_SpDefense = 0, + .item1 = ITEM_STAR_PIECE, + .item2 = ITEM_STAR_PIECE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_SERENE_GRACE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + }, + + [SPECIES_DEOXYS] = + { + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 3, + .expYield = 215, + .evYield_HP = 0, + .evYield_Attack = 1, + .evYield_Defense = 0, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .ability1 = ABILITY_PRESSURE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + }, + + [SPECIES_CHIMECHO] = + { + .baseHP = 65, + .baseAttack = 50, + .baseDefense = 70, + .baseSpeed = 65, + .baseSpAttack = 95, + .baseSpDefense = 80, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 147, + .evYield_HP = 0, + .evYield_Attack = 0, + .evYield_Defense = 0, + .evYield_Speed = 0, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .item1 = ITEM_NONE, + .item2 = ITEM_NONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_FAST, + .eggGroup1 = EGG_GROUP_AMORPHOUS, + .eggGroup2 = EGG_GROUP_AMORPHOUS, + .ability1 = ABILITY_LEVITATE, + .ability2 = ABILITY_NONE, + .safariZoneFleeRate = 0, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + } +}; + +#endif //GUARD_BASE_STATS_H diff --git a/src/data/pokemon/cry_ids.h b/src/data/pokemon/cry_ids.h new file mode 100644 index 000000000..1c1c32dde --- /dev/null +++ b/src/data/pokemon/cry_ids.h @@ -0,0 +1,143 @@ +#ifndef POKEEMERALD_CRY_IDS_H +#define POKEEMERALD_CRY_IDS_H + +const u16 gSpeciesIdToCryId[] = +{ + 273, // TREECKO + 274, // GROVYLE + 275, // SCEPTILE + 270, // TORCHIC + 271, // COMBUSKEN + 272, // BLAZIKEN + 276, // MUDKIP + 277, // MARSHTOMP + 278, // SWAMPERT + 359, // POOCHYENA + 360, // MIGHTYENA + 378, // ZIGZAGOON + 375, // LINOONE + 290, // WURMPLE + 291, // SILCOON + 292, // BEAUTIFLY + 293, // CASCOON + 294, // DUSTOX + 283, // LOTAD + 284, // LOMBRE + 285, // LUDICOLO + 286, // SEEDOT + 287, // NUZLEAF + 288, // SHIFTRY + 301, // NINCADA + 302, // NINJASK + 303, // SHEDINJA + 266, // TAILLOW + 267, // SWELLOW + 374, // SHROOMISH + 373, // BRELOOM + 269, // SPINDA + 280, // WINGULL + 279, // PELIPPER + 310, // SURSKIT + 311, // MASQUERAIN + 377, // WAILMER + 381, // WAILORD + 312, // SKITTY + 313, // DELCATTY + 251, // KECLEON + 329, // BALTOY + 330, // CLAYDOL + 306, // NOSEPASS + 253, // TORKOAL + 362, // SABLEYE + 318, // BARBOACH + 319, // WHISCASH + 368, // LUVDISC + 320, // CORPHISH + 321, // CRAWDAUNT + 333, // FEEBAS + 334, // MILOTIC + 289, // CARVANHA + 260, // SHARPEDO + 324, // TRAPINCH + 325, // VIBRAVA + 326, // FLYGON + 304, // MAKUHITA + 305, // HARIYAMA + 254, // ELECTRIKE + 255, // MANECTRIC + 316, // NUMEL + 317, // CAMERUPT + 338, // SPHEAL + 339, // SEALEO + 340, // WALREIN + 327, // CACNEA + 328, // CACTURNE + 383, // SNORUNT + 307, // GLALIE + 331, // LUNATONE + 332, // SOLROCK + 262, // AZURILL + 322, // SPOINK + 323, // GRUMPIG + 308, // PLUSLE + 309, // MINUN + 363, // MAWILE + 336, // MEDITITE + 337, // MEDICHAM + 263, // SWABLU + 264, // ALTARIA + 258, // WYNAUT + 256, // DUSKULL + 361, // DUSCLOPS + 252, // ROSELIA + 298, // SLAKOTH + 299, // VIGOROTH + 300, // SLAKING + 314, // GULPIN + 315, // SWALOT + 376, // TROPIUS + 382, // WHISMUR + 380, // LOUDRED + 379, // EXPLOUD + 341, // CLAMPERL + 342, // HUNTAIL + 343, // GOREBYSS + 335, // ABSOL + 282, // SHUPPET + 281, // BANETTE + 259, // SEVIPER + 261, // ZANGOOSE + 367, // RELICANTH + 364, // ARON + 365, // LAIRON + 366, // AGGRON + 356, // CASTFORM + 357, // VOLBEAT + 358, // ILLUMISE + 344, // LILEEP + 345, // CRADILY + 346, // ANORITH + 347, // ARMALDO + 295, // RALTS + 296, // KIRLIA + 297, // GARDEVOIR + 351, // BAGON + 352, // SHELGON + 372, // SALAMENCE + 348, // BELDUM + 349, // METANG + 350, // METAGROSS + 353, // REGIROCK + 354, // REGICE + 355, // REGISTEEL + 370, // KYOGRE + 369, // GROUDON + 371, // RAYQUAZA + 257, // LATIAS + 384, // LATIOS + 385, // JIRACHI + 386, // DEOXYS + 387 // CHIMECHO +}; + +#endif //POKEEMERALD_CRY_IDS_H diff --git a/src/data/pokemon/egg_moves.h b/src/data/pokemon/egg_moves.h new file mode 100644 index 000000000..3d74868b4 --- /dev/null +++ b/src/data/pokemon/egg_moves.h @@ -0,0 +1,1315 @@ +#ifndef POKEEMERALD_DAYCARE_H +#define POKEEMERALD_DAYCARE_H + +#define EGG_MOVES_SPECIES_OFFSET 20000 +#define EGG_MOVES_TERMINATOR 0xFFFF +#define egg_moves(species, moves...) (SPECIES_##species + EGG_MOVES_SPECIES_OFFSET), moves + +#endif // POKEEMERALD_DAYCARE_H + +const u16 gEggMoves[] = { + egg_moves(BULBASAUR, + MOVE_LIGHT_SCREEN, + MOVE_SKULL_BASH, + MOVE_SAFEGUARD, + MOVE_CHARM, + MOVE_PETAL_DANCE, + MOVE_MAGICAL_LEAF, + MOVE_GRASS_WHISTLE, + MOVE_CURSE), + + egg_moves(CHARMANDER, + MOVE_BELLY_DRUM, + MOVE_ANCIENT_POWER, + MOVE_ROCK_SLIDE, + MOVE_BITE, + MOVE_OUTRAGE, + MOVE_BEAT_UP, + MOVE_SWORDS_DANCE, + MOVE_DRAGON_DANCE), + + egg_moves(SQUIRTLE, + MOVE_MIRROR_COAT, + MOVE_HAZE, + MOVE_MIST, + MOVE_FORESIGHT, + MOVE_FLAIL, + MOVE_REFRESH, + MOVE_MUD_SPORT, + MOVE_YAWN), + + egg_moves(PIDGEY, + MOVE_PURSUIT, + MOVE_FAINT_ATTACK, + MOVE_FORESIGHT, + MOVE_STEEL_WING, + MOVE_AIR_CUTTER), + + egg_moves(RATTATA, + MOVE_SCREECH, + MOVE_FLAME_WHEEL, + MOVE_FURY_SWIPES, + MOVE_BITE, + MOVE_COUNTER, + MOVE_REVERSAL, + MOVE_UPROAR, + MOVE_SWAGGER), + + egg_moves(SPEAROW, + MOVE_FAINT_ATTACK, + MOVE_FALSE_SWIPE, + MOVE_SCARY_FACE, + MOVE_QUICK_ATTACK, + MOVE_TRI_ATTACK, + MOVE_ASTONISH, + MOVE_SKY_ATTACK), + + egg_moves(EKANS, + MOVE_PURSUIT, + MOVE_SLAM, + MOVE_SPITE, + MOVE_BEAT_UP, + MOVE_POISON_FANG), + + egg_moves(SANDSHREW, + MOVE_FLAIL, + MOVE_SAFEGUARD, + MOVE_COUNTER, + MOVE_RAPID_SPIN, + MOVE_ROCK_SLIDE, + MOVE_METAL_CLAW, + MOVE_SWORDS_DANCE, + MOVE_CRUSH_CLAW), + + egg_moves(NIDORAN_F, + MOVE_SUPERSONIC, + MOVE_DISABLE, + MOVE_TAKE_DOWN, + MOVE_FOCUS_ENERGY, + MOVE_CHARM, + MOVE_COUNTER, + MOVE_BEAT_UP), + + egg_moves(NIDORAN_M, + MOVE_COUNTER, + MOVE_DISABLE, + MOVE_SUPERSONIC, + MOVE_TAKE_DOWN, + MOVE_AMNESIA, + MOVE_CONFUSION, + MOVE_BEAT_UP), + + egg_moves(VULPIX, + MOVE_FAINT_ATTACK, + MOVE_HYPNOSIS, + MOVE_FLAIL, + MOVE_SPITE, + MOVE_DISABLE, + MOVE_HOWL, + MOVE_PSYCH_UP, + MOVE_HEAT_WAVE), + + egg_moves(ZUBAT, + MOVE_QUICK_ATTACK, + MOVE_PURSUIT, + MOVE_FAINT_ATTACK, + MOVE_GUST, + MOVE_WHIRLWIND, + MOVE_CURSE), + + egg_moves(ODDISH, + MOVE_SWORDS_DANCE, + MOVE_RAZOR_LEAF, + MOVE_FLAIL, + MOVE_SYNTHESIS, + MOVE_CHARM, + MOVE_INGRAIN), + + egg_moves(PARAS, + MOVE_FALSE_SWIPE, + MOVE_SCREECH, + MOVE_COUNTER, + MOVE_PSYBEAM, + MOVE_FLAIL, + MOVE_SWEET_SCENT, + MOVE_LIGHT_SCREEN, + MOVE_PURSUIT), + + egg_moves(VENONAT, + MOVE_BATON_PASS, + MOVE_SCREECH, + MOVE_GIGA_DRAIN, + MOVE_SIGNAL_BEAM), + + egg_moves(DIGLETT, + MOVE_FAINT_ATTACK, + MOVE_SCREECH, + MOVE_ANCIENT_POWER, + MOVE_PURSUIT, + MOVE_BEAT_UP, + MOVE_UPROAR, + MOVE_ROCK_SLIDE), + + egg_moves(MEOWTH, + MOVE_SPITE, + MOVE_CHARM, + MOVE_HYPNOSIS, + MOVE_AMNESIA, + MOVE_PSYCH_UP, + MOVE_ASSIST), + + egg_moves(PSYDUCK, + MOVE_HYPNOSIS, + MOVE_PSYBEAM, + MOVE_FORESIGHT, + MOVE_LIGHT_SCREEN, + MOVE_FUTURE_SIGHT, + MOVE_PSYCHIC, + MOVE_CROSS_CHOP, + MOVE_REFRESH), + + egg_moves(MANKEY, + MOVE_ROCK_SLIDE, + MOVE_FORESIGHT, + MOVE_MEDITATE, + MOVE_COUNTER, + MOVE_REVERSAL, + MOVE_BEAT_UP, + MOVE_REVENGE, + MOVE_SMELLING_SALT), + + egg_moves(GROWLITHE, + MOVE_BODY_SLAM, + MOVE_SAFEGUARD, + MOVE_CRUNCH, + MOVE_THRASH, + MOVE_FIRE_SPIN, + MOVE_HOWL, + MOVE_HEAT_WAVE), + + egg_moves(POLIWAG, + MOVE_MIST, + MOVE_SPLASH, + MOVE_BUBBLE_BEAM, + MOVE_HAZE, + MOVE_MIND_READER, + MOVE_WATER_SPORT, + MOVE_ICE_BALL), + + egg_moves(ABRA, + MOVE_ENCORE, + MOVE_BARRIER, + MOVE_KNOCK_OFF, + MOVE_FIRE_PUNCH, + MOVE_THUNDER_PUNCH, + MOVE_ICE_PUNCH), + + egg_moves(MACHOP, + MOVE_LIGHT_SCREEN, + MOVE_MEDITATE, + MOVE_ROLLING_KICK, + MOVE_ENCORE, + MOVE_SMELLING_SALT, + MOVE_COUNTER, + MOVE_ROCK_SLIDE), + + egg_moves(BELLSPROUT, + MOVE_SWORDS_DANCE, + MOVE_ENCORE, + MOVE_REFLECT, + MOVE_SYNTHESIS, + MOVE_LEECH_LIFE, + MOVE_INGRAIN, + MOVE_MAGICAL_LEAF), + + egg_moves(TENTACOOL, + MOVE_AURORA_BEAM, + MOVE_MIRROR_COAT, + MOVE_RAPID_SPIN, + MOVE_HAZE, + MOVE_SAFEGUARD, + MOVE_CONFUSE_RAY), + + egg_moves(GEODUDE, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_BLOCK), + + egg_moves(PONYTA, + MOVE_FLAME_WHEEL, + MOVE_THRASH, + MOVE_DOUBLE_KICK, + MOVE_HYPNOSIS, + MOVE_CHARM, + MOVE_DOUBLE_EDGE), + + egg_moves(SLOWPOKE, + MOVE_SAFEGUARD, + MOVE_BELLY_DRUM, + MOVE_FUTURE_SIGHT, + MOVE_STOMP, + MOVE_MUD_SPORT, + MOVE_SLEEP_TALK, + MOVE_SNORE), + + egg_moves(FARFETCHD, + MOVE_STEEL_WING, + MOVE_FORESIGHT, + MOVE_MIRROR_MOVE, + MOVE_GUST, + MOVE_QUICK_ATTACK, + MOVE_FLAIL, + MOVE_FEATHER_DANCE, + MOVE_CURSE), + + egg_moves(DODUO, + MOVE_QUICK_ATTACK, + MOVE_SUPERSONIC, + MOVE_HAZE, + MOVE_FAINT_ATTACK, + MOVE_FLAIL, + MOVE_ENDEAVOR), + + egg_moves(SEEL, + MOVE_LICK, + MOVE_PERISH_SONG, + MOVE_DISABLE, + MOVE_HORN_DRILL, + MOVE_SLAM, + MOVE_ENCORE, + MOVE_FAKE_OUT, + MOVE_ICICLE_SPEAR), + + egg_moves(GRIMER, + MOVE_HAZE, + MOVE_MEAN_LOOK, + MOVE_LICK, + MOVE_IMPRISON, + MOVE_CURSE, + MOVE_SHADOW_PUNCH, + MOVE_EXPLOSION), + + egg_moves(SHELLDER, + MOVE_BUBBLE_BEAM, + MOVE_TAKE_DOWN, + MOVE_BARRIER, + MOVE_RAPID_SPIN, + MOVE_SCREECH, + MOVE_ICICLE_SPEAR), + + egg_moves(GASTLY, + MOVE_PSYWAVE, + MOVE_PERISH_SONG, + MOVE_HAZE, + MOVE_ASTONISH, + MOVE_WILL_O_WISP, + MOVE_GRUDGE, + MOVE_EXPLOSION), + + egg_moves(ONIX, + MOVE_ROCK_SLIDE, + MOVE_FLAIL, + MOVE_EXPLOSION, + MOVE_BLOCK), + + egg_moves(DROWZEE, + MOVE_BARRIER, + MOVE_ASSIST, + MOVE_ROLE_PLAY, + MOVE_FIRE_PUNCH, + MOVE_THUNDER_PUNCH, + MOVE_ICE_PUNCH), + + egg_moves(KRABBY, + MOVE_DIG, + MOVE_HAZE, + MOVE_AMNESIA, + MOVE_FLAIL, + MOVE_SLAM, + MOVE_KNOCK_OFF, + MOVE_SWORDS_DANCE), + + egg_moves(EXEGGCUTE, + MOVE_SYNTHESIS, + MOVE_MOONLIGHT, + MOVE_REFLECT, + MOVE_ANCIENT_POWER, + MOVE_PSYCH_UP, + MOVE_INGRAIN, + MOVE_CURSE), + + egg_moves(CUBONE, + MOVE_ROCK_SLIDE, + MOVE_ANCIENT_POWER, + MOVE_BELLY_DRUM, + MOVE_SCREECH, + MOVE_SKULL_BASH, + MOVE_PERISH_SONG, + MOVE_SWORDS_DANCE), + + egg_moves(LICKITUNG, + MOVE_BELLY_DRUM, + MOVE_MAGNITUDE, + MOVE_BODY_SLAM, + MOVE_CURSE, + MOVE_SMELLING_SALT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE), + + egg_moves(KOFFING, + MOVE_SCREECH, + MOVE_PSYWAVE, + MOVE_PSYBEAM, + MOVE_DESTINY_BOND, + MOVE_PAIN_SPLIT, + MOVE_WILL_O_WISP), + + egg_moves(RHYHORN, + MOVE_CRUNCH, + MOVE_REVERSAL, + MOVE_ROCK_SLIDE, + MOVE_COUNTER, + MOVE_MAGNITUDE, + MOVE_SWORDS_DANCE, + MOVE_CURSE, + MOVE_CRUSH_CLAW), + + egg_moves(CHANSEY, + MOVE_PRESENT, + MOVE_METRONOME, + MOVE_HEAL_BELL, + MOVE_AROMATHERAPY, + MOVE_SUBSTITUTE), + + egg_moves(TANGELA, + MOVE_FLAIL, + MOVE_CONFUSION, + MOVE_MEGA_DRAIN, + MOVE_REFLECT, + MOVE_AMNESIA, + MOVE_LEECH_SEED, + MOVE_NATURE_POWER), + + egg_moves(KANGASKHAN, + MOVE_STOMP, + MOVE_FORESIGHT, + MOVE_FOCUS_ENERGY, + MOVE_SAFEGUARD, + MOVE_DISABLE, + MOVE_COUNTER, + MOVE_CRUSH_CLAW, + MOVE_SUBSTITUTE), + + egg_moves(HORSEA, + MOVE_FLAIL, + MOVE_AURORA_BEAM, + MOVE_OCTAZOOKA, + MOVE_DISABLE, + MOVE_SPLASH, + MOVE_DRAGON_RAGE, + MOVE_DRAGON_BREATH), + + egg_moves(GOLDEEN, + MOVE_PSYBEAM, + MOVE_HAZE, + MOVE_HYDRO_PUMP, + MOVE_SLEEP_TALK, + MOVE_MUD_SPORT), + + egg_moves(MR_MIME, + MOVE_FUTURE_SIGHT, + MOVE_HYPNOSIS, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_FAKE_OUT, + MOVE_TRICK), + + egg_moves(SCYTHER, + MOVE_COUNTER, + MOVE_SAFEGUARD, + MOVE_BATON_PASS, + MOVE_RAZOR_WIND, + MOVE_REVERSAL, + MOVE_LIGHT_SCREEN, + MOVE_ENDURE, + MOVE_SILVER_WIND), + + egg_moves(PINSIR, + MOVE_FURY_ATTACK, + MOVE_FLAIL, + MOVE_FALSE_SWIPE, + MOVE_FAINT_ATTACK), + + egg_moves(LAPRAS, + MOVE_FORESIGHT, + MOVE_SUBSTITUTE, + MOVE_TICKLE, + MOVE_REFRESH, + MOVE_DRAGON_DANCE, + MOVE_CURSE, + MOVE_SLEEP_TALK, + MOVE_HORN_DRILL), + + egg_moves(EEVEE, + MOVE_CHARM, + MOVE_FLAIL, + MOVE_ENDURE, + MOVE_CURSE, + MOVE_TICKLE, + MOVE_WISH), + + egg_moves(OMANYTE, + MOVE_BUBBLE_BEAM, + MOVE_AURORA_BEAM, + MOVE_SLAM, + MOVE_SUPERSONIC, + MOVE_HAZE, + MOVE_ROCK_SLIDE, + MOVE_SPIKES), + + egg_moves(KABUTO, + MOVE_BUBBLE_BEAM, + MOVE_AURORA_BEAM, + MOVE_RAPID_SPIN, + MOVE_DIG, + MOVE_FLAIL, + MOVE_KNOCK_OFF, + MOVE_CONFUSE_RAY), + + egg_moves(AERODACTYL, + MOVE_WHIRLWIND, + MOVE_PURSUIT, + MOVE_FORESIGHT, + MOVE_STEEL_WING, + MOVE_DRAGON_BREATH, + MOVE_CURSE), + + egg_moves(SNORLAX, + MOVE_LICK, + MOVE_CHARM, + MOVE_DOUBLE_EDGE, + MOVE_CURSE, + MOVE_FISSURE, + MOVE_SUBSTITUTE), + + egg_moves(DRATINI, + MOVE_LIGHT_SCREEN, + MOVE_MIST, + MOVE_HAZE, + MOVE_SUPERSONIC, + MOVE_DRAGON_BREATH, + MOVE_DRAGON_DANCE), + + egg_moves(CHIKORITA, + MOVE_VINE_WHIP, + MOVE_LEECH_SEED, + MOVE_COUNTER, + MOVE_ANCIENT_POWER, + MOVE_FLAIL, + MOVE_NATURE_POWER, + MOVE_INGRAIN, + MOVE_GRASS_WHISTLE), + + egg_moves(CYNDAQUIL, + MOVE_FURY_SWIPES, + MOVE_QUICK_ATTACK, + MOVE_REVERSAL, + MOVE_THRASH, + MOVE_FORESIGHT, + MOVE_COVET, + MOVE_HOWL, + MOVE_CRUSH_CLAW), + + egg_moves(TOTODILE, + MOVE_CRUNCH, + MOVE_THRASH, + MOVE_HYDRO_PUMP, + MOVE_ANCIENT_POWER, + MOVE_ROCK_SLIDE, + MOVE_MUD_SPORT, + MOVE_WATER_SPORT, + MOVE_DRAGON_CLAW), + + egg_moves(SENTRET, + MOVE_DOUBLE_EDGE, + MOVE_PURSUIT, + MOVE_SLASH, + MOVE_FOCUS_ENERGY, + MOVE_REVERSAL, + MOVE_SUBSTITUTE, + MOVE_TRICK, + MOVE_ASSIST), + + egg_moves(HOOTHOOT, + MOVE_MIRROR_MOVE, + MOVE_SUPERSONIC, + MOVE_FAINT_ATTACK, + MOVE_WING_ATTACK, + MOVE_WHIRLWIND, + MOVE_SKY_ATTACK, + MOVE_FEATHER_DANCE), + + egg_moves(LEDYBA, + MOVE_PSYBEAM, + MOVE_BIDE, + MOVE_SILVER_WIND), + + egg_moves(SPINARAK, + MOVE_PSYBEAM, + MOVE_DISABLE, + MOVE_SONIC_BOOM, + MOVE_BATON_PASS, + MOVE_PURSUIT, + MOVE_SIGNAL_BEAM), + + egg_moves(CHINCHOU, + MOVE_FLAIL, + MOVE_SCREECH, + MOVE_AMNESIA), + + egg_moves(PICHU, + MOVE_REVERSAL, + MOVE_BIDE, + MOVE_PRESENT, + MOVE_ENCORE, + MOVE_DOUBLE_SLAP, + MOVE_WISH, + MOVE_CHARGE), + + egg_moves(CLEFFA, + MOVE_PRESENT, + MOVE_METRONOME, + MOVE_AMNESIA, + MOVE_BELLY_DRUM, + MOVE_SPLASH, + MOVE_MIMIC, + MOVE_WISH, + MOVE_SUBSTITUTE), + + egg_moves(IGGLYBUFF, + MOVE_PERISH_SONG, + MOVE_PRESENT, + MOVE_FAINT_ATTACK, + MOVE_WISH, + MOVE_FAKE_TEARS), + + egg_moves(TOGEPI, + MOVE_PRESENT, + MOVE_MIRROR_MOVE, + MOVE_PECK, + MOVE_FORESIGHT, + MOVE_FUTURE_SIGHT, + MOVE_SUBSTITUTE, + MOVE_PSYCH_UP), + + egg_moves(NATU, + MOVE_HAZE, + MOVE_DRILL_PECK, + MOVE_QUICK_ATTACK, + MOVE_FAINT_ATTACK, + MOVE_STEEL_WING, + MOVE_PSYCH_UP, + MOVE_FEATHER_DANCE, + MOVE_REFRESH), + + egg_moves(MAREEP, + MOVE_TAKE_DOWN, + MOVE_BODY_SLAM, + MOVE_SAFEGUARD, + MOVE_SCREECH, + MOVE_REFLECT, + MOVE_ODOR_SLEUTH, + MOVE_CHARGE), + + egg_moves(MARILL, + MOVE_LIGHT_SCREEN, + MOVE_PRESENT, + MOVE_AMNESIA, + MOVE_FUTURE_SIGHT, + MOVE_BELLY_DRUM, + MOVE_PERISH_SONG, + MOVE_SUPERSONIC, + MOVE_SUBSTITUTE), + + egg_moves(SUDOWOODO, + MOVE_SELF_DESTRUCT), + + egg_moves(HOPPIP, + MOVE_CONFUSION, + MOVE_ENCORE, + MOVE_DOUBLE_EDGE, + MOVE_REFLECT, + MOVE_AMNESIA, + MOVE_HELPING_HAND, + MOVE_PSYCH_UP), + + egg_moves(AIPOM, + MOVE_COUNTER, + MOVE_SCREECH, + MOVE_PURSUIT, + MOVE_AGILITY, + MOVE_SPITE, + MOVE_SLAM, + MOVE_DOUBLE_SLAP, + MOVE_BEAT_UP), + + egg_moves(SUNKERN, + MOVE_GRASS_WHISTLE, + MOVE_ENCORE, + MOVE_LEECH_SEED, + MOVE_NATURE_POWER, + MOVE_CURSE, + MOVE_HELPING_HAND), + + egg_moves(YANMA, + MOVE_WHIRLWIND, + MOVE_REVERSAL, + MOVE_LEECH_LIFE, + MOVE_SIGNAL_BEAM, + MOVE_SILVER_WIND), + + egg_moves(WOOPER, + MOVE_BODY_SLAM, + MOVE_ANCIENT_POWER, + MOVE_SAFEGUARD, + MOVE_CURSE, + MOVE_MUD_SPORT, + MOVE_STOCKPILE, + MOVE_SWALLOW, + MOVE_SPIT_UP), + + egg_moves(MURKROW, + MOVE_WHIRLWIND, + MOVE_DRILL_PECK, + MOVE_MIRROR_MOVE, + MOVE_WING_ATTACK, + MOVE_SKY_ATTACK, + MOVE_CONFUSE_RAY, + MOVE_FEATHER_DANCE, + MOVE_PERISH_SONG), + + egg_moves(MISDREAVUS, + MOVE_SCREECH, + MOVE_DESTINY_BOND, + MOVE_PSYCH_UP, + MOVE_IMPRISON), + + egg_moves(GIRAFARIG, + MOVE_TAKE_DOWN, + MOVE_AMNESIA, + MOVE_FORESIGHT, + MOVE_FUTURE_SIGHT, + MOVE_BEAT_UP, + MOVE_PSYCH_UP, + MOVE_WISH, + MOVE_MAGIC_COAT), + + egg_moves(PINECO, + MOVE_REFLECT, + MOVE_PIN_MISSILE, + MOVE_FLAIL, + MOVE_SWIFT, + MOVE_COUNTER, + MOVE_SAND_TOMB), + + egg_moves(DUNSPARCE, + MOVE_BIDE, + MOVE_ANCIENT_POWER, + MOVE_ROCK_SLIDE, + MOVE_BITE, + MOVE_HEADBUTT, + MOVE_ASTONISH, + MOVE_CURSE), + + egg_moves(GLIGAR, + MOVE_METAL_CLAW, + MOVE_WING_ATTACK, + MOVE_RAZOR_WIND, + MOVE_COUNTER, + MOVE_SAND_TOMB), + + egg_moves(SNUBBULL, + MOVE_METRONOME, + MOVE_FAINT_ATTACK, + MOVE_REFLECT, + MOVE_PRESENT, + MOVE_CRUNCH, + MOVE_HEAL_BELL, + MOVE_SNORE, + MOVE_SMELLING_SALT), + + egg_moves(QWILFISH, + MOVE_FLAIL, + MOVE_HAZE, + MOVE_BUBBLE_BEAM, + MOVE_SUPERSONIC, + MOVE_ASTONISH), + + egg_moves(SHUCKLE, + MOVE_SWEET_SCENT), + + egg_moves(HERACROSS, + MOVE_HARDEN, + MOVE_BIDE, + MOVE_FLAIL, + MOVE_FALSE_SWIPE), + + egg_moves(SNEASEL, + MOVE_COUNTER, + MOVE_SPITE, + MOVE_FORESIGHT, + MOVE_REFLECT, + MOVE_BITE, + MOVE_CRUSH_CLAW, + MOVE_FAKE_OUT), + + egg_moves(TEDDIURSA, + MOVE_CRUNCH, + MOVE_TAKE_DOWN, + MOVE_SEISMIC_TOSS, + MOVE_COUNTER, + MOVE_METAL_CLAW, + MOVE_FAKE_TEARS, + MOVE_YAWN, + MOVE_SLEEP_TALK), + + egg_moves(SLUGMA, + MOVE_ACID_ARMOR, + MOVE_HEAT_WAVE), + + egg_moves(SWINUB, + MOVE_TAKE_DOWN, + MOVE_BITE, + MOVE_BODY_SLAM, + MOVE_ROCK_SLIDE, + MOVE_ANCIENT_POWER, + MOVE_MUD_SHOT, + MOVE_ICICLE_SPEAR, + MOVE_DOUBLE_EDGE), + + egg_moves(CORSOLA, + MOVE_ROCK_SLIDE, + MOVE_SCREECH, + MOVE_MIST, + MOVE_AMNESIA, + MOVE_BARRIER, + MOVE_INGRAIN, + MOVE_CONFUSE_RAY, + MOVE_ICICLE_SPEAR), + + egg_moves(REMORAID, + MOVE_AURORA_BEAM, + MOVE_OCTAZOOKA, + MOVE_SUPERSONIC, + MOVE_HAZE, + MOVE_SCREECH, + MOVE_THUNDER_WAVE, + MOVE_ROCK_BLAST), + + egg_moves(DELIBIRD, + MOVE_AURORA_BEAM, + MOVE_QUICK_ATTACK, + MOVE_FUTURE_SIGHT, + MOVE_SPLASH, + MOVE_RAPID_SPIN, + MOVE_ICE_BALL), + + egg_moves(MANTINE, + MOVE_TWISTER, + MOVE_HYDRO_PUMP, + MOVE_HAZE, + MOVE_SLAM, + MOVE_MUD_SPORT, + MOVE_ROCK_SLIDE), + + egg_moves(SKARMORY, + MOVE_DRILL_PECK, + MOVE_PURSUIT, + MOVE_WHIRLWIND, + MOVE_SKY_ATTACK, + MOVE_CURSE), + + egg_moves(HOUNDOUR, + MOVE_FIRE_SPIN, + MOVE_RAGE, + MOVE_PURSUIT, + MOVE_COUNTER, + MOVE_SPITE, + MOVE_REVERSAL, + MOVE_BEAT_UP, + MOVE_WILL_O_WISP), + + egg_moves(PHANPY, + MOVE_FOCUS_ENERGY, + MOVE_BODY_SLAM, + MOVE_ANCIENT_POWER, + MOVE_SNORE, + MOVE_COUNTER, + MOVE_FISSURE), + + egg_moves(STANTLER, + MOVE_SPITE, + MOVE_DISABLE, + MOVE_BITE, + MOVE_SWAGGER, + MOVE_PSYCH_UP, + MOVE_EXTRASENSORY), + + egg_moves(TYROGUE, + MOVE_RAPID_SPIN, + MOVE_HI_JUMP_KICK, + MOVE_MACH_PUNCH, + MOVE_MIND_READER, + MOVE_HELPING_HAND), + + egg_moves(SMOOCHUM, + MOVE_MEDITATE, + MOVE_PSYCH_UP, + MOVE_FAKE_OUT, + MOVE_WISH, + MOVE_ICE_PUNCH), + + egg_moves(ELEKID, + MOVE_KARATE_CHOP, + MOVE_BARRIER, + MOVE_ROLLING_KICK, + MOVE_MEDITATE, + MOVE_CROSS_CHOP, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH), + + egg_moves(MAGBY, + MOVE_KARATE_CHOP, + MOVE_MEGA_PUNCH, + MOVE_BARRIER, + MOVE_SCREECH, + MOVE_CROSS_CHOP, + MOVE_THUNDER_PUNCH), + + egg_moves(MILTANK, + MOVE_PRESENT, + MOVE_REVERSAL, + MOVE_SEISMIC_TOSS, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_CURSE, + MOVE_HELPING_HAND, + MOVE_SLEEP_TALK), + + egg_moves(LARVITAR, + MOVE_PURSUIT, + MOVE_STOMP, + MOVE_OUTRAGE, + MOVE_FOCUS_ENERGY, + MOVE_ANCIENT_POWER, + MOVE_DRAGON_DANCE, + MOVE_CURSE), + + egg_moves(TREECKO, + MOVE_CRUNCH, + MOVE_MUD_SPORT, + MOVE_ENDEAVOR, + MOVE_LEECH_SEED, + MOVE_DRAGON_BREATH, + MOVE_CRUSH_CLAW), + + egg_moves(TORCHIC, + MOVE_COUNTER, + MOVE_REVERSAL, + MOVE_ENDURE, + MOVE_SWAGGER, + MOVE_ROCK_SLIDE, + MOVE_SMELLING_SALT), + + egg_moves(MUDKIP, + MOVE_REFRESH, + MOVE_UPROAR, + MOVE_CURSE, + MOVE_STOMP, + MOVE_ICE_BALL, + MOVE_MIRROR_COAT), + + egg_moves(POOCHYENA, + MOVE_ASTONISH, + MOVE_POISON_FANG, + MOVE_COVET, + MOVE_LEER, + MOVE_YAWN), + + egg_moves(ZIGZAGOON, + MOVE_CHARM, + MOVE_PURSUIT, + MOVE_SUBSTITUTE, + MOVE_TICKLE, + MOVE_TRICK), + + egg_moves(LOTAD, + MOVE_SYNTHESIS, + MOVE_RAZOR_LEAF, + MOVE_SWEET_SCENT, + MOVE_LEECH_SEED, + MOVE_FLAIL, + MOVE_WATER_GUN), + + egg_moves(SEEDOT, + MOVE_LEECH_SEED, + MOVE_AMNESIA, + MOVE_QUICK_ATTACK, + MOVE_RAZOR_WIND, + MOVE_TAKE_DOWN, + MOVE_FALSE_SWIPE), + + egg_moves(NINCADA, + MOVE_ENDURE, + MOVE_FAINT_ATTACK, + MOVE_GUST, + MOVE_SILVER_WIND), + + egg_moves(TAILLOW, + MOVE_PURSUIT, + MOVE_SUPERSONIC, + MOVE_REFRESH, + MOVE_MIRROR_MOVE, + MOVE_RAGE, + MOVE_SKY_ATTACK), + + egg_moves(SHROOMISH, + MOVE_FAKE_TEARS, + MOVE_SWAGGER, + MOVE_CHARM, + MOVE_FALSE_SWIPE, + MOVE_HELPING_HAND), + + egg_moves(SPINDA, + MOVE_ENCORE, + MOVE_ROCK_SLIDE, + MOVE_ASSIST, + MOVE_DISABLE, + MOVE_BATON_PASS, + MOVE_WISH, + MOVE_TRICK, + MOVE_SMELLING_SALT), + + egg_moves(WINGULL, + MOVE_MIST, + MOVE_TWISTER, + MOVE_AGILITY, + MOVE_GUST, + MOVE_WATER_SPORT), + + egg_moves(SURSKIT, + MOVE_FORESIGHT, + MOVE_MUD_SHOT, + MOVE_PSYBEAM, + MOVE_HYDRO_PUMP, + MOVE_MIND_READER), + + egg_moves(WAILMER, + MOVE_DOUBLE_EDGE, + MOVE_THRASH, + MOVE_SWAGGER, + MOVE_SNORE, + MOVE_SLEEP_TALK, + MOVE_CURSE, + MOVE_FISSURE, + MOVE_TICKLE), + + egg_moves(SKITTY, + MOVE_HELPING_HAND, + MOVE_PSYCH_UP, + MOVE_UPROAR, + MOVE_FAKE_TEARS, + MOVE_WISH, + MOVE_BATON_PASS, + MOVE_SUBSTITUTE, + MOVE_TICKLE), + + egg_moves(KECLEON, + MOVE_DISABLE, + MOVE_MAGIC_COAT, + MOVE_TRICK), + + egg_moves(NOSEPASS, + MOVE_MAGNITUDE, + MOVE_ROLLOUT, + MOVE_EXPLOSION), + + egg_moves(TORKOAL, + MOVE_ERUPTION, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_YAWN), + + egg_moves(SABLEYE, + MOVE_PSYCH_UP, + MOVE_RECOVER, + MOVE_MOONLIGHT), + + egg_moves(BARBOACH, + MOVE_THRASH, + MOVE_WHIRLPOOL, + MOVE_SPARK), + + egg_moves(LUVDISC, + MOVE_SPLASH, + MOVE_SUPERSONIC, + MOVE_WATER_SPORT, + MOVE_MUD_SPORT), + + egg_moves(CORPHISH, + MOVE_MUD_SPORT, + MOVE_ENDEAVOR, + MOVE_BODY_SLAM, + MOVE_ANCIENT_POWER), + + egg_moves(FEEBAS, + MOVE_MIRROR_COAT, + MOVE_DRAGON_BREATH, + MOVE_MUD_SPORT, + MOVE_HYPNOSIS, + MOVE_LIGHT_SCREEN, + MOVE_CONFUSE_RAY), + + egg_moves(CARVANHA, + MOVE_HYDRO_PUMP, + MOVE_DOUBLE_EDGE, + MOVE_THRASH), + + egg_moves(TRAPINCH, + MOVE_FOCUS_ENERGY, + MOVE_QUICK_ATTACK, + MOVE_GUST), + + egg_moves(MAKUHITA, + MOVE_FAINT_ATTACK, + MOVE_DETECT, + MOVE_FORESIGHT, + MOVE_HELPING_HAND, + MOVE_CROSS_CHOP, + MOVE_REVENGE, + MOVE_DYNAMIC_PUNCH, + MOVE_COUNTER), + + egg_moves(ELECTRIKE, + MOVE_CRUNCH, + MOVE_HEADBUTT, + MOVE_UPROAR, + MOVE_CURSE, + MOVE_SWIFT), + + egg_moves(NUMEL, + MOVE_HOWL, + MOVE_SCARY_FACE, + MOVE_BODY_SLAM, + MOVE_ROLLOUT, + MOVE_DEFENSE_CURL, + MOVE_STOMP), + + egg_moves(SPHEAL, + MOVE_WATER_SPORT, + MOVE_STOCKPILE, + MOVE_SWALLOW, + MOVE_SPIT_UP, + MOVE_YAWN, + MOVE_ROCK_SLIDE, + MOVE_CURSE, + MOVE_FISSURE), + + egg_moves(CACNEA, + MOVE_GRASS_WHISTLE, + MOVE_ACID, + MOVE_TEETER_DANCE, + MOVE_DYNAMIC_PUNCH, + MOVE_COUNTER), + + egg_moves(SNORUNT, + MOVE_BLOCK, + MOVE_SPIKES), + + egg_moves(AZURILL, + MOVE_ENCORE, + MOVE_SING, + MOVE_REFRESH, + MOVE_SLAM, + MOVE_TICKLE), + + egg_moves(SPOINK, + MOVE_FUTURE_SIGHT, + MOVE_EXTRASENSORY, + MOVE_SUBSTITUTE, + MOVE_TRICK), + + egg_moves(PLUSLE, + MOVE_SUBSTITUTE, + MOVE_WISH), + + egg_moves(MINUN, + MOVE_SUBSTITUTE, + MOVE_WISH), + + egg_moves(MAWILE, + MOVE_SWORDS_DANCE, + MOVE_FALSE_SWIPE, + MOVE_POISON_FANG, + MOVE_PSYCH_UP, + MOVE_ANCIENT_POWER, + MOVE_TICKLE), + + egg_moves(MEDITITE, + MOVE_FIRE_PUNCH, + MOVE_THUNDER_PUNCH, + MOVE_ICE_PUNCH, + MOVE_FORESIGHT, + MOVE_FAKE_OUT, + MOVE_BATON_PASS, + MOVE_DYNAMIC_PUNCH), + + egg_moves(SWABLU, + MOVE_AGILITY, + MOVE_HAZE, + MOVE_PURSUIT, + MOVE_RAGE), + + egg_moves(DUSKULL, + MOVE_IMPRISON, + MOVE_DESTINY_BOND, + MOVE_PAIN_SPLIT, + MOVE_GRUDGE, + MOVE_MEMENTO, + MOVE_FAINT_ATTACK), + + egg_moves(ROSELIA, + MOVE_SPIKES, + MOVE_SYNTHESIS, + MOVE_PIN_MISSILE, + MOVE_COTTON_SPORE), + + egg_moves(SLAKOTH, + MOVE_PURSUIT, + MOVE_SLASH, + MOVE_BODY_SLAM, + MOVE_SNORE, + MOVE_CRUSH_CLAW, + MOVE_CURSE, + MOVE_SLEEP_TALK), + + egg_moves(GULPIN, + MOVE_DREAM_EATER, + MOVE_ACID_ARMOR, + MOVE_SMOG, + MOVE_PAIN_SPLIT), + + egg_moves(TROPIUS, + MOVE_HEADBUTT, + MOVE_SLAM, + MOVE_RAZOR_WIND, + MOVE_LEECH_SEED, + MOVE_NATURE_POWER), + + egg_moves(WHISMUR, + MOVE_TAKE_DOWN, + MOVE_SNORE, + MOVE_SWAGGER, + MOVE_EXTRASENSORY, + MOVE_SMELLING_SALT), + + egg_moves(CLAMPERL, + MOVE_REFRESH, + MOVE_MUD_SPORT, + MOVE_BODY_SLAM, + MOVE_SUPERSONIC, + MOVE_BARRIER, + MOVE_CONFUSE_RAY), + + egg_moves(ABSOL, + MOVE_BATON_PASS, + MOVE_FAINT_ATTACK, + MOVE_DOUBLE_EDGE, + MOVE_MAGIC_COAT, + MOVE_CURSE, + MOVE_SUBSTITUTE), + + egg_moves(SHUPPET, + MOVE_DISABLE, + MOVE_DESTINY_BOND, + MOVE_FORESIGHT, + MOVE_ASTONISH, + MOVE_IMPRISON), + + egg_moves(SEVIPER, + MOVE_STOCKPILE, + MOVE_SWALLOW, + MOVE_SPIT_UP, + MOVE_BODY_SLAM), + + egg_moves(ZANGOOSE, + MOVE_FLAIL, + MOVE_DOUBLE_KICK, + MOVE_RAZOR_WIND, + MOVE_COUNTER, + MOVE_ROAR, + MOVE_CURSE), + + egg_moves(RELICANTH, + MOVE_MAGNITUDE, + MOVE_SKULL_BASH, + MOVE_WATER_SPORT, + MOVE_AMNESIA, + MOVE_SLEEP_TALK, + MOVE_ROCK_SLIDE), + + egg_moves(ARON, + MOVE_ENDEAVOR, + MOVE_BODY_SLAM, + MOVE_STOMP, + MOVE_SMELLING_SALT), + + egg_moves(CASTFORM, + MOVE_FUTURE_SIGHT, + MOVE_PSYCH_UP), + + egg_moves(VOLBEAT, + MOVE_BATON_PASS, + MOVE_SILVER_WIND, + MOVE_TRICK), + + egg_moves(ILLUMISE, + MOVE_BATON_PASS, + MOVE_SILVER_WIND, + MOVE_GROWTH), + + egg_moves(LILEEP, + MOVE_BARRIER, + MOVE_RECOVER, + MOVE_MIRROR_COAT, + MOVE_ROCK_SLIDE), + + egg_moves(ANORITH, + MOVE_RAPID_SPIN, + MOVE_KNOCK_OFF, + MOVE_SWORDS_DANCE, + MOVE_ROCK_SLIDE), + + egg_moves(RALTS, + MOVE_DISABLE, + MOVE_WILL_O_WISP, + MOVE_MEAN_LOOK, + MOVE_MEMENTO, + MOVE_DESTINY_BOND), + + egg_moves(BAGON, + MOVE_HYDRO_PUMP, + MOVE_THRASH, + MOVE_DRAGON_RAGE, + MOVE_TWISTER, + MOVE_DRAGON_DANCE), + + egg_moves(CHIMECHO, + MOVE_DISABLE, + MOVE_CURSE, + MOVE_HYPNOSIS, + MOVE_DREAM_EATER), + + EGG_MOVES_TERMINATOR +}; diff --git a/src/data/pokemon/evolution.h b/src/data/pokemon/evolution.h new file mode 100644 index 000000000..8629ac9b1 --- /dev/null +++ b/src/data/pokemon/evolution.h @@ -0,0 +1,192 @@ +#ifndef POKEEMERALD_EVOLUTION_H +#define POKEEMERALD_EVOLUTION_H + +const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] = +{ + [SPECIES_BULBASAUR] = {{EVO_LEVEL, 16, SPECIES_IVYSAUR}}, + [SPECIES_IVYSAUR] = {{EVO_LEVEL, 32, SPECIES_VENUSAUR}}, + [SPECIES_CHARMANDER] = {{EVO_LEVEL, 16, SPECIES_CHARMELEON}}, + [SPECIES_CHARMELEON] = {{EVO_LEVEL, 36, SPECIES_CHARIZARD}}, + [SPECIES_SQUIRTLE] = {{EVO_LEVEL, 16, SPECIES_WARTORTLE}}, + [SPECIES_WARTORTLE] = {{EVO_LEVEL, 36, SPECIES_BLASTOISE}}, + [SPECIES_CATERPIE] = {{EVO_LEVEL, 7, SPECIES_METAPOD}}, + [SPECIES_METAPOD] = {{EVO_LEVEL, 10, SPECIES_BUTTERFREE}}, + [SPECIES_WEEDLE] = {{EVO_LEVEL, 7, SPECIES_KAKUNA}}, + [SPECIES_KAKUNA] = {{EVO_LEVEL, 10, SPECIES_BEEDRILL}}, + [SPECIES_PIDGEY] = {{EVO_LEVEL, 18, SPECIES_PIDGEOTTO}}, + [SPECIES_PIDGEOTTO] = {{EVO_LEVEL, 36, SPECIES_PIDGEOT}}, + [SPECIES_RATTATA] = {{EVO_LEVEL, 20, SPECIES_RATICATE}}, + [SPECIES_SPEAROW] = {{EVO_LEVEL, 20, SPECIES_FEAROW}}, + [SPECIES_EKANS] = {{EVO_LEVEL, 22, SPECIES_ARBOK}}, + [SPECIES_PIKACHU] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}}, + [SPECIES_SANDSHREW] = {{EVO_LEVEL, 22, SPECIES_SANDSLASH}}, + [SPECIES_NIDORAN_F] = {{EVO_LEVEL, 16, SPECIES_NIDORINA}}, + [SPECIES_NIDORINA] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}}, + [SPECIES_NIDORAN_M] = {{EVO_LEVEL, 16, SPECIES_NIDORINO}}, + [SPECIES_NIDORINO] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}}, + [SPECIES_CLEFAIRY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}}, + [SPECIES_VULPIX] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}}, + [SPECIES_JIGGLYPUFF] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}}, + [SPECIES_ZUBAT] = {{EVO_LEVEL, 22, SPECIES_GOLBAT}}, + [SPECIES_GOLBAT] = {{EVO_FRIENDSHIP, 0, SPECIES_CROBAT}}, + [SPECIES_ODDISH] = {{EVO_LEVEL, 21, SPECIES_GLOOM}}, + [SPECIES_GLOOM] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME}, + {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}}, + [SPECIES_PARAS] = {{EVO_LEVEL, 24, SPECIES_PARASECT}}, + [SPECIES_VENONAT] = {{EVO_LEVEL, 31, SPECIES_VENOMOTH}}, + [SPECIES_DIGLETT] = {{EVO_LEVEL, 26, SPECIES_DUGTRIO}}, + [SPECIES_MEOWTH] = {{EVO_LEVEL, 28, SPECIES_PERSIAN}}, + [SPECIES_PSYDUCK] = {{EVO_LEVEL, 33, SPECIES_GOLDUCK}}, + [SPECIES_MANKEY] = {{EVO_LEVEL, 28, SPECIES_PRIMEAPE}}, + [SPECIES_GROWLITHE] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}}, + [SPECIES_POLIWAG] = {{EVO_LEVEL, 25, SPECIES_POLIWHIRL}}, + [SPECIES_POLIWHIRL] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH}, + {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}}, + [SPECIES_ABRA] = {{EVO_LEVEL, 16, SPECIES_KADABRA}}, + [SPECIES_KADABRA] = {{EVO_TRADE, 0, SPECIES_ALAKAZAM}}, + [SPECIES_MACHOP] = {{EVO_LEVEL, 28, SPECIES_MACHOKE}}, + [SPECIES_MACHOKE] = {{EVO_TRADE, 0, SPECIES_MACHAMP}}, + [SPECIES_BELLSPROUT] = {{EVO_LEVEL, 21, SPECIES_WEEPINBELL}}, + [SPECIES_WEEPINBELL] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}}, + [SPECIES_TENTACOOL] = {{EVO_LEVEL, 30, SPECIES_TENTACRUEL}}, + [SPECIES_GEODUDE] = {{EVO_LEVEL, 25, SPECIES_GRAVELER}}, + [SPECIES_GRAVELER] = {{EVO_TRADE, 0, SPECIES_GOLEM}}, + [SPECIES_PONYTA] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH}}, + [SPECIES_SLOWPOKE] = {{EVO_LEVEL, 37, SPECIES_SLOWBRO}, + {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}}, + [SPECIES_MAGNEMITE] = {{EVO_LEVEL, 30, SPECIES_MAGNETON}}, + [SPECIES_DODUO] = {{EVO_LEVEL, 31, SPECIES_DODRIO}}, + [SPECIES_SEEL] = {{EVO_LEVEL, 34, SPECIES_DEWGONG}}, + [SPECIES_GRIMER] = {{EVO_LEVEL, 38, SPECIES_MUK}}, + [SPECIES_SHELLDER] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}}, + [SPECIES_GASTLY] = {{EVO_LEVEL, 25, SPECIES_HAUNTER}}, + [SPECIES_HAUNTER] = {{EVO_TRADE, 0, SPECIES_GENGAR}}, + [SPECIES_ONIX] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}}, + [SPECIES_DROWZEE] = {{EVO_LEVEL, 26, SPECIES_HYPNO}}, + [SPECIES_KRABBY] = {{EVO_LEVEL, 28, SPECIES_KINGLER}}, + [SPECIES_VOLTORB] = {{EVO_LEVEL, 30, SPECIES_ELECTRODE}}, + [SPECIES_EXEGGCUTE] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}}, + [SPECIES_CUBONE] = {{EVO_LEVEL, 28, SPECIES_MAROWAK}}, + [SPECIES_KOFFING] = {{EVO_LEVEL, 35, SPECIES_WEEZING}}, + [SPECIES_RHYHORN] = {{EVO_LEVEL, 42, SPECIES_RHYDON}}, + [SPECIES_CHANSEY] = {{EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}}, + [SPECIES_HORSEA] = {{EVO_LEVEL, 32, SPECIES_SEADRA}}, + [SPECIES_SEADRA] = {{EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}}, + [SPECIES_GOLDEEN] = {{EVO_LEVEL, 33, SPECIES_SEAKING}}, + [SPECIES_STARYU] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}}, + [SPECIES_SCYTHER] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}}, + [SPECIES_MAGIKARP] = {{EVO_LEVEL, 20, SPECIES_GYARADOS}}, + [SPECIES_EEVEE] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON}, + {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON}, + {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON}, + {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON}, + {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}}, + [SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2}}, + [SPECIES_OMANYTE] = {{EVO_LEVEL, 40, SPECIES_OMASTAR}}, + [SPECIES_KABUTO] = {{EVO_LEVEL, 40, SPECIES_KABUTOPS}}, + [SPECIES_DRATINI] = {{EVO_LEVEL, 30, SPECIES_DRAGONAIR}}, + [SPECIES_DRAGONAIR] = {{EVO_LEVEL, 55, SPECIES_DRAGONITE}}, + [SPECIES_CHIKORITA] = {{EVO_LEVEL, 16, SPECIES_BAYLEEF}}, + [SPECIES_BAYLEEF] = {{EVO_LEVEL, 32, SPECIES_MEGANIUM}}, + [SPECIES_CYNDAQUIL] = {{EVO_LEVEL, 14, SPECIES_QUILAVA}}, + [SPECIES_QUILAVA] = {{EVO_LEVEL, 36, SPECIES_TYPHLOSION}}, + [SPECIES_TOTODILE] = {{EVO_LEVEL, 18, SPECIES_CROCONAW}}, + [SPECIES_CROCONAW] = {{EVO_LEVEL, 30, SPECIES_FERALIGATR}}, + [SPECIES_SENTRET] = {{EVO_LEVEL, 15, SPECIES_FURRET}}, + [SPECIES_HOOTHOOT] = {{EVO_LEVEL, 20, SPECIES_NOCTOWL}}, + [SPECIES_LEDYBA] = {{EVO_LEVEL, 18, SPECIES_LEDIAN}}, + [SPECIES_SPINARAK] = {{EVO_LEVEL, 22, SPECIES_ARIADOS}}, + [SPECIES_CHINCHOU] = {{EVO_LEVEL, 27, SPECIES_LANTURN}}, + [SPECIES_PICHU] = {{EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}}, + [SPECIES_CLEFFA] = {{EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}}, + [SPECIES_IGGLYBUFF] = {{EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}}, + [SPECIES_TOGEPI] = {{EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}}, + [SPECIES_NATU] = {{EVO_LEVEL, 25, SPECIES_XATU}}, + [SPECIES_MAREEP] = {{EVO_LEVEL, 15, SPECIES_FLAAFFY}}, + [SPECIES_FLAAFFY] = {{EVO_LEVEL, 30, SPECIES_AMPHAROS}}, + [SPECIES_MARILL] = {{EVO_LEVEL, 18, SPECIES_AZUMARILL}}, + [SPECIES_HOPPIP] = {{EVO_LEVEL, 18, SPECIES_SKIPLOOM}}, + [SPECIES_SKIPLOOM] = {{EVO_LEVEL, 27, SPECIES_JUMPLUFF}}, + [SPECIES_SUNKERN] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}}, + [SPECIES_WOOPER] = {{EVO_LEVEL, 20, SPECIES_QUAGSIRE}}, + [SPECIES_PINECO] = {{EVO_LEVEL, 31, SPECIES_FORRETRESS}}, + [SPECIES_SNUBBULL] = {{EVO_LEVEL, 23, SPECIES_GRANBULL}}, + [SPECIES_TEDDIURSA] = {{EVO_LEVEL, 30, SPECIES_URSARING}}, + [SPECIES_SLUGMA] = {{EVO_LEVEL, 38, SPECIES_MAGCARGO}}, + [SPECIES_SWINUB] = {{EVO_LEVEL, 33, SPECIES_PILOSWINE}}, + [SPECIES_REMORAID] = {{EVO_LEVEL, 25, SPECIES_OCTILLERY}}, + [SPECIES_HOUNDOUR] = {{EVO_LEVEL, 24, SPECIES_HOUNDOOM}}, + [SPECIES_PHANPY] = {{EVO_LEVEL, 25, SPECIES_DONPHAN}}, + [SPECIES_TYROGUE] = {{EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN}, + {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE}, + {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP}}, + [SPECIES_SMOOCHUM] = {{EVO_LEVEL, 30, SPECIES_JYNX}}, + [SPECIES_ELEKID] = {{EVO_LEVEL, 30, SPECIES_ELECTABUZZ}}, + [SPECIES_MAGBY] = {{EVO_LEVEL, 30, SPECIES_MAGMAR}}, + [SPECIES_LARVITAR] = {{EVO_LEVEL, 30, SPECIES_PUPITAR}}, + [SPECIES_PUPITAR] = {{EVO_LEVEL, 55, SPECIES_TYRANITAR}}, + [SPECIES_TREECKO] = {{EVO_LEVEL, 16, SPECIES_GROVYLE}}, + [SPECIES_GROVYLE] = {{EVO_LEVEL, 36, SPECIES_SCEPTILE}}, + [SPECIES_TORCHIC] = {{EVO_LEVEL, 16, SPECIES_COMBUSKEN}}, + [SPECIES_COMBUSKEN] = {{EVO_LEVEL, 36, SPECIES_BLAZIKEN}}, + [SPECIES_MUDKIP] = {{EVO_LEVEL, 16, SPECIES_MARSHTOMP}}, + [SPECIES_MARSHTOMP] = {{EVO_LEVEL, 36, SPECIES_SWAMPERT}}, + [SPECIES_POOCHYENA] = {{EVO_LEVEL, 18, SPECIES_MIGHTYENA}}, + [SPECIES_ZIGZAGOON] = {{EVO_LEVEL, 20, SPECIES_LINOONE}}, + [SPECIES_WURMPLE] = {{EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON}, + {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}}, + [SPECIES_SILCOON] = {{EVO_LEVEL, 10, SPECIES_BEAUTIFLY}}, + [SPECIES_CASCOON] = {{EVO_LEVEL, 10, SPECIES_DUSTOX}}, + [SPECIES_LOTAD] = {{EVO_LEVEL, 14, SPECIES_LOMBRE}}, + [SPECIES_LOMBRE] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}}, + [SPECIES_SEEDOT] = {{EVO_LEVEL, 14, SPECIES_NUZLEAF}}, + [SPECIES_NUZLEAF] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}}, + [SPECIES_NINCADA] = {{EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK}, + {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}}, + [SPECIES_TAILLOW] = {{EVO_LEVEL, 22, SPECIES_SWELLOW}}, + [SPECIES_SHROOMISH] = {{EVO_LEVEL, 23, SPECIES_BRELOOM}}, + [SPECIES_WINGULL] = {{EVO_LEVEL, 25, SPECIES_PELIPPER}}, + [SPECIES_SURSKIT] = {{EVO_LEVEL, 22, SPECIES_MASQUERAIN}}, + [SPECIES_WAILMER] = {{EVO_LEVEL, 40, SPECIES_WAILORD}}, + [SPECIES_SKITTY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}}, + [SPECIES_BALTOY] = {{EVO_LEVEL, 36, SPECIES_CLAYDOL}}, + [SPECIES_BARBOACH] = {{EVO_LEVEL, 30, SPECIES_WHISCASH}}, + [SPECIES_CORPHISH] = {{EVO_LEVEL, 30, SPECIES_CRAWDAUNT}}, + [SPECIES_FEEBAS] = {{EVO_BEAUTY, 170, SPECIES_MILOTIC}}, + [SPECIES_CARVANHA] = {{EVO_LEVEL, 30, SPECIES_SHARPEDO}}, + [SPECIES_TRAPINCH] = {{EVO_LEVEL, 35, SPECIES_VIBRAVA}}, + [SPECIES_VIBRAVA] = {{EVO_LEVEL, 45, SPECIES_FLYGON}}, + [SPECIES_MAKUHITA] = {{EVO_LEVEL, 24, SPECIES_HARIYAMA}}, + [SPECIES_ELECTRIKE] = {{EVO_LEVEL, 26, SPECIES_MANECTRIC}}, + [SPECIES_NUMEL] = {{EVO_LEVEL, 33, SPECIES_CAMERUPT}}, + [SPECIES_SPHEAL] = {{EVO_LEVEL, 32, SPECIES_SEALEO}}, + [SPECIES_SEALEO] = {{EVO_LEVEL, 44, SPECIES_WALREIN}}, + [SPECIES_CACNEA] = {{EVO_LEVEL, 32, SPECIES_CACTURNE}}, + [SPECIES_SNORUNT] = {{EVO_LEVEL, 42, SPECIES_GLALIE}}, + [SPECIES_AZURILL] = {{EVO_FRIENDSHIP, 0, SPECIES_MARILL}}, + [SPECIES_SPOINK] = {{EVO_LEVEL, 32, SPECIES_GRUMPIG}}, + [SPECIES_MEDITITE] = {{EVO_LEVEL, 37, SPECIES_MEDICHAM}}, + [SPECIES_SWABLU] = {{EVO_LEVEL, 35, SPECIES_ALTARIA}}, + [SPECIES_WYNAUT] = {{EVO_LEVEL, 15, SPECIES_WOBBUFFET}}, + [SPECIES_DUSKULL] = {{EVO_LEVEL, 37, SPECIES_DUSCLOPS}}, + [SPECIES_SLAKOTH] = {{EVO_LEVEL, 18, SPECIES_VIGOROTH}}, + [SPECIES_VIGOROTH] = {{EVO_LEVEL, 36, SPECIES_SLAKING}}, + [SPECIES_GULPIN] = {{EVO_LEVEL, 26, SPECIES_SWALOT}}, + [SPECIES_WHISMUR] = {{EVO_LEVEL, 20, SPECIES_LOUDRED}}, + [SPECIES_LOUDRED] = {{EVO_LEVEL, 40, SPECIES_EXPLOUD}}, + [SPECIES_CLAMPERL] = {{EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, + {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}}, + [SPECIES_SHUPPET] = {{EVO_LEVEL, 37, SPECIES_BANETTE}}, + [SPECIES_ARON] = {{EVO_LEVEL, 32, SPECIES_LAIRON}}, + [SPECIES_LAIRON] = {{EVO_LEVEL, 42, SPECIES_AGGRON}}, + [SPECIES_LILEEP] = {{EVO_LEVEL, 40, SPECIES_CRADILY}}, + [SPECIES_ANORITH] = {{EVO_LEVEL, 40, SPECIES_ARMALDO}}, + [SPECIES_RALTS] = {{EVO_LEVEL, 20, SPECIES_KIRLIA}}, + [SPECIES_KIRLIA] = {{EVO_LEVEL, 30, SPECIES_GARDEVOIR}}, + [SPECIES_BAGON] = {{EVO_LEVEL, 30, SPECIES_SHELGON}}, + [SPECIES_SHELGON] = {{EVO_LEVEL, 50, SPECIES_SALAMENCE}}, + [SPECIES_BELDUM] = {{EVO_LEVEL, 20, SPECIES_METANG}}, + [SPECIES_METANG] = {{EVO_LEVEL, 45, SPECIES_METAGROSS}}, +}; + +#endif //POKEEMERALD_EVOLUTION_H diff --git a/src/data/pokemon/experience_tables.h b/src/data/pokemon/experience_tables.h new file mode 100644 index 000000000..58474b6f1 --- /dev/null +++ b/src/data/pokemon/experience_tables.h @@ -0,0 +1,849 @@ +#ifndef POKEEMERALD_EXPERIENCE_TABLES_H +#define POKEEMERALD_EXPERIENCE_TABLES_H + +#define SQUARE(n)(n * n) +#define CUBE(n)(n * n * n) + +#define EXP_SLOW(n)((5 * CUBE(n)) / 4) // (5 * (n)^3) / 4 +#define EXP_FAST(n)((4 * CUBE(n)) / 5) // (4 * (n)^3) / 5 +#define EXP_MEDIUM_FAST(n)(CUBE(n)) // (n)^3 +#define EXP_MEDIUM_SLOW(n)((6 * CUBE(n)) / 5 - (15 * SQUARE(n)) + (100 * n) - 140) // (6 * (n)^3) / 5 - (15 * (n)^2) + (100 * n) - 140 +#define EXP_ERRATIC(n) \ + (n <= 50) ? ((100 - n) * CUBE(n) / 50) \ + :(n <= 68) ? ((150 - n) * CUBE(n) / 100) \ + :(n <= 98) ? (((1911 - 10 * n) / 3) * CUBE(n) / 500) \ + : ((160 - n) * CUBE(n) / 100) +#define EXP_FLUCTUATING(n) \ + (n <= 15) ? (((n + 1) / 3 + 24) * CUBE(n) / 50) \ + :(n <= 36) ? ((n + 14) * CUBE(n) / 50) \ + : (((n / 2) + 32) * CUBE(n) / 50) + +const u32 gExperienceTables[][MAX_MON_LEVEL + 1] = +{ + { // Medium Fast + 0, // 0 + 1, // 1 + EXP_MEDIUM_FAST(2), + EXP_MEDIUM_FAST(3), + EXP_MEDIUM_FAST(4), + EXP_MEDIUM_FAST(5), + EXP_MEDIUM_FAST(6), + EXP_MEDIUM_FAST(7), + EXP_MEDIUM_FAST(8), + EXP_MEDIUM_FAST(9), + EXP_MEDIUM_FAST(10), + EXP_MEDIUM_FAST(11), + EXP_MEDIUM_FAST(12), + EXP_MEDIUM_FAST(13), + EXP_MEDIUM_FAST(14), + EXP_MEDIUM_FAST(15), + EXP_MEDIUM_FAST(16), + EXP_MEDIUM_FAST(17), + EXP_MEDIUM_FAST(18), + EXP_MEDIUM_FAST(19), + EXP_MEDIUM_FAST(20), + EXP_MEDIUM_FAST(21), + EXP_MEDIUM_FAST(22), + EXP_MEDIUM_FAST(23), + EXP_MEDIUM_FAST(24), + EXP_MEDIUM_FAST(25), + EXP_MEDIUM_FAST(26), + EXP_MEDIUM_FAST(27), + EXP_MEDIUM_FAST(28), + EXP_MEDIUM_FAST(29), + EXP_MEDIUM_FAST(30), + EXP_MEDIUM_FAST(31), + EXP_MEDIUM_FAST(32), + EXP_MEDIUM_FAST(33), + EXP_MEDIUM_FAST(34), + EXP_MEDIUM_FAST(35), + EXP_MEDIUM_FAST(36), + EXP_MEDIUM_FAST(37), + EXP_MEDIUM_FAST(38), + EXP_MEDIUM_FAST(39), + EXP_MEDIUM_FAST(40), + EXP_MEDIUM_FAST(41), + EXP_MEDIUM_FAST(42), + EXP_MEDIUM_FAST(43), + EXP_MEDIUM_FAST(44), + EXP_MEDIUM_FAST(45), + EXP_MEDIUM_FAST(46), + EXP_MEDIUM_FAST(47), + EXP_MEDIUM_FAST(48), + EXP_MEDIUM_FAST(49), + EXP_MEDIUM_FAST(50), + EXP_MEDIUM_FAST(51), + EXP_MEDIUM_FAST(52), + EXP_MEDIUM_FAST(53), + EXP_MEDIUM_FAST(54), + EXP_MEDIUM_FAST(55), + EXP_MEDIUM_FAST(56), + EXP_MEDIUM_FAST(57), + EXP_MEDIUM_FAST(58), + EXP_MEDIUM_FAST(59), + EXP_MEDIUM_FAST(60), + EXP_MEDIUM_FAST(61), + EXP_MEDIUM_FAST(62), + EXP_MEDIUM_FAST(63), + EXP_MEDIUM_FAST(64), + EXP_MEDIUM_FAST(65), + EXP_MEDIUM_FAST(66), + EXP_MEDIUM_FAST(67), + EXP_MEDIUM_FAST(68), + EXP_MEDIUM_FAST(69), + EXP_MEDIUM_FAST(70), + EXP_MEDIUM_FAST(71), + EXP_MEDIUM_FAST(72), + EXP_MEDIUM_FAST(73), + EXP_MEDIUM_FAST(74), + EXP_MEDIUM_FAST(75), + EXP_MEDIUM_FAST(76), + EXP_MEDIUM_FAST(77), + EXP_MEDIUM_FAST(78), + EXP_MEDIUM_FAST(79), + EXP_MEDIUM_FAST(80), + EXP_MEDIUM_FAST(81), + EXP_MEDIUM_FAST(82), + EXP_MEDIUM_FAST(83), + EXP_MEDIUM_FAST(84), + EXP_MEDIUM_FAST(85), + EXP_MEDIUM_FAST(86), + EXP_MEDIUM_FAST(87), + EXP_MEDIUM_FAST(88), + EXP_MEDIUM_FAST(89), + EXP_MEDIUM_FAST(90), + EXP_MEDIUM_FAST(91), + EXP_MEDIUM_FAST(92), + EXP_MEDIUM_FAST(93), + EXP_MEDIUM_FAST(94), + EXP_MEDIUM_FAST(95), + EXP_MEDIUM_FAST(96), + EXP_MEDIUM_FAST(97), + EXP_MEDIUM_FAST(98), + EXP_MEDIUM_FAST(99), + EXP_MEDIUM_FAST(100), + }, + { // Erratic + 0, // 0 + 1, // 1 + EXP_ERRATIC(2), + EXP_ERRATIC(3), + EXP_ERRATIC(4), + EXP_ERRATIC(5), + EXP_ERRATIC(6), + EXP_ERRATIC(7), + EXP_ERRATIC(8), + EXP_ERRATIC(9), + EXP_ERRATIC(10), + EXP_ERRATIC(11), + EXP_ERRATIC(12), + EXP_ERRATIC(13), + EXP_ERRATIC(14), + EXP_ERRATIC(15), + EXP_ERRATIC(16), + EXP_ERRATIC(17), + EXP_ERRATIC(18), + EXP_ERRATIC(19), + EXP_ERRATIC(20), + EXP_ERRATIC(21), + EXP_ERRATIC(22), + EXP_ERRATIC(23), + EXP_ERRATIC(24), + EXP_ERRATIC(25), + EXP_ERRATIC(26), + EXP_ERRATIC(27), + EXP_ERRATIC(28), + EXP_ERRATIC(29), + EXP_ERRATIC(30), + EXP_ERRATIC(31), + EXP_ERRATIC(32), + EXP_ERRATIC(33), + EXP_ERRATIC(34), + EXP_ERRATIC(35), + EXP_ERRATIC(36), + EXP_ERRATIC(37), + EXP_ERRATIC(38), + EXP_ERRATIC(39), + EXP_ERRATIC(40), + EXP_ERRATIC(41), + EXP_ERRATIC(42), + EXP_ERRATIC(43), + EXP_ERRATIC(44), + EXP_ERRATIC(45), + EXP_ERRATIC(46), + EXP_ERRATIC(47), + EXP_ERRATIC(48), + EXP_ERRATIC(49), + EXP_ERRATIC(50), + EXP_ERRATIC(51), + EXP_ERRATIC(52), + EXP_ERRATIC(53), + EXP_ERRATIC(54), + EXP_ERRATIC(55), + EXP_ERRATIC(56), + EXP_ERRATIC(57), + EXP_ERRATIC(58), + EXP_ERRATIC(59), + EXP_ERRATIC(60), + EXP_ERRATIC(61), + EXP_ERRATIC(62), + EXP_ERRATIC(63), + EXP_ERRATIC(64), + EXP_ERRATIC(65), + EXP_ERRATIC(66), + EXP_ERRATIC(67), + EXP_ERRATIC(68), + EXP_ERRATIC(69), + EXP_ERRATIC(70), + EXP_ERRATIC(71), + EXP_ERRATIC(72), + EXP_ERRATIC(73), + EXP_ERRATIC(74), + EXP_ERRATIC(75), + EXP_ERRATIC(76), + EXP_ERRATIC(77), + EXP_ERRATIC(78), + EXP_ERRATIC(79), + EXP_ERRATIC(80), + EXP_ERRATIC(81), + EXP_ERRATIC(82), + EXP_ERRATIC(83), + EXP_ERRATIC(84), + EXP_ERRATIC(85), + EXP_ERRATIC(86), + EXP_ERRATIC(87), + EXP_ERRATIC(88), + EXP_ERRATIC(89), + EXP_ERRATIC(90), + EXP_ERRATIC(91), + EXP_ERRATIC(92), + EXP_ERRATIC(93), + EXP_ERRATIC(94), + EXP_ERRATIC(95), + EXP_ERRATIC(96), + EXP_ERRATIC(97), + EXP_ERRATIC(98), + EXP_ERRATIC(99), + EXP_ERRATIC(100), + }, + { // Fluctuating + 0, // 0 + 1, // 1 + EXP_FLUCTUATING(2), + EXP_FLUCTUATING(3), + EXP_FLUCTUATING(4), + EXP_FLUCTUATING(5), + EXP_FLUCTUATING(6), + EXP_FLUCTUATING(7), + EXP_FLUCTUATING(8), + EXP_FLUCTUATING(9), + EXP_FLUCTUATING(10), + EXP_FLUCTUATING(11), + EXP_FLUCTUATING(12), + EXP_FLUCTUATING(13), + EXP_FLUCTUATING(14), + EXP_FLUCTUATING(15), + EXP_FLUCTUATING(16), + EXP_FLUCTUATING(17), + EXP_FLUCTUATING(18), + EXP_FLUCTUATING(19), + EXP_FLUCTUATING(20), + EXP_FLUCTUATING(21), + EXP_FLUCTUATING(22), + EXP_FLUCTUATING(23), + EXP_FLUCTUATING(24), + EXP_FLUCTUATING(25), + EXP_FLUCTUATING(26), + EXP_FLUCTUATING(27), + EXP_FLUCTUATING(28), + EXP_FLUCTUATING(29), + EXP_FLUCTUATING(30), + EXP_FLUCTUATING(31), + EXP_FLUCTUATING(32), + EXP_FLUCTUATING(33), + EXP_FLUCTUATING(34), + EXP_FLUCTUATING(35), + EXP_FLUCTUATING(36), + EXP_FLUCTUATING(37), + EXP_FLUCTUATING(38), + EXP_FLUCTUATING(39), + EXP_FLUCTUATING(40), + EXP_FLUCTUATING(41), + EXP_FLUCTUATING(42), + EXP_FLUCTUATING(43), + EXP_FLUCTUATING(44), + EXP_FLUCTUATING(45), + EXP_FLUCTUATING(46), + EXP_FLUCTUATING(47), + EXP_FLUCTUATING(48), + EXP_FLUCTUATING(49), + EXP_FLUCTUATING(50), + EXP_FLUCTUATING(51), + EXP_FLUCTUATING(52), + EXP_FLUCTUATING(53), + EXP_FLUCTUATING(54), + EXP_FLUCTUATING(55), + EXP_FLUCTUATING(56), + EXP_FLUCTUATING(57), + EXP_FLUCTUATING(58), + EXP_FLUCTUATING(59), + EXP_FLUCTUATING(60), + EXP_FLUCTUATING(61), + EXP_FLUCTUATING(62), + EXP_FLUCTUATING(63), + EXP_FLUCTUATING(64), + EXP_FLUCTUATING(65), + EXP_FLUCTUATING(66), + EXP_FLUCTUATING(67), + EXP_FLUCTUATING(68), + EXP_FLUCTUATING(69), + EXP_FLUCTUATING(70), + EXP_FLUCTUATING(71), + EXP_FLUCTUATING(72), + EXP_FLUCTUATING(73), + EXP_FLUCTUATING(74), + EXP_FLUCTUATING(75), + EXP_FLUCTUATING(76), + EXP_FLUCTUATING(77), + EXP_FLUCTUATING(78), + EXP_FLUCTUATING(79), + EXP_FLUCTUATING(80), + EXP_FLUCTUATING(81), + EXP_FLUCTUATING(82), + EXP_FLUCTUATING(83), + EXP_FLUCTUATING(84), + EXP_FLUCTUATING(85), + EXP_FLUCTUATING(86), + EXP_FLUCTUATING(87), + EXP_FLUCTUATING(88), + EXP_FLUCTUATING(89), + EXP_FLUCTUATING(90), + EXP_FLUCTUATING(91), + EXP_FLUCTUATING(92), + EXP_FLUCTUATING(93), + EXP_FLUCTUATING(94), + EXP_FLUCTUATING(95), + EXP_FLUCTUATING(96), + EXP_FLUCTUATING(97), + EXP_FLUCTUATING(98), + EXP_FLUCTUATING(99), + EXP_FLUCTUATING(100), + }, + { // Medium Slow + 0, // 0 + 1, // 1 + EXP_MEDIUM_SLOW(2), + EXP_MEDIUM_SLOW(3), + EXP_MEDIUM_SLOW(4), + EXP_MEDIUM_SLOW(5), + EXP_MEDIUM_SLOW(6), + EXP_MEDIUM_SLOW(7), + EXP_MEDIUM_SLOW(8), + EXP_MEDIUM_SLOW(9), + EXP_MEDIUM_SLOW(10), + EXP_MEDIUM_SLOW(11), + EXP_MEDIUM_SLOW(12), + EXP_MEDIUM_SLOW(13), + EXP_MEDIUM_SLOW(14), + EXP_MEDIUM_SLOW(15), + EXP_MEDIUM_SLOW(16), + EXP_MEDIUM_SLOW(17), + EXP_MEDIUM_SLOW(18), + EXP_MEDIUM_SLOW(19), + EXP_MEDIUM_SLOW(20), + EXP_MEDIUM_SLOW(21), + EXP_MEDIUM_SLOW(22), + EXP_MEDIUM_SLOW(23), + EXP_MEDIUM_SLOW(24), + EXP_MEDIUM_SLOW(25), + EXP_MEDIUM_SLOW(26), + EXP_MEDIUM_SLOW(27), + EXP_MEDIUM_SLOW(28), + EXP_MEDIUM_SLOW(29), + EXP_MEDIUM_SLOW(30), + EXP_MEDIUM_SLOW(31), + EXP_MEDIUM_SLOW(32), + EXP_MEDIUM_SLOW(33), + EXP_MEDIUM_SLOW(34), + EXP_MEDIUM_SLOW(35), + EXP_MEDIUM_SLOW(36), + EXP_MEDIUM_SLOW(37), + EXP_MEDIUM_SLOW(38), + EXP_MEDIUM_SLOW(39), + EXP_MEDIUM_SLOW(40), + EXP_MEDIUM_SLOW(41), + EXP_MEDIUM_SLOW(42), + EXP_MEDIUM_SLOW(43), + EXP_MEDIUM_SLOW(44), + EXP_MEDIUM_SLOW(45), + EXP_MEDIUM_SLOW(46), + EXP_MEDIUM_SLOW(47), + EXP_MEDIUM_SLOW(48), + EXP_MEDIUM_SLOW(49), + EXP_MEDIUM_SLOW(50), + EXP_MEDIUM_SLOW(51), + EXP_MEDIUM_SLOW(52), + EXP_MEDIUM_SLOW(53), + EXP_MEDIUM_SLOW(54), + EXP_MEDIUM_SLOW(55), + EXP_MEDIUM_SLOW(56), + EXP_MEDIUM_SLOW(57), + EXP_MEDIUM_SLOW(58), + EXP_MEDIUM_SLOW(59), + EXP_MEDIUM_SLOW(60), + EXP_MEDIUM_SLOW(61), + EXP_MEDIUM_SLOW(62), + EXP_MEDIUM_SLOW(63), + EXP_MEDIUM_SLOW(64), + EXP_MEDIUM_SLOW(65), + EXP_MEDIUM_SLOW(66), + EXP_MEDIUM_SLOW(67), + EXP_MEDIUM_SLOW(68), + EXP_MEDIUM_SLOW(69), + EXP_MEDIUM_SLOW(70), + EXP_MEDIUM_SLOW(71), + EXP_MEDIUM_SLOW(72), + EXP_MEDIUM_SLOW(73), + EXP_MEDIUM_SLOW(74), + EXP_MEDIUM_SLOW(75), + EXP_MEDIUM_SLOW(76), + EXP_MEDIUM_SLOW(77), + EXP_MEDIUM_SLOW(78), + EXP_MEDIUM_SLOW(79), + EXP_MEDIUM_SLOW(80), + EXP_MEDIUM_SLOW(81), + EXP_MEDIUM_SLOW(82), + EXP_MEDIUM_SLOW(83), + EXP_MEDIUM_SLOW(84), + EXP_MEDIUM_SLOW(85), + EXP_MEDIUM_SLOW(86), + EXP_MEDIUM_SLOW(87), + EXP_MEDIUM_SLOW(88), + EXP_MEDIUM_SLOW(89), + EXP_MEDIUM_SLOW(90), + EXP_MEDIUM_SLOW(91), + EXP_MEDIUM_SLOW(92), + EXP_MEDIUM_SLOW(93), + EXP_MEDIUM_SLOW(94), + EXP_MEDIUM_SLOW(95), + EXP_MEDIUM_SLOW(96), + EXP_MEDIUM_SLOW(97), + EXP_MEDIUM_SLOW(98), + EXP_MEDIUM_SLOW(99), + EXP_MEDIUM_SLOW(100), + }, + { // Fast + 0, // 0 + 1, // 1 + EXP_FAST(2), + EXP_FAST(3), + EXP_FAST(4), + EXP_FAST(5), + EXP_FAST(6), + EXP_FAST(7), + EXP_FAST(8), + EXP_FAST(9), + EXP_FAST(10), + EXP_FAST(11), + EXP_FAST(12), + EXP_FAST(13), + EXP_FAST(14), + EXP_FAST(15), + EXP_FAST(16), + EXP_FAST(17), + EXP_FAST(18), + EXP_FAST(19), + EXP_FAST(20), + EXP_FAST(21), + EXP_FAST(22), + EXP_FAST(23), + EXP_FAST(24), + EXP_FAST(25), + EXP_FAST(26), + EXP_FAST(27), + EXP_FAST(28), + EXP_FAST(29), + EXP_FAST(30), + EXP_FAST(31), + EXP_FAST(32), + EXP_FAST(33), + EXP_FAST(34), + EXP_FAST(35), + EXP_FAST(36), + EXP_FAST(37), + EXP_FAST(38), + EXP_FAST(39), + EXP_FAST(40), + EXP_FAST(41), + EXP_FAST(42), + EXP_FAST(43), + EXP_FAST(44), + EXP_FAST(45), + EXP_FAST(46), + EXP_FAST(47), + EXP_FAST(48), + EXP_FAST(49), + EXP_FAST(50), + EXP_FAST(51), + EXP_FAST(52), + EXP_FAST(53), + EXP_FAST(54), + EXP_FAST(55), + EXP_FAST(56), + EXP_FAST(57), + EXP_FAST(58), + EXP_FAST(59), + EXP_FAST(60), + EXP_FAST(61), + EXP_FAST(62), + EXP_FAST(63), + EXP_FAST(64), + EXP_FAST(65), + EXP_FAST(66), + EXP_FAST(67), + EXP_FAST(68), + EXP_FAST(69), + EXP_FAST(70), + EXP_FAST(71), + EXP_FAST(72), + EXP_FAST(73), + EXP_FAST(74), + EXP_FAST(75), + EXP_FAST(76), + EXP_FAST(77), + EXP_FAST(78), + EXP_FAST(79), + EXP_FAST(80), + EXP_FAST(81), + EXP_FAST(82), + EXP_FAST(83), + EXP_FAST(84), + EXP_FAST(85), + EXP_FAST(86), + EXP_FAST(87), + EXP_FAST(88), + EXP_FAST(89), + EXP_FAST(90), + EXP_FAST(91), + EXP_FAST(92), + EXP_FAST(93), + EXP_FAST(94), + EXP_FAST(95), + EXP_FAST(96), + EXP_FAST(97), + EXP_FAST(98), + EXP_FAST(99), + EXP_FAST(100), + }, + { // Slow + 0, // 0 + 1, // 1 + EXP_SLOW(2), + EXP_SLOW(3), + EXP_SLOW(4), + EXP_SLOW(5), + EXP_SLOW(6), + EXP_SLOW(7), + EXP_SLOW(8), + EXP_SLOW(9), + EXP_SLOW(10), + EXP_SLOW(11), + EXP_SLOW(12), + EXP_SLOW(13), + EXP_SLOW(14), + EXP_SLOW(15), + EXP_SLOW(16), + EXP_SLOW(17), + EXP_SLOW(18), + EXP_SLOW(19), + EXP_SLOW(20), + EXP_SLOW(21), + EXP_SLOW(22), + EXP_SLOW(23), + EXP_SLOW(24), + EXP_SLOW(25), + EXP_SLOW(26), + EXP_SLOW(27), + EXP_SLOW(28), + EXP_SLOW(29), + EXP_SLOW(30), + EXP_SLOW(31), + EXP_SLOW(32), + EXP_SLOW(33), + EXP_SLOW(34), + EXP_SLOW(35), + EXP_SLOW(36), + EXP_SLOW(37), + EXP_SLOW(38), + EXP_SLOW(39), + EXP_SLOW(40), + EXP_SLOW(41), + EXP_SLOW(42), + EXP_SLOW(43), + EXP_SLOW(44), + EXP_SLOW(45), + EXP_SLOW(46), + EXP_SLOW(47), + EXP_SLOW(48), + EXP_SLOW(49), + EXP_SLOW(50), + EXP_SLOW(51), + EXP_SLOW(52), + EXP_SLOW(53), + EXP_SLOW(54), + EXP_SLOW(55), + EXP_SLOW(56), + EXP_SLOW(57), + EXP_SLOW(58), + EXP_SLOW(59), + EXP_SLOW(60), + EXP_SLOW(61), + EXP_SLOW(62), + EXP_SLOW(63), + EXP_SLOW(64), + EXP_SLOW(65), + EXP_SLOW(66), + EXP_SLOW(67), + EXP_SLOW(68), + EXP_SLOW(69), + EXP_SLOW(70), + EXP_SLOW(71), + EXP_SLOW(72), + EXP_SLOW(73), + EXP_SLOW(74), + EXP_SLOW(75), + EXP_SLOW(76), + EXP_SLOW(77), + EXP_SLOW(78), + EXP_SLOW(79), + EXP_SLOW(80), + EXP_SLOW(81), + EXP_SLOW(82), + EXP_SLOW(83), + EXP_SLOW(84), + EXP_SLOW(85), + EXP_SLOW(86), + EXP_SLOW(87), + EXP_SLOW(88), + EXP_SLOW(89), + EXP_SLOW(90), + EXP_SLOW(91), + EXP_SLOW(92), + EXP_SLOW(93), + EXP_SLOW(94), + EXP_SLOW(95), + EXP_SLOW(96), + EXP_SLOW(97), + EXP_SLOW(98), + EXP_SLOW(99), + EXP_SLOW(100), + }, + { // Medium Fast copy 2 (unused? to-do: investigate) + 0, // 0 + 1, // 1 + EXP_MEDIUM_FAST(2), + EXP_MEDIUM_FAST(3), + EXP_MEDIUM_FAST(4), + EXP_MEDIUM_FAST(5), + EXP_MEDIUM_FAST(6), + EXP_MEDIUM_FAST(7), + EXP_MEDIUM_FAST(8), + EXP_MEDIUM_FAST(9), + EXP_MEDIUM_FAST(10), + EXP_MEDIUM_FAST(11), + EXP_MEDIUM_FAST(12), + EXP_MEDIUM_FAST(13), + EXP_MEDIUM_FAST(14), + EXP_MEDIUM_FAST(15), + EXP_MEDIUM_FAST(16), + EXP_MEDIUM_FAST(17), + EXP_MEDIUM_FAST(18), + EXP_MEDIUM_FAST(19), + EXP_MEDIUM_FAST(20), + EXP_MEDIUM_FAST(21), + EXP_MEDIUM_FAST(22), + EXP_MEDIUM_FAST(23), + EXP_MEDIUM_FAST(24), + EXP_MEDIUM_FAST(25), + EXP_MEDIUM_FAST(26), + EXP_MEDIUM_FAST(27), + EXP_MEDIUM_FAST(28), + EXP_MEDIUM_FAST(29), + EXP_MEDIUM_FAST(30), + EXP_MEDIUM_FAST(31), + EXP_MEDIUM_FAST(32), + EXP_MEDIUM_FAST(33), + EXP_MEDIUM_FAST(34), + EXP_MEDIUM_FAST(35), + EXP_MEDIUM_FAST(36), + EXP_MEDIUM_FAST(37), + EXP_MEDIUM_FAST(38), + EXP_MEDIUM_FAST(39), + EXP_MEDIUM_FAST(40), + EXP_MEDIUM_FAST(41), + EXP_MEDIUM_FAST(42), + EXP_MEDIUM_FAST(43), + EXP_MEDIUM_FAST(44), + EXP_MEDIUM_FAST(45), + EXP_MEDIUM_FAST(46), + EXP_MEDIUM_FAST(47), + EXP_MEDIUM_FAST(48), + EXP_MEDIUM_FAST(49), + EXP_MEDIUM_FAST(50), + EXP_MEDIUM_FAST(51), + EXP_MEDIUM_FAST(52), + EXP_MEDIUM_FAST(53), + EXP_MEDIUM_FAST(54), + EXP_MEDIUM_FAST(55), + EXP_MEDIUM_FAST(56), + EXP_MEDIUM_FAST(57), + EXP_MEDIUM_FAST(58), + EXP_MEDIUM_FAST(59), + EXP_MEDIUM_FAST(60), + EXP_MEDIUM_FAST(61), + EXP_MEDIUM_FAST(62), + EXP_MEDIUM_FAST(63), + EXP_MEDIUM_FAST(64), + EXP_MEDIUM_FAST(65), + EXP_MEDIUM_FAST(66), + EXP_MEDIUM_FAST(67), + EXP_MEDIUM_FAST(68), + EXP_MEDIUM_FAST(69), + EXP_MEDIUM_FAST(70), + EXP_MEDIUM_FAST(71), + EXP_MEDIUM_FAST(72), + EXP_MEDIUM_FAST(73), + EXP_MEDIUM_FAST(74), + EXP_MEDIUM_FAST(75), + EXP_MEDIUM_FAST(76), + EXP_MEDIUM_FAST(77), + EXP_MEDIUM_FAST(78), + EXP_MEDIUM_FAST(79), + EXP_MEDIUM_FAST(80), + EXP_MEDIUM_FAST(81), + EXP_MEDIUM_FAST(82), + EXP_MEDIUM_FAST(83), + EXP_MEDIUM_FAST(84), + EXP_MEDIUM_FAST(85), + EXP_MEDIUM_FAST(86), + EXP_MEDIUM_FAST(87), + EXP_MEDIUM_FAST(88), + EXP_MEDIUM_FAST(89), + EXP_MEDIUM_FAST(90), + EXP_MEDIUM_FAST(91), + EXP_MEDIUM_FAST(92), + EXP_MEDIUM_FAST(93), + EXP_MEDIUM_FAST(94), + EXP_MEDIUM_FAST(95), + EXP_MEDIUM_FAST(96), + EXP_MEDIUM_FAST(97), + EXP_MEDIUM_FAST(98), + EXP_MEDIUM_FAST(99), + EXP_MEDIUM_FAST(100), + }, + { // Medium Fast copy 3 (unused? to-do: investigate) + 0, // 0 + 1, // 1 + EXP_MEDIUM_FAST(2), + EXP_MEDIUM_FAST(3), + EXP_MEDIUM_FAST(4), + EXP_MEDIUM_FAST(5), + EXP_MEDIUM_FAST(6), + EXP_MEDIUM_FAST(7), + EXP_MEDIUM_FAST(8), + EXP_MEDIUM_FAST(9), + EXP_MEDIUM_FAST(10), + EXP_MEDIUM_FAST(11), + EXP_MEDIUM_FAST(12), + EXP_MEDIUM_FAST(13), + EXP_MEDIUM_FAST(14), + EXP_MEDIUM_FAST(15), + EXP_MEDIUM_FAST(16), + EXP_MEDIUM_FAST(17), + EXP_MEDIUM_FAST(18), + EXP_MEDIUM_FAST(19), + EXP_MEDIUM_FAST(20), + EXP_MEDIUM_FAST(21), + EXP_MEDIUM_FAST(22), + EXP_MEDIUM_FAST(23), + EXP_MEDIUM_FAST(24), + EXP_MEDIUM_FAST(25), + EXP_MEDIUM_FAST(26), + EXP_MEDIUM_FAST(27), + EXP_MEDIUM_FAST(28), + EXP_MEDIUM_FAST(29), + EXP_MEDIUM_FAST(30), + EXP_MEDIUM_FAST(31), + EXP_MEDIUM_FAST(32), + EXP_MEDIUM_FAST(33), + EXP_MEDIUM_FAST(34), + EXP_MEDIUM_FAST(35), + EXP_MEDIUM_FAST(36), + EXP_MEDIUM_FAST(37), + EXP_MEDIUM_FAST(38), + EXP_MEDIUM_FAST(39), + EXP_MEDIUM_FAST(40), + EXP_MEDIUM_FAST(41), + EXP_MEDIUM_FAST(42), + EXP_MEDIUM_FAST(43), + EXP_MEDIUM_FAST(44), + EXP_MEDIUM_FAST(45), + EXP_MEDIUM_FAST(46), + EXP_MEDIUM_FAST(47), + EXP_MEDIUM_FAST(48), + EXP_MEDIUM_FAST(49), + EXP_MEDIUM_FAST(50), + EXP_MEDIUM_FAST(51), + EXP_MEDIUM_FAST(52), + EXP_MEDIUM_FAST(53), + EXP_MEDIUM_FAST(54), + EXP_MEDIUM_FAST(55), + EXP_MEDIUM_FAST(56), + EXP_MEDIUM_FAST(57), + EXP_MEDIUM_FAST(58), + EXP_MEDIUM_FAST(59), + EXP_MEDIUM_FAST(60), + EXP_MEDIUM_FAST(61), + EXP_MEDIUM_FAST(62), + EXP_MEDIUM_FAST(63), + EXP_MEDIUM_FAST(64), + EXP_MEDIUM_FAST(65), + EXP_MEDIUM_FAST(66), + EXP_MEDIUM_FAST(67), + EXP_MEDIUM_FAST(68), + EXP_MEDIUM_FAST(69), + EXP_MEDIUM_FAST(70), + EXP_MEDIUM_FAST(71), + EXP_MEDIUM_FAST(72), + EXP_MEDIUM_FAST(73), + EXP_MEDIUM_FAST(74), + EXP_MEDIUM_FAST(75), + EXP_MEDIUM_FAST(76), + EXP_MEDIUM_FAST(77), + EXP_MEDIUM_FAST(78), + EXP_MEDIUM_FAST(79), + EXP_MEDIUM_FAST(80), + EXP_MEDIUM_FAST(81), + EXP_MEDIUM_FAST(82), + EXP_MEDIUM_FAST(83), + EXP_MEDIUM_FAST(84), + EXP_MEDIUM_FAST(85), + EXP_MEDIUM_FAST(86), + EXP_MEDIUM_FAST(87), + EXP_MEDIUM_FAST(88), + EXP_MEDIUM_FAST(89), + EXP_MEDIUM_FAST(90), + EXP_MEDIUM_FAST(91), + EXP_MEDIUM_FAST(92), + EXP_MEDIUM_FAST(93), + EXP_MEDIUM_FAST(94), + EXP_MEDIUM_FAST(95), + EXP_MEDIUM_FAST(96), + EXP_MEDIUM_FAST(97), + EXP_MEDIUM_FAST(98), + EXP_MEDIUM_FAST(99), + EXP_MEDIUM_FAST(100), + } +}; + +#endif //POKEEMERALD_EXPERIENCE_TABLES_H diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h new file mode 100644 index 000000000..6ba0d694e --- /dev/null +++ b/src/data/pokemon/item_effects.h @@ -0,0 +1,241 @@ +#ifndef GUARD_ITEM_EFFECTS_H +#define GUARD_ITEM_EFFECTS_H + +const u8 gItemEffect_Potion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 20}; +const u8 gItemEffect_Antidote[] = {0x00, 0x00, 0x00, 0x10, 0x00, 0x00}; +const u8 gItemEffect_BurnHeal[] = {0x00, 0x00, 0x00, 0x08, 0x00, 0x00}; +const u8 gItemEffect_IceHeal[] = {0x00, 0x00, 0x00, 0x04, 0x00, 0x00}; +const u8 gItemEffect_Awakening[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00}; +const u8 gItemEffect_ParalyzeHeal[] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00}; +const u8 gItemEffect_FullRestore[] = {0x00, 0x00, 0x00, 0x3f, 0x04, 0x00, 0xff}; +const u8 gItemEffect_MaxPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xff}; +const u8 gItemEffect_HyperPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 200}; +const u8 gItemEffect_SuperPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 50}; +const u8 gItemEffect_FullHeal[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00}; +const u8 gItemEffect_Revive[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xfe}; +const u8 gItemEffect_MaxRevive[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xff}; +const u8 gItemEffect_FreshWater[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 50}; +const u8 gItemEffect_SodaPop[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 60}; +const u8 gItemEffect_Lemonade[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 80}; +const u8 gItemEffect_MoomooMilk[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 100}; +const u8 gItemEffect_EnergyPowder[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0xe0, 50, 0xfb, 0xfb, 0xf6}; +const u8 gItemEffect_EnergyRoot[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0xe0, 200, 0xf6, 0xf6, 0xf1}; +const u8 gItemEffect_HealPowder[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0xe0, 0xfb, 0xfb, 0xf6}; +const u8 gItemEffect_RevivalHerb[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0xe0, 0xff, 0xf1, 0xf1, 0xec}; +const u8 gItemEffect_Ether[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0a}; +const u8 gItemEffect_MaxEther[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7f}; +const u8 gItemEffect_Elixir[] = {0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a}; +const u8 gItemEffect_MaxElixir[] = {0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x7f}; +const u8 gItemEffect_LavaCookie[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00}; +const u8 gItemEffect_BlueFlute[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00}; +const u8 gItemEffect_YellowFlute[] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x00}; +const u8 gItemEffect_RedFlute[] = {0x80, 0x00, 0x00, 0x00, 0x00, 0x00}; +const u8 gItemEffect_BerryJuice[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 20}; +const u8 gItemEffect_SacredAsh[] = {0x40, 0x00, 0x00, 0x00, 0x44, 0x00, 0xff}; +const u8 gItemEffect_HPUp[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0a, 0x05, 0x03, 0x02}; +const u8 gItemEffect_Protein[] = {0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0x0a, 0x05, 0x03, 0x02}; +const u8 gItemEffect_Iron[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x0a, 0x05, 0x03, 0x02}; +const u8 gItemEffect_Carbos[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x0a, 0x05, 0x03, 0x02}; +const u8 gItemEffect_Calcium[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x0a, 0x05, 0x03, 0x02}; +const u8 gItemEffect_RareCandy[] = {0x00, 0x00, 0x00, 0x40, 0x44, 0xe0, 253, 0x05, 0x03, 0x02}; +const u8 gItemEffect_PPUp[] = {0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0x05, 0x03, 0x02}; +const u8 gItemEffect_Zinc[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x0a, 0x05, 0x03, 0x02}; +const u8 gItemEffect_PPMax[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x05, 0x03, 0x02}; +const u8 gItemEffect_GuardSpec[] = {0x00, 0x00, 0x00, 0x80, 0x00, 0x60, 0x01, 0x01}; +const u8 gItemEffect_DireHit[] = {0x20, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01}; +const u8 gItemEffect_XAttack[] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01}; +const u8 gItemEffect_XDefend[] = {0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01}; +const u8 gItemEffect_XSpeed[] = {0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01}; +const u8 gItemEffect_XAccuracy[] = {0x00, 0x00, 0x10, 0x00, 0x00, 0x60, 0x01, 0x01}; +const u8 gItemEffect_XSpecial[] = {0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x01, 0x01}; +const u8 gItemEffect_SunStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00}; +const u8 gItemEffect_MoonStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00}; +const u8 gItemEffect_FireStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00}; +const u8 gItemEffect_ThunderStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00}; +const u8 gItemEffect_WaterStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00}; +const u8 gItemEffect_LeafStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00}; +const u8 gItemEffect_CheriBerry[] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00}; +const u8 gItemEffect_ChestoBerry[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00}; +const u8 gItemEffect_PechaBerry[] = {0x00, 0x00, 0x00, 0x10, 0x00, 0x00}; +const u8 gItemEffect_RawstBerry[] = {0x00, 0x00, 0x00, 0x08, 0x00, 0x00}; +const u8 gItemEffect_AspearBerry[] = {0x00, 0x00, 0x00, 0x04, 0x00, 0x00}; +const u8 gItemEffect_LeppaBerry[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0a}; +const u8 gItemEffect_OranBerry[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 10}; +const u8 gItemEffect_PersimBerry[] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x00}; +const u8 gItemEffect_LumBerry[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00}; +const u8 gItemEffect_SitrusBerry[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 30}; +const u8 gItemEffect_PomegBerry[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0xf6, 0x0a, 0x05, 0x02}; +const u8 gItemEffect_KelpsyBerry[] = {0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xf6, 0x0a, 0x05, 0x02}; +const u8 gItemEffect_QualotBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf6, 0x0a, 0x05, 0x02}; +const u8 gItemEffect_HondrewBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xf6, 0x0a, 0x05, 0x02}; +const u8 gItemEffect_GrepaBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0xf6, 0x0a, 0x05, 0x02}; +const u8 gItemEffect_TamatoBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0xf6, 0x0a, 0x05, 0x02}; + +const u8 *const gItemEffectTable[] = +{ + gItemEffect_Potion, + gItemEffect_Antidote, + gItemEffect_BurnHeal, + gItemEffect_IceHeal, + gItemEffect_Awakening, + gItemEffect_ParalyzeHeal, + gItemEffect_FullRestore, + gItemEffect_MaxPotion, + gItemEffect_HyperPotion, + gItemEffect_SuperPotion, + gItemEffect_FullHeal, + gItemEffect_Revive, + gItemEffect_MaxRevive, + gItemEffect_FreshWater, + gItemEffect_SodaPop, + gItemEffect_Lemonade, + gItemEffect_MoomooMilk, + gItemEffect_EnergyPowder, + gItemEffect_EnergyRoot, + gItemEffect_HealPowder, + gItemEffect_RevivalHerb, + gItemEffect_Ether, + gItemEffect_MaxEther, + gItemEffect_Elixir, + gItemEffect_MaxElixir, + gItemEffect_LavaCookie, + gItemEffect_BlueFlute, + gItemEffect_YellowFlute, + gItemEffect_RedFlute, + NULL, + NULL, + gItemEffect_BerryJuice, + gItemEffect_SacredAsh, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + gItemEffect_HPUp, + gItemEffect_Protein, + gItemEffect_Iron, + gItemEffect_Carbos, + gItemEffect_Calcium, + gItemEffect_RareCandy, + gItemEffect_PPUp, + gItemEffect_Zinc, + gItemEffect_PPMax, + NULL, + gItemEffect_GuardSpec, + gItemEffect_DireHit, + gItemEffect_XAttack, + gItemEffect_XDefend, + gItemEffect_XSpeed, + gItemEffect_XAccuracy, + gItemEffect_XSpecial, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + gItemEffect_SunStone, + gItemEffect_MoonStone, + gItemEffect_FireStone, + gItemEffect_ThunderStone, + gItemEffect_WaterStone, + gItemEffect_LeafStone, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + gItemEffect_CheriBerry, + gItemEffect_ChestoBerry, + gItemEffect_PechaBerry, + gItemEffect_RawstBerry, + gItemEffect_AspearBerry, + gItemEffect_LeppaBerry, + gItemEffect_OranBerry, + gItemEffect_PersimBerry, + gItemEffect_LumBerry, + gItemEffect_SitrusBerry, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + gItemEffect_PomegBerry, + gItemEffect_KelpsyBerry, + gItemEffect_QualotBerry, + gItemEffect_HondrewBerry, + gItemEffect_GrepaBerry, + gItemEffect_TamatoBerry, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +#endif //GUARD_ITEM_EFFECTS_H diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h new file mode 100644 index 000000000..0f648526c --- /dev/null +++ b/src/data/pokemon/level_up_learnset_pointers.h @@ -0,0 +1,420 @@ +#ifndef POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H +#define POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H + +const u16 *const gLevelUpLearnsets[NUM_SPECIES] = +{ + [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/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h new file mode 100644 index 000000000..062873aee --- /dev/null +++ b/src/data/pokemon/level_up_learnsets.h @@ -0,0 +1,5623 @@ +#ifndef POKEEMERALD_LEVEL_UP_LEARNSETS_H +#define POKEEMERALD_LEVEL_UP_LEARNSETS_H + +#define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move) +#define LEVEL_UP_END 0xffff + +static const u16 sBulbasaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(25, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(32, MOVE_GROWTH), + LEVEL_UP_MOVE(39, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(46, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const u16 sIvysaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(38, MOVE_GROWTH), + LEVEL_UP_MOVE(47, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const u16 sVenusaurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(10, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(29, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_GROWTH), + LEVEL_UP_MOVE(53, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const u16 sCharmanderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(19, MOVE_RAGE), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(31, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(49, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const u16 sCharmeleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(20, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(55, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const u16 sCharizardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(20, MOVE_RAGE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(36, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(44, MOVE_SLASH), + LEVEL_UP_MOVE(54, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(64, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const u16 sSquirtleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(18, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(47, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sWartortleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(53, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sBlastoiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(55, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(68, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sCaterpieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const u16 sMetapodLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const u16 sButterfreeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(14, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(23, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_GUST), + LEVEL_UP_MOVE(34, MOVE_PSYBEAM), + LEVEL_UP_MOVE(40, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(47, MOVE_SILVER_WIND), + LEVEL_UP_END +}; + +static const u16 sWeedleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_END +}; + +static const u16 sKakunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE(20, MOVE_TWINEEDLE), + LEVEL_UP_MOVE(25, MOVE_RAGE), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(35, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const u16 sPidgeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(25, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(31, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const u16 sPidgeottoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(27, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const u16 sPidgeotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_GUST), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(27, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(34, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(62, MOVE_MIRROR_MOVE), + LEVEL_UP_END +}; + +static const u16 sRattataLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(20, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(27, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const u16 sRaticateLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(40, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(50, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const u16 sSpearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(31, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sFearowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(26, MOVE_PURSUIT), + LEVEL_UP_MOVE(32, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(40, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sEkansLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_GLARE), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(32, MOVE_ACID), + LEVEL_UP_MOVE(37, MOVE_STOCKPILE), + LEVEL_UP_MOVE(37, MOVE_SWALLOW), + LEVEL_UP_MOVE(37, MOVE_SPIT_UP), + LEVEL_UP_MOVE(44, MOVE_HAZE), + LEVEL_UP_END +}; + +static const u16 sArbokLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_POISON_STING), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_GLARE), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(38, MOVE_ACID), + LEVEL_UP_MOVE(46, MOVE_STOCKPILE), + LEVEL_UP_MOVE(46, MOVE_SWALLOW), + LEVEL_UP_MOVE(46, MOVE_SPIT_UP), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_END +}; + +static const u16 sPikachuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(26, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(33, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_THUNDER), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; + +static const u16 sSandshrewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(37, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(45, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const u16 sSandslashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_SWIFT), + LEVEL_UP_MOVE(42, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(52, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(62, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const u16 sNidoranFLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const u16 sNidorinaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 8, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_POISON_STING), + LEVEL_UP_MOVE(22, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(53, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const u16 sNidoqueenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const u16 sNidoranMLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_POISON_STING), + LEVEL_UP_MOVE(20, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(23, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(30, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const u16 sNidorinoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(18, MOVE_POISON_STING), + LEVEL_UP_MOVE(22, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(34, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(53, MOVE_HORN_DRILL), + LEVEL_UP_END +}; + +static const u16 sNidokingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(23, MOVE_THRASH), + LEVEL_UP_END +}; + +static const u16 sClefairyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_SING), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(17, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(25, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(29, MOVE_METRONOME), + LEVEL_UP_MOVE(33, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(45, MOVE_METEOR_MASH), + LEVEL_UP_END +}; + +static const u16 sClefableLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_END +}; + +static const u16 sVulpixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(21, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_IMPRISON), + LEVEL_UP_MOVE(29, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(37, MOVE_GRUDGE), + LEVEL_UP_MOVE(41, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const u16 sNinetalesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(45, MOVE_FIRE_SPIN), + LEVEL_UP_END +}; + +static const u16 sJigglypuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(14, MOVE_DISABLE), + LEVEL_UP_MOVE(19, MOVE_ROLLOUT), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_MIMIC), + LEVEL_UP_MOVE(44, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sWigglytuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; + +static const u16 sZubatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(31, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(36, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(41, MOVE_POISON_FANG), + LEVEL_UP_MOVE(46, MOVE_HAZE), + LEVEL_UP_END +}; + +static const u16 sGolbatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_POISON_FANG), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_END +}; + +static const u16 sOddishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(32, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(39, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const u16 sGloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(16, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(18, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(24, MOVE_ACID), + LEVEL_UP_MOVE(35, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const u16 sVileplumeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const u16 sParasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(25, MOVE_SPORE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_GROWTH), + LEVEL_UP_MOVE(43, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(49, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; + +static const u16 sParasectLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(27, MOVE_SPORE), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_GROWTH), + LEVEL_UP_MOVE(51, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(59, MOVE_AROMATHERAPY), + LEVEL_UP_END +}; + +static const u16 sVenonatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(17, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(28, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_PSYBEAM), + LEVEL_UP_MOVE(36, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(41, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const u16 sVenomothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SILVER_WIND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(17, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(28, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(36, MOVE_PSYBEAM), + LEVEL_UP_MOVE(42, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const u16 sDiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(25, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const u16 sDugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(25, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(26, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(38, MOVE_SLASH), + LEVEL_UP_MOVE(51, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(64, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const u16 sMeowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_PAY_DAY), + LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(46, MOVE_SLASH), + LEVEL_UP_MOVE(50, MOVE_FAKE_OUT), + LEVEL_UP_END +}; + +static const u16 sPersianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_PAY_DAY), + LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(38, MOVE_SCREECH), + LEVEL_UP_MOVE(46, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(53, MOVE_SLASH), + LEVEL_UP_MOVE(59, MOVE_FAKE_OUT), + LEVEL_UP_END +}; + +static const u16 sPsyduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(40, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sGolduckLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(44, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sMankeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(33, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(39, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(51, MOVE_THRASH), + LEVEL_UP_END +}; + +static const u16 sPrimeapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 9, MOVE_LOW_KICK), + LEVEL_UP_MOVE(15, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(21, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(27, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(28, MOVE_RAGE), + LEVEL_UP_MOVE(36, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(45, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(63, MOVE_THRASH), + LEVEL_UP_END +}; + +static const u16 sGrowlitheLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 7, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(19, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const u16 sArcanineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(49, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; + +static const u16 sPoliwagLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(25, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sPoliwhirlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(27, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(43, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sPoliwrathLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE(35, MOVE_SUBMISSION), + LEVEL_UP_MOVE(51, MOVE_MIND_READER), + LEVEL_UP_END +}; + +static const u16 sAbraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_END +}; + +static const u16 sKadabraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_DISABLE), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_TRICK), + LEVEL_UP_END +}; + +static const u16 sAlakazamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_KINESIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_DISABLE), + LEVEL_UP_MOVE(21, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(33, MOVE_CALM_MIND), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_TRICK), + LEVEL_UP_END +}; + +static const u16 sMachopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(22, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(31, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(37, MOVE_SUBMISSION), + LEVEL_UP_MOVE(40, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(43, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(49, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const u16 sMachokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(22, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(41, MOVE_SUBMISSION), + LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(51, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const u16 sMachampLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_KARATE_CHOP), + LEVEL_UP_MOVE(19, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(22, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(33, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(41, MOVE_SUBMISSION), + LEVEL_UP_MOVE(46, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(51, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(59, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const u16 sBellsproutLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(17, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(23, MOVE_ACID), + LEVEL_UP_MOVE(30, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(37, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(45, MOVE_SLAM), + LEVEL_UP_END +}; + +static const u16 sWeepinbellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_WRAP), + LEVEL_UP_MOVE(15, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(17, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(19, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(24, MOVE_ACID), + LEVEL_UP_MOVE(33, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(42, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(54, MOVE_SLAM), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_END +}; + +static const u16 sTentacoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_CONSTRICT), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_WRAP), + LEVEL_UP_MOVE(36, MOVE_BARRIER), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sTentacruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_CONSTRICT), + LEVEL_UP_MOVE(19, MOVE_ACID), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(30, MOVE_WRAP), + LEVEL_UP_MOVE(38, MOVE_BARRIER), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sGeodudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(26, MOVE_ROLLOUT), + LEVEL_UP_MOVE(31, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sGravelerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sGolemLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_EXPLOSION), + LEVEL_UP_MOVE(62, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sPonytaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(14, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const u16 sRapidashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(14, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(50, MOVE_BOUNCE), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const u16 sSlowpokeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const u16 sSlowbroLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(37, MOVE_WITHDRAW), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(54, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const u16 sMagnemiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_SPARK), + LEVEL_UP_MOVE(32, MOVE_LOCK_ON), + LEVEL_UP_MOVE(38, MOVE_SWIFT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const u16 sMagnetonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 6, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(16, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(26, MOVE_SPARK), + LEVEL_UP_MOVE(35, MOVE_LOCK_ON), + LEVEL_UP_MOVE(44, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(53, MOVE_SCREECH), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const u16 sFarfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(11, MOVE_LEER), + LEVEL_UP_MOVE(16, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(26, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(31, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; + +static const u16 sDoduoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(25, MOVE_RAGE), + LEVEL_UP_MOVE(33, MOVE_UPROAR), + LEVEL_UP_MOVE(37, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sDodrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(25, MOVE_RAGE), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(47, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(60, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sSeelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 9, MOVE_GROWL), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(49, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const u16 sDewgongLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 9, MOVE_GROWL), + LEVEL_UP_MOVE(17, MOVE_ICY_WIND), + LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(34, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(51, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(64, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const u16 sGrimerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_DISABLE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(19, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(43, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(53, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const u16 sMukLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_DISABLE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(19, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(47, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(61, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const u16 sShellderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(17, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_LEER), + LEVEL_UP_MOVE(41, MOVE_CLAMP), + LEVEL_UP_MOVE(49, MOVE_ICE_BEAM), + LEVEL_UP_END +}; + +static const u16 sCloysterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_SPIKE_CANNON), + LEVEL_UP_END +}; + +static const u16 sGastlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(36, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const u16 sHaunterLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const u16 sGengarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 8, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(21, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(39, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(48, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const u16 sOnixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(21, MOVE_HARDEN), + LEVEL_UP_MOVE(25, MOVE_RAGE), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(49, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sDrowzeeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(31, MOVE_POISON_GAS), + LEVEL_UP_MOVE(36, MOVE_MEDITATE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const u16 sHypnoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_POISON_GAS), + LEVEL_UP_MOVE(40, MOVE_MEDITATE), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(60, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const u16 sKrabbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VICE_GRIP), + LEVEL_UP_MOVE(16, MOVE_HARDEN), + LEVEL_UP_MOVE(23, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(27, MOVE_STOMP), + LEVEL_UP_MOVE(34, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(41, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_CRABHAMMER), + LEVEL_UP_END +}; + +static const u16 sKinglerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VICE_GRIP), + LEVEL_UP_MOVE(16, MOVE_HARDEN), + LEVEL_UP_MOVE(23, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(27, MOVE_STOMP), + LEVEL_UP_MOVE(38, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(49, MOVE_PROTECT), + LEVEL_UP_MOVE(57, MOVE_CRABHAMMER), + LEVEL_UP_END +}; + +static const u16 sVoltorbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(46, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const u16 sElectrodeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(15, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(34, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(48, MOVE_SWIFT), + LEVEL_UP_MOVE(54, MOVE_EXPLOSION), + LEVEL_UP_MOVE(59, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const u16 sExeggcuteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 7, MOVE_REFLECT), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(31, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(37, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const u16 sExeggutorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_EGG_BOMB), + LEVEL_UP_END +}; + +static const u16 sCuboneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_LEER), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_BONEMERANG), + LEVEL_UP_MOVE(29, MOVE_RAGE), + LEVEL_UP_MOVE(33, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(37, MOVE_THRASH), + LEVEL_UP_MOVE(41, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sMarowakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(13, MOVE_HEADBUTT), + LEVEL_UP_MOVE(17, MOVE_LEER), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_BONEMERANG), + LEVEL_UP_MOVE(32, MOVE_RAGE), + LEVEL_UP_MOVE(39, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(46, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_BONE_RUSH), + LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sHitmonleeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 6, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE(16, MOVE_JUMP_KICK), + LEVEL_UP_MOVE(20, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(26, MOVE_HI_JUMP_KICK), + LEVEL_UP_MOVE(31, MOVE_MIND_READER), + LEVEL_UP_MOVE(36, MOVE_FORESIGHT), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(51, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const u16 sHitmonchanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 7, MOVE_AGILITY), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(20, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(26, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(26, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(38, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(44, MOVE_DETECT), + LEVEL_UP_MOVE(50, MOVE_COUNTER), + LEVEL_UP_END +}; + +static const u16 sLickitungLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(12, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(18, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(29, MOVE_WRAP), + LEVEL_UP_MOVE(34, MOVE_DISABLE), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(51, MOVE_REFRESH), + LEVEL_UP_END +}; + +static const u16 sKoffingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_SMOG), + LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(21, MOVE_SLUDGE), + LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(33, MOVE_HAZE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(45, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(49, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const u16 sWeezingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 9, MOVE_SMOG), + LEVEL_UP_MOVE(17, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(21, MOVE_SLUDGE), + LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(33, MOVE_HAZE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(51, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(58, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const u16 sRhyhornLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(38, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +static const u16 sRhydonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(15, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(38, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(46, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(58, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(66, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +static const u16 sChanseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(13, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(23, MOVE_MINIMIZE), + LEVEL_UP_MOVE(29, MOVE_SING), + LEVEL_UP_MOVE(35, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(41, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(49, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sTangelaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_GROWTH), + LEVEL_UP_MOVE(19, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(22, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(28, MOVE_BIND), + LEVEL_UP_MOVE(31, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(40, MOVE_SLAM), + LEVEL_UP_MOVE(46, MOVE_TICKLE), + LEVEL_UP_END +}; + +static const u16 sKangaskhanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(31, MOVE_RAGE), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const u16 sHorseaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(15, MOVE_LEER), + LEVEL_UP_MOVE(22, MOVE_WATER_GUN), + LEVEL_UP_MOVE(29, MOVE_TWISTER), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_END +}; + +static const u16 sSeadraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(15, MOVE_LEER), + LEVEL_UP_MOVE(22, MOVE_WATER_GUN), + LEVEL_UP_MOVE(29, MOVE_TWISTER), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE), + LEVEL_UP_END +}; + +static const u16 sGoldeenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(38, MOVE_WATERFALL), + LEVEL_UP_MOVE(43, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(52, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sSeakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(10, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(24, MOVE_FLAIL), + LEVEL_UP_MOVE(29, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(41, MOVE_WATERFALL), + LEVEL_UP_MOVE(49, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(61, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sStaryuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(15, MOVE_RECOVER), + LEVEL_UP_MOVE(19, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(24, MOVE_SWIFT), + LEVEL_UP_MOVE(28, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(33, MOVE_MINIMIZE), + LEVEL_UP_MOVE(37, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sStarmieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE(33, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; + +static const u16 sMrmimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(13, MOVE_MEDITATE), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(21, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(21, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PSYBEAM), + LEVEL_UP_MOVE(33, MOVE_RECYCLE), + LEVEL_UP_MOVE(37, MOVE_TRICK), + LEVEL_UP_MOVE(41, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_BATON_PASS), + LEVEL_UP_MOVE(53, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const u16 sScytherLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), + LEVEL_UP_END +}; + +static const u16 sJynxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 9, MOVE_LOVELY_KISS), + LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(21, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(25, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(35, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(41, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(51, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(57, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(67, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const u16 sElectabuzzLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(47, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(58, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const u16 sMagmarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(33, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(57, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const u16 sPinsirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_BIND), + LEVEL_UP_MOVE(13, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(19, MOVE_HARDEN), + LEVEL_UP_MOVE(25, MOVE_REVENGE), + LEVEL_UP_MOVE(31, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(37, MOVE_GUILLOTINE), + LEVEL_UP_MOVE(43, MOVE_SUBMISSION), + LEVEL_UP_MOVE(49, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; + +static const u16 sTaurosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(19, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(26, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_THRASH), + LEVEL_UP_MOVE(53, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +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 +}; + +static const u16 sGyaradosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(25, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(30, MOVE_LEER), + LEVEL_UP_MOVE(35, MOVE_TWISTER), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sLaprasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 7, MOVE_MIST), + LEVEL_UP_MOVE(13, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(19, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(25, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(31, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const u16 sDittoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), + LEVEL_UP_END +}; + +static const u16 sEeveeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_GROWL), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const u16 sVaporeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_WATER_GUN), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAZE), + LEVEL_UP_MOVE(47, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sJolteonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(36, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(42, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const u16 sFlareonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_EMBER), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(42, MOVE_SMOG), + LEVEL_UP_MOVE(47, MOVE_LEER), + LEVEL_UP_MOVE(52, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const u16 sPorygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 9, MOVE_AGILITY), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_RECOVER), + LEVEL_UP_MOVE(24, MOVE_SHARPEN), + LEVEL_UP_MOVE(32, MOVE_LOCK_ON), + LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(44, MOVE_RECYCLE), + LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const u16 sOmanyteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(31, MOVE_LEER), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(43, MOVE_TICKLE), + LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sOmastarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(31, MOVE_LEER), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(46, MOVE_TICKLE), + LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sKabutoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_ABSORB), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(43, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(49, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(55, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +static const u16 sKabutopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_ABSORB), + LEVEL_UP_MOVE(19, MOVE_LEER), + LEVEL_UP_MOVE(25, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(40, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(55, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(65, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +static const u16 sAerodactylLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_AGILITY), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(50, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sSnorlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_AMNESIA), + LEVEL_UP_MOVE(10, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(15, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_SNORE), + LEVEL_UP_MOVE(33, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(37, MOVE_BLOCK), + LEVEL_UP_MOVE(42, MOVE_COVET), + LEVEL_UP_MOVE(46, MOVE_ROLLOUT), + LEVEL_UP_MOVE(51, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sArticunoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(13, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_MIND_READER), + LEVEL_UP_MOVE(49, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(61, MOVE_REFLECT), + LEVEL_UP_MOVE(73, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const u16 sZapdosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_DETECT), + LEVEL_UP_MOVE(49, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(61, MOVE_CHARGE), + LEVEL_UP_MOVE(73, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(85, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const u16 sMoltresLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(61, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(73, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(85, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const u16 sDratiniLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_TWISTER), + LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sDragonairLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_TWISTER), + LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(56, MOVE_OUTRAGE), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sDragoniteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_TWISTER), + LEVEL_UP_MOVE(22, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(55, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(61, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sMewtwoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(11, MOVE_BARRIER), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(55, MOVE_MIST), + LEVEL_UP_MOVE(66, MOVE_PSYCHIC), + LEVEL_UP_MOVE(77, MOVE_AMNESIA), + LEVEL_UP_MOVE(88, MOVE_RECOVER), + LEVEL_UP_MOVE(99, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const u16 sMewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE(10, MOVE_TRANSFORM), + LEVEL_UP_MOVE(20, MOVE_MEGA_PUNCH), + LEVEL_UP_MOVE(30, MOVE_METRONOME), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +static const u16 sChikoritaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(22, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(29, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(43, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(50, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const u16 sBayleefLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(39, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const u16 sMeganiumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 8, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(12, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(23, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(51, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(61, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const u16 sCyndaquilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(27, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(46, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const u16 sQuilavaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(54, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const u16 sTyphlosionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 6, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(31, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(45, MOVE_SWIFT), + LEVEL_UP_MOVE(60, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const u16 sTotodileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sCroconawLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(45, MOVE_SCREECH), + LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sFeraligatrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sSentretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(24, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(49, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const u16 sFurretLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(37, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(48, MOVE_REST), + LEVEL_UP_MOVE(59, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const u16 sHoothootLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), + LEVEL_UP_MOVE(11, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(34, MOVE_CONFUSION), + LEVEL_UP_MOVE(48, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const u16 sNoctowlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 6, MOVE_FORESIGHT), + LEVEL_UP_MOVE(11, MOVE_PECK), + LEVEL_UP_MOVE(16, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_REFLECT), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_CONFUSION), + LEVEL_UP_MOVE(57, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const u16 sLedybaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(22, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sLedianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_COMET_PUNCH), + LEVEL_UP_MOVE(24, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(24, MOVE_REFLECT), + LEVEL_UP_MOVE(24, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(33, MOVE_BATON_PASS), + LEVEL_UP_MOVE(42, MOVE_SWIFT), + LEVEL_UP_MOVE(51, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(23, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(30, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(37, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(53, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 6, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(17, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(25, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(34, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(43, MOVE_SPIDER_WEB), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_MOVE(63, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const u16 sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(28, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_POISON_FANG), + LEVEL_UP_MOVE(56, MOVE_HAZE), + LEVEL_UP_END +}; + +static const u16 sChinchouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const u16 sLanturnLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_SPARK), + LEVEL_UP_MOVE(32, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(61, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const u16 sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), + LEVEL_UP_END +}; + +static const u16 sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 8, MOVE_SING), + LEVEL_UP_MOVE(13, MOVE_SWEET_KISS), + LEVEL_UP_END +}; + +static const u16 sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_POUND), + LEVEL_UP_MOVE(14, MOVE_SWEET_KISS), + LEVEL_UP_END +}; + +static const u16 sTogepiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_METRONOME), + LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(31, MOVE_WISH), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sTogeticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_METRONOME), + LEVEL_UP_MOVE(11, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(16, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(31, MOVE_WISH), + LEVEL_UP_MOVE(36, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sNatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_TELEPORT), + LEVEL_UP_MOVE(30, MOVE_WISH), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const u16 sXatuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_TELEPORT), + LEVEL_UP_MOVE(35, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(65, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const u16 sMareepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(16, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(23, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const u16 sFlaaffyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const u16 sAmpharosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(27, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(57, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const u16 sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(44, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(55, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const u16 sMarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sAzumarillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROLLOUT), + LEVEL_UP_MOVE(24, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sSudowoodoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 9, MOVE_FLAIL), + LEVEL_UP_MOVE(17, MOVE_LOW_KICK), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_BLOCK), + LEVEL_UP_MOVE(41, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(49, MOVE_SLAM), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(35, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(51, MOVE_SWAGGER), + LEVEL_UP_END +}; + +static const u16 sHoppipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(20, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(30, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const u16 sSkiploomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(29, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(36, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const u16 sJumpluffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_TACKLE), + LEVEL_UP_MOVE(13, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE(22, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(33, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(44, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const u16 sAipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_ASTONISH), + LEVEL_UP_MOVE(18, MOVE_BATON_PASS), + LEVEL_UP_MOVE(25, MOVE_TICKLE), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(38, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_SCREECH), + LEVEL_UP_MOVE(50, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sSunkernLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const u16 sSunfloraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(18, MOVE_INGRAIN), + LEVEL_UP_MOVE(25, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(30, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(42, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const u16 sYanmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(19, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(31, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_END +}; + +static const u16 sWooperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_SLAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_YAWN), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(51, MOVE_MIST), + LEVEL_UP_MOVE(51, MOVE_HAZE), + LEVEL_UP_END +}; + +static const u16 sQuagsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(11, MOVE_SLAM), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(23, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_YAWN), + LEVEL_UP_MOVE(42, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(49, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(61, MOVE_MIST), + LEVEL_UP_MOVE(61, MOVE_HAZE), + LEVEL_UP_END +}; + +static const u16 sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_CONFUSION), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(36, MOVE_PSYBEAM), + LEVEL_UP_MOVE(42, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(47, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_MORNING_SUN), + LEVEL_UP_END +}; + +static const u16 sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 8, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(47, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_MOONLIGHT), + LEVEL_UP_END +}; + +static const u16 sMurkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_PURSUIT), + LEVEL_UP_MOVE(22, MOVE_HAZE), + LEVEL_UP_MOVE(27, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(35, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(40, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; + +static const u16 sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE(15, MOVE_WATER_GUN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(34, MOVE_HEADBUTT), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const u16 sMisdreavusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 6, MOVE_SPITE), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(23, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(30, MOVE_PSYBEAM), + LEVEL_UP_MOVE(37, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(45, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(53, MOVE_GRUDGE), + LEVEL_UP_END +}; + +static const u16 sUnownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_END +}; + +static const u16 sWobbuffetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const u16 sGirafarigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(13, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_BATON_PASS), + LEVEL_UP_MOVE(43, MOVE_PSYBEAM), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const u16 sPinecoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(43, MOVE_SPIKES), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sForretressLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 8, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(15, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(39, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_SPIKES), + LEVEL_UP_MOVE(59, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sDunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(11, MOVE_YAWN), + LEVEL_UP_MOVE(14, MOVE_GLARE), + LEVEL_UP_MOVE(21, MOVE_SPITE), + LEVEL_UP_MOVE(24, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const u16 sGligarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 6, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HARDEN), + LEVEL_UP_MOVE(20, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(28, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const u16 sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_BIND), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(21, MOVE_HARDEN), + LEVEL_UP_MOVE(25, MOVE_RAGE), + LEVEL_UP_MOVE(33, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_SLAM), + LEVEL_UP_MOVE(45, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sSnubbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_LICK), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(34, MOVE_RAGE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(53, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const u16 sGranbullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_LICK), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_RAGE), + LEVEL_UP_MOVE(49, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const u16 sQwilfishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_MINIMIZE), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(28, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(41, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), + LEVEL_UP_END +}; + +static const u16 sShuckleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 9, MOVE_WRAP), + LEVEL_UP_MOVE(14, MOVE_ENCORE), + LEVEL_UP_MOVE(23, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_BIDE), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_END +}; + +static const u16 sHeracrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE(11, MOVE_ENDURE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_REVERSAL), + LEVEL_UP_MOVE(53, MOVE_MEGAHORN), + LEVEL_UP_END +}; + +static const u16 sSneaselLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_ICY_WIND), + LEVEL_UP_MOVE(50, MOVE_SLASH), + LEVEL_UP_MOVE(57, MOVE_BEAT_UP), + LEVEL_UP_MOVE(64, MOVE_METAL_CLAW), + LEVEL_UP_END +}; + +static const u16 sTeddiursaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_END +}; + +static const u16 sUrsaringLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(25, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(49, MOVE_THRASH), + LEVEL_UP_END +}; + +static const u16 sSlugmaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(22, MOVE_HARDEN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(50, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const u16 sMagcargoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(22, MOVE_HARDEN), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(60, MOVE_BODY_SLAM), + LEVEL_UP_END +}; + +static const u16 sSwinubLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_AMNESIA), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE( 1, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(19, MOVE_ENDURE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(42, MOVE_MIST), + LEVEL_UP_MOVE(56, MOVE_BLIZZARD), + LEVEL_UP_MOVE(70, MOVE_AMNESIA), + LEVEL_UP_END +}; + +static const u16 sCorsolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_BUBBLE), + LEVEL_UP_MOVE(17, MOVE_RECOVER), + LEVEL_UP_MOVE(17, MOVE_REFRESH), + LEVEL_UP_MOVE(23, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(28, MOVE_SPIKE_CANNON), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(39, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(45, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +static const u16 sRemoraidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_LOCK_ON), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(33, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(44, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sOctilleryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(11, MOVE_CONSTRICT), + LEVEL_UP_MOVE(22, MOVE_PSYBEAM), + LEVEL_UP_MOVE(22, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(22, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(25, MOVE_OCTAZOOKA), + LEVEL_UP_MOVE(38, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(54, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(70, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sDelibirdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_END +}; + +static const u16 sMantineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 8, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(43, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(50, MOVE_CONFUSE_RAY), + LEVEL_UP_END +}; + +static const u16 sSkarmoryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE(10, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWIFT), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(26, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(29, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(32, MOVE_STEEL_WING), + LEVEL_UP_MOVE(42, MOVE_SPIKES), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_END +}; + +static const u16 sHoundourLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_BITE), + LEVEL_UP_MOVE(31, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const u16 sHoundoomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(27, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(43, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(59, MOVE_CRUNCH), + LEVEL_UP_END +}; + +static const u16 sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(15, MOVE_LEER), + LEVEL_UP_MOVE(22, MOVE_WATER_GUN), + LEVEL_UP_MOVE(29, MOVE_TWISTER), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(62, MOVE_DRAGON_DANCE), + LEVEL_UP_END +}; + +static const u16 sPhanpyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_ENDURE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sDonphanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(17, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const u16 sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 9, MOVE_AGILITY), + LEVEL_UP_MOVE(12, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_RECOVER), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(32, MOVE_LOCK_ON), + LEVEL_UP_MOVE(36, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(44, MOVE_RECYCLE), + LEVEL_UP_MOVE(48, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const u16 sStantlerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_ASTONISH), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_CALM_MIND), + LEVEL_UP_END +}; + +static const u16 sSmeargleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SKETCH), + LEVEL_UP_MOVE(11, MOVE_SKETCH), + LEVEL_UP_MOVE(21, MOVE_SKETCH), + LEVEL_UP_MOVE(31, MOVE_SKETCH), + LEVEL_UP_MOVE(41, MOVE_SKETCH), + LEVEL_UP_MOVE(51, MOVE_SKETCH), + LEVEL_UP_MOVE(61, MOVE_SKETCH), + LEVEL_UP_MOVE(71, MOVE_SKETCH), + LEVEL_UP_MOVE(81, MOVE_SKETCH), + LEVEL_UP_MOVE(91, MOVE_SKETCH), + LEVEL_UP_END +}; + +static const u16 sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(19, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(25, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(31, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_DETECT), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const u16 sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(21, MOVE_CONFUSION), + LEVEL_UP_MOVE(25, MOVE_SING), + LEVEL_UP_MOVE(33, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(37, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(57, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const u16 sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(17, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(33, MOVE_SCREECH), + LEVEL_UP_MOVE(41, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(49, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const u16 sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_SMOG), + LEVEL_UP_MOVE(19, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(25, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(37, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(49, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const u16 sMiltankLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_MILK_DRINK), + LEVEL_UP_MOVE(26, MOVE_BIDE), + LEVEL_UP_MOVE(34, MOVE_ROLLOUT), + LEVEL_UP_MOVE(43, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(53, MOVE_HEAL_BELL), + LEVEL_UP_END +}; + +static const u16 sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_REFRESH), + LEVEL_UP_MOVE(10, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(18, MOVE_MINIMIZE), + LEVEL_UP_MOVE(23, MOVE_SING), + LEVEL_UP_MOVE(28, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(33, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(40, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sRaikouLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(41, MOVE_SPARK), + LEVEL_UP_MOVE(51, MOVE_REFLECT), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(71, MOVE_THUNDER), + LEVEL_UP_MOVE(81, MOVE_CALM_MIND), + LEVEL_UP_END +}; + +static const u16 sEnteiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(31, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(41, MOVE_STOMP), + LEVEL_UP_MOVE(51, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(61, MOVE_SWAGGER), + LEVEL_UP_MOVE(71, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(81, MOVE_CALM_MIND), + LEVEL_UP_END +}; + +static const u16 sSuicuneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(11, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(21, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(31, MOVE_GUST), + LEVEL_UP_MOVE(41, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(51, MOVE_MIST), + LEVEL_UP_MOVE(61, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(71, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(81, MOVE_CALM_MIND), + LEVEL_UP_END +}; + +static const u16 sLarvitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(36, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sPupitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(56, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sTyranitarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 8, MOVE_SANDSTORM), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_THRASH), + LEVEL_UP_MOVE(38, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(61, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sLugiaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(66, MOVE_SWIFT), + LEVEL_UP_MOVE(77, MOVE_AEROBLAST), + LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const u16 sHoOhLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(11, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(22, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(66, MOVE_SWIFT), + LEVEL_UP_MOVE(77, MOVE_SACRED_FIRE), + LEVEL_UP_MOVE(88, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(99, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const u16 sCelebiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RECOVER), + LEVEL_UP_MOVE( 1, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const u16 sSpecies252LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies253LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies254LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies255LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies256LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies257LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies258LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies259LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies260LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies261LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies262LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies263LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies264LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies265LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies266LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies267LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies268LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies269LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies270LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies271LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies272LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies273LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies274LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies275LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sSpecies276LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const u16 sTreeckoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PURSUIT), + LEVEL_UP_MOVE(21, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_SLAM), + LEVEL_UP_MOVE(41, MOVE_DETECT), + LEVEL_UP_MOVE(46, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const u16 sGrovyleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(41, MOVE_SLAM), + LEVEL_UP_MOVE(47, MOVE_DETECT), + LEVEL_UP_MOVE(53, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; + +static const u16 sSceptileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(11, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_PURSUIT), + LEVEL_UP_MOVE(23, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(51, MOVE_DETECT), + LEVEL_UP_MOVE(59, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; + +static const u16 sTorchicLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_PECK), + LEVEL_UP_MOVE(19, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(25, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_END +}; + +static const u16 sCombuskenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(39, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(50, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const u16 sBlazikenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_EMBER), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(17, MOVE_PECK), + LEVEL_UP_MOVE(21, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(28, MOVE_BULK_UP), + LEVEL_UP_MOVE(32, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(36, MOVE_BLAZE_KICK), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(49, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(59, MOVE_SKY_UPPERCUT), + LEVEL_UP_END +}; + +static const u16 sMudkipLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(19, MOVE_FORESIGHT), + LEVEL_UP_MOVE(24, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(42, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(46, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const u16 sMarshtompLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(42, MOVE_PROTECT), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const u16 sSwampertLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_BIDE), + LEVEL_UP_MOVE(16, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_FORESIGHT), + LEVEL_UP_MOVE(25, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(46, MOVE_PROTECT), + LEVEL_UP_MOVE(52, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(61, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const u16 sPoochyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(33, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_THIEF), + LEVEL_UP_END +}; + +static const u16 sMightyenaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_HOWL), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(22, MOVE_ROAR), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(42, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_THIEF), + LEVEL_UP_END +}; + +static const u16 sZigzagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(21, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(25, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(29, MOVE_COVET), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +static const u16 sLinooneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(35, MOVE_COVET), + LEVEL_UP_MOVE(41, MOVE_SLASH), + LEVEL_UP_MOVE(47, MOVE_REST), + LEVEL_UP_MOVE(53, MOVE_BELLY_DRUM), + LEVEL_UP_END +}; + +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 +}; + +static const u16 sSilcoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const u16 sBeautiflyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_ATTRACT), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_GIGA_DRAIN), + LEVEL_UP_END +}; + +static const u16 sCascoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_END +}; + +static const u16 sDustoxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_GUST), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(24, MOVE_PSYBEAM), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(34, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_END +}; + +static const u16 sLotadLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(43, MOVE_MEGA_DRAIN), + LEVEL_UP_END +}; + +static const u16 sLombreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ABSORB), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(31, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(37, MOVE_THIEF), + LEVEL_UP_MOVE(43, MOVE_UPROAR), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sLudicoloLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; + +static const u16 sSeedotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(31, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(43, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const u16 sNuzleafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_NATURE_POWER), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_TORMENT), + LEVEL_UP_MOVE(31, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(37, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(49, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; + +static const u16 sShiftryLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), + LEVEL_UP_END +}; + +static const u16 sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(31, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(38, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(45, MOVE_DIG), + LEVEL_UP_END +}; + +static const u16 sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_BATON_PASS), + LEVEL_UP_END +}; + +static const u16 sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(19, MOVE_MIND_READER), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_GRUDGE), + LEVEL_UP_END +}; + +static const u16 sTaillowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(26, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(34, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sSwellowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(28, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(38, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(49, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(36, MOVE_GROWTH), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_SPORE), + LEVEL_UP_END +}; + +static const u16 sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(36, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(45, MOVE_MIND_READER), + LEVEL_UP_MOVE(54, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; + +static const u16 sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(12, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(27, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(34, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_FLAIL), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_END +}; + +static const u16 sWingullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(43, MOVE_PURSUIT), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sPelipperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 3, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(21, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_STOCKPILE), + LEVEL_UP_MOVE(33, MOVE_SWALLOW), + LEVEL_UP_MOVE(47, MOVE_SPIT_UP), + LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(25, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(31, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_HAZE), + LEVEL_UP_END +}; + +static const u16 sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(19, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(26, MOVE_GUST), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(47, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(53, MOVE_WHIRLWIND), + LEVEL_UP_END +}; + +static const u16 sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(23, MOVE_ASTONISH), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(46, MOVE_AMNESIA), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_ROLLOUT), + LEVEL_UP_MOVE(19, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(23, MOVE_ASTONISH), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_MIST), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(44, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(52, MOVE_AMNESIA), + LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_SING), + LEVEL_UP_MOVE(15, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(19, MOVE_ASSIST), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(27, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; + +static const u16 sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(12, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(49, MOVE_ANCIENT_POWER), + LEVEL_UP_END +}; + +static const u16 sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(45, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const u16 sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 3, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(11, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(19, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(36, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(42, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(55, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const u16 sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(28, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(31, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(46, MOVE_LOCK_ON), + LEVEL_UP_END +}; + +static const u16 sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_CURSE), + LEVEL_UP_MOVE(14, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(17, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(27, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_MOVE(46, MOVE_HEAT_WAVE), + LEVEL_UP_END +}; + +static const u16 sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 9, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_ASTONISH), + LEVEL_UP_MOVE(17, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(37, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(26, MOVE_REST), + LEVEL_UP_MOVE(26, MOVE_SNORE), + LEVEL_UP_MOVE(31, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const u16 sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(21, MOVE_AMNESIA), + LEVEL_UP_MOVE(26, MOVE_REST), + LEVEL_UP_MOVE(26, MOVE_SNORE), + LEVEL_UP_MOVE(36, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(46, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(56, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const u16 sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_WATER_GUN), + LEVEL_UP_MOVE(16, MOVE_AGILITY), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_ATTRACT), + LEVEL_UP_MOVE(36, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(40, MOVE_FLAIL), + LEVEL_UP_MOVE(48, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const u16 sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VICE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(44, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const u16 sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_VICE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_VICE_GRIP), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(20, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(23, MOVE_PROTECT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(34, MOVE_TAUNT), + LEVEL_UP_MOVE(39, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(52, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +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 +}; + +static const u16 sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_WRAP), + LEVEL_UP_MOVE(10, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(15, MOVE_REFRESH), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(25, MOVE_TWISTER), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(35, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(40, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(45, MOVE_ATTRACT), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; + +static const u16 sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_RAGE), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(16, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(28, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_TAUNT), + LEVEL_UP_MOVE(43, MOVE_SWAGGER), + LEVEL_UP_MOVE(48, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(53, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_DIG), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(57, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(17, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(41, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(28, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(31, MOVE_SMELLING_SALT), + LEVEL_UP_MOVE(37, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const u16 sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(10, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(13, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(33, MOVE_SMELLING_SALT), + LEVEL_UP_MOVE(40, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_ENDURE), + LEVEL_UP_MOVE(51, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(55, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const u16 sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_BITE), + LEVEL_UP_MOVE(36, MOVE_THUNDER), + LEVEL_UP_MOVE(41, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const u16 sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(31, MOVE_ROAR), + LEVEL_UP_MOVE(39, MOVE_BITE), + LEVEL_UP_MOVE(45, MOVE_THUNDER), + LEVEL_UP_MOVE(53, MOVE_CHARGE), + LEVEL_UP_END +}; + +static const u16 sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(41, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(11, MOVE_EMBER), + LEVEL_UP_MOVE(19, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_AMNESIA), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_ERUPTION), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const u16 sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_MOVE(49, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const u16 sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(47, MOVE_BLIZZARD), + LEVEL_UP_MOVE(55, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const u16 sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(25, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_HAIL), + LEVEL_UP_MOVE(39, MOVE_REST), + LEVEL_UP_MOVE(39, MOVE_SNORE), + LEVEL_UP_MOVE(50, MOVE_BLIZZARD), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const u16 sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(33, MOVE_SPIKES), + LEVEL_UP_MOVE(37, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(41, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(45, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const u16 sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(17, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(25, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SPIKES), + LEVEL_UP_MOVE(41, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(47, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(53, MOVE_SANDSTORM), + LEVEL_UP_END +}; + +static const u16 sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(37, MOVE_HAIL), + LEVEL_UP_MOVE(43, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const u16 sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 7, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const u16 sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const u16 sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(19, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(25, MOVE_PSYWAVE), + LEVEL_UP_MOVE(31, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(37, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(43, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(49, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const u16 sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 3, MOVE_CHARM), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_BUBBLE), + LEVEL_UP_MOVE(15, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_WATER_GUN), + LEVEL_UP_END +}; + +static const u16 sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_REST), + LEVEL_UP_MOVE(37, MOVE_SNORE), + LEVEL_UP_MOVE(43, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const u16 sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(25, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(28, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_REST), + LEVEL_UP_MOVE(43, MOVE_SNORE), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const u16 sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(31, MOVE_CHARGE), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_CHARM), + LEVEL_UP_MOVE(31, MOVE_CHARGE), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(40, MOVE_BATON_PASS), + LEVEL_UP_MOVE(47, MOVE_AGILITY), + LEVEL_UP_END +}; + +static const u16 sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(21, MOVE_VICE_GRIP), + LEVEL_UP_MOVE(26, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(31, MOVE_BATON_PASS), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(46, MOVE_STOCKPILE), + LEVEL_UP_MOVE(46, MOVE_SWALLOW), + LEVEL_UP_MOVE(46, MOVE_SPIT_UP), + LEVEL_UP_END +}; + +static const u16 sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK), + LEVEL_UP_MOVE(38, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_RECOVER), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(12, MOVE_DETECT), + LEVEL_UP_MOVE(18, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(22, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_HI_JUMP_KICK), + LEVEL_UP_MOVE(40, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_RECOVER), + LEVEL_UP_END +}; + +static const u16 sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(38, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(41, MOVE_REFRESH), + LEVEL_UP_MOVE(48, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const u16 sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_SING), + LEVEL_UP_MOVE(18, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(21, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(28, MOVE_MIST), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(40, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(45, MOVE_REFRESH), + LEVEL_UP_MOVE(54, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; + +static const u16 sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_COUNTER), + LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const u16 sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(45, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const u16 sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 5, MOVE_DISABLE), + LEVEL_UP_MOVE(12, MOVE_FORESIGHT), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_PURSUIT), + LEVEL_UP_MOVE(34, MOVE_CURSE), + LEVEL_UP_MOVE(37, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE(41, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(51, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(58, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const u16 sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 5, MOVE_GROWTH), + LEVEL_UP_MOVE( 9, MOVE_POISON_STING), + LEVEL_UP_MOVE(13, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(17, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(29, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(33, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(41, MOVE_INGRAIN), + LEVEL_UP_MOVE(45, MOVE_TOXIC), + LEVEL_UP_MOVE(49, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(53, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(57, MOVE_SYNTHESIS), + LEVEL_UP_END +}; + +static const u16 sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const u16 sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_UPROAR), + LEVEL_UP_MOVE(19, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(25, MOVE_ENDURE), + LEVEL_UP_MOVE(31, MOVE_SLASH), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(49, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const u16 sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(19, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_AMNESIA), + LEVEL_UP_MOVE(31, MOVE_COVET), + LEVEL_UP_MOVE(36, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const u16 sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(28, MOVE_TOXIC), + LEVEL_UP_MOVE(34, MOVE_STOCKPILE), + LEVEL_UP_MOVE(34, MOVE_SPIT_UP), + LEVEL_UP_MOVE(34, MOVE_SWALLOW), + LEVEL_UP_MOVE(39, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; + +static const u16 sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 6, MOVE_YAWN), + LEVEL_UP_MOVE( 9, MOVE_POISON_GAS), + LEVEL_UP_MOVE(14, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_STOCKPILE), + LEVEL_UP_MOVE(40, MOVE_SPIT_UP), + LEVEL_UP_MOVE(40, MOVE_SWALLOW), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_BOMB), + LEVEL_UP_END +}; + +static const u16 sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(11, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(27, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(31, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(37, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(47, MOVE_SYNTHESIS), + LEVEL_UP_END +}; + +static const u16 sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(25, MOVE_STOMP), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_ROAR), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const u16 sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_ROAR), + LEVEL_UP_MOVE(51, MOVE_REST), + LEVEL_UP_MOVE(51, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const u16 sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 5, MOVE_UPROAR), + LEVEL_UP_MOVE(11, MOVE_ASTONISH), + LEVEL_UP_MOVE(15, MOVE_HOWL), + LEVEL_UP_MOVE(23, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(29, MOVE_STOMP), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(45, MOVE_ROAR), + LEVEL_UP_MOVE(55, MOVE_REST), + LEVEL_UP_MOVE(55, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(63, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; + +static const u16 sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLAMP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_END +}; + +static const u16 sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 8, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_AGILITY), + LEVEL_UP_MOVE(22, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE( 9, MOVE_TAUNT), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const u16 sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(37, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_SNATCH), + LEVEL_UP_MOVE(56, MOVE_GRUDGE), + LEVEL_UP_END +}; + +static const u16 sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 8, MOVE_SCREECH), + LEVEL_UP_MOVE(13, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(20, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(39, MOVE_FAINT_ATTACK), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(55, MOVE_SNATCH), + LEVEL_UP_MOVE(64, MOVE_GRUDGE), + LEVEL_UP_END +}; + +static const u16 sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(16, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(19, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_GLARE), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(34, MOVE_POISON_FANG), + LEVEL_UP_MOVE(37, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_HAZE), + LEVEL_UP_END +}; + +static const u16 sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(13, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(46, MOVE_DETECT), + LEVEL_UP_MOVE(55, MOVE_FALSE_SWIPE), + LEVEL_UP_END +}; + +static const u16 sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(22, MOVE_YAWN), + LEVEL_UP_MOVE(29, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(57, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(64, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const u16 sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(34, MOVE_PROTECT), + LEVEL_UP_MOVE(39, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(45, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEADBUTT), + LEVEL_UP_MOVE(13, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(21, MOVE_ROAR), + LEVEL_UP_MOVE(25, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_PROTECT), + LEVEL_UP_MOVE(50, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(30, MOVE_WEATHER_BALL), + LEVEL_UP_END +}; + +static const u16 sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 9, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(25, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(17, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(21, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(37, MOVE_COVET), + LEVEL_UP_END +}; + +static const u16 sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(43, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(50, MOVE_STOCKPILE), + LEVEL_UP_MOVE(50, MOVE_SPIT_UP), + LEVEL_UP_MOVE(50, MOVE_SWALLOW), + LEVEL_UP_END +}; + +static const u16 sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 8, MOVE_CONSTRICT), + LEVEL_UP_MOVE(15, MOVE_ACID), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(48, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(60, MOVE_STOCKPILE), + LEVEL_UP_MOVE(60, MOVE_SPIT_UP), + LEVEL_UP_MOVE(60, MOVE_SWALLOW), + LEVEL_UP_END +}; + +static const u16 sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(49, MOVE_SLASH), + LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const u16 sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(13, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(19, MOVE_WATER_GUN), + LEVEL_UP_MOVE(25, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(31, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(46, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(55, MOVE_SLASH), + LEVEL_UP_MOVE(64, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const u16 sRaltsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(31, MOVE_IMPRISON), + LEVEL_UP_MOVE(36, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(41, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(46, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const u16 sKirliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_IMPRISON), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(47, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(54, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const u16 sGardevoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 6, MOVE_CONFUSION), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(16, MOVE_TELEPORT), + LEVEL_UP_MOVE(21, MOVE_CALM_MIND), + LEVEL_UP_MOVE(26, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(51, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(60, MOVE_DREAM_EATER), + LEVEL_UP_END +}; + +static const u16 sBagonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(33, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(49, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(53, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sShelgonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(69, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(78, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sSalamenceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 5, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(25, MOVE_EMBER), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(38, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(47, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(50, MOVE_FLY), + LEVEL_UP_MOVE(61, MOVE_CRUNCH), + LEVEL_UP_MOVE(79, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(93, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const u16 sBeldumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const u16 sMetangLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_PURSUIT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(56, MOVE_AGILITY), + LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sMetagrossLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(20, MOVE_CONFUSION), + LEVEL_UP_MOVE(20, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(26, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_PURSUIT), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(44, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_METEOR_MASH), + LEVEL_UP_MOVE(66, MOVE_AGILITY), + LEVEL_UP_MOVE(77, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sRegirockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sRegiceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_ICY_WIND), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sRegisteelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), + LEVEL_UP_MOVE( 9, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(41, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_AMNESIA), + LEVEL_UP_MOVE(49, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(57, MOVE_LOCK_ON), + LEVEL_UP_MOVE(65, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_CALM_MIND), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(75, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; + +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), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_BULK_UP), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_FISSURE), + LEVEL_UP_MOVE(65, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(75, MOVE_ERUPTION), + LEVEL_UP_END +}; + +static const u16 sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_FLY), + LEVEL_UP_MOVE(50, MOVE_REST), + LEVEL_UP_MOVE(60, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(65, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const u16 sLatiasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_WISH), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_MIST_BALL), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_CHARM), + LEVEL_UP_END +}; + +static const u16 sLatiosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 5, MOVE_MEMENTO), + LEVEL_UP_MOVE(10, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(20, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(25, MOVE_PROTECT), + LEVEL_UP_MOVE(30, MOVE_REFRESH), + LEVEL_UP_MOVE(35, MOVE_LUSTER_PURGE), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(45, MOVE_RECOVER), + LEVEL_UP_MOVE(50, MOVE_DRAGON_DANCE), + LEVEL_UP_END +}; + +static const u16 sJirachiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_REST), + LEVEL_UP_MOVE(10, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_PSYCHIC), + LEVEL_UP_MOVE(25, MOVE_REFRESH), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(40, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(45, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(50, MOVE_DOOM_DESIRE), + LEVEL_UP_END +}; + +static const u16 sDeoxysLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 5, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(15, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(20, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_PSYCHIC), + LEVEL_UP_MOVE(30, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(50, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; + +static const u16 sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_UPROAR), + LEVEL_UP_MOVE(25, MOVE_YAWN), + LEVEL_UP_MOVE(30, MOVE_PSYWAVE), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(38, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(41, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(46, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +#endif //POKEEMERALD_LEVEL_UP_LEARNSETS_H diff --git a/src/data/pokemon/tmhm_learnsets.h b/src/data/pokemon/tmhm_learnsets.h new file mode 100644 index 000000000..f14478863 --- /dev/null +++ b/src/data/pokemon/tmhm_learnsets.h @@ -0,0 +1,9393 @@ +#ifndef GUARD_TMHM_LEARNSETS_H +#define GUARD_TMHM_LEARNSETS_H + +#define TMHM_LEARNSET(moves) {(u32)(moves), ((u64)(moves) >> 32)} +#define TMHM(tmhm) ((u64)1 << (ITEM_##tmhm - ITEM_TM01_FOCUS_PUNCH)) + +// This table determines which TMs and HMs a species is capable of learning. +// Each entry is a 64-bit bit array spread across two 32-bit values, with +// each bit corresponding to a . +const u32 gTMHMLearnsets[][2] = +{ + [SPECIES_NONE] = TMHM_LEARNSET(0), + + [SPECIES_BULBASAUR] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_IVYSAUR] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_VENUSAUR] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CHARMANDER] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM02_DRAGON_CLAW) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CHARMELEON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM02_DRAGON_CLAW) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CHARIZARD] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM02_DRAGON_CLAW) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM47_STEEL_WING) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM02_FLY) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SQUIRTLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_WARTORTLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_BLASTOISE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_CATERPIE] = TMHM_LEARNSET(0), + + [SPECIES_METAPOD] = TMHM_LEARNSET(0), + + [SPECIES_BUTTERFREE] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_WEEDLE] = TMHM_LEARNSET(0), + + [SPECIES_KAKUNA] = TMHM_LEARNSET(0), + + [SPECIES_BEEDRILL] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_PIDGEY] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_PIDGEOTTO] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_PIDGEOT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_RATTATA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_RATICATE] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SPEAROW] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_FEAROW] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_EKANS] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH)), + + [SPECIES_ARBOK] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH)), + + [SPECIES_PIKACHU] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_RAICHU] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SANDSHREW] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SANDSLASH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NIDORAN_F] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NIDORINA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NIDOQUEEN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NIDORAN_M] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NIDORINO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NIDOKING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CLEFAIRY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH)), + + [SPECIES_CLEFABLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH)), + + [SPECIES_VULPIX] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT)), + + [SPECIES_NINETALES] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT)), + + [SPECIES_JIGGLYPUFF] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH)), + + [SPECIES_WIGGLYTUFF] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH)), + + [SPECIES_ZUBAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(TM49_SNATCH)), + + [SPECIES_GOLBAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(TM49_SNATCH)), + + [SPECIES_ODDISH] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_GLOOM] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_VILEPLUME] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_PARAS] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_PARASECT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_VENONAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_VENOMOTH] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_DIGLETT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_DUGTRIO] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MEOWTH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_PERSIAN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_PSYDUCK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_GOLDUCK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_MANKEY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_PRIMEAPE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_GROWLITHE] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ARCANINE] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_POLIWAG] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_POLIWHIRL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_POLIWRATH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_ABRA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_KADABRA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_ALAKAZAM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_MACHOP] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MACHOKE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MACHAMP] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_BELLSPROUT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_WEEPINBELL] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_VICTREEBEL] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_TENTACOOL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_TENTACRUEL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_GEODUDE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_GRAVELER] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_GOLEM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_PONYTA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH)), + + [SPECIES_RAPIDASH] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH)), + + [SPECIES_SLOWPOKE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM08_DIVE)), + + [SPECIES_SLOWBRO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM08_DIVE)), + + [SPECIES_MAGNEMITE] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM05_FLASH)), + + [SPECIES_MAGNETON] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM05_FLASH)), + + [SPECIES_FARFETCHD] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM02_FLY)), + + [SPECIES_DODUO] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_DODRIO] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_SEEL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_DEWGONG] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_GRIMER] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF)), + + [SPECIES_MUK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SHELLDER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM08_DIVE)), + + [SPECIES_CLOYSTER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM08_DIVE)), + + [SPECIES_GASTLY] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH)), + + [SPECIES_HAUNTER] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH)), + + [SPECIES_GENGAR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ONIX] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_DROWZEE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_HYPNO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_KRABBY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM08_DIVE)), + + [SPECIES_KINGLER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM08_DIVE)), + + [SPECIES_VOLTORB] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM12_TAUNT) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_ELECTRODE] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_EXEGGCUTE] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH)), + + [SPECIES_EXEGGUTOR] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH)), + + [SPECIES_CUBONE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MAROWAK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_HITMONLEE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_HITMONCHAN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_LICKITUNG] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_KOFFING] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_WEEZING] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_RHYHORN] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_RHYDON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CHANSEY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TANGELA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_KANGASKHAN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_HORSEA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SEADRA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_GOLDEEN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SEAKING] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_STARYU] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM03_SURF) + | TMHM(HM05_FLASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_STARMIE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM03_SURF) + | TMHM(HM05_FLASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_MR_MIME] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_SCYTHER] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_JYNX] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_ELECTABUZZ] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MAGMAR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_PINSIR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TAUROS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MAGIKARP] = TMHM_LEARNSET(0), + + [SPECIES_GYARADOS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_LAPRAS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_DITTO] = TMHM_LEARNSET(0), + + [SPECIES_EEVEE] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT)), + + [SPECIES_VAPOREON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_JOLTEON] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_FLAREON] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT)), + + [SPECIES_PORYGON] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_OMANYTE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_OMASTAR] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_KABUTO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL)), + + [SPECIES_KABUTOPS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_AERODACTYL] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SNORLAX] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH)), + + [SPECIES_ARTICUNO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ZAPDOS] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MOLTRES] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM47_STEEL_WING) + | TMHM(TM50_OVERHEAT) + | TMHM(HM02_FLY) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_DRATINI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL)), + + [SPECIES_DRAGONAIR] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL)), + + [SPECIES_DRAGONITE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM02_DRAGON_CLAW) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM02_FLY) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_MEWTWO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MEW] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM02_DRAGON_CLAW) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM08_BULK_UP) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM02_FLY) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_CHIKORITA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_BAYLEEF] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MEGANIUM] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CYNDAQUIL] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT)), + + [SPECIES_QUILAVA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TYPHLOSION] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TOTODILE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_CROCONAW] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_FERALIGATR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM02_DRAGON_CLAW) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SENTRET] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF)), + + [SPECIES_FURRET] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_HOOTHOOT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM05_FLASH)), + + [SPECIES_NOCTOWL] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM05_FLASH)), + + [SPECIES_LEDYBA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_LEDIAN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_SPINARAK] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_ARIADOS] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_CROBAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(TM49_SNATCH) + | TMHM(HM02_FLY)), + + [SPECIES_CHINCHOU] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM05_FLASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_LANTURN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM05_FLASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_PICHU] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_CLEFFA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_IGGLYBUFF] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_TOGEPI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TOGETIC] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NATU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_XATU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM02_FLY) + | TMHM(HM05_FLASH)), + + [SPECIES_MAREEP] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_FLAAFFY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_AMPHAROS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_BELLOSSOM] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_MARILL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_AZUMARILL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SUDOWOODO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_POLITOED] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_HOPPIP] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_SKIPLOOM] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_JUMPLUFF] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_AIPOM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SUNKERN] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_SUNFLORA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_YANMA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM05_FLASH)), + + [SPECIES_WOOPER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_QUAGSIRE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_ESPEON] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_UMBREON] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_MURKROW] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(TM49_SNATCH) + | TMHM(HM02_FLY)), + + [SPECIES_SLOWKING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM08_DIVE)), + + [SPECIES_MISDREAVUS] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_UNOWN] = TMHM_LEARNSET(0), + + [SPECIES_WOBBUFFET] = TMHM_LEARNSET(0), + + [SPECIES_GIRAFARIG] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_PINECO] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_FORRETRESS] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_DUNSPARCE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_GLIGAR] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_STEELIX] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SNUBBULL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_GRANBULL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_QWILFISH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SCIZOR] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SHUCKLE] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_HERACROSS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SNEASEL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TEDDIURSA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_URSARING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SLUGMA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MAGCARGO] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SWINUB] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_PILOSWINE] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CORSOLA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_REMORAID] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_OCTILLERY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_DELIBIRD] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM02_FLY)), + + [SPECIES_MANTINE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SKARMORY] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM02_FLY) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_HOUNDOUR] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(TM50_OVERHEAT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_HOUNDOOM] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_KINGDRA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_PHANPY] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_DONPHAN] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_PORYGON2] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_STANTLER] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_SMEARGLE] = TMHM_LEARNSET(0), + + [SPECIES_TYROGUE] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_HITMONTOP] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SMOOCHUM] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_ELEKID] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MAGBY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MILTANK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_BLISSEY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_RAIKOU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ENTEI] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SUICUNE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_LARVITAR] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_PUPITAR] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TYRANITAR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM02_DRAGON_CLAW) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_LUGIA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM47_STEEL_WING) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM02_FLY) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_HO_OH] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM47_STEEL_WING) + | TMHM(TM50_OVERHEAT) + | TMHM(HM02_FLY) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CELEBI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_OLD_UNOWN_B] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_C] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_D] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_E] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_F] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_G] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_H] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_I] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_J] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_K] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_L] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_M] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_N] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_O] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_P] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_Q] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_R] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_S] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_T] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_U] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_V] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_W] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_X] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_Y] = TMHM_LEARNSET(0), + + [SPECIES_OLD_UNOWN_Z] = TMHM_LEARNSET(0), + + [SPECIES_TREECKO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_GROVYLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SCEPTILE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM02_DRAGON_CLAW) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TORCHIC] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_COMBUSKEN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_BLAZIKEN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MUDKIP] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_MARSHTOMP] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SWAMPERT] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_POOCHYENA] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MIGHTYENA] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ZIGZAGOON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_LINOONE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_WURMPLE] = TMHM_LEARNSET(0), + + [SPECIES_SILCOON] = TMHM_LEARNSET(0), + + [SPECIES_BEAUTIFLY] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_CASCOON] = TMHM_LEARNSET(0), + + [SPECIES_DUSTOX] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_LOTAD] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM05_FLASH)), + + [SPECIES_LOMBRE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_LUDICOLO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SEEDOT] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NUZLEAF] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SHIFTRY] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NINCADA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_NINJASK] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_SHEDINJA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM46_THIEF) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_TAILLOW] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_SWELLOW] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_SHROOMISH] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_BRELOOM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SPINDA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_WINGULL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_PELIPPER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM03_SURF)), + + [SPECIES_SURSKIT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_MASQUERAIN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_WAILMER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_WAILORD] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SKITTY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_DELCATTY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_KECLEON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_BALTOY] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_CLAYDOL] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_NOSEPASS] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TORKOAL] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SABLEYE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_BARBOACH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_WHISCASH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_LUVDISC] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_CORPHISH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL)), + + [SPECIES_CRAWDAUNT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_FEEBAS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_MILOTIC] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_CARVANHA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SHARPEDO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_TRAPINCH] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_VIBRAVA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_FLYGON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MAKUHITA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_HARIYAMA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ELECTRIKE] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH)), + + [SPECIES_MANECTRIC] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH)), + + [SPECIES_NUMEL] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CAMERUPT] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SPHEAL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_SEALEO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_WALREIN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_CACNEA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_CACTURNE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH)), + + [SPECIES_SNORUNT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_GLALIE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_LUNATONE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_SOLROCK] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM50_OVERHEAT) + | TMHM(HM05_FLASH)), + + [SPECIES_AZURILL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL)), + + [SPECIES_SPOINK] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_GRUMPIG] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_PLUSLE] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_MINUN] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM05_FLASH)), + + [SPECIES_MAWILE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MEDITITE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_MEDICHAM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SWABLU] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY)), + + [SPECIES_ALTARIA] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM47_STEEL_WING) + | TMHM(HM02_FLY) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_WYNAUT] = TMHM_LEARNSET(0), + + [SPECIES_DUSKULL] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_DUSCLOPS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ROSELIA] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM05_FLASH)), + + [SPECIES_SLAKOTH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_VIGOROTH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SLAKING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_GULPIN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SWALOT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_TROPIUS] = TMHM_LEARNSET(TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM02_FLY) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_WHISMUR] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT)), + + [SPECIES_LOUDRED] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_EXPLOUD] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM50_OVERHEAT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CLAMPERL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_HUNTAIL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM49_SNATCH) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_GOREBYSS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_ABSOL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SHUPPET] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_BANETTE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_SEVIPER] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM49_SNATCH) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ZANGOOSE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_RELICANTH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM03_SURF) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_ARON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_LAIRON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_AGGRON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM02_DRAGON_CLAW) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CASTFORM] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_VOLBEAT] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_ILLUMISE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(HM05_FLASH)), + + [SPECIES_LILEEP] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT)), + + [SPECIES_CRADILY] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM09_BULLET_SEED) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM19_GIGA_DRAIN) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ANORITH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_ARMALDO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_RALTS] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_KIRLIA] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_GARDEVOIR] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM46_THIEF) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + + [SPECIES_BAGON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SHELGON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_SALAMENCE] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM02_FLY) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_BELDUM] = TMHM_LEARNSET(0), + + [SPECIES_METANG] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_METAGROSS] = TMHM_LEARNSET(TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM36_SLUDGE_BOMB) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_REGIROCK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_REGICE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_REGISTEEL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_KYOGRE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM07_HAIL) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_GROUDON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM28_DIG) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM50_OVERHEAT) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_RAYQUAZA] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM08_BULK_UP) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM14_BLIZZARD) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM23_IRON_TAIL) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM35_FLAMETHROWER) + | TMHM(TM37_SANDSTORM) + | TMHM(TM38_FIRE_BLAST) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM50_OVERHEAT) + | TMHM(HM02_FLY) + | TMHM(HM03_SURF) + | TMHM(HM04_STRENGTH) + | TMHM(HM06_ROCK_SMASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_LATIAS] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM02_FLY) + | TMHM(HM03_SURF) + | TMHM(HM05_FLASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_LATIOS] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM05_ROAR) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM26_EARTHQUAKE) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM47_STEEL_WING) + | TMHM(HM01_CUT) + | TMHM(HM02_FLY) + | TMHM(HM03_SURF) + | TMHM(HM05_FLASH) + | TMHM(HM07_WATERFALL) + | TMHM(HM08_DIVE)), + + [SPECIES_JIRACHI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM37_SANDSTORM) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM48_SKILL_SWAP) + | TMHM(HM05_FLASH)), + + [SPECIES_DEOXYS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH) + | TMHM(TM03_WATER_PULSE) + | TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM13_ICE_BEAM) + | TMHM(TM15_HYPER_BEAM) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM22_SOLARBEAM) + | TMHM(TM24_THUNDERBOLT) + | TMHM(TM25_THUNDER) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM31_BRICK_BREAK) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM39_ROCK_TOMB) + | TMHM(TM40_AERIAL_ACE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM01_CUT) + | TMHM(HM04_STRENGTH) + | TMHM(HM05_FLASH) + | TMHM(HM06_ROCK_SMASH)), + + [SPECIES_CHIMECHO] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) + | TMHM(TM06_TOXIC) + | TMHM(TM10_HIDDEN_POWER) + | TMHM(TM11_SUNNY_DAY) + | TMHM(TM12_TAUNT) + | TMHM(TM16_LIGHT_SCREEN) + | TMHM(TM17_PROTECT) + | TMHM(TM18_RAIN_DANCE) + | TMHM(TM20_SAFEGUARD) + | TMHM(TM21_FRUSTRATION) + | TMHM(TM27_RETURN) + | TMHM(TM29_PSYCHIC) + | TMHM(TM30_SHADOW_BALL) + | TMHM(TM32_DOUBLE_TEAM) + | TMHM(TM33_REFLECT) + | TMHM(TM34_SHOCK_WAVE) + | TMHM(TM41_TORMENT) + | TMHM(TM42_FACADE) + | TMHM(TM43_SECRET_POWER) + | TMHM(TM44_REST) + | TMHM(TM45_ATTRACT) + | TMHM(TM48_SKILL_SWAP) + | TMHM(TM49_SNATCH) + | TMHM(HM05_FLASH)), + +}; + +#endif // GUARD_TMHM_LEARNSETS_H diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h new file mode 100644 index 000000000..ec4dbf0fb --- /dev/null +++ b/src/data/pokemon/trainer_class_lookups.h @@ -0,0 +1,176 @@ +#ifndef POKEEMERALD_TRAINER_CLASS_LOOKUPS_H +#define POKEEMERALD_TRAINER_CLASS_LOOKUPS_H + +const u8 gFacilityClassToPicIndex[] = +{ + TRAINER_PIC_HIKER, // FACILITY_CLASS_HIKER + TRAINER_PIC_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_1 + TRAINER_PIC_POKEMON_BREEDER_F, // FACILITY_CLASS_PKMN_BREEDER_1 + TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_M + TRAINER_PIC_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER + TRAINER_PIC_COLLECTOR, // FACILITY_CLASS_COLLECTOR + TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2 + TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M + TRAINER_PIC_MAGMA_GRUNT_M, // FACILITY_CLASS_TEAM_MAGMA_1 + TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_M + TRAINER_PIC_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT + TRAINER_PIC_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER + TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC + TRAINER_PIC_AROMA_LADY, // FACILITY_CLASS_AROMA_LADY + TRAINER_PIC_RUIN_MANIAC, // FACILITY_CLASS_RUIN_MANIAC + TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER + TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1 + TRAINER_PIC_TUBER_M, // FACILITY_CLASS_TUBER_2 + TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_F + TRAINER_PIC_LADY, // FACILITY_CLASS_LADY + TRAINER_PIC_BEAUTY, // FACILITY_CLASS_BEAUTY + TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY + TRAINER_PIC_EXPERT_F, // FACILITY_CLASS_EXPERT_2 + TRAINER_PIC_POKEMANIAC, // FACILITY_CLASS_POKEMANIAC + TRAINER_PIC_MAGMA_GRUNT_F, // FACILITY_CLASS_TEAM_MAGMA_2 + TRAINER_PIC_GUITARIST, // FACILITY_CLASS_GUITARIST + TRAINER_PIC_KINDLER, // FACILITY_CLASS_KINDLER + TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER + TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER + TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC + TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_M + TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_F + TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN + TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1 + TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2 + TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1 + TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2 + TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3 + TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_M + TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_F + TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR + TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1 + TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2 + TRAINER_PIC_YOUNGSTER, // FACILITY_CLASS_YOUNGSTER + TRAINER_PIC_CHAMPION_WALLACE, // FACILITY_CLASS_CHAMPION + TRAINER_PIC_FISHERMAN, // FACILITY_CLASS_FISHERMAN + TRAINER_PIC_CYCLING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_1 + TRAINER_PIC_CYCLING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_2 + TRAINER_PIC_RUNNING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_3 + TRAINER_PIC_RUNNING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_4 + TRAINER_PIC_SWIMMING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_5 + TRAINER_PIC_SWIMMING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_6 + TRAINER_PIC_DRAGON_TAMER, // FACILITY_CLASS_DRAGON_TAMER + TRAINER_PIC_NINJA_BOY, // FACILITY_CLASS_NINJA_BOY + TRAINER_PIC_BATTLE_GIRL, // FACILITY_CLASS_BATTLE_GIRL + TRAINER_PIC_PARASOL_LADY, // FACILITY_CLASS_PARASOL_LADY + TRAINER_PIC_SWIMMER_F, // FACILITY_CLASS_SWIMMER_F + TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS + TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR + TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1 + TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_MAY + TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3 + TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4 + TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN + TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6 + TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7 + TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2 + TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER + TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_M + TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_F + TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER + TRAINER_PIC_LASS, // FACILITY_CLASS_LASS + TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE + TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE + TRAINER_PIC_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO + TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_STEVEN + TRAINER_PIC_SALON_MAIDEN_ANABEL, // FACILITY_CLASS_SALON_MAIDEN + TRAINER_PIC_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE + TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_RED + TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_LEAF + TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN + TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY +}; + +const u8 gFacilityClassToTrainerClass[] = +{ + TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER + TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_1 + TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_1 + TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_M + TRAINER_CLASS_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER + TRAINER_CLASS_COLLECTOR, // FACILITY_CLASS_COLLECTOR + TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2 + TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M + TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_1 + TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_M + TRAINER_CLASS_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT + TRAINER_CLASS_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER + TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC + TRAINER_CLASS_AROMA_LADY, // FACILITY_CLASS_AROMA_LADY + TRAINER_CLASS_RUIN_MANIAC, // FACILITY_CLASS_RUIN_MANIAC + TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER + TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1 + TRAINER_CLASS_TUBER_2, // FACILITY_CLASS_TUBER_2 + TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_F + TRAINER_CLASS_LADY, // FACILITY_CLASS_LADY + TRAINER_CLASS_BEAUTY, // FACILITY_CLASS_BEAUTY + TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY + TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_2 + TRAINER_CLASS_POKEMANIAC, // FACILITY_CLASS_POKEMANIAC + TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_2 + TRAINER_CLASS_GUITARIST, // FACILITY_CLASS_GUITARIST + TRAINER_CLASS_KINDLER, // FACILITY_CLASS_KINDLER + TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER + TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER + TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC + TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_M + TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_F + TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN + TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1 + TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2 + TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1 + TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2 + TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3 + TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_M + TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_F + TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR + TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1 + TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2 + TRAINER_CLASS_YOUNGSTER, // FACILITY_CLASS_YOUNGSTER + TRAINER_CLASS_CHAMPION, // FACILITY_CLASS_CHAMPION + TRAINER_CLASS_FISHERMAN, // FACILITY_CLASS_FISHERMAN + TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_1 + TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_2 + TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_3 + TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_4 + TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_5 + TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_6 + TRAINER_CLASS_DRAGON_TAMER, // FACILITY_CLASS_DRAGON_TAMER + TRAINER_CLASS_NINJA_BOY, // FACILITY_CLASS_NINJA_BOY + TRAINER_CLASS_BATTLE_GIRL, // FACILITY_CLASS_BATTLE_GIRL + TRAINER_CLASS_PARASOL_LADY, // FACILITY_CLASS_PARASOL_LADY + TRAINER_CLASS_SWIMMER_F, // FACILITY_CLASS_SWIMMER_F + TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS + TRAINER_CLASS_SAILOR, // FACILITY_CLASS_SAILOR + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_1 + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_MAY + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_3 + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_4 + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_6 + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_7 + TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2 + TRAINER_CLASS_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER + TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_M + TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_F + TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER + TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS + TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE + TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE + TRAINER_CLASS_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_STEVEN + TRAINER_CLASS_SALON_MAIDEN, // FACILITY_CLASS_SALON_MAIDEN + TRAINER_CLASS_DOME_ACE, // FACILITY_CLASS_DOME_ACE + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_RED + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_LEAF + TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN + TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY +}; + +#endif //POKEEMERALD_TRAINER_CLASS_LOOKUPS_H diff --git a/src/data/region_map/region_map_entries.h b/src/data/region_map/region_map_entries.h new file mode 100644 index 000000000..9c7e3f2fc --- /dev/null +++ b/src/data/region_map/region_map_entries.h @@ -0,0 +1,421 @@ +#ifndef GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H +#define GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H + +static const u8 sMapName_LittlerootTown[] = _("LITTLEROOT TOWN"); +static const u8 sMapName_OldaleTown[] = _("OLDALE TOWN"); +static const u8 sMapName_DewfordTown[] = _("DEWFORD TOWN"); +static const u8 sMapName_LavaridgeTown[] = _("LAVARIDGE TOWN"); +static const u8 sMapName_FallarborTown[] = _("FALLARBOR TOWN"); +static const u8 sMapName_VerdanturfTown[] = _("VERDANTURF TOWN"); +static const u8 sMapName_PacifidlogTown[] = _("PACIFIDLOG TOWN"); +static const u8 sMapName_PetalburgCity[] = _("PETALBURG CITY"); +static const u8 sMapName_SlateportCity[] = _("SLATEPORT CITY"); +static const u8 sMapName_MauvilleCity[] = _("MAUVILLE CITY"); +static const u8 sMapName_RustboroCity[] = _("RUSTBORO CITY"); +static const u8 sMapName_FortreeCity[] = _("FORTREE CITY"); +static const u8 sMapName_LilycoveCity[] = _("LILYCOVE CITY"); +static const u8 sMapName_MossdeepCity[] = _("MOSSDEEP CITY"); +static const u8 sMapName_SootopolisCity[] = _("SOOTOPOLIS CITY"); +static const u8 sMapName_EverGrandeCity[] = _("EVER GRANDE CITY"); +static const u8 sMapName_Route101[] = _("ROUTE 101"); +static const u8 sMapName_Route102[] = _("ROUTE 102"); +static const u8 sMapName_Route103[] = _("ROUTE 103"); +static const u8 sMapName_Route104[] = _("ROUTE 104"); +static const u8 sMapName_Route105[] = _("ROUTE 105"); +static const u8 sMapName_Route106[] = _("ROUTE 106"); +static const u8 sMapName_Route107[] = _("ROUTE 107"); +static const u8 sMapName_Route108[] = _("ROUTE 108"); +static const u8 sMapName_Route109[] = _("ROUTE 109"); +static const u8 sMapName_Route110[] = _("ROUTE 110"); +static const u8 sMapName_Route111[] = _("ROUTE 111"); +static const u8 sMapName_Route112[] = _("ROUTE 112"); +static const u8 sMapName_Route113[] = _("ROUTE 113"); +static const u8 sMapName_Route114[] = _("ROUTE 114"); +static const u8 sMapName_Route115[] = _("ROUTE 115"); +static const u8 sMapName_Route116[] = _("ROUTE 116"); +static const u8 sMapName_Route117[] = _("ROUTE 117"); +static const u8 sMapName_Route118[] = _("ROUTE 118"); +static const u8 sMapName_Route119[] = _("ROUTE 119"); +static const u8 sMapName_Route120[] = _("ROUTE 120"); +static const u8 sMapName_Route121[] = _("ROUTE 121"); +static const u8 sMapName_Route122[] = _("ROUTE 122"); +static const u8 sMapName_Route123[] = _("ROUTE 123"); +static const u8 sMapName_Route124[] = _("ROUTE 124"); +static const u8 sMapName_Route125[] = _("ROUTE 125"); +static const u8 sMapName_Route126[] = _("ROUTE 126"); +static const u8 sMapName_Route127[] = _("ROUTE 127"); +static const u8 sMapName_Route128[] = _("ROUTE 128"); +static const u8 sMapName_Route129[] = _("ROUTE 129"); +static const u8 sMapName_Route130[] = _("ROUTE 130"); +static const u8 sMapName_Route131[] = _("ROUTE 131"); +static const u8 sMapName_Route132[] = _("ROUTE 132"); +static const u8 sMapName_Route133[] = _("ROUTE 133"); +static const u8 sMapName_Route134[] = _("ROUTE 134"); +static const u8 sMapName_Underwater[] = _("UNDERWATER"); +static const u8 sMapName_GraniteCave[] = _("GRANITE CAVE"); +static const u8 sMapName_MtChimney[] = _("MT. CHIMNEY"); +static const u8 sMapName_SafariZone[] = _("SAFARI ZONE"); +static const u8 sMapName_BattleFrontier[] = _("BATTLE FRONTIER"); +static const u8 sMapName_PetalburgWoods[] = _("PETALBURG WOODS"); +static const u8 sMapName_RusturfTunnel[] = _("RUSTURF TUNNEL"); +static const u8 sMapName_AbandonedShip[] = _("ABANDONED SHIP"); +static const u8 sMapName_NewMauville[] = _("NEW MAUVILLE"); +static const u8 sMapName_MeteorFalls[] = _("METEOR FALLS"); +static const u8 sMapName_MtPyre[] = _("MT. PYRE"); +// This was the Aqua or Magma hideout in Ruby/Sapphire, but each team has a +// hideout in Emerald with their own new region map entries, and this name +// doesn't seem to be used anymore. +static const u8 sMapName_AquaHideoutOld[] = _("{AQUA} HIDEOUT"); +static const u8 sMapName_ShoalCave[] = _("SHOAL CAVE"); +static const u8 sMapName_SeafloorCavern[] = _("SEAFLOOR CAVERN"); +static const u8 sMapName_VictoryRoad[] = _("VICTORY ROAD"); +static const u8 sMapName_MirageIsland[] = _("MIRAGE ISLAND"); +static const u8 sMapName_CaveOfOrigin[] = _("CAVE OF ORIGIN"); +static const u8 sMapName_SouthernIsland[] = _("SOUTHERN ISLAND"); +static const u8 sMapName_FieryPath[] = _("FIERY PATH"); +static const u8 sMapName_JaggedPass[] = _("JAGGED PASS"); +static const u8 sMapName_SealedChamber[] = _("SEALED CHAMBER"); +static const u8 sMapName_ScorchedSlab[] = _("SCORCHED SLAB"); +static const u8 sMapName_IslandCave[] = _("ISLAND CAVE"); +static const u8 sMapName_DesertRuins[] = _("DESERT RUINS"); +static const u8 sMapName_AncientTomb[] = _("ANCIENT TOMB"); +static const u8 sMapName_InsideOfTruck[] = _("INSIDE OF TRUCK"); +static const u8 sMapName_SkyPillar[] = _("SKY PILLAR"); +static const u8 sMapName_SecretBase[] = _("SECRET BASE"); +static const u8 sMapName_None[] = _(""); +static const u8 sMapName_PalletTown[] = _("PALLET TOWN"); +static const u8 sMapName_ViridianCity[] = _("VIRIDIAN CITY"); +static const u8 sMapName_PewterCity[] = _("PEWTER CITY"); +static const u8 sMapName_CeruleanCity[] = _("CERULEAN CITY"); +static const u8 sMapName_LavenderTown[] = _("LAVENDER TOWN"); +static const u8 sMapName_VermilionCity[] = _("VERMILION CITY"); +static const u8 sMapName_CeladonCity[] = _("CELADON CITY"); +static const u8 sMapName_FuchsiaCity[] = _("FUCHSIA CITY"); +static const u8 sMapName_CinnabarIsland[] = _("CINNABAR ISLAND"); +static const u8 sMapName_IndigoPlateau[] = _("INDIGO PLATEAU"); +static const u8 sMapName_SaffronCity[] = _("SAFFRON CITY"); +static const u8 sMapName_Route4[] = _("ROUTE 4"); +static const u8 sMapName_Route10[] = _("ROUTE 10"); +static const u8 sMapName_Route1[] = _("ROUTE 1"); +static const u8 sMapName_Route2[] = _("ROUTE 2"); +static const u8 sMapName_Route3[] = _("ROUTE 3"); +static const u8 sMapName_Route4_2[] = _("ROUTE 4"); +static const u8 sMapName_Route5[] = _("ROUTE 5"); +static const u8 sMapName_Route6[] = _("ROUTE 6"); +static const u8 sMapName_Route7[] = _("ROUTE 7"); +static const u8 sMapName_Route8[] = _("ROUTE 8"); +static const u8 sMapName_Route9[] = _("ROUTE 9"); +static const u8 sMapName_Route10_2[] = _("ROUTE 10"); +static const u8 sMapName_Route11[] = _("ROUTE 11"); +static const u8 sMapName_Route12[] = _("ROUTE 12"); +static const u8 sMapName_Route13[] = _("ROUTE 13"); +static const u8 sMapName_Route14[] = _("ROUTE 14"); +static const u8 sMapName_Route15[] = _("ROUTE 15"); +static const u8 sMapName_Route16[] = _("ROUTE 16"); +static const u8 sMapName_Route17[] = _("ROUTE 17"); +static const u8 sMapName_Route18[] = _("ROUTE 18"); +static const u8 sMapName_Route19[] = _("ROUTE 19"); +static const u8 sMapName_Route20[] = _("ROUTE 20"); +static const u8 sMapName_Route21[] = _("ROUTE 21"); +static const u8 sMapName_Route22[] = _("ROUTE 22"); +static const u8 sMapName_Route23[] = _("ROUTE 23"); +static const u8 sMapName_Route24[] = _("ROUTE 24"); +static const u8 sMapName_Route25[] = _("ROUTE 25"); +static const u8 sMapName_ViridianForest[] = _("VIRIDIAN FOREST"); +static const u8 sMapName_MtMoon[] = _("MT. MOON"); +static const u8 sMapName_SSAnne[] = _("S.S. ANNE"); +static const u8 sMapName_UndergroundPath[] = _("UNDERGROUND PATH"); +static const u8 sMapName_UndergroundPath2[] = _("UNDERGROUND PATH"); +static const u8 sMapName_DiglettsCave[] = _("DIGLETT’S CAVE"); +static const u8 sMapName_KantoVictoryRoad[] = _("VICTORY ROAD"); +static const u8 sMapName_RocketHideout[] = _("ROCKET HIDEOUT"); +static const u8 sMapName_SilphCo[] = _("SILPH CO."); +static const u8 sMapName_PokemonMansion[] = _("POKéMON MANSION"); +static const u8 sMapName_KantoSafariZone[] = _("SAFARI ZONE"); +static const u8 sMapName_PokemonLeague[] = _("POKéMON LEAGUE"); +static const u8 sMapName_RockTunnel[] = _("ROCK TUNNEL"); +static const u8 sMapName_SeafoamIslands[] = _("SEAFOAM ISLANDS"); +static const u8 sMapName_PokemonTower[] = _("POKéMON TOWER"); +static const u8 sMapName_CeruleanCave[] = _("CERULEAN CAVE"); +static const u8 sMapName_PowerPlant[] = _("POWER PLANT"); +static const u8 sMapName_OneIsland[] = _("ONE ISLAND"); +static const u8 sMapName_TwoIsland[] = _("TWO ISLAND"); +static const u8 sMapName_ThreeIsland[] = _("THREE ISLAND"); +static const u8 sMapName_FourIsland[] = _("FOUR ISLAND"); +static const u8 sMapName_FiveIsland[] = _("FIVE ISLAND"); +static const u8 sMapName_SevenIsland[] = _("SEVEN ISLAND"); +static const u8 sMapName_SixIsland[] = _("SIX ISLAND"); +static const u8 sMapName_KindleRoad[] = _("KINDLE ROAD"); +static const u8 sMapName_TreasureBeach[] = _("TREASURE BEACH"); +static const u8 sMapName_CapeBrink[] = _("CAPE BRINK"); +static const u8 sMapName_BondBridge[] = _("BOND BRIDGE"); +static const u8 sMapName_ThreeIslePort[] = _("THREE ISLE PORT"); +static const u8 sMapName_SeviiIsle6[] = _("SEVII ISLE 6"); +static const u8 sMapName_SeviiIsle7[] = _("SEVII ISLE 7"); +static const u8 sMapName_SeviiIsle8[] = _("SEVII ISLE 8"); +static const u8 sMapName_SeviiIsle9[] = _("SEVII ISLE 9"); +static const u8 sMapName_ResortGorgeous[] = _("RESORT GORGEOUS"); +static const u8 sMapName_WaterLabyrinth[] = _("WATER LABYRINTH"); +static const u8 sMapName_FiveIsleMeadow[] = _("FIVE ISLE MEADOW"); +static const u8 sMapName_MemorialPillar[] = _("MEMORIAL PILLAR"); +static const u8 sMapName_OutcastIsland[] = _("OUTCAST ISLAND"); +static const u8 sMapName_GreenPath[] = _("GREEN PATH"); +static const u8 sMapName_WaterPath[] = _("WATER PATH"); +static const u8 sMapName_RuinValley[] = _("RUIN VALLEY"); +static const u8 sMapName_TrainerTower[] = _("TRAINER TOWER"); +static const u8 sMapName_CanyonEntrance[] = _("CANYON ENTRANCE"); +static const u8 sMapName_SevaultCanyon[] = _("SEVAULT CANYON"); +static const u8 sMapName_TanobyRuins[] = _("TANOBY RUINS"); +static const u8 sMapName_SeviiIsle22[] = _("SEVII ISLE 22"); +static const u8 sMapName_SeviiIsle23[] = _("SEVII ISLE 23"); +static const u8 sMapName_SeviiIsle24[] = _("SEVII ISLE 24"); +static const u8 sMapName_NavelRock[] = _("NAVEL ROCK"); +static const u8 sMapName_MtEmber[] = _("MT. EMBER"); +static const u8 sMapName_BerryForest[] = _("BERRY FOREST"); +static const u8 sMapName_IcefallCave[] = _("ICEFALL CAVE"); +static const u8 sMapName_RocketWarehouse[] = _("ROCKET WAREHOUSE"); +static const u8 sMapName_TrainerTower2[] = _("TRAINER TOWER"); +static const u8 sMapName_DottedHole[] = _("DOTTED HOLE"); +static const u8 sMapName_LostCave[] = _("LOST CAVE"); +static const u8 sMapName_PatternBush[] = _("PATTERN BUSH"); +static const u8 sMapName_AlteringCave[] = _("ALTERING CAVE"); +static const u8 sMapName_TanobyChambers[] = _("TANOBY CHAMBERS"); +static const u8 sMapName_ThreeIslePath[] = _("THREE ISLE PATH"); +static const u8 sMapName_TanobyKey[] = _("TANOBY KEY"); +static const u8 sMapName_BirthIsland[] = _("BIRTH ISLAND"); +static const u8 sMapName_MoneanChamber[] = _("MONEAN CHAMBER"); +static const u8 sMapName_LiptooChamber[] = _("LIPTOO CHAMBER"); +static const u8 sMapName_WeepthChamber[] = _("WEEPTH CHAMBER"); +static const u8 sMapName_DilfordChamber[] = _("DILFORD CHAMBER"); +static const u8 sMapName_ScufibChamber[] = _("SCUFIB CHAMBER"); +static const u8 sMapName_RixyChamber[] = _("RIXY CHAMBER"); +static const u8 sMapName_ViapoisChamber[] = _("VIAPOIS CHAMBER"); +static const u8 sMapName_EmberSpa[] = _("EMBER SPA"); +static const u8 sMapName_SpecialArea[] = _("SPECIAL AREA"); +static const u8 sMapName_AquaHideout[] = _("AQUA HIDEOUT"); +static const u8 sMapName_MagmaHideout[] = _("MAGMA HIDEOUT"); +static const u8 sMapName_MirageTower[] = _("MIRAGE TOWER"); +static const u8 sMapName_FarawayIsland[] = _("FARAWAY ISLAND"); +static const u8 sMapName_ArtisanCave[] = _("ARTISAN CAVE"); +static const u8 sMapName_MarineCave[] = _("MARINE CAVE"); +static const u8 sMapName_TerraCave[] = _("TERRA CAVE"); +static const u8 sMapName_DesertUnderpass[] = _("DESERT UNDERPASS"); +static const u8 sMapName_TrainerHill[] = _("TRAINER HILL"); + +const struct RegionMapLocation gRegionMapEntries[] = { + { 4, 11, 1, 1, sMapName_LittlerootTown}, + { 4, 9, 1, 1, sMapName_OldaleTown}, + { 2, 14, 1, 1, sMapName_DewfordTown}, + { 5, 3, 1, 1, sMapName_LavaridgeTown}, + { 3, 0, 1, 1, sMapName_FallarborTown}, + { 4, 6, 1, 1, sMapName_VerdanturfTown}, + {17, 10, 1, 1, sMapName_PacifidlogTown}, + { 1, 9, 1, 1, sMapName_PetalburgCity}, + { 8, 10, 1, 2, sMapName_SlateportCity}, + { 8, 6, 2, 1, sMapName_MauvilleCity}, + { 0, 5, 1, 2, sMapName_RustboroCity}, + {12, 0, 1, 1, sMapName_FortreeCity}, + {18, 3, 2, 1, sMapName_LilycoveCity}, + {24, 5, 2, 1, sMapName_MossdeepCity}, + {21, 7, 1, 1, sMapName_SootopolisCity}, + {27, 8, 1, 2, sMapName_EverGrandeCity}, + { 4, 10, 1, 1, sMapName_Route101}, + { 2, 9, 2, 1, sMapName_Route102}, + { 4, 8, 4, 1, sMapName_Route103}, + { 0, 7, 1, 3, sMapName_Route104}, + { 0, 10, 1, 3, sMapName_Route105}, + { 0, 13, 2, 1, sMapName_Route106}, + { 3, 14, 3, 1, sMapName_Route107}, + { 6, 14, 2, 1, sMapName_Route108}, + { 8, 12, 1, 3, sMapName_Route109}, + { 8, 7, 1, 3, sMapName_Route110}, + { 8, 0, 1, 6, sMapName_Route111}, + { 6, 3, 2, 1, sMapName_Route112}, + { 4, 0, 4, 1, sMapName_Route113}, + { 1, 0, 2, 3, sMapName_Route114}, + { 0, 2, 1, 3, sMapName_Route115}, + { 1, 5, 4, 1, sMapName_Route116}, + { 5, 6, 3, 1, sMapName_Route117}, + {10, 6, 2, 1, sMapName_Route118}, + {11, 0, 1, 6, sMapName_Route119}, + {13, 0, 1, 4, sMapName_Route120}, + {14, 3, 4, 1, sMapName_Route121}, + {16, 4, 1, 2, sMapName_Route122}, + {12, 6, 5, 1, sMapName_Route123}, + {20, 3, 4, 3, sMapName_Route124}, + {24, 3, 2, 2, sMapName_Route125}, + {20, 6, 3, 3, sMapName_Route126}, + {23, 6, 3, 3, sMapName_Route127}, + {23, 9, 4, 1, sMapName_Route128}, + {24, 10, 2, 1, sMapName_Route129}, + {21, 10, 3, 1, sMapName_Route130}, + {18, 10, 3, 1, sMapName_Route131}, + {15, 10, 2, 1, sMapName_Route132}, + {12, 10, 3, 1, sMapName_Route133}, + { 9, 10, 3, 1, sMapName_Route134}, + {20, 3, 4, 3, sMapName_Underwater}, + {20, 6, 3, 3, sMapName_Underwater}, + {23, 6, 3, 3, sMapName_Underwater}, + {23, 9, 4, 1, sMapName_Underwater}, + {21, 7, 1, 1, sMapName_Underwater}, + { 1, 13, 1, 1, sMapName_GraniteCave}, + { 6, 2, 1, 1, sMapName_MtChimney}, + {16, 2, 1, 1, sMapName_SafariZone}, + {22, 12, 1, 1, sMapName_BattleFrontier}, + { 0, 8, 1, 1, sMapName_PetalburgWoods}, + { 2, 5, 1, 1, sMapName_RusturfTunnel}, + { 6, 14, 1, 1, sMapName_AbandonedShip}, + { 8, 7, 1, 1, sMapName_NewMauville}, + { 0, 3, 1, 1, sMapName_MeteorFalls}, + { 1, 2, 1, 1, sMapName_MeteorFalls}, + {16, 4, 1, 1, sMapName_MtPyre}, + {19, 3, 1, 1, sMapName_AquaHideoutOld}, + {24, 4, 1, 1, sMapName_ShoalCave}, + {24, 9, 1, 1, sMapName_SeafloorCavern}, + {24, 9, 1, 1, sMapName_Underwater}, + {27, 9, 1, 1, sMapName_VictoryRoad}, + {17, 10, 1, 1, sMapName_MirageIsland}, + {21, 7, 1, 1, sMapName_CaveOfOrigin}, + {12, 14, 1, 1, sMapName_SouthernIsland}, + { 6, 3, 1, 1, sMapName_FieryPath}, + { 7, 3, 1, 1, sMapName_FieryPath}, + { 6, 3, 1, 1, sMapName_JaggedPass}, + { 7, 2, 1, 1, sMapName_JaggedPass}, + {11, 10, 1, 1, sMapName_SealedChamber}, + {11, 10, 1, 1, sMapName_Underwater}, + {13, 0, 1, 1, sMapName_ScorchedSlab}, + { 0, 10, 1, 1, sMapName_IslandCave}, + { 8, 3, 1, 1, sMapName_DesertRuins}, + {13, 2, 1, 1, sMapName_AncientTomb}, + { 0, 0, 1, 1, sMapName_InsideOfTruck}, + {19, 10, 1, 1, sMapName_SkyPillar}, + { 0, 0, 1, 1, sMapName_SecretBase}, + { 0, 0, 1, 1, sMapName_None}, + { 0, 0, 1, 1, sMapName_PalletTown}, + { 0, 0, 1, 1, sMapName_ViridianCity}, + { 0, 0, 1, 1, sMapName_PewterCity}, + { 0, 0, 1, 1, sMapName_CeruleanCity}, + { 0, 0, 1, 1, sMapName_LavenderTown}, + { 0, 0, 1, 1, sMapName_VermilionCity}, + { 0, 0, 1, 1, sMapName_CeladonCity}, + { 0, 0, 1, 1, sMapName_FuchsiaCity}, + { 0, 0, 1, 1, sMapName_CinnabarIsland}, + { 0, 0, 1, 1, sMapName_IndigoPlateau}, + { 0, 0, 1, 1, sMapName_SaffronCity}, + { 0, 0, 1, 1, sMapName_Route4}, + { 0, 0, 1, 1, sMapName_Route10}, + { 0, 0, 1, 1, sMapName_Route1}, + { 0, 0, 1, 1, sMapName_Route2}, + { 0, 0, 1, 1, sMapName_Route3}, + { 0, 0, 1, 1, sMapName_Route4_2}, + { 0, 0, 1, 1, sMapName_Route5}, + { 0, 0, 1, 1, sMapName_Route6}, + { 0, 0, 1, 1, sMapName_Route7}, + { 0, 0, 1, 1, sMapName_Route8}, + { 0, 0, 1, 1, sMapName_Route9}, + { 0, 0, 1, 1, sMapName_Route10_2}, + { 0, 0, 1, 1, sMapName_Route11}, + { 0, 0, 1, 1, sMapName_Route12}, + { 0, 0, 1, 1, sMapName_Route13}, + { 0, 0, 1, 1, sMapName_Route14}, + { 0, 0, 1, 1, sMapName_Route15}, + { 0, 0, 1, 1, sMapName_Route16}, + { 0, 0, 1, 1, sMapName_Route17}, + { 0, 0, 1, 1, sMapName_Route18}, + { 0, 0, 1, 1, sMapName_Route19}, + { 0, 0, 1, 1, sMapName_Route20}, + { 0, 0, 1, 1, sMapName_Route21}, + { 0, 0, 1, 1, sMapName_Route22}, + { 0, 0, 1, 1, sMapName_Route23}, + { 0, 0, 1, 1, sMapName_Route24}, + { 0, 0, 1, 1, sMapName_Route25}, + { 0, 0, 1, 1, sMapName_ViridianForest}, + { 0, 0, 1, 1, sMapName_MtMoon}, + { 0, 0, 1, 1, sMapName_SSAnne}, + { 0, 0, 1, 1, sMapName_UndergroundPath}, + { 0, 0, 1, 1, sMapName_UndergroundPath2}, + { 0, 0, 1, 1, sMapName_DiglettsCave}, + { 0, 0, 1, 1, sMapName_KantoVictoryRoad}, + { 0, 0, 1, 1, sMapName_RocketHideout}, + { 0, 0, 1, 1, sMapName_SilphCo}, + { 0, 0, 1, 1, sMapName_PokemonMansion}, + { 0, 0, 1, 1, sMapName_KantoSafariZone}, + { 0, 0, 1, 1, sMapName_PokemonLeague}, + { 0, 0, 1, 1, sMapName_RockTunnel}, + { 0, 0, 1, 1, sMapName_SeafoamIslands}, + { 0, 0, 1, 1, sMapName_PokemonTower}, + { 0, 0, 1, 1, sMapName_CeruleanCave}, + { 0, 0, 1, 1, sMapName_PowerPlant}, + { 0, 0, 1, 1, sMapName_OneIsland}, + { 0, 0, 1, 1, sMapName_TwoIsland}, + { 0, 0, 1, 1, sMapName_ThreeIsland}, + { 0, 0, 1, 1, sMapName_FourIsland}, + { 0, 0, 1, 1, sMapName_FiveIsland}, + { 0, 0, 1, 1, sMapName_SevenIsland}, + { 0, 0, 1, 1, sMapName_SixIsland}, + { 0, 0, 1, 1, sMapName_KindleRoad}, + { 0, 0, 1, 1, sMapName_TreasureBeach}, + { 0, 0, 1, 1, sMapName_CapeBrink}, + { 0, 0, 1, 1, sMapName_BondBridge}, + { 0, 0, 1, 1, sMapName_ThreeIslePort}, + { 0, 0, 1, 1, sMapName_SeviiIsle6}, + { 0, 0, 1, 1, sMapName_SeviiIsle7}, + { 0, 0, 1, 1, sMapName_SeviiIsle8}, + { 0, 0, 1, 1, sMapName_SeviiIsle9}, + { 0, 0, 1, 1, sMapName_ResortGorgeous}, + { 0, 0, 1, 1, sMapName_WaterLabyrinth}, + { 0, 0, 1, 1, sMapName_FiveIsleMeadow}, + { 0, 0, 1, 1, sMapName_MemorialPillar}, + { 0, 0, 1, 1, sMapName_OutcastIsland}, + { 0, 0, 1, 1, sMapName_GreenPath}, + { 0, 0, 1, 1, sMapName_WaterPath}, + { 0, 0, 1, 1, sMapName_RuinValley}, + { 0, 0, 1, 1, sMapName_TrainerTower}, + { 0, 0, 1, 1, sMapName_CanyonEntrance}, + { 0, 0, 1, 1, sMapName_SevaultCanyon}, + { 0, 0, 1, 1, sMapName_TanobyRuins}, + { 0, 0, 1, 1, sMapName_SeviiIsle22}, + { 0, 0, 1, 1, sMapName_SeviiIsle23}, + { 0, 0, 1, 1, sMapName_SeviiIsle24}, + { 0, 0, 1, 1, sMapName_NavelRock}, + { 0, 0, 1, 1, sMapName_MtEmber}, + { 0, 0, 1, 1, sMapName_BerryForest}, + { 0, 0, 1, 1, sMapName_IcefallCave}, + { 0, 0, 1, 1, sMapName_RocketWarehouse}, + { 0, 0, 1, 1, sMapName_TrainerTower2}, + { 0, 0, 1, 1, sMapName_DottedHole}, + { 0, 0, 1, 1, sMapName_LostCave}, + { 0, 0, 1, 1, sMapName_PatternBush}, + { 0, 0, 1, 1, sMapName_AlteringCave}, + { 0, 0, 1, 1, sMapName_TanobyChambers}, + { 0, 0, 1, 1, sMapName_ThreeIslePath}, + { 0, 0, 1, 1, sMapName_TanobyKey}, + { 0, 0, 1, 1, sMapName_BirthIsland}, + { 0, 0, 1, 1, sMapName_MoneanChamber}, + { 0, 0, 1, 1, sMapName_LiptooChamber}, + { 0, 0, 1, 1, sMapName_WeepthChamber}, + { 0, 0, 1, 1, sMapName_DilfordChamber}, + { 0, 0, 1, 1, sMapName_ScufibChamber}, + { 0, 0, 1, 1, sMapName_RixyChamber}, + { 0, 0, 1, 1, sMapName_ViapoisChamber}, + { 0, 0, 1, 1, sMapName_EmberSpa}, + { 0, 0, 1, 1, sMapName_SpecialArea}, + {19, 3, 1, 1, sMapName_AquaHideout}, + { 6, 3, 1, 1, sMapName_MagmaHideout}, + { 8, 2, 1, 1, sMapName_MirageTower}, + { 0, 0, 1, 1, sMapName_BirthIsland}, + { 0, 0, 1, 1, sMapName_FarawayIsland}, + {22, 12, 1, 1, sMapName_ArtisanCave}, + { 0, 0, 1, 1, sMapName_MarineCave}, + { 0, 0, 1, 1, sMapName_Underwater}, + { 0, 0, 1, 1, sMapName_TerraCave}, + { 0, 10, 1, 3, sMapName_Underwater}, + {24, 3, 2, 2, sMapName_Underwater}, + {24, 10, 2, 1, sMapName_Underwater}, + { 2, 0, 1, 1, sMapName_DesertUnderpass}, + { 6, 8, 1, 1, sMapName_AlteringCave}, + { 0, 0, 1, 1, sMapName_NavelRock}, + { 8, 4, 1, 1, sMapName_TrainerHill} +}; + +#endif //GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H diff --git a/src/data/text/abilities.h b/src/data/text/abilities.h new file mode 100644 index 000000000..3a1e989d2 --- /dev/null +++ b/src/data/text/abilities.h @@ -0,0 +1,247 @@ +#ifndef POKEEMERALD_DATA_TEXT_ABILITIES_H +#define POKEEMERALD_DATA_TEXT_ABILITIES_H + +static const u8 gNoneAbilityDescription[] = _("No special ability."); +static const u8 gStenchAbilityDescription[] = _("Helps repel wild POKéMON."); +static const u8 gDrizzleAbilityDescription[] = _("Summons rain in battle."); +static const u8 gSpeedBoostAbilityDescription[] = _("Gradually boosts SPEED."); +static const u8 gBattleArmorAbilityDescription[] = _("Blocks critical hits."); +static const u8 gSturdyAbilityDescription[] = _("Negates 1-hit KO attacks."); +static const u8 gDampAbilityDescription[] = _("Prevents self-destruction."); +static const u8 gLimberAbilityDescription[] = _("Prevents paralysis."); +static const u8 gSandVeilAbilityDescription[] = _("Ups evasion in a sandstorm."); +static const u8 gStaticAbilityDescription[] = _("Paralyzes on contact."); +static const u8 gVoltAbsorbAbilityDescription[] = _("Turns electricity into HP."); +static const u8 gWaterAbsorbAbilityDescription[] = _("Changes water into HP."); +static const u8 gObliviousAbilityDescription[] = _("Prevents attraction."); +static const u8 gCloudNineAbilityDescription[] = _("Negates weather effects."); +static const u8 gCompoundEyesAbilityDescription[] = _("Raises accuracy."); +static const u8 gInsomniaAbilityDescription[] = _("Prevents sleep."); +static const u8 gColorChangeAbilityDescription[] = _("Changes type to foe’s move."); +static const u8 gImmunityAbilityDescription[] = _("Prevents poisoning."); +static const u8 gFlashFireAbilityDescription[] = _("Powers up if hit by fire."); +static const u8 gShieldDustAbilityDescription[] = _("Prevents added effects."); +static const u8 gOwnTempoAbilityDescription[] = _("Prevents confusion."); +static const u8 gSuctionCupsAbilityDescription[] = _("Firmly anchors the body."); +static const u8 gIntimidateAbilityDescription[] = _("Lowers the foe’s ATTACK."); +static const u8 gShadowTagAbilityDescription[] = _("Prevents the foe’s escape."); +static const u8 gRoughSkinAbilityDescription[] = _("Hurts to touch."); +static const u8 gWonderGuardAbilityDescription[] = _("“Super effective†hits."); +static const u8 gLevitateAbilityDescription[] = _("Not hit by GROUND attacks."); +static const u8 gEffectSporeAbilityDescription[] = _("Leaves spores on contact."); +static const u8 gSynchronizeAbilityDescription[] = _("Passes on status problems."); +static const u8 gClearBodyAbilityDescription[] = _("Prevents ability reduction."); +static const u8 gNaturalCureAbilityDescription[] = _("Heals upon switching out."); +static const u8 gLightningRodAbilityDescription[] = _("Draws electrical moves."); +static const u8 gSereneGraceAbilityDescription[] = _("Promotes added effects."); +static const u8 gSwiftSwimAbilityDescription[] = _("Raises SPEED in rain."); +static const u8 gChlorophyllAbilityDescription[] = _("Raises SPEED in sunshine."); +static const u8 gIlluminateAbilityDescription[] = _("Encounter rate increases."); +static const u8 gTraceAbilityDescription[] = _("Copies special ability."); +static const u8 gHugePowerAbilityDescription[] = _("Raises ATTACK."); +static const u8 gPoisonPointAbilityDescription[] = _("Poisons foe on contact."); +static const u8 gInnerFocusAbilityDescription[] = _("Prevents flinching."); +static const u8 gMagmaArmorAbilityDescription[] = _("Prevents freezing."); +static const u8 gWaterVeilAbilityDescription[] = _("Prevents burns."); +static const u8 gMagnetPullAbilityDescription[] = _("Traps STEEL-type POKéMON."); +static const u8 gSoundproofAbilityDescription[] = _("Avoids sound-based moves."); +static const u8 gRainDishAbilityDescription[] = _("Slight HP recovery in rain."); +static const u8 gSandStreamAbilityDescription[] = _("Summons a sandstorm."); +static const u8 gPressureAbilityDescription[] = _("Raises foe’s PP usage."); +static const u8 gThickFatAbilityDescription[] = _("Heat-and-cold protection."); +static const u8 gEarlyBirdAbilityDescription[] = _("Awakens quickly from sleep."); +static const u8 gFlameBodyAbilityDescription[] = _("Burns the foe on contact."); +static const u8 gRunAwayAbilityDescription[] = _("Makes escaping easier."); +static const u8 gKeenEyeAbilityDescription[] = _("Prevents loss of accuracy."); +static const u8 gHyperCutterAbilityDescription[] = _("Prevents ATTACK reduction."); +static const u8 gPickupAbilityDescription[] = _("May pick up items."); +static const u8 gTruantAbilityDescription[] = _("Moves only every two turns."); +static const u8 gHustleAbilityDescription[] = _("Trades accuracy for power."); +static const u8 gCuteCharmAbilityDescription[] = _("Infatuates on contact."); +static const u8 gPlusAbilityDescription[] = _("Powers up with MINUS."); +static const u8 gMinusAbilityDescription[] = _("Powers up with PLUS."); +static const u8 gForecastAbilityDescription[] = _("Changes with the weather."); +static const u8 gStickyHoldAbilityDescription[] = _("Prevents item theft."); +static const u8 gShedSkinAbilityDescription[] = _("Heals the body by shedding."); +static const u8 gGutsAbilityDescription[] = _("Ups ATTACK if suffering."); +static const u8 gMarvelScaleAbilityDescription[] = _("Ups DEFENSE if suffering."); +static const u8 gLiquidOozeAbilityDescription[] = _("Draining causes injury."); +static const u8 gOvergrowAbilityDescription[] = _("Ups GRASS moves in a pinch."); +static const u8 gBlazeAbilityDescription[] = _("Ups FIRE moves in a pinch."); +static const u8 gTorrentAbilityDescription[] = _("Ups WATER moves in a pinch."); +static const u8 gSwarmAbilityDescription[] = _("Ups BUG moves in a pinch."); +static const u8 gRockHeadAbilityDescription[] = _("Prevents recoil damage."); +static const u8 gDroughtAbilityDescription[] = _("Summons sunlight in battle."); +static const u8 gArenaTrapAbilityDescription[] = _("Prevents fleeing."); +static const u8 gVitalSpiritAbilityDescription[] = _("Prevents sleep."); +static const u8 gWhiteSmokeAbilityDescription[] = _("Prevents ability reduction."); +static const u8 gPurePowerAbilityDescription[] = _("Raises ATTACK."); +static const u8 gShellArmorAbilityDescription[] = _("Blocks critical hits."); +static const u8 gCacophonyAbilityDescription[] = _("Avoids sound-based moves."); +static const u8 gAirLockAbilityDescription[] = _("Negates weather effects."); + +const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1] = +{ + _("-------"), + _("STENCH"), + _("DRIZZLE"), + _("SPEED BOOST"), + _("BATTLE ARMOR"), + _("STURDY"), + _("DAMP"), + _("LIMBER"), + _("SAND VEIL"), + _("STATIC"), + _("VOLT ABSORB"), + _("WATER ABSORB"), + _("OBLIVIOUS"), + _("CLOUD NINE"), + _("COMPOUNDEYES"), + _("INSOMNIA"), + _("COLOR CHANGE"), + _("IMMUNITY"), + _("FLASH FIRE"), + _("SHIELD DUST"), + _("OWN TEMPO"), + _("SUCTION CUPS"), + _("INTIMIDATE"), + _("SHADOW TAG"), + _("ROUGH SKIN"), + _("WONDER GUARD"), + _("LEVITATE"), + _("EFFECT SPORE"), + _("SYNCHRONIZE"), + _("CLEAR BODY"), + _("NATURAL CURE"), + _("LIGHTNINGROD"), + _("SERENE GRACE"), + _("SWIFT SWIM"), + _("CHLOROPHYLL"), + _("ILLUMINATE"), + _("TRACE"), + _("HUGE POWER"), + _("POISON POINT"), + _("INNER FOCUS"), + _("MAGMA ARMOR"), + _("WATER VEIL"), + _("MAGNET PULL"), + _("SOUNDPROOF"), + _("RAIN DISH"), + _("SAND STREAM"), + _("PRESSURE"), + _("THICK FAT"), + _("EARLY BIRD"), + _("FLAME BODY"), + _("RUN AWAY"), + _("KEEN EYE"), + _("HYPER CUTTER"), + _("PICKUP"), + _("TRUANT"), + _("HUSTLE"), + _("CUTE CHARM"), + _("PLUS"), + _("MINUS"), + _("FORECAST"), + _("STICKY HOLD"), + _("SHED SKIN"), + _("GUTS"), + _("MARVEL SCALE"), + _("LIQUID OOZE"), + _("OVERGROW"), + _("BLAZE"), + _("TORRENT"), + _("SWARM"), + _("ROCK HEAD"), + _("DROUGHT"), + _("ARENA TRAP"), + _("VITAL SPIRIT"), + _("WHITE SMOKE"), + _("PURE POWER"), + _("SHELL ARMOR"), + _("CACOPHONY"), + _("AIR LOCK"), +}; + +const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT] = +{ + gNoneAbilityDescription, + gStenchAbilityDescription, + gDrizzleAbilityDescription, + gSpeedBoostAbilityDescription, + gBattleArmorAbilityDescription, + gSturdyAbilityDescription, + gDampAbilityDescription, + gLimberAbilityDescription, + gSandVeilAbilityDescription, + gStaticAbilityDescription, + gVoltAbsorbAbilityDescription, + gWaterAbsorbAbilityDescription, + gObliviousAbilityDescription, + gCloudNineAbilityDescription, + gCompoundEyesAbilityDescription, + gInsomniaAbilityDescription, + gColorChangeAbilityDescription, + gImmunityAbilityDescription, + gFlashFireAbilityDescription, + gShieldDustAbilityDescription, + gOwnTempoAbilityDescription, + gSuctionCupsAbilityDescription, + gIntimidateAbilityDescription, + gShadowTagAbilityDescription, + gRoughSkinAbilityDescription, + gWonderGuardAbilityDescription, + gLevitateAbilityDescription, + gEffectSporeAbilityDescription, + gSynchronizeAbilityDescription, + gClearBodyAbilityDescription, + gNaturalCureAbilityDescription, + gLightningRodAbilityDescription, + gSereneGraceAbilityDescription, + gSwiftSwimAbilityDescription, + gChlorophyllAbilityDescription, + gIlluminateAbilityDescription, + gTraceAbilityDescription, + gHugePowerAbilityDescription, + gPoisonPointAbilityDescription, + gInnerFocusAbilityDescription, + gMagmaArmorAbilityDescription, + gWaterVeilAbilityDescription, + gMagnetPullAbilityDescription, + gSoundproofAbilityDescription, + gRainDishAbilityDescription, + gSandStreamAbilityDescription, + gPressureAbilityDescription, + gThickFatAbilityDescription, + gEarlyBirdAbilityDescription, + gFlameBodyAbilityDescription, + gRunAwayAbilityDescription, + gKeenEyeAbilityDescription, + gHyperCutterAbilityDescription, + gPickupAbilityDescription, + gTruantAbilityDescription, + gHustleAbilityDescription, + gCuteCharmAbilityDescription, + gPlusAbilityDescription, + gMinusAbilityDescription, + gForecastAbilityDescription, + gStickyHoldAbilityDescription, + gShedSkinAbilityDescription, + gGutsAbilityDescription, + gMarvelScaleAbilityDescription, + gLiquidOozeAbilityDescription, + gOvergrowAbilityDescription, + gBlazeAbilityDescription, + gTorrentAbilityDescription, + gSwarmAbilityDescription, + gRockHeadAbilityDescription, + gDroughtAbilityDescription, + gArenaTrapAbilityDescription, + gVitalSpiritAbilityDescription, + gWhiteSmokeAbilityDescription, + gPurePowerAbilityDescription, + gShellArmorAbilityDescription, + gCacophonyAbilityDescription, + gAirLockAbilityDescription, +}; + +#endif // POKEEMERALD_DATA_TEXT_ABILITIES_H diff --git a/src/data/text/item_descriptions.h b/src/data/text/item_descriptions.h new file mode 100644 index 000000000..8683978d7 --- /dev/null +++ b/src/data/text/item_descriptions.h @@ -0,0 +1,329 @@ +#ifndef POKEEMERALD_DATA_TEXT_ITEM_DESCRIPTIONS_H +#define POKEEMERALD_DATA_TEXT_ITEM_DESCRIPTIONS_H +const u8 gDummyItemDescription[] = _("?????"); +//Pokeballs +const u8 gMasterBallItemDescription[] = _("The best BALL that\ncatches a POKéMON\nwithout fail."); +const u8 gUltraBallItemDescription[] = _("A better BALL with\na higher catch rate\nthan a GREAT BALL."); +const u8 gGreatBallItemDescription[] = _("A good BALL with a\nhigher catch rate\nthan a POKé BALL."); +const u8 gPokeBallItemDescription[] = _("A tool used for\ncatching wild\nPOKéMON."); +const u8 gSafariBallItemDescription[] = _("A special BALL that\nis used only in the\nSAFARI ZONE."); +const u8 gNetBallItemDescription[] = _("A BALL that works\nwell on WATER- and\nBUG-type POKéMON."); +const u8 gDiveBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\non the ocean floor."); +const u8 gNestBallItemDescription[] = _("A BALL that works\nbetter on weaker\nPOKéMON."); +const u8 gRepeatBallItemDescription[] = _("A BALL that works\nbetter on POKéMON\ncaught before."); +const u8 gTimerBallItemDescription[] = _("A BALL that gains\npower in battles\ntaking many turns."); +const u8 gLuxuryBallItemDescription[] = _("A cozy BALL that\nmakes POKéMON\nmore friendly."); +const u8 gPremierBallItemDescription[] = _("A rare BALL made\nin commemoration\nof some event."); +//Medicine +const u8 gPotionItemDescription[] = _("Restores the HP of\na POKéMON by\n20 points."); +const u8 gAntidoteItemDescription[] = _("Heals a poisoned\nPOKéMON."); +const u8 gBurnHealItemDescription[] = _("Heals POKéMON\nof a burn."); +const u8 gIceHealItemDescription[] = _("Defrosts a frozen\nPOKéMON."); +const u8 gAwakeningItemDescription[] = _("Awakens a sleeping\nPOKéMON."); +const u8 gParalyzeHealItemDescription[] = _("Heals a paralyzed\nPOKéMON."); +const u8 gFullRestoreItemDescription[] = _("Fully restores the\nHP and status of a\nPOKéMON."); +const u8 gMaxPotionItemDescription[] = _("Fully restores the\nHP of a POKéMON."); +const u8 gHyperPotionItemDescription[] = _("Restores the HP of\na POKéMON by\n200 points."); +const u8 gSuperPotionItemDescription[] = _("Restores the HP of\na POKéMON by\n50 points."); +const u8 gFullHealItemDescription[] = _("Heals all the\nstatus problems of\none POKéMON."); +const u8 gReviveItemDescription[] = _("Revives a fainted\nPOKéMON with half\nits HP."); +const u8 gMaxReviveItemDescription[] = _("Revives a fainted\nPOKéMON with all\nits HP."); +const u8 gFreshWaterItemDescription[] = _("A mineral water\nthat restores HP\nby 50 points."); +const u8 gSodaPopItemDescription[] = _("A fizzy soda drink\nthat restores HP\nby 60 points."); +const u8 gLemonadeItemDescription[] = _("A very sweet drink\nthat restores HP\nby 80 points."); +const u8 gMoomooMilkItemDescription[] = _("A nutritious milk\nthat restores HP\nby 100 points."); +const u8 gEnergyPowderItemDescription[] = _("A bitter powder\nthat restores HP\nby 50 points."); +const u8 gEnergyRootItemDescription[] = _("A bitter root\nthat restores HP\nby 200 points."); +const u8 gHealPowderItemDescription[] = _("A bitter powder\nthat heals all\nstatus problems."); +const u8 gRevivalHerbItemDescription[] = _("A very bitter herb\nthat revives a\nfainted POKéMON."); +const u8 gEtherItemDescription[] = _("Restores the PP\nof a selected move\nby 10."); +const u8 gMaxEtherItemDescription[] = _("Fully restores the\nPP of a selected\nmove."); +const u8 gElixirItemDescription[] = _("Restores the PP\nof all moves by 10."); +const u8 gMaxElixirItemDescription[] = _("Fully restores the\nPP of a POKéMON’s\nmoves."); +const u8 gLavaCookieItemDescription[] = _("A local specialty\nthat heals all\nstatus problems."); +const u8 gBlueFluteItemDescription[] = _("A glass flute that\nawakens sleeping\nPOKéMON."); +const u8 gYellowFluteItemDescription[] = _("A glass flute that\nsnaps POKéMON\nout of confusion."); +const u8 gRedFluteItemDescription[] = _("A glass flute that\nsnaps POKéMON\nout of attraction."); +const u8 gBlackFluteItemDescription[] = _("A glass flute that\nkeeps away wild\nPOKéMON."); +const u8 gWhiteFluteItemDescription[] = _("A glass flute that\nlures wild POKéMON."); +const u8 gBerryJuiceItemDescription[] = _("A 100% pure juice\nthat restores HP\nby 20 points."); +const u8 gSacredAshItemDescription[] = _("Fully revives and\nrestores all\nfainted POKéMON."); +//Collectibles +const u8 gShoalSaltItemDescription[] = _("Salt obtained from\ndeep inside the\nSHOAL CAVE."); +const u8 gShoalShellItemDescription[] = _("A seashell found\ndeep inside the\nSHOAL CAVE."); +const u8 gRedShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply."); +const u8 gBlueShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply."); +const u8 gYellowShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply."); +const u8 gGreenShardItemDescription[] = _("A shard from an\nancient item. Can\nbe sold cheaply."); +//Vitamins +const u8 gHPUpItemDescription[] = _("Raises the base HP\nof one POKéMON."); +const u8 gProteinItemDescription[] = _("Raises the base\nATTACK stat of one\nPOKéMON."); +const u8 gIronItemDescription[] = _("Raises the base\nDEFENSE stat of\none POKéMON."); +const u8 gCarbosItemDescription[] = _("Raises the base\nSPEED stat of one\nPOKéMON."); +const u8 gCalciumItemDescription[] = _("Raises the base\nSP. ATK stat of one\nPOKéMON."); +const u8 gRareCandyItemDescription[] = _("Raises the level\nof a POKéMON by\none."); +const u8 gPPUpItemDescription[] = _("Raises the maximum\nPP of a selected\nmove."); +const u8 gZincItemDescription[] = _("Raises the base\nSP. DEF stat of one\nPOKéMON."); +const u8 gPPMaxItemDescription[] = _("Raises the PP of a\nmove to its maximum\npoints."); +//Battle items +const u8 gGuardSpecItemDescription[] = _("Prevents stat\nreduction when\nused in battle."); +const u8 gDireHitItemDescription[] = _("Raises the\ncritical-hit ratio\nduring one battle."); +const u8 gXAttackItemDescription[] = _("Raises the stat\nATTACK during one\nbattle."); +const u8 gXDefendItemDescription[] = _("Raises the stat\nDEFENSE during one\nbattle."); +const u8 gXSpeedItemDescription[] = _("Raises the stat\nSPEED during one\nbattle."); +const u8 gXAccuracyItemDescription[] = _("Raises accuracy\nof attack moves\nduring one battle."); +const u8 gXSpecialItemDescription[] = _("Raises the stat\nSP. ATK during one\nbattle."); +const u8 gPokeDollItemDescription[] = _("Use to flee from\nany battle with\na wild POKéMON."); +const u8 gFluffyTailItemDescription[] = _("Use to flee from\nany battle with\na wild POKéMON."); +//Field items +const u8 gSuperRepelItemDescription[] = _("Repels weak wild\nPOKéMON for 200\nsteps."); +const u8 gMaxRepelItemDescription[] = _("Repels weak wild\nPOKéMON for 250\nsteps."); +const u8 gEscapeRopeItemDescription[] = _("Use to escape\ninstantly from a\ncave or a dungeon."); +const u8 gRepelItemDescription[] = _("Repels weak wild\nPOKéMON for 100\nsteps."); +//Evolution stones +const u8 gSunStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); +const u8 gMoonStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); +const u8 gFireStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); +const u8 gThunderStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); +const u8 gWaterStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); +const u8 gLeafStoneItemDescription[] = _("Makes certain\nspecies of POKéMON\nevolve."); +//Valuable items +const u8 gTinyMushroomItemDescription[] = _("A plain mushroom\nthat would sell\nat a cheap price."); +const u8 gBigMushroomItemDescription[] = _("A rare mushroom\nthat would sell at a\nhigh price."); +const u8 gPearlItemDescription[] = _("A pretty pearl\nthat would sell at a\ncheap price."); +const u8 gBigPearlItemDescription[] = _("A lovely large pearl\nthat would sell at a\nhigh price."); +const u8 gStardustItemDescription[] = _("Beautiful red sand.\nCan be sold at a\nhigh price."); +const u8 gStarPieceItemDescription[] = _("A red gem shard.\nIt would sell for a\nvery high price."); +const u8 gNuggetItemDescription[] = _("A nugget of pure\ngold. Can be sold at\na high price."); +const u8 gHeartScaleItemDescription[] = _("A lovely scale.\nIt is coveted by\ncollectors."); +//Mail +const u8 gOrangeMailItemDescription[] = _("A ZIGZAGOON-print\nMAIL to be held by\na POKéMON."); +const u8 gHarborMailItemDescription[] = _("A WINGULL-print\nMAIL to be held by\na POKéMON."); +const u8 gGlitterMailItemDescription[] = _("A PIKACHU-print\nMAIL to be held by\na POKéMON."); +const u8 gMechMailItemDescription[] = _("A MAGNEMITE-print\nMAIL to be held by\na POKéMON."); +const u8 gWoodMailItemDescription[] = _("A SLAKOTH-print\nMAIL to be held by\na POKéMON."); +const u8 gWaveMailItemDescription[] = _("A WAILMER-print\nMAIL to be held by\na POKéMON."); +const u8 gBeadMailItemDescription[] = _("MAIL featuring a\nsketch of the\nholding POKéMON."); +const u8 gShadowMailItemDescription[] = _("A DUSKULL-print\nMAIL to be held by\na POKéMON."); +const u8 gTropicMailItemDescription[] = _("A BELLOSSOM-print\nMAIL to be held by\na POKéMON."); +const u8 gDreamMailItemDescription[] = _("MAIL featuring a\nsketch of the\nholding POKéMON."); +const u8 gFabMailItemDescription[] = _("A gorgeous-print\nMAIL to be held\nby a POKéMON."); +const u8 gRetroMailItemDescription[] = _("MAIL featuring the\ndrawings of three\nPOKéMON."); +//Berries +const u8 gCheriBerryItemDescription[] = _("A hold item that\nheals paralysis\nin battle."); +const u8 gChestoBerryItemDescription[] = _("A hold item that\nawakens POKéMON\nin battle."); +const u8 gPechaBerryItemDescription[] = _("A hold item that\nheals poisoning\nin battle."); +const u8 gRawstBerryItemDescription[] = _("A hold item that\nheals a burn in\nbattle."); +const u8 gAspearBerryItemDescription[] = _("A hold item that\ndefrosts POKéMON\nin battle."); +const u8 gLeppaBerryItemDescription[] = _("A hold item that\nrestores 10 PP in\nbattle."); +const u8 gOranBerryItemDescription[] = _("A hold item that\nrestores 10 HP in\nbattle."); +const u8 gPersimBerryItemDescription[] = _("A hold item that\nheals confusion\nin battle."); +const u8 gLumBerryItemDescription[] = _("A hold item that\nheals any status\nproblem in battle."); +const u8 gSitrusBerryItemDescription[] = _("A hold item that\nrestores 30 HP in\nbattle."); +const u8 gFigyBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse."); +const u8 gWikiBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse."); +const u8 gMagoBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse."); +const u8 gAguavBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse."); +const u8 gIapapaBerryItemDescription[] = _("A hold item that\nrestores HP but\nmay confuse."); +const u8 gRazzBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow RAZZ."); +const u8 gBlukBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow BLUK."); +const u8 gNanabBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow NANAB."); +const u8 gWepearBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow WEPEAR."); +const u8 gPinapBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow PINAP."); +const u8 gPomegBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase HP."); +const u8 gKelpsyBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase ATTACK."); +const u8 gQualotBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase DEFENSE."); +const u8 gHondewBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase SP. ATK."); +const u8 gGrepaBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase SP. DEF."); +const u8 gTamatoBerryItemDescription[] = _("Makes a POKéMON\nfriendly but lowers\nbase SPEED."); +const u8 gCornnBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow CORNN."); +const u8 gMagostBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow MAGOST."); +const u8 gRabutaBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow RABUTA."); +const u8 gNomelBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow NOMEL."); +const u8 gSpelonBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow SPELON."); +const u8 gPamtreBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow PAMTRE."); +const u8 gWatmelBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow WATMEL."); +const u8 gDurinBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow DURIN."); +const u8 gBelueBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow BELUE."); +const u8 gLiechiBerryItemDescription[] = _("A hold item that\nraises ATTACK in\na pinch."); +const u8 gGanlonBerryItemDescription[] = _("A hold item that\nraises DEFENSE in\na pinch."); +const u8 gSalacBerryItemDescription[] = _("A hold item that\nraises SPEED in\na pinch."); +const u8 gPetayaBerryItemDescription[] = _("A hold item that\nraises SP. ATK in\na pinch."); +const u8 gApicotBerryItemDescription[] = _("A hold item that\nraises SP. DEF in\na pinch."); +const u8 gLansatBerryItemDescription[] = _("A hold item that\nups the critical-\nhit rate in a pinch."); +const u8 gStarfBerryItemDescription[] = _("A hold item that\nsharply boosts a\nstat in a pinch."); +const u8 gEnigmaBerryItemDescription[] = _("{POKEBLOCK} ingredient.\nPlant in loamy soil\nto grow a mystery."); +//Hold items +const u8 gBrightPowderItemDescription[] = _("A hold item that\ncasts a glare to\nreduce accuracy."); +const u8 gWhiteHerbItemDescription[] = _("A hold item that\nrestores any\nlowered stat."); +const u8 gMachoBraceItemDescription[] = _("A hold item that\npromotes growth,\nbut reduces SPEED."); +const u8 gExpShareItemDescription[] = _("A hold item that\ngets EXP. points\nfrom battles."); +const u8 gQuickClawItemDescription[] = _("A hold item that\noccasionally allows\nthe first strike."); +const u8 gSootheBellItemDescription[] = _("A hold item that\ncalms spirits and\nfosters friendship."); +const u8 gMentalHerbItemDescription[] = _("A hold item that\nsnaps POKéMON out\nof infatuation."); +const u8 gChoiceBandItemDescription[] = _("Raises a move’s\npower, but permits\nonly that move."); +const u8 gKingsRockItemDescription[] = _("A hold item that\nmay cause flinching\nwhen the foe is hit."); +const u8 gSilverPowderItemDescription[] = _("A hold item that\nraises the power of\nBUG-type moves."); +const u8 gAmuletCoinItemDescription[] = _("Doubles money in\nbattle if the\nholder takes part."); +const u8 gCleanseTagItemDescription[] = _("A hold item that\nhelps repel wild\nPOKéMON."); +const u8 gSoulDewItemDescription[] = _("Hold item: raises\nSP. ATK & SP. DEF of\nLATIOS & LATIAS."); +const u8 gDeepSeaToothItemDescription[] = _("A hold item that\nraises the SP. ATK\nof CLAMPERL."); +const u8 gDeepSeaScaleItemDescription[] = _("A hold item that\nraises the SP. DEF\nof CLAMPERL."); +const u8 gSmokeBallItemDescription[] = _("A hold item that\nassures fleeing\nfrom wild POKéMON."); +const u8 gEverstoneItemDescription[] = _("A wondrous hold\nitem that prevents\nevolution."); +const u8 gFocusBandItemDescription[] = _("A hold item that\noccasionally\nprevents fainting."); +const u8 gLuckyEggItemDescription[] = _("A hold item that\nboosts EXP. points\nearned in battle."); +const u8 gScopeLensItemDescription[] = _("A hold item that\nimproves the\ncritical-hit rate."); +const u8 gMetalCoatItemDescription[] = _("A hold item that\nraises the power of\nSTEEL-type moves."); +const u8 gLeftoversItemDescription[] = _("A hold item that\ngradually restores\nHP in battle."); +const u8 gDragonScaleItemDescription[] = _("A strange scale\nheld by DRAGON-\ntype POKéMON."); +const u8 gLightBallItemDescription[] = _("A hold item that\nraises the SP. ATK\nof PIKACHU."); +const u8 gSoftSandItemDescription[] = _("A hold item that\nraises the power of\nGROUND-type moves."); +const u8 gHardStoneItemDescription[] = _("A hold item that\nraises the power of\nROCK-type moves."); +const u8 gMiracleSeedItemDescription[] = _("A hold item that\nraises the power of\nGRASS-type moves."); +const u8 gBlackGlassesItemDescription[] = _("A hold item that\nraises the power of\nDARK-type moves."); +const u8 gBlackBeltItemDescription[] = _("A hold item that\nboosts FIGHTING-\ntype moves."); +const u8 gMagnetItemDescription[] = _("A hold item that\nboosts ELECTRIC-\ntype moves."); +const u8 gMysticWaterItemDescription[] = _("A hold item that\nraises the power of\nWATER-type moves."); +const u8 gSharpBeakItemDescription[] = _("A hold item that\nraises the power of\nFLYING-type moves."); +const u8 gPoisonBarbItemDescription[] = _("A hold item that\nraises the power of\nPOISON-type moves."); +const u8 gNeverMeltIceItemDescription[] = _("A hold item that\nraises the power of\nICE-type moves."); +const u8 gSpellTagItemDescription[] = _("A hold item that\nraises the power of\nGHOST-type moves."); +const u8 gTwistedSpoonItemDescription[] = _("A hold item that\nboosts PSYCHIC-\ntype moves."); +const u8 gCharcoalItemDescription[] = _("A hold item that\nraises the power of\nFIRE-type moves."); +const u8 gDragonFangItemDescription[] = _("A hold item that\nraises the power of\nDRAGON-type moves."); +const u8 gSilkScarfItemDescription[] = _("A hold item that\nraises the power of\nNORMAL-type moves."); +const u8 gUpGradeItemDescription[] = _("A peculiar box made\nby SILPH CO."); +const u8 gShellBellItemDescription[] = _("A hold item that\nrestores HP upon\nstriking the foe."); +const u8 gSeaIncenseItemDescription[] = _("A hold item that\nslightly boosts\nWATER-type moves."); +const u8 gLaxIncenseItemDescription[] = _("A hold item that\nslightly lowers the\nfoe’s accuracy."); +const u8 gLuckyPunchItemDescription[] = _("A hold item that\nraises CHANSEY’s\ncritical-hit rate."); +const u8 gMetalPowderItemDescription[] = _("A hold item that\nraises DITTO’s\nDEFENSE."); +const u8 gThickClubItemDescription[] = _("A hold item that \nraises CUBONE or\nMAROWAK’s ATTACK."); +const u8 gStickItemDescription[] = _("A hold item that\nraises FARFETCH’D’s\ncritical-hit ratio."); +const u8 gRedScarfItemDescription[] = _("A hold item that\nraises COOL in\nCONTESTS."); +const u8 gBlueScarfItemDescription[] = _("A hold item that\nraises BEAUTY in\nCONTESTS."); +const u8 gPinkScarfItemDescription[] = _("A hold item that\nraises CUTE in\nCONTESTS."); +const u8 gGreenScarfItemDescription[] = _("A hold item that\nraises SMART in\nCONTESTS."); +const u8 gYellowScarfItemDescription[] = _("A hold item that\nraises TOUGH in\nCONTESTS."); +//Key items +const u8 gMachBikeItemDescription[] = _("A folding bicycle\nthat doubles your\nspeed or better."); +const u8 gCoinCaseItemDescription[] = _("A case that holds\nup to 9,999 COINS."); +const u8 gItemfinderItemDescription[] = _("A device that\nsignals an invisible\nitem by sound."); +const u8 gOldRodItemDescription[] = _("Use by any body of\nwater to fish for\nwild POKéMON."); +const u8 gGoodRodItemDescription[] = _("A decent fishing\nrod for catching\nwild POKéMON."); +const u8 gSuperRodItemDescription[] = _("The best fishing\nrod for catching\nwild POKéMON."); +const u8 gSSTicketItemDescription[] = _("The ticket required\nfor sailing on a\nferry."); +const u8 gContestPassItemDescription[] = _("The pass required\nfor entering\nPOKéMON CONTESTS."); +const u8 gWailmerPailItemDescription[] = _("A tool used for\nwatering BERRIES\nand plants."); +const u8 gDevonGoodsItemDescription[] = _("A package that\ncontains DEVON’s\nmachine parts."); +const u8 gSootSackItemDescription[] = _("A sack used to\ngather and hold\nvolcanic ash."); +const u8 gBasementKeyItemDescription[] = _("The key for NEW\nMAUVILLE beneath\nMAUVILLE CITY."); +const u8 gAcroBikeItemDescription[] = _("A folding bicycle\ncapable of jumps\nand wheelies."); +const u8 gPokeblockCaseItemDescription[] = _("A case for holding\n{POKEBLOCK}S made with\na BERRY BLENDER."); +const u8 gLetterItemDescription[] = _("A letter to STEVEN\nfrom the PRESIDENT\nof the DEVON CORP."); +const u8 gEonTicketItemDescription[] = _("The ticket for a\nferry to a distant\nsouthern island."); +const u8 gRedOrbItemDescription[] = _("A red, glowing orb\nsaid to contain an\nancient power."); +const u8 gBlueOrbItemDescription[] = _("A blue, glowing orb\nsaid to contain an\nancient power."); +const u8 gScannerItemDescription[] = _("A device found\ninside the\nABANDONED SHIP."); +const u8 gGoGogglesItemDescription[] = _("Nifty goggles that\nprotect eyes from\ndesert sandstorms."); +const u8 gMeteoriteItemDescription[] = _("A meteorite found\nat METEOR FALLS."); +const u8 gRoom1KeyItemDescription[] = _("A key that opens a\ndoor inside the\nABANDONED SHIP."); +const u8 gRoom2KeyItemDescription[] = _("A key that opens a\ndoor inside the\nABANDONED SHIP."); +const u8 gRoom4KeyItemDescription[] = _("A key that opens a\ndoor inside the\nABANDONED SHIP."); +const u8 gRoom6KeyItemDescription[] = _("A key that opens a\ndoor inside the\nABANDONED SHIP."); +const u8 gStorageKeyItemDescription[] = _("The key to the\nstorage inside the\nABANDONED SHIP."); +const u8 gRootFossilItemDescription[] = _("A fossil of an\nancient, seafloor-\ndwelling POKéMON."); +const u8 gClawFossilItemDescription[] = _("A fossil of an\nancient, seafloor-\ndwelling POKéMON."); +const u8 gDevonScopeItemDescription[] = _("A device by DEVON\nthat signals any\nunseeable POKéMON."); +//TMs/HMs +const u8 gTM01ItemDescription[] = _("Powerful, but makes\nthe user flinch if\nhit by the foe."); +const u8 gTM02ItemDescription[] = _("Hooks and slashes\nthe foe with long,\nsharp claws."); +const u8 gTM03ItemDescription[] = _("Generates an\nultrasonic wave\nthat may confuse."); +const u8 gTM04ItemDescription[] = _("Raises SP. ATK and\nSP. DEF by focusing\nthe mind."); +const u8 gTM05ItemDescription[] = _("A savage roar that\nmakes the foe flee \nto end the battle."); +const u8 gTM06ItemDescription[] = _("Poisons the foe\nwith a toxin that\ngradually worsens."); +const u8 gTM07ItemDescription[] = _("Creates a hailstorm\nthat damages all\ntypes except ICE."); +const u8 gTM08ItemDescription[] = _("Bulks up the body\nto boost both\nATTACK & DEFENSE."); +const u8 gTM09ItemDescription[] = _("Shoots 2 to 5 seeds\nin a row to strike\nthe foe."); +const u8 gTM10ItemDescription[] = _("The attack power\nvaries among\ndifferent POKéMON."); +const u8 gTM11ItemDescription[] = _("Raises the power of\nFIRE-type moves\nfor 5 turns."); +const u8 gTM12ItemDescription[] = _("Enrages the foe so\nit can only use\nattack moves."); +const u8 gTM13ItemDescription[] = _("Fires an icy cold\nbeam that may\nfreeze the foe."); +const u8 gTM14ItemDescription[] = _("A brutal snow-and-\nwind attack that\nmay freeze the foe."); +const u8 gTM15ItemDescription[] = _("Powerful, but needs\nrecharging the\nnext turn."); +const u8 gTM16ItemDescription[] = _("Creates a wall of\nlight that lowers\nSP. ATK damage."); +const u8 gTM17ItemDescription[] = _("Negates all damage,\nbut may fail if used\nin succession."); +const u8 gTM18ItemDescription[] = _("Raises the power of\nWATER-type moves\nfor 5 turns."); +const u8 gTM19ItemDescription[] = _("Recovers half the\nHP of the damage \nthis move inflicts."); +const u8 gTM20ItemDescription[] = _("Prevents status\nabnormality with a\nmystical power."); +const u8 gTM21ItemDescription[] = _("The less the user\nlikes you, the more\npowerful this move."); +const u8 gTM22ItemDescription[] = _("Absorbs sunlight in\nthe 1st turn, then\nattacks next turn."); +const u8 gTM23ItemDescription[] = _("Slams the foe with\na hard tail. It may\nlower DEFENSE."); +const u8 gTM24ItemDescription[] = _("A powerful electric\nattack that may\ncause paralysis."); +const u8 gTM25ItemDescription[] = _("Strikes the foe\nwith a thunderbolt.\nIt may paralyze."); +const u8 gTM26ItemDescription[] = _("Causes a quake\nthat has no effect\non flying foes."); +const u8 gTM27ItemDescription[] = _("The more the user\nlikes you, the more\npowerful this move."); +const u8 gTM28ItemDescription[] = _("Digs underground\nthe 1st turn, then\nstrikes next turn."); +const u8 gTM29ItemDescription[] = _("A powerful psychic\nattack that may\nlower SP. DEF."); +const u8 gTM30ItemDescription[] = _("Hurls a dark lump\nat the foe. It may\nlower SP. DEF."); +const u8 gTM31ItemDescription[] = _("Destroys barriers\nlike LIGHT SCREEN\nand causes damage."); +const u8 gTM32ItemDescription[] = _("Creates illusory\ncopies to enhance\nelusiveness."); +const u8 gTM33ItemDescription[] = _("Creates a wall of\nlight that weakens\nphysical attacks."); +const u8 gTM34ItemDescription[] = _("Zaps the foe with a\njolt of electricity\nthat never misses."); +const u8 gTM35ItemDescription[] = _("Looses a stream of\nfire that may burn\nthe foe."); +const u8 gTM36ItemDescription[] = _("Hurls sludge at the\nfoe. It may poison\nthe foe."); +const u8 gTM37ItemDescription[] = _("Causes a sandstorm\nthat hits the foe\nover several turns."); +const u8 gTM38ItemDescription[] = _("A powerful fire\nattack that may\nburn the foe."); +const u8 gTM39ItemDescription[] = _("Stops the foe from\nmoving with rocks.\nMay lower SPEED."); +const u8 gTM40ItemDescription[] = _("An extremely fast\nattack that can’t\nbe avoided."); +const u8 gTM41ItemDescription[] = _("Prevents the foe\nfrom using the same\nmove in a row."); +const u8 gTM42ItemDescription[] = _("Raises ATTACK when\npoisoned, burned,\nor paralyzed."); +const u8 gTM43ItemDescription[] = _("Adds an effect to\nattack depending\non the location."); +const u8 gTM44ItemDescription[] = _("The user sleeps for\n2 turns to restore\nhealth and status."); +const u8 gTM45ItemDescription[] = _("Makes it tough to\nattack a foe of the\nopposite gender."); +const u8 gTM46ItemDescription[] = _("While attacking,\nit may steal the\nfoe’s held item."); +const u8 gTM47ItemDescription[] = _("Spreads hard-\nedged wings and\nslams into the foe."); +const u8 gTM48ItemDescription[] = _("Switches abilities\nwith the foe on the\nturn this is used."); +const u8 gTM49ItemDescription[] = _("Steals the effects\nof the move the foe\nis trying to use."); +const u8 gTM50ItemDescription[] = _("Enables full-power\nattack, but sharply\nlowers SP. ATK."); + +const u8 gHM01ItemDescription[] = _("Attacks the foe\nwith sharp blades\nor claws."); +const u8 gHM02ItemDescription[] = _("Flies up on the\nfirst turn, then\nattacks next turn."); +const u8 gHM03ItemDescription[] = _("Creates a huge\nwave, then crashes\nit down on the foe."); +const u8 gHM04ItemDescription[] = _("Builds enormous\npower, then slams\nthe foe."); +const u8 gHM05ItemDescription[] = _("Looses a powerful\nblast of light that\nreduces accuracy."); +const u8 gHM06ItemDescription[] = _("A rock-crushingly\ntough attack that\nmay lower DEFENSE."); +const u8 gHM07ItemDescription[] = _("Attacks the foe\nwith enough power\nto climb waterfalls."); +const u8 gHM08ItemDescription[] = _("Dives underwater\nthe 1st turn, then\nattacks next turn."); +//FireRed/LeafGreen key items +const u8 gOaksParcelItemDescription[] = _("A parcel for PROF.\nOAK from a POKéMON\nMART’s clerk."); +const u8 gPokeFluteItemDescription[] = _("A sweet-sounding\nflute that awakens\nPOKéMON."); +const u8 gSecretKeyItemDescription[] = _("The key to the\nCINNABAR ISLAND\nGYM’s entrance."); +const u8 gBikeVoucherItemDescription[] = _("A voucher for\nobtaining a bicycle\nfrom the BIKE SHOP."); +const u8 gGoldTeethItemDescription[] = _("Gold dentures lost\nby the SAFARI\nZONE’s WARDEN."); +const u8 gOldAmberItemDescription[] = _("A stone containing\nthe genes of an\nancient POKéMON."); +const u8 gCardKeyItemDescription[] = _("A card-type door\nkey used in SILPH\nCO’s office."); +const u8 gLiftKeyItemDescription[] = _("An elevator key\nused in TEAM\nROCKET’s HIDEOUT."); +const u8 gHelixFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON’s seashell."); +const u8 gDomeFossilItemDescription[] = _("A piece of an\nancient marine\nPOKéMON’s shell."); +const u8 gSilphScopeItemDescription[] = _("SILPH CO’s scope\nmakes unseeable\nPOKéMON visible."); +const u8 gBicycleItemDescription[] = _("A folding bicycle\nthat is faster than\nthe RUNNING SHOES."); +const u8 gTownMapItemDescription[] = _("Can be viewed\nanytime. Shows your\npresent location."); +const u8 gVSSeekerItemDescription[] = _("A rechargeable unit\nthat flags battle-\nready TRAINERS."); +const u8 gFameCheckerItemDescription[] = _("Stores information\non famous people\nfor instant recall."); +const u8 gTMCaseItemDescription[] = _("A convenient case \nthat holds TMs and\nHMs."); +const u8 gBerryPouchItemDescription[] = _("A convenient\ncontainer that\nholds BERRIES."); +const u8 gTeachyTVItemDescription[] = _("A TV set tuned to\nan advice program\nfor TRAINERS."); +const u8 gTriPassItemDescription[] = _("A pass for ferries\nbetween ONE, TWO,\nand THREE ISLAND."); +const u8 gRainbowPassItemDescription[] = _("For ferries serving\nVERMILION and the\nSEVII ISLANDS."); +const u8 gTeaItemDescription[] = _("A thirst-quenching\ntea prepared by an\nold lady."); +const u8 gMysticTicketItemDescription[] = _("A ticket required\nto board the ship\nto NAVEL ROCK."); +const u8 gAuroraTicketItemDescription[] = _("A ticket required\nto board the ship\nto BIRTH ISLAND."); +const u8 gPowderJarItemDescription[] = _("Stores BERRY\nPOWDER made using\na BERRY CRUSHER."); +const u8 gRubyItemDescription[] = _("An exquisite, red-\nglowing gem that\nsymbolizes passion."); +const u8 gSapphireItemDescription[] = _("A brilliant blue gem\nthat symbolizes\nhonesty."); +//Emerald-specific key items +const u8 gMagmaEmblemItemDescription[] = _("A medal-like item in\nthe same shape as\nTEAM MAGMA’s mark."); +const u8 gOldSeaMapItemDescription[] = _("A faded sea chart\nthat shows the way\nto a certain island."); +#endif // POKEEMERALD_DATA_TEXT_ITEM_DESCRIPTIONS_H -- cgit v1.2.3 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: Move data from graphics.s to C --- 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 +++++ 6 files changed, 6045 insertions(+) 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 (limited to 'src') diff --git a/src/graphics.c b/src/graphics.c new file mode 100644 index 000000000..8a4c98bb3 --- /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 000000000..d843a4f80 --- /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 000000000..574ee50b6 --- /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 000000000..299e519ca --- /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 000000000..2c0345f59 --- /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 000000000..98a5471ef --- /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"); -- cgit v1.2.3 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: 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 (limited to 'src') diff --git a/src/graphics.c b/src/graphics.c index 8a4c98bb3..034b590c5 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 000000000..4ff9883fe --- /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 000000000..4012ab5a3 --- /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 000000000..db91283ae --- /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 000000000..9c049ffb2 --- /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 000000000..53497347a --- /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 000000000..928a4f6f0 --- /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 000000000..f673874e3 --- /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"); -- cgit v1.2.3 From 91349324c619309ca605a04115d0c9b7d78cbb26 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 11:55:16 +0200 Subject: up to CB2_BattleDome --- src/battle_frontier_1.c | 526 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 509 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index db6f99c8c..332446d75 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(); +} -- cgit v1.2.3 From 62a645abafdd17b737562b4ab6b40739d13722c2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 18:46:15 +0200 Subject: Up To CopyDomeTrainerName --- src/battle_frontier_1.c | 581 ++++++++++++++++++++++++++++++++++++++++++++---- src/battle_tent.c | 4 +- 2 files changed, 537 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/battle_frontier_1.c b/src/battle_frontier_1.c index 332446d75..1ac84962f 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 68d7c5e83..dbea37fb7 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) -- cgit v1.2.3 From edcf04b665a9fa13d086dd486c4fe7b1649a7bbf Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 19:59:47 +0200 Subject: Document battle dome. --- src/battle_controller_player.c | 2 +- src/battle_dome.c | 4622 +++++++++++++++++++++++++++++++++++++++ src/battle_frontier_1.c | 4623 ---------------------------------------- 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 +- 10 files changed, 4653 insertions(+), 4650 deletions(-) create mode 100644 src/battle_dome.c delete mode 100644 src/battle_frontier_1.c (limited to 'src') diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 6ab19e368..ffe8936a0 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_dome.c b/src/battle_dome.c new file mode 100644 index 000000000..058d253ab --- /dev/null +++ b/src/battle_dome.c @@ -0,0 +1,4622 @@ +#include "global.h" +#include "battle_dome.h" +#include "battle.h" +#include "battle_setup.h" +#include "battle_tower.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 "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 "sound.h" +#include "pokemon_icon.h" +#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" +#include "constants/abilities.h" +#include "constants/songs.h" +#include "constants/battle_frontier.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 +#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]; + 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 u16 sub_81A5060(u8 monId, u8 moveSlotId); +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 void sub_80F94E8(void); + +extern u8 gUnknown_0203CEF8[]; +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 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[]; +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 u8 gUnknown_08D82F10[]; +extern const u8 gUnknown_08D834FC[]; +extern const u8 gUnknown_08D83B2C[]; +extern const u8 gUnknown_08D83C3C[]; + +// text +extern const u8 gTrainerClassNames[][0xD]; + +// This file's functions. +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); +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); +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); +static u8 sub_8193BDC(u8 taskId); +static void DecideRoundWinners(u8 roundId); +static u8 sub_81953E8(u8 tournamentId, u8); +static void sub_81948EC(u8, u8); + +// 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 sMovePointsForDomeTrainers[MOVES_COUNT][DOME_TOURNAMENT_TRAINERS_COUNT] = +{ + [MOVE_NONE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_POUND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_KARATE_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DOUBLE_SLAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_COMET_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_MEGA_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_PAY_DAY] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_FIRE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_ICE_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_THUNDER_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SCRATCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_VICE_GRIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_GUILLOTINE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_RAZOR_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SWORDS_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, + [MOVE_CUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WING_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WHIRLWIND] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FLY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BIND] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_VINE_WHIP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_STOMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DOUBLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MEGA_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ROLLING_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SAND_ATTACK] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HEADBUTT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_HORN_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FURY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_HORN_DRILL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BODY_SLAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_WRAP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_TAKE_DOWN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_THRASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DOUBLE_EDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TAIL_WHIP] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_POISON_STING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_TWINEEDLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_PIN_MISSILE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LEER] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_BITE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_GROWL] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ROAR] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SING] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SUPERSONIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SONIC_BOOM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DISABLE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ACID] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_EMBER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_FLAMETHROWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, + [MOVE_MIST] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_WATER_GUN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HYDRO_PUMP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0}, + [MOVE_SURF] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0}, + [MOVE_ICE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, + [MOVE_BLIZZARD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1}, + [MOVE_PSYBEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_BUBBLE_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_AURORA_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_HYPER_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0}, + [MOVE_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DRILL_PECK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SUBMISSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LOW_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_COUNTER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_SEISMIC_TOSS] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_STRENGTH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ABSORB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MEGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_LEECH_SEED] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GROWTH] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_RAZOR_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SOLAR_BEAM] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0}, + [MOVE_POISON_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_STUN_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SLEEP_POWDER] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_PETAL_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_STRING_SHOT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DRAGON_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FIRE_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_THUNDER_SHOCK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_THUNDERBOLT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, + [MOVE_THUNDER_WAVE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_THUNDER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, + [MOVE_ROCK_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_EARTHQUAKE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0}, + [MOVE_FISSURE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, + [MOVE_DIG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TOXIC] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_CONFUSION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_PSYCHIC] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}, + [MOVE_HYPNOSIS] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_MEDITATE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_AGILITY] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_QUICK_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_RAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TELEPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_NIGHT_SHADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MIMIC] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SCREECH] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DOUBLE_TEAM] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_RECOVER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_HARDEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_MINIMIZE] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SMOKESCREEN] = {0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CONFUSE_RAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WITHDRAW] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DEFENSE_CURL] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BARRIER] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LIGHT_SCREEN] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_HAZE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_REFLECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_FOCUS_ENERGY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BIDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_METRONOME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + [MOVE_MIRROR_MOVE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + [MOVE_SELF_DESTRUCT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, + [MOVE_EGG_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, + [MOVE_LICK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SMOG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SLUDGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_BONE_CLUB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_FIRE_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, + [MOVE_WATERFALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CLAMP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SWIFT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SKULL_BASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_SPIKE_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CONSTRICT] = {0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_AMNESIA] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_KINESIS] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SOFT_BOILED] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HI_JUMP_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GLARE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DREAM_EATER] = {1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_POISON_GAS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BARRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LEECH_LIFE] = {0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_LOVELY_KISS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SKY_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, + [MOVE_TRANSFORM] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BUBBLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DIZZY_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SPORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FLASH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_PSYWAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SPLASH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ACID_ARMOR] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_CRABHAMMER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, + [MOVE_EXPLOSION] = {0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0}, + [MOVE_FURY_SWIPES] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BONEMERANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_REST] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ROCK_SLIDE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_HYPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SHARPEN] = {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_CONVERSION] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_TRI_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SUPER_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SLASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SUBSTITUTE] = {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_STRUGGLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_SKETCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0}, + [MOVE_TRIPLE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_THIEF] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SPIDER_WEB] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MIND_READER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_NIGHTMARE] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FLAME_WHEEL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SNORE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_CURSE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_FLAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CONVERSION_2] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_AEROBLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_COTTON_SPORE] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_REVERSAL] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SPITE] = {0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_POWDER_SNOW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_PROTECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0}, + [MOVE_MACH_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SCARY_FACE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_FAINT_ATTACK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SWEET_KISS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BELLY_DRUM] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SLUDGE_BOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, + [MOVE_MUD_SLAP] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_OCTAZOOKA] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SPIKES] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ZAP_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1}, + [MOVE_FORESIGHT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DESTINY_BOND] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_PERISH_SONG] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_ICY_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_DETECT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_BONE_RUSH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LOCK_ON] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_OUTRAGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1}, + [MOVE_SANDSTORM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GIGA_DRAIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_ENDURE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_CHARM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ROLLOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_FALSE_SWIPE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SWAGGER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_MILK_DRINK] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SPARK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_FURY_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_STEEL_WING] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_MEAN_LOOK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_ATTRACT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SLEEP_TALK] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, + [MOVE_HEAL_BELL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_RETURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_PRESENT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0}, + [MOVE_FRUSTRATION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SAFEGUARD] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_PAIN_SPLIT] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SACRED_FIRE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1}, + [MOVE_MAGNITUDE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DYNAMIC_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1}, + [MOVE_MEGAHORN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, + [MOVE_DRAGON_BREATH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_BATON_PASS] = {1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ENCORE] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_PURSUIT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_RAPID_SPIN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SWEET_SCENT] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_IRON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1}, + [MOVE_METAL_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_VITAL_THROW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_MORNING_SUN] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_SYNTHESIS] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_MOONLIGHT] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_HIDDEN_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CROSS_CHOP] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0}, + [MOVE_TWISTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_RAIN_DANCE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_SUNNY_DAY] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_CRUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_MIRROR_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_PSYCH_UP] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_EXTREME_SPEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_ANCIENT_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1}, + [MOVE_SHADOW_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_FUTURE_SIGHT] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ROCK_SMASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_WHIRLPOOL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_BEAT_UP] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FAKE_OUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_UPROAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_STOCKPILE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SPIT_UP] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_SWALLOW] = {1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_HEAT_WAVE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}, + [MOVE_HAIL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_TORMENT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FLATTER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WILL_O_WISP] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_MEMENTO] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FACADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FOCUS_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_SMELLING_SALT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FOLLOW_ME] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_NATURE_POWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_CHARGE] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TAUNT] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HELPING_HAND] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TRICK] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ROLE_PLAY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_WISH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ASSIST] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_INGRAIN] = {1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_SUPERPOWER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0}, + [MOVE_MAGIC_COAT] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_RECYCLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_REVENGE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_BRICK_BREAK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_YAWN] = {1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_KNOCK_OFF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_ENDEAVOR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_ERUPTION] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, + [MOVE_SKILL_SWAP] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_IMPRISON] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_REFRESH] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_GRUDGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_SNATCH] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0}, + [MOVE_SECRET_POWER] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DIVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ARM_THRUST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CAMOUFLAGE] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TAIL_GLOW] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_LUSTER_PURGE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, + [MOVE_MIST_BALL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1}, + [MOVE_FEATHER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_TEETER_DANCE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_BLAZE_KICK] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_MUD_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ICE_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_NEEDLE_ARM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SLACK_OFF] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_HYPER_VOICE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0}, + [MOVE_POISON_FANG] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_CRUSH_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_BLAST_BURN] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_HYDRO_CANNON] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_METEOR_MASH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1}, + [MOVE_ASTONISH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_WEATHER_BALL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_AROMATHERAPY] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, + [MOVE_FAKE_TEARS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_AIR_CUTTER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_OVERHEAT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1}, + [MOVE_ODOR_SLEUTH] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_ROCK_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SILVER_WIND] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1}, + [MOVE_METAL_SOUND] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_GRASS_WHISTLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_TICKLE] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_COSMIC_POWER] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_WATER_SPOUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0}, + [MOVE_SIGNAL_BEAM] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SHADOW_PUNCH] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_EXTRASENSORY] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_SKY_UPPERCUT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SAND_TOMB] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_SHEER_COLD] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0}, + [MOVE_MUDDY_WATER] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1}, + [MOVE_BULLET_SEED] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_AERIAL_ACE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ICICLE_SPEAR] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_IRON_DEFENSE] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BLOCK] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0}, + [MOVE_HOWL] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_DRAGON_CLAW] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_FRENZY_PLANT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_BULK_UP] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_BOUNCE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1}, + [MOVE_MUD_SHOT] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, + [MOVE_POISON_TAIL] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_COVET] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_VOLT_TACKLE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0}, + [MOVE_MAGICAL_LEAF] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_WATER_SPORT] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_CALM_MIND] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_LEAF_BLADE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, + [MOVE_DRAGON_DANCE] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_ROCK_BLAST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_SHOCK_WAVE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, + [MOVE_WATER_PULSE] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1}, + [MOVE_DOOM_DESIRE] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0}, + [MOVE_PSYCHO_BOOST] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1}, +}; + +// code +void CallBattleDomeFunction(void) +{ + gUnknown_0860D090[gSpecialVar_0x8004](); +} + +void sub_818E9CC(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_0860D0EC[battleMode][lvlMode])) + gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] = 0; + + saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); + gTrainerBattleOpponent_A = 0; +} + +void sub_818EA84(void) +{ + u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + switch (gSpecialVar_0x8005) + { + case 0: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]; + break; + case 1: + gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][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_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) + { + 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_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) + { + 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.lvlMode; + u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + switch (gSpecialVar_0x8005) + { + case 0: + gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] = gSpecialVar_0x8006; + break; + case 1: + if (gSpecialVar_0x8006) + gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860D0EC[battleMode][lvlMode]; + else + gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860D0FC[battleMode][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_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) + { + 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_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) + { + 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; + } +} + +void InitDomeTrainers(void) +{ + s32 i, j, k; + s32 monLevel; + s32 species[3]; + s32 monTypesBits, monTypesCount; + 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.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; + gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0; + + for (i = 0; i < 3; i++) + { + 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++) + 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]); + } + + for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i > 5) + { + do + { + trainerId = sub_8162548(sub_81A39C4(), 0); + for (j = 1; j < i; j++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) + break; + } + } while (j != i); + gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; + } + else + { + do + { + trainerId = sub_8162548(sub_81A39C4() + 1, 0); + for (j = 1; 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; + } + + monTypesBits = 0; + statSums[0] = 0; + for (i = 0; i < 3; i++) + { + 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, j = 0; j < 32; j++) + { + if (monTypesBits & 1) + monTypesCount++; + monTypesBits >>= 1; + } + + monLevel = GetFrontierEnemyMonLevel(); + statSums[0] += (monTypesCount * monLevel) / 20; + + for (i = 1; 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]; + } + + 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); + } + } + } + } + + 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); +} + +#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); \ +} + +static void CalcDomeMonStats(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; \ +} + +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); + + for (i = 0; i < 3; 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]); + CopyDomeTrainerName(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)); +} + +static void CreateDomeMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId) +{ + 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(); + 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]); +} + +static void CreateDomeTrainerMons(u16 tournamentTrainerId) +{ + u8 monsCount = 0; + u32 otId = 0; + s32 i, bits; + + ZeroEnemyPartyMons(); + bits = GetTrainerMonCountInBits(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 GetTrainerMonCountInBits(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; +} + +static 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); +} + +static 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); +} + +static 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; +} + +// Functionally equivalent, while loop is impossible to match. +#ifdef NONMATCHING +static s32 sub_818FFC0(s32 move, s32 species, s32 arg2) +{ + s32 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 (gTypeEffectiveness[i + 0] != TYPE_ENDTABLE) + { + if (gTypeEffectiveness[i + 0] == TYPE_FORESIGHT) + { + i += 3; + } + else + { + 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; + } + } + } + + 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; +} +#else +NAKED +static 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 + +static 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; +} + +static s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) +{ + s32 i, j, val; + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + break; + } + + if (roundId != DOME_ROUND1) + { + if (roundId == DOME_FINAL) + val = gUnknown_0860D10C[i][roundId] + 8; + else + val = gUnknown_0860D10C[i][roundId] + 4; + + for (j = gUnknown_0860D10C[i][roundId]; j < val; j++) + { + if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].isEliminated) + break; + } + + if (j != val) + return gUnknown_0860D14C[j]; + else + return 0xFF; + } + else + { + if (!gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D10C[i][roundId]].isEliminated) + return gUnknown_0860D10C[i][roundId]; + else + return 0xFF; + } +} + +void sub_8190298(void) +{ + gTrainerBattleOpponent_A = TrainerIdOfPlayerOpponent(); +} + +static u16 TrainerIdOfPlayerOpponent(void) +{ + return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.field_CB2, TRAINER_PLAYER)].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.lvlMode; + u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + + 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 ShowDomeOpponentInfo(void) +{ + u8 taskId = CreateTask(sub_8190400, 0); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[1] = TrainerIdToTournamentId(TrainerIdOfPlayerOpponent()); + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + + SetMainCallback2(CB2_BattleDome); +} + +static 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(VblankCb0_BattleDome); + sBattleDomeStruct = AllocZeroed(sizeof(*sBattleDomeStruct)); + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + sBattleDomeStruct->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) + { + DisplayMatchInfoOnCard(0, r5); + sBattleDomeStruct->unk_10 = 1; + } + else + { + DisplayTrainerInfoOnCard(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; + } +} + +// 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) + { + if (sprite->pos1.y >= -32) + sprite->invisible = 0; + if (++sprite->data[1] == 40) + sprite->callback = SpriteCallbackDummy; + } + else + { + if (sprite->pos1.y >= 192) + { + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + FreeAndDestroyTrainerPicSprite(sprite->data[3]); + } + } +} + +static void SpriteCb_TrainerIconCardScrollDown(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) + { + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + FreeAndDestroyTrainerPicSprite(sprite->data[3]); + } + } +} + +static void SpriteCb_TrainerIconCardScrollLeft(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) + { + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + FreeAndDestroyTrainerPicSprite(sprite->data[3]); + } + } +} + +static void SpriteCb_TrainerIconCardScrollRight(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) + { + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + FreeAndDestroyTrainerPicSprite(sprite->data[3]); + } + } +} + +#define sMonIconStill data[3] + +static void SpriteCb_MonIcon(struct Sprite *sprite) +{ + if (!sprite->sMonIconStill) + UpdateMonIconFrame(sprite); +} + +static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite) +{ + if (!sprite->sMonIconStill) + 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 = SpriteCb_MonIcon; + } + else + { + if (sprite->pos1.y >= 176) + { + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + sub_80D2EF8(sprite); + } + } +} + +static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite) +{ + if (!sprite->sMonIconStill) + 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 = SpriteCb_MonIcon; + } + else + { + if (sprite->pos1.y <= -16) + { + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + sub_80D2EF8(sprite); + } + } +} + +static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite) +{ + if (!sprite->sMonIconStill) + 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 = SpriteCb_MonIcon; + } + else + { + if (sprite->pos1.x >= 256) + { + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + sub_80D2EF8(sprite); + } + } +} + +static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) +{ + if (!sprite->sMonIconStill) + 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 = SpriteCb_MonIcon; + } + else + { + if (sprite->pos1.x <= -16) + { + sBattleDomeStruct->arr[sprite->data[2]] = 0xFF; + sub_80D2EF8(sprite); + } + } +} + +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].isEliminated + && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt)) + { + sprite->invisible = 0; + } + else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated + && sBattleDomeStruct->unk_10 - 1 < r12) + { + sprite->invisible = 0; + } + else + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + } + else + { + if (sBattleDomeStruct->unk_10 != 0) + { + sprite->invisible = 0; + } + else + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + } + } + else + { + if (sprite->data[1]) + { + if (sBattleDomeStruct->unk_10 > 1) + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + else + { + sprite->invisible = 0; + } + } + else + { + if (sBattleDomeStruct->unk_10 != 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 (sBattleDomeStruct->unk_10 != 0) + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + else + { + sprite->invisible = 0; + } + } + else + { + if (sBattleDomeStruct->unk_10 != 1) + { + if (gTasks[taskId1].data[0] == 2) + sprite->invisible = 1; + } + else + { + sprite->invisible = 0; + } + } +} + +static void sub_8190CD4(u8 taskId) +{ + s32 i; + s32 windowId = 0; + s32 r9 = gTasks[taskId].data[3]; + s32 taskId2 = gTasks[taskId].data[4]; + s32 trainerTournamentId = 0; + s32 matchNo = 0; + + 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) + windowId = 9; + else + windowId = 0; + + for (i = windowId; i < windowId + 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 (sBattleDomeStruct->unk_10 == 0) + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 320; + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); + } + else + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 0; + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); + sBattleDomeStruct->unk_10 = 0; + } + } + else + { + if (sBattleDomeStruct->unk_10 == 0) + { + matchNo = gTasks[taskId2].data[1] - 16; + sub_8192F08(matchNo, sBattleDomeStruct->unk_11); + gBattle_BG2_X = 0; + gBattle_BG2_Y = 320; + trainerTournamentId = sBattleDomeStruct->unk_11[0]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); + } + else if (sBattleDomeStruct->unk_10 == 2) + { + matchNo = gTasks[taskId2].data[1] - 16; + sub_8192F08(matchNo, sBattleDomeStruct->unk_11); + gBattle_BG2_X = 0; + gBattle_BG2_Y = 320; + trainerTournamentId = sBattleDomeStruct->unk_11[1]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); + } + else + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 160; + matchNo = gTasks[taskId2].data[1] - 16; + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 0x10, matchNo); + } + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + + 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 (sBattleDomeStruct->unk_10 == 0) + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); + } + else + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); + sBattleDomeStruct->unk_10 = 0; + } + } + else + { + if (sBattleDomeStruct->unk_10 == 0) + { + matchNo = gTasks[taskId2].data[1] - 16; + sub_8192F08(matchNo, sBattleDomeStruct->unk_11); + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + trainerTournamentId = sBattleDomeStruct->unk_11[0]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); + } + else if (sBattleDomeStruct->unk_10 == 2) + { + matchNo = gTasks[taskId2].data[1] - 16; + sub_8192F08(matchNo, sBattleDomeStruct->unk_11); + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + trainerTournamentId = sBattleDomeStruct->unk_11[1]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); + } + else + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 0; + matchNo = gTasks[taskId2].data[1] - 16; + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 4, matchNo); + } + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + + 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 (sBattleDomeStruct->unk_10 == 0) + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 160; + trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); + } + else + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 0; + matchNo = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (sBattleDomeStruct->unk_10 - 1)]; + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + + 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 (sBattleDomeStruct->unk_10 == 0) + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 160; + trainerTournamentId = sBattleDomeStruct->unk_11[0]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); + } + else + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + matchNo = gTasks[taskId2].data[1] - 16; + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + + 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 (sBattleDomeStruct->unk_10 == 1) + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + } + else + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + } + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + + 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 (sBattleDomeStruct->unk_10 == 2) + { + gBattle_BG2_X = 256; + gBattle_BG2_Y = 160; + trainerTournamentId = sBattleDomeStruct->unk_11[1]; + DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 2, trainerTournamentId); + } + else + { + gBattle_BG2_X = 0; + gBattle_BG2_Y = 160; + matchNo = gTasks[taskId2].data[1] - 16; + DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 2, matchNo); + } + + for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT / 2; i++) + { + if (i < 2) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + for (i = DOME_TOURNAMENT_TRAINERS_COUNT / 2; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) + { + if (i < 10) + { + if (sBattleDomeStruct->arr[i] != 0xFF) + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + { + 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; + } + } + } + + 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 (sBattleDomeStruct->arr[i] != 0xFF) + FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]); + } + else + { + 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 (sBattleDomeStruct->arr[i] != 0xFF) + FreeAndDestroyTrainerPicSprite(sBattleDomeStruct->arr[i]); + } + else + { + if (sBattleDomeStruct->arr[i] != 0xFF) + sub_80D2EF8(&gSprites[sBattleDomeStruct->arr[i]]); + } + } + + FreeMonIconPalettes(); + FREE_AND_SET_NULL(sBattleDomeStruct); + 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; + } +} + +static 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) + return retVal; + + if (gTasks[taskId].data[3] == 1) + { + if (gMain.newKeys & DPAD_UP && sBattleDomeStruct->unk_10 == 0) + { + if (r5 == 0) + r5 = 15; + else + r5--; + retVal = 1; + } + else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 0) + { + if (r5 == 15) + r5 = 0; + else + r5++; + retVal = 2; + } + else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0) + { + sBattleDomeStruct->unk_10--; + retVal = 3; + } + else if (gMain.newKeys & DPAD_RIGHT) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].eliminatedAt) + { + sBattleDomeStruct->unk_10++; + retVal = 4; + } + if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < roundId) + { + sBattleDomeStruct->unk_10++; + retVal = 4; + } + } + + if (retVal == 9) + { + 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 && sBattleDomeStruct->unk_10 == 1) + { + if (r5 == 16) + r5 = gUnknown_0860D19C[roundId]; + else + r5--; + retVal = 5; + } + else if (gMain.newKeys & DPAD_DOWN && sBattleDomeStruct->unk_10 == 1) + { + if (r5 == gUnknown_0860D19C[roundId]) + r5 = 16; + else + r5++; + retVal = 6; + } + else if (gMain.newKeys & DPAD_LEFT && sBattleDomeStruct->unk_10 != 0) + { + retVal = 7; + sBattleDomeStruct->unk_10--; + } + else if (gMain.newKeys & DPAD_RIGHT && (sBattleDomeStruct->unk_10 == 0 || sBattleDomeStruct->unk_10 == 1)) + { + retVal = 8; + sBattleDomeStruct->unk_10++; + } + + if (retVal == 9) + { + 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; + } + } + + if (retVal != 0 && retVal != 9) + { + PlaySE(SE_SELECT); + gTasks[taskId2].data[1] = r5; + gTasks[taskId].data[2] ^= 1; + } + + return retVal; +} + +static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) +{ + struct TextSubPrinter textPrinter; + 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 (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; + + if (trainerId == TRAINER_PLAYER) + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + else if (trainerId == TRAINER_FRONTIER_BRAIN) + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + else + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); + + if (flags & 0x1E) + gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1; + + for (i = 0; i < 3; i++) + { + if (trainerId == TRAINER_PLAYER) + { + 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[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + } + else if (trainerId == TRAINER_FRONTIER_BRAIN) + { + 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[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + } + else + { + 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[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + } + + if (flags & 0x1E) + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1; + } + textPrinter.fontId = 2; + textPrinter.x = 0; + textPrinter.y = 0; + textPrinter.currentX = textPrinter.x; + textPrinter.currentY = textPrinter.y; + 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 + { + CopyDomeTrainerName(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 = 1 + i + windowId; + if (i == 1) + textPrinter.currentX = 7; + else + textPrinter.currentX = 0; + + PutWindowTilemap(1 + i + windowId); + CopyWindowToVram(1 + i + windowId, 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] += sMovePointsForDomeTrainers[sub_81A5060(i, j)][k]; + else if (trainerId == TRAINER_PLAYER) + allocatedArray[k] += sMovePointsForDomeTrainers[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k]; + else + allocatedArray[k] += sMovePointsForDomeTrainers[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]) + { + if (allocatedArray[7] < allocatedArray[k]) + { + if (allocatedArray[6] < allocatedArray[7]) + { + allocatedArray[6] = allocatedArray[7]; + allocatedArray[7] = k; + } + else + { + allocatedArray[7] = k; + } + } + else + { + allocatedArray[6] = allocatedArray[7]; + allocatedArray[7] = k; + } + } + else + { + if (allocatedArray[7] < allocatedArray[k]) + allocatedArray[7] = k; + } + } + else + { + allocatedArray[i + 6] = 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); +} + +static 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].isEliminated) + { + 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 + CopyDomeTrainerName(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].isEliminated + && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt >= gUnknown_0860D3C4[arg0][2]) + { + arg1[count] = tournamentId; + count++; + 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; + 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 + CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); + } + } + + if (count == 2) + break; + } + + if (arg0 == 14) + return retVal + 2; + else + return retVal + 1; +} + +static void DisplayMatchInfoOnCard(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, sBattleDomeStruct->unk_11); + for (i = 0; i < 2; 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) + lost[i] = TRUE; + else + lost[i] = FALSE; + } + + // Draw first trainer sprite. + if (trainerIds[0] == TRAINER_PLAYER) + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + else + sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); + + if (flags & 0x1E) + gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1; + if (lost[0]) + gSprites[sBattleDomeStruct->arr[arrId]].oam.paletteNum = 3; + + // Draw second trainer sprite. + if (trainerIds[1] == TRAINER_PLAYER) + sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) + sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetDomeBrainTrainerPicId(), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + else + sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); + + if (flags & 0x1E) + gSprites[sBattleDomeStruct->arr[1 + arrId]].invisible = 1; + if (lost[1]) + 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) + { + 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[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + } + else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) + { + 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[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + } + else + { + 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[sBattleDomeStruct->arr[2 + i + arrId]].oam.priority = 0; + } + + if (flags & 0x1E) + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1; + if (lost[0]) + { + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.paletteNum = 3; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].sMonIconStill = TRUE; + } + } + + // Draw second trainer's pokemon icons. + for (i = 0; i < 3; i++) + { + if (trainerIds[1] == TRAINER_PLAYER) + { + 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[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; + } + else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) + { + 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[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; + } + else + { + 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[sBattleDomeStruct->arr[5 + i + arrId]].oam.priority = 0; + } + + if (flags & 0x1E) + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].invisible = 1; + if (lost[1]) + { + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.paletteNum = 3; + gSprites[sBattleDomeStruct->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 + CopyDomeTrainerName(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 + CopyDomeTrainerName(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); +} + +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(CB2_BattleDome); +} + +void sub_81938E0(void) +{ + u8 taskId; + + sub_8194D48(); + gSaveBlock2Ptr->frontier.lvlMode = 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(CB2_BattleDome); +} + +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(sTilemapBuffer); + 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; + sBattleDomeStruct->unk_10 = 0; + } + break; + case 4: + break; + case 5: + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + ScanlineEffect_Stop(); + FREE_AND_SET_NULL(sTilemapBuffer); + 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(sTilemapBuffer); + SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + DestroyTask(gTasks[taskId].data[7]); + DestroyTask(taskId); + } + break; + } +} + +static 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; +} + +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)].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) + DecideRoundWinners(gSaveBlock2Ptr->frontier.field_CB2); + } + else + { + 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++) + DecideRoundWinners(i); + } +} + +static 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]; +} + +static 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: + 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); + 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].isEliminated) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) + { + var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 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].isEliminated) + { + if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) + { + var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 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].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) + { + 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(HblankCb_BattleDome); + SetVBlankCallback(VblankCb1_BattleDome); + 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; + } +} + +static void sub_81948EC(u8 tournamentId, u8 arg1) +{ + s32 i; + 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); + + CopyBgTilemapBufferToVram(1); +} + +static 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].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); + 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].isEliminated) + { + 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(); +} + +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)); \ +} + +static void HblankCb_BattleDome(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.lvlMode; + gSaveBlock2Ptr->frontier.lvlMode = 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.lvlMode = 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; +} + +static 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]; +} + +static 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); + } + } + } +} + +static 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; + } +} + +static u8 GetDomeBrainTrainerPicId(void) +{ + return gTrainers[TRAINER_TUCKER].trainerPic; +} + +static u8 GetDomeBrainTrainerClass(void) +{ + return gTrainers[TRAINER_TUCKER].trainerClass; +} + +static 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_frontier_1.c b/src/battle_frontier_1.c deleted file mode 100644 index 1ac84962f..000000000 --- a/src/battle_frontier_1.c +++ /dev/null @@ -1,4623 +0,0 @@ -#include "global.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" -#include "overworld.h" -#include "util.h" -#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 "sound.h" -#include "pokemon_icon.h" -#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" -#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 -#define DOME_ROUNDS_COUNT 4 - -struct FacilityMon -{ - u16 species; - u16 moves[4]; - u8 itemTableId; - u8 evSpread; - u8 nature; -}; - -struct Unknown_0203CD78_Struct -{ - u8 arr[16]; - u8 unk_10; - u8 unk_11[3]; -}; - -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); -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 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; -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 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]; -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[]; - -// 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[]; -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]; - -// 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 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 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 void VblankCb1_BattleDome(void); -u8 sub_8193BDC(u8 taskId); -void DecideRoundWinners(u8 roundId); -u8 sub_81953E8(u8 tournamentId, u8); -void sub_81948EC(u8, u8); - -// 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) -{ - gUnknown_0860D090[gSpecialVar_0x8004](); -} - -void sub_818E9CC(void) -{ - u32 lvlMode = gSaveBlock2Ptr->frontier.chosenLvl; - 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[battleMode][lvlMode])) - gSaveBlock2Ptr->frontier.field_D0C[battleMode][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 battleMode = VarGet(VAR_0x40CE); - - switch (gSpecialVar_0x8005) - { - case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode]; - break; - case 1: - gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.field_CDC & gUnknown_0860D0EC[battleMode][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 battleMode = VarGet(VAR_0x40CE); - - switch (gSpecialVar_0x8005) - { - case 0: - gSaveBlock2Ptr->frontier.field_D0C[battleMode][lvlMode] = gSpecialVar_0x8006; - break; - case 1: - if (gSpecialVar_0x8006) - gSaveBlock2Ptr->frontier.field_CDC |= gUnknown_0860D0EC[battleMode][lvlMode]; - else - gSaveBlock2Ptr->frontier.field_CDC &= gUnknown_0860D0FC[battleMode][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; - } -} - -void InitDomeTrainers(void) -{ - s32 i, j, k; - s32 monLevel; - s32 species[3]; - s32 monTypesBits, monTypesCount; - 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 = TRAINER_PLAYER; - gSaveBlock2Ptr->frontier.domeTrainers[0].isEliminated = 0; - gSaveBlock2Ptr->frontier.domeTrainers[0].eliminatedAt = 0; - gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0; - - for (i = 0; i < 3; i++) - { - 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++) - 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]); - } - - for (i = 1; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) - { - if (i > 5) - { - do - { - trainerId = sub_8162548(sub_81A39C4(), 0); - for (j = 1; j < i; j++) - { - if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) - break; - } - } while (j != i); - gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; - } - else - { - do - { - trainerId = sub_8162548(sub_81A39C4() + 1, 0); - for (j = 1; 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; - } - - monTypesBits = 0; - statSums[0] = 0; - for (i = 0; i < 3; i++) - { - 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, j = 0; j < 32; j++) - { - if (monTypesBits & 1) - monTypesCount++; - monTypesBits >>= 1; - } - - monLevel = GetFrontierEnemyMonLevel(); - statSums[0] += (monTypesCount * monLevel) / 20; - - for (i = 1; 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]; - } - - 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); - } - } - } - } - - 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); -} - -#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 CalcDomeMonStats(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 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); - - for (i = 0; i < 3; 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]); - CopyDomeTrainerName(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); // 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, - 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 = GetTrainerMonCountInBits(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 GetTrainerMonCountInBits(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; -} - -// Functionally equivalent, while loop is impossible to match. -#ifdef NONMATCHING -s32 sub_818FFC0(s32 move, s32 species, s32 arg2) -{ - s32 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 (gTypeEffectiveness[i + 0] != TYPE_ENDTABLE) - { - if (gTypeEffectiveness[i + 0] == TYPE_FORESIGHT) - { - i += 3; - } - else - { - 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; - } - } - } - - 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; -} -#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; -} - -s32 TournamentIdOfOpponent(s32 roundId, s32 trainerId) -{ - s32 i, j, val; - - for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) - { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) - break; - } - - if (roundId != DOME_ROUND1) - { - if (roundId == DOME_FINAL) - val = gUnknown_0860D10C[i][roundId] + 8; - else - val = gUnknown_0860D10C[i][roundId] + 4; - - for (j = gUnknown_0860D10C[i][roundId]; j < val; j++) - { - if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].isEliminated) - break; - } - - if (j != val) - return gUnknown_0860D14C[j]; - else - return 0xFF; - } - else - { - if (!gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D10C[i][roundId]].isEliminated) - return gUnknown_0860D10C[i][roundId]; - else - return 0xFF; - } -} - -void sub_8190298(void) -{ - gTrainerBattleOpponent_A = TrainerIdOfPlayerOpponent(); -} - -u16 TrainerIdOfPlayerOpponent(void) -{ - return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.field_CB2, TRAINER_PLAYER)].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 ShowDomeOpponentInfo(void) -{ - u8 taskId = CreateTask(sub_8190400, 0); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = TrainerIdToTournamentId(TrainerIdOfPlayerOpponent()); - gTasks[taskId].data[2] = 0; - gTasks[taskId].data[3] = 0; - - SetMainCallback2(CB2_BattleDome); -} - -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(VblankCb0_BattleDome); - 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) - { - DisplayMatchInfoOnCard(0, r5); - gUnknown_0203CD78->unk_10 = 1; - } - else - { - DisplayTrainerInfoOnCard(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; - } -} - -// 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) - { - 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; - FreeAndDestroyTrainerPicSprite(sprite->data[3]); - } - } -} - -static void SpriteCb_TrainerIconCardScrollDown(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; - FreeAndDestroyTrainerPicSprite(sprite->data[3]); - } - } -} - -static void SpriteCb_TrainerIconCardScrollLeft(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; - FreeAndDestroyTrainerPicSprite(sprite->data[3]); - } - } -} - -static void SpriteCb_TrainerIconCardScrollRight(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; - FreeAndDestroyTrainerPicSprite(sprite->data[3]); - } - } -} - -#define sMonIconStill data[3] - -static void SpriteCb_MonIcon(struct Sprite *sprite) -{ - if (!sprite->sMonIconStill) - UpdateMonIconFrame(sprite); -} - -static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite) -{ - if (!sprite->sMonIconStill) - 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 = SpriteCb_MonIcon; - } - else - { - if (sprite->pos1.y >= 176) - { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; - sub_80D2EF8(sprite); - } - } -} - -static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite) -{ - if (!sprite->sMonIconStill) - 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 = SpriteCb_MonIcon; - } - else - { - if (sprite->pos1.y <= -16) - { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; - sub_80D2EF8(sprite); - } - } -} - -static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite) -{ - if (!sprite->sMonIconStill) - 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 = SpriteCb_MonIcon; - } - else - { - if (sprite->pos1.x >= 256) - { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; - sub_80D2EF8(sprite); - } - } -} - -static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) -{ - if (!sprite->sMonIconStill) - 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 = SpriteCb_MonIcon; - } - else - { - if (sprite->pos1.x <= -16) - { - gUnknown_0203CD78->arr[sprite->data[2]] = 0xFF; - sub_80D2EF8(sprite); - } - } -} - -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].isEliminated - && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt)) - { - sprite->invisible = 0; - } - else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated - && gUnknown_0203CD78->unk_10 - 1 < r12) - { - sprite->invisible = 0; - } - else - { - if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; - } - } - else - { - if (gUnknown_0203CD78->unk_10 != 0) - { - sprite->invisible = 0; - } - else - { - if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; - } - } - } - else - { - if (sprite->data[1]) - { - if (gUnknown_0203CD78->unk_10 > 1) - { - if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; - } - else - { - sprite->invisible = 0; - } - } - else - { - if (gUnknown_0203CD78->unk_10 != 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->unk_10 != 0) - { - if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; - } - else - { - sprite->invisible = 0; - } - } - else - { - if (gUnknown_0203CD78->unk_10 != 1) - { - if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; - } - else - { - sprite->invisible = 0; - } - } -} - -void sub_8190CD4(u8 taskId) -{ - s32 i; - s32 windowId = 0; - s32 r9 = gTasks[taskId].data[3]; - s32 taskId2 = gTasks[taskId].data[4]; - s32 trainerTournamentId = 0; - s32 matchNo = 0; - - 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) - windowId = 9; - else - windowId = 0; - - for (i = windowId; i < windowId + 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; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); - } - else - { - gBattle_BG2_X = 256; - gBattle_BG2_Y = 0; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); - gUnknown_0203CD78->unk_10 = 0; - } - } - else - { - if (gUnknown_0203CD78->unk_10 == 0) - { - 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]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); - } - else if (gUnknown_0203CD78->unk_10 == 2) - { - 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]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 0x10, trainerTournamentId); - } - else - { - gBattle_BG2_X = 256; - gBattle_BG2_Y = 160; - matchNo = gTasks[taskId2].data[1] - 16; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 0x10, matchNo); - } - } - - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - - 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; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); - } - else - { - gBattle_BG2_X = 0; - gBattle_BG2_Y = 0; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); - gUnknown_0203CD78->unk_10 = 0; - } - } - else - { - if (gUnknown_0203CD78->unk_10 == 0) - { - 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]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); - } - else if (gUnknown_0203CD78->unk_10 == 2) - { - 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]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 4, trainerTournamentId); - } - else - { - gBattle_BG2_X = 256; - gBattle_BG2_Y = 0; - matchNo = gTasks[taskId2].data[1] - 16; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 4, matchNo); - } - } - - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - - 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; - trainerTournamentId = gUnknown_0860D080[gTasks[taskId2].data[1]]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); - } - else - { - gBattle_BG2_X = 256; - gBattle_BG2_Y = 0; - matchNo = gUnknown_0860D15C[(gTasks[taskId2].data[1] * 4) + (gUnknown_0203CD78->unk_10 - 1)]; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); - } - - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - - 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; - trainerTournamentId = gUnknown_0203CD78->unk_11[0]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 8, trainerTournamentId); - } - else - { - gBattle_BG2_X = 0; - gBattle_BG2_Y = 160; - matchNo = gTasks[taskId2].data[1] - 16; - DisplayMatchInfoOnCard(gTasks[taskId].data[2] | 8, matchNo); - } - - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - - 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; - } - matchNo = gUnknown_0860D15C[(gUnknown_0203CD78->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) - { - 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - - 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; - trainerTournamentId = gUnknown_0203CD78->unk_11[1]; - DisplayTrainerInfoOnCard(gTasks[taskId].data[2] | 2, trainerTournamentId); - } - else - { - gBattle_BG2_X = 0; - gBattle_BG2_Y = 160; - matchNo = gTasks[taskId2].data[1] - 16; - 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) - { - 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - 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 = 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]; - } - } - else - { - if (gUnknown_0203CD78->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; - } - } - } - - 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) - FreeAndDestroyTrainerPicSprite(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) - FreeAndDestroyTrainerPicSprite(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; - } -} - -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) - return retVal; - - 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].isEliminated && gUnknown_0203CD78->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].eliminatedAt) - { - gUnknown_0203CD78->unk_10++; - retVal = 4; - } - if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && 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][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; -} - -static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) -{ - struct TextSubPrinter textPrinter; - 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 (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; - - if (trainerId == TRAINER_PLAYER) - 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[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); - - if (flags & 0x1E) - gSprites[gUnknown_0203CD78->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], - SpriteCb_MonIcon, - 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[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; - } - else - { - gUnknown_0203CD78->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; - } - - if (flags & 0x1E) - gSprites[gUnknown_0203CD78->arr[2 + i + arrId]].invisible = 1; - } - textPrinter.fontId = 2; - textPrinter.x = 0; - textPrinter.y = 0; - textPrinter.currentX = textPrinter.x; - textPrinter.currentY = textPrinter.y; - 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 - { - CopyDomeTrainerName(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 = 1 + i + windowId; - if (i == 1) - textPrinter.currentX = 7; - else - textPrinter.currentX = 0; - - PutWindowTilemap(1 + i + windowId); - CopyWindowToVram(1 + i + windowId, 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] += sMovePoints[sub_81A5060(i, j)][k]; - else if (trainerId == TRAINER_PLAYER) - allocatedArray[k] += sMovePoints[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k]; - else - allocatedArray[k] += sMovePoints[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]) - { - if (allocatedArray[7] < allocatedArray[k]) - { - if (allocatedArray[6] < allocatedArray[7]) - { - allocatedArray[6] = allocatedArray[7]; - allocatedArray[7] = k; - } - else - { - allocatedArray[7] = k; - } - } - else - { - allocatedArray[6] = allocatedArray[7]; - allocatedArray[7] = k; - } - } - else - { - if (allocatedArray[7] < allocatedArray[k]) - allocatedArray[7] = k; - } - } - else - { - allocatedArray[i + 6] = 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); -} - -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].isEliminated) - { - 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 - CopyDomeTrainerName(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].isEliminated - && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt >= gUnknown_0860D3C4[arg0][2]) - { - arg1[count] = tournamentId; - count++; - 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; - 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 - CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); - } - } - - if (count == 2) - break; - } - - if (arg0 == 14) - return retVal + 2; - else - return retVal + 1; -} - -static void DisplayMatchInfoOnCard(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]].eliminatedAt <= gUnknown_0860D3C4[matchNo][2] - && gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].isEliminated) - 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 - CopyDomeTrainerName(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 - CopyDomeTrainerName(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); -} - -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(CB2_BattleDome); -} - -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(CB2_BattleDome); -} - -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; -} - -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)].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) - DecideRoundWinners(gSaveBlock2Ptr->frontier.field_CB2); - } - else - { - 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++) - DecideRoundWinners(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].isEliminated) - { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) - { - var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 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].isEliminated) - { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) - { - var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 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].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) - { - 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(VblankCb1_BattleDome); - 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].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); - 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].isEliminated) - { - 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(); -} - -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_setup.c b/src/battle_setup.c index 2955a33fc..17ab20ccd 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 2f4cdc856..7c55410b1 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 e20ccf618..f5728c3a4 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 c94f29910..22894bbff 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 7dedc917f..5157853c1 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 45b07ca7a..e19f3047f 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 55e3fe32b..993dc0f4f 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); -- cgit v1.2.3 From 0d8c5b613eda48e48d25615e710c34388072858c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 20:14:10 +0200 Subject: make battle dome compile --- src/field_message_box.c | 10 ++++++---- src/match_call.c | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/field_message_box.c b/src/field_message_box.c index 8ca291e33..7ed87e837 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 99eb6d65a..2879881bf 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 -- cgit v1.2.3 From 2b7c138cbe165cdfa0ad8f7044efc439d9888cd2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 25 Aug 2018 21:04:12 +0200 Subject: Some labels --- src/battle_controller_opponent.c | 18 +++++++++--------- src/battle_main.c | 4 ++-- src/battle_script_commands.c | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 1eaa9da18..6148587f8 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 86937f85f..9f9511c38 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 b13727a12..12a66df80 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: -- cgit v1.2.3 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: Convert battle dome data to C --- src/battle_dome.c | 1901 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 1858 insertions(+), 43 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 058d253ab..6d9584ea5 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) { -- cgit v1.2.3 From 78cad0dee52e69ab7cca6b8ddc793820697ba01f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 15:27:06 +0200 Subject: try battle tent and fail --- 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 + 6 files changed, 208 insertions(+), 29 deletions(-) create mode 100644 src/battle_frontier_1.c (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 058d253ab..c54b14ccc 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 000000000..ee8a42954 --- /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 dbea37fb7..f39bf8837 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 f5728c3a4..84852e6b5 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 eafb0c2cd..9022f69ea 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 ca8246128..4821ed776 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"); -- cgit v1.2.3 From df3af2d9e1d224516615d79e28c9020c98f6bbaa Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 15:51:14 +0200 Subject: Clean up battle dome code a bit --- src/battle_dome.c | 225 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 116 insertions(+), 109 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 0087bd728..104c9fe9b 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[] = -{ - 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_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}, }; 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; -- cgit v1.2.3 From a8a2444f93db792f9d88f500e16d825a6db63437 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 15:58:44 +0200 Subject: make battle dome compikle --- src/record_mixing.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/record_mixing.c b/src/record_mixing.c index 8e85fed18..552c32d38 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]; -- cgit v1.2.3 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: Format SpriteTemplate --- src/battle_dome.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 104c9fe9b..41f7d7a95 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] = { -- cgit v1.2.3 From ddd4733de341824df578bb3bc5a2c232f41ccb14 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 17:54:58 +0200 Subject: rename battle pyramid to battle pyramid bag --- src/battle_pyramid.c | 248 ----------------------------------------------- src/battle_pyramid_bag.c | 248 +++++++++++++++++++++++++++++++++++++++++++++++ src/battle_tower.c | 85 ++++++++++++++++ 3 files changed, 333 insertions(+), 248 deletions(-) delete mode 100644 src/battle_pyramid.c create mode 100644 src/battle_pyramid_bag.c create mode 100644 src/battle_tower.c (limited to 'src') diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c deleted file mode 100644 index f9cc48a9a..000000000 --- a/src/battle_pyramid.c +++ /dev/null @@ -1,248 +0,0 @@ -#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/battle_pyramid_bag.c b/src/battle_pyramid_bag.c new file mode 100644 index 000000000..f9cc48a9a --- /dev/null +++ b/src/battle_pyramid_bag.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/battle_tower.c b/src/battle_tower.c new file mode 100644 index 000000000..e70d4af91 --- /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; + } +} -- cgit v1.2.3 From d65ebcd3dd08dd2e5bdd53fd9acf69aa15689c21 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Aug 2018 21:41:47 +0200 Subject: Label a dome functiion --- src/battle_dome.c | 99 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 46 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 41f7d7a95..4505ce8b0 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] = -{ - {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 sIdToOpponentId[DOME_TOURNAMENT_TRAINERS_COUNT][DOME_ROUNDS_COUNT] = +{ + [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); } } -- cgit v1.2.3 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: Convert more of data2b --- src/data/pokemon_graphics/back_pic_coordinates.h | 443 ++++ src/data/pokemon_graphics/front_pic_coordinates.h | 443 ++++ src/data/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 + 7 files changed, 3788 insertions(+), 103 deletions(-) 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 (limited to 'src') 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 000000000..f54b409e4 --- /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 000000000..fde423570 --- /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 000000000..a345a3d43 --- /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 000000000..a4ae43eb6 --- /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 ba7f73ebb..3e74902d8 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 7c1e10683..db80c9d4f 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 e7ca473a9..46a158e09 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" -- cgit v1.2.3 From 3dea8fa2658cb1055fb835983e8a738cf543e232 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 29 Aug 2018 20:38:54 +0200 Subject: battle tent review changes --- src/battle_dome.c | 47 ++++++------ src/battle_tent.c | 225 +++++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 231 insertions(+), 41 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 4505ce8b0..0183811cd 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 f39bf8837..516f3fc4d 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 -- cgit v1.2.3 From bc9fe72c6e85b1930f137ed49c5d2b0c4e4b10de Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 30 Aug 2018 15:01:07 +0200 Subject: Do some pyramid bag --- 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 +- 5 files changed, 1040 insertions(+), 72 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 0183811cd..9f400bc7a 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 9f9511c38..c31fb48d5 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 f9cc48a9a..721dfca98 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 22894bbff..29c250989 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 9031338dd..23c829391 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 -- cgit v1.2.3 From 917b32ffbe15243207de849683f8933f56bdeb07 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 30 Aug 2018 20:10:57 +0200 Subject: Finish decompiling pyramid bag. --- src/battle_pyramid_bag.c | 791 +++++++++++++++++++++++++++++------------------ src/item.c | 3 +- src/item_use.c | 6 +- src/start_menu.c | 9 +- 4 files changed, 498 insertions(+), 311 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 721dfca98..9cb35074b 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 -{ - 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; +EWRAM_DATA struct PyramidBagResources *gPyramidBagResources = NULL; +EWRAM_DATA struct PyramidBagCursorData gPyramidBagCursorData = {0}; + +// 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 29c250989..3866d7316 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 23c829391..bf7c2a386 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 60271317a..4a58c146e 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; } -- cgit v1.2.3 From 43b74032fa981a06e2e66fe5a2d4cf2edaad27c8 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 30 Aug 2018 20:25:57 +0200 Subject: 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(-) (limited to 'src') diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index ffe8936a0..7f038a0c3 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 bc97c01f9..aab804b41 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 960181fbc..4faf78681 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; -- cgit v1.2.3 From 96f2b995dc67d1278bd65b3661426da95503cb5d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 30 Aug 2018 21:28:03 +0200 Subject: Pyramid bag review changes --- src/battle_pyramid_bag.c | 12 ++++++------ src/item.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 9cb35074b..8a5ce7a99 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 3866d7316..b4a2fd6f0 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) -- cgit v1.2.3 From ce949ba70575c2aebac64a04153529875f9b9758 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 1 Sep 2018 18:31:53 +0200 Subject: document move type variables in pss --- src/pokemon_summary_screen.c | 197 +++++++++++++++++++++++++------------------ 1 file changed, 113 insertions(+), 84 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 1afbaab7a..9648747e7 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 struct CompressedSpriteSheet gUnknown_0861CFBC = +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 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); -- cgit v1.2.3 From 38c89b9d0f0c71a2a8dfe2f38473338530a97ab9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 1 Sep 2018 18:36:08 +0200 Subject: Bank to battler --- src/berry_blender.c | 12 ++++++------ src/pokemon_animation.c | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/berry_blender.c b/src/berry_blender.c index 46b0f76ad..1fd6d1cdd 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 c50aa4a75..9c307f7f8 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]; -- cgit v1.2.3 From 44ba432dadc1d370cf02d4e6d64dbb55afdc3e0f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 1 Sep 2018 20:00:13 +0200 Subject: Label various battle scripts --- src/battle_main.c | 2 +- src/battle_script_commands.c | 94 ++++++++++++++++++++++++++------------------ src/battle_util.c | 22 +++++------ 3 files changed, 68 insertions(+), 50 deletions(-) (limited to 'src') diff --git a/src/battle_main.c b/src/battle_main.c index c31fb48d5..be6f789ec 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 12a66df80..44194deda 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 875244d79..5096a2f3a 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; } -- cgit v1.2.3 From 5c7ca813e75e6b87f1dc41e96aa55ebbbbc9e844 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 1 Sep 2018 21:25:19 +0200 Subject: Add AI flags to trainers data --- src/battle_data.c | 1 + src/data/trainers.h | 3138 +++++++++++++++++++++++++-------------------------- 2 files changed, 1570 insertions(+), 1569 deletions(-) (limited to 'src') diff --git a/src/battle_data.c b/src/battle_data.c index f3719ac2d..7f86385aa 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 19e210acc..214a72df1 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 } }, -- cgit v1.2.3 From e28ce3be7886eb38a29f1839a762598c8dfaec19 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 1 Sep 2018 22:03:21 +0200 Subject: Fix the strings length issue --- 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 ++-- 12 files changed, 31 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index 9f400bc7a..ff284b564 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 be6f789ec..1a1f6f61a 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 8e9d045cb..1680f3cc4 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 f8a0204c4..ea216b61c 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 1fd6d1cdd..02df933f2 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 c73d91521..7599d70ab 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 ebb49febf..809dcc2a8 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 8822cd05a..921c8e97c 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 9022f69ea..292254985 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 e19f3047f..fc3b8b94a 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 993dc0f4f..b2bd2eb78 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 b75163200..d357261fe 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; -- cgit v1.2.3 From 528a1e9ed0f64040fce6148eac875cda913384ec Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 1 Sep 2018 22:53:29 +0200 Subject: Match CopySpriteTiles --- src/util.c | 257 ++----------------------------------------------------------- 1 file changed, 7 insertions(+), 250 deletions(-) (limited to 'src') diff --git a/src/util.c b/src/util.c index 88be4e4a1..9c8766a97 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; -- cgit v1.2.3 From 23aab35b96c53351448adab00829768a5837f7da Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 2 Sep 2018 00:28:03 +0200 Subject: Update item_menu.c Don't use signed values for unsigned variables --- src/item_menu.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/item_menu.c b/src/item_menu.c index f58c2b8b3..c52d1b08f 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++) { -- cgit v1.2.3 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: Minor labelling --- src/pokemon_summary_screen.c | 393 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 326 insertions(+), 67 deletions(-) (limited to 'src') diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 9648747e7..2c59cb57b 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); -- cgit v1.2.3 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: Format templates in item_menu.c --- src/item_menu.c | 223 ++++++++++++++++++++++++++++++++++++++----- src/pokemon_summary_screen.c | 2 +- 2 files changed, 199 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/item_menu.c b/src/item_menu.c index f58c2b8b3..5fea1326e 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 2c59cb57b..6b51c6e07 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, -- cgit v1.2.3 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: Format WindowTemplate in berry_tag_screen.c --- src/berry_tag_screen.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index fb4bf6817..0c13e7085 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 }; -- cgit v1.2.3 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: Format WindowTemplate in berry_blender.c --- src/berry_blender.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 61 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/berry_blender.c b/src/berry_blender.c index 02df933f2..c905a2422 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] = -- cgit v1.2.3 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: Format templates in wallclock.c --- src/berry_blender.c | 11 +++++- src/wallclock.c | 103 +++++++++++++++++++++++++++++++++------------------- 2 files changed, 76 insertions(+), 38 deletions(-) (limited to 'src') diff --git a/src/berry_blender.c b/src/berry_blender.c index c905a2422..96c3a933d 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 5be20d5c9..f3feab1d4 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}, -- cgit v1.2.3 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: 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(-) (limited to 'src') diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 8a5ce7a99..6629e6a0a 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 5fea1326e..196ba9474 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, -- cgit v1.2.3 From 10eb952db5d52dbbcba98314f6042e981de2f942 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 2 Sep 2018 18:10:36 +0200 Subject: Start battle factory --- src/battle_frontier_2.c | 337 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 src/battle_frontier_2.c (limited to 'src') diff --git a/src/battle_frontier_2.c b/src/battle_frontier_2.c new file mode 100644 index 000000000..958aa4692 --- /dev/null +++ b/src/battle_frontier_2.c @@ -0,0 +1,337 @@ +#include "global.h" +#include "sprite.h" +#include "event_data.h" +#include "overworld.h" +#include "random.h" +#include "battle_tower.h" +#include "text.h" +#include "palette.h" +#include "task.h" +#include "main.h" +#include "malloc.h" +#include "bg.h" +#include "gpu_regs.h" +#include "window.h" +#include "decompress.h" +#include "constants/battle_frontier.h" + +#define SELECTABLE_MONS_COUNT 6 +#define TAG_PAL_BALL_GREY 0x64 +#define TAG_PAL_BALL_SELECTED 0x65 + +struct FactorySelecteableMon +{ + u16 unk0; + u16 spriteId; + bool8 selected; + u8 filler6[0x6A - 6]; + u8 unk6A; +}; + +struct UnkStructTempName +{ + u8 menuCursorPos; + u8 unk1; + u8 unk2; + u8 cursorPos; + u8 unk4; + u8 unk5; + bool8 fromSummaryScreen; + u8 unk7; + u8 unk8; + u8 unk9; + struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; + u8 filler294[0x2a1 - 0x294]; + u8 unk2A1; + u8 unk2A2; + u8 unk2A3; + u16 unk2A4; + u16 unk2A6; + u16 unk2A8; + u16 unk2AA; +}; + +extern struct UnkStructTempName *gUnknown_0300127C; +extern u8 *gUnknown_0203CE2C; +extern u8 *gUnknown_0203CE30; +extern u8 *gUnknown_0203CE34; +extern u8 *gUnknown_0203CE38; +extern struct Pokemon *gUnknown_0203CE3C; +extern u8 gUnknown_0203CF20; + +// This file's functions. +void sub_819A514(void); +void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); +void sub_819A9AC(void); +void sub_819AA18(void); +void sub_819BE34(void); +void sub_819BA64(void); +void sub_819BCF8(void); +void sub_819B9E8(void); +void sub_819B9B4(void); +void sub_819C69C(u8 taskId); +void sub_819B378(u8 taskId); +void sub_819B124(u8 taskId); +void sub_819B484(u8 arg0); +void sub_819B63C(u8 arg0); +void SetBallSpritePaletteNum(u8 id); + +// Const rom data. +extern const struct BgTemplate gUnknown_08610428[3]; +extern const struct WindowTemplate gUnknown_08610434[]; +extern const u8 gUnknown_0861033C[]; +extern const u8 gUnknown_0861023C[]; +extern const u16 gUnknown_0861046C[]; +extern const u16 gUnknown_0861039C[]; +extern const struct SpritePalette gUnknown_086103F4[]; +extern const struct SpriteSheet gUnknown_086103BC[]; +extern const struct CompressedSpriteSheet gUnknown_086103E4[]; +extern const struct SpriteTemplate gUnknown_086105D8; + +// gfx +extern const u8 gFrontierFactorySelectMenu_Gfx[]; +extern const u8 gFrontierFactorySelectMenu_Tilemap[]; +extern const u16 gFrontierFactorySelectMenu_Pal[]; + +// code +void sub_819A44C(struct Sprite *sprite) +{ + if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED)) + { + if (sprite->animEnded) + { + if (sprite->data[0] != 0) + { + sprite->data[0]--; + } + else if (Random() % 5 == 0) + { + StartSpriteAnim(sprite, 0); + sprite->data[0] = 32; + } + else + { + StartSpriteAnim(sprite, 1); + } + } + else + { + StartSpriteAnimIfDifferent(sprite, 1); + } + } + else + { + StartSpriteAnimIfDifferent(sprite, 0); + } +} + +void sub_819A4C8(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +void sub_819A4E4(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_819A4F8(void) +{ + gUnknown_0300127C = NULL; + SetMainCallback2(sub_819A514); +} + +void sub_819A514(void) +{ + u8 taskId; + + switch (gMain.state) + { + case 0: + if (gUnknown_0203CE3C != NULL) + FREE_AND_SET_NULL(gUnknown_0203CE3C); + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + CpuFill32(0, (void *)VRAM, VRAM_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_08610428, ARRAY_COUNT(gUnknown_08610428)); + InitWindows(gUnknown_08610434); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 1: + gUnknown_0203CE2C = Alloc(0x440); + gUnknown_0203CE30 = AllocZeroed(0x440); + gUnknown_0203CE34 = Alloc(0x800); + gUnknown_0203CE38 = AllocZeroed(0x800); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + 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, 0); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE2C, 0x440); + CpuCopy16(gUnknown_0861033C, gUnknown_0203CE30, 0x60); + LoadBgTiles(1, gUnknown_0203CE2C, 0x440, 0); + LoadBgTiles(3, gUnknown_0203CE30, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE34, 0x800); + LoadBgTilemap(1, gUnknown_0203CE34, 0x800, 0); + LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); + LoadPalette(gUnknown_0861046C, 0xF0, 8); + LoadPalette(gUnknown_0861046C, 0xE0, 10); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + gPlttBufferUnfaded[228] = gUnknown_0300127C->unk2A4; + LoadPalette(gUnknown_0861039C, 0x20, 4); + gMain.state++; + break; + case 3: + SetBgTilemapBuffer(3, gUnknown_0203CE38); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8); + CopyBgTilemapBufferToVram(3); + gMain.state++; + break; + case 4: + LoadSpritePalettes(gUnknown_086103F4); + LoadSpriteSheets(gUnknown_086103BC); + LoadCompressedObjectPic(gUnknown_086103E4); + ShowBg(0); + ShowBg(1); + SetVBlankCallback(sub_819A4E4); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + { + sub_819C5D0(88, 152, 32, 96); + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + } + else + { + HideBg(3); + } + gMain.state++; + break; + case 5: + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + gUnknown_0300127C->cursorPos = gUnknown_0203CF20; + sub_819A9AC(); + sub_819AA18(); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + sub_819BE34(); + gMain.state++; + break; + case 6: + sub_819BA64(); + PutWindowTilemap(2); + gMain.state++; + break; + case 7: + sub_819BCF8(); + PutWindowTilemap(5); + gMain.state++; + break; + case 8: + sub_819B9E8(); + PutWindowTilemap(1); + gMain.state++; + break; + case 9: + sub_819B9B4(); + PutWindowTilemap(0); + gMain.state++; + break; + case 10: + gUnknown_0300127C->unk2A1 = CreateTask(sub_819C69C, 0); + if (!gUnknown_0300127C->fromSummaryScreen) + { + gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; + taskId = CreateTask(sub_819B378, 0); + gTasks[taskId].data[0] = 0; + } + else + { + gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; + gUnknown_0300127C->unk2A2 = 0; + taskId = CreateTask(sub_819B124, 0); + gTasks[taskId].data[0] = 13; + } + SetMainCallback2(sub_819A4C8); + break; + } +} + +void sub_819A9AC(void) +{ + u8 i; + + if (gUnknown_0300127C != NULL) + return; + + gUnknown_0300127C = AllocZeroed(sizeof(*gUnknown_0300127C)); + gUnknown_0300127C->cursorPos = 0; + gUnknown_0300127C->unk5 = 1; + gUnknown_0300127C->fromSummaryScreen = FALSE; + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + gUnknown_0300127C->mons[i].selected = FALSE; + + if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) + sub_819B484(0); + else + sub_819B63C(0); +} + +extern const struct SpriteTemplate gUnknown_086105F0; +extern const struct SpriteTemplate gUnknown_08610608; +extern const struct SpriteTemplate gUnknown_08610620; + +void sub_819AA18(void) +{ + u8 i, cursorPos; + s16 x; + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + gUnknown_0300127C->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); + gSprites[gUnknown_0300127C->mons[i].spriteId].data[0] = 0; + SetBallSpritePaletteNum(i); + } + cursorPos = gUnknown_0300127C->cursorPos; + x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; + gUnknown_0300127C->unk4 = CreateSprite(&gUnknown_086105F0, x, 88, 0); + gUnknown_0300127C->unk1 = CreateSprite(&gUnknown_08610608, 176, 112, 0); + gUnknown_0300127C->unk2 = CreateSprite(&gUnknown_08610620, 176, 144, 0); + + gSprites[gUnknown_0300127C->unk1].invisible = 1; + gSprites[gUnknown_0300127C->unk2].invisible = 1; + + gSprites[gUnknown_0300127C->unk1].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->unk1].centerToCornerVecY = 0; + gSprites[gUnknown_0300127C->unk2].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->unk2].centerToCornerVecY = 0; +} -- cgit v1.2.3 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: 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(-) (limited to 'src') diff --git a/src/battle_records.c b/src/battle_records.c index 1680f3cc4..fc9826e5b 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 c054958ce..cbf77f1b3 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 7599d70ab..934cdea43 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 b21d51278..4f9ad298d 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 1c626cc86..25af28da4 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 f56548068..d77bde01b 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 e28faf986..3d8d5acc2 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 8a4b4fce5..3acb44985 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 68f31584b..7f031c704 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 f99d23bc3..42525380b 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 fc0c0c24e..d48a1e448 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 ef00e2e06..26ea834fa 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 e615693b9..0fa2cde04 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 = { -- cgit v1.2.3 From 0238b1c8ec6a7793917dcc9f358b964a3090715f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 2 Sep 2018 19:41:33 +0200 Subject: More battle factory work --- src/battle_factory.c | 602 ++++++++++++++++++++++++++++++++++++++++++++++++ src/battle_frontier_2.c | 337 --------------------------- 2 files changed, 602 insertions(+), 337 deletions(-) create mode 100644 src/battle_factory.c delete mode 100644 src/battle_frontier_2.c (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c new file mode 100644 index 000000000..e1c955122 --- /dev/null +++ b/src/battle_factory.c @@ -0,0 +1,602 @@ +#include "global.h" +#include "sprite.h" +#include "event_data.h" +#include "overworld.h" +#include "random.h" +#include "battle_tower.h" +#include "text.h" +#include "palette.h" +#include "task.h" +#include "main.h" +#include "malloc.h" +#include "bg.h" +#include "gpu_regs.h" +#include "window.h" +#include "decompress.h" +#include "pokemon_summary_screen.h" +#include "sound.h" +#include "constants/battle_frontier.h" +#include "constants/songs.h" + +#define MENU_SUMMARY 0 +#define MENU_RENT 1 +#define MENU_DESELECT 1 +#define MENU_OTHERS 2 +#define MENU_OPTIONS_COUNT 3 + +#define SELECTABLE_MONS_COUNT 6 +#define TAG_PAL_BALL_GREY 0x64 +#define TAG_PAL_BALL_SELECTED 0x65 + +struct FactorySelecteableMon +{ + u16 unk0; + u16 spriteId; + u8 selectetedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon + struct Pokemon monData; +}; + +struct FactorySelectMonsStruct +{ + u8 menuCursorPos; + u8 menuCursor1SpriteId; + u8 menuCursor2SpriteId; + u8 cursorPos; + u8 cursorSpriteId; + u8 selectingMonsState; + bool8 fromSummaryScreen; + u8 yesNoCursorPos; + u8 unk8; + u8 unk9; + struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; + u32 unk294; + u32 unk298; + u32 unk29C; + u8 unk2A0; + u8 unk2A1; + u8 unk2A2; + u8 unk2A3; + u16 unk2A4; + u16 unk2A6; + u16 unk2A8; + u16 unk2AA; +}; + +extern struct FactorySelectMonsStruct *gUnknown_0300127C; +extern u8 gUnknown_0203CF20; + +// This file's functions. +void sub_819A514(void); +void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); +void sub_819A9AC(void); +void sub_819AA18(void); +void sub_819BE34(void); +void sub_819BA64(void); +void sub_819BCF8(void); +void sub_819B9E8(void); +void sub_819B9B4(void); +void sub_819B764(void); +void sub_819C4B4(void); +void sub_819B8D4(void); +void sub_819C568(void); +void sub_819BC9C(void); +void sub_819C69C(u8 taskId); +void sub_819B378(u8 taskId); +void sub_819B124(u8 taskId); +void sub_819B484(u8 arg0); +void sub_819B63C(u8 arg0); +void SetBallSpritePaletteNum(u8 id); +void sub_819F444(u32 spriteId, u8 *arg1); +void sub_819B958(u8 arg0); + +// Ewram variables +EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; +EWRAM_DATA u8 *gUnknown_0203CE30 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; +static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; + +// Const rom data. +extern const struct BgTemplate gUnknown_08610428[3]; +extern const struct WindowTemplate gUnknown_08610434[]; +extern const u8 gUnknown_0861033C[]; +extern const u8 gUnknown_0861023C[]; +extern const u16 gUnknown_0861046C[]; +extern const u16 gUnknown_0861039C[]; +extern const struct SpritePalette gUnknown_086103F4[]; +extern const struct SpriteSheet gUnknown_086103BC[]; +extern const struct CompressedSpriteSheet gUnknown_086103E4[]; +extern const struct SpriteTemplate gUnknown_086105D8; + +// gfx +extern const u8 gFrontierFactorySelectMenu_Gfx[]; +extern const u8 gFrontierFactorySelectMenu_Tilemap[]; +extern const u16 gFrontierFactorySelectMenu_Pal[]; + +// code +void sub_819A44C(struct Sprite *sprite) +{ + if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED)) + { + if (sprite->animEnded) + { + if (sprite->data[0] != 0) + { + sprite->data[0]--; + } + else if (Random() % 5 == 0) + { + StartSpriteAnim(sprite, 0); + sprite->data[0] = 32; + } + else + { + StartSpriteAnim(sprite, 1); + } + } + else + { + StartSpriteAnimIfDifferent(sprite, 1); + } + } + else + { + StartSpriteAnimIfDifferent(sprite, 0); + } +} + +void sub_819A4C8(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +void sub_819A4E4(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_819A4F8(void) +{ + gUnknown_0300127C = NULL; + SetMainCallback2(sub_819A514); +} + +void sub_819A514(void) +{ + u8 taskId; + + switch (gMain.state) + { + case 0: + if (sFactorySelectMons != NULL) + FREE_AND_SET_NULL(sFactorySelectMons); + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + CpuFill32(0, (void *)VRAM, VRAM_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_08610428, ARRAY_COUNT(gUnknown_08610428)); + InitWindows(gUnknown_08610434); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 1: + gUnknown_0203CE2C = Alloc(0x440); + gUnknown_0203CE30 = AllocZeroed(0x440); + gUnknown_0203CE34 = Alloc(0x800); + gUnknown_0203CE38 = AllocZeroed(0x800); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + 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, 0); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE2C, 0x440); + CpuCopy16(gUnknown_0861033C, gUnknown_0203CE30, 0x60); + LoadBgTiles(1, gUnknown_0203CE2C, 0x440, 0); + LoadBgTiles(3, gUnknown_0203CE30, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE34, 0x800); + LoadBgTilemap(1, gUnknown_0203CE34, 0x800, 0); + LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); + LoadPalette(gUnknown_0861046C, 0xF0, 8); + LoadPalette(gUnknown_0861046C, 0xE0, 10); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + gPlttBufferUnfaded[228] = gUnknown_0300127C->unk2A4; + LoadPalette(gUnknown_0861039C, 0x20, 4); + gMain.state++; + break; + case 3: + SetBgTilemapBuffer(3, gUnknown_0203CE38); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8); + CopyBgTilemapBufferToVram(3); + gMain.state++; + break; + case 4: + LoadSpritePalettes(gUnknown_086103F4); + LoadSpriteSheets(gUnknown_086103BC); + LoadCompressedObjectPic(gUnknown_086103E4); + ShowBg(0); + ShowBg(1); + SetVBlankCallback(sub_819A4E4); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + { + sub_819C5D0(88, 152, 32, 96); + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + } + else + { + HideBg(3); + } + gMain.state++; + break; + case 5: + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + gUnknown_0300127C->cursorPos = gUnknown_0203CF20; + sub_819A9AC(); + sub_819AA18(); + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + sub_819BE34(); + gMain.state++; + break; + case 6: + sub_819BA64(); + PutWindowTilemap(2); + gMain.state++; + break; + case 7: + sub_819BCF8(); + PutWindowTilemap(5); + gMain.state++; + break; + case 8: + sub_819B9E8(); + PutWindowTilemap(1); + gMain.state++; + break; + case 9: + sub_819B9B4(); + PutWindowTilemap(0); + gMain.state++; + break; + case 10: + gUnknown_0300127C->unk2A1 = CreateTask(sub_819C69C, 0); + if (!gUnknown_0300127C->fromSummaryScreen) + { + gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; + taskId = CreateTask(sub_819B378, 0); + gTasks[taskId].data[0] = 0; + } + else + { + gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; + gUnknown_0300127C->unk2A2 = 0; + taskId = CreateTask(sub_819B124, 0); + gTasks[taskId].data[0] = 13; + } + SetMainCallback2(sub_819A4C8); + break; + } +} + +void sub_819A9AC(void) +{ + u8 i; + + if (gUnknown_0300127C != NULL) + return; + + gUnknown_0300127C = AllocZeroed(sizeof(*gUnknown_0300127C)); + gUnknown_0300127C->cursorPos = 0; + gUnknown_0300127C->selectingMonsState = 1; + gUnknown_0300127C->fromSummaryScreen = FALSE; + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + gUnknown_0300127C->mons[i].selectetedId = 0; + + if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) + sub_819B484(0); + else + sub_819B63C(0); +} + +extern const struct SpriteTemplate gUnknown_086105F0; +extern const struct SpriteTemplate gUnknown_08610608; +extern const struct SpriteTemplate gUnknown_08610620; + +void sub_819AA18(void) +{ + u8 i, cursorPos; + s16 x; + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + gUnknown_0300127C->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); + gSprites[gUnknown_0300127C->mons[i].spriteId].data[0] = 0; + SetBallSpritePaletteNum(i); + } + cursorPos = gUnknown_0300127C->cursorPos; + x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; + gUnknown_0300127C->cursorSpriteId = CreateSprite(&gUnknown_086105F0, x, 88, 0); + gUnknown_0300127C->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0); + gUnknown_0300127C->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0); + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 1; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 1; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->menuCursor1SpriteId].centerToCornerVecY = 0; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].centerToCornerVecY = 0; +} + +void sub_819AB40(void) +{ + u8 i; + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + DestroySprite(&gSprites[gUnknown_0300127C->mons[i].spriteId]); + + DestroySprite(&gSprites[gUnknown_0300127C->cursorSpriteId]); + DestroySprite(&gSprites[gUnknown_0300127C->menuCursor1SpriteId]); + DestroySprite(&gSprites[gUnknown_0300127C->menuCursor2SpriteId]); +} + +void UpdateBallCursorPosition(s8 direction) +{ + u8 cursorPos; + if (direction > 0) // Move cursor right. + { + if (gUnknown_0300127C->cursorPos != SELECTABLE_MONS_COUNT - 1) + gUnknown_0300127C->cursorPos++; + else + gUnknown_0300127C->cursorPos = 0; + } + else // Move cursor left. + { + if (gUnknown_0300127C->cursorPos != 0) + gUnknown_0300127C->cursorPos--; + else + gUnknown_0300127C->cursorPos = SELECTABLE_MONS_COUNT - 1; + } + + cursorPos = gUnknown_0300127C->cursorPos; + gSprites[gUnknown_0300127C->cursorSpriteId].pos1.x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; +} + +void UpdateMenuCursorPosition(s8 direction) +{ + if (direction > 0) // Move cursor down. + { + if (gUnknown_0300127C->menuCursorPos != MENU_OPTIONS_COUNT - 1) + gUnknown_0300127C->menuCursorPos++; + else + gUnknown_0300127C->menuCursorPos = 0; + } + else // Move cursor up. + { + if (gUnknown_0300127C->menuCursorPos != 0) + gUnknown_0300127C->menuCursorPos--; + else + gUnknown_0300127C->menuCursorPos = MENU_OPTIONS_COUNT - 1; + } + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; +} + +void UpdateYesNoCursorPosition(s8 direction) +{ + if (direction > 0) // Move cursor down. + { + if (gUnknown_0300127C->yesNoCursorPos != 1) + gUnknown_0300127C->yesNoCursorPos++; + else + gUnknown_0300127C->yesNoCursorPos = 0; + } + else // Move cursor up. + { + if (gUnknown_0300127C->yesNoCursorPos != 0) + gUnknown_0300127C->yesNoCursorPos--; + else + gUnknown_0300127C->yesNoCursorPos = 1; + } + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->yesNoCursorPos * 16) + 112; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->yesNoCursorPos * 16) + 112; +} + +void HandleMonSelectionChange(void) +{ + u8 i, paletteNum; + u8 cursorPos = gUnknown_0300127C->cursorPos; + if (gUnknown_0300127C->mons[cursorPos].selectetedId) // Deselect a mon. + { + paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectetedId == 1) + { + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + if (gUnknown_0300127C->mons[i].selectetedId == 2) + break; + } + if (i == SELECTABLE_MONS_COUNT) + return; + else + gUnknown_0300127C->mons[i].selectetedId = 1; + } + gUnknown_0300127C->mons[cursorPos].selectetedId = 0; + gUnknown_0300127C->selectingMonsState--; + } + else // Select a mon. + { + paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + gUnknown_0300127C->mons[cursorPos].selectetedId = gUnknown_0300127C->selectingMonsState; + gUnknown_0300127C->selectingMonsState++; + } + + gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].oam.paletteNum = paletteNum; +} + +void SetBallSpritePaletteNum(u8 id) +{ + u8 palNum; + + if (gUnknown_0300127C->mons[id].selectetedId) + palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + else + palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + + gSprites[gUnknown_0300127C->mons[id].spriteId].oam.paletteNum = palNum; +} + +void Task_FromSelectScreenToSummaryScreen(u8 taskId) +{ + u8 i; + u8 currMonId; + + switch (gTasks[taskId].data[0]) + { + case 6: + gPlttBufferUnfaded[228] = gPlttBufferFaded[228]; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0] = 7; + break; + case 7: + if (!gPaletteFade.active) + { + DestroyTask(gUnknown_0300127C->unk2A1); + sub_819F444(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0); + sub_819AB40(); + FREE_AND_SET_NULL(gUnknown_0203CE2C); + FREE_AND_SET_NULL(gUnknown_0203CE30); + FREE_AND_SET_NULL(gUnknown_0203CE34); + FREE_AND_SET_NULL(gUnknown_0203CE38); + FreeAllWindowBuffers(); + gTasks[taskId].data[0] = 8; + } + break; + case 8: + gUnknown_0300127C->unk2A4 = gPlttBufferUnfaded[228]; + DestroyTask(taskId); + gUnknown_0300127C->fromSummaryScreen = TRUE; + currMonId = gUnknown_0300127C->cursorPos; + sFactorySelectMons = AllocZeroed(sizeof(struct Pokemon) * SELECTABLE_MONS_COUNT); + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + sFactorySelectMons[i] = gUnknown_0300127C->mons[i].monData; + ShowPokemonSummaryScreen(1, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, sub_819A514); + break; + } +} + +void Task_CloseSelectionScreen(u8 taskId) +{ + if (gUnknown_0300127C->unk2A0 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0]++; + break; + case 1: + if (!UpdatePaletteFade()) + { + sub_819B764(); + DestroyTask(gUnknown_0300127C->unk2A1); + sub_819AB40(); + FREE_AND_SET_NULL(gUnknown_0203CE2C); + FREE_AND_SET_NULL(gUnknown_0203CE34); + FREE_AND_SET_NULL(gUnknown_0203CE38); + FREE_AND_SET_NULL(gUnknown_0300127C); + FreeAllWindowBuffers(); + SetMainCallback2(CB2_ReturnToFieldContinueScript); + DestroyTask(taskId); + } + break; + } + } +} + +void Task_HandleSelectionScreenYesNo(u8 taskId) +{ + if (gUnknown_0300127C->unk2A0 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 10: + sub_819C4B4(); + gTasks[taskId].data[0] = 4; + break; + case 4: + sub_819B8D4(); + gTasks[taskId].data[0] = 5; + break; + case 5: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gUnknown_0300127C->yesNoCursorPos == 0) + { + sub_819C568(); + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = Task_CloseSelectionScreen; + } + else + { + sub_819B958(4); + sub_819BC9C(); + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = sub_819B378; + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_819B958(4); + sub_819BC9C(); + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = sub_819B378; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + UpdateYesNoCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + UpdateYesNoCursorPosition(1); + } + break; + } + } +} diff --git a/src/battle_frontier_2.c b/src/battle_frontier_2.c deleted file mode 100644 index 958aa4692..000000000 --- a/src/battle_frontier_2.c +++ /dev/null @@ -1,337 +0,0 @@ -#include "global.h" -#include "sprite.h" -#include "event_data.h" -#include "overworld.h" -#include "random.h" -#include "battle_tower.h" -#include "text.h" -#include "palette.h" -#include "task.h" -#include "main.h" -#include "malloc.h" -#include "bg.h" -#include "gpu_regs.h" -#include "window.h" -#include "decompress.h" -#include "constants/battle_frontier.h" - -#define SELECTABLE_MONS_COUNT 6 -#define TAG_PAL_BALL_GREY 0x64 -#define TAG_PAL_BALL_SELECTED 0x65 - -struct FactorySelecteableMon -{ - u16 unk0; - u16 spriteId; - bool8 selected; - u8 filler6[0x6A - 6]; - u8 unk6A; -}; - -struct UnkStructTempName -{ - u8 menuCursorPos; - u8 unk1; - u8 unk2; - u8 cursorPos; - u8 unk4; - u8 unk5; - bool8 fromSummaryScreen; - u8 unk7; - u8 unk8; - u8 unk9; - struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; - u8 filler294[0x2a1 - 0x294]; - u8 unk2A1; - u8 unk2A2; - u8 unk2A3; - u16 unk2A4; - u16 unk2A6; - u16 unk2A8; - u16 unk2AA; -}; - -extern struct UnkStructTempName *gUnknown_0300127C; -extern u8 *gUnknown_0203CE2C; -extern u8 *gUnknown_0203CE30; -extern u8 *gUnknown_0203CE34; -extern u8 *gUnknown_0203CE38; -extern struct Pokemon *gUnknown_0203CE3C; -extern u8 gUnknown_0203CF20; - -// This file's functions. -void sub_819A514(void); -void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); -void sub_819A9AC(void); -void sub_819AA18(void); -void sub_819BE34(void); -void sub_819BA64(void); -void sub_819BCF8(void); -void sub_819B9E8(void); -void sub_819B9B4(void); -void sub_819C69C(u8 taskId); -void sub_819B378(u8 taskId); -void sub_819B124(u8 taskId); -void sub_819B484(u8 arg0); -void sub_819B63C(u8 arg0); -void SetBallSpritePaletteNum(u8 id); - -// Const rom data. -extern const struct BgTemplate gUnknown_08610428[3]; -extern const struct WindowTemplate gUnknown_08610434[]; -extern const u8 gUnknown_0861033C[]; -extern const u8 gUnknown_0861023C[]; -extern const u16 gUnknown_0861046C[]; -extern const u16 gUnknown_0861039C[]; -extern const struct SpritePalette gUnknown_086103F4[]; -extern const struct SpriteSheet gUnknown_086103BC[]; -extern const struct CompressedSpriteSheet gUnknown_086103E4[]; -extern const struct SpriteTemplate gUnknown_086105D8; - -// gfx -extern const u8 gFrontierFactorySelectMenu_Gfx[]; -extern const u8 gFrontierFactorySelectMenu_Tilemap[]; -extern const u16 gFrontierFactorySelectMenu_Pal[]; - -// code -void sub_819A44C(struct Sprite *sprite) -{ - if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED)) - { - if (sprite->animEnded) - { - if (sprite->data[0] != 0) - { - sprite->data[0]--; - } - else if (Random() % 5 == 0) - { - StartSpriteAnim(sprite, 0); - sprite->data[0] = 32; - } - else - { - StartSpriteAnim(sprite, 1); - } - } - else - { - StartSpriteAnimIfDifferent(sprite, 1); - } - } - else - { - StartSpriteAnimIfDifferent(sprite, 0); - } -} - -void sub_819A4C8(void) -{ - AnimateSprites(); - BuildOamBuffer(); - RunTextPrinters(); - UpdatePaletteFade(); - RunTasks(); -} - -void sub_819A4E4(void) -{ - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); -} - -void sub_819A4F8(void) -{ - gUnknown_0300127C = NULL; - SetMainCallback2(sub_819A514); -} - -void sub_819A514(void) -{ - u8 taskId; - - switch (gMain.state) - { - case 0: - if (gUnknown_0203CE3C != NULL) - FREE_AND_SET_NULL(gUnknown_0203CE3C); - SetHBlankCallback(NULL); - SetVBlankCallback(NULL); - CpuFill32(0, (void *)VRAM, VRAM_SIZE); - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_08610428, ARRAY_COUNT(gUnknown_08610428)); - InitWindows(gUnknown_08610434); - DeactivateAllTextPrinters(); - gMain.state++; - break; - case 1: - gUnknown_0203CE2C = Alloc(0x440); - gUnknown_0203CE30 = AllocZeroed(0x440); - gUnknown_0203CE34 = Alloc(0x800); - gUnknown_0203CE38 = AllocZeroed(0x800); - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgX(3, 0, 0); - ChangeBgY(3, 0, 0); - 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, 0); - gMain.state++; - break; - case 2: - ResetPaletteFade(); - ResetSpriteData(); - ResetTasks(); - FreeAllSpritePalettes(); - CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE2C, 0x440); - CpuCopy16(gUnknown_0861033C, gUnknown_0203CE30, 0x60); - LoadBgTiles(1, gUnknown_0203CE2C, 0x440, 0); - LoadBgTiles(3, gUnknown_0203CE30, 0x60, 0); - CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE34, 0x800); - LoadBgTilemap(1, gUnknown_0203CE34, 0x800, 0); - LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); - LoadPalette(gUnknown_0861046C, 0xF0, 8); - LoadPalette(gUnknown_0861046C, 0xE0, 10); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - gPlttBufferUnfaded[228] = gUnknown_0300127C->unk2A4; - LoadPalette(gUnknown_0861039C, 0x20, 4); - gMain.state++; - break; - case 3: - SetBgTilemapBuffer(3, gUnknown_0203CE38); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8); - CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8); - CopyBgTilemapBufferToVram(3); - gMain.state++; - break; - case 4: - LoadSpritePalettes(gUnknown_086103F4); - LoadSpriteSheets(gUnknown_086103BC); - LoadCompressedObjectPic(gUnknown_086103E4); - ShowBg(0); - ShowBg(1); - SetVBlankCallback(sub_819A4E4); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - { - sub_819C5D0(88, 152, 32, 96); - ShowBg(3); - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); - } - else - { - HideBg(3); - } - gMain.state++; - break; - case 5: - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - gUnknown_0300127C->cursorPos = gUnknown_0203CF20; - sub_819A9AC(); - sub_819AA18(); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - sub_819BE34(); - gMain.state++; - break; - case 6: - sub_819BA64(); - PutWindowTilemap(2); - gMain.state++; - break; - case 7: - sub_819BCF8(); - PutWindowTilemap(5); - gMain.state++; - break; - case 8: - sub_819B9E8(); - PutWindowTilemap(1); - gMain.state++; - break; - case 9: - sub_819B9B4(); - PutWindowTilemap(0); - gMain.state++; - break; - case 10: - gUnknown_0300127C->unk2A1 = CreateTask(sub_819C69C, 0); - if (!gUnknown_0300127C->fromSummaryScreen) - { - gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; - taskId = CreateTask(sub_819B378, 0); - gTasks[taskId].data[0] = 0; - } - else - { - gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; - gUnknown_0300127C->unk2A2 = 0; - taskId = CreateTask(sub_819B124, 0); - gTasks[taskId].data[0] = 13; - } - SetMainCallback2(sub_819A4C8); - break; - } -} - -void sub_819A9AC(void) -{ - u8 i; - - if (gUnknown_0300127C != NULL) - return; - - gUnknown_0300127C = AllocZeroed(sizeof(*gUnknown_0300127C)); - gUnknown_0300127C->cursorPos = 0; - gUnknown_0300127C->unk5 = 1; - gUnknown_0300127C->fromSummaryScreen = FALSE; - for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - gUnknown_0300127C->mons[i].selected = FALSE; - - if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) - sub_819B484(0); - else - sub_819B63C(0); -} - -extern const struct SpriteTemplate gUnknown_086105F0; -extern const struct SpriteTemplate gUnknown_08610608; -extern const struct SpriteTemplate gUnknown_08610620; - -void sub_819AA18(void) -{ - u8 i, cursorPos; - s16 x; - - for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - { - gUnknown_0300127C->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); - gSprites[gUnknown_0300127C->mons[i].spriteId].data[0] = 0; - SetBallSpritePaletteNum(i); - } - cursorPos = gUnknown_0300127C->cursorPos; - x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; - gUnknown_0300127C->unk4 = CreateSprite(&gUnknown_086105F0, x, 88, 0); - gUnknown_0300127C->unk1 = CreateSprite(&gUnknown_08610608, 176, 112, 0); - gUnknown_0300127C->unk2 = CreateSprite(&gUnknown_08610620, 176, 144, 0); - - gSprites[gUnknown_0300127C->unk1].invisible = 1; - gSprites[gUnknown_0300127C->unk2].invisible = 1; - - gSprites[gUnknown_0300127C->unk1].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->unk1].centerToCornerVecY = 0; - gSprites[gUnknown_0300127C->unk2].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->unk2].centerToCornerVecY = 0; -} -- cgit v1.2.3 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: Label event_object_movement.c --- src/event_object_movement.c | 166 ++++++++++++++++++++++---------------------- src/overworld.c | 5 +- src/player_pc.c | 2 +- 3 files changed, 86 insertions(+), 87 deletions(-) (limited to 'src') diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 5fdceb4c3..b54936db4 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 1cf830cf7..d4425effc 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 26ea834fa..7ac8e78d5 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); -- cgit v1.2.3 From 24b9cd721ff1f5c7f2fdd674299d0d2d9f396be2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 3 Sep 2018 22:55:55 +0200 Subject: More Battle Factory --- src/battle_factory.c | 569 ++++++++++++++++++++++++++++++++++++++++--- src/berry_fix_program.c | 10 +- src/hall_of_fame.c | 26 +- src/link.c | 10 +- src/mail.c | 4 +- src/main_menu.c | 44 ++-- src/menu.c | 6 +- src/naming_screen.c | 6 +- src/pokemon_storage_system.c | 4 +- src/starter_choose.c | 4 +- 10 files changed, 593 insertions(+), 90 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index e1c955122..9cb773ea3 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -11,10 +11,15 @@ #include "malloc.h" #include "bg.h" #include "gpu_regs.h" +#include "string_util.h" +#include "international_string_util.h" #include "window.h" +#include "data2.h" #include "decompress.h" #include "pokemon_summary_screen.h" #include "sound.h" +#include "pokedex.h" +#include "trainer_pokemon_sprites.h" #include "constants/battle_frontier.h" #include "constants/songs.h" @@ -30,12 +35,18 @@ struct FactorySelecteableMon { - u16 unk0; + u16 monSetId; u16 spriteId; - u8 selectetedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon + u8 selectedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon struct Pokemon monData; }; +struct UnkFactoryStruct +{ + u8 field0; + u8 field1; +}; + struct FactorySelectMonsStruct { u8 menuCursorPos; @@ -50,7 +61,7 @@ struct FactorySelectMonsStruct u8 unk9; struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; u32 unk294; - u32 unk298; + struct UnkFactoryStruct unk298; u32 unk29C; u8 unk2A0; u8 unk2A1; @@ -63,31 +74,49 @@ struct FactorySelectMonsStruct }; extern struct FactorySelectMonsStruct *gUnknown_0300127C; +extern u8 (*gUnknown_030062E8)(void); extern u8 gUnknown_0203CF20; +extern const u16 gBattleFrontierHeldItems[]; +extern const struct FacilityMon gBattleFrontierMons[]; +extern const struct FacilityMon gSlateportBattleTentMons[]; +extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; + +extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot); + // This file's functions. void sub_819A514(void); void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); void sub_819A9AC(void); void sub_819AA18(void); void sub_819BE34(void); -void sub_819BA64(void); -void sub_819BCF8(void); +void PrintSelectMonString(void); +void PrintMonSpecies(void); +void PrintMonCategory(void); void sub_819B9E8(void); -void sub_819B9B4(void); -void sub_819B764(void); +void PrintRentalPkmnString(void); +void CopySelectedMonsToPlayerParty(void); void sub_819C4B4(void); void sub_819B8D4(void); void sub_819C568(void); -void sub_819BC9C(void); +void sub_819B844(void); +void PrintSelectableMenuOptions(void); +void PrintSelectableYesNo(void); void sub_819C69C(u8 taskId); -void sub_819B378(u8 taskId); -void sub_819B124(u8 taskId); -void sub_819B484(u8 arg0); -void sub_819B63C(u8 arg0); +void Task_HandleSelectionScreenChooseMons(u8 taskId); +void Task_HandleSelectionScreenMenu(u8 taskId); +void CreateFrontierFactorySelectableMons(u8 firstMonId); +void CreateTentFactorySelectableMons(u8 firstMonId); void SetBallSpritePaletteNum(u8 id); -void sub_819F444(u32 spriteId, u8 *arg1); -void sub_819B958(u8 arg0); +void sub_819F444(struct UnkFactoryStruct arg0, u8 *arg1); +void sub_819B958(u8 windowId); +void sub_819F2B4(u8 *arg0, u8 *arg1, u8 arg2); +void sub_819F3F8(struct UnkFactoryStruct arg0, u8 *arg1, u8 arg2); +u8 sub_819BC04(void); +u8 sub_819BC9C(void); +u8 sub_81A6F70(u8 battleMode, u8 lvlMode); +u8 sub_81A6CA8(u8 arg0, u8 arg1); +bool32 sub_819C634(u16 monSetId); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -113,6 +142,20 @@ extern const u8 gFrontierFactorySelectMenu_Gfx[]; extern const u8 gFrontierFactorySelectMenu_Tilemap[]; extern const u16 gFrontierFactorySelectMenu_Pal[]; +// text +extern const u8 gText_RentalPkmn2[]; +extern const u8 gText_SelectFirstPkmn[]; +extern const u8 gText_SelectSecondPkmn[]; +extern const u8 gText_SelectThirdPkmn[]; +extern const u8 gText_TheseThreePkmnOkay[]; +extern const u8 gText_CantSelectSamePkmn[]; +extern const u8 gText_Summary[]; +extern const u8 gText_Deselect[]; +extern const u8 gText_Rent[]; +extern const u8 gText_Others2[]; +extern const u8 gText_Yes2[]; +extern const u8 gText_No2[]; + // code void sub_819A44C(struct Sprite *sprite) { @@ -267,22 +310,22 @@ void sub_819A514(void) gMain.state++; break; case 6: - sub_819BA64(); + PrintSelectMonString(); PutWindowTilemap(2); gMain.state++; break; case 7: - sub_819BCF8(); + PrintMonCategory(); PutWindowTilemap(5); gMain.state++; break; case 8: - sub_819B9E8(); + PrintMonSpecies(); PutWindowTilemap(1); gMain.state++; break; case 9: - sub_819B9B4(); + PrintRentalPkmnString(); PutWindowTilemap(0); gMain.state++; break; @@ -291,14 +334,14 @@ void sub_819A514(void) if (!gUnknown_0300127C->fromSummaryScreen) { gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; - taskId = CreateTask(sub_819B378, 0); + taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0); gTasks[taskId].data[0] = 0; } else { gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; gUnknown_0300127C->unk2A2 = 0; - taskId = CreateTask(sub_819B124, 0); + taskId = CreateTask(Task_HandleSelectionScreenMenu, 0); gTasks[taskId].data[0] = 13; } SetMainCallback2(sub_819A4C8); @@ -318,12 +361,12 @@ void sub_819A9AC(void) gUnknown_0300127C->selectingMonsState = 1; gUnknown_0300127C->fromSummaryScreen = FALSE; for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - gUnknown_0300127C->mons[i].selectetedId = 0; + gUnknown_0300127C->mons[i].selectedId = 0; if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) - sub_819B484(0); + CreateFrontierFactorySelectableMons(0); else - sub_819B63C(0); + CreateTentFactorySelectableMons(0); } extern const struct SpriteTemplate gUnknown_086105F0; @@ -436,28 +479,28 @@ void HandleMonSelectionChange(void) { u8 i, paletteNum; u8 cursorPos = gUnknown_0300127C->cursorPos; - if (gUnknown_0300127C->mons[cursorPos].selectetedId) // Deselect a mon. + if (gUnknown_0300127C->mons[cursorPos].selectedId) // Deselect a mon. { paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); - if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectetedId == 1) + if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectedId == 1) { for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - if (gUnknown_0300127C->mons[i].selectetedId == 2) + if (gUnknown_0300127C->mons[i].selectedId == 2) break; } if (i == SELECTABLE_MONS_COUNT) return; else - gUnknown_0300127C->mons[i].selectetedId = 1; + gUnknown_0300127C->mons[i].selectedId = 1; } - gUnknown_0300127C->mons[cursorPos].selectetedId = 0; + gUnknown_0300127C->mons[cursorPos].selectedId = 0; gUnknown_0300127C->selectingMonsState--; } else // Select a mon. { paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); - gUnknown_0300127C->mons[cursorPos].selectetedId = gUnknown_0300127C->selectingMonsState; + gUnknown_0300127C->mons[cursorPos].selectedId = gUnknown_0300127C->selectingMonsState; gUnknown_0300127C->selectingMonsState++; } @@ -468,7 +511,7 @@ void SetBallSpritePaletteNum(u8 id) { u8 palNum; - if (gUnknown_0300127C->mons[id].selectetedId) + if (gUnknown_0300127C->mons[id].selectedId) palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); else palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); @@ -528,7 +571,7 @@ void Task_CloseSelectionScreen(u8 taskId) case 1: if (!UpdatePaletteFade()) { - sub_819B764(); + CopySelectedMonsToPlayerParty(); DestroyTask(gUnknown_0300127C->unk2A1); sub_819AB40(); FREE_AND_SET_NULL(gUnknown_0203CE2C); @@ -574,7 +617,7 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) sub_819BC9C(); gUnknown_0300127C->unk2A2 = 1; gTasks[taskId].data[0] = 1; - gTasks[taskId].func = sub_819B378; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } } else if (gMain.newKeys & B_BUTTON) @@ -584,7 +627,7 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) sub_819BC9C(); gUnknown_0300127C->unk2A2 = 1; gTasks[taskId].data[0] = 1; - gTasks[taskId].func = sub_819B378; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } else if (gMain.newAndRepeatedKeys & DPAD_UP) { @@ -600,3 +643,463 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) } } } + +void Task_HandleSelectionScreenMenu(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 2: + if (!gUnknown_0300127C->fromSummaryScreen) + sub_819F2B4(&gUnknown_0300127C->unk298.field1, &gUnknown_0300127C->unk2A0, 0); + gTasks[taskId].data[0] = 9; + break; + case 9: + if (gUnknown_0300127C->unk2A0 != 1) + { + sub_819B844(); + gUnknown_0300127C->fromSummaryScreen = FALSE; + gTasks[taskId].data[0] = 3; + } + break; + case 3: + if (gMain.newKeys & A_BUTTON) + { + u8 retVal; + PlaySE(SE_SELECT); + retVal = sub_819BC04(); + if (retVal == 1) + { + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + } + else if (retVal == 2) + { + gTasks[taskId].data[0] = 10; + gTasks[taskId].func = Task_HandleSelectionScreenYesNo; + } + else if (retVal == 3) + { + gTasks[taskId].data[0] = 11; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + } + else + { + gTasks[taskId].data[0] = 6; + gTasks[taskId].func = Task_FromSelectScreenToSummaryScreen; + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + sub_819B958(3); + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + UpdateMenuCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + UpdateMenuCursorPosition(1); + } + break; + case 12: + if (!gPaletteFade.active) + { + if (gUnknown_0300127C->fromSummaryScreen == TRUE) + { + gPlttBufferFaded[228] = gUnknown_0300127C->unk2A4; + gPlttBufferUnfaded[228] = gPlttBufferUnfaded[244]; + } + gUnknown_0300127C->fromSummaryScreen = FALSE; + gTasks[taskId].data[0] = 3; + } + break; + case 13: + sub_819B844(); + gTasks[taskId].data[0] = 12; + break; + } +} + +void Task_HandleSelectionScreenChooseMons(u8 taskId) +{ + if (gUnknown_0300127C->unk2A0 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 0: + if (!gPaletteFade.active) + { + gTasks[taskId].data[0] = 1; + gUnknown_0300127C->unk2A2 = 1; + } + break; + case 1: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_0300127C->unk2A2 = 0; + gTasks[taskId].data[0] = 2; + gTasks[taskId].func = Task_HandleSelectionScreenMenu; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + PlaySE(SE_SELECT); + UpdateBallCursorPosition(-1); + PrintMonCategory(); + PrintMonSpecies(); + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + PlaySE(SE_SELECT); + UpdateBallCursorPosition(1); + PrintMonCategory(); + PrintMonSpecies(); + } + break; + case 11: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + PrintSelectMonString(); + gUnknown_0300127C->unk2A2 = 1; + gTasks[taskId].data[0] = 1; + } + break; + } + } +} + +void CreateFrontierFactorySelectableMons(u8 firstMonId) +{ + u8 i, j = 0; + u8 ivs = 0; + u8 level = 0; + u8 happiness = 0; + u32 otId = 0; + u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); + u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; + u8 var_2C = gSaveBlock2Ptr->frontier.field_DE2[battleMode][lvlMode] / 7; + u8 var_28 = 0; + + gFacilityTrainerMons = gBattleFrontierMons; + if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50) + level = 100; + else + level = 50; + + var_28 = sub_81A6F70(battleMode, lvlMode); + otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; + gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId; + if (i < var_28) + ivs = sub_81A6CA8(var_2C + 1, 0); + else + ivs = sub_81A6CA8(var_2C, 0); + CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData, + gFacilityTrainerMons[monSetId].species, + level, + gFacilityTrainerMons[monSetId].nature, + ivs, + gFacilityTrainerMons[monSetId].evSpread, + otId); + happiness = 0; + for (j = 0; j < 4; j++) + SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); + SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + } +} + +void CreateTentFactorySelectableMons(u8 firstMonId) +{ + u8 i, j; + u8 ivs = 0; + u8 level = 30; + u8 happiness = 0; + u32 otId = 0; + + gFacilityTrainerMons = gSlateportBattleTentMons; + otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); + + for (i = 0; i < SELECTABLE_MONS_COUNT; i++) + { + u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; + gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId; + CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData, + gFacilityTrainerMons[monSetId].species, + level, + gFacilityTrainerMons[monSetId].nature, + ivs, + gFacilityTrainerMons[monSetId].evSpread, + otId); + happiness = 0; + for (j = 0; j < 4; j++) + SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); + SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + } +} + +void CopySelectedMonsToPlayerParty(void) +{ + u8 i, j; + + for (i = 0; i < 3; i++) + { + for (j = 0; j < SELECTABLE_MONS_COUNT; j++) + { + if (gUnknown_0300127C->mons[j].selectedId == i + 1) + { + gPlayerParty[i] = gUnknown_0300127C->mons[j].monData; + gSaveBlock2Ptr->frontier.field_E70[i].monId = gUnknown_0300127C->mons[j].monSetId; + gSaveBlock2Ptr->frontier.field_E70[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.field_E70[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL); + gSaveBlock2Ptr->frontier.field_E70[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL); + break; + } + } + } + CalculatePlayerPartyCount(); +} + +void sub_819B844(void) +{ + if (!gUnknown_0300127C->fromSummaryScreen) + gUnknown_0300127C->menuCursorPos = 0; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176; + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0; + + PrintSelectableMenuOptions(); +} + +void sub_819B8D4(void) +{ + gUnknown_0300127C->yesNoCursorPos = 0; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176; + gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = 112; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = 112; + + gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0; + + PrintSelectableYesNo(); +} + +void sub_819B958(u8 windowId) +{ + gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 1; + gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 1; + FillWindowPixelBuffer(windowId, 0); + CopyWindowToVram(windowId, 2); + ClearWindowTilemap(windowId); +} + +void PrintRentalPkmnString(void) +{ + FillWindowPixelBuffer(0, 0); + PrintTextOnWindow(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); + CopyWindowToVram(0, 3); +} + +extern const u8 gUnknown_08610479[]; +extern const u8 gUnknown_08610476[]; + +void PrintMonSpecies(void) +{ + u16 species; + u8 x; + u8 monId = gUnknown_0300127C->cursorPos; + + FillWindowPixelBuffer(1, 0); + species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL); + StringCopy(gStringVar4, gSpeciesNames[species]); + x = GetStringRightAlignXOffset(1, gStringVar4, 86); + AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610479, 0, gStringVar4); + CopyWindowToVram(1, 2); +} + +void PrintSelectMonString(void) +{ + const u8 *str = NULL; + + FillWindowPixelBuffer(2, 0); + if (gUnknown_0300127C->selectingMonsState == 1) + str = gText_SelectFirstPkmn; + else if (gUnknown_0300127C->selectingMonsState == 2) + str = gText_SelectSecondPkmn; + else if (gUnknown_0300127C->selectingMonsState == 3) + str = gText_SelectThirdPkmn; + else + str = gText_TheseThreePkmnOkay; + + PrintTextOnWindow(2, 1, str, 2, 5, 0, NULL); + CopyWindowToVram(2, 2); +} + +void PrintCantSelectSameMon(void) +{ + FillWindowPixelBuffer(2, 0); + PrintTextOnWindow(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); + CopyWindowToVram(2, 2); +} + +void PrintSelectableMenuOptions(void) +{ + u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId; + + PutWindowTilemap(3); + FillWindowPixelBuffer(3, 0); + AddTextPrinterParameterized3(3, 1, 7, 1, gUnknown_08610476, 0, gText_Summary); + if (selectedId != 0) + AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Deselect); + else + AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Rent); + + AddTextPrinterParameterized3(3, 1, 7, 33, gUnknown_08610476, 0, gText_Others2); + CopyWindowToVram(3, 3); +} + +void PrintSelectableYesNo(void) +{ + PutWindowTilemap(4); + FillWindowPixelBuffer(4, 0); + AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610476, 0, gText_Yes2); + AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610476, 0, gText_No2); + CopyWindowToVram(4, 3); +} + +extern u8 (* const gUnknown_0861041C[])(void); + +u8 sub_819BC04(void) +{ + gUnknown_030062E8 = gUnknown_0861041C[gUnknown_0300127C->menuCursorPos]; + return gUnknown_030062E8(); +} + +u8 sub_819BC30(void) +{ + u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId; + u16 monSetId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monSetId; + if (selectedId == 0 && !sub_819C634(monSetId)) + { + PrintCantSelectSameMon(); + sub_819B958(3); + return 3; + } + else + { + sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + HandleMonSelectionChange(); + PrintSelectMonString(); + sub_819B958(3); + if (gUnknown_0300127C->selectingMonsState > 3) + return 2; + else + return 1; + } +} + +u8 sub_819BC9C(void) +{ + sub_819C568(); + HandleMonSelectionChange(); + PrintSelectMonString(); + sub_819B958(3); + if (gUnknown_0300127C->selectingMonsState > 3) + return 2; + else + return 1; +} + +u8 sub_819BCCC(void) +{ + return 0; +} + +u8 sub_819BCD0(void) +{ + sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + sub_819B958(3); + return 1; +} + +void PrintMonCategory(void) +{ + u16 species; + u8 text[30]; + u8 x; + u8 monId = gUnknown_0300127C->cursorPos; + if (monId < SELECTABLE_MONS_COUNT) + { + PutWindowTilemap(5); + FillWindowPixelBuffer(5, 0); + species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL); + CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); + x = GetStringRightAlignXOffset(1, text, 0x76); + PrintTextOnWindow(5, 1, text, x, 1, 0, NULL); + CopyWindowToVram(5, 2); + } +} + +void sub_819BD70(void) +{ + u8 monId = gUnknown_0300127C->cursorPos; + struct Pokemon *mon = &gUnknown_0300127C->mons[monId].monData; + u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0; + + gUnknown_0300127C->unk2A0 = 0; +} + +extern const struct SpriteTemplate gUnknown_08610638; + +void sub_819BE20(u8 arg0) +{ + gUnknown_0300127C->unk2A0 = arg0; +} + +void sub_819BE34(void) +{ + struct Pokemon *mon; + u16 species; + u32 personality, otId; + + gUnknown_0300127C->unk298.field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); + StartSpriteAffineAnim(&gSprites[gUnknown_0300127C->unk298.field1], 2); + + mon = &gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monData; + species = GetMonData(mon, MON_DATA_SPECIES, NULL); + personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0; + gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0; + + gSprites[gUnknown_0300127C->unk298.field1].invisible = 1; +} diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index f6a5895a9..2ae15a806 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -250,19 +250,19 @@ static void berry_fix_gpu_set(void) width = GetStringWidth(0, sUnknown_08617E9B, 0); left = (0x78 - width) / 2; - box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B); + AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B); width = GetStringWidth(0, sUnknown_08617E8D, 0); left = (0x78 - width) / 2 + 0x78; - box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); + AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); width = GetStringWidth(0, sUnknown_08617E8D, 0); left = (0x70 - width) / 2; - box_print(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); + AddTextPrinterParameterized3(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D); width = GetStringWidth(1, sUnknown_08617E78, 0); left = (0xD0 - width) / 2; - box_print(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78); + AddTextPrinterParameterized3(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78); CopyWindowToVram(2, 2); CopyWindowToVram(3, 2); @@ -292,7 +292,7 @@ static void berry_fix_text_print(int scene) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); FillWindowPixelBuffer(1, 0xAA); - box_print(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]); + AddTextPrinterParameterized3(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]); PutWindowTilemap(1); CopyWindowToVram(1, 2); switch (scene) diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 33c85d448..081c963ee 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -1128,7 +1128,7 @@ static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2) { FillWindowPixelBuffer(0, 0); PutWindowTilemap(0); - box_print(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF); + AddTextPrinterParameterized3(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF); CopyWindowToVram(0, 3); } @@ -1164,7 +1164,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u *(stringPtr)++ = CHAR_QUESTION_MARK; } stringPtr[0] = EOS; - box_print(0, 1, 0x10, 1, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, 0x10, 1, sUnknown_085E5388, -1, text); } // nick, species names, gender and level @@ -1173,13 +1173,13 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u if (currMon->species == SPECIES_EGG) { width = GetStringCenterAlignXOffset(1, text, 0xD0); - box_print(0, 1, width, 1, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text); CopyWindowToVram(0, 3); } else { width = GetStringRightAlignXOffset(1, text, 0x80); - box_print(0, 1, width, 1, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text); text[0] = CHAR_SLASH; stringPtr = StringCopy(text + 1, gSpeciesNames[currMon->species]); @@ -1200,15 +1200,15 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u } stringPtr[0] = EOS; - box_print(0, 1, 0x80, 1, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, 0x80, 1, sUnknown_085E5388, -1, text); stringPtr = StringCopy(text, gText_Level); ConvertIntToDecimalStringN(stringPtr, currMon->lvl, STR_CONV_MODE_LEFT_ALIGN, 3); - box_print(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text); stringPtr = StringCopy(text, gText_IDNumber); ConvertIntToDecimalStringN(stringPtr, (u16)(currMon->tid), STR_CONV_MODE_LEADING_ZEROS, 5); - box_print(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text); + AddTextPrinterParameterized3(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text); CopyWindowToVram(0, 3); } @@ -1223,13 +1223,13 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) FillWindowPixelBuffer(1, 0x11); PutWindowTilemap(1); SetWindowBorderStyle(1, FALSE, 0x21D, 0xD); - box_print(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name); + AddTextPrinterParameterized3(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name); width = GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 0x70); - box_print(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName); + AddTextPrinterParameterized3(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName); trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) | (gSaveBlock2Ptr->playerTrainerId[1] << 8); - box_print(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber); + AddTextPrinterParameterized3(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber); text[0] = (trainerId % 100000) / 10000 + CHAR_0; text[1] = (trainerId % 10000) / 1000 + CHAR_0; text[2] = (trainerId % 1000) / 100 + CHAR_0; @@ -1237,9 +1237,9 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) text[4] = (trainerId % 10) / 1 + CHAR_0; text[5] = EOS; width = GetStringRightAlignXOffset(1, text, 0x70); - box_print(1, 1, width, 0x11, sUnknown_085E538C, -1, text); + AddTextPrinterParameterized3(1, 1, width, 0x11, sUnknown_085E538C, -1, text); - box_print(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime); + AddTextPrinterParameterized3(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime); text[0] = (gSaveBlock2Ptr->playTimeHours / 100) + CHAR_0; text[1] = (gSaveBlock2Ptr->playTimeHours % 100) / 10 + CHAR_0; text[2] = (gSaveBlock2Ptr->playTimeHours % 10) + CHAR_0; @@ -1255,7 +1255,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2) text[6] = EOS; width = GetStringRightAlignXOffset(1, text, 0x70); - box_print(1, 1, width, 0x21, sUnknown_085E538C, -1, text); + AddTextPrinterParameterized3(1, 1, width, 0x21, sUnknown_085E538C, -1, text); CopyWindowToVram(1, 3); } diff --git a/src/link.c b/src/link.c index 457e44a01..627327181 100644 --- a/src/link.c +++ b/src/link.c @@ -1685,8 +1685,8 @@ static void sub_800B080(void) LoadPalette(gWirelessLinkDisplayPal, 0, 0x20); FillWindowPixelBuffer(0, 0x00); FillWindowPixelBuffer(2, 0x00); - box_print(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis); - box_print(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner); + AddTextPrinterParameterized3(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis); + AddTextPrinterParameterized3(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner); PutWindowTilemap(0); PutWindowTilemap(2); CopyWindowToVram(0, 0); @@ -1698,7 +1698,7 @@ static void sub_800B138(void) LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0); FillWindowPixelBuffer(1, 0x00); FillWindowPixelBuffer(2, 0x00); - box_print(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections); + AddTextPrinterParameterized3(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections); PutWindowTilemap(1); PutWindowTilemap(2); CopyWindowToVram(1, 0); @@ -1738,11 +1738,11 @@ static void CB2_PrintErrorMessage(void) case 130: if (gWirelessCommType == 2) { - box_print(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnTitleScreen); + AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnTitleScreen); } else if (gWirelessCommType == 1) { - box_print(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnRegistrationCounter); + AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnRegistrationCounter); } break; } diff --git a/src/mail.c b/src/mail.c index 625b52de3..3c12bed3f 100644 --- a/src/mail.c +++ b/src/mail.c @@ -485,14 +485,14 @@ static void sub_8121B1C(void) { continue; } - box_print(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]); + AddTextPrinterParameterized3(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]); y += sMailRead->layout->var8[i].lineHeight; } bufptr = StringCopy(strbuf, gText_FromSpace); StringCopy(bufptr, sMailRead->playerName); box_x = GetStringCenterAlignXOffset(1, strbuf, sMailRead->signatureWidth) + 0x68; box_y = sMailRead->layout->signatureYPos + 0x58; - box_print(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf); + AddTextPrinterParameterized3(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf); CopyWindowToVram(0, 3); CopyWindowToVram(1, 3); } diff --git a/src/main_menu.c b/src/main_menu.c index e28faf986..b4b343fc6 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -527,8 +527,8 @@ void Task_DisplayMainMenu(u8 taskId) default: FillWindowPixelBuffer(0, 0xAA); FillWindowPixelBuffer(1, 0xAA); - box_print(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - box_print(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); PutWindowTilemap(0); PutWindowTilemap(1); CopyWindowToVram(0, 2); @@ -540,9 +540,9 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(2, 0xAA); FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(4, 0xAA); - box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); fmt_savegame(); PutWindowTilemap(2); PutWindowTilemap(3); @@ -559,10 +559,10 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(5, 0xAA); - box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift); - box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift); + AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); fmt_savegame(); PutWindowTilemap(2); PutWindowTilemap(3); @@ -583,11 +583,11 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(5, 0xAA); FillWindowPixelBuffer(6, 0xAA); - box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2); - box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents); - box_print(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2); + AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents); + AddTextPrinterParameterized3(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); fmt_savegame(); PutWindowTilemap(2); PutWindowTilemap(3); @@ -1839,8 +1839,8 @@ void fmt_savegame(void) void fmt_time(void) { StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPlayer); - box_print(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4); - box_print(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName); + AddTextPrinterParameterized3(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName); } void fmt_player(void) @@ -1849,11 +1849,11 @@ void fmt_player(void) u8* ptr; StringExpandPlaceholders(gStringVar4, gText_ContinueMenuTime); - box_print(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4); ptr = ConvertIntToDecimalStringN(str, gSaveBlock2Ptr->playTimeHours, 0, 3); *ptr = 0xF0; ConvertIntToDecimalStringN(ptr + 1, gSaveBlock2Ptr->playTimeMinutes, 2, 2); - box_print(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str); } void fmt_pokedex(void) @@ -1868,9 +1868,9 @@ void fmt_pokedex(void) else dexCount = GetHoennPokedexCount(1); StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPokedex); - box_print(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4); ConvertIntToDecimalStringN(str, dexCount, 0, 3); - box_print(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str); } } @@ -1886,9 +1886,9 @@ void fmt_badges(void) badgeCount++; } StringExpandPlaceholders(gStringVar4, gText_ContinueMenuBadges); - box_print(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4); ConvertIntToDecimalStringN(str, badgeCount, 2, 1); - box_print(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str); } void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset) diff --git a/src/menu.c b/src/menu.c index 8a4b4fce5..7c9c2f8a8 100644 --- a/src/menu.c +++ b/src/menu.c @@ -799,7 +799,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram) PutWindowTilemap(gUnknown_0203CDA0); FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF); width = GetStringWidth(0, string, 0); - box_print(gUnknown_0203CDA0, + AddTextPrinterParameterized3(gUnknown_0203CDA0, 0, 0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a2 - width, 1, @@ -835,7 +835,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo if (string2 != NULL) { width = GetStringWidth(0, string2, 0); - box_print(gUnknown_0203CDA0, + AddTextPrinterParameterized3(gUnknown_0203CDA0, 0, 0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a4 - width, 1, @@ -1925,7 +1925,7 @@ void sub_8199DF0(u32 bg, u8 a1, int a2, int a3) RequestDma3Fill(a1 << 24 | a1 << 16 | a1 << 8 | a1, addr + VRAM, a3 * temp, 1); } -void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str) +void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str) { struct TextSubPrinter printer; diff --git a/src/naming_screen.c b/src/naming_screen.c index f99d23bc3..35a05499b 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1515,7 +1515,7 @@ static void sub_80E49BC(void) StringCopy(genderSymbol, gText_FemaleSymbol); isFemale = TRUE; } - box_print(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol); + AddTextPrinterParameterized3(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol); } } @@ -1694,7 +1694,7 @@ static void sub_80E4DE4(u8 window, u8 a1) for (i = 0; i < 4; i++) { - box_print(window, 1, 0, i * 16 + 1, sUnkColors[a1], 0, gUnknown_0858C198[a1][i]); + AddTextPrinterParameterized3(window, 1, 0, i * 16 + 1, sUnkColors[a1], 0, gUnknown_0858C198[a1][i]); } PutWindowTilemap(window); @@ -1739,7 +1739,7 @@ static void sub_80E4EF0(void) const u8 color[3] = { 15, 1, 2 }; FillWindowPixelBuffer(gNamingScreenData->windows[4], 0xFF); - box_print(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack); + AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack); PutWindowTilemap(gNamingScreenData->windows[4]); CopyWindowToVram(gNamingScreenData->windows[4], 3); } diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 7c622c223..eae868134 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -627,12 +627,12 @@ void sub_80C7BE4(void) FillWindowPixelBuffer(windowId, 0x44); center = GetStringCenterAlignXOffset(1, boxName, 0x40); - box_print(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName); + AddTextPrinterParameterized3(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); + AddTextPrinterParameterized3(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); diff --git a/src/starter_choose.c b/src/starter_choose.c index c1e7eea40..5625b6184 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -301,10 +301,10 @@ static void CreateStarterPokemonLabel(u8 selection) FillWindowPixelBuffer(sStarterChooseWindowId, 0); width = GetStringCenterAlignXOffset(7, text, 0x68); - box_print(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text); + AddTextPrinterParameterized3(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text); width = GetStringCenterAlignXOffset(1, speciesName, 0x68); - box_print(sStarterChooseWindowId, 1, width, 0x11, gUnknown_085B1E0C, 0, speciesName); + AddTextPrinterParameterized3(sStarterChooseWindowId, 1, width, 0x11, gUnknown_085B1E0C, 0, speciesName); PutWindowTilemap(sStarterChooseWindowId); schedule_bg_copy_tilemap_to_vram(0); -- cgit v1.2.3 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: Bring labels for overworld.c over from pokeruby --- 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 | 267 ++++++++++++++++++++++---------------------- src/rom_8011DC0.c | 4 +- src/safari_zone.c | 4 +- src/scrcmd.c | 22 ++-- src/secret_base.c | 6 +- 12 files changed, 189 insertions(+), 190 deletions(-) (limited to 'src') diff --git a/src/decoration.c b/src/decoration.c index 4f9ad298d..e1def6d38 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 b54936db4..9a1e711c3 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 13de58aa4..ecda8578b 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 84852e6b5..14f99b426 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 8d1988686..019db9d0d 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 bf7c2a386..ea8206502 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 da5e91229..36c028ce8 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 d4425effc..683679218 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[] = -{ - { 0, 0}, - { 0, 1}, - { 0, -1}, - {-1, 0}, - { 1, 0}, - {-1, 1}, - { 1, 1}, - {-1, -1}, - { 1, -1}, +const struct UCoords32 gDirectionToVectors[] = +{ + { 0, 0}, // DIR_NONE + { 0, 1}, // DIR_SOUTH + { 0, -1}, // DIR_NORTH + {-1, 0}, // DIR_WEST + { 1, 0}, // DIR_EAST + {-1, 1}, // DIR_SOUTHWEST + { 1, 1}, // DIR_SOUTHEAST + {-1, -1}, // DIR_NORTHWEST + { 1, -1}, // DIR_NORTHEAST }; 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 b2bd2eb78..56c31f89f 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 01d72fa13..427a5ceb8 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 01d04704a..31a4ed35a 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 d357261fe..7fae50a81 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(); -- cgit v1.2.3 From f505ba1bc7b34c67d7b3b7aef01006def5947639 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Wed, 5 Sep 2018 01:13:17 +0000 Subject: Implemented gRegionMapSectionId_To_PopUpThemeIdMapping array to be dependent on Map Section ID enum rather than order dependent. --- src/map_name_popup.c | 130 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 104 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 578636d40..7906c74ef 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"); -- cgit v1.2.3 From 857ac33adb1ba3c189cf7b006d7da28df2291157 Mon Sep 17 00:00:00 2001 From: ultima-soul Date: Wed, 5 Sep 2018 17:25:44 +0000 Subject: Fixed a typo. --- src/map_name_popup.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 7906c74ef..0d22bd126 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"); -- cgit v1.2.3 From 75384546b51fa87fe4c3fe768fbe4e72149af8e7 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 5 Sep 2018 23:30:15 +0200 Subject: More factory decomp and documentation. --- src/battle_factory.c | 888 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 598 insertions(+), 290 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index 9cb773ea3..f7568055c 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -19,10 +19,14 @@ #include "pokemon_summary_screen.h" #include "sound.h" #include "pokedex.h" +#include "blend_palette.h" #include "trainer_pokemon_sprites.h" #include "constants/battle_frontier.h" #include "constants/songs.h" +// Select_ refers to the first Pokemon selection screen where you choose 3 Pokemon. +// Swap_ refers to the consecutive selection screen where you can keep your Pokemon or swap one with beaten trainer's. + #define MENU_SUMMARY 0 #define MENU_RENT 1 #define MENU_DESELECT 1 @@ -57,23 +61,19 @@ struct FactorySelectMonsStruct u8 selectingMonsState; bool8 fromSummaryScreen; u8 yesNoCursorPos; - u8 unk8; - u8 unk9; + u8 unused8; struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; - u32 unk294; - struct UnkFactoryStruct unk298; - u32 unk29C; + struct UnkFactoryStruct unk294[3]; u8 unk2A0; - u8 unk2A1; - u8 unk2A2; - u8 unk2A3; + u8 palBlendTaskId; + bool8 unk2A2; u16 unk2A4; - u16 unk2A6; - u16 unk2A8; - u16 unk2AA; + bool8 unk2A6; + u8 unk2A7; + u8 unk2A8; + u8 unk2A9; }; -extern struct FactorySelectMonsStruct *gUnknown_0300127C; extern u8 (*gUnknown_030062E8)(void); extern u8 gUnknown_0203CF20; @@ -81,42 +81,46 @@ extern const u16 gBattleFrontierHeldItems[]; extern const struct FacilityMon gBattleFrontierMons[]; extern const struct FacilityMon gSlateportBattleTentMons[]; extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; +extern const u8 gUnknown_085B18AC[]; extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot); // This file's functions. -void sub_819A514(void); -void sub_819C5D0(u16 mWin0H, u16 nWin0H, u16 mWin0V, u16 nWin0V); -void sub_819A9AC(void); -void sub_819AA18(void); -void sub_819BE34(void); -void PrintSelectMonString(void); -void PrintMonSpecies(void); -void PrintMonCategory(void); -void sub_819B9E8(void); -void PrintRentalPkmnString(void); -void CopySelectedMonsToPlayerParty(void); -void sub_819C4B4(void); -void sub_819B8D4(void); -void sub_819C568(void); -void sub_819B844(void); -void PrintSelectableMenuOptions(void); -void PrintSelectableYesNo(void); -void sub_819C69C(u8 taskId); -void Task_HandleSelectionScreenChooseMons(u8 taskId); -void Task_HandleSelectionScreenMenu(u8 taskId); -void CreateFrontierFactorySelectableMons(u8 firstMonId); -void CreateTentFactorySelectableMons(u8 firstMonId); -void SetBallSpritePaletteNum(u8 id); +static void CB2_InitSelectScreen(void); +static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V); +static void Select_InitMonsData(void); +static void Select_InitAllSprites(void); +static void Select_ShowCheckedMonSprite(void); +static void Select_PrintSelectMonString(void); +static void Select_PrintMonSpecies(void); +static void Select_PrintMonCategory(void); +static void Select_PrintRentalPkmnString(void); +static void Select_CopyMonsToPlayerParty(void); +static void sub_819C4B4(void); +static void Select_ShowYesNoOptions(void); +static void sub_819C568(void); +static void Select_ShowMenuOptions(void); +static void Select_PrintMenuOptions(void); +static void Select_PrintYesNoOptions(void); +static void Task_SelectBlendPalette(u8 taskId); +static void sub_819C1D0(u8 taskId); +static void Task_HandleSelectionScreenChooseMons(u8 taskId); +static void Task_HandleSelectionScreenMenu(u8 taskId); +static void CreateFrontierFactorySelectableMons(u8 firstMonId); +static void CreateTentFactorySelectableMons(u8 firstMonId); +static void Select_SetBallSpritePaletteNum(u8 id); void sub_819F444(struct UnkFactoryStruct arg0, u8 *arg1); -void sub_819B958(u8 windowId); +static void sub_819B958(u8 windowId); void sub_819F2B4(u8 *arg0, u8 *arg1, u8 arg2); void sub_819F3F8(struct UnkFactoryStruct arg0, u8 *arg1, u8 arg2); -u8 sub_819BC04(void); -u8 sub_819BC9C(void); +static u8 Select_RunMenuOptionFunc(void); +static u8 sub_819BC9C(void); +static u8 Select_OptionSummary(void); +static u8 Select_OptionOthers(void); +static u8 Select_OptionRentDeselect(void); u8 sub_81A6F70(u8 battleMode, u8 lvlMode); u8 sub_81A6CA8(u8 arg0, u8 arg1); -bool32 sub_819C634(u16 monSetId); +static bool32 Select_AreSpeciesValid(u16 monSetId); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -125,17 +129,68 @@ EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; +// IWRAM bss +static IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; + // Const rom data. +const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal"); +const u16 gUnknown_0860F15C[] = INCBIN_U16("graphics/unknown/unknown_60F15C.gbapal"); +const u16 gUnknown_0860F17C[] = INCBIN_U16("graphics/unknown/unknown_60F17C.gbapal"); +const u8 gUnknown_0860F1BC[] = INCBIN_U8("graphics/unknown/unknown_60F1BC.4bpp"); +const u8 gUnknown_0860F3BC[] = INCBIN_U8("graphics/unknown/unknown_60F3BC.4bpp"); +const u8 gUnknown_0860F43C[] = INCBIN_U8("graphics/unknown/unknown_60F43C.4bpp"); +const u8 gUnknown_0860F53C[] = INCBIN_U8("graphics/unknown/unknown_60F53C.4bpp"); +const u8 gUnknown_0860F63C[] = INCBIN_U8("graphics/unknown/unknown_60F63C.4bpp"); +const u8 gUnknown_0860F6BC[] = INCBIN_U8("graphics/unknown/unknown_60F6BC.4bpp"); +const u8 gUnknown_0860F7BC[] = INCBIN_U8("graphics/unknown/unknown_60F7BC.4bpp"); +const u8 gUnknown_0860F83C[] = INCBIN_U8("graphics/unknown/unknown_60F83C.4bpp"); +const u8 gUnknown_0860F93C[] = INCBIN_U8("graphics/unknown/unknown_60F93C.4bpp"); +const u8 gUnknown_0860FA3C[] = INCBIN_U8("graphics/unknown/unknown_60FA3C.4bpp"); +const u8 gUnknown_0861023C[] = INCBIN_U8("graphics/unknown/unknown_61023C.bin"); +const u8 gUnknown_0861033C[] = INCBIN_U8("graphics/unknown/unknown_61033C.4bpp"); +const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbapal"); + +const struct SpriteSheet gUnknown_086103BC[] = +{ + {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), 0x65}, + {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), 0x66}, + {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), 0x67}, + {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), 0x6D}, + {}, +}; + +const struct CompressedSpriteSheet gUnknown_086103E4[] = +{ + {gUnknown_085B18AC, 0x800, 0x64}, + {}, +}; + +const struct SpritePalette gUnknown_086103F4[] = +{ + {gUnknown_0860F13C, 0x64}, + {gUnknown_0860F15C, 0x65}, + {gUnknown_0860F17C, 0x66}, + {gUnknown_0861039C, 0x67}, + {}, +}; + +u8 (* const sSelect_MenuOptionFuncs[])(void) = +{ + [MENU_SUMMARY] = Select_OptionSummary, + [MENU_RENT] /*Or Deselect*/ = Select_OptionRentDeselect, + [MENU_OTHERS] = Select_OptionOthers +}; + extern const struct BgTemplate gUnknown_08610428[3]; extern const struct WindowTemplate gUnknown_08610434[]; -extern const u8 gUnknown_0861033C[]; -extern const u8 gUnknown_0861023C[]; extern const u16 gUnknown_0861046C[]; -extern const u16 gUnknown_0861039C[]; -extern const struct SpritePalette gUnknown_086103F4[]; -extern const struct SpriteSheet gUnknown_086103BC[]; -extern const struct CompressedSpriteSheet gUnknown_086103E4[]; extern const struct SpriteTemplate gUnknown_086105D8; +extern const struct SpriteTemplate gUnknown_086105F0; +extern const struct SpriteTemplate gUnknown_08610608; +extern const struct SpriteTemplate gUnknown_08610620; +extern const struct SpriteTemplate gUnknown_08610638; +extern const u8 gUnknown_08610479[]; +extern const u8 gUnknown_08610476[]; // gfx extern const u8 gFrontierFactorySelectMenu_Gfx[]; @@ -188,7 +243,7 @@ void sub_819A44C(struct Sprite *sprite) } } -void sub_819A4C8(void) +static void Select_CB2(void) { AnimateSprites(); BuildOamBuffer(); @@ -197,7 +252,7 @@ void sub_819A4C8(void) RunTasks(); } -void sub_819A4E4(void) +static void Select_VblankCb(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -206,11 +261,11 @@ void sub_819A4E4(void) void sub_819A4F8(void) { - gUnknown_0300127C = NULL; - SetMainCallback2(sub_819A514); + sFactorySelectScreen = NULL; + SetMainCallback2(CB2_InitSelectScreen); } -void sub_819A514(void) +static void CB2_InitSelectScreen(void) { u8 taskId; @@ -265,8 +320,8 @@ void sub_819A514(void) LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); LoadPalette(gUnknown_0861046C, 0xF0, 8); LoadPalette(gUnknown_0861046C, 0xE0, 10); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - gPlttBufferUnfaded[228] = gUnknown_0300127C->unk2A4; + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + gPlttBufferUnfaded[228] = sFactorySelectScreen->unk2A4; LoadPalette(gUnknown_0861039C, 0x20, 4); gMain.state++; break; @@ -284,12 +339,12 @@ void sub_819A514(void) LoadCompressedObjectPic(gUnknown_086103E4); ShowBg(0); ShowBg(1); - SetVBlankCallback(sub_819A4E4); + SetVBlankCallback(Select_VblankCb); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) + if (sFactorySelectScreen->fromSummaryScreen == TRUE) { - sub_819C5D0(88, 152, 32, 96); + Select_SetWinRegs(88, 152, 32, 96); ShowBg(3); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); @@ -301,67 +356,67 @@ void sub_819A514(void) gMain.state++; break; case 5: - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - gUnknown_0300127C->cursorPos = gUnknown_0203CF20; - sub_819A9AC(); - sub_819AA18(); - if (gUnknown_0300127C->fromSummaryScreen == TRUE) - sub_819BE34(); + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + sFactorySelectScreen->cursorPos = gUnknown_0203CF20; + Select_InitMonsData(); + Select_InitAllSprites(); + if (sFactorySelectScreen->fromSummaryScreen == TRUE) + Select_ShowCheckedMonSprite(); gMain.state++; break; case 6: - PrintSelectMonString(); + Select_PrintSelectMonString(); PutWindowTilemap(2); gMain.state++; break; case 7: - PrintMonCategory(); + Select_PrintMonCategory(); PutWindowTilemap(5); gMain.state++; break; case 8: - PrintMonSpecies(); + Select_PrintMonSpecies(); PutWindowTilemap(1); gMain.state++; break; case 9: - PrintRentalPkmnString(); + Select_PrintRentalPkmnString(); PutWindowTilemap(0); gMain.state++; break; case 10: - gUnknown_0300127C->unk2A1 = CreateTask(sub_819C69C, 0); - if (!gUnknown_0300127C->fromSummaryScreen) + sFactorySelectScreen->palBlendTaskId = CreateTask(Task_SelectBlendPalette, 0); + if (!sFactorySelectScreen->fromSummaryScreen) { - gTasks[gUnknown_0300127C->unk2A1].data[0] = 0; + gTasks[sFactorySelectScreen->palBlendTaskId].data[0] = 0; taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0); gTasks[taskId].data[0] = 0; } else { - gTasks[gUnknown_0300127C->unk2A1].data[0] = 1; - gUnknown_0300127C->unk2A2 = 0; + gTasks[sFactorySelectScreen->palBlendTaskId].data[0] = 1; + sFactorySelectScreen->unk2A2 = FALSE; taskId = CreateTask(Task_HandleSelectionScreenMenu, 0); gTasks[taskId].data[0] = 13; } - SetMainCallback2(sub_819A4C8); + SetMainCallback2(Select_CB2); break; } } -void sub_819A9AC(void) +static void Select_InitMonsData(void) { u8 i; - if (gUnknown_0300127C != NULL) + if (sFactorySelectScreen != NULL) return; - gUnknown_0300127C = AllocZeroed(sizeof(*gUnknown_0300127C)); - gUnknown_0300127C->cursorPos = 0; - gUnknown_0300127C->selectingMonsState = 1; - gUnknown_0300127C->fromSummaryScreen = FALSE; + sFactorySelectScreen = AllocZeroed(sizeof(*sFactorySelectScreen)); + sFactorySelectScreen->cursorPos = 0; + sFactorySelectScreen->selectingMonsState = 1; + sFactorySelectScreen->fromSummaryScreen = FALSE; for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - gUnknown_0300127C->mons[i].selectedId = 0; + sFactorySelectScreen->mons[i].selectedId = 0; if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT) CreateFrontierFactorySelectableMons(0); @@ -369,157 +424,153 @@ void sub_819A9AC(void) CreateTentFactorySelectableMons(0); } -extern const struct SpriteTemplate gUnknown_086105F0; -extern const struct SpriteTemplate gUnknown_08610608; -extern const struct SpriteTemplate gUnknown_08610620; - -void sub_819AA18(void) +static void Select_InitAllSprites(void) { u8 i, cursorPos; s16 x; for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - gUnknown_0300127C->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); - gSprites[gUnknown_0300127C->mons[i].spriteId].data[0] = 0; - SetBallSpritePaletteNum(i); + sFactorySelectScreen->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1); + gSprites[sFactorySelectScreen->mons[i].spriteId].data[0] = 0; + Select_SetBallSpritePaletteNum(i); } - cursorPos = gUnknown_0300127C->cursorPos; - x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; - gUnknown_0300127C->cursorSpriteId = CreateSprite(&gUnknown_086105F0, x, 88, 0); - gUnknown_0300127C->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0); - gUnknown_0300127C->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0); - - gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 1; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 1; - - gSprites[gUnknown_0300127C->menuCursor1SpriteId].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].centerToCornerVecY = 0; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].centerToCornerVecY = 0; + cursorPos = sFactorySelectScreen->cursorPos; + x = gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].pos1.x; + sFactorySelectScreen->cursorSpriteId = CreateSprite(&gUnknown_086105F0, x, 88, 0); + sFactorySelectScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0); + sFactorySelectScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0); + + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1; + + gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecY = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].centerToCornerVecY = 0; } -void sub_819AB40(void) +static void Select_DestroyAllSprites(void) { u8 i; for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - DestroySprite(&gSprites[gUnknown_0300127C->mons[i].spriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->mons[i].spriteId]); - DestroySprite(&gSprites[gUnknown_0300127C->cursorSpriteId]); - DestroySprite(&gSprites[gUnknown_0300127C->menuCursor1SpriteId]); - DestroySprite(&gSprites[gUnknown_0300127C->menuCursor2SpriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->cursorSpriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->menuCursor1SpriteId]); + DestroySprite(&gSprites[sFactorySelectScreen->menuCursor2SpriteId]); } -void UpdateBallCursorPosition(s8 direction) +static void Select_UpdateBallCursorPosition(s8 direction) { u8 cursorPos; if (direction > 0) // Move cursor right. { - if (gUnknown_0300127C->cursorPos != SELECTABLE_MONS_COUNT - 1) - gUnknown_0300127C->cursorPos++; + if (sFactorySelectScreen->cursorPos != SELECTABLE_MONS_COUNT - 1) + sFactorySelectScreen->cursorPos++; else - gUnknown_0300127C->cursorPos = 0; + sFactorySelectScreen->cursorPos = 0; } else // Move cursor left. { - if (gUnknown_0300127C->cursorPos != 0) - gUnknown_0300127C->cursorPos--; + if (sFactorySelectScreen->cursorPos != 0) + sFactorySelectScreen->cursorPos--; else - gUnknown_0300127C->cursorPos = SELECTABLE_MONS_COUNT - 1; + sFactorySelectScreen->cursorPos = SELECTABLE_MONS_COUNT - 1; } - cursorPos = gUnknown_0300127C->cursorPos; - gSprites[gUnknown_0300127C->cursorSpriteId].pos1.x = gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].pos1.x; + cursorPos = sFactorySelectScreen->cursorPos; + gSprites[sFactorySelectScreen->cursorSpriteId].pos1.x = gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].pos1.x; } -void UpdateMenuCursorPosition(s8 direction) +static void Select_UpdateMenuCursorPosition(s8 direction) { if (direction > 0) // Move cursor down. { - if (gUnknown_0300127C->menuCursorPos != MENU_OPTIONS_COUNT - 1) - gUnknown_0300127C->menuCursorPos++; + if (sFactorySelectScreen->menuCursorPos != MENU_OPTIONS_COUNT - 1) + sFactorySelectScreen->menuCursorPos++; else - gUnknown_0300127C->menuCursorPos = 0; + sFactorySelectScreen->menuCursorPos = 0; } else // Move cursor up. { - if (gUnknown_0300127C->menuCursorPos != 0) - gUnknown_0300127C->menuCursorPos--; + if (sFactorySelectScreen->menuCursorPos != 0) + sFactorySelectScreen->menuCursorPos--; else - gUnknown_0300127C->menuCursorPos = MENU_OPTIONS_COUNT - 1; + sFactorySelectScreen->menuCursorPos = MENU_OPTIONS_COUNT - 1; } - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; } -void UpdateYesNoCursorPosition(s8 direction) +static void Select_UpdateYesNoCursorPosition(s8 direction) { if (direction > 0) // Move cursor down. { - if (gUnknown_0300127C->yesNoCursorPos != 1) - gUnknown_0300127C->yesNoCursorPos++; + if (sFactorySelectScreen->yesNoCursorPos != 1) + sFactorySelectScreen->yesNoCursorPos++; else - gUnknown_0300127C->yesNoCursorPos = 0; + sFactorySelectScreen->yesNoCursorPos = 0; } else // Move cursor up. { - if (gUnknown_0300127C->yesNoCursorPos != 0) - gUnknown_0300127C->yesNoCursorPos--; + if (sFactorySelectScreen->yesNoCursorPos != 0) + sFactorySelectScreen->yesNoCursorPos--; else - gUnknown_0300127C->yesNoCursorPos = 1; + sFactorySelectScreen->yesNoCursorPos = 1; } - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->yesNoCursorPos * 16) + 112; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->yesNoCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112; } -void HandleMonSelectionChange(void) +static void Select_HandleMonSelectionChange(void) { u8 i, paletteNum; - u8 cursorPos = gUnknown_0300127C->cursorPos; - if (gUnknown_0300127C->mons[cursorPos].selectedId) // Deselect a mon. + u8 cursorPos = sFactorySelectScreen->cursorPos; + if (sFactorySelectScreen->mons[cursorPos].selectedId) // Deselect a mon. { paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); - if (gUnknown_0300127C->selectingMonsState == 3 && gUnknown_0300127C->mons[cursorPos].selectedId == 1) + if (sFactorySelectScreen->selectingMonsState == 3 && sFactorySelectScreen->mons[cursorPos].selectedId == 1) { for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { - if (gUnknown_0300127C->mons[i].selectedId == 2) + if (sFactorySelectScreen->mons[i].selectedId == 2) break; } if (i == SELECTABLE_MONS_COUNT) return; else - gUnknown_0300127C->mons[i].selectedId = 1; + sFactorySelectScreen->mons[i].selectedId = 1; } - gUnknown_0300127C->mons[cursorPos].selectedId = 0; - gUnknown_0300127C->selectingMonsState--; + sFactorySelectScreen->mons[cursorPos].selectedId = 0; + sFactorySelectScreen->selectingMonsState--; } else // Select a mon. { paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); - gUnknown_0300127C->mons[cursorPos].selectedId = gUnknown_0300127C->selectingMonsState; - gUnknown_0300127C->selectingMonsState++; + sFactorySelectScreen->mons[cursorPos].selectedId = sFactorySelectScreen->selectingMonsState; + sFactorySelectScreen->selectingMonsState++; } - gSprites[gUnknown_0300127C->mons[cursorPos].spriteId].oam.paletteNum = paletteNum; + gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].oam.paletteNum = paletteNum; } -void SetBallSpritePaletteNum(u8 id) +static void Select_SetBallSpritePaletteNum(u8 id) { u8 palNum; - if (gUnknown_0300127C->mons[id].selectedId) + if (sFactorySelectScreen->mons[id].selectedId) palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); else palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); - gSprites[gUnknown_0300127C->mons[id].spriteId].oam.paletteNum = palNum; + gSprites[sFactorySelectScreen->mons[id].spriteId].oam.paletteNum = palNum; } -void Task_FromSelectScreenToSummaryScreen(u8 taskId) +static void Task_FromSelectScreenToSummaryScreen(u8 taskId) { u8 i; u8 currMonId; @@ -534,9 +585,9 @@ void Task_FromSelectScreenToSummaryScreen(u8 taskId) case 7: if (!gPaletteFade.active) { - DestroyTask(gUnknown_0300127C->unk2A1); - sub_819F444(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0); - sub_819AB40(); + DestroyTask(sFactorySelectScreen->palBlendTaskId); + sub_819F444(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0); + Select_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE2C); FREE_AND_SET_NULL(gUnknown_0203CE30); FREE_AND_SET_NULL(gUnknown_0203CE34); @@ -546,21 +597,21 @@ void Task_FromSelectScreenToSummaryScreen(u8 taskId) } break; case 8: - gUnknown_0300127C->unk2A4 = gPlttBufferUnfaded[228]; + sFactorySelectScreen->unk2A4 = gPlttBufferUnfaded[228]; DestroyTask(taskId); - gUnknown_0300127C->fromSummaryScreen = TRUE; - currMonId = gUnknown_0300127C->cursorPos; + sFactorySelectScreen->fromSummaryScreen = TRUE; + currMonId = sFactorySelectScreen->cursorPos; sFactorySelectMons = AllocZeroed(sizeof(struct Pokemon) * SELECTABLE_MONS_COUNT); for (i = 0; i < SELECTABLE_MONS_COUNT; i++) - sFactorySelectMons[i] = gUnknown_0300127C->mons[i].monData; - ShowPokemonSummaryScreen(1, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, sub_819A514); + sFactorySelectMons[i] = sFactorySelectScreen->mons[i].monData; + ShowPokemonSummaryScreen(1, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, CB2_InitSelectScreen); break; } } -void Task_CloseSelectionScreen(u8 taskId) +static void Task_CloseSelectionScreen(u8 taskId) { - if (gUnknown_0300127C->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != 1) { switch (gTasks[taskId].data[0]) { @@ -571,13 +622,13 @@ void Task_CloseSelectionScreen(u8 taskId) case 1: if (!UpdatePaletteFade()) { - CopySelectedMonsToPlayerParty(); - DestroyTask(gUnknown_0300127C->unk2A1); - sub_819AB40(); + Select_CopyMonsToPlayerParty(); + DestroyTask(sFactorySelectScreen->palBlendTaskId); + Select_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE2C); FREE_AND_SET_NULL(gUnknown_0203CE34); FREE_AND_SET_NULL(gUnknown_0203CE38); - FREE_AND_SET_NULL(gUnknown_0300127C); + FREE_AND_SET_NULL(sFactorySelectScreen); FreeAllWindowBuffers(); SetMainCallback2(CB2_ReturnToFieldContinueScript); DestroyTask(taskId); @@ -587,9 +638,9 @@ void Task_CloseSelectionScreen(u8 taskId) } } -void Task_HandleSelectionScreenYesNo(u8 taskId) +static void Task_HandleSelectionScreenYesNo(u8 taskId) { - if (gUnknown_0300127C->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != 1) { switch (gTasks[taskId].data[0]) { @@ -598,14 +649,14 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) gTasks[taskId].data[0] = 4; break; case 4: - sub_819B8D4(); + Select_ShowYesNoOptions(); gTasks[taskId].data[0] = 5; break; case 5: if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - if (gUnknown_0300127C->yesNoCursorPos == 0) + if (sFactorySelectScreen->yesNoCursorPos == 0) { sub_819C568(); gTasks[taskId].data[0] = 0; @@ -615,7 +666,7 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) { sub_819B958(4); sub_819BC9C(); - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } @@ -625,39 +676,39 @@ void Task_HandleSelectionScreenYesNo(u8 taskId) PlaySE(SE_SELECT); sub_819B958(4); sub_819BC9C(); - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } else if (gMain.newAndRepeatedKeys & DPAD_UP) { PlaySE(SE_SELECT); - UpdateYesNoCursorPosition(-1); + Select_UpdateYesNoCursorPosition(-1); } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { PlaySE(SE_SELECT); - UpdateYesNoCursorPosition(1); + Select_UpdateYesNoCursorPosition(1); } break; } } } -void Task_HandleSelectionScreenMenu(u8 taskId) +static void Task_HandleSelectionScreenMenu(u8 taskId) { switch (gTasks[taskId].data[0]) { case 2: - if (!gUnknown_0300127C->fromSummaryScreen) - sub_819F2B4(&gUnknown_0300127C->unk298.field1, &gUnknown_0300127C->unk2A0, 0); + if (!sFactorySelectScreen->fromSummaryScreen) + sub_819F2B4(&sFactorySelectScreen->unk294[1].field1, &sFactorySelectScreen->unk2A0, 0); gTasks[taskId].data[0] = 9; break; case 9: - if (gUnknown_0300127C->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != 1) { - sub_819B844(); - gUnknown_0300127C->fromSummaryScreen = FALSE; + Select_ShowMenuOptions(); + sFactorySelectScreen->fromSummaryScreen = FALSE; gTasks[taskId].data[0] = 3; } break; @@ -666,10 +717,10 @@ void Task_HandleSelectionScreenMenu(u8 taskId) { u8 retVal; PlaySE(SE_SELECT); - retVal = sub_819BC04(); + retVal = Select_RunMenuOptionFunc(); if (retVal == 1) { - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } @@ -692,45 +743,45 @@ void Task_HandleSelectionScreenMenu(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); sub_819B958(3); - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; gTasks[taskId].func = Task_HandleSelectionScreenChooseMons; } else if (gMain.newAndRepeatedKeys & DPAD_UP) { PlaySE(SE_SELECT); - UpdateMenuCursorPosition(-1); + Select_UpdateMenuCursorPosition(-1); } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { PlaySE(SE_SELECT); - UpdateMenuCursorPosition(1); + Select_UpdateMenuCursorPosition(1); } break; case 12: if (!gPaletteFade.active) { - if (gUnknown_0300127C->fromSummaryScreen == TRUE) + if (sFactorySelectScreen->fromSummaryScreen == TRUE) { - gPlttBufferFaded[228] = gUnknown_0300127C->unk2A4; + gPlttBufferFaded[228] = sFactorySelectScreen->unk2A4; gPlttBufferUnfaded[228] = gPlttBufferUnfaded[244]; } - gUnknown_0300127C->fromSummaryScreen = FALSE; + sFactorySelectScreen->fromSummaryScreen = FALSE; gTasks[taskId].data[0] = 3; } break; case 13: - sub_819B844(); + Select_ShowMenuOptions(); gTasks[taskId].data[0] = 12; break; } } -void Task_HandleSelectionScreenChooseMons(u8 taskId) +static void Task_HandleSelectionScreenChooseMons(u8 taskId) { - if (gUnknown_0300127C->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != 1) { switch (gTasks[taskId].data[0]) { @@ -738,39 +789,39 @@ void Task_HandleSelectionScreenChooseMons(u8 taskId) if (!gPaletteFade.active) { gTasks[taskId].data[0] = 1; - gUnknown_0300127C->unk2A2 = 1; + sFactorySelectScreen->unk2A2 = TRUE; } break; case 1: if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - gUnknown_0300127C->unk2A2 = 0; + sFactorySelectScreen->unk2A2 = FALSE; gTasks[taskId].data[0] = 2; gTasks[taskId].func = Task_HandleSelectionScreenMenu; } else if (gMain.newAndRepeatedKeys & DPAD_LEFT) { PlaySE(SE_SELECT); - UpdateBallCursorPosition(-1); - PrintMonCategory(); - PrintMonSpecies(); + Select_UpdateBallCursorPosition(-1); + Select_PrintMonCategory(); + Select_PrintMonSpecies(); } else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) { PlaySE(SE_SELECT); - UpdateBallCursorPosition(1); - PrintMonCategory(); - PrintMonSpecies(); + Select_UpdateBallCursorPosition(1); + Select_PrintMonCategory(); + Select_PrintMonSpecies(); } break; case 11: if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); - PrintSelectMonString(); - gUnknown_0300127C->unk2A2 = 1; + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + Select_PrintSelectMonString(); + sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; } break; @@ -778,7 +829,7 @@ void Task_HandleSelectionScreenChooseMons(u8 taskId) } } -void CreateFrontierFactorySelectableMons(u8 firstMonId) +static void CreateFrontierFactorySelectableMons(u8 firstMonId) { u8 i, j = 0; u8 ivs = 0; @@ -802,12 +853,12 @@ void CreateFrontierFactorySelectableMons(u8 firstMonId) for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; - gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId; + sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId; if (i < var_28) ivs = sub_81A6CA8(var_2C + 1, 0); else ivs = sub_81A6CA8(var_2C, 0); - CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData, + CreateMonWithEVSpreadPersonalityOTID(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].species, level, gFacilityTrainerMons[monSetId].nature, @@ -816,13 +867,13 @@ void CreateFrontierFactorySelectableMons(u8 firstMonId) otId); happiness = 0; for (j = 0; j < 4; j++) - SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); - SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); - SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + SetMonMoveAvoidReturn(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); } } -void CreateTentFactorySelectableMons(u8 firstMonId) +static void CreateTentFactorySelectableMons(u8 firstMonId) { u8 i, j; u8 ivs = 0; @@ -836,8 +887,8 @@ void CreateTentFactorySelectableMons(u8 firstMonId) for (i = 0; i < SELECTABLE_MONS_COUNT; i++) { u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId; - gUnknown_0300127C->mons[i + firstMonId].monSetId = monSetId; - CreateMonWithEVSpreadPersonalityOTID(&gUnknown_0300127C->mons[i + firstMonId].monData, + sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId; + CreateMonWithEVSpreadPersonalityOTID(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].species, level, gFacilityTrainerMons[monSetId].nature, @@ -846,13 +897,13 @@ void CreateTentFactorySelectableMons(u8 firstMonId) otId); happiness = 0; for (j = 0; j < 4; j++) - SetMonMoveAvoidReturn(&gUnknown_0300127C->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); - SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); - SetMonData(&gUnknown_0300127C->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); + SetMonMoveAvoidReturn(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]); } } -void CopySelectedMonsToPlayerParty(void) +static void Select_CopyMonsToPlayerParty(void) { u8 i, j; @@ -860,10 +911,10 @@ void CopySelectedMonsToPlayerParty(void) { for (j = 0; j < SELECTABLE_MONS_COUNT; j++) { - if (gUnknown_0300127C->mons[j].selectedId == i + 1) + if (sFactorySelectScreen->mons[j].selectedId == i + 1) { - gPlayerParty[i] = gUnknown_0300127C->mons[j].monData; - gSaveBlock2Ptr->frontier.field_E70[i].monId = gUnknown_0300127C->mons[j].monSetId; + gPlayerParty[i] = sFactorySelectScreen->mons[j].monData; + gSaveBlock2Ptr->frontier.field_E70[i].monId = sFactorySelectScreen->mons[j].monSetId; gSaveBlock2Ptr->frontier.field_E70[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL); gSaveBlock2Ptr->frontier.field_E70[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL); gSaveBlock2Ptr->frontier.field_E70[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL); @@ -874,80 +925,77 @@ void CopySelectedMonsToPlayerParty(void) CalculatePlayerPartyCount(); } -void sub_819B844(void) +static void Select_ShowMenuOptions(void) { - if (!gUnknown_0300127C->fromSummaryScreen) - gUnknown_0300127C->menuCursorPos = 0; + if (!sFactorySelectScreen->fromSummaryScreen) + sFactorySelectScreen->menuCursorPos = 0; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = (gUnknown_0300127C->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.x = 176; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0; - PrintSelectableMenuOptions(); + Select_PrintMenuOptions(); } -void sub_819B8D4(void) +static void Select_ShowYesNoOptions(void) { - gUnknown_0300127C->yesNoCursorPos = 0; + sFactorySelectScreen->yesNoCursorPos = 0; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.x = 176; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].pos1.y = 112; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.x = 208; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].pos1.y = 112; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.x = 176; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = 112; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = 112; - gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 0; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0; - PrintSelectableYesNo(); + Select_PrintYesNoOptions(); } -void sub_819B958(u8 windowId) +static void sub_819B958(u8 windowId) { - gSprites[gUnknown_0300127C->menuCursor1SpriteId].invisible = 1; - gSprites[gUnknown_0300127C->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1; FillWindowPixelBuffer(windowId, 0); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); } -void PrintRentalPkmnString(void) +static void Select_PrintRentalPkmnString(void) { FillWindowPixelBuffer(0, 0); PrintTextOnWindow(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } -extern const u8 gUnknown_08610479[]; -extern const u8 gUnknown_08610476[]; - -void PrintMonSpecies(void) +static void Select_PrintMonSpecies(void) { u16 species; u8 x; - u8 monId = gUnknown_0300127C->cursorPos; + u8 monId = sFactorySelectScreen->cursorPos; FillWindowPixelBuffer(1, 0); - species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL); + species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); StringCopy(gStringVar4, gSpeciesNames[species]); x = GetStringRightAlignXOffset(1, gStringVar4, 86); AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610479, 0, gStringVar4); CopyWindowToVram(1, 2); } -void PrintSelectMonString(void) +static void Select_PrintSelectMonString(void) { const u8 *str = NULL; FillWindowPixelBuffer(2, 0); - if (gUnknown_0300127C->selectingMonsState == 1) + if (sFactorySelectScreen->selectingMonsState == 1) str = gText_SelectFirstPkmn; - else if (gUnknown_0300127C->selectingMonsState == 2) + else if (sFactorySelectScreen->selectingMonsState == 2) str = gText_SelectSecondPkmn; - else if (gUnknown_0300127C->selectingMonsState == 3) + else if (sFactorySelectScreen->selectingMonsState == 3) str = gText_SelectThirdPkmn; else str = gText_TheseThreePkmnOkay; @@ -956,16 +1004,16 @@ void PrintSelectMonString(void) CopyWindowToVram(2, 2); } -void PrintCantSelectSameMon(void) +static void Select_PrintCantSelectSameMon(void) { FillWindowPixelBuffer(2, 0); PrintTextOnWindow(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } -void PrintSelectableMenuOptions(void) +static void Select_PrintMenuOptions(void) { - u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId; + u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId; PutWindowTilemap(3); FillWindowPixelBuffer(3, 0); @@ -979,7 +1027,7 @@ void PrintSelectableMenuOptions(void) CopyWindowToVram(3, 3); } -void PrintSelectableYesNo(void) +static void Select_PrintYesNoOptions(void) { PutWindowTilemap(4); FillWindowPixelBuffer(4, 0); @@ -988,72 +1036,70 @@ void PrintSelectableYesNo(void) CopyWindowToVram(4, 3); } -extern u8 (* const gUnknown_0861041C[])(void); - -u8 sub_819BC04(void) +static u8 Select_RunMenuOptionFunc(void) { - gUnknown_030062E8 = gUnknown_0861041C[gUnknown_0300127C->menuCursorPos]; + gUnknown_030062E8 = sSelect_MenuOptionFuncs[sFactorySelectScreen->menuCursorPos]; return gUnknown_030062E8(); } -u8 sub_819BC30(void) +static u8 Select_OptionRentDeselect(void) { - u8 selectedId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].selectedId; - u16 monSetId = gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monSetId; - if (selectedId == 0 && !sub_819C634(monSetId)) + u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId; + u16 monSetId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].monSetId; + if (selectedId == 0 && !Select_AreSpeciesValid(monSetId)) { - PrintCantSelectSameMon(); + Select_PrintCantSelectSameMon(); sub_819B958(3); return 3; } else { - sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); - HandleMonSelectionChange(); - PrintSelectMonString(); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + Select_HandleMonSelectionChange(); + Select_PrintSelectMonString(); sub_819B958(3); - if (gUnknown_0300127C->selectingMonsState > 3) + if (sFactorySelectScreen->selectingMonsState > 3) return 2; else return 1; } } -u8 sub_819BC9C(void) +static u8 sub_819BC9C(void) { sub_819C568(); - HandleMonSelectionChange(); - PrintSelectMonString(); + Select_HandleMonSelectionChange(); + Select_PrintSelectMonString(); sub_819B958(3); - if (gUnknown_0300127C->selectingMonsState > 3) + if (sFactorySelectScreen->selectingMonsState > 3) return 2; else return 1; } -u8 sub_819BCCC(void) +static u8 Select_OptionSummary(void) { return 0; } -u8 sub_819BCD0(void) +static u8 Select_OptionOthers(void) { - sub_819F3F8(gUnknown_0300127C->unk298, &gUnknown_0300127C->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); sub_819B958(3); return 1; } -void PrintMonCategory(void) +static void Select_PrintMonCategory(void) { u16 species; u8 text[30]; u8 x; - u8 monId = gUnknown_0300127C->cursorPos; + u8 monId = sFactorySelectScreen->cursorPos; if (monId < SELECTABLE_MONS_COUNT) { PutWindowTilemap(5); FillWindowPixelBuffer(5, 0); - species = GetMonData(&gUnknown_0300127C->mons[monId].monData, MON_DATA_SPECIES, NULL); + species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); x = GetStringRightAlignXOffset(1, text, 0x76); PrintTextOnWindow(5, 1, text, x, 1, 0, NULL); @@ -1063,43 +1109,305 @@ void PrintMonCategory(void) void sub_819BD70(void) { - u8 monId = gUnknown_0300127C->cursorPos; - struct Pokemon *mon = &gUnknown_0300127C->mons[monId].monData; + u8 monId = sFactorySelectScreen->cursorPos; + struct Pokemon *mon = &sFactorySelectScreen->mons[monId].monData; u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL); - gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); - gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0; + sFactorySelectScreen->unk294[1].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; - gUnknown_0300127C->unk2A0 = 0; + sFactorySelectScreen->unk2A0 = 0; } -extern const struct SpriteTemplate gUnknown_08610638; - void sub_819BE20(u8 arg0) { - gUnknown_0300127C->unk2A0 = arg0; + sFactorySelectScreen->unk2A0 = arg0; } -void sub_819BE34(void) +static void Select_ShowCheckedMonSprite(void) { struct Pokemon *mon; u16 species; u32 personality, otId; - gUnknown_0300127C->unk298.field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); - StartSpriteAffineAnim(&gSprites[gUnknown_0300127C->unk298.field1], 2); + sFactorySelectScreen->unk294[1].field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 2); - mon = &gUnknown_0300127C->mons[gUnknown_0300127C->cursorPos].monData; + mon = &sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].monData; species = GetMonData(mon, MON_DATA_SPECIES, NULL); personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); otId = GetMonData(mon, MON_DATA_OT_ID, NULL); - gUnknown_0300127C->unk298.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); - gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecX = 0; - gSprites[gUnknown_0300127C->unk298.field0].centerToCornerVecY = 0; + sFactorySelectScreen->unk294[1].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; + + gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 1; +} + +static void Select_ShowChosenMonsSprites(void) +{ + u8 i, j; + + for (i = 0; i < 3; i++) + { + for (j = 0; j < SELECTABLE_MONS_COUNT; j++) + { + if (sFactorySelectScreen->mons[j].selectedId == i + 1) + { + struct Pokemon *mon = &sFactorySelectScreen->mons[j].monData; + u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + sFactorySelectScreen->unk294[i].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, (i * 72) + 16, 32, i + 13, 0xFFFF); + gSprites[sFactorySelectScreen->unk294[i].field0].centerToCornerVecX = 0; + gSprites[sFactorySelectScreen->unk294[i].field0].centerToCornerVecY = 0; + break; + } + } + } + sFactorySelectScreen->unk2A0 = 0; +} + +static void sub_819C040(struct Sprite *sprite) +{ + u8 taskId; + + if (sprite->affineAnimEnded + && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded + && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded) + { + sprite->invisible = 1; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 1; + gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 1; + + taskId = CreateTask(sub_819C1D0, 1); + gTasks[taskId].func(taskId); + + sprite->callback = SpriteCallbackDummy; + } +} + +static void sub_819C100(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded + && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded + && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded) + { + FreeOamMatrix(sprite->oam.matrixNum); + FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[0].field1].oam.matrixNum); + FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[2].field1].oam.matrixNum); + + sFactorySelectScreen->unk2A0 = 0; + + DestroySprite(&gSprites[sFactorySelectScreen->unk294[0].field1]); + DestroySprite(&gSprites[sFactorySelectScreen->unk294[2].field1]); + DestroySprite(sprite); + } +} + +static void sub_819C1D0(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + task->data[3] = 16; + task->data[24] = 224; // BUG: writing outside the array's bounds. + task->data[5] = 64; + task->data[8] = 65; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + break; + case 1: + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + break; + case 2: + task->data[5] -= 4; + task->data[8] += 4; + if (task->data[5] <= 32 || task->data[8] >= 96) + { + task->data[5] = 32; + task->data[8] = 96; + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + } + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + if (task->data[5] != 32) + return; + break; + default: + DestroyTask(taskId); + Select_ShowChosenMonsSprites(); + return; + } + task->data[0]++; +} + +static void sub_819C2D4(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[0]) + { + default: + HideBg(3); + gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C100; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; + gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[0].field1], 1); + StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[2].field1], 1); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + DestroyTask(taskId); + break; + case 0: + task->data[3] = 16; + task->data[24] = 224; // BUG: writing outside the array's bounds. + task->data[5] = 32; + task->data[8] = 96; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + task->data[0]++; + break; + case 1: + task->data[5] += 4; + task->data[8] -= 4; + if (task->data[5] >= 64 || task->data[8] <= 65) + { + task->data[5] = 64; + task->data[8] = 65; + } + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + if (task->data[5] == 64) + task->data[0]++; + break; + } +} + +static void sub_819C4B4(void) +{ + sFactorySelectScreen->unk294[1].field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1); + sFactorySelectScreen->unk294[0].field1 = CreateSprite(&gUnknown_08610638, 44, 64, 1); + sFactorySelectScreen->unk294[2].field1 = CreateSprite(&gUnknown_08610638, 196, 64, 1); + + gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C040; + gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; + gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; + + sFactorySelectScreen->unk2A0 = 1; +} + +static void sub_819C568(void) +{ + u8 taskId; + + FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[0].field0); + FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[1].field0); + FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[2].field0); + + taskId = CreateTask(sub_819C2D4, 1); + gTasks[taskId].func(taskId); + + sFactorySelectScreen->unk2A0 = 1; +} + +static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V) +{ + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(mWin0H, nWin0H)); + SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(mWin0V, nWin0V)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); +} + +static bool32 Select_AreSpeciesValid(u16 monSetId) +{ + u8 i, j; + u32 species = gFacilityTrainerMons[monSetId].species; + u8 selectState = sFactorySelectScreen->selectingMonsState; + + for (i = 1; i < selectState; i++) + { + for (j = 0; j < SELECTABLE_MONS_COUNT; j++) + { + if (sFactorySelectScreen->mons[j].selectedId == i) + { + if (gFacilityTrainerMons[sFactorySelectScreen->mons[j].monSetId].species == species) + return FALSE; - gSprites[gUnknown_0300127C->unk298.field1].invisible = 1; + break; + } + } + } + + return TRUE; +} + +static void Task_SelectBlendPalette(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + sFactorySelectScreen->unk2A7 = 0; + sFactorySelectScreen->unk2A8 = 0; + sFactorySelectScreen->unk2A6 = TRUE; + gTasks[taskId].data[0] = 1; + break; + case 1: + if (sFactorySelectScreen->unk2A2) + { + if (sFactorySelectScreen->unk2A9) + { + gTasks[taskId].data[0] = 2; + } + else + { + sFactorySelectScreen->unk2A7++; + if (sFactorySelectScreen->unk2A7 > 6) + { + sFactorySelectScreen->unk2A7 = 0; + if (!sFactorySelectScreen->unk2A6) + sFactorySelectScreen->unk2A8--; + else + sFactorySelectScreen->unk2A8++; + } + BlendPalettes(0x4000, sFactorySelectScreen->unk2A8, 0); + if (sFactorySelectScreen->unk2A8 > 5) + { + sFactorySelectScreen->unk2A6 = FALSE; + } + else if (sFactorySelectScreen->unk2A8 == 0) + { + gTasks[taskId].data[0] = 2; + sFactorySelectScreen->unk2A6 = TRUE; + } + } + } + break; + case 2: + if (sFactorySelectScreen->unk2A9 > 14) + { + sFactorySelectScreen->unk2A9 = 0; + gTasks[taskId].data[0] = 1; + } + else + { + sFactorySelectScreen->unk2A9++; + } + break; + } } -- cgit v1.2.3 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: Move graphics to src/data/graphics --- src/anim_mon_front_pics.c | 424 +++++ src/data/graphics/battle_terrain.h | 88 + src/data/graphics/berries.h | 95 + src/data/graphics/berry_fix.h | 23 + src/data/graphics/decorations.h | 125 ++ src/data/graphics/interface_pokeballs.h | 37 + src/data/graphics/intro_scene.h | 48 + src/data/graphics/items.h | 738 ++++++++ src/data/graphics/mail.h | 38 + src/data/graphics/pokemon.h | 2823 +++++++++++++++++++++++++++++ src/data/graphics/potential incbin arrays | 9 + src/data/graphics/rayquaza_scene.h | 73 + src/data/graphics/slot_machine.h | 60 + src/data/graphics/trainers.h | 290 +++ src/graphics.c | 39 +- src/graphics/battle_terrain.h | 88 - src/graphics/berries.h | 95 - src/graphics/berry_fix.h | 23 - src/graphics/decorations.h | 125 -- src/graphics/interface_pokeballs.h | 37 - src/graphics/intro_scene.h | 48 - src/graphics/items.h | 738 -------- src/graphics/mail.h | 38 - src/graphics/pokemon.h | 2823 ----------------------------- src/graphics/rayquaza_scene.h | 73 - src/graphics/slot_machine.h | 60 - src/graphics/trainers.h | 290 --- 27 files changed, 4890 insertions(+), 4458 deletions(-) create mode 100644 src/anim_mon_front_pics.c create mode 100644 src/data/graphics/battle_terrain.h create mode 100644 src/data/graphics/berries.h create mode 100644 src/data/graphics/berry_fix.h create mode 100644 src/data/graphics/decorations.h create mode 100644 src/data/graphics/interface_pokeballs.h create mode 100644 src/data/graphics/intro_scene.h create mode 100644 src/data/graphics/items.h create mode 100644 src/data/graphics/mail.h create mode 100644 src/data/graphics/pokemon.h create mode 100644 src/data/graphics/potential incbin arrays create mode 100644 src/data/graphics/rayquaza_scene.h create mode 100644 src/data/graphics/slot_machine.h create mode 100644 src/data/graphics/trainers.h delete mode 100644 src/graphics/battle_terrain.h delete mode 100644 src/graphics/berries.h delete mode 100644 src/graphics/berry_fix.h delete mode 100644 src/graphics/decorations.h delete mode 100644 src/graphics/interface_pokeballs.h delete mode 100644 src/graphics/intro_scene.h delete mode 100644 src/graphics/items.h delete mode 100644 src/graphics/mail.h delete mode 100644 src/graphics/pokemon.h delete mode 100644 src/graphics/rayquaza_scene.h delete mode 100644 src/graphics/slot_machine.h delete mode 100644 src/graphics/trainers.h (limited to 'src') diff --git a/src/anim_mon_front_pics.c b/src/anim_mon_front_pics.c new file mode 100644 index 000000000..b30889a35 --- /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/data/graphics/battle_terrain.h b/src/data/graphics/battle_terrain.h new file mode 100644 index 000000000..4ff9883fe --- /dev/null +++ b/src/data/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/data/graphics/berries.h b/src/data/graphics/berries.h new file mode 100644 index 000000000..d843a4f80 --- /dev/null +++ b/src/data/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/data/graphics/berry_fix.h b/src/data/graphics/berry_fix.h new file mode 100644 index 000000000..4012ab5a3 --- /dev/null +++ b/src/data/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/data/graphics/decorations.h b/src/data/graphics/decorations.h new file mode 100644 index 000000000..574ee50b6 --- /dev/null +++ b/src/data/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/data/graphics/interface_pokeballs.h b/src/data/graphics/interface_pokeballs.h new file mode 100644 index 000000000..db91283ae --- /dev/null +++ b/src/data/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/data/graphics/intro_scene.h b/src/data/graphics/intro_scene.h new file mode 100644 index 000000000..9c049ffb2 --- /dev/null +++ b/src/data/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/data/graphics/items.h b/src/data/graphics/items.h new file mode 100644 index 000000000..299e519ca --- /dev/null +++ b/src/data/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/data/graphics/mail.h b/src/data/graphics/mail.h new file mode 100644 index 000000000..53497347a --- /dev/null +++ b/src/data/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/data/graphics/pokemon.h b/src/data/graphics/pokemon.h new file mode 100644 index 000000000..2c0345f59 --- /dev/null +++ b/src/data/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/data/graphics/potential incbin arrays b/src/data/graphics/potential incbin arrays new file mode 100644 index 000000000..f76354fb6 --- /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/data/graphics/rayquaza_scene.h b/src/data/graphics/rayquaza_scene.h new file mode 100644 index 000000000..928a4f6f0 --- /dev/null +++ b/src/data/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/data/graphics/slot_machine.h b/src/data/graphics/slot_machine.h new file mode 100644 index 000000000..f673874e3 --- /dev/null +++ b/src/data/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"); diff --git a/src/data/graphics/trainers.h b/src/data/graphics/trainers.h new file mode 100644 index 000000000..98a5471ef --- /dev/null +++ b/src/data/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"); diff --git a/src/graphics.c b/src/graphics.c index 034b590c5..38a79ce3c 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 diff --git a/src/graphics/battle_terrain.h b/src/graphics/battle_terrain.h deleted file mode 100644 index 4ff9883fe..000000000 --- a/src/graphics/battle_terrain.h +++ /dev/null @@ -1,88 +0,0 @@ -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/berries.h b/src/graphics/berries.h deleted file mode 100644 index d843a4f80..000000000 --- a/src/graphics/berries.h +++ /dev/null @@ -1,95 +0,0 @@ -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/berry_fix.h b/src/graphics/berry_fix.h deleted file mode 100644 index 4012ab5a3..000000000 --- a/src/graphics/berry_fix.h +++ /dev/null @@ -1,23 +0,0 @@ -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/decorations.h b/src/graphics/decorations.h deleted file mode 100644 index 574ee50b6..000000000 --- a/src/graphics/decorations.h +++ /dev/null @@ -1,125 +0,0 @@ -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/interface_pokeballs.h b/src/graphics/interface_pokeballs.h deleted file mode 100644 index db91283ae..000000000 --- a/src/graphics/interface_pokeballs.h +++ /dev/null @@ -1,37 +0,0 @@ -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 deleted file mode 100644 index 9c049ffb2..000000000 --- a/src/graphics/intro_scene.h +++ /dev/null @@ -1,48 +0,0 @@ -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/items.h b/src/graphics/items.h deleted file mode 100644 index 299e519ca..000000000 --- a/src/graphics/items.h +++ /dev/null @@ -1,738 +0,0 @@ -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/mail.h b/src/graphics/mail.h deleted file mode 100644 index 53497347a..000000000 --- a/src/graphics/mail.h +++ /dev/null @@ -1,38 +0,0 @@ -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/pokemon.h b/src/graphics/pokemon.h deleted file mode 100644 index 2c0345f59..000000000 --- a/src/graphics/pokemon.h +++ /dev/null @@ -1,2823 +0,0 @@ -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/rayquaza_scene.h b/src/graphics/rayquaza_scene.h deleted file mode 100644 index 928a4f6f0..000000000 --- a/src/graphics/rayquaza_scene.h +++ /dev/null @@ -1,73 +0,0 @@ -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 deleted file mode 100644 index f673874e3..000000000 --- a/src/graphics/slot_machine.h +++ /dev/null @@ -1,60 +0,0 @@ -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"); diff --git a/src/graphics/trainers.h b/src/graphics/trainers.h deleted file mode 100644 index 98a5471ef..000000000 --- a/src/graphics/trainers.h +++ /dev/null @@ -1,290 +0,0 @@ -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"); -- cgit v1.2.3 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: 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 (limited to 'src') diff --git a/src/data/graphics/potential incbin arrays b/src/data/graphics/potential incbin arrays deleted file mode 100644 index f76354fb6..000000000 --- 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 -- cgit v1.2.3 From 07c28823900e52b09278798bc854afc46d15690e Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Thu, 6 Sep 2018 00:47:29 +0100 Subject: Move starter_choose data to C --- src/starter_choose.c | 345 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 313 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/starter_choose.c b/src/starter_choose.c index c1e7eea40..71784b016 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,26 +1,27 @@ #include "global.h" -#include "starter_choose.h" -#include "palette.h" -#include "sprite.h" -#include "pokemon.h" -#include "task.h" #include "bg.h" +#include "data2.h" +#include "decompress.h" +#include "event_data.h" #include "gpu_regs.h" +#include "international_string_util.h" #include "main.h" -#include "window.h" -#include "text.h" -#include "text_window.h" -#include "decompress.h" #include "menu.h" -#include "sound.h" -#include "constants/songs.h" -#include "event_data.h" +#include "palette.h" #include "pokedex.h" -#include "data2.h" -#include "international_string_util.h" -#include "trig.h" +#include "pokemon.h" #include "scanline_effect.h" +#include "sound.h" +#include "sprite.h" +#include "starter_choose.h" +#include "task.h" +#include "text.h" +#include "text_window.h" #include "trainer_pokemon_sprites.h" +#include "trig.h" +#include "window.h" +#include "constants/songs.h" +#include "constants/species.h" #define STARTER_MON_COUNT 3 @@ -32,23 +33,6 @@ extern const u8 gText_BirchInTrouble[]; extern const u8 gText_ConfirmStarterChoice[]; -extern const u16 sStarterMon[STARTER_MON_COUNT]; -extern const struct BgTemplate gUnknown_085B1E00[3]; -extern const struct WindowTemplate gUnknown_085B1DCC[]; -extern const struct WindowTemplate gUnknown_085B1DDC; -extern const struct CompressedSpriteSheet gUnknown_085B1ED8[]; -extern const struct CompressedSpriteSheet gUnknown_085B1EE8[]; -extern const struct SpritePalette gUnknown_085B1EF8[]; -extern const struct SpriteTemplate sSpriteTemplate_PokeBall; -extern const struct SpriteTemplate sSpriteTemplate_Hand; -extern const struct SpriteTemplate gUnknown_085B1F40; -extern const union AffineAnimCmd *const gUnknown_085B1ED0; -extern const u8 sPokeballCoords[STARTER_MON_COUNT][2]; -extern const struct WindowTemplate gUnknown_085B1DE4; -extern const u8 gStarterChoose_LabelCoords[][2]; -extern const u8 gUnknown_085B1E0C[]; -extern const u8 gUnknown_085B1E28[][2]; - // this file's functions static void MainCallback2_StarterChoose(void); static void sub_8134604(void); @@ -62,10 +46,307 @@ static void Task_MoveStarterChooseCursor(u8 taskId); static void sub_8134668(u8 taskId); static void CreateStarterPokemonLabel(u8 selection); static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y); +void sub_81346DC(struct Sprite *sprite); +void sub_813473C(struct Sprite *sprite); void StarterPokemonSpriteCallback(struct Sprite *sprite); static IWRAM_DATA u16 sStarterChooseWindowId; +// .rodata +const u16 gBirchBagGrassPal[][16] = +{ + INCBIN_U16("graphics/misc/birch_bag.gbapal"), + INCBIN_U16("graphics/misc/birch_grass.gbapal"), +}; + +const u16 gBirchBallarrow_Pal[] = INCBIN_U16("graphics/misc/birch_ballarrow.gbapal"); + +const u16 gBirchCircle_Pal[] = INCBIN_U16("graphics/misc/birch_circle.gbapal"); + +const u8 gBirchBagTilemap[] = INCBIN_U8("graphics/misc/birch_bag_map.bin.lz"); + +const u8 gBirchGrassTilemap[] = INCBIN_U8("graphics/misc/birch_grass_map.bin.lz"); + +const u8 gBirchHelpGfx[] = INCBIN_U8("graphics/misc/birch_help.4bpp.lz"); + +const u8 gUnknown_085B18AC[] = INCBIN_U8("graphics/misc/birch_ballarrow.4bpp.lz"); + +const u8 gUnknown_085B1BCC[] = INCBIN_U8("graphics/misc/birch_circle.4bpp.lz"); + +static const struct WindowTemplate gUnknown_085B1DCC[] = +{ + { + .priority = 0, + .tilemapLeft = 3, + .tilemapTop = 15, + .width = 24, + .height = 4, + .paletteNum = 14, + .baseBlock = 0x0200 + }, + DUMMY_WIN_TEMPLATE, +}; + +static const struct WindowTemplate gUnknown_085B1DDC = +{ + .priority = 0, + .tilemapLeft = 24, + .tilemapTop = 9, + .width = 5, + .height = 4, + .paletteNum = 14, + .baseBlock = 0x0260 +}; + +static const struct WindowTemplate gUnknown_085B1DE4 = +{ + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 0, + .width = 13, + .height = 4, + .paletteNum = 14, + .baseBlock = 0x0274 +}; + +static const u8 sPokeballCoords[STARTER_MON_COUNT][2] = +{ + {0x3c, 0x40}, + {0x78, 0x58}, + {0xb4, 0x40}, +}; + +static const u8 gStarterChoose_LabelCoords[][2] = +{ + {0x00, 0x09}, + {0x10, 0x0a}, + {0x08, 0x04}, +}; + +static const u16 sStarterMon[STARTER_MON_COUNT] = +{ + SPECIES_TREECKO, + SPECIES_TORCHIC, + SPECIES_MUDKIP, +}; + +static const struct BgTemplate gUnknown_085B1E00[3] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 7, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 6, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, +}; + +static const u8 gUnknown_085B1E0C[] = {0x00, 0x01, 0x03}; + +static const struct OamData gOamData_85B1E10 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gOamData_85B1E18 = +{ + .y = 160, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gOamData_85B1E20 = +{ + .y = 160, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const u8 gUnknown_085B1E28[][2] = +{ + {0x3c, 0x20}, + {0x78, 0x38}, + {0xb4, 0x20}, +}; + +static const union AnimCmd gSpriteAnim_85B1E30[] = +{ + ANIMCMD_FRAME(48, 30), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_85B1E38[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_85B1E40[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(0, 32), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd gSpriteAnim_85B1E88[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd * const gSpriteAnimTable_85B1E90[] = +{ + gSpriteAnim_85B1E30, +}; + +static const union AnimCmd * const gSpriteAnimTable_85B1E94[] = +{ + gSpriteAnim_85B1E38, + gSpriteAnim_85B1E40, +}; + +static const union AnimCmd * const gSpriteAnimTable_85B1E9C[] = +{ + gSpriteAnim_85B1E88, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_85B1EA0[] = +{ + AFFINEANIMCMD_FRAME(16, 16, 0, 0), + AFFINEANIMCMD_FRAME(16, 16, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_85B1EB8[] = +{ + AFFINEANIMCMD_FRAME(20, 20, 0, 0), + AFFINEANIMCMD_FRAME(20, 20, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gUnknown_085B1ED0 = {gSpriteAffineAnim_85B1EA0}; +static const union AffineAnimCmd * const gSpriteAffineAnimTable_85B1ED4[] = {gSpriteAffineAnim_85B1EB8}; + +static const struct CompressedSpriteSheet gUnknown_085B1ED8[] = +{ + gUnknown_085B18AC, 0x0800, 0x1000, + NULL, +}; + +static const struct CompressedSpriteSheet gUnknown_085B1EE8[] = +{ + gUnknown_085B1BCC, 0x0800, 0x1001, + NULL, +}; + +static const struct SpritePalette gUnknown_085B1EF8[] = +{ + gBirchBallarrow_Pal, 0x1000, + gBirchCircle_Pal, 0x1001, + NULL, +}; + +static const struct SpriteTemplate sSpriteTemplate_Hand = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_85B1E10, + .anims = gSpriteAnimTable_85B1E90, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81346DC +}; + +static const struct SpriteTemplate sSpriteTemplate_PokeBall = +{ + .tileTag = 0x1000, + .paletteTag = 0x1000, + .oam = &gOamData_85B1E18, + .anims = gSpriteAnimTable_85B1E94, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_813473C +}; + +static const struct SpriteTemplate gUnknown_085B1F40 = +{ + .tileTag = 0x1001, + .paletteTag = 0x1001, + .oam = &gOamData_85B1E20, + .anims = gSpriteAnimTable_85B1E9C, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_85B1ED4, + .callback = StarterPokemonSpriteCallback +}; + +// .text u16 GetStarterPokemon(u16 chosenStarterId) { if (chosenStarterId > STARTER_MON_COUNT) -- cgit v1.2.3 From 9350ac0a746b956cbfaf1c5d7a13aa28ef478127 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Thu, 6 Sep 2018 01:24:11 +0100 Subject: Move battle_pyramid_bag data to C --- src/battle_pyramid_bag.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 6629e6a0a..bc2821d16 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -42,6 +42,7 @@ extern const u8 gUnknown_08D9ADD0[]; extern const u8 gUnknown_08D9AE04[]; extern const u8 gUnknown_08D9AF44[]; extern const u16 gUnknown_0860F074[]; +extern const u8 gBattleFrontierGfx_PyramidBag[]; // This file's functions. static void Task_HandlePyramidBagInput(u8 taskId); @@ -281,8 +282,67 @@ static const struct WindowTemplate gUnknown_0861F350[] = }, }; -extern const struct CompressedSpriteSheet gUnknown_0861F3CC; -extern const struct SpriteTemplate gUnknown_0861F3D4; +static const struct OamData gOamData_861F378 = +{ + .y = 0, + .affineMode = 1, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd gSpriteAnim_861F380[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd * const gSpriteAnimTable_861F388[] = +{ + gSpriteAnim_861F380, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_861F38C[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_861F39C[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 254, 2), + AFFINEANIMCMD_FRAME(0, 0, 2, 4), + AFFINEANIMCMD_FRAME(0, 0, 254, 4), + AFFINEANIMCMD_FRAME(0, 0, 2, 2), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gSpriteAffineAnimTable_861F3C4[] = +{ + gSpriteAffineAnim_861F38C, + gSpriteAffineAnim_861F39C, +}; + +static const struct CompressedSpriteSheet gUnknown_0861F3CC = {gBattleFrontierGfx_PyramidBag, 0x0800, 0x1024}; + +static const struct SpriteTemplate gUnknown_0861F3D4 = +{ + .tileTag = 0x1024, + .paletteTag = 0x1024, + .oam = &gOamData_861F378, + .anims = gSpriteAnimTable_861F388, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_861F3C4, + .callback = SpriteCallbackDummy +}; // code void sub_81C4EEC(void) -- cgit v1.2.3 From 26c91f1502436c2268b574720a2837a1db3e1114 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Thu, 6 Sep 2018 03:11:33 +0100 Subject: Move field_player_avatar data to C --- src/field_player_avatar.c | 190 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 183 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 6ab721643..d32aabb81 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1,17 +1,19 @@ #include "global.h" -#include "global.fieldmap.h" -#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 "event_object_movement.h" +#include "field_player_avatar.h" #include "fieldmap.h" +#include "global.fieldmap.h" +#include "metatile_behavior.h" +#include "metatile_behaviors.h" #include "overworld.h" #include "rotating_gate.h" +#include "sprite.h" +#include "task.h" +#include "constants/event_objects.h" #include "constants/event_object_movement_constants.h" -#include "field_player_avatar.h" +#include "constants/flags.h" extern void task_add_bump_boulder(u8, u8); static bool8 ShouldJumpLedge(s16, s16, u8); @@ -42,6 +44,42 @@ static void PlayerNotOnBikeTurningInPlace(u8, u16); static void PlayerNotOnBikeMoving(u8, u16); extern void sub_808C750(u8); +extern void PlayerAvatarTransition_Normal(struct EventObject *a); +extern void PlayerAvatarTransition_MachBike(struct EventObject *a); +extern void PlayerAvatarTransition_AcroBike(struct EventObject *a); +extern void PlayerAvatarTransition_Surfing(struct EventObject *a); +extern void PlayerAvatarTransition_Underwater(struct EventObject *a); +extern void PlayerAvatarTransition_ReturnToField(struct EventObject *a); +extern void PlayerAvatarTransition_Dummy(struct EventObject *a); + +extern u8 sub_808C3A4(struct Task *task, struct EventObject *playerObject, struct EventObject *strengthObject); +extern u8 do_boulder_dust(struct Task *task, struct EventObject *playerObject, struct EventObject *strengthObject); +extern u8 sub_808C484(struct Task *task, struct EventObject *playerObject, struct EventObject *strengthObject); + +extern u8 sub_808C544(struct Task *task, struct EventObject *eventObject); + +extern u8 sub_808C61C(struct Task *task, struct EventObject *eventObject); +extern u8 sub_808C644(struct Task *task, struct EventObject *eventObject); +extern u8 sub_808C6BC(struct Task *task, struct EventObject *eventObject); +extern u8 sub_808C6FC(struct Task *task, struct EventObject *eventObject); + +extern u8 fish0(struct Task *task); +extern u8 fish1(struct Task *task); +extern u8 fish2(struct Task *task); +extern u8 fish3(struct Task *task); +extern u8 fish4(struct Task *task); +extern u8 fish5(struct Task *task); +extern u8 fish6(struct Task *task); +extern u8 fish7(struct Task *task); +extern u8 fish8(struct Task *task); +extern u8 fish9(struct Task *task); +extern u8 fishA_wait_for_a_pressed(struct Task *task); +extern u8 fishB(struct Task *task); +extern u8 fishC(struct Task *task); +extern u8 fishD(struct Task *task); +extern u8 fishE(struct Task *task); +extern u8 fishF(struct Task *task); + static bool8 (*const gUnknown_084973FC[])(u8) = { MetatileBehavior_IsTrickHouseSlipperyFloor, @@ -105,6 +143,144 @@ static bool8 (*const gUnknown_0849749C[])(u8) = static const u8 gUnknown_084974B0[] = {9, 10, 11, 12, 13, 0, 0, 0}; +void (*const gUnknown_084974B8[])(struct EventObject *) = +{ + PlayerAvatarTransition_Normal, + PlayerAvatarTransition_MachBike, + PlayerAvatarTransition_AcroBike, + PlayerAvatarTransition_Surfing, + PlayerAvatarTransition_Underwater, + PlayerAvatarTransition_ReturnToField, + PlayerAvatarTransition_Dummy, + PlayerAvatarTransition_Dummy, +}; + +bool8 (*const gUnknown_084974D8[])(u8) = +{ + MetatileBehavior_IsSouthArrowWarp, + MetatileBehavior_IsNorthArrowWarp, + MetatileBehavior_IsWestArrowWarp, + MetatileBehavior_IsEastArrowWarp, +}; + +const u8 gUnknown_084974E8[][2] = +{ + {EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL}, + {EVENT_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, EVENT_OBJ_GFX_RIVAL_MAY_MACH_BIKE}, + {EVENT_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, EVENT_OBJ_GFX_RIVAL_MAY_ACRO_BIKE}, + {EVENT_OBJ_GFX_RIVAL_BRENDAN_SURFING, EVENT_OBJ_GFX_RIVAL_MAY_SURFING}, + {EVENT_OBJ_GFX_BRENDAN_UNDERWATER, EVENT_OBJ_GFX_MAY_UNDERWATER}, + {EVENT_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, EVENT_OBJ_GFX_RIVAL_MAY_FIELD_MOVE}, + {EVENT_OBJ_GFX_BRENDAN_FISHING, EVENT_OBJ_GFX_MAY_FISHING}, + {EVENT_OBJ_GFX_BRENDAN_WATERING, EVENT_OBJ_GFX_MAY_WATERING} +}; + +const u8 gUnknown_084974F8[][2] = +{ + {EVENT_OBJ_GFX_BRENDAN_NORMAL, EVENT_OBJ_GFX_MAY_NORMAL}, + {EVENT_OBJ_GFX_BRENDAN_MACH_BIKE, EVENT_OBJ_GFX_MAY_MACH_BIKE}, + {EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE, EVENT_OBJ_GFX_MAY_ACRO_BIKE}, + {EVENT_OBJ_GFX_BRENDAN_SURFING, EVENT_OBJ_GFX_MAY_SURFING}, + {EVENT_OBJ_GFX_BRENDAN_UNDERWATER, EVENT_OBJ_GFX_MAY_UNDERWATER}, + {EVENT_OBJ_GFX_BRENDAN_FIELD_MOVE, EVENT_OBJ_GFX_MAY_FIELD_MOVE}, + {EVENT_OBJ_GFX_BRENDAN_FISHING, EVENT_OBJ_GFX_MAY_FISHING}, + {EVENT_OBJ_GFX_BRENDAN_WATERING, EVENT_OBJ_GFX_MAY_WATERING}, +}; + +const u8 gUnknown_08497508[] = {EVENT_OBJ_GFX_RED, EVENT_OBJ_GFX_LEAF}; + +const u8 gUnknown_0849750A[] = {EVENT_OBJ_GFX_LINK_RS_BRENDAN, EVENT_OBJ_GFX_LINK_RS_MAY}; + +const u8 gUnknown_0849750C[2][5][2] = +{ + //male + { + {EVENT_OBJ_GFX_BRENDAN_NORMAL, 1}, + {EVENT_OBJ_GFX_BRENDAN_MACH_BIKE, 2}, + {EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE, 4}, + {EVENT_OBJ_GFX_BRENDAN_SURFING, 8}, + {EVENT_OBJ_GFX_BRENDAN_UNDERWATER, 16}, + }, + //female + { + {EVENT_OBJ_GFX_MAY_NORMAL, 1}, + {EVENT_OBJ_GFX_MAY_MACH_BIKE, 2}, + {EVENT_OBJ_GFX_MAY_ACRO_BIKE, 4}, + {EVENT_OBJ_GFX_MAY_SURFING, 8}, + {EVENT_OBJ_GFX_MAY_UNDERWATER, 16}, + } +}; + +bool8 (*const gUnknown_08497520[])(u8) = //Duplicate of sArrowWarpMetatileBehaviorChecks +{ + MetatileBehavior_IsSouthArrowWarp, + MetatileBehavior_IsNorthArrowWarp, + MetatileBehavior_IsWestArrowWarp, + MetatileBehavior_IsEastArrowWarp, +}; + +u8 (*const gUnknown_08497530[])(struct Task *, struct EventObject *, struct EventObject *) = +{ + sub_808C3A4, + do_boulder_dust, + sub_808C484, +}; + +u8 (*const gUnknown_0849753C[])(struct Task *, struct EventObject *) = +{ + sub_808C544, +}; + +u8 (*const gUnknown_08497540[])(struct Task *, struct EventObject *) = +{ + sub_808C61C, + sub_808C644, + sub_808C6BC, + sub_808C6FC, +}; + +const u8 gUnknown_08497550[] = {3, 4, 2, 1}; + +const u8 gUnknown_08497554[] = {16, 16, 17, 18, 19}; + +u8 (*const gUnknown_0849755C[])(struct Task *) = +{ + fish0, + fish1, + fish2, + fish3, + fish4, + fish5, + fish6, + fish7, + fish8, + fish9, + fishA_wait_for_a_pressed, + fishB, + fishC, + fishD, + fishE, + fishF, +}; + +const u16 gUnknown_0849759C[] = {1, 1, 1}; + +const u16 gUnknown_084975A2[] = {1, 3, 6}; +/* +const u8 gUnknown_084975A8[] = _("·$"); + +const u16 gUnknown_084975AA[] = {36, 33, 30}; + +const u16 gUnknown_084975B0[] = +{ + 0, 0, + 0x28, 10, + 0x46, 30, +}; + +const u8 gUnknown_084975BC[] = {0x01, 0x03, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00}; +*/ +// .text void MovementType_Player(struct Sprite *sprite) { UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, EventObjectCB2_NoMovement2); -- cgit v1.2.3 From 9ad7dc9fd7c0fc6e3fe117ac6f393f8af4b9f53f Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Thu, 6 Sep 2018 12:02:37 +0100 Subject: Move remaining field_player_avatar data across --- src/field_player_avatar.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index d32aabb81..38845beb8 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -266,8 +266,8 @@ u8 (*const gUnknown_0849755C[])(struct Task *) = const u16 gUnknown_0849759C[] = {1, 1, 1}; const u16 gUnknown_084975A2[] = {1, 3, 6}; -/* -const u8 gUnknown_084975A8[] = _("·$"); + +const u8 gUnknown_084975A8[] = _("·"); const u16 gUnknown_084975AA[] = {36, 33, 30}; @@ -279,7 +279,7 @@ const u16 gUnknown_084975B0[] = }; const u8 gUnknown_084975BC[] = {0x01, 0x03, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00}; -*/ + // .text void MovementType_Player(struct Sprite *sprite) { -- cgit v1.2.3 From 1283b87505b508750a22317d548484e851ce6cad Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 6 Sep 2018 23:02:16 +0200 Subject: up to sub_819d064 --- src/battle_factory.c | 497 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 496 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index f7568055c..1609658f3 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -74,6 +74,53 @@ struct FactorySelectMonsStruct u8 unk2A9; }; +struct FactorySwapMonsStruct +{ + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + u8 unkF; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; + u8 unk14; + bool8 fromSummaryScreen; + u8 yesNoCursorPos; + u8 unk17; + u8 unk18; + u8 unk19; + u8 unk1A; + u8 unk1B; + u8 unk1C; + u8 unk1D; + u8 unk1E; + u8 unk1F; + u8 unk20; + u8 unk21; + u8 unk22; + u8 unk23; + u16 unk24; + bool8 unk26; + u8 unk27; + u8 unk28; + u8 unk29; + struct UnkFactoryStruct unk2C; + u8 unk30; +}; + extern u8 (*gUnknown_030062E8)(void); extern u8 gUnknown_0203CF20; @@ -121,6 +168,25 @@ static u8 Select_OptionRentDeselect(void); u8 sub_81A6F70(u8 battleMode, u8 lvlMode); u8 sub_81A6CA8(u8 arg0, u8 arg1); static bool32 Select_AreSpeciesValid(u16 monSetId); +void sub_819E538(void); +void sub_819DC1C(void); +void sub_819E9E0(void); +void sub_819EE08(void); +void sub_819EAC0(void); +void Swap_UpdateYesNoCursorPosition(s8 direction); +void Swap_UpdateMenuCursorPosition(s8 direction); +void sub_819EA64(u8 windowId); +void sub_819D770(u8 taskId); +void Task_HandleSwapScreenChooseMons(u8 taskId); +void sub_819D588(u8 taskId); +void Swap_PrintOnYesNoQuestionWindow(const u8 *str); +void Swap_ShowMenuOptions(void); +void Swap_PrintMonSpecies(void); +void Swap_PrintMonCategory(void); +void Swap_UpdateActionCursorPosition(s8 direction); +void Swap_UpdateBallCursorPosition(s8 direction); +void Swap_RunMenuOptionFunc(u8 taskId); +void sub_819F184(u8 taskId); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -128,9 +194,15 @@ EWRAM_DATA u8 *gUnknown_0203CE30 = NULL; EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; +extern u8 *gUnknown_0203CE40; +extern u8 *gUnknown_0203CE44; +extern u8 *gUnknown_0203CE48; +extern u8 *gUnknown_0203CE4C; // IWRAM bss -static IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; +IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; +IWRAM_DATA u8 (*gUnknown_03001280)(void); +IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen; // Const rom data. const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal"); @@ -210,6 +282,8 @@ extern const u8 gText_Rent[]; extern const u8 gText_Others2[]; extern const u8 gText_Yes2[]; extern const u8 gText_No2[]; +extern const u8 gText_QuitSwapping[]; +extern const u8 gText_AcceptThisPkmn[]; // code void sub_819A44C(struct Sprite *sprite) @@ -1411,3 +1485,424 @@ static void Task_SelectBlendPalette(u8 taskId) break; } } + +void sub_819C7E0(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); + RunTasks(); +} + +void sub_819C7FC(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void sub_819C810(void) +{ + u8 happiness; + + gPlayerParty[sFactorySwapScreen->unk12] = gEnemyParty[sFactorySwapScreen->unk13]; + happiness = 0; + SetMonData(&gPlayerParty[sFactorySwapScreen->unk12], MON_DATA_FRIENDSHIP, &happiness); + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].monId = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk13 + 3].monId; + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].ivs = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk13 + 3].ivs; + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->unk13], MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->unk13].box, MON_DATA_ALT_ABILITY, NULL); +} + +void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen +{ + switch (gTasks[taskId].data[0]) + { + case 6: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0] = 7; + break; + case 7: + if (!gPaletteFade.active) + { + DestroyTask(sFactorySwapScreen->unk21); + sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); + sub_819E538(); + FREE_AND_SET_NULL(gUnknown_0203CE40); + FREE_AND_SET_NULL(gUnknown_0203CE44); + FREE_AND_SET_NULL(gUnknown_0203CE48); + FREE_AND_SET_NULL(gUnknown_0203CE4C); + FreeAllWindowBuffers(); + gTasks[taskId].data[0] = 8; + } + break; + case 8: + DestroyTask(taskId); + sFactorySwapScreen->fromSummaryScreen = TRUE; + sFactorySwapScreen->unk24 = gPlttBufferUnfaded[244]; + ShowPokemonSummaryScreen(0, gPlayerParty, sFactorySwapScreen->unk3, 3 - 1, sub_819DC1C); + break; + } +} + +void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen +{ + if (sFactorySwapScreen->unk30 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 0: + if (sFactorySwapScreen->unk20 == 1) + { + gTasks[taskId].data[0]++; + gSpecialVar_Result = 0; + } + else + { + gTasks[taskId].data[0] = 2; + gSpecialVar_Result = 1; + } + break; + case 1: + if (sFactorySwapScreen->unk20 == 1) + { + sFactorySwapScreen->unk13 = sFactorySwapScreen->unk3; + sub_819C810(); + } + gTasks[taskId].data[0]++; + break; + case 2: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); + gTasks[taskId].data[0]++; + break; + case 3: + if (!UpdatePaletteFade()) + { + DestroyTask(sFactorySwapScreen->unk21); + sub_819E538(); + FREE_AND_SET_NULL(gUnknown_0203CE40); + FREE_AND_SET_NULL(gUnknown_0203CE44); + FREE_AND_SET_NULL(gUnknown_0203CE48); + FREE_AND_SET_NULL(gUnknown_0203CE4C); + FREE_AND_SET_NULL(sFactorySwapScreen); + FreeAllWindowBuffers(); + SetMainCallback2(CB2_ReturnToFieldContinueScript); + DestroyTask(taskId); + } + break; + } + } +} + +void Task_HandleSwapScreenYesNo(u8 taskId) +{ + u16 loPtr, hiPtr; + + if (sFactorySwapScreen->unk30 != 1) + { + switch (gTasks[taskId].data[0]) + { + case 4: + sub_819E9E0(); + gTasks[taskId].data[0] = 5; + break; + case 5: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (sFactorySwapScreen->yesNoCursorPos == 0) + { + gTasks[taskId].data[1] = 1; + hiPtr = gTasks[taskId].data[6]; + loPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); + } + else + { + gTasks[taskId].data[1] = 0; + sub_819EA64(4); + hiPtr = gTasks[taskId].data[6]; + loPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gTasks[taskId].data[1] = 0; + sub_819EA64(4); + hiPtr = gTasks[taskId].data[6]; + loPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr); + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + Swap_UpdateYesNoCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + Swap_UpdateYesNoCursorPosition(1); + } + break; + } + } +} + +void sub_819CBDC(u8 taskId) +{ + if (gTasks[taskId].data[1] == 1) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819CA08; + } + else + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; + } +} + +void sub_819CC24(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0) + { + Swap_PrintOnYesNoQuestionWindow(gText_QuitSwapping); + sFactorySwapScreen->unk20 = 0; + gTasks[taskId].data[0] = 4; + gTasks[taskId].data[6] = (u32)(sub_819CBDC) >> 16; + gTasks[taskId].data[7] = (u32)(sub_819CBDC); + gTasks[taskId].func = Task_HandleSwapScreenYesNo; + } +} + +void sub_819CC74(u8 taskId) +{ + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, 1); + if (gTasks[taskId].data[1] == 1) + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819CA08; + } + else + { + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; + } +} + +void sub_819CCD4(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0) + { + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); + Swap_PrintOnYesNoQuestionWindow(gText_AcceptThisPkmn); + sFactorySwapScreen->unk20 = 1; + gTasks[taskId].data[0] = 4; + gTasks[taskId].data[6] = (u32)(sub_819CC74) >> 16; + gTasks[taskId].data[7] = (u32)(sub_819CC74); + gTasks[taskId].func = Task_HandleSwapScreenYesNo; + } +} + +void Task_HandleSwapScreenMenu(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 2: + if (!sFactorySwapScreen->fromSummaryScreen) + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); + gTasks[taskId].data[0] = 9; + break; + case 9: + if (sFactorySwapScreen->unk30 != 1) + { + Swap_ShowMenuOptions(); + gTasks[taskId].data[0] = 3; + } + break; + case 3: + if (sFactorySwapScreen->unk30 != 1) + { + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + Swap_RunMenuOptionFunc(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, 1); + sub_819EA64(3); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + Swap_UpdateMenuCursorPosition(-1); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + Swap_UpdateMenuCursorPosition(1); + } + } + break; + } +} + +void Task_HandleSwapScreenChooseMons(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + if (!gPaletteFade.active) + { + sFactorySwapScreen->unk22 = 1; + gTasks[taskId].data[0] = 1; + } + break; + case 1: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sFactorySwapScreen->unk22 = 0; + sub_819EE08(); + sub_819EAC0(); + sub_819F184(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sFactorySwapScreen->unk22 = 0; + sub_819EE08(); + sub_819EAC0(); + gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 16; + gTasks[taskId].data[7] = (u32)(sub_819CC24); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[5] = 0; + gTasks[taskId].func = sub_819D588; + } + else if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + Swap_UpdateBallCursorPosition(-1); + Swap_PrintMonCategory(); + Swap_PrintMonSpecies(); + } + else if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + Swap_UpdateBallCursorPosition(1); + Swap_PrintMonCategory(); + Swap_PrintMonSpecies(); + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + Swap_UpdateActionCursorPosition(1); + Swap_PrintMonCategory(); + Swap_PrintMonSpecies(); + } + else if (gMain.newAndRepeatedKeys & DPAD_UP) + { + Swap_UpdateActionCursorPosition(-1); + Swap_PrintMonCategory(); + Swap_PrintMonSpecies(); + } + break; + } +} + +void sub_819CF54(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + sFactorySwapScreen->unk27 = 0; + sFactorySwapScreen->unk28 = 0; + sFactorySwapScreen->unk26 = TRUE; + gTasks[taskId].data[0] = 1; + break; + case 1: + if (sFactorySwapScreen->unk22) + { + if (sFactorySwapScreen->unk29) + { + gTasks[taskId].data[0] = 2; + } + else + { + sFactorySwapScreen->unk27++; + if (sFactorySwapScreen->unk27 > 6) + { + sFactorySwapScreen->unk27 = 0; + if (!sFactorySwapScreen->unk26) + sFactorySwapScreen->unk28--; + else + sFactorySwapScreen->unk28++; + } + BlendPalettes(0x4000, sFactorySwapScreen->unk28, 0); + if (sFactorySwapScreen->unk28 > 5) + { + sFactorySwapScreen->unk26 = FALSE; + } + else if (sFactorySwapScreen->unk28 == 0) + { + gTasks[taskId].data[0] = 2; + sFactorySwapScreen->unk26 = TRUE; + } + } + } + break; + case 2: + if (sFactorySwapScreen->unk29 > 14) + { + sFactorySwapScreen->unk29 = 0; + gTasks[taskId].data[0] = 1; + } + else + { + sFactorySwapScreen->unk29++; + } + break; + } +} + +void sub_819D064(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + case 0: + sFactorySwapScreen->unk27 = 0; + gTasks[taskId].data[4] = 0; + gTasks[taskId].data[0]++; + break; + case 1: + LoadPalette(&gPlttBufferUnfaded[0xF0], 0xE0, 0xA); + gTasks[taskId].data[0]++; + break; + case 2: + if (sFactorySwapScreen->unk28 > 15) + { + gTasks[taskId].data[4] = 1; + gTasks[taskId].data[0]++; + } + sFactorySwapScreen->unk27++; + if (sFactorySwapScreen->unk27 > 3) + { + sFactorySwapScreen->unk27 = 0; + gPlttBufferUnfaded[244] = gPlttBufferFaded[228]; + sFactorySwapScreen->unk28++; + } + BlendPalettes(0x4000, sFactorySwapScreen->unk28, 0); + break; + } +} -- cgit v1.2.3 From 54d5a7ad9781ffc890775ed510cebf0687102466 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Fri, 7 Sep 2018 14:14:52 +0100 Subject: Format event object pic tables --- .../field_event_obj/berry_tree_graphics_tables.h | 540 ++-- src/data/field_event_obj/event_object_graphics.h | 8 +- src/data/field_event_obj/event_object_pic_tables.h | 2840 ++++++++++---------- src/data/field_event_obj/field_effect_objects.h | 282 +- 4 files changed, 1835 insertions(+), 1835 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/berry_tree_graphics_tables.h b/src/data/field_event_obj/berry_tree_graphics_tables.h index 31d515a82..679a0e5a5 100755 --- a/src/data/field_event_obj/berry_tree_graphics_tables.h +++ b/src/data/field_event_obj/berry_tree_graphics_tables.h @@ -2,421 +2,421 @@ #define GUARD_BERRY_TREE_GRAPHICS_TABLES_H const struct SpriteFrameImage gEventObjectPicTable_PechaBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_PechaBerryTree_0), - obj_frame_tiles(gEventObjectPic_PechaBerryTree_1), - obj_frame_tiles(gEventObjectPic_PechaBerryTree_2), - obj_frame_tiles(gEventObjectPic_PechaBerryTree_3), - obj_frame_tiles(gEventObjectPic_PechaBerryTree_4), - obj_frame_tiles(gEventObjectPic_PechaBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_KelpsyBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_KelpsyBerryTree_0), - obj_frame_tiles(gEventObjectPic_KelpsyBerryTree_1), - obj_frame_tiles(gEventObjectPic_KelpsyBerryTree_2), - obj_frame_tiles(gEventObjectPic_KelpsyBerryTree_3), - obj_frame_tiles(gEventObjectPic_KelpsyBerryTree_4), - obj_frame_tiles(gEventObjectPic_KelpsyBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_WepearBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_WepearBerryTree_0), - obj_frame_tiles(gEventObjectPic_WepearBerryTree_1), - obj_frame_tiles(gEventObjectPic_WepearBerryTree_2), - obj_frame_tiles(gEventObjectPic_WepearBerryTree_3), - obj_frame_tiles(gEventObjectPic_WepearBerryTree_4), - obj_frame_tiles(gEventObjectPic_WepearBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_IapapaBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_IapapaBerryTree_0), - obj_frame_tiles(gEventObjectPic_IapapaBerryTree_1), - obj_frame_tiles(gEventObjectPic_IapapaBerryTree_2), - obj_frame_tiles(gEventObjectPic_IapapaBerryTree_3), - obj_frame_tiles(gEventObjectPic_IapapaBerryTree_4), - obj_frame_tiles(gEventObjectPic_IapapaBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_CheriBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_CheriBerryTree_0), - obj_frame_tiles(gEventObjectPic_CheriBerryTree_1), - obj_frame_tiles(gEventObjectPic_CheriBerryTree_2), - obj_frame_tiles(gEventObjectPic_CheriBerryTree_3), - obj_frame_tiles(gEventObjectPic_CheriBerryTree_4), - obj_frame_tiles(gEventObjectPic_CheriBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_FigyBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_FigyBerryTree_0), - obj_frame_tiles(gEventObjectPic_FigyBerryTree_1), - obj_frame_tiles(gEventObjectPic_FigyBerryTree_2), - obj_frame_tiles(gEventObjectPic_FigyBerryTree_3), - obj_frame_tiles(gEventObjectPic_FigyBerryTree_4), - obj_frame_tiles(gEventObjectPic_FigyBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_MagoBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_MagoBerryTree_0), - obj_frame_tiles(gEventObjectPic_MagoBerryTree_1), - obj_frame_tiles(gEventObjectPic_MagoBerryTree_2), - obj_frame_tiles(gEventObjectPic_MagoBerryTree_3), - obj_frame_tiles(gEventObjectPic_MagoBerryTree_4), - obj_frame_tiles(gEventObjectPic_MagoBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_LumBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_LumBerryTree_0), - obj_frame_tiles(gEventObjectPic_LumBerryTree_1), - obj_frame_tiles(gEventObjectPic_LumBerryTree_2), - obj_frame_tiles(gEventObjectPic_LumBerryTree_3), - obj_frame_tiles(gEventObjectPic_LumBerryTree_4), - obj_frame_tiles(gEventObjectPic_LumBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_RazzBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_RazzBerryTree_0), - obj_frame_tiles(gEventObjectPic_RazzBerryTree_1), - obj_frame_tiles(gEventObjectPic_RazzBerryTree_2), - obj_frame_tiles(gEventObjectPic_RazzBerryTree_3), - obj_frame_tiles(gEventObjectPic_RazzBerryTree_4), - obj_frame_tiles(gEventObjectPic_RazzBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_GrepaBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_GrepaBerryTree_0), - obj_frame_tiles(gEventObjectPic_GrepaBerryTree_1), - obj_frame_tiles(gEventObjectPic_GrepaBerryTree_2), - obj_frame_tiles(gEventObjectPic_GrepaBerryTree_3), - obj_frame_tiles(gEventObjectPic_GrepaBerryTree_4), - obj_frame_tiles(gEventObjectPic_GrepaBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_RabutaBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_RabutaBerryTree_0), - obj_frame_tiles(gEventObjectPic_RabutaBerryTree_1), - obj_frame_tiles(gEventObjectPic_RabutaBerryTree_2), - obj_frame_tiles(gEventObjectPic_RabutaBerryTree_3), - obj_frame_tiles(gEventObjectPic_RabutaBerryTree_4), - obj_frame_tiles(gEventObjectPic_RabutaBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_NomelBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_NomelBerryTree_0), - obj_frame_tiles(gEventObjectPic_NomelBerryTree_1), - obj_frame_tiles(gEventObjectPic_NomelBerryTree_2), - obj_frame_tiles(gEventObjectPic_NomelBerryTree_3), - obj_frame_tiles(gEventObjectPic_NomelBerryTree_4), - obj_frame_tiles(gEventObjectPic_NomelBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_LeppaBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_LeppaBerryTree_0), - obj_frame_tiles(gEventObjectPic_LeppaBerryTree_1), - obj_frame_tiles(gEventObjectPic_LeppaBerryTree_2), - obj_frame_tiles(gEventObjectPic_LeppaBerryTree_3), - obj_frame_tiles(gEventObjectPic_LeppaBerryTree_4), - obj_frame_tiles(gEventObjectPic_LeppaBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_LiechiBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_LiechiBerryTree_0), - obj_frame_tiles(gEventObjectPic_LiechiBerryTree_1), - obj_frame_tiles(gEventObjectPic_LiechiBerryTree_2), - obj_frame_tiles(gEventObjectPic_LiechiBerryTree_3), - obj_frame_tiles(gEventObjectPic_LiechiBerryTree_4), - obj_frame_tiles(gEventObjectPic_LiechiBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_HondewBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_HondewBerryTree_0), - obj_frame_tiles(gEventObjectPic_HondewBerryTree_1), - obj_frame_tiles(gEventObjectPic_HondewBerryTree_2), - obj_frame_tiles(gEventObjectPic_HondewBerryTree_3), - obj_frame_tiles(gEventObjectPic_HondewBerryTree_4), - obj_frame_tiles(gEventObjectPic_HondewBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5}; const struct SpriteFrameImage gEventObjectPicTable_AguavBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_AguavBerryTree_0), - obj_frame_tiles(gEventObjectPic_AguavBerryTree_1), - obj_frame_tiles(gEventObjectPic_AguavBerryTree_2), - obj_frame_tiles(gEventObjectPic_AguavBerryTree_3), - obj_frame_tiles(gEventObjectPic_AguavBerryTree_4), - obj_frame_tiles(gEventObjectPic_AguavBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_WikiBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_WikiBerryTree_0), - obj_frame_tiles(gEventObjectPic_WikiBerryTree_1), - obj_frame_tiles(gEventObjectPic_WikiBerryTree_2), - obj_frame_tiles(gEventObjectPic_WikiBerryTree_3), - obj_frame_tiles(gEventObjectPic_WikiBerryTree_4), - obj_frame_tiles(gEventObjectPic_WikiBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_PomegBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_PomegBerryTree_0), - obj_frame_tiles(gEventObjectPic_PomegBerryTree_1), - obj_frame_tiles(gEventObjectPic_PomegBerryTree_2), - obj_frame_tiles(gEventObjectPic_PomegBerryTree_3), - obj_frame_tiles(gEventObjectPic_PomegBerryTree_4), - obj_frame_tiles(gEventObjectPic_PomegBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_RawstBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_RawstBerryTree_0), - obj_frame_tiles(gEventObjectPic_RawstBerryTree_1), - obj_frame_tiles(gEventObjectPic_RawstBerryTree_2), - obj_frame_tiles(gEventObjectPic_RawstBerryTree_3), - obj_frame_tiles(gEventObjectPic_RawstBerryTree_4), - obj_frame_tiles(gEventObjectPic_RawstBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_SpelonBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_SpelonBerryTree_0), - obj_frame_tiles(gEventObjectPic_SpelonBerryTree_1), - obj_frame_tiles(gEventObjectPic_SpelonBerryTree_2), - obj_frame_tiles(gEventObjectPic_SpelonBerryTree_3), - obj_frame_tiles(gEventObjectPic_SpelonBerryTree_4), - obj_frame_tiles(gEventObjectPic_SpelonBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_ChestoBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_ChestoBerryTree_0), - obj_frame_tiles(gEventObjectPic_ChestoBerryTree_1), - obj_frame_tiles(gEventObjectPic_ChestoBerryTree_2), - obj_frame_tiles(gEventObjectPic_ChestoBerryTree_3), - obj_frame_tiles(gEventObjectPic_ChestoBerryTree_4), - obj_frame_tiles(gEventObjectPic_ChestoBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_OranBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_OranBerryTree_0), - obj_frame_tiles(gEventObjectPic_OranBerryTree_1), - obj_frame_tiles(gEventObjectPic_OranBerryTree_2), - obj_frame_tiles(gEventObjectPic_OranBerryTree_3), - obj_frame_tiles(gEventObjectPic_OranBerryTree_4), - obj_frame_tiles(gEventObjectPic_OranBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_PersimBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_PersimBerryTree_0), - obj_frame_tiles(gEventObjectPic_PersimBerryTree_1), - obj_frame_tiles(gEventObjectPic_PersimBerryTree_2), - obj_frame_tiles(gEventObjectPic_PersimBerryTree_3), - obj_frame_tiles(gEventObjectPic_PersimBerryTree_4), - obj_frame_tiles(gEventObjectPic_PersimBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_SitrusBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_SitrusBerryTree_0), - obj_frame_tiles(gEventObjectPic_SitrusBerryTree_1), - obj_frame_tiles(gEventObjectPic_SitrusBerryTree_2), - obj_frame_tiles(gEventObjectPic_SitrusBerryTree_3), - obj_frame_tiles(gEventObjectPic_SitrusBerryTree_4), - obj_frame_tiles(gEventObjectPic_SitrusBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_AspearBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_AspearBerryTree_0), - obj_frame_tiles(gEventObjectPic_AspearBerryTree_1), - obj_frame_tiles(gEventObjectPic_AspearBerryTree_2), - obj_frame_tiles(gEventObjectPic_AspearBerryTree_3), - obj_frame_tiles(gEventObjectPic_AspearBerryTree_4), - obj_frame_tiles(gEventObjectPic_AspearBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_PamtreBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_PamtreBerryTree_0), - obj_frame_tiles(gEventObjectPic_PamtreBerryTree_1), - obj_frame_tiles(gEventObjectPic_PamtreBerryTree_2), - obj_frame_tiles(gEventObjectPic_PamtreBerryTree_3), - obj_frame_tiles(gEventObjectPic_PamtreBerryTree_4), - obj_frame_tiles(gEventObjectPic_PamtreBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_CornnBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_CornnBerryTree_0), - obj_frame_tiles(gEventObjectPic_CornnBerryTree_1), - obj_frame_tiles(gEventObjectPic_CornnBerryTree_2), - obj_frame_tiles(gEventObjectPic_CornnBerryTree_3), - obj_frame_tiles(gEventObjectPic_CornnBerryTree_4), - obj_frame_tiles(gEventObjectPic_CornnBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_LansatBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_LansatBerryTree_0), - obj_frame_tiles(gEventObjectPic_LansatBerryTree_1), - obj_frame_tiles(gEventObjectPic_LansatBerryTree_2), - obj_frame_tiles(gEventObjectPic_LansatBerryTree_3), - obj_frame_tiles(gEventObjectPic_LansatBerryTree_4), - obj_frame_tiles(gEventObjectPic_LansatBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_DurinBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_DurinBerryTree_0), - obj_frame_tiles(gEventObjectPic_DurinBerryTree_1), - obj_frame_tiles(gEventObjectPic_DurinBerryTree_2), - obj_frame_tiles(gEventObjectPic_DurinBerryTree_3), - obj_frame_tiles(gEventObjectPic_DurinBerryTree_4), - obj_frame_tiles(gEventObjectPic_DurinBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_TamatoBerryTree[] = { - obj_frame_tiles(gEventObjectPic_BerryTreeDirtPile), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_0), - obj_frame_tiles(gEventObjectPic_BerryTreeSprout_1), - obj_frame_tiles(gEventObjectPic_TamatoBerryTree_0), - obj_frame_tiles(gEventObjectPic_TamatoBerryTree_1), - obj_frame_tiles(gEventObjectPic_TamatoBerryTree_2), - obj_frame_tiles(gEventObjectPic_TamatoBerryTree_3), - obj_frame_tiles(gEventObjectPic_TamatoBerryTree_4), - obj_frame_tiles(gEventObjectPic_TamatoBerryTree_5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), + overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 0), + overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 1), + overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 2), + overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 3), + overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 4), + overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 5), }; const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2}; diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index 2fd1380ee..522f14db4 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -100,8 +100,8 @@ const u32 gEventObjectPic_OldWoman2[] = INCBIN_U32("graphics/event_objects/pics/ const u32 gEventObjectPic_Camper[] = INCBIN_U32("graphics/event_objects/pics/people/camper.4bpp"); const u32 gEventObjectPic_Picnicker[] = INCBIN_U32("graphics/event_objects/pics/people/picnicker.4bpp"); const u32 gEventObjectPic_Man4[] = INCBIN_U32("graphics/event_objects/pics/people/man_4.4bpp"); -const u32 gEventObjectPic_Woman7[] = INCBIN_U32("graphics/event_objects/pics/people/wwoman_7.4bpp"); -const u32 gEventObjectPic_Youngster[] = INCBIN_U32("graphics/event_objects/pics/people/youngster/0.4bpp"); +const u32 gEventObjectPic_Woman7[] = INCBIN_U32("graphics/event_objects/pics/people/woman_7.4bpp"); +const u32 gEventObjectPic_Youngster[] = INCBIN_U32("graphics/event_objects/pics/people/youngster.4bpp"); const u32 gEventObjectPic_BugCatcher[] = INCBIN_U32("graphics/event_objects/pics/people/bug_catcher.4bpp"); const u32 gEventObjectPic_PsychicM[] = INCBIN_U32("graphics/event_objects/pics/people/psychic_m.4bpp"); const u32 gEventObjectPic_SchoolKidM[] = INCBIN_U32("graphics/event_objects/pics/people/school_kid_m.4bpp"); @@ -156,7 +156,7 @@ const u32 gEventObjectPic_Norman[] = INCBIN_U32("graphics/event_objects/pics/peo const u32 gEventObjectPic_Winona[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/winona.4bpp"); const u32 gEventObjectPic_Liza[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/liza.4bpp"); const u32 gEventObjectPic_Tate[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/tate.4bpp"); -const u32 gEventObjectPic_Wallace[] = INCBIN_U32("graphics/event_objects/pics/people/wallace/wallace.4bpp"); +const u32 gEventObjectPic_Wallace[] = INCBIN_U32("graphics/event_objects/pics/people/wallace.4bpp"); const u32 gEventObjectPic_Steven[] = INCBIN_U32("graphics/event_objects/pics/people/steven.4bpp"); const u32 gEventObjectPic_Wally[] = INCBIN_U32("graphics/event_objects/pics/people/wally.4bpp"); const u32 gEventObjectPic_RubySapphireLittleBoy[] = INCBIN_U32("graphics/event_objects/pics/people/rs_little_boy.4bpp"); @@ -307,7 +307,7 @@ const u32 gFieldEffectPic_CutGrass_Copy[] = INCBIN_U32("graphics/event_objects/p const u16 gFieldEffectObjectPalette6[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_06.gbapal"); const u32 gFieldEffectObjectPic_Ripple[] = INCBIN_U32("graphics/event_objects/pics/effects/ripple.4bpp"); const u32 gFieldEffectObjectPic_Ash[] = INCBIN_U32("graphics/event_objects/pics/effects/ash.4bpp"); -const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow/0.4bpp"); +const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow.4bpp"); const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_00.gbapal"); const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_01.gbapal"); const u32 gFieldEffectObjectPic_GroundImpactDust_0[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust/0.4bpp"); diff --git a/src/data/field_event_obj/event_object_pic_tables.h b/src/data/field_event_obj/event_object_pic_tables.h index 892af7e9b..53f5976f1 100755 --- a/src/data/field_event_obj/event_object_pic_tables.h +++ b/src/data/field_event_obj/event_object_pic_tables.h @@ -2,748 +2,748 @@ #define GUARD_EVENT_OBJECT_PIC_TABLES_H const struct SpriteFrameImage gEventObjectPicTable_BrendanNormal[] = { - obj_frame_tiles(gEventObjectPic_BrendanNormal_0), - obj_frame_tiles(gEventObjectPic_BrendanNormal_1), - obj_frame_tiles(gEventObjectPic_BrendanNormal_2), - obj_frame_tiles(gEventObjectPic_BrendanNormal_3), - obj_frame_tiles(gEventObjectPic_BrendanNormal_4), - obj_frame_tiles(gEventObjectPic_BrendanNormal_5), - obj_frame_tiles(gEventObjectPic_BrendanNormal_6), - obj_frame_tiles(gEventObjectPic_BrendanNormal_7), - obj_frame_tiles(gEventObjectPic_BrendanNormal_8), - obj_frame_tiles(gEventObjectPic_BrendanNormal_9), - obj_frame_tiles(gEventObjectPic_BrendanNormal_10), - obj_frame_tiles(gEventObjectPic_BrendanNormal_11), - obj_frame_tiles(gEventObjectPic_BrendanNormal_12), - obj_frame_tiles(gEventObjectPic_BrendanNormal_13), - obj_frame_tiles(gEventObjectPic_BrendanNormal_14), - obj_frame_tiles(gEventObjectPic_BrendanNormal_15), - obj_frame_tiles(gEventObjectPic_BrendanNormal_16), - obj_frame_tiles(gEventObjectPic_BrendanNormal_17), + overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 0), + overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 1), + overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 2), + overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 3), + overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 4), + overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 5), + overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 6), + overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 7), + overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 8), + overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 0), + overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 1), + overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 2), + overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 3), + overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 4), + overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 5), + overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 6), + overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 7), + overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanMachBike[] = { - obj_frame_tiles(gEventObjectPic_BrendanMachBike_0), - obj_frame_tiles(gEventObjectPic_BrendanMachBike_1), - obj_frame_tiles(gEventObjectPic_BrendanMachBike_2), - obj_frame_tiles(gEventObjectPic_BrendanMachBike_3), - obj_frame_tiles(gEventObjectPic_BrendanMachBike_4), - obj_frame_tiles(gEventObjectPic_BrendanMachBike_5), - obj_frame_tiles(gEventObjectPic_BrendanMachBike_6), - obj_frame_tiles(gEventObjectPic_BrendanMachBike_7), - obj_frame_tiles(gEventObjectPic_BrendanMachBike_8), + overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 3), + overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 5), + overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 6), + overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 7), + overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanAcroBike[] = { - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_0), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_1), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_2), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_3), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_4), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_5), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_6), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_7), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_8), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_9), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_10), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_11), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_12), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_13), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_14), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_15), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_16), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_17), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_18), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_19), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_20), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_21), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_22), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_23), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_24), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_25), - obj_frame_tiles(gEventObjectPic_BrendanAcroBike_26), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 3), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 5), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 6), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 7), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 8), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 9), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 10), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 11), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 12), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 13), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 14), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 15), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 16), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 17), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 18), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 19), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 20), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 21), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 22), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 23), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 24), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 25), + overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 26), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanSurfing[] = { - obj_frame_tiles(gEventObjectPic_BrendanSurfing_0), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_1), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_2), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_0), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_0), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_1), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_1), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_2), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_2), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_3), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_4), - obj_frame_tiles(gEventObjectPic_BrendanSurfing_5), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 3), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 5), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanUnderwater[] = { - obj_frame_tiles(gEventObjectPic_BrendanUnderwater_0), - obj_frame_tiles(gEventObjectPic_BrendanUnderwater_1), - obj_frame_tiles(gEventObjectPic_BrendanUnderwater_2), - obj_frame_tiles(gEventObjectPic_BrendanUnderwater_0), - obj_frame_tiles(gEventObjectPic_BrendanUnderwater_0), - obj_frame_tiles(gEventObjectPic_BrendanUnderwater_1), - obj_frame_tiles(gEventObjectPic_BrendanUnderwater_1), - obj_frame_tiles(gEventObjectPic_BrendanUnderwater_2), - obj_frame_tiles(gEventObjectPic_BrendanUnderwater_2), + overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanFieldMove[] = { - obj_frame_tiles(gEventObjectPic_BrendanFieldMove_0), - obj_frame_tiles(gEventObjectPic_BrendanFieldMove_1), - obj_frame_tiles(gEventObjectPic_BrendanFieldMove_2), - obj_frame_tiles(gEventObjectPic_BrendanFieldMove_3), - obj_frame_tiles(gEventObjectPic_BrendanFieldMove_4), + overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 3), + overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 4), }; const struct SpriteFrameImage gEventObjectPicTable_QuintyPlump[] = { - obj_frame_tiles(gEventObjectPic_QuintyPlump_0), - obj_frame_tiles(gEventObjectPic_QuintyPlump_1), - obj_frame_tiles(gEventObjectPic_QuintyPlump_2), - obj_frame_tiles(gEventObjectPic_QuintyPlump_3), - obj_frame_tiles(gEventObjectPic_QuintyPlump_4), - obj_frame_tiles(gEventObjectPic_QuintyPlump_5), - obj_frame_tiles(gEventObjectPic_QuintyPlump_6), + overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 0), + overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 1), + overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 2), + overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 3), + overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 4), + overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 5), + overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 6), }; const struct SpriteFrameImage gEventObjectPicTable_LittleBoy1[] = { - obj_frame_tiles(gEventObjectPic_LittleBoy1_0), - obj_frame_tiles(gEventObjectPic_LittleBoy1_1), - obj_frame_tiles(gEventObjectPic_LittleBoy1_2), - obj_frame_tiles(gEventObjectPic_LittleBoy1_3), - obj_frame_tiles(gEventObjectPic_LittleBoy1_4), - obj_frame_tiles(gEventObjectPic_LittleBoy1_5), - obj_frame_tiles(gEventObjectPic_LittleBoy1_6), - obj_frame_tiles(gEventObjectPic_LittleBoy1_7), - obj_frame_tiles(gEventObjectPic_LittleBoy1_8), + overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 0), + overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 1), + overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 2), + overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 3), + overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 4), + overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 5), + overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 6), + overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 7), + overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 8), }; const struct SpriteFrameImage gEventObjectPicTable_LittleGirl1[] = { - obj_frame_tiles(gEventObjectPic_LittleGirl1_0), - obj_frame_tiles(gEventObjectPic_LittleGirl1_1), - obj_frame_tiles(gEventObjectPic_LittleGirl1_2), - obj_frame_tiles(gEventObjectPic_LittleGirl1_3), - obj_frame_tiles(gEventObjectPic_LittleGirl1_4), - obj_frame_tiles(gEventObjectPic_LittleGirl1_5), - obj_frame_tiles(gEventObjectPic_LittleGirl1_6), - obj_frame_tiles(gEventObjectPic_LittleGirl1_7), - obj_frame_tiles(gEventObjectPic_LittleGirl1_8), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 0), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 1), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 2), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 3), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 4), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 5), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 6), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 7), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Boy1[] = { - obj_frame_tiles(gEventObjectPic_Boy1_0), - obj_frame_tiles(gEventObjectPic_Boy1_1), - obj_frame_tiles(gEventObjectPic_Boy1_2), - obj_frame_tiles(gEventObjectPic_Boy1_3), - obj_frame_tiles(gEventObjectPic_Boy1_4), - obj_frame_tiles(gEventObjectPic_Boy1_5), - obj_frame_tiles(gEventObjectPic_Boy1_6), - obj_frame_tiles(gEventObjectPic_Boy1_7), - obj_frame_tiles(gEventObjectPic_Boy1_8), + overworld_frame(gEventObjectPic_Boy1, 16, 32, 0), + overworld_frame(gEventObjectPic_Boy1, 16, 32, 1), + overworld_frame(gEventObjectPic_Boy1, 16, 32, 2), + overworld_frame(gEventObjectPic_Boy1, 16, 32, 3), + overworld_frame(gEventObjectPic_Boy1, 16, 32, 4), + overworld_frame(gEventObjectPic_Boy1, 16, 32, 5), + overworld_frame(gEventObjectPic_Boy1, 16, 32, 6), + overworld_frame(gEventObjectPic_Boy1, 16, 32, 7), + overworld_frame(gEventObjectPic_Boy1, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Girl1[] = { - obj_frame_tiles(gEventObjectPic_Girl1_0), - obj_frame_tiles(gEventObjectPic_Girl1_1), - obj_frame_tiles(gEventObjectPic_Girl1_2), - obj_frame_tiles(gEventObjectPic_Girl1_3), - obj_frame_tiles(gEventObjectPic_Girl1_4), - obj_frame_tiles(gEventObjectPic_Girl1_5), - obj_frame_tiles(gEventObjectPic_Girl1_6), - obj_frame_tiles(gEventObjectPic_Girl1_7), - obj_frame_tiles(gEventObjectPic_Girl1_8), + overworld_frame(gEventObjectPic_Girl1, 16, 32, 0), + overworld_frame(gEventObjectPic_Girl1, 16, 32, 1), + overworld_frame(gEventObjectPic_Girl1, 16, 32, 2), + overworld_frame(gEventObjectPic_Girl1, 16, 32, 3), + overworld_frame(gEventObjectPic_Girl1, 16, 32, 4), + overworld_frame(gEventObjectPic_Girl1, 16, 32, 5), + overworld_frame(gEventObjectPic_Girl1, 16, 32, 6), + overworld_frame(gEventObjectPic_Girl1, 16, 32, 7), + overworld_frame(gEventObjectPic_Girl1, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Boy2[] = { - obj_frame_tiles(gEventObjectPic_Boy2_0), - obj_frame_tiles(gEventObjectPic_Boy2_1), - obj_frame_tiles(gEventObjectPic_Boy2_2), - obj_frame_tiles(gEventObjectPic_Boy2_3), - obj_frame_tiles(gEventObjectPic_Boy2_4), - obj_frame_tiles(gEventObjectPic_Boy2_5), - obj_frame_tiles(gEventObjectPic_Boy2_6), - obj_frame_tiles(gEventObjectPic_Boy2_7), - obj_frame_tiles(gEventObjectPic_Boy2_8), + overworld_frame(gEventObjectPic_Boy2, 16, 32, 0), + overworld_frame(gEventObjectPic_Boy2, 16, 32, 1), + overworld_frame(gEventObjectPic_Boy2, 16, 32, 2), + overworld_frame(gEventObjectPic_Boy2, 16, 32, 3), + overworld_frame(gEventObjectPic_Boy2, 16, 32, 4), + overworld_frame(gEventObjectPic_Boy2, 16, 32, 5), + overworld_frame(gEventObjectPic_Boy2, 16, 32, 6), + overworld_frame(gEventObjectPic_Boy2, 16, 32, 7), + overworld_frame(gEventObjectPic_Boy2, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Girl2[] = { - obj_frame_tiles(gEventObjectPic_Girl2_0), - obj_frame_tiles(gEventObjectPic_Girl2_1), - obj_frame_tiles(gEventObjectPic_Girl2_2), - obj_frame_tiles(gEventObjectPic_Girl2_3), - obj_frame_tiles(gEventObjectPic_Girl2_4), - obj_frame_tiles(gEventObjectPic_Girl2_5), - obj_frame_tiles(gEventObjectPic_Girl2_6), - obj_frame_tiles(gEventObjectPic_Girl2_7), - obj_frame_tiles(gEventObjectPic_Girl2_8), + overworld_frame(gEventObjectPic_Girl2, 16, 32, 0), + overworld_frame(gEventObjectPic_Girl2, 16, 32, 1), + overworld_frame(gEventObjectPic_Girl2, 16, 32, 2), + overworld_frame(gEventObjectPic_Girl2, 16, 32, 3), + overworld_frame(gEventObjectPic_Girl2, 16, 32, 4), + overworld_frame(gEventObjectPic_Girl2, 16, 32, 5), + overworld_frame(gEventObjectPic_Girl2, 16, 32, 6), + overworld_frame(gEventObjectPic_Girl2, 16, 32, 7), + overworld_frame(gEventObjectPic_Girl2, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_LittleBoy2[] = { - obj_frame_tiles(gEventObjectPic_LittleBoy2_0), - obj_frame_tiles(gEventObjectPic_LittleBoy2_1), - obj_frame_tiles(gEventObjectPic_LittleBoy2_2), - obj_frame_tiles(gEventObjectPic_LittleBoy2_3), - obj_frame_tiles(gEventObjectPic_LittleBoy2_4), - obj_frame_tiles(gEventObjectPic_LittleBoy2_5), - obj_frame_tiles(gEventObjectPic_LittleBoy2_6), - obj_frame_tiles(gEventObjectPic_LittleBoy2_7), - obj_frame_tiles(gEventObjectPic_LittleBoy2_8), + overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 0), + overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 1), + overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 2), + overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 3), + overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 4), + overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 5), + overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 6), + overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 7), + overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 8), }; const struct SpriteFrameImage gEventObjectPicTable_LittleGirl2[] = { - obj_frame_tiles(gEventObjectPic_LittleGirl2_0), - obj_frame_tiles(gEventObjectPic_LittleGirl2_1), - obj_frame_tiles(gEventObjectPic_LittleGirl2_2), - obj_frame_tiles(gEventObjectPic_LittleGirl2_3), - obj_frame_tiles(gEventObjectPic_LittleGirl2_4), - obj_frame_tiles(gEventObjectPic_LittleGirl2_5), - obj_frame_tiles(gEventObjectPic_LittleGirl2_6), - obj_frame_tiles(gEventObjectPic_LittleGirl2_7), - obj_frame_tiles(gEventObjectPic_LittleGirl2_8), + overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 0), + overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 1), + overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 2), + overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 3), + overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 4), + overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 5), + overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 6), + overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 7), + overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Boy3[] = { - obj_frame_tiles(gEventObjectPic_Boy3_0), - obj_frame_tiles(gEventObjectPic_Boy3_1), - obj_frame_tiles(gEventObjectPic_Boy3_2), - obj_frame_tiles(gEventObjectPic_Boy3_3), - obj_frame_tiles(gEventObjectPic_Boy3_4), - obj_frame_tiles(gEventObjectPic_Boy3_5), - obj_frame_tiles(gEventObjectPic_Boy3_6), - obj_frame_tiles(gEventObjectPic_Boy3_7), - obj_frame_tiles(gEventObjectPic_Boy3_8), + overworld_frame(gEventObjectPic_Boy3, 16, 32, 0), + overworld_frame(gEventObjectPic_Boy3, 16, 32, 1), + overworld_frame(gEventObjectPic_Boy3, 16, 32, 2), + overworld_frame(gEventObjectPic_Boy3, 16, 32, 3), + overworld_frame(gEventObjectPic_Boy3, 16, 32, 4), + overworld_frame(gEventObjectPic_Boy3, 16, 32, 5), + overworld_frame(gEventObjectPic_Boy3, 16, 32, 6), + overworld_frame(gEventObjectPic_Boy3, 16, 32, 7), + overworld_frame(gEventObjectPic_Boy3, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Girl3[] = { - obj_frame_tiles(gEventObjectPic_Girl3_0), - obj_frame_tiles(gEventObjectPic_Girl3_1), - obj_frame_tiles(gEventObjectPic_Girl3_2), - obj_frame_tiles(gEventObjectPic_Girl3_3), - obj_frame_tiles(gEventObjectPic_Girl3_4), - obj_frame_tiles(gEventObjectPic_Girl3_5), - obj_frame_tiles(gEventObjectPic_Girl3_6), - obj_frame_tiles(gEventObjectPic_Girl3_7), - obj_frame_tiles(gEventObjectPic_Girl3_8), + overworld_frame(gEventObjectPic_Girl3, 16, 32, 0), + overworld_frame(gEventObjectPic_Girl3, 16, 32, 1), + overworld_frame(gEventObjectPic_Girl3, 16, 32, 2), + overworld_frame(gEventObjectPic_Girl3, 16, 32, 3), + overworld_frame(gEventObjectPic_Girl3, 16, 32, 4), + overworld_frame(gEventObjectPic_Girl3, 16, 32, 5), + overworld_frame(gEventObjectPic_Girl3, 16, 32, 6), + overworld_frame(gEventObjectPic_Girl3, 16, 32, 7), + overworld_frame(gEventObjectPic_Girl3, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Boy4[] = { - obj_frame_tiles(gEventObjectPic_Boy4_0), - obj_frame_tiles(gEventObjectPic_Boy4_1), - obj_frame_tiles(gEventObjectPic_Boy4_2), - obj_frame_tiles(gEventObjectPic_Boy4_3), - obj_frame_tiles(gEventObjectPic_Boy4_4), - obj_frame_tiles(gEventObjectPic_Boy4_5), - obj_frame_tiles(gEventObjectPic_Boy4_6), - obj_frame_tiles(gEventObjectPic_Boy4_7), - obj_frame_tiles(gEventObjectPic_Boy4_8), + overworld_frame(gEventObjectPic_Boy4, 16, 32, 0), + overworld_frame(gEventObjectPic_Boy4, 16, 32, 1), + overworld_frame(gEventObjectPic_Boy4, 16, 32, 2), + overworld_frame(gEventObjectPic_Boy4, 16, 32, 3), + overworld_frame(gEventObjectPic_Boy4, 16, 32, 4), + overworld_frame(gEventObjectPic_Boy4, 16, 32, 5), + overworld_frame(gEventObjectPic_Boy4, 16, 32, 6), + overworld_frame(gEventObjectPic_Boy4, 16, 32, 7), + overworld_frame(gEventObjectPic_Boy4, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman1[] = { - obj_frame_tiles(gEventObjectPic_Woman1_0), - obj_frame_tiles(gEventObjectPic_Woman1_1), - obj_frame_tiles(gEventObjectPic_Woman1_2), - obj_frame_tiles(gEventObjectPic_Woman1_3), - obj_frame_tiles(gEventObjectPic_Woman1_4), - obj_frame_tiles(gEventObjectPic_Woman1_5), - obj_frame_tiles(gEventObjectPic_Woman1_6), - obj_frame_tiles(gEventObjectPic_Woman1_7), - obj_frame_tiles(gEventObjectPic_Woman1_8), + overworld_frame(gEventObjectPic_Woman1, 16, 32, 0), + overworld_frame(gEventObjectPic_Woman1, 16, 32, 1), + overworld_frame(gEventObjectPic_Woman1, 16, 32, 2), + overworld_frame(gEventObjectPic_Woman1, 16, 32, 3), + overworld_frame(gEventObjectPic_Woman1, 16, 32, 4), + overworld_frame(gEventObjectPic_Woman1, 16, 32, 5), + overworld_frame(gEventObjectPic_Woman1, 16, 32, 6), + overworld_frame(gEventObjectPic_Woman1, 16, 32, 7), + overworld_frame(gEventObjectPic_Woman1, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_FatMan[] = { - obj_frame_tiles(gEventObjectPic_FatMan_0), - obj_frame_tiles(gEventObjectPic_FatMan_1), - obj_frame_tiles(gEventObjectPic_FatMan_2), - obj_frame_tiles(gEventObjectPic_FatMan_3), - obj_frame_tiles(gEventObjectPic_FatMan_4), - obj_frame_tiles(gEventObjectPic_FatMan_5), - obj_frame_tiles(gEventObjectPic_FatMan_6), - obj_frame_tiles(gEventObjectPic_FatMan_7), - obj_frame_tiles(gEventObjectPic_FatMan_8), + overworld_frame(gEventObjectPic_FatMan, 16, 32, 0), + overworld_frame(gEventObjectPic_FatMan, 16, 32, 1), + overworld_frame(gEventObjectPic_FatMan, 16, 32, 2), + overworld_frame(gEventObjectPic_FatMan, 16, 32, 3), + overworld_frame(gEventObjectPic_FatMan, 16, 32, 4), + overworld_frame(gEventObjectPic_FatMan, 16, 32, 5), + overworld_frame(gEventObjectPic_FatMan, 16, 32, 6), + overworld_frame(gEventObjectPic_FatMan, 16, 32, 7), + overworld_frame(gEventObjectPic_FatMan, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman2[] = { - obj_frame_tiles(gEventObjectPic_Woman2_0), - obj_frame_tiles(gEventObjectPic_Woman2_1), - obj_frame_tiles(gEventObjectPic_Woman2_2), - obj_frame_tiles(gEventObjectPic_Woman2_3), - obj_frame_tiles(gEventObjectPic_Woman2_4), - obj_frame_tiles(gEventObjectPic_Woman2_5), - obj_frame_tiles(gEventObjectPic_Woman2_6), - obj_frame_tiles(gEventObjectPic_Woman2_7), - obj_frame_tiles(gEventObjectPic_Woman2_8), + overworld_frame(gEventObjectPic_Woman2, 16, 32, 0), + overworld_frame(gEventObjectPic_Woman2, 16, 32, 1), + overworld_frame(gEventObjectPic_Woman2, 16, 32, 2), + overworld_frame(gEventObjectPic_Woman2, 16, 32, 3), + overworld_frame(gEventObjectPic_Woman2, 16, 32, 4), + overworld_frame(gEventObjectPic_Woman2, 16, 32, 5), + overworld_frame(gEventObjectPic_Woman2, 16, 32, 6), + overworld_frame(gEventObjectPic_Woman2, 16, 32, 7), + overworld_frame(gEventObjectPic_Woman2, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man1[] = { - obj_frame_tiles(gEventObjectPic_Man1_0), - obj_frame_tiles(gEventObjectPic_Man1_1), - obj_frame_tiles(gEventObjectPic_Man1_2), - obj_frame_tiles(gEventObjectPic_Man1_3), - obj_frame_tiles(gEventObjectPic_Man1_4), - obj_frame_tiles(gEventObjectPic_Man1_5), - obj_frame_tiles(gEventObjectPic_Man1_6), - obj_frame_tiles(gEventObjectPic_Man1_7), - obj_frame_tiles(gEventObjectPic_Man1_8), + overworld_frame(gEventObjectPic_Man1, 16, 32, 0), + overworld_frame(gEventObjectPic_Man1, 16, 32, 1), + overworld_frame(gEventObjectPic_Man1, 16, 32, 2), + overworld_frame(gEventObjectPic_Man1, 16, 32, 3), + overworld_frame(gEventObjectPic_Man1, 16, 32, 4), + overworld_frame(gEventObjectPic_Man1, 16, 32, 5), + overworld_frame(gEventObjectPic_Man1, 16, 32, 6), + overworld_frame(gEventObjectPic_Man1, 16, 32, 7), + overworld_frame(gEventObjectPic_Man1, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman3[] = { - obj_frame_tiles(gEventObjectPic_Woman3_0), - obj_frame_tiles(gEventObjectPic_Woman3_1), - obj_frame_tiles(gEventObjectPic_Woman3_2), - obj_frame_tiles(gEventObjectPic_Woman3_3), - obj_frame_tiles(gEventObjectPic_Woman3_4), - obj_frame_tiles(gEventObjectPic_Woman3_5), - obj_frame_tiles(gEventObjectPic_Woman3_6), - obj_frame_tiles(gEventObjectPic_Woman3_7), - obj_frame_tiles(gEventObjectPic_Woman3_8), + overworld_frame(gEventObjectPic_Woman3, 16, 32, 0), + overworld_frame(gEventObjectPic_Woman3, 16, 32, 1), + overworld_frame(gEventObjectPic_Woman3, 16, 32, 2), + overworld_frame(gEventObjectPic_Woman3, 16, 32, 3), + overworld_frame(gEventObjectPic_Woman3, 16, 32, 4), + overworld_frame(gEventObjectPic_Woman3, 16, 32, 5), + overworld_frame(gEventObjectPic_Woman3, 16, 32, 6), + overworld_frame(gEventObjectPic_Woman3, 16, 32, 7), + overworld_frame(gEventObjectPic_Woman3, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_OldMan1[] = { - obj_frame_tiles(gEventObjectPic_OldMan1_0), - obj_frame_tiles(gEventObjectPic_OldMan1_1), - obj_frame_tiles(gEventObjectPic_OldMan1_2), - obj_frame_tiles(gEventObjectPic_OldMan1_3), - obj_frame_tiles(gEventObjectPic_OldMan1_4), - obj_frame_tiles(gEventObjectPic_OldMan1_5), - obj_frame_tiles(gEventObjectPic_OldMan1_6), - obj_frame_tiles(gEventObjectPic_OldMan1_7), - obj_frame_tiles(gEventObjectPic_OldMan1_8), + overworld_frame(gEventObjectPic_OldMan1, 16, 32, 0), + overworld_frame(gEventObjectPic_OldMan1, 16, 32, 1), + overworld_frame(gEventObjectPic_OldMan1, 16, 32, 2), + overworld_frame(gEventObjectPic_OldMan1, 16, 32, 3), + overworld_frame(gEventObjectPic_OldMan1, 16, 32, 4), + overworld_frame(gEventObjectPic_OldMan1, 16, 32, 5), + overworld_frame(gEventObjectPic_OldMan1, 16, 32, 6), + overworld_frame(gEventObjectPic_OldMan1, 16, 32, 7), + overworld_frame(gEventObjectPic_OldMan1, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_OldWoman1[] = { - obj_frame_tiles(gEventObjectPic_OldWoman1_0), - obj_frame_tiles(gEventObjectPic_OldWoman1_1), - obj_frame_tiles(gEventObjectPic_OldWoman1_2), - obj_frame_tiles(gEventObjectPic_OldWoman1_3), - obj_frame_tiles(gEventObjectPic_OldWoman1_4), - obj_frame_tiles(gEventObjectPic_OldWoman1_5), - obj_frame_tiles(gEventObjectPic_OldWoman1_6), - obj_frame_tiles(gEventObjectPic_OldWoman1_7), - obj_frame_tiles(gEventObjectPic_OldWoman1_8), + overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 0), + overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 1), + overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 2), + overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 3), + overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 4), + overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 5), + overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 6), + overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 7), + overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man2[] = { - obj_frame_tiles(gEventObjectPic_Man2_0), - obj_frame_tiles(gEventObjectPic_Man2_1), - obj_frame_tiles(gEventObjectPic_Man2_2), - obj_frame_tiles(gEventObjectPic_Man2_3), - obj_frame_tiles(gEventObjectPic_Man2_4), - obj_frame_tiles(gEventObjectPic_Man2_5), - obj_frame_tiles(gEventObjectPic_Man2_6), - obj_frame_tiles(gEventObjectPic_Man2_7), - obj_frame_tiles(gEventObjectPic_Man2_8), + overworld_frame(gEventObjectPic_Man2, 16, 32, 0), + overworld_frame(gEventObjectPic_Man2, 16, 32, 1), + overworld_frame(gEventObjectPic_Man2, 16, 32, 2), + overworld_frame(gEventObjectPic_Man2, 16, 32, 3), + overworld_frame(gEventObjectPic_Man2, 16, 32, 4), + overworld_frame(gEventObjectPic_Man2, 16, 32, 5), + overworld_frame(gEventObjectPic_Man2, 16, 32, 6), + overworld_frame(gEventObjectPic_Man2, 16, 32, 7), + overworld_frame(gEventObjectPic_Man2, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman4[] = { - obj_frame_tiles(gEventObjectPic_Woman4_0), - obj_frame_tiles(gEventObjectPic_Woman4_1), - obj_frame_tiles(gEventObjectPic_Woman4_2), - obj_frame_tiles(gEventObjectPic_Woman4_3), - obj_frame_tiles(gEventObjectPic_Woman4_4), - obj_frame_tiles(gEventObjectPic_Woman4_5), - obj_frame_tiles(gEventObjectPic_Woman4_6), - obj_frame_tiles(gEventObjectPic_Woman4_7), - obj_frame_tiles(gEventObjectPic_Woman4_8), + overworld_frame(gEventObjectPic_Woman4, 16, 32, 0), + overworld_frame(gEventObjectPic_Woman4, 16, 32, 1), + overworld_frame(gEventObjectPic_Woman4, 16, 32, 2), + overworld_frame(gEventObjectPic_Woman4, 16, 32, 3), + overworld_frame(gEventObjectPic_Woman4, 16, 32, 4), + overworld_frame(gEventObjectPic_Woman4, 16, 32, 5), + overworld_frame(gEventObjectPic_Woman4, 16, 32, 6), + overworld_frame(gEventObjectPic_Woman4, 16, 32, 7), + overworld_frame(gEventObjectPic_Woman4, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man3[] = { - obj_frame_tiles(gEventObjectPic_Man3_0), - obj_frame_tiles(gEventObjectPic_Man3_1), - obj_frame_tiles(gEventObjectPic_Man3_2), - obj_frame_tiles(gEventObjectPic_Man3_3), - obj_frame_tiles(gEventObjectPic_Man3_4), - obj_frame_tiles(gEventObjectPic_Man3_5), - obj_frame_tiles(gEventObjectPic_Man3_6), - obj_frame_tiles(gEventObjectPic_Man3_7), - obj_frame_tiles(gEventObjectPic_Man3_8), + overworld_frame(gEventObjectPic_Man3, 16, 32, 0), + overworld_frame(gEventObjectPic_Man3, 16, 32, 1), + overworld_frame(gEventObjectPic_Man3, 16, 32, 2), + overworld_frame(gEventObjectPic_Man3, 16, 32, 3), + overworld_frame(gEventObjectPic_Man3, 16, 32, 4), + overworld_frame(gEventObjectPic_Man3, 16, 32, 5), + overworld_frame(gEventObjectPic_Man3, 16, 32, 6), + overworld_frame(gEventObjectPic_Man3, 16, 32, 7), + overworld_frame(gEventObjectPic_Man3, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman5[] = { - obj_frame_tiles(gEventObjectPic_Woman5_0), - obj_frame_tiles(gEventObjectPic_Woman5_1), - obj_frame_tiles(gEventObjectPic_Woman5_2), - obj_frame_tiles(gEventObjectPic_Woman5_3), - obj_frame_tiles(gEventObjectPic_Woman5_4), - obj_frame_tiles(gEventObjectPic_Woman5_5), - obj_frame_tiles(gEventObjectPic_Woman5_6), - obj_frame_tiles(gEventObjectPic_Woman5_7), - obj_frame_tiles(gEventObjectPic_Woman5_8), + overworld_frame(gEventObjectPic_Woman5, 16, 32, 0), + overworld_frame(gEventObjectPic_Woman5, 16, 32, 1), + overworld_frame(gEventObjectPic_Woman5, 16, 32, 2), + overworld_frame(gEventObjectPic_Woman5, 16, 32, 3), + overworld_frame(gEventObjectPic_Woman5, 16, 32, 4), + overworld_frame(gEventObjectPic_Woman5, 16, 32, 5), + overworld_frame(gEventObjectPic_Woman5, 16, 32, 6), + overworld_frame(gEventObjectPic_Woman5, 16, 32, 7), + overworld_frame(gEventObjectPic_Woman5, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Cook[] = { - obj_frame_tiles(gEventObjectPic_Cook_0), - obj_frame_tiles(gEventObjectPic_Cook_1), - obj_frame_tiles(gEventObjectPic_Cook_2), - obj_frame_tiles(gEventObjectPic_Cook_0), - obj_frame_tiles(gEventObjectPic_Cook_0), - obj_frame_tiles(gEventObjectPic_Cook_1), - obj_frame_tiles(gEventObjectPic_Cook_1), - obj_frame_tiles(gEventObjectPic_Cook_2), - obj_frame_tiles(gEventObjectPic_Cook_2), + overworld_frame(gEventObjectPic_Cook, 16, 32, 0), + overworld_frame(gEventObjectPic_Cook, 16, 32, 1), + overworld_frame(gEventObjectPic_Cook, 16, 32, 2), + overworld_frame(gEventObjectPic_Cook, 16, 32, 0), + overworld_frame(gEventObjectPic_Cook, 16, 32, 0), + overworld_frame(gEventObjectPic_Cook, 16, 32, 1), + overworld_frame(gEventObjectPic_Cook, 16, 32, 1), + overworld_frame(gEventObjectPic_Cook, 16, 32, 2), + overworld_frame(gEventObjectPic_Cook, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Woman6[] = { - obj_frame_tiles(gEventObjectPic_Woman6_0), - obj_frame_tiles(gEventObjectPic_Woman6_1), - obj_frame_tiles(gEventObjectPic_Woman6_2), - obj_frame_tiles(gEventObjectPic_Woman6_3), - obj_frame_tiles(gEventObjectPic_Woman6_4), - obj_frame_tiles(gEventObjectPic_Woman6_5), - obj_frame_tiles(gEventObjectPic_Woman6_6), - obj_frame_tiles(gEventObjectPic_Woman6_7), - obj_frame_tiles(gEventObjectPic_Woman6_8), + overworld_frame(gEventObjectPic_Woman6, 16, 32, 0), + overworld_frame(gEventObjectPic_Woman6, 16, 32, 1), + overworld_frame(gEventObjectPic_Woman6, 16, 32, 2), + overworld_frame(gEventObjectPic_Woman6, 16, 32, 3), + overworld_frame(gEventObjectPic_Woman6, 16, 32, 4), + overworld_frame(gEventObjectPic_Woman6, 16, 32, 5), + overworld_frame(gEventObjectPic_Woman6, 16, 32, 6), + overworld_frame(gEventObjectPic_Woman6, 16, 32, 7), + overworld_frame(gEventObjectPic_Woman6, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_OldMan2[] = { - obj_frame_tiles(gEventObjectPic_OldMan2_0), - obj_frame_tiles(gEventObjectPic_OldMan2_1), - obj_frame_tiles(gEventObjectPic_OldMan2_2), - obj_frame_tiles(gEventObjectPic_OldMan2_0), - obj_frame_tiles(gEventObjectPic_OldMan2_0), - obj_frame_tiles(gEventObjectPic_OldMan2_1), - obj_frame_tiles(gEventObjectPic_OldMan2_1), - obj_frame_tiles(gEventObjectPic_OldMan2_2), - obj_frame_tiles(gEventObjectPic_OldMan2_2), + overworld_frame(gEventObjectPic_OldMan2, 16, 32, 0), + overworld_frame(gEventObjectPic_OldMan2, 16, 32, 1), + overworld_frame(gEventObjectPic_OldMan2, 16, 32, 2), + overworld_frame(gEventObjectPic_OldMan2, 16, 32, 0), + overworld_frame(gEventObjectPic_OldMan2, 16, 32, 0), + overworld_frame(gEventObjectPic_OldMan2, 16, 32, 1), + overworld_frame(gEventObjectPic_OldMan2, 16, 32, 1), + overworld_frame(gEventObjectPic_OldMan2, 16, 32, 2), + overworld_frame(gEventObjectPic_OldMan2, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_OldWoman2[] = { - obj_frame_tiles(gEventObjectPic_OldWoman2_0), - obj_frame_tiles(gEventObjectPic_OldWoman2_1), - obj_frame_tiles(gEventObjectPic_OldWoman2_2), - obj_frame_tiles(gEventObjectPic_OldWoman2_3), - obj_frame_tiles(gEventObjectPic_OldWoman2_4), - obj_frame_tiles(gEventObjectPic_OldWoman2_5), - obj_frame_tiles(gEventObjectPic_OldWoman2_6), - obj_frame_tiles(gEventObjectPic_OldWoman2_7), - obj_frame_tiles(gEventObjectPic_OldWoman2_8), + overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 0), + overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 1), + overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 2), + overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 3), + overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 4), + overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 5), + overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 6), + overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 7), + overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Camper[] = { - obj_frame_tiles(gEventObjectPic_Camper_0), - obj_frame_tiles(gEventObjectPic_Camper_1), - obj_frame_tiles(gEventObjectPic_Camper_2), - obj_frame_tiles(gEventObjectPic_Camper_3), - obj_frame_tiles(gEventObjectPic_Camper_4), - obj_frame_tiles(gEventObjectPic_Camper_5), - obj_frame_tiles(gEventObjectPic_Camper_6), - obj_frame_tiles(gEventObjectPic_Camper_7), - obj_frame_tiles(gEventObjectPic_Camper_8), + overworld_frame(gEventObjectPic_Camper, 16, 32, 0), + overworld_frame(gEventObjectPic_Camper, 16, 32, 1), + overworld_frame(gEventObjectPic_Camper, 16, 32, 2), + overworld_frame(gEventObjectPic_Camper, 16, 32, 3), + overworld_frame(gEventObjectPic_Camper, 16, 32, 4), + overworld_frame(gEventObjectPic_Camper, 16, 32, 5), + overworld_frame(gEventObjectPic_Camper, 16, 32, 6), + overworld_frame(gEventObjectPic_Camper, 16, 32, 7), + overworld_frame(gEventObjectPic_Camper, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Picnicker[] = { - obj_frame_tiles(gEventObjectPic_Picnicker_0), - obj_frame_tiles(gEventObjectPic_Picnicker_1), - obj_frame_tiles(gEventObjectPic_Picnicker_2), - obj_frame_tiles(gEventObjectPic_Picnicker_3), - obj_frame_tiles(gEventObjectPic_Picnicker_4), - obj_frame_tiles(gEventObjectPic_Picnicker_5), - obj_frame_tiles(gEventObjectPic_Picnicker_6), - obj_frame_tiles(gEventObjectPic_Picnicker_7), - obj_frame_tiles(gEventObjectPic_Picnicker_8), + overworld_frame(gEventObjectPic_Picnicker, 16, 32, 0), + overworld_frame(gEventObjectPic_Picnicker, 16, 32, 1), + overworld_frame(gEventObjectPic_Picnicker, 16, 32, 2), + overworld_frame(gEventObjectPic_Picnicker, 16, 32, 3), + overworld_frame(gEventObjectPic_Picnicker, 16, 32, 4), + overworld_frame(gEventObjectPic_Picnicker, 16, 32, 5), + overworld_frame(gEventObjectPic_Picnicker, 16, 32, 6), + overworld_frame(gEventObjectPic_Picnicker, 16, 32, 7), + overworld_frame(gEventObjectPic_Picnicker, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man4[] = { - obj_frame_tiles(gEventObjectPic_Man4_0), - obj_frame_tiles(gEventObjectPic_Man4_1), - obj_frame_tiles(gEventObjectPic_Man4_2), - obj_frame_tiles(gEventObjectPic_Man4_3), - obj_frame_tiles(gEventObjectPic_Man4_4), - obj_frame_tiles(gEventObjectPic_Man4_5), - obj_frame_tiles(gEventObjectPic_Man4_6), - obj_frame_tiles(gEventObjectPic_Man4_7), - obj_frame_tiles(gEventObjectPic_Man4_8), + overworld_frame(gEventObjectPic_Man4, 16, 32, 0), + overworld_frame(gEventObjectPic_Man4, 16, 32, 1), + overworld_frame(gEventObjectPic_Man4, 16, 32, 2), + overworld_frame(gEventObjectPic_Man4, 16, 32, 3), + overworld_frame(gEventObjectPic_Man4, 16, 32, 4), + overworld_frame(gEventObjectPic_Man4, 16, 32, 5), + overworld_frame(gEventObjectPic_Man4, 16, 32, 6), + overworld_frame(gEventObjectPic_Man4, 16, 32, 7), + overworld_frame(gEventObjectPic_Man4, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman7[] = { - obj_frame_tiles(gEventObjectPic_Woman7_0), - obj_frame_tiles(gEventObjectPic_Woman7_1), - obj_frame_tiles(gEventObjectPic_Woman7_2), - obj_frame_tiles(gEventObjectPic_Woman7_3), - obj_frame_tiles(gEventObjectPic_Woman7_4), - obj_frame_tiles(gEventObjectPic_Woman7_5), - obj_frame_tiles(gEventObjectPic_Woman7_6), - obj_frame_tiles(gEventObjectPic_Woman7_7), - obj_frame_tiles(gEventObjectPic_Woman7_8), + overworld_frame(gEventObjectPic_Woman7, 16, 32, 0), + overworld_frame(gEventObjectPic_Woman7, 16, 32, 1), + overworld_frame(gEventObjectPic_Woman7, 16, 32, 2), + overworld_frame(gEventObjectPic_Woman7, 16, 32, 3), + overworld_frame(gEventObjectPic_Woman7, 16, 32, 4), + overworld_frame(gEventObjectPic_Woman7, 16, 32, 5), + overworld_frame(gEventObjectPic_Woman7, 16, 32, 6), + overworld_frame(gEventObjectPic_Woman7, 16, 32, 7), + overworld_frame(gEventObjectPic_Woman7, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Youngster[] = { - obj_frame_tiles(gEventObjectPic_Youngster_0), - obj_frame_tiles(gEventObjectPic_Youngster_1), - obj_frame_tiles(gEventObjectPic_Youngster_2), - obj_frame_tiles(gEventObjectPic_Youngster_3), - obj_frame_tiles(gEventObjectPic_Youngster_4), - obj_frame_tiles(gEventObjectPic_Youngster_5), - obj_frame_tiles(gEventObjectPic_Youngster_6), - obj_frame_tiles(gEventObjectPic_Youngster_7), - obj_frame_tiles(gEventObjectPic_Youngster_8), + overworld_frame(gEventObjectPic_Youngster, 16, 32, 0), + overworld_frame(gEventObjectPic_Youngster, 16, 32, 1), + overworld_frame(gEventObjectPic_Youngster, 16, 32, 2), + overworld_frame(gEventObjectPic_Youngster, 16, 32, 3), + overworld_frame(gEventObjectPic_Youngster, 16, 32, 4), + overworld_frame(gEventObjectPic_Youngster, 16, 32, 5), + overworld_frame(gEventObjectPic_Youngster, 16, 32, 6), + overworld_frame(gEventObjectPic_Youngster, 16, 32, 7), + overworld_frame(gEventObjectPic_Youngster, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BugCatcher[] = { - obj_frame_tiles(gEventObjectPic_BugCatcher_0), - obj_frame_tiles(gEventObjectPic_BugCatcher_1), - obj_frame_tiles(gEventObjectPic_BugCatcher_2), - obj_frame_tiles(gEventObjectPic_BugCatcher_3), - obj_frame_tiles(gEventObjectPic_BugCatcher_4), - obj_frame_tiles(gEventObjectPic_BugCatcher_5), - obj_frame_tiles(gEventObjectPic_BugCatcher_6), - obj_frame_tiles(gEventObjectPic_BugCatcher_7), - obj_frame_tiles(gEventObjectPic_BugCatcher_8), + overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 0), + overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 1), + overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 2), + overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 3), + overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 4), + overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 5), + overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 6), + overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 7), + overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_PsychicM[] = { - obj_frame_tiles(gEventObjectPic_PsychicM_0), - obj_frame_tiles(gEventObjectPic_PsychicM_1), - obj_frame_tiles(gEventObjectPic_PsychicM_2), - obj_frame_tiles(gEventObjectPic_PsychicM_3), - obj_frame_tiles(gEventObjectPic_PsychicM_4), - obj_frame_tiles(gEventObjectPic_PsychicM_5), - obj_frame_tiles(gEventObjectPic_PsychicM_6), - obj_frame_tiles(gEventObjectPic_PsychicM_7), - obj_frame_tiles(gEventObjectPic_PsychicM_8), + overworld_frame(gEventObjectPic_PsychicM, 16, 32, 0), + overworld_frame(gEventObjectPic_PsychicM, 16, 32, 1), + overworld_frame(gEventObjectPic_PsychicM, 16, 32, 2), + overworld_frame(gEventObjectPic_PsychicM, 16, 32, 3), + overworld_frame(gEventObjectPic_PsychicM, 16, 32, 4), + overworld_frame(gEventObjectPic_PsychicM, 16, 32, 5), + overworld_frame(gEventObjectPic_PsychicM, 16, 32, 6), + overworld_frame(gEventObjectPic_PsychicM, 16, 32, 7), + overworld_frame(gEventObjectPic_PsychicM, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_SchoolKidM[] = { - obj_frame_tiles(gEventObjectPic_SchoolKidM_0), - obj_frame_tiles(gEventObjectPic_SchoolKidM_1), - obj_frame_tiles(gEventObjectPic_SchoolKidM_2), - obj_frame_tiles(gEventObjectPic_SchoolKidM_3), - obj_frame_tiles(gEventObjectPic_SchoolKidM_4), - obj_frame_tiles(gEventObjectPic_SchoolKidM_5), - obj_frame_tiles(gEventObjectPic_SchoolKidM_6), - obj_frame_tiles(gEventObjectPic_SchoolKidM_7), - obj_frame_tiles(gEventObjectPic_SchoolKidM_8), + overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 0), + overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 1), + overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 2), + overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 3), + overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 4), + overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 5), + overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 6), + overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 7), + overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Maniac[] = { - obj_frame_tiles(gEventObjectPic_Maniac_0), - obj_frame_tiles(gEventObjectPic_Maniac_1), - obj_frame_tiles(gEventObjectPic_Maniac_2), - obj_frame_tiles(gEventObjectPic_Maniac_3), - obj_frame_tiles(gEventObjectPic_Maniac_4), - obj_frame_tiles(gEventObjectPic_Maniac_5), - obj_frame_tiles(gEventObjectPic_Maniac_6), - obj_frame_tiles(gEventObjectPic_Maniac_7), - obj_frame_tiles(gEventObjectPic_Maniac_8), + overworld_frame(gEventObjectPic_Maniac, 16, 32, 0), + overworld_frame(gEventObjectPic_Maniac, 16, 32, 1), + overworld_frame(gEventObjectPic_Maniac, 16, 32, 2), + overworld_frame(gEventObjectPic_Maniac, 16, 32, 3), + overworld_frame(gEventObjectPic_Maniac, 16, 32, 4), + overworld_frame(gEventObjectPic_Maniac, 16, 32, 5), + overworld_frame(gEventObjectPic_Maniac, 16, 32, 6), + overworld_frame(gEventObjectPic_Maniac, 16, 32, 7), + overworld_frame(gEventObjectPic_Maniac, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_HexManiac[] = { - obj_frame_tiles(gEventObjectPic_HexManiac_0), - obj_frame_tiles(gEventObjectPic_HexManiac_1), - obj_frame_tiles(gEventObjectPic_HexManiac_2), - obj_frame_tiles(gEventObjectPic_HexManiac_3), - obj_frame_tiles(gEventObjectPic_HexManiac_4), - obj_frame_tiles(gEventObjectPic_HexManiac_5), - obj_frame_tiles(gEventObjectPic_HexManiac_6), - obj_frame_tiles(gEventObjectPic_HexManiac_7), - obj_frame_tiles(gEventObjectPic_HexManiac_8), + overworld_frame(gEventObjectPic_HexManiac, 16, 32, 0), + overworld_frame(gEventObjectPic_HexManiac, 16, 32, 1), + overworld_frame(gEventObjectPic_HexManiac, 16, 32, 2), + overworld_frame(gEventObjectPic_HexManiac, 16, 32, 3), + overworld_frame(gEventObjectPic_HexManiac, 16, 32, 4), + overworld_frame(gEventObjectPic_HexManiac, 16, 32, 5), + overworld_frame(gEventObjectPic_HexManiac, 16, 32, 6), + overworld_frame(gEventObjectPic_HexManiac, 16, 32, 7), + overworld_frame(gEventObjectPic_HexManiac, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_SwimmerM[] = { - obj_frame_tiles(gEventObjectPic_SwimmerM_0), - obj_frame_tiles(gEventObjectPic_SwimmerM_1), - obj_frame_tiles(gEventObjectPic_SwimmerM_2), - obj_frame_tiles(gEventObjectPic_SwimmerM_3), - obj_frame_tiles(gEventObjectPic_SwimmerM_4), - obj_frame_tiles(gEventObjectPic_SwimmerM_5), - obj_frame_tiles(gEventObjectPic_SwimmerM_6), - obj_frame_tiles(gEventObjectPic_SwimmerM_7), - obj_frame_tiles(gEventObjectPic_SwimmerM_8), + overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 0), + overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 1), + overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 2), + overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 3), + overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 4), + overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 5), + overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 6), + overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 7), + overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_SwimmerF[] = { - obj_frame_tiles(gEventObjectPic_SwimmerF_0), - obj_frame_tiles(gEventObjectPic_SwimmerF_1), - obj_frame_tiles(gEventObjectPic_SwimmerF_2), - obj_frame_tiles(gEventObjectPic_SwimmerF_3), - obj_frame_tiles(gEventObjectPic_SwimmerF_4), - obj_frame_tiles(gEventObjectPic_SwimmerF_5), - obj_frame_tiles(gEventObjectPic_SwimmerF_6), - obj_frame_tiles(gEventObjectPic_SwimmerF_7), - obj_frame_tiles(gEventObjectPic_SwimmerF_8), + overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 0), + overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 1), + overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 2), + overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 3), + overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 4), + overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 5), + overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 6), + overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 7), + overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BlackBelt[] = { - obj_frame_tiles(gEventObjectPic_BlackBelt_0), - obj_frame_tiles(gEventObjectPic_BlackBelt_1), - obj_frame_tiles(gEventObjectPic_BlackBelt_2), - obj_frame_tiles(gEventObjectPic_BlackBelt_3), - obj_frame_tiles(gEventObjectPic_BlackBelt_4), - obj_frame_tiles(gEventObjectPic_BlackBelt_5), - obj_frame_tiles(gEventObjectPic_BlackBelt_6), - obj_frame_tiles(gEventObjectPic_BlackBelt_7), - obj_frame_tiles(gEventObjectPic_BlackBelt_8), + overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 0), + overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 1), + overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 2), + overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 3), + overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 4), + overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 5), + overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 6), + overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 7), + overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Beauty[] = { - obj_frame_tiles(gEventObjectPic_Beauty_0), - obj_frame_tiles(gEventObjectPic_Beauty_1), - obj_frame_tiles(gEventObjectPic_Beauty_2), - obj_frame_tiles(gEventObjectPic_Beauty_3), - obj_frame_tiles(gEventObjectPic_Beauty_4), - obj_frame_tiles(gEventObjectPic_Beauty_5), - obj_frame_tiles(gEventObjectPic_Beauty_6), - obj_frame_tiles(gEventObjectPic_Beauty_7), - obj_frame_tiles(gEventObjectPic_Beauty_8), + overworld_frame(gEventObjectPic_Beauty, 16, 32, 0), + overworld_frame(gEventObjectPic_Beauty, 16, 32, 1), + overworld_frame(gEventObjectPic_Beauty, 16, 32, 2), + overworld_frame(gEventObjectPic_Beauty, 16, 32, 3), + overworld_frame(gEventObjectPic_Beauty, 16, 32, 4), + overworld_frame(gEventObjectPic_Beauty, 16, 32, 5), + overworld_frame(gEventObjectPic_Beauty, 16, 32, 6), + overworld_frame(gEventObjectPic_Beauty, 16, 32, 7), + overworld_frame(gEventObjectPic_Beauty, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Scientist1[] = { - obj_frame_tiles(gEventObjectPic_Scientist1_0), - obj_frame_tiles(gEventObjectPic_Scientist1_1), - obj_frame_tiles(gEventObjectPic_Scientist1_2), - obj_frame_tiles(gEventObjectPic_Scientist1_3), - obj_frame_tiles(gEventObjectPic_Scientist1_4), - obj_frame_tiles(gEventObjectPic_Scientist1_5), - obj_frame_tiles(gEventObjectPic_Scientist1_6), - obj_frame_tiles(gEventObjectPic_Scientist1_7), - obj_frame_tiles(gEventObjectPic_Scientist1_8), + overworld_frame(gEventObjectPic_Scientist1, 16, 32, 0), + overworld_frame(gEventObjectPic_Scientist1, 16, 32, 1), + overworld_frame(gEventObjectPic_Scientist1, 16, 32, 2), + overworld_frame(gEventObjectPic_Scientist1, 16, 32, 3), + overworld_frame(gEventObjectPic_Scientist1, 16, 32, 4), + overworld_frame(gEventObjectPic_Scientist1, 16, 32, 5), + overworld_frame(gEventObjectPic_Scientist1, 16, 32, 6), + overworld_frame(gEventObjectPic_Scientist1, 16, 32, 7), + overworld_frame(gEventObjectPic_Scientist1, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Lass[] = { - obj_frame_tiles(gEventObjectPic_Lass_0), - obj_frame_tiles(gEventObjectPic_Lass_1), - obj_frame_tiles(gEventObjectPic_Lass_2), - obj_frame_tiles(gEventObjectPic_Lass_3), - obj_frame_tiles(gEventObjectPic_Lass_4), - obj_frame_tiles(gEventObjectPic_Lass_5), - obj_frame_tiles(gEventObjectPic_Lass_6), - obj_frame_tiles(gEventObjectPic_Lass_7), - obj_frame_tiles(gEventObjectPic_Lass_8), + overworld_frame(gEventObjectPic_Lass, 16, 32, 0), + overworld_frame(gEventObjectPic_Lass, 16, 32, 1), + overworld_frame(gEventObjectPic_Lass, 16, 32, 2), + overworld_frame(gEventObjectPic_Lass, 16, 32, 3), + overworld_frame(gEventObjectPic_Lass, 16, 32, 4), + overworld_frame(gEventObjectPic_Lass, 16, 32, 5), + overworld_frame(gEventObjectPic_Lass, 16, 32, 6), + overworld_frame(gEventObjectPic_Lass, 16, 32, 7), + overworld_frame(gEventObjectPic_Lass, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Gentleman[] = { - obj_frame_tiles(gEventObjectPic_Gentleman_0), - obj_frame_tiles(gEventObjectPic_Gentleman_1), - obj_frame_tiles(gEventObjectPic_Gentleman_2), - obj_frame_tiles(gEventObjectPic_Gentleman_3), - obj_frame_tiles(gEventObjectPic_Gentleman_4), - obj_frame_tiles(gEventObjectPic_Gentleman_5), - obj_frame_tiles(gEventObjectPic_Gentleman_6), - obj_frame_tiles(gEventObjectPic_Gentleman_7), - obj_frame_tiles(gEventObjectPic_Gentleman_8), + overworld_frame(gEventObjectPic_Gentleman, 16, 32, 0), + overworld_frame(gEventObjectPic_Gentleman, 16, 32, 1), + overworld_frame(gEventObjectPic_Gentleman, 16, 32, 2), + overworld_frame(gEventObjectPic_Gentleman, 16, 32, 3), + overworld_frame(gEventObjectPic_Gentleman, 16, 32, 4), + overworld_frame(gEventObjectPic_Gentleman, 16, 32, 5), + overworld_frame(gEventObjectPic_Gentleman, 16, 32, 6), + overworld_frame(gEventObjectPic_Gentleman, 16, 32, 7), + overworld_frame(gEventObjectPic_Gentleman, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Sailor[] = { - obj_frame_tiles(gEventObjectPic_Sailor_0), - obj_frame_tiles(gEventObjectPic_Sailor_1), - obj_frame_tiles(gEventObjectPic_Sailor_2), - obj_frame_tiles(gEventObjectPic_Sailor_3), - obj_frame_tiles(gEventObjectPic_Sailor_4), - obj_frame_tiles(gEventObjectPic_Sailor_5), - obj_frame_tiles(gEventObjectPic_Sailor_6), - obj_frame_tiles(gEventObjectPic_Sailor_7), - obj_frame_tiles(gEventObjectPic_Sailor_8), + overworld_frame(gEventObjectPic_Sailor, 16, 32, 0), + overworld_frame(gEventObjectPic_Sailor, 16, 32, 1), + overworld_frame(gEventObjectPic_Sailor, 16, 32, 2), + overworld_frame(gEventObjectPic_Sailor, 16, 32, 3), + overworld_frame(gEventObjectPic_Sailor, 16, 32, 4), + overworld_frame(gEventObjectPic_Sailor, 16, 32, 5), + overworld_frame(gEventObjectPic_Sailor, 16, 32, 6), + overworld_frame(gEventObjectPic_Sailor, 16, 32, 7), + overworld_frame(gEventObjectPic_Sailor, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Fisherman[] = { - obj_frame_tiles(gEventObjectPic_Fisherman_0), - obj_frame_tiles(gEventObjectPic_Fisherman_1), - obj_frame_tiles(gEventObjectPic_Fisherman_2), - obj_frame_tiles(gEventObjectPic_Fisherman_3), - obj_frame_tiles(gEventObjectPic_Fisherman_4), - obj_frame_tiles(gEventObjectPic_Fisherman_5), - obj_frame_tiles(gEventObjectPic_Fisherman_6), - obj_frame_tiles(gEventObjectPic_Fisherman_7), - obj_frame_tiles(gEventObjectPic_Fisherman_8), + overworld_frame(gEventObjectPic_Fisherman, 16, 32, 0), + overworld_frame(gEventObjectPic_Fisherman, 16, 32, 1), + overworld_frame(gEventObjectPic_Fisherman, 16, 32, 2), + overworld_frame(gEventObjectPic_Fisherman, 16, 32, 3), + overworld_frame(gEventObjectPic_Fisherman, 16, 32, 4), + overworld_frame(gEventObjectPic_Fisherman, 16, 32, 5), + overworld_frame(gEventObjectPic_Fisherman, 16, 32, 6), + overworld_frame(gEventObjectPic_Fisherman, 16, 32, 7), + overworld_frame(gEventObjectPic_Fisherman, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RunningTriathleteM[] = { - obj_frame_tiles(gEventObjectPic_RunningTriathleteM_0), - obj_frame_tiles(gEventObjectPic_RunningTriathleteM_1), - obj_frame_tiles(gEventObjectPic_RunningTriathleteM_2), - obj_frame_tiles(gEventObjectPic_RunningTriathleteM_3), - obj_frame_tiles(gEventObjectPic_RunningTriathleteM_4), - obj_frame_tiles(gEventObjectPic_RunningTriathleteM_5), - obj_frame_tiles(gEventObjectPic_RunningTriathleteM_6), - obj_frame_tiles(gEventObjectPic_RunningTriathleteM_7), - obj_frame_tiles(gEventObjectPic_RunningTriathleteM_8), + overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 0), + overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 1), + overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 2), + overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 3), + overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 4), + overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 5), + overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 6), + overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 7), + overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RunningTriathleteF[] = { - obj_frame_tiles(gEventObjectPic_RunningTriathleteF_0), - obj_frame_tiles(gEventObjectPic_RunningTriathleteF_1), - obj_frame_tiles(gEventObjectPic_RunningTriathleteF_2), - obj_frame_tiles(gEventObjectPic_RunningTriathleteF_3), - obj_frame_tiles(gEventObjectPic_RunningTriathleteF_4), - obj_frame_tiles(gEventObjectPic_RunningTriathleteF_5), - obj_frame_tiles(gEventObjectPic_RunningTriathleteF_6), - obj_frame_tiles(gEventObjectPic_RunningTriathleteF_7), - obj_frame_tiles(gEventObjectPic_RunningTriathleteF_8), + overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 0), + overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 1), + overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 2), + overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 3), + overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 4), + overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 5), + overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 6), + overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 7), + overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_TuberF[] = { - obj_frame_tiles(gEventObjectPic_TuberF_0), - obj_frame_tiles(gEventObjectPic_TuberF_1), - obj_frame_tiles(gEventObjectPic_TuberF_2), - obj_frame_tiles(gEventObjectPic_TuberF_3), - obj_frame_tiles(gEventObjectPic_TuberF_4), - obj_frame_tiles(gEventObjectPic_TuberF_5), - obj_frame_tiles(gEventObjectPic_TuberF_6), - obj_frame_tiles(gEventObjectPic_TuberF_7), - obj_frame_tiles(gEventObjectPic_TuberF_8), + overworld_frame(gEventObjectPic_TuberF, 16, 16, 0), + overworld_frame(gEventObjectPic_TuberF, 16, 16, 1), + overworld_frame(gEventObjectPic_TuberF, 16, 16, 2), + overworld_frame(gEventObjectPic_TuberF, 16, 16, 3), + overworld_frame(gEventObjectPic_TuberF, 16, 16, 4), + overworld_frame(gEventObjectPic_TuberF, 16, 16, 5), + overworld_frame(gEventObjectPic_TuberF, 16, 16, 6), + overworld_frame(gEventObjectPic_TuberF, 16, 16, 7), + overworld_frame(gEventObjectPic_TuberF, 16, 16, 8), }; const struct SpriteFrameImage gEventObjectPicTable_TuberM[] = { - obj_frame_tiles(gEventObjectPic_TuberM_0), - obj_frame_tiles(gEventObjectPic_TuberM_1), - obj_frame_tiles(gEventObjectPic_TuberM_2), - obj_frame_tiles(gEventObjectPic_TuberM_3), - obj_frame_tiles(gEventObjectPic_TuberM_4), - obj_frame_tiles(gEventObjectPic_TuberM_5), - obj_frame_tiles(gEventObjectPic_TuberM_6), - obj_frame_tiles(gEventObjectPic_TuberM_7), - obj_frame_tiles(gEventObjectPic_TuberM_8), + overworld_frame(gEventObjectPic_TuberM, 16, 16, 0), + overworld_frame(gEventObjectPic_TuberM, 16, 16, 1), + overworld_frame(gEventObjectPic_TuberM, 16, 16, 2), + overworld_frame(gEventObjectPic_TuberM, 16, 16, 3), + overworld_frame(gEventObjectPic_TuberM, 16, 16, 4), + overworld_frame(gEventObjectPic_TuberM, 16, 16, 5), + overworld_frame(gEventObjectPic_TuberM, 16, 16, 6), + overworld_frame(gEventObjectPic_TuberM, 16, 16, 7), + overworld_frame(gEventObjectPic_TuberM, 16, 16, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Hiker[] = { - obj_frame_tiles(gEventObjectPic_Hiker_0), - obj_frame_tiles(gEventObjectPic_Hiker_1), - obj_frame_tiles(gEventObjectPic_Hiker_2), - obj_frame_tiles(gEventObjectPic_Hiker_3), - obj_frame_tiles(gEventObjectPic_Hiker_4), - obj_frame_tiles(gEventObjectPic_Hiker_5), - obj_frame_tiles(gEventObjectPic_Hiker_6), - obj_frame_tiles(gEventObjectPic_Hiker_7), - obj_frame_tiles(gEventObjectPic_Hiker_8), + overworld_frame(gEventObjectPic_Hiker, 16, 32, 0), + overworld_frame(gEventObjectPic_Hiker, 16, 32, 1), + overworld_frame(gEventObjectPic_Hiker, 16, 32, 2), + overworld_frame(gEventObjectPic_Hiker, 16, 32, 3), + overworld_frame(gEventObjectPic_Hiker, 16, 32, 4), + overworld_frame(gEventObjectPic_Hiker, 16, 32, 5), + overworld_frame(gEventObjectPic_Hiker, 16, 32, 6), + overworld_frame(gEventObjectPic_Hiker, 16, 32, 7), + overworld_frame(gEventObjectPic_Hiker, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_CyclingTriathleteM[] = { - obj_frame_tiles(gEventObjectPic_CyclingTriathleteM_0), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteM_1), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteM_2), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteM_3), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteM_4), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteM_5), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteM_6), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteM_7), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteM_8), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 0), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 1), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 2), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 3), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 4), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 5), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 6), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 7), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_CyclingTriathleteF[] = { - obj_frame_tiles(gEventObjectPic_CyclingTriathleteF_0), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteF_1), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteF_2), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteF_3), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteF_4), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteF_5), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteF_6), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteF_7), - obj_frame_tiles(gEventObjectPic_CyclingTriathleteF_8), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 0), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 1), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 2), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 3), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 4), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 5), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 6), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 7), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Nurse[] = { - obj_frame_tiles(gEventObjectPic_Nurse_0), - obj_frame_tiles(gEventObjectPic_Nurse_1), - obj_frame_tiles(gEventObjectPic_Nurse_2), - obj_frame_tiles(gEventObjectPic_Nurse_0), - obj_frame_tiles(gEventObjectPic_Nurse_0), - obj_frame_tiles(gEventObjectPic_Nurse_1), - obj_frame_tiles(gEventObjectPic_Nurse_1), - obj_frame_tiles(gEventObjectPic_Nurse_2), - obj_frame_tiles(gEventObjectPic_Nurse_2), - obj_frame_tiles(gEventObjectPic_Nurse_3), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 0), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 1), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 2), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 0), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 0), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 1), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 1), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 2), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 2), + overworld_frame(gEventObjectPic_Nurse, 16, 32, 3), }; const struct SpriteFrameImage gEventObjectPicTable_ItemBall[] = { @@ -751,87 +751,87 @@ const struct SpriteFrameImage gEventObjectPicTable_ItemBall[] = { }; const struct SpriteFrameImage gEventObjectPicTable_ProfBirch[] = { - obj_frame_tiles(gEventObjectPic_ProfBirch_0), - obj_frame_tiles(gEventObjectPic_ProfBirch_1), - obj_frame_tiles(gEventObjectPic_ProfBirch_2), - obj_frame_tiles(gEventObjectPic_ProfBirch_3), - obj_frame_tiles(gEventObjectPic_ProfBirch_4), - obj_frame_tiles(gEventObjectPic_ProfBirch_5), - obj_frame_tiles(gEventObjectPic_ProfBirch_6), - obj_frame_tiles(gEventObjectPic_ProfBirch_7), - obj_frame_tiles(gEventObjectPic_ProfBirch_8), + overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 0), + overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 1), + overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 2), + overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 3), + overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 4), + overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 5), + overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 6), + overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 7), + overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man5[] = { - obj_frame_tiles(gEventObjectPic_Man5_0), - obj_frame_tiles(gEventObjectPic_Man5_1), - obj_frame_tiles(gEventObjectPic_Man5_2), - obj_frame_tiles(gEventObjectPic_Man5_3), - obj_frame_tiles(gEventObjectPic_Man5_4), - obj_frame_tiles(gEventObjectPic_Man5_5), - obj_frame_tiles(gEventObjectPic_Man5_6), - obj_frame_tiles(gEventObjectPic_Man5_7), - obj_frame_tiles(gEventObjectPic_Man5_8), + overworld_frame(gEventObjectPic_Man5, 16, 32, 0), + overworld_frame(gEventObjectPic_Man5, 16, 32, 1), + overworld_frame(gEventObjectPic_Man5, 16, 32, 2), + overworld_frame(gEventObjectPic_Man5, 16, 32, 3), + overworld_frame(gEventObjectPic_Man5, 16, 32, 4), + overworld_frame(gEventObjectPic_Man5, 16, 32, 5), + overworld_frame(gEventObjectPic_Man5, 16, 32, 6), + overworld_frame(gEventObjectPic_Man5, 16, 32, 7), + overworld_frame(gEventObjectPic_Man5, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man6[] = { - obj_frame_tiles(gEventObjectPic_Man6_0), - obj_frame_tiles(gEventObjectPic_Man6_1), - obj_frame_tiles(gEventObjectPic_Man6_2), - obj_frame_tiles(gEventObjectPic_Man6_3), - obj_frame_tiles(gEventObjectPic_Man6_4), - obj_frame_tiles(gEventObjectPic_Man6_5), - obj_frame_tiles(gEventObjectPic_Man6_6), - obj_frame_tiles(gEventObjectPic_Man6_7), - obj_frame_tiles(gEventObjectPic_Man6_8), + overworld_frame(gEventObjectPic_Man6, 16, 32, 0), + overworld_frame(gEventObjectPic_Man6, 16, 32, 1), + overworld_frame(gEventObjectPic_Man6, 16, 32, 2), + overworld_frame(gEventObjectPic_Man6, 16, 32, 3), + overworld_frame(gEventObjectPic_Man6, 16, 32, 4), + overworld_frame(gEventObjectPic_Man6, 16, 32, 5), + overworld_frame(gEventObjectPic_Man6, 16, 32, 6), + overworld_frame(gEventObjectPic_Man6, 16, 32, 7), + overworld_frame(gEventObjectPic_Man6, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_ReporterM[] = { - obj_frame_tiles(gEventObjectPic_ReporterM_0), - obj_frame_tiles(gEventObjectPic_ReporterM_1), - obj_frame_tiles(gEventObjectPic_ReporterM_2), - obj_frame_tiles(gEventObjectPic_ReporterM_3), - obj_frame_tiles(gEventObjectPic_ReporterM_4), - obj_frame_tiles(gEventObjectPic_ReporterM_5), - obj_frame_tiles(gEventObjectPic_ReporterM_6), - obj_frame_tiles(gEventObjectPic_ReporterM_7), - obj_frame_tiles(gEventObjectPic_ReporterM_8), + overworld_frame(gEventObjectPic_ReporterM, 16, 32, 0), + overworld_frame(gEventObjectPic_ReporterM, 16, 32, 1), + overworld_frame(gEventObjectPic_ReporterM, 16, 32, 2), + overworld_frame(gEventObjectPic_ReporterM, 16, 32, 3), + overworld_frame(gEventObjectPic_ReporterM, 16, 32, 4), + overworld_frame(gEventObjectPic_ReporterM, 16, 32, 5), + overworld_frame(gEventObjectPic_ReporterM, 16, 32, 6), + overworld_frame(gEventObjectPic_ReporterM, 16, 32, 7), + overworld_frame(gEventObjectPic_ReporterM, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_ReporterF[] = { - obj_frame_tiles(gEventObjectPic_ReporterF_0), - obj_frame_tiles(gEventObjectPic_ReporterF_1), - obj_frame_tiles(gEventObjectPic_ReporterF_2), - obj_frame_tiles(gEventObjectPic_ReporterF_3), - obj_frame_tiles(gEventObjectPic_ReporterF_4), - obj_frame_tiles(gEventObjectPic_ReporterF_5), - obj_frame_tiles(gEventObjectPic_ReporterF_6), - obj_frame_tiles(gEventObjectPic_ReporterF_7), - obj_frame_tiles(gEventObjectPic_ReporterF_8), + overworld_frame(gEventObjectPic_ReporterF, 16, 32, 0), + overworld_frame(gEventObjectPic_ReporterF, 16, 32, 1), + overworld_frame(gEventObjectPic_ReporterF, 16, 32, 2), + overworld_frame(gEventObjectPic_ReporterF, 16, 32, 3), + overworld_frame(gEventObjectPic_ReporterF, 16, 32, 4), + overworld_frame(gEventObjectPic_ReporterF, 16, 32, 5), + overworld_frame(gEventObjectPic_ReporterF, 16, 32, 6), + overworld_frame(gEventObjectPic_ReporterF, 16, 32, 7), + overworld_frame(gEventObjectPic_ReporterF, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MauvilleOldMan1[] = { - obj_frame_tiles(gEventObjectPic_MauvilleOldMan1_0), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan1_1), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan1_2), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan1_3), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan1_4), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan1_5), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan1_6), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan1_7), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan1_8), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 0), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 1), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 2), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 3), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 4), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 5), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 6), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 7), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MauvilleOldMan2[] = { - obj_frame_tiles(gEventObjectPic_MauvilleOldMan2_0), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan2_1), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan2_2), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan2_3), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan2_4), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan2_5), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan2_6), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan2_7), - obj_frame_tiles(gEventObjectPic_MauvilleOldMan2_8), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 0), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 1), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 2), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 3), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 4), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 5), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 6), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 7), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_UnusedNatuDoll[] = { @@ -859,53 +859,53 @@ const struct SpriteFrameImage gEventObjectPicTable_UnusedPorygon2Doll[] = { }; const struct SpriteFrameImage gEventObjectPicTable_CuttableTree[] = { - obj_frame_tiles(gEventObjectPic_CuttableTree_0), - obj_frame_tiles(gEventObjectPic_CuttableTree_1), - obj_frame_tiles(gEventObjectPic_CuttableTree_2), - obj_frame_tiles(gEventObjectPic_CuttableTree_3), + overworld_frame(gEventObjectPic_CuttableTree, 16, 16, 0), + overworld_frame(gEventObjectPic_CuttableTree, 16, 16, 1), + overworld_frame(gEventObjectPic_CuttableTree, 16, 16, 2), + overworld_frame(gEventObjectPic_CuttableTree, 16, 16, 3), }; const struct SpriteFrameImage gEventObjectPicTable_MartEmployee[] = { - obj_frame_tiles(gEventObjectPic_MartEmployee_0), - obj_frame_tiles(gEventObjectPic_MartEmployee_1), - obj_frame_tiles(gEventObjectPic_MartEmployee_2), - obj_frame_tiles(gEventObjectPic_MartEmployee_3), - obj_frame_tiles(gEventObjectPic_MartEmployee_4), - obj_frame_tiles(gEventObjectPic_MartEmployee_5), - obj_frame_tiles(gEventObjectPic_MartEmployee_6), - obj_frame_tiles(gEventObjectPic_MartEmployee_7), - obj_frame_tiles(gEventObjectPic_MartEmployee_8), + overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 0), + overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 1), + overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 2), + overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 3), + overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 4), + overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 5), + overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 6), + overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 7), + overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RooftopSaleWoman[] = { - obj_frame_tiles(gEventObjectPic_RooftopSaleWoman_0), - obj_frame_tiles(gEventObjectPic_RooftopSaleWoman_1), - obj_frame_tiles(gEventObjectPic_RooftopSaleWoman_2), - obj_frame_tiles(gEventObjectPic_RooftopSaleWoman_3), - obj_frame_tiles(gEventObjectPic_RooftopSaleWoman_4), - obj_frame_tiles(gEventObjectPic_RooftopSaleWoman_5), - obj_frame_tiles(gEventObjectPic_RooftopSaleWoman_6), - obj_frame_tiles(gEventObjectPic_RooftopSaleWoman_7), - obj_frame_tiles(gEventObjectPic_RooftopSaleWoman_8), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 0), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 1), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 2), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 3), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 4), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 5), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 6), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 7), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Teala[] = { - obj_frame_tiles(gEventObjectPic_Teala_0), - obj_frame_tiles(gEventObjectPic_Teala_1), - obj_frame_tiles(gEventObjectPic_Teala_2), - obj_frame_tiles(gEventObjectPic_Teala_3), - obj_frame_tiles(gEventObjectPic_Teala_4), - obj_frame_tiles(gEventObjectPic_Teala_5), - obj_frame_tiles(gEventObjectPic_Teala_6), - obj_frame_tiles(gEventObjectPic_Teala_7), - obj_frame_tiles(gEventObjectPic_Teala_8), + overworld_frame(gEventObjectPic_Teala, 16, 32, 0), + overworld_frame(gEventObjectPic_Teala, 16, 32, 1), + overworld_frame(gEventObjectPic_Teala, 16, 32, 2), + overworld_frame(gEventObjectPic_Teala, 16, 32, 3), + overworld_frame(gEventObjectPic_Teala, 16, 32, 4), + overworld_frame(gEventObjectPic_Teala, 16, 32, 5), + overworld_frame(gEventObjectPic_Teala, 16, 32, 6), + overworld_frame(gEventObjectPic_Teala, 16, 32, 7), + overworld_frame(gEventObjectPic_Teala, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BreakableRock[] = { - obj_frame_tiles(gEventObjectPic_BreakableRock_0), - obj_frame_tiles(gEventObjectPic_BreakableRock_1), - obj_frame_tiles(gEventObjectPic_BreakableRock_2), - obj_frame_tiles(gEventObjectPic_BreakableRock_3), + overworld_frame(gEventObjectPic_BreakableRock, 16, 16, 0), + overworld_frame(gEventObjectPic_BreakableRock, 16, 16, 1), + overworld_frame(gEventObjectPic_BreakableRock, 16, 16, 2), + overworld_frame(gEventObjectPic_BreakableRock, 16, 16, 3), }; const struct SpriteFrameImage gEventObjectPicTable_PushableBoulder[] = { @@ -913,15 +913,15 @@ const struct SpriteFrameImage gEventObjectPicTable_PushableBoulder[] = { }; const struct SpriteFrameImage gEventObjectPicTable_MrBrineysBoat[] = { - obj_frame_tiles(gEventObjectPic_MrBrineysBoat_0), - obj_frame_tiles(gEventObjectPic_MrBrineysBoat_1), - obj_frame_tiles(gEventObjectPic_MrBrineysBoat_2), - obj_frame_tiles(gEventObjectPic_MrBrineysBoat_0), - obj_frame_tiles(gEventObjectPic_MrBrineysBoat_0), - obj_frame_tiles(gEventObjectPic_MrBrineysBoat_1), - obj_frame_tiles(gEventObjectPic_MrBrineysBoat_1), - obj_frame_tiles(gEventObjectPic_MrBrineysBoat_2), - obj_frame_tiles(gEventObjectPic_MrBrineysBoat_2), + overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 0), + overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 1), + overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 2), + overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 0), + overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 0), + overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 1), + overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 1), + overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 2), + overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Truck[] = { @@ -929,27 +929,27 @@ const struct SpriteFrameImage gEventObjectPicTable_Truck[] = { }; const struct SpriteFrameImage gEventObjectPicTable_VigorothCarryingBox[] = { - obj_frame_tiles(gEventObjectPic_VigorothCarryingBox_0), - obj_frame_tiles(gEventObjectPic_VigorothCarryingBox_0), - obj_frame_tiles(gEventObjectPic_VigorothCarryingBox_0), - obj_frame_tiles(gEventObjectPic_VigorothCarryingBox_1), - obj_frame_tiles(gEventObjectPic_VigorothCarryingBox_2), - obj_frame_tiles(gEventObjectPic_VigorothCarryingBox_1), - obj_frame_tiles(gEventObjectPic_VigorothCarryingBox_2), - obj_frame_tiles(gEventObjectPic_VigorothCarryingBox_1), - obj_frame_tiles(gEventObjectPic_VigorothCarryingBox_2), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 0), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 0), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 0), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 1), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 2), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 1), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 2), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 1), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_VigorothFacingAway[] = { - obj_frame_tiles(gEventObjectPic_VigorothFacingAway_0), - obj_frame_tiles(gEventObjectPic_VigorothFacingAway_0), - obj_frame_tiles(gEventObjectPic_VigorothFacingAway_0), - obj_frame_tiles(gEventObjectPic_VigorothFacingAway_1), - obj_frame_tiles(gEventObjectPic_VigorothFacingAway_1), - obj_frame_tiles(gEventObjectPic_VigorothFacingAway_1), - obj_frame_tiles(gEventObjectPic_VigorothFacingAway_1), - obj_frame_tiles(gEventObjectPic_VigorothFacingAway_1), - obj_frame_tiles(gEventObjectPic_VigorothFacingAway_1), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 3), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 3), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 3), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), + overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), }; const struct SpriteFrameImage gEventObjectPicTable_BirchsBag[] = { @@ -957,149 +957,149 @@ const struct SpriteFrameImage gEventObjectPicTable_BirchsBag[] = { }; const struct SpriteFrameImage gEventObjectPicTable_EnemyZigzagoon[] = { - obj_frame_tiles(gEventObjectPic_EnemyZigzagoon_0), - obj_frame_tiles(gEventObjectPic_EnemyZigzagoon_1), - obj_frame_tiles(gEventObjectPic_EnemyZigzagoon_2), - obj_frame_tiles(gEventObjectPic_EnemyZigzagoon_3), - obj_frame_tiles(gEventObjectPic_EnemyZigzagoon_4), - obj_frame_tiles(gEventObjectPic_EnemyZigzagoon_5), - obj_frame_tiles(gEventObjectPic_EnemyZigzagoon_6), - obj_frame_tiles(gEventObjectPic_EnemyZigzagoon_7), - obj_frame_tiles(gEventObjectPic_EnemyZigzagoon_8), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 0), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 1), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 2), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 3), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 4), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 5), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 6), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 7), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Poochyena[] = { - obj_frame_tiles(gEventObjectPic_Poochyena_0), - obj_frame_tiles(gEventObjectPic_Poochyena_1), - obj_frame_tiles(gEventObjectPic_Poochyena_2), - obj_frame_tiles(gEventObjectPic_Poochyena_3), - obj_frame_tiles(gEventObjectPic_Poochyena_4), - obj_frame_tiles(gEventObjectPic_Poochyena_5), - obj_frame_tiles(gEventObjectPic_Poochyena_6), - obj_frame_tiles(gEventObjectPic_Poochyena_7), - obj_frame_tiles(gEventObjectPic_Poochyena_8), + overworld_frame(gEventObjectPic_Poochyena, 32, 32, 0), + overworld_frame(gEventObjectPic_Poochyena, 32, 32, 1), + overworld_frame(gEventObjectPic_Poochyena, 32, 32, 2), + overworld_frame(gEventObjectPic_Poochyena, 32, 32, 3), + overworld_frame(gEventObjectPic_Poochyena, 32, 32, 4), + overworld_frame(gEventObjectPic_Poochyena, 32, 32, 5), + overworld_frame(gEventObjectPic_Poochyena, 32, 32, 6), + overworld_frame(gEventObjectPic_Poochyena, 32, 32, 7), + overworld_frame(gEventObjectPic_Poochyena, 32, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Artist[] = { - obj_frame_tiles(gEventObjectPic_Artist_0), - obj_frame_tiles(gEventObjectPic_Artist_1), - obj_frame_tiles(gEventObjectPic_Artist_2), - obj_frame_tiles(gEventObjectPic_Artist_3), - obj_frame_tiles(gEventObjectPic_Artist_4), - obj_frame_tiles(gEventObjectPic_Artist_5), - obj_frame_tiles(gEventObjectPic_Artist_6), - obj_frame_tiles(gEventObjectPic_Artist_7), - obj_frame_tiles(gEventObjectPic_Artist_8), + overworld_frame(gEventObjectPic_Artist, 16, 32, 0), + overworld_frame(gEventObjectPic_Artist, 16, 32, 1), + overworld_frame(gEventObjectPic_Artist, 16, 32, 2), + overworld_frame(gEventObjectPic_Artist, 16, 32, 3), + overworld_frame(gEventObjectPic_Artist, 16, 32, 4), + overworld_frame(gEventObjectPic_Artist, 16, 32, 5), + overworld_frame(gEventObjectPic_Artist, 16, 32, 6), + overworld_frame(gEventObjectPic_Artist, 16, 32, 7), + overworld_frame(gEventObjectPic_Artist, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MayNormal[] = { - obj_frame_tiles(gEventObjectPic_MayNormal_0), - obj_frame_tiles(gEventObjectPic_MayNormal_1), - obj_frame_tiles(gEventObjectPic_MayNormal_2), - obj_frame_tiles(gEventObjectPic_MayNormal_3), - obj_frame_tiles(gEventObjectPic_MayNormal_4), - obj_frame_tiles(gEventObjectPic_MayNormal_5), - obj_frame_tiles(gEventObjectPic_MayNormal_6), - obj_frame_tiles(gEventObjectPic_MayNormal_7), - obj_frame_tiles(gEventObjectPic_MayNormal_8), - obj_frame_tiles(gEventObjectPic_MayNormal_9), - obj_frame_tiles(gEventObjectPic_MayNormal_10), - obj_frame_tiles(gEventObjectPic_MayNormal_11), - obj_frame_tiles(gEventObjectPic_MayNormal_12), - obj_frame_tiles(gEventObjectPic_MayNormal_13), - obj_frame_tiles(gEventObjectPic_MayNormal_14), - obj_frame_tiles(gEventObjectPic_MayNormal_15), - obj_frame_tiles(gEventObjectPic_MayNormal_16), - obj_frame_tiles(gEventObjectPic_MayNormal_17), + overworld_frame(gEventObjectPic_MayNormal, 16, 32, 0), + overworld_frame(gEventObjectPic_MayNormal, 16, 32, 1), + overworld_frame(gEventObjectPic_MayNormal, 16, 32, 2), + overworld_frame(gEventObjectPic_MayNormal, 16, 32, 3), + overworld_frame(gEventObjectPic_MayNormal, 16, 32, 4), + overworld_frame(gEventObjectPic_MayNormal, 16, 32, 5), + overworld_frame(gEventObjectPic_MayNormal, 16, 32, 6), + overworld_frame(gEventObjectPic_MayNormal, 16, 32, 7), + overworld_frame(gEventObjectPic_MayNormal, 16, 32, 8), + overworld_frame(gEventObjectPic_MayRunning, 16, 32, 0), + overworld_frame(gEventObjectPic_MayRunning, 16, 32, 1), + overworld_frame(gEventObjectPic_MayRunning, 16, 32, 2), + overworld_frame(gEventObjectPic_MayRunning, 16, 32, 3), + overworld_frame(gEventObjectPic_MayRunning, 16, 32, 4), + overworld_frame(gEventObjectPic_MayRunning, 16, 32, 5), + overworld_frame(gEventObjectPic_MayRunning, 16, 32, 6), + overworld_frame(gEventObjectPic_MayRunning, 16, 32, 7), + overworld_frame(gEventObjectPic_MayRunning, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MayMachBike[] = { - obj_frame_tiles(gEventObjectPic_MayMachBike_0), - obj_frame_tiles(gEventObjectPic_MayMachBike_1), - obj_frame_tiles(gEventObjectPic_MayMachBike_2), - obj_frame_tiles(gEventObjectPic_MayMachBike_3), - obj_frame_tiles(gEventObjectPic_MayMachBike_4), - obj_frame_tiles(gEventObjectPic_MayMachBike_5), - obj_frame_tiles(gEventObjectPic_MayMachBike_6), - obj_frame_tiles(gEventObjectPic_MayMachBike_7), - obj_frame_tiles(gEventObjectPic_MayMachBike_8), + overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 0), + overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 1), + overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 2), + overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 3), + overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 4), + overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 5), + overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 6), + overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 7), + overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MayAcroBike[] = { - obj_frame_tiles(gEventObjectPic_MayAcroBike_0), - obj_frame_tiles(gEventObjectPic_MayAcroBike_1), - obj_frame_tiles(gEventObjectPic_MayAcroBike_2), - obj_frame_tiles(gEventObjectPic_MayAcroBike_3), - obj_frame_tiles(gEventObjectPic_MayAcroBike_4), - obj_frame_tiles(gEventObjectPic_MayAcroBike_5), - obj_frame_tiles(gEventObjectPic_MayAcroBike_6), - obj_frame_tiles(gEventObjectPic_MayAcroBike_7), - obj_frame_tiles(gEventObjectPic_MayAcroBike_8), - obj_frame_tiles(gEventObjectPic_MayAcroBike_9), - obj_frame_tiles(gEventObjectPic_MayAcroBike_10), - obj_frame_tiles(gEventObjectPic_MayAcroBike_11), - obj_frame_tiles(gEventObjectPic_MayAcroBike_12), - obj_frame_tiles(gEventObjectPic_MayAcroBike_13), - obj_frame_tiles(gEventObjectPic_MayAcroBike_14), - obj_frame_tiles(gEventObjectPic_MayAcroBike_15), - obj_frame_tiles(gEventObjectPic_MayAcroBike_16), - obj_frame_tiles(gEventObjectPic_MayAcroBike_17), - obj_frame_tiles(gEventObjectPic_MayAcroBike_18), - obj_frame_tiles(gEventObjectPic_MayAcroBike_19), - obj_frame_tiles(gEventObjectPic_MayAcroBike_20), - obj_frame_tiles(gEventObjectPic_MayAcroBike_21), - obj_frame_tiles(gEventObjectPic_MayAcroBike_22), - obj_frame_tiles(gEventObjectPic_MayAcroBike_23), - obj_frame_tiles(gEventObjectPic_MayAcroBike_24), - obj_frame_tiles(gEventObjectPic_MayAcroBike_25), - obj_frame_tiles(gEventObjectPic_MayAcroBike_26), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 0), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 1), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 2), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 3), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 4), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 5), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 6), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 7), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 8), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 9), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 10), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 11), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 12), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 13), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 14), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 15), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 16), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 17), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 18), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 19), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 20), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 21), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 22), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 23), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 24), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 25), + overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 26), }; const struct SpriteFrameImage gEventObjectPicTable_MaySurfing[] = { - obj_frame_tiles(gEventObjectPic_MaySurfing_0), - obj_frame_tiles(gEventObjectPic_MaySurfing_1), - obj_frame_tiles(gEventObjectPic_MaySurfing_2), - obj_frame_tiles(gEventObjectPic_MaySurfing_0), - obj_frame_tiles(gEventObjectPic_MaySurfing_0), - obj_frame_tiles(gEventObjectPic_MaySurfing_1), - obj_frame_tiles(gEventObjectPic_MaySurfing_1), - obj_frame_tiles(gEventObjectPic_MaySurfing_2), - obj_frame_tiles(gEventObjectPic_MaySurfing_2), - obj_frame_tiles(gEventObjectPic_MaySurfing_3), - obj_frame_tiles(gEventObjectPic_MaySurfing_4), - obj_frame_tiles(gEventObjectPic_MaySurfing_5), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 0), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 1), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 2), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 0), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 0), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 1), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 1), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 2), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 2), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 3), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 4), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 5), }; const struct SpriteFrameImage gEventObjectPicTable_MayUnderwater[] = { - obj_frame_tiles(gEventObjectPic_MayUnderwater_0), - obj_frame_tiles(gEventObjectPic_MayUnderwater_1), - obj_frame_tiles(gEventObjectPic_MayUnderwater_2), - obj_frame_tiles(gEventObjectPic_MayUnderwater_0), - obj_frame_tiles(gEventObjectPic_MayUnderwater_0), - obj_frame_tiles(gEventObjectPic_MayUnderwater_1), - obj_frame_tiles(gEventObjectPic_MayUnderwater_1), - obj_frame_tiles(gEventObjectPic_MayUnderwater_2), - obj_frame_tiles(gEventObjectPic_MayUnderwater_2), + overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 0), + overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 1), + overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 2), + overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 0), + overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 0), + overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 1), + overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 1), + overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 2), + overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_MayFieldMove[] = { - obj_frame_tiles(gEventObjectPic_MayFieldMove_0), - obj_frame_tiles(gEventObjectPic_MayFieldMove_1), - obj_frame_tiles(gEventObjectPic_MayFieldMove_2), - obj_frame_tiles(gEventObjectPic_MayFieldMove_3), - obj_frame_tiles(gEventObjectPic_MayFieldMove_4), + overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 0), + overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 1), + overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 2), + overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 3), + overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 4), }; const struct SpriteFrameImage gEventObjectPicTable_Cameraman[] = { - obj_frame_tiles(gEventObjectPic_Cameraman_0), - obj_frame_tiles(gEventObjectPic_Cameraman_1), - obj_frame_tiles(gEventObjectPic_Cameraman_2), - obj_frame_tiles(gEventObjectPic_Cameraman_3), - obj_frame_tiles(gEventObjectPic_Cameraman_4), - obj_frame_tiles(gEventObjectPic_Cameraman_5), - obj_frame_tiles(gEventObjectPic_Cameraman_6), - obj_frame_tiles(gEventObjectPic_Cameraman_7), - obj_frame_tiles(gEventObjectPic_Cameraman_8), + overworld_frame(gEventObjectPic_Cameraman, 16, 32, 0), + overworld_frame(gEventObjectPic_Cameraman, 16, 32, 1), + overworld_frame(gEventObjectPic_Cameraman, 16, 32, 2), + overworld_frame(gEventObjectPic_Cameraman, 16, 32, 3), + overworld_frame(gEventObjectPic_Cameraman, 16, 32, 4), + overworld_frame(gEventObjectPic_Cameraman, 16, 32, 5), + overworld_frame(gEventObjectPic_Cameraman, 16, 32, 6), + overworld_frame(gEventObjectPic_Cameraman, 16, 32, 7), + overworld_frame(gEventObjectPic_Cameraman, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MovingBox[] = { @@ -1111,309 +1111,309 @@ const struct SpriteFrameImage gEventObjectPicTable_CableCar[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Scientist2[] = { - obj_frame_tiles(gEventObjectPic_Scientist2_0), - obj_frame_tiles(gEventObjectPic_Scientist2_1), - obj_frame_tiles(gEventObjectPic_Scientist2_2), - obj_frame_tiles(gEventObjectPic_Scientist2_3), - obj_frame_tiles(gEventObjectPic_Scientist2_4), - obj_frame_tiles(gEventObjectPic_Scientist2_5), - obj_frame_tiles(gEventObjectPic_Scientist2_6), - obj_frame_tiles(gEventObjectPic_Scientist2_7), - obj_frame_tiles(gEventObjectPic_Scientist2_8), + overworld_frame(gEventObjectPic_Scientist2, 16, 32, 0), + overworld_frame(gEventObjectPic_Scientist2, 16, 32, 1), + overworld_frame(gEventObjectPic_Scientist2, 16, 32, 2), + overworld_frame(gEventObjectPic_Scientist2, 16, 32, 3), + overworld_frame(gEventObjectPic_Scientist2, 16, 32, 4), + overworld_frame(gEventObjectPic_Scientist2, 16, 32, 5), + overworld_frame(gEventObjectPic_Scientist2, 16, 32, 6), + overworld_frame(gEventObjectPic_Scientist2, 16, 32, 7), + overworld_frame(gEventObjectPic_Scientist2, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man7[] = { - obj_frame_tiles(gEventObjectPic_Man7_0), - obj_frame_tiles(gEventObjectPic_Man7_1), - obj_frame_tiles(gEventObjectPic_Man7_2), - obj_frame_tiles(gEventObjectPic_Man7_3), - obj_frame_tiles(gEventObjectPic_Man7_4), - obj_frame_tiles(gEventObjectPic_Man7_5), - obj_frame_tiles(gEventObjectPic_Man7_6), - obj_frame_tiles(gEventObjectPic_Man7_7), - obj_frame_tiles(gEventObjectPic_Man7_8), + overworld_frame(gEventObjectPic_Man7, 16, 32, 0), + overworld_frame(gEventObjectPic_Man7, 16, 32, 1), + overworld_frame(gEventObjectPic_Man7, 16, 32, 2), + overworld_frame(gEventObjectPic_Man7, 16, 32, 3), + overworld_frame(gEventObjectPic_Man7, 16, 32, 4), + overworld_frame(gEventObjectPic_Man7, 16, 32, 5), + overworld_frame(gEventObjectPic_Man7, 16, 32, 6), + overworld_frame(gEventObjectPic_Man7, 16, 32, 7), + overworld_frame(gEventObjectPic_Man7, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_AquaMemberM[] = { - obj_frame_tiles(gEventObjectPic_AquaMemberM_0), - obj_frame_tiles(gEventObjectPic_AquaMemberM_1), - obj_frame_tiles(gEventObjectPic_AquaMemberM_2), - obj_frame_tiles(gEventObjectPic_AquaMemberM_3), - obj_frame_tiles(gEventObjectPic_AquaMemberM_4), - obj_frame_tiles(gEventObjectPic_AquaMemberM_5), - obj_frame_tiles(gEventObjectPic_AquaMemberM_6), - obj_frame_tiles(gEventObjectPic_AquaMemberM_7), - obj_frame_tiles(gEventObjectPic_AquaMemberM_8), + overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 0), + overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 1), + overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 2), + overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 3), + overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 4), + overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 5), + overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 6), + overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 7), + overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_AquaMemberF[] = { - obj_frame_tiles(gEventObjectPic_AquaMemberF_0), - obj_frame_tiles(gEventObjectPic_AquaMemberF_1), - obj_frame_tiles(gEventObjectPic_AquaMemberF_2), - obj_frame_tiles(gEventObjectPic_AquaMemberF_3), - obj_frame_tiles(gEventObjectPic_AquaMemberF_4), - obj_frame_tiles(gEventObjectPic_AquaMemberF_5), - obj_frame_tiles(gEventObjectPic_AquaMemberF_6), - obj_frame_tiles(gEventObjectPic_AquaMemberF_7), - obj_frame_tiles(gEventObjectPic_AquaMemberF_8), + overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 0), + overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 1), + overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 2), + overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 3), + overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 4), + overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 5), + overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 6), + overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 7), + overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MagmaMemberM[] = { - obj_frame_tiles(gEventObjectPic_MagmaMemberM_0), - obj_frame_tiles(gEventObjectPic_MagmaMemberM_1), - obj_frame_tiles(gEventObjectPic_MagmaMemberM_2), - obj_frame_tiles(gEventObjectPic_MagmaMemberM_3), - obj_frame_tiles(gEventObjectPic_MagmaMemberM_4), - obj_frame_tiles(gEventObjectPic_MagmaMemberM_5), - obj_frame_tiles(gEventObjectPic_MagmaMemberM_6), - obj_frame_tiles(gEventObjectPic_MagmaMemberM_7), - obj_frame_tiles(gEventObjectPic_MagmaMemberM_8), + overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 0), + overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 1), + overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 2), + overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 3), + overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 4), + overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 5), + overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 6), + overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 7), + overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MagmaMemberF[] = { - obj_frame_tiles(gEventObjectPic_MagmaMemberF_0), - obj_frame_tiles(gEventObjectPic_MagmaMemberF_1), - obj_frame_tiles(gEventObjectPic_MagmaMemberF_2), - obj_frame_tiles(gEventObjectPic_MagmaMemberF_3), - obj_frame_tiles(gEventObjectPic_MagmaMemberF_4), - obj_frame_tiles(gEventObjectPic_MagmaMemberF_5), - obj_frame_tiles(gEventObjectPic_MagmaMemberF_6), - obj_frame_tiles(gEventObjectPic_MagmaMemberF_7), - obj_frame_tiles(gEventObjectPic_MagmaMemberF_8), + overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 0), + overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 1), + overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 2), + overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 3), + overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 4), + overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 5), + overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 6), + overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 7), + overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Sidney[] = { - obj_frame_tiles(gEventObjectPic_Sidney_0), - obj_frame_tiles(gEventObjectPic_Sidney_1), - obj_frame_tiles(gEventObjectPic_Sidney_2), - obj_frame_tiles(gEventObjectPic_Sidney_0), - obj_frame_tiles(gEventObjectPic_Sidney_0), - obj_frame_tiles(gEventObjectPic_Sidney_1), - obj_frame_tiles(gEventObjectPic_Sidney_1), - obj_frame_tiles(gEventObjectPic_Sidney_2), - obj_frame_tiles(gEventObjectPic_Sidney_2), + overworld_frame(gEventObjectPic_Sidney, 16, 32, 0), + overworld_frame(gEventObjectPic_Sidney, 16, 32, 1), + overworld_frame(gEventObjectPic_Sidney, 16, 32, 2), + overworld_frame(gEventObjectPic_Sidney, 16, 32, 0), + overworld_frame(gEventObjectPic_Sidney, 16, 32, 0), + overworld_frame(gEventObjectPic_Sidney, 16, 32, 1), + overworld_frame(gEventObjectPic_Sidney, 16, 32, 1), + overworld_frame(gEventObjectPic_Sidney, 16, 32, 2), + overworld_frame(gEventObjectPic_Sidney, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Phoebe[] = { - obj_frame_tiles(gEventObjectPic_Phoebe_0), - obj_frame_tiles(gEventObjectPic_Phoebe_1), - obj_frame_tiles(gEventObjectPic_Phoebe_2), - obj_frame_tiles(gEventObjectPic_Phoebe_0), - obj_frame_tiles(gEventObjectPic_Phoebe_0), - obj_frame_tiles(gEventObjectPic_Phoebe_1), - obj_frame_tiles(gEventObjectPic_Phoebe_1), - obj_frame_tiles(gEventObjectPic_Phoebe_2), - obj_frame_tiles(gEventObjectPic_Phoebe_2), + overworld_frame(gEventObjectPic_Phoebe, 16, 32, 0), + overworld_frame(gEventObjectPic_Phoebe, 16, 32, 1), + overworld_frame(gEventObjectPic_Phoebe, 16, 32, 2), + overworld_frame(gEventObjectPic_Phoebe, 16, 32, 0), + overworld_frame(gEventObjectPic_Phoebe, 16, 32, 0), + overworld_frame(gEventObjectPic_Phoebe, 16, 32, 1), + overworld_frame(gEventObjectPic_Phoebe, 16, 32, 1), + overworld_frame(gEventObjectPic_Phoebe, 16, 32, 2), + overworld_frame(gEventObjectPic_Phoebe, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Glacia[] = { - obj_frame_tiles(gEventObjectPic_Glacia_0), - obj_frame_tiles(gEventObjectPic_Glacia_1), - obj_frame_tiles(gEventObjectPic_Glacia_2), - obj_frame_tiles(gEventObjectPic_Glacia_0), - obj_frame_tiles(gEventObjectPic_Glacia_0), - obj_frame_tiles(gEventObjectPic_Glacia_1), - obj_frame_tiles(gEventObjectPic_Glacia_1), - obj_frame_tiles(gEventObjectPic_Glacia_2), - obj_frame_tiles(gEventObjectPic_Glacia_2), + overworld_frame(gEventObjectPic_Glacia, 16, 32, 0), + overworld_frame(gEventObjectPic_Glacia, 16, 32, 1), + overworld_frame(gEventObjectPic_Glacia, 16, 32, 2), + overworld_frame(gEventObjectPic_Glacia, 16, 32, 0), + overworld_frame(gEventObjectPic_Glacia, 16, 32, 0), + overworld_frame(gEventObjectPic_Glacia, 16, 32, 1), + overworld_frame(gEventObjectPic_Glacia, 16, 32, 1), + overworld_frame(gEventObjectPic_Glacia, 16, 32, 2), + overworld_frame(gEventObjectPic_Glacia, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Drake[] = { - obj_frame_tiles(gEventObjectPic_Drake_0), - obj_frame_tiles(gEventObjectPic_Drake_1), - obj_frame_tiles(gEventObjectPic_Drake_2), - obj_frame_tiles(gEventObjectPic_Drake_0), - obj_frame_tiles(gEventObjectPic_Drake_0), - obj_frame_tiles(gEventObjectPic_Drake_1), - obj_frame_tiles(gEventObjectPic_Drake_1), - obj_frame_tiles(gEventObjectPic_Drake_2), - obj_frame_tiles(gEventObjectPic_Drake_2), + overworld_frame(gEventObjectPic_Drake, 16, 32, 0), + overworld_frame(gEventObjectPic_Drake, 16, 32, 1), + overworld_frame(gEventObjectPic_Drake, 16, 32, 2), + overworld_frame(gEventObjectPic_Drake, 16, 32, 0), + overworld_frame(gEventObjectPic_Drake, 16, 32, 0), + overworld_frame(gEventObjectPic_Drake, 16, 32, 1), + overworld_frame(gEventObjectPic_Drake, 16, 32, 1), + overworld_frame(gEventObjectPic_Drake, 16, 32, 2), + overworld_frame(gEventObjectPic_Drake, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Roxanne[] = { - obj_frame_tiles(gEventObjectPic_Roxanne_0), - obj_frame_tiles(gEventObjectPic_Roxanne_1), - obj_frame_tiles(gEventObjectPic_Roxanne_2), - obj_frame_tiles(gEventObjectPic_Roxanne_0), - obj_frame_tiles(gEventObjectPic_Roxanne_0), - obj_frame_tiles(gEventObjectPic_Roxanne_1), - obj_frame_tiles(gEventObjectPic_Roxanne_1), - obj_frame_tiles(gEventObjectPic_Roxanne_2), - obj_frame_tiles(gEventObjectPic_Roxanne_2), + overworld_frame(gEventObjectPic_Roxanne, 16, 32, 0), + overworld_frame(gEventObjectPic_Roxanne, 16, 32, 1), + overworld_frame(gEventObjectPic_Roxanne, 16, 32, 2), + overworld_frame(gEventObjectPic_Roxanne, 16, 32, 0), + overworld_frame(gEventObjectPic_Roxanne, 16, 32, 0), + overworld_frame(gEventObjectPic_Roxanne, 16, 32, 1), + overworld_frame(gEventObjectPic_Roxanne, 16, 32, 1), + overworld_frame(gEventObjectPic_Roxanne, 16, 32, 2), + overworld_frame(gEventObjectPic_Roxanne, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Brawly[] = { - obj_frame_tiles(gEventObjectPic_Brawly_0), - obj_frame_tiles(gEventObjectPic_Brawly_1), - obj_frame_tiles(gEventObjectPic_Brawly_2), - obj_frame_tiles(gEventObjectPic_Brawly_0), - obj_frame_tiles(gEventObjectPic_Brawly_0), - obj_frame_tiles(gEventObjectPic_Brawly_1), - obj_frame_tiles(gEventObjectPic_Brawly_1), - obj_frame_tiles(gEventObjectPic_Brawly_2), - obj_frame_tiles(gEventObjectPic_Brawly_2), + overworld_frame(gEventObjectPic_Brawly, 16, 32, 0), + overworld_frame(gEventObjectPic_Brawly, 16, 32, 1), + overworld_frame(gEventObjectPic_Brawly, 16, 32, 2), + overworld_frame(gEventObjectPic_Brawly, 16, 32, 0), + overworld_frame(gEventObjectPic_Brawly, 16, 32, 0), + overworld_frame(gEventObjectPic_Brawly, 16, 32, 1), + overworld_frame(gEventObjectPic_Brawly, 16, 32, 1), + overworld_frame(gEventObjectPic_Brawly, 16, 32, 2), + overworld_frame(gEventObjectPic_Brawly, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Wattson[] = { - obj_frame_tiles(gEventObjectPic_Wattson_0), - obj_frame_tiles(gEventObjectPic_Wattson_1), - obj_frame_tiles(gEventObjectPic_Wattson_2), - obj_frame_tiles(gEventObjectPic_Wattson_0), - obj_frame_tiles(gEventObjectPic_Wattson_0), - obj_frame_tiles(gEventObjectPic_Wattson_1), - obj_frame_tiles(gEventObjectPic_Wattson_1), - obj_frame_tiles(gEventObjectPic_Wattson_2), - obj_frame_tiles(gEventObjectPic_Wattson_2), + overworld_frame(gEventObjectPic_Wattson, 16, 32, 0), + overworld_frame(gEventObjectPic_Wattson, 16, 32, 1), + overworld_frame(gEventObjectPic_Wattson, 16, 32, 2), + overworld_frame(gEventObjectPic_Wattson, 16, 32, 0), + overworld_frame(gEventObjectPic_Wattson, 16, 32, 0), + overworld_frame(gEventObjectPic_Wattson, 16, 32, 1), + overworld_frame(gEventObjectPic_Wattson, 16, 32, 1), + overworld_frame(gEventObjectPic_Wattson, 16, 32, 2), + overworld_frame(gEventObjectPic_Wattson, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Flannery[] = { - obj_frame_tiles(gEventObjectPic_Flannery_0), - obj_frame_tiles(gEventObjectPic_Flannery_1), - obj_frame_tiles(gEventObjectPic_Flannery_2), - obj_frame_tiles(gEventObjectPic_Flannery_0), - obj_frame_tiles(gEventObjectPic_Flannery_0), - obj_frame_tiles(gEventObjectPic_Flannery_1), - obj_frame_tiles(gEventObjectPic_Flannery_1), - obj_frame_tiles(gEventObjectPic_Flannery_2), - obj_frame_tiles(gEventObjectPic_Flannery_2), + overworld_frame(gEventObjectPic_Flannery, 16, 32, 0), + overworld_frame(gEventObjectPic_Flannery, 16, 32, 1), + overworld_frame(gEventObjectPic_Flannery, 16, 32, 2), + overworld_frame(gEventObjectPic_Flannery, 16, 32, 0), + overworld_frame(gEventObjectPic_Flannery, 16, 32, 0), + overworld_frame(gEventObjectPic_Flannery, 16, 32, 1), + overworld_frame(gEventObjectPic_Flannery, 16, 32, 1), + overworld_frame(gEventObjectPic_Flannery, 16, 32, 2), + overworld_frame(gEventObjectPic_Flannery, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Norman[] = { - obj_frame_tiles(gEventObjectPic_Norman_0), - obj_frame_tiles(gEventObjectPic_Norman_1), - obj_frame_tiles(gEventObjectPic_Norman_2), - obj_frame_tiles(gEventObjectPic_Norman_3), - obj_frame_tiles(gEventObjectPic_Norman_4), - obj_frame_tiles(gEventObjectPic_Norman_5), - obj_frame_tiles(gEventObjectPic_Norman_6), - obj_frame_tiles(gEventObjectPic_Norman_7), - obj_frame_tiles(gEventObjectPic_Norman_8), + overworld_frame(gEventObjectPic_Norman, 16, 32, 0), + overworld_frame(gEventObjectPic_Norman, 16, 32, 1), + overworld_frame(gEventObjectPic_Norman, 16, 32, 2), + overworld_frame(gEventObjectPic_Norman, 16, 32, 3), + overworld_frame(gEventObjectPic_Norman, 16, 32, 4), + overworld_frame(gEventObjectPic_Norman, 16, 32, 5), + overworld_frame(gEventObjectPic_Norman, 16, 32, 6), + overworld_frame(gEventObjectPic_Norman, 16, 32, 7), + overworld_frame(gEventObjectPic_Norman, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Winona[] = { - obj_frame_tiles(gEventObjectPic_Winona_0), - obj_frame_tiles(gEventObjectPic_Winona_1), - obj_frame_tiles(gEventObjectPic_Winona_2), - obj_frame_tiles(gEventObjectPic_Winona_0), - obj_frame_tiles(gEventObjectPic_Winona_0), - obj_frame_tiles(gEventObjectPic_Winona_1), - obj_frame_tiles(gEventObjectPic_Winona_1), - obj_frame_tiles(gEventObjectPic_Winona_2), - obj_frame_tiles(gEventObjectPic_Winona_2), + overworld_frame(gEventObjectPic_Winona, 16, 32, 0), + overworld_frame(gEventObjectPic_Winona, 16, 32, 1), + overworld_frame(gEventObjectPic_Winona, 16, 32, 2), + overworld_frame(gEventObjectPic_Winona, 16, 32, 0), + overworld_frame(gEventObjectPic_Winona, 16, 32, 0), + overworld_frame(gEventObjectPic_Winona, 16, 32, 1), + overworld_frame(gEventObjectPic_Winona, 16, 32, 1), + overworld_frame(gEventObjectPic_Winona, 16, 32, 2), + overworld_frame(gEventObjectPic_Winona, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Liza[] = { - obj_frame_tiles(gEventObjectPic_Liza_0), - obj_frame_tiles(gEventObjectPic_Liza_1), - obj_frame_tiles(gEventObjectPic_Liza_2), - obj_frame_tiles(gEventObjectPic_Liza_0), - obj_frame_tiles(gEventObjectPic_Liza_0), - obj_frame_tiles(gEventObjectPic_Liza_1), - obj_frame_tiles(gEventObjectPic_Liza_1), - obj_frame_tiles(gEventObjectPic_Liza_2), - obj_frame_tiles(gEventObjectPic_Liza_2), + overworld_frame(gEventObjectPic_Liza, 16, 32, 0), + overworld_frame(gEventObjectPic_Liza, 16, 32, 1), + overworld_frame(gEventObjectPic_Liza, 16, 32, 2), + overworld_frame(gEventObjectPic_Liza, 16, 32, 0), + overworld_frame(gEventObjectPic_Liza, 16, 32, 0), + overworld_frame(gEventObjectPic_Liza, 16, 32, 1), + overworld_frame(gEventObjectPic_Liza, 16, 32, 1), + overworld_frame(gEventObjectPic_Liza, 16, 32, 2), + overworld_frame(gEventObjectPic_Liza, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Tate[] = { - obj_frame_tiles(gEventObjectPic_Tate_0), - obj_frame_tiles(gEventObjectPic_Tate_1), - obj_frame_tiles(gEventObjectPic_Tate_2), - obj_frame_tiles(gEventObjectPic_Tate_0), - obj_frame_tiles(gEventObjectPic_Tate_0), - obj_frame_tiles(gEventObjectPic_Tate_1), - obj_frame_tiles(gEventObjectPic_Tate_1), - obj_frame_tiles(gEventObjectPic_Tate_2), - obj_frame_tiles(gEventObjectPic_Tate_2), + overworld_frame(gEventObjectPic_Tate, 16, 32, 0), + overworld_frame(gEventObjectPic_Tate, 16, 32, 1), + overworld_frame(gEventObjectPic_Tate, 16, 32, 2), + overworld_frame(gEventObjectPic_Tate, 16, 32, 0), + overworld_frame(gEventObjectPic_Tate, 16, 32, 0), + overworld_frame(gEventObjectPic_Tate, 16, 32, 1), + overworld_frame(gEventObjectPic_Tate, 16, 32, 1), + overworld_frame(gEventObjectPic_Tate, 16, 32, 2), + overworld_frame(gEventObjectPic_Tate, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Wallace[] = { - obj_frame_tiles(gEventObjectPic_Wallace_0), - obj_frame_tiles(gEventObjectPic_Wallace_1), - obj_frame_tiles(gEventObjectPic_Wallace_2), - obj_frame_tiles(gEventObjectPic_Wallace_3), - obj_frame_tiles(gEventObjectPic_Wallace_4), - obj_frame_tiles(gEventObjectPic_Wallace_5), - obj_frame_tiles(gEventObjectPic_Wallace_6), - obj_frame_tiles(gEventObjectPic_Wallace_7), - obj_frame_tiles(gEventObjectPic_Wallace_8), + overworld_frame(gEventObjectPic_Wallace, 16, 32, 0), + overworld_frame(gEventObjectPic_Wallace, 16, 32, 1), + overworld_frame(gEventObjectPic_Wallace, 16, 32, 2), + overworld_frame(gEventObjectPic_Wallace, 16, 32, 3), + overworld_frame(gEventObjectPic_Wallace, 16, 32, 4), + overworld_frame(gEventObjectPic_Wallace, 16, 32, 5), + overworld_frame(gEventObjectPic_Wallace, 16, 32, 6), + overworld_frame(gEventObjectPic_Wallace, 16, 32, 7), + overworld_frame(gEventObjectPic_Wallace, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Steven[] = { - obj_frame_tiles(gEventObjectPic_Steven_0), - obj_frame_tiles(gEventObjectPic_Steven_1), - obj_frame_tiles(gEventObjectPic_Steven_2), - obj_frame_tiles(gEventObjectPic_Steven_3), - obj_frame_tiles(gEventObjectPic_Steven_4), - obj_frame_tiles(gEventObjectPic_Steven_5), - obj_frame_tiles(gEventObjectPic_Steven_6), - obj_frame_tiles(gEventObjectPic_Steven_7), - obj_frame_tiles(gEventObjectPic_Steven_8), + overworld_frame(gEventObjectPic_Steven, 16, 32, 0), + overworld_frame(gEventObjectPic_Steven, 16, 32, 1), + overworld_frame(gEventObjectPic_Steven, 16, 32, 2), + overworld_frame(gEventObjectPic_Steven, 16, 32, 3), + overworld_frame(gEventObjectPic_Steven, 16, 32, 4), + overworld_frame(gEventObjectPic_Steven, 16, 32, 5), + overworld_frame(gEventObjectPic_Steven, 16, 32, 6), + overworld_frame(gEventObjectPic_Steven, 16, 32, 7), + overworld_frame(gEventObjectPic_Steven, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Wally[] = { - obj_frame_tiles(gEventObjectPic_Wally_0), - obj_frame_tiles(gEventObjectPic_Wally_1), - obj_frame_tiles(gEventObjectPic_Wally_2), - obj_frame_tiles(gEventObjectPic_Wally_3), - obj_frame_tiles(gEventObjectPic_Wally_4), - obj_frame_tiles(gEventObjectPic_Wally_5), - obj_frame_tiles(gEventObjectPic_Wally_6), - obj_frame_tiles(gEventObjectPic_Wally_7), - obj_frame_tiles(gEventObjectPic_Wally_8), + overworld_frame(gEventObjectPic_Wally, 16, 32, 0), + overworld_frame(gEventObjectPic_Wally, 16, 32, 1), + overworld_frame(gEventObjectPic_Wally, 16, 32, 2), + overworld_frame(gEventObjectPic_Wally, 16, 32, 3), + overworld_frame(gEventObjectPic_Wally, 16, 32, 4), + overworld_frame(gEventObjectPic_Wally, 16, 32, 5), + overworld_frame(gEventObjectPic_Wally, 16, 32, 6), + overworld_frame(gEventObjectPic_Wally, 16, 32, 7), + overworld_frame(gEventObjectPic_Wally, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RubySapphireLittleBoy[] = { - obj_frame_tiles(gEventObjectPic_RubySapphireLittleBoy_0), - obj_frame_tiles(gEventObjectPic_RubySapphireLittleBoy_1), - obj_frame_tiles(gEventObjectPic_RubySapphireLittleBoy_2), - obj_frame_tiles(gEventObjectPic_RubySapphireLittleBoy_3), - obj_frame_tiles(gEventObjectPic_RubySapphireLittleBoy_4), - obj_frame_tiles(gEventObjectPic_RubySapphireLittleBoy_5), - obj_frame_tiles(gEventObjectPic_RubySapphireLittleBoy_6), - obj_frame_tiles(gEventObjectPic_RubySapphireLittleBoy_7), - obj_frame_tiles(gEventObjectPic_RubySapphireLittleBoy_8), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 0), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 1), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 2), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 3), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 4), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 5), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 6), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 7), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanFishing[] = { - obj_frame_tiles(gEventObjectPic_BrendanFishing_0), - obj_frame_tiles(gEventObjectPic_BrendanFishing_1), - obj_frame_tiles(gEventObjectPic_BrendanFishing_2), - obj_frame_tiles(gEventObjectPic_BrendanFishing_3), - obj_frame_tiles(gEventObjectPic_BrendanFishing_4), - obj_frame_tiles(gEventObjectPic_BrendanFishing_5), - obj_frame_tiles(gEventObjectPic_BrendanFishing_6), - obj_frame_tiles(gEventObjectPic_BrendanFishing_7), - obj_frame_tiles(gEventObjectPic_BrendanFishing_8), - obj_frame_tiles(gEventObjectPic_BrendanFishing_9), - obj_frame_tiles(gEventObjectPic_BrendanFishing_10), - obj_frame_tiles(gEventObjectPic_BrendanFishing_11), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 3), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 5), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 6), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 7), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 8), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 9), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 10), + overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 11), }; const struct SpriteFrameImage gEventObjectPicTable_MayFishing[] = { - obj_frame_tiles(gEventObjectPic_MayFishing_0), - obj_frame_tiles(gEventObjectPic_MayFishing_1), - obj_frame_tiles(gEventObjectPic_MayFishing_2), - obj_frame_tiles(gEventObjectPic_MayFishing_3), - obj_frame_tiles(gEventObjectPic_MayFishing_4), - obj_frame_tiles(gEventObjectPic_MayFishing_5), - obj_frame_tiles(gEventObjectPic_MayFishing_6), - obj_frame_tiles(gEventObjectPic_MayFishing_7), - obj_frame_tiles(gEventObjectPic_MayFishing_8), - obj_frame_tiles(gEventObjectPic_MayFishing_9), - obj_frame_tiles(gEventObjectPic_MayFishing_10), - obj_frame_tiles(gEventObjectPic_MayFishing_11), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 0), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 1), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 2), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 3), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 4), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 5), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 6), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 7), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 8), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 9), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 10), + overworld_frame(gEventObjectPic_MayFishing, 32, 32, 11), }; const struct SpriteFrameImage gEventObjectPicTable_HotSpringsOldWoman[] = { - obj_frame_tiles(gEventObjectPic_HotSpringsOldWoman_0), - obj_frame_tiles(gEventObjectPic_HotSpringsOldWoman_1), - obj_frame_tiles(gEventObjectPic_HotSpringsOldWoman_2), - obj_frame_tiles(gEventObjectPic_HotSpringsOldWoman_3), - obj_frame_tiles(gEventObjectPic_HotSpringsOldWoman_4), - obj_frame_tiles(gEventObjectPic_HotSpringsOldWoman_5), - obj_frame_tiles(gEventObjectPic_HotSpringsOldWoman_6), - obj_frame_tiles(gEventObjectPic_HotSpringsOldWoman_7), - obj_frame_tiles(gEventObjectPic_HotSpringsOldWoman_8), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 0), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 1), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 2), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 3), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 4), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 5), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 6), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 7), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_SSTidal[] = { @@ -1621,63 +1621,63 @@ const struct SpriteFrameImage gEventObjectPicTable_BigRegisteelDoll[] = { }; const struct SpriteFrameImage gEventObjectPicTable_LatiasLatios[] = { - obj_frame_tiles(gEventObjectPic_LatiasLatios_0), - obj_frame_tiles(gEventObjectPic_LatiasLatios_0), - obj_frame_tiles(gEventObjectPic_LatiasLatios_0), - obj_frame_tiles(gEventObjectPic_LatiasLatios_1), - obj_frame_tiles(gEventObjectPic_LatiasLatios_2), - obj_frame_tiles(gEventObjectPic_LatiasLatios_1), - obj_frame_tiles(gEventObjectPic_LatiasLatios_2), - obj_frame_tiles(gEventObjectPic_LatiasLatios_1), - obj_frame_tiles(gEventObjectPic_LatiasLatios_2), + overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 0), + overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 0), + overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 0), + overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 1), + overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 2), + overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 1), + overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 2), + overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 1), + overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Boy5[] = { - obj_frame_tiles(gEventObjectPic_Boy5_0), - obj_frame_tiles(gEventObjectPic_Boy5_1), - obj_frame_tiles(gEventObjectPic_Boy5_2), - obj_frame_tiles(gEventObjectPic_Boy5_0), - obj_frame_tiles(gEventObjectPic_Boy5_0), - obj_frame_tiles(gEventObjectPic_Boy5_1), - obj_frame_tiles(gEventObjectPic_Boy5_1), - obj_frame_tiles(gEventObjectPic_Boy5_2), - obj_frame_tiles(gEventObjectPic_Boy5_2), + overworld_frame(gEventObjectPic_Boy5, 16, 32, 0), + overworld_frame(gEventObjectPic_Boy5, 16, 32, 1), + overworld_frame(gEventObjectPic_Boy5, 16, 32, 2), + overworld_frame(gEventObjectPic_Boy5, 16, 32, 0), + overworld_frame(gEventObjectPic_Boy5, 16, 32, 0), + overworld_frame(gEventObjectPic_Boy5, 16, 32, 1), + overworld_frame(gEventObjectPic_Boy5, 16, 32, 1), + overworld_frame(gEventObjectPic_Boy5, 16, 32, 2), + overworld_frame(gEventObjectPic_Boy5, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_ContestOldMan[] = { - obj_frame_tiles(gEventObjectPic_ContestOldMan_0), - obj_frame_tiles(gEventObjectPic_ContestOldMan_1), - obj_frame_tiles(gEventObjectPic_ContestOldMan_2), - obj_frame_tiles(gEventObjectPic_ContestOldMan_3), - obj_frame_tiles(gEventObjectPic_ContestOldMan_4), - obj_frame_tiles(gEventObjectPic_ContestOldMan_5), - obj_frame_tiles(gEventObjectPic_ContestOldMan_6), - obj_frame_tiles(gEventObjectPic_ContestOldMan_7), - obj_frame_tiles(gEventObjectPic_ContestOldMan_8), + overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 0), + overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 1), + overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 2), + overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 3), + overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 4), + overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 5), + overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 6), + overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 7), + overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanWatering[] = { - obj_frame_tiles(gEventObjectPic_BrendanWatering_0), - obj_frame_tiles(gEventObjectPic_BrendanWatering_1), - obj_frame_tiles(gEventObjectPic_BrendanWatering_2), - obj_frame_tiles(gEventObjectPic_BrendanWatering_3), - obj_frame_tiles(gEventObjectPic_BrendanWatering_3), - obj_frame_tiles(gEventObjectPic_BrendanWatering_4), - obj_frame_tiles(gEventObjectPic_BrendanWatering_4), - obj_frame_tiles(gEventObjectPic_BrendanWatering_5), - obj_frame_tiles(gEventObjectPic_BrendanWatering_5), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 0), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 3), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 3), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 5), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 5), }; const struct SpriteFrameImage gEventObjectPicTable_MayWatering[] = { - obj_frame_tiles(gEventObjectPic_MayWatering_0), - obj_frame_tiles(gEventObjectPic_MayWatering_1), - obj_frame_tiles(gEventObjectPic_MayWatering_2), - obj_frame_tiles(gEventObjectPic_MayWatering_3), - obj_frame_tiles(gEventObjectPic_MayWatering_3), - obj_frame_tiles(gEventObjectPic_MayWatering_4), - obj_frame_tiles(gEventObjectPic_MayWatering_4), - obj_frame_tiles(gEventObjectPic_MayWatering_5), - obj_frame_tiles(gEventObjectPic_MayWatering_5), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 0), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 1), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 2), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 3), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 3), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 4), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 4), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 5), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 5), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanDecorating[] = { @@ -1689,75 +1689,75 @@ const struct SpriteFrameImage gEventObjectPicTable_MayDecorating[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Archie[] = { - obj_frame_tiles(gEventObjectPic_Archie_0), - obj_frame_tiles(gEventObjectPic_Archie_1), - obj_frame_tiles(gEventObjectPic_Archie_2), - obj_frame_tiles(gEventObjectPic_Archie_3), - obj_frame_tiles(gEventObjectPic_Archie_4), - obj_frame_tiles(gEventObjectPic_Archie_5), - obj_frame_tiles(gEventObjectPic_Archie_6), - obj_frame_tiles(gEventObjectPic_Archie_7), - obj_frame_tiles(gEventObjectPic_Archie_8), + overworld_frame(gEventObjectPic_Archie, 16, 32, 0), + overworld_frame(gEventObjectPic_Archie, 16, 32, 1), + overworld_frame(gEventObjectPic_Archie, 16, 32, 2), + overworld_frame(gEventObjectPic_Archie, 16, 32, 3), + overworld_frame(gEventObjectPic_Archie, 16, 32, 4), + overworld_frame(gEventObjectPic_Archie, 16, 32, 5), + overworld_frame(gEventObjectPic_Archie, 16, 32, 6), + overworld_frame(gEventObjectPic_Archie, 16, 32, 7), + overworld_frame(gEventObjectPic_Archie, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Maxie[] = { - obj_frame_tiles(gEventObjectPic_Maxie_0), - obj_frame_tiles(gEventObjectPic_Maxie_1), - obj_frame_tiles(gEventObjectPic_Maxie_2), - obj_frame_tiles(gEventObjectPic_Maxie_3), - obj_frame_tiles(gEventObjectPic_Maxie_4), - obj_frame_tiles(gEventObjectPic_Maxie_5), - obj_frame_tiles(gEventObjectPic_Maxie_6), - obj_frame_tiles(gEventObjectPic_Maxie_7), - obj_frame_tiles(gEventObjectPic_Maxie_8), + overworld_frame(gEventObjectPic_Maxie, 16, 32, 0), + overworld_frame(gEventObjectPic_Maxie, 16, 32, 1), + overworld_frame(gEventObjectPic_Maxie, 16, 32, 2), + overworld_frame(gEventObjectPic_Maxie, 16, 32, 3), + overworld_frame(gEventObjectPic_Maxie, 16, 32, 4), + overworld_frame(gEventObjectPic_Maxie, 16, 32, 5), + overworld_frame(gEventObjectPic_Maxie, 16, 32, 6), + overworld_frame(gEventObjectPic_Maxie, 16, 32, 7), + overworld_frame(gEventObjectPic_Maxie, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_KyogreFront[] = { - obj_frame_tiles(gEventObjectPic_KyogreFront_0), - obj_frame_tiles(gEventObjectPic_KyogreFront_0), - obj_frame_tiles(gEventObjectPic_KyogreFront_0), - obj_frame_tiles(gEventObjectPic_KyogreFront_1), - obj_frame_tiles(gEventObjectPic_KyogreFront_1), - obj_frame_tiles(gEventObjectPic_KyogreFront_1), - obj_frame_tiles(gEventObjectPic_KyogreFront_1), - obj_frame_tiles(gEventObjectPic_KyogreFront_1), - obj_frame_tiles(gEventObjectPic_KyogreFront_1), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 0), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 0), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 0), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), }; const struct SpriteFrameImage gEventObjectPicTable_GroudonFront[] = { - obj_frame_tiles(gEventObjectPic_GroudonFront_0), - obj_frame_tiles(gEventObjectPic_GroudonFront_0), - obj_frame_tiles(gEventObjectPic_GroudonFront_0), - obj_frame_tiles(gEventObjectPic_GroudonFront_1), - obj_frame_tiles(gEventObjectPic_GroudonFront_1), - obj_frame_tiles(gEventObjectPic_GroudonFront_1), - obj_frame_tiles(gEventObjectPic_GroudonFront_1), - obj_frame_tiles(gEventObjectPic_GroudonFront_1), - obj_frame_tiles(gEventObjectPic_GroudonFront_1), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 0), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 0), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 0), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), }; const struct SpriteFrameImage gEventObjectPicTable_KyogreSide[] = { - obj_frame_tiles(gEventObjectPic_KyogreSide_0), - obj_frame_tiles(gEventObjectPic_KyogreSide_0), - obj_frame_tiles(gEventObjectPic_KyogreSide_0), - obj_frame_tiles(gEventObjectPic_KyogreSide_1), - obj_frame_tiles(gEventObjectPic_KyogreSide_1), - obj_frame_tiles(gEventObjectPic_KyogreSide_1), - obj_frame_tiles(gEventObjectPic_KyogreSide_1), - obj_frame_tiles(gEventObjectPic_KyogreSide_1), - obj_frame_tiles(gEventObjectPic_KyogreSide_1), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 2), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 2), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 2), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), + overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), }; const struct SpriteFrameImage gEventObjectPicTable_GroudonSide[] = { - obj_frame_tiles(gEventObjectPic_GroudonSide_0), - obj_frame_tiles(gEventObjectPic_GroudonSide_0), - obj_frame_tiles(gEventObjectPic_GroudonSide_0), - obj_frame_tiles(gEventObjectPic_GroudonSide_1), - obj_frame_tiles(gEventObjectPic_GroudonSide_1), - obj_frame_tiles(gEventObjectPic_GroudonSide_1), - obj_frame_tiles(gEventObjectPic_GroudonSide_1), - obj_frame_tiles(gEventObjectPic_GroudonSide_1), - obj_frame_tiles(gEventObjectPic_GroudonSide_1), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 2), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 2), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 2), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), + overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), }; const struct SpriteFrameImage gEventObjectPicTable_Fossil[] = { @@ -1777,35 +1777,35 @@ const struct SpriteFrameImage gEventObjectPicTable_Regi[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Skitty[] = { - obj_frame_tiles(gEventObjectPic_Skitty_0), - obj_frame_tiles(gEventObjectPic_Skitty_1), - obj_frame_tiles(gEventObjectPic_Skitty_2), - obj_frame_tiles(gEventObjectPic_Skitty_0), - obj_frame_tiles(gEventObjectPic_Skitty_0), - obj_frame_tiles(gEventObjectPic_Skitty_1), - obj_frame_tiles(gEventObjectPic_Skitty_1), - obj_frame_tiles(gEventObjectPic_Skitty_2), - obj_frame_tiles(gEventObjectPic_Skitty_2), + overworld_frame(gEventObjectPic_Skitty, 16, 16, 0), + overworld_frame(gEventObjectPic_Skitty, 16, 16, 1), + overworld_frame(gEventObjectPic_Skitty, 16, 16, 2), + overworld_frame(gEventObjectPic_Skitty, 16, 16, 0), + overworld_frame(gEventObjectPic_Skitty, 16, 16, 0), + overworld_frame(gEventObjectPic_Skitty, 16, 16, 1), + overworld_frame(gEventObjectPic_Skitty, 16, 16, 1), + overworld_frame(gEventObjectPic_Skitty, 16, 16, 2), + overworld_frame(gEventObjectPic_Skitty, 16, 16, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Kecleon[] = { - obj_frame_tiles(gEventObjectPic_Kecleon_0), - obj_frame_tiles(gEventObjectPic_Kecleon_1), - obj_frame_tiles(gEventObjectPic_Kecleon_2), - obj_frame_tiles(gEventObjectPic_Kecleon_0), - obj_frame_tiles(gEventObjectPic_Kecleon_0), - obj_frame_tiles(gEventObjectPic_Kecleon_1), - obj_frame_tiles(gEventObjectPic_Kecleon_1), - obj_frame_tiles(gEventObjectPic_Kecleon_2), - obj_frame_tiles(gEventObjectPic_Kecleon_2), + overworld_frame(gEventObjectPic_Kecleon, 16, 16, 0), + overworld_frame(gEventObjectPic_Kecleon, 16, 16, 1), + overworld_frame(gEventObjectPic_Kecleon, 16, 16, 2), + overworld_frame(gEventObjectPic_Kecleon, 16, 16, 0), + overworld_frame(gEventObjectPic_Kecleon, 16, 16, 0), + overworld_frame(gEventObjectPic_Kecleon, 16, 16, 1), + overworld_frame(gEventObjectPic_Kecleon, 16, 16, 1), + overworld_frame(gEventObjectPic_Kecleon, 16, 16, 2), + overworld_frame(gEventObjectPic_Kecleon, 16, 16, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Rayquaza[] = { - obj_frame_tiles(gEventObjectPic_Rayquaza_0), - obj_frame_tiles(gEventObjectPic_Rayquaza_1), - obj_frame_tiles(gEventObjectPic_Rayquaza_2), - obj_frame_tiles(gEventObjectPic_Rayquaza_3), - obj_frame_tiles(gEventObjectPic_Rayquaza_4), + overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 0), + overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 1), + overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 2), + overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 3), + overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 4), }; const struct SpriteFrameImage gEventObjectPicTable_RayquazaStill[] = { @@ -1821,123 +1821,123 @@ const struct SpriteFrameImage gEventObjectPicTable_RayquazaStill[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Zigzagoon[] = { - obj_frame_tiles(gEventObjectPic_Zigzagoon_0), - obj_frame_tiles(gEventObjectPic_Zigzagoon_1), - obj_frame_tiles(gEventObjectPic_Zigzagoon_2), - obj_frame_tiles(gEventObjectPic_Zigzagoon_0), - obj_frame_tiles(gEventObjectPic_Zigzagoon_0), - obj_frame_tiles(gEventObjectPic_Zigzagoon_1), - obj_frame_tiles(gEventObjectPic_Zigzagoon_1), - obj_frame_tiles(gEventObjectPic_Zigzagoon_2), - obj_frame_tiles(gEventObjectPic_Zigzagoon_2), + overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 0), + overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 1), + overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 2), + overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 0), + overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 0), + overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 1), + overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 1), + overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 2), + overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Pikachu[] = { - obj_frame_tiles(gEventObjectPic_Pikachu_0), - obj_frame_tiles(gEventObjectPic_Pikachu_1), - obj_frame_tiles(gEventObjectPic_Pikachu_2), - obj_frame_tiles(gEventObjectPic_Pikachu_0), - obj_frame_tiles(gEventObjectPic_Pikachu_0), - obj_frame_tiles(gEventObjectPic_Pikachu_1), - obj_frame_tiles(gEventObjectPic_Pikachu_1), - obj_frame_tiles(gEventObjectPic_Pikachu_2), - obj_frame_tiles(gEventObjectPic_Pikachu_2), + overworld_frame(gEventObjectPic_Pikachu, 16, 16, 0), + overworld_frame(gEventObjectPic_Pikachu, 16, 16, 1), + overworld_frame(gEventObjectPic_Pikachu, 16, 16, 2), + overworld_frame(gEventObjectPic_Pikachu, 16, 16, 0), + overworld_frame(gEventObjectPic_Pikachu, 16, 16, 0), + overworld_frame(gEventObjectPic_Pikachu, 16, 16, 1), + overworld_frame(gEventObjectPic_Pikachu, 16, 16, 1), + overworld_frame(gEventObjectPic_Pikachu, 16, 16, 2), + overworld_frame(gEventObjectPic_Pikachu, 16, 16, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Azumarill[] = { - obj_frame_tiles(gEventObjectPic_Azumarill_0), - obj_frame_tiles(gEventObjectPic_Azumarill_1), - obj_frame_tiles(gEventObjectPic_Azumarill_2), - obj_frame_tiles(gEventObjectPic_Azumarill_0), - obj_frame_tiles(gEventObjectPic_Azumarill_0), - obj_frame_tiles(gEventObjectPic_Azumarill_1), - obj_frame_tiles(gEventObjectPic_Azumarill_1), - obj_frame_tiles(gEventObjectPic_Azumarill_2), - obj_frame_tiles(gEventObjectPic_Azumarill_2), + overworld_frame(gEventObjectPic_Azumarill, 16, 16, 0), + overworld_frame(gEventObjectPic_Azumarill, 16, 16, 1), + overworld_frame(gEventObjectPic_Azumarill, 16, 16, 2), + overworld_frame(gEventObjectPic_Azumarill, 16, 16, 0), + overworld_frame(gEventObjectPic_Azumarill, 16, 16, 0), + overworld_frame(gEventObjectPic_Azumarill, 16, 16, 1), + overworld_frame(gEventObjectPic_Azumarill, 16, 16, 1), + overworld_frame(gEventObjectPic_Azumarill, 16, 16, 2), + overworld_frame(gEventObjectPic_Azumarill, 16, 16, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Wingull[] = { - obj_frame_tiles(gEventObjectPic_Wingull_0), - obj_frame_tiles(gEventObjectPic_Wingull_1), - obj_frame_tiles(gEventObjectPic_Wingull_2), - obj_frame_tiles(gEventObjectPic_Wingull_3), - obj_frame_tiles(gEventObjectPic_Wingull_3), - obj_frame_tiles(gEventObjectPic_Wingull_4), - obj_frame_tiles(gEventObjectPic_Wingull_4), - obj_frame_tiles(gEventObjectPic_Wingull_5), - obj_frame_tiles(gEventObjectPic_Wingull_5), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 0), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 1), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 2), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 3), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 3), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 4), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 4), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 5), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 5), }; const struct SpriteFrameImage gEventObjectPicTable_TuberMSwimming[] = { - obj_frame_tiles(gEventObjectPic_TuberMSwimming_0), - obj_frame_tiles(gEventObjectPic_TuberMSwimming_1), - obj_frame_tiles(gEventObjectPic_TuberMSwimming_2), - obj_frame_tiles(gEventObjectPic_TuberMSwimming_3), - obj_frame_tiles(gEventObjectPic_TuberMSwimming_4), - obj_frame_tiles(gEventObjectPic_TuberMSwimming_5), - obj_frame_tiles(gEventObjectPic_TuberMSwimming_6), - obj_frame_tiles(gEventObjectPic_TuberMSwimming_7), - obj_frame_tiles(gEventObjectPic_TuberMSwimming_8), + overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 0), + overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 1), + overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 2), + overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 3), + overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 4), + overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 5), + overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 6), + overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 7), + overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Azurill[] = { - obj_frame_tiles(gEventObjectPic_Azurill_0), - obj_frame_tiles(gEventObjectPic_Azurill_1), - obj_frame_tiles(gEventObjectPic_Azurill_2), - obj_frame_tiles(gEventObjectPic_Azurill_0), - obj_frame_tiles(gEventObjectPic_Azurill_0), - obj_frame_tiles(gEventObjectPic_Azurill_1), - obj_frame_tiles(gEventObjectPic_Azurill_1), - obj_frame_tiles(gEventObjectPic_Azurill_2), - obj_frame_tiles(gEventObjectPic_Azurill_2), + overworld_frame(gEventObjectPic_Azurill, 16, 16, 0), + overworld_frame(gEventObjectPic_Azurill, 16, 16, 1), + overworld_frame(gEventObjectPic_Azurill, 16, 16, 2), + overworld_frame(gEventObjectPic_Azurill, 16, 16, 0), + overworld_frame(gEventObjectPic_Azurill, 16, 16, 0), + overworld_frame(gEventObjectPic_Azurill, 16, 16, 1), + overworld_frame(gEventObjectPic_Azurill, 16, 16, 1), + overworld_frame(gEventObjectPic_Azurill, 16, 16, 2), + overworld_frame(gEventObjectPic_Azurill, 16, 16, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Mom[] = { - obj_frame_tiles(gEventObjectPic_Mom_0), - obj_frame_tiles(gEventObjectPic_Mom_1), - obj_frame_tiles(gEventObjectPic_Mom_2), - obj_frame_tiles(gEventObjectPic_Mom_3), - obj_frame_tiles(gEventObjectPic_Mom_4), - obj_frame_tiles(gEventObjectPic_Mom_5), - obj_frame_tiles(gEventObjectPic_Mom_6), - obj_frame_tiles(gEventObjectPic_Mom_7), - obj_frame_tiles(gEventObjectPic_Mom_8), + overworld_frame(gEventObjectPic_Mom, 16, 32, 0), + overworld_frame(gEventObjectPic_Mom, 16, 32, 1), + overworld_frame(gEventObjectPic_Mom, 16, 32, 2), + overworld_frame(gEventObjectPic_Mom, 16, 32, 3), + overworld_frame(gEventObjectPic_Mom, 16, 32, 4), + overworld_frame(gEventObjectPic_Mom, 16, 32, 5), + overworld_frame(gEventObjectPic_Mom, 16, 32, 6), + overworld_frame(gEventObjectPic_Mom, 16, 32, 7), + overworld_frame(gEventObjectPic_Mom, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Scott[] = { - obj_frame_tiles(gEventObjectPic_Scott_0), - obj_frame_tiles(gEventObjectPic_Scott_1), - obj_frame_tiles(gEventObjectPic_Scott_2), - obj_frame_tiles(gEventObjectPic_Scott_3), - obj_frame_tiles(gEventObjectPic_Scott_4), - obj_frame_tiles(gEventObjectPic_Scott_5), - obj_frame_tiles(gEventObjectPic_Scott_6), - obj_frame_tiles(gEventObjectPic_Scott_7), - obj_frame_tiles(gEventObjectPic_Scott_8), + overworld_frame(gEventObjectPic_Scott, 16, 32, 0), + overworld_frame(gEventObjectPic_Scott, 16, 32, 1), + overworld_frame(gEventObjectPic_Scott, 16, 32, 2), + overworld_frame(gEventObjectPic_Scott, 16, 32, 3), + overworld_frame(gEventObjectPic_Scott, 16, 32, 4), + overworld_frame(gEventObjectPic_Scott, 16, 32, 5), + overworld_frame(gEventObjectPic_Scott, 16, 32, 6), + overworld_frame(gEventObjectPic_Scott, 16, 32, 7), + overworld_frame(gEventObjectPic_Scott, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Juan[] = { - obj_frame_tiles(gEventObjectPic_Juan_0), - obj_frame_tiles(gEventObjectPic_Juan_1), - obj_frame_tiles(gEventObjectPic_Juan_2), - obj_frame_tiles(gEventObjectPic_Juan_3), - obj_frame_tiles(gEventObjectPic_Juan_4), - obj_frame_tiles(gEventObjectPic_Juan_5), - obj_frame_tiles(gEventObjectPic_Juan_6), - obj_frame_tiles(gEventObjectPic_Juan_7), - obj_frame_tiles(gEventObjectPic_Juan_8), + overworld_frame(gEventObjectPic_Juan, 16, 32, 0), + overworld_frame(gEventObjectPic_Juan, 16, 32, 1), + overworld_frame(gEventObjectPic_Juan, 16, 32, 2), + overworld_frame(gEventObjectPic_Juan, 16, 32, 3), + overworld_frame(gEventObjectPic_Juan, 16, 32, 4), + overworld_frame(gEventObjectPic_Juan, 16, 32, 5), + overworld_frame(gEventObjectPic_Juan, 16, 32, 6), + overworld_frame(gEventObjectPic_Juan, 16, 32, 7), + overworld_frame(gEventObjectPic_Juan, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MysteryEventDeliveryman[] = { - obj_frame_tiles(gEventObjectPic_MysteryEventDeliveryman_0), - obj_frame_tiles(gEventObjectPic_MysteryEventDeliveryman_1), - obj_frame_tiles(gEventObjectPic_MysteryEventDeliveryman_2), - obj_frame_tiles(gEventObjectPic_MysteryEventDeliveryman_0), - obj_frame_tiles(gEventObjectPic_MysteryEventDeliveryman_0), - obj_frame_tiles(gEventObjectPic_MysteryEventDeliveryman_1), - obj_frame_tiles(gEventObjectPic_MysteryEventDeliveryman_1), - obj_frame_tiles(gEventObjectPic_MysteryEventDeliveryman_2), - obj_frame_tiles(gEventObjectPic_MysteryEventDeliveryman_2), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 0), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 1), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 2), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 0), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 0), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 1), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 1), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 2), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Statue[] = { @@ -1945,99 +1945,99 @@ const struct SpriteFrameImage gEventObjectPicTable_Statue[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Dusclops[] = { - obj_frame_tiles(gEventObjectPic_Dusclops_0), - obj_frame_tiles(gEventObjectPic_Dusclops_1), - obj_frame_tiles(gEventObjectPic_Dusclops_2), - obj_frame_tiles(gEventObjectPic_Dusclops_3), - obj_frame_tiles(gEventObjectPic_Dusclops_4), - obj_frame_tiles(gEventObjectPic_Dusclops_5), - obj_frame_tiles(gEventObjectPic_Dusclops_6), - obj_frame_tiles(gEventObjectPic_Dusclops_7), - obj_frame_tiles(gEventObjectPic_Dusclops_8), + overworld_frame(gEventObjectPic_Dusclops, 16, 32, 0), + overworld_frame(gEventObjectPic_Dusclops, 16, 32, 1), + overworld_frame(gEventObjectPic_Dusclops, 16, 32, 2), + overworld_frame(gEventObjectPic_Dusclops, 16, 32, 3), + overworld_frame(gEventObjectPic_Dusclops, 16, 32, 4), + overworld_frame(gEventObjectPic_Dusclops, 16, 32, 5), + overworld_frame(gEventObjectPic_Dusclops, 16, 32, 6), + overworld_frame(gEventObjectPic_Dusclops, 16, 32, 7), + overworld_frame(gEventObjectPic_Dusclops, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Kirlia[] = { - obj_frame_tiles(gEventObjectPic_Kirlia_0), - obj_frame_tiles(gEventObjectPic_Kirlia_1), - obj_frame_tiles(gEventObjectPic_Kirlia_2), - obj_frame_tiles(gEventObjectPic_Kirlia_3), - obj_frame_tiles(gEventObjectPic_Kirlia_4), - obj_frame_tiles(gEventObjectPic_Kirlia_5), - obj_frame_tiles(gEventObjectPic_Kirlia_6), - obj_frame_tiles(gEventObjectPic_Kirlia_7), - obj_frame_tiles(gEventObjectPic_Kirlia_8), + overworld_frame(gEventObjectPic_Kirlia, 16, 32, 0), + overworld_frame(gEventObjectPic_Kirlia, 16, 32, 1), + overworld_frame(gEventObjectPic_Kirlia, 16, 32, 2), + overworld_frame(gEventObjectPic_Kirlia, 16, 32, 3), + overworld_frame(gEventObjectPic_Kirlia, 16, 32, 4), + overworld_frame(gEventObjectPic_Kirlia, 16, 32, 5), + overworld_frame(gEventObjectPic_Kirlia, 16, 32, 6), + overworld_frame(gEventObjectPic_Kirlia, 16, 32, 7), + overworld_frame(gEventObjectPic_Kirlia, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_UnionRoomAttendant[] = { - obj_frame_tiles(gEventObjectPic_UnionRoomAttendant_0), - obj_frame_tiles(gEventObjectPic_UnionRoomAttendant_1), - obj_frame_tiles(gEventObjectPic_UnionRoomAttendant_2), - obj_frame_tiles(gEventObjectPic_UnionRoomAttendant_0), - obj_frame_tiles(gEventObjectPic_UnionRoomAttendant_0), - obj_frame_tiles(gEventObjectPic_UnionRoomAttendant_1), - obj_frame_tiles(gEventObjectPic_UnionRoomAttendant_1), - obj_frame_tiles(gEventObjectPic_UnionRoomAttendant_2), - obj_frame_tiles(gEventObjectPic_UnionRoomAttendant_2), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 0), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 1), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 2), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 0), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 0), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 1), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 1), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 2), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Sudowoodo[] = { - obj_frame_tiles(gEventObjectPic_Sudowoodo_0), - obj_frame_tiles(gEventObjectPic_Sudowoodo_0), - obj_frame_tiles(gEventObjectPic_Sudowoodo_1), - obj_frame_tiles(gEventObjectPic_Sudowoodo_0), - obj_frame_tiles(gEventObjectPic_Sudowoodo_0), - obj_frame_tiles(gEventObjectPic_Sudowoodo_0), - obj_frame_tiles(gEventObjectPic_Sudowoodo_0), - obj_frame_tiles(gEventObjectPic_Sudowoodo_1), - obj_frame_tiles(gEventObjectPic_Sudowoodo_2), + overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 1), + overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 1), + overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Mew[] = { - obj_frame_tiles(gEventObjectPic_Mew_0), - obj_frame_tiles(gEventObjectPic_Mew_1), - obj_frame_tiles(gEventObjectPic_Mew_2), - obj_frame_tiles(gEventObjectPic_Mew_3), - obj_frame_tiles(gEventObjectPic_Mew_4), - obj_frame_tiles(gEventObjectPic_Mew_5), - obj_frame_tiles(gEventObjectPic_Mew_6), - obj_frame_tiles(gEventObjectPic_Mew_7), - obj_frame_tiles(gEventObjectPic_Mew_8), + overworld_frame(gEventObjectPic_Mew, 16, 32, 0), + overworld_frame(gEventObjectPic_Mew, 16, 32, 1), + overworld_frame(gEventObjectPic_Mew, 16, 32, 2), + overworld_frame(gEventObjectPic_Mew, 16, 32, 3), + overworld_frame(gEventObjectPic_Mew, 16, 32, 4), + overworld_frame(gEventObjectPic_Mew, 16, 32, 5), + overworld_frame(gEventObjectPic_Mew, 16, 32, 6), + overworld_frame(gEventObjectPic_Mew, 16, 32, 7), + overworld_frame(gEventObjectPic_Mew, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Red[] = { - obj_frame_tiles(gEventObjectPic_Red_0), - obj_frame_tiles(gEventObjectPic_Red_1), - obj_frame_tiles(gEventObjectPic_Red_2), - obj_frame_tiles(gEventObjectPic_Red_3), - obj_frame_tiles(gEventObjectPic_Red_4), - obj_frame_tiles(gEventObjectPic_Red_5), - obj_frame_tiles(gEventObjectPic_Red_6), - obj_frame_tiles(gEventObjectPic_Red_7), - obj_frame_tiles(gEventObjectPic_Red_8), + overworld_frame(gEventObjectPic_Red, 16, 32, 0), + overworld_frame(gEventObjectPic_Red, 16, 32, 1), + overworld_frame(gEventObjectPic_Red, 16, 32, 2), + overworld_frame(gEventObjectPic_Red, 16, 32, 3), + overworld_frame(gEventObjectPic_Red, 16, 32, 4), + overworld_frame(gEventObjectPic_Red, 16, 32, 5), + overworld_frame(gEventObjectPic_Red, 16, 32, 6), + overworld_frame(gEventObjectPic_Red, 16, 32, 7), + overworld_frame(gEventObjectPic_Red, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Leaf[] = { - obj_frame_tiles(gEventObjectPic_Leaf_0), - obj_frame_tiles(gEventObjectPic_Leaf_1), - obj_frame_tiles(gEventObjectPic_Leaf_2), - obj_frame_tiles(gEventObjectPic_Leaf_3), - obj_frame_tiles(gEventObjectPic_Leaf_4), - obj_frame_tiles(gEventObjectPic_Leaf_5), - obj_frame_tiles(gEventObjectPic_Leaf_6), - obj_frame_tiles(gEventObjectPic_Leaf_7), - obj_frame_tiles(gEventObjectPic_Leaf_8), + overworld_frame(gEventObjectPic_Leaf, 16, 32, 0), + overworld_frame(gEventObjectPic_Leaf, 16, 32, 1), + overworld_frame(gEventObjectPic_Leaf, 16, 32, 2), + overworld_frame(gEventObjectPic_Leaf, 16, 32, 3), + overworld_frame(gEventObjectPic_Leaf, 16, 32, 4), + overworld_frame(gEventObjectPic_Leaf, 16, 32, 5), + overworld_frame(gEventObjectPic_Leaf, 16, 32, 6), + overworld_frame(gEventObjectPic_Leaf, 16, 32, 7), + overworld_frame(gEventObjectPic_Leaf, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Deoxys[] = { - obj_frame_tiles(gEventObjectPic_Deoxys_0), - obj_frame_tiles(gEventObjectPic_Deoxys_0), - obj_frame_tiles(gEventObjectPic_Deoxys_0), - obj_frame_tiles(gEventObjectPic_Deoxys_0), - obj_frame_tiles(gEventObjectPic_Deoxys_1), - obj_frame_tiles(gEventObjectPic_Deoxys_0), - obj_frame_tiles(gEventObjectPic_Deoxys_1), - obj_frame_tiles(gEventObjectPic_Deoxys_0), - obj_frame_tiles(gEventObjectPic_Deoxys_0), + overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), + overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), + overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), + overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), + overworld_frame(gEventObjectPic_Deoxys, 32, 32, 1), + overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), + overworld_frame(gEventObjectPic_Deoxys, 32, 32, 1), + overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), + overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), }; const struct SpriteFrameImage gEventObjectPicTable_BirthIslandStone[] = { @@ -2045,135 +2045,135 @@ const struct SpriteFrameImage gEventObjectPicTable_BirthIslandStone[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Anabel[] = { - obj_frame_tiles(gEventObjectPic_Anabel_0), - obj_frame_tiles(gEventObjectPic_Anabel_1), - obj_frame_tiles(gEventObjectPic_Anabel_2), - obj_frame_tiles(gEventObjectPic_Anabel_3), - obj_frame_tiles(gEventObjectPic_Anabel_4), - obj_frame_tiles(gEventObjectPic_Anabel_5), - obj_frame_tiles(gEventObjectPic_Anabel_6), - obj_frame_tiles(gEventObjectPic_Anabel_7), - obj_frame_tiles(gEventObjectPic_Anabel_8), + overworld_frame(gEventObjectPic_Anabel, 16, 32, 0), + overworld_frame(gEventObjectPic_Anabel, 16, 32, 1), + overworld_frame(gEventObjectPic_Anabel, 16, 32, 2), + overworld_frame(gEventObjectPic_Anabel, 16, 32, 3), + overworld_frame(gEventObjectPic_Anabel, 16, 32, 4), + overworld_frame(gEventObjectPic_Anabel, 16, 32, 5), + overworld_frame(gEventObjectPic_Anabel, 16, 32, 6), + overworld_frame(gEventObjectPic_Anabel, 16, 32, 7), + overworld_frame(gEventObjectPic_Anabel, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Tucker[] = { - obj_frame_tiles(gEventObjectPic_Tucker_0), - obj_frame_tiles(gEventObjectPic_Tucker_1), - obj_frame_tiles(gEventObjectPic_Tucker_2), - obj_frame_tiles(gEventObjectPic_Tucker_3), - obj_frame_tiles(gEventObjectPic_Tucker_4), - obj_frame_tiles(gEventObjectPic_Tucker_5), - obj_frame_tiles(gEventObjectPic_Tucker_6), - obj_frame_tiles(gEventObjectPic_Tucker_7), - obj_frame_tiles(gEventObjectPic_Tucker_8), + overworld_frame(gEventObjectPic_Tucker, 16, 32, 0), + overworld_frame(gEventObjectPic_Tucker, 16, 32, 1), + overworld_frame(gEventObjectPic_Tucker, 16, 32, 2), + overworld_frame(gEventObjectPic_Tucker, 16, 32, 3), + overworld_frame(gEventObjectPic_Tucker, 16, 32, 4), + overworld_frame(gEventObjectPic_Tucker, 16, 32, 5), + overworld_frame(gEventObjectPic_Tucker, 16, 32, 6), + overworld_frame(gEventObjectPic_Tucker, 16, 32, 7), + overworld_frame(gEventObjectPic_Tucker, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Spenser[] = { - obj_frame_tiles(gEventObjectPic_Spenser_0), - obj_frame_tiles(gEventObjectPic_Spenser_1), - obj_frame_tiles(gEventObjectPic_Spenser_2), - obj_frame_tiles(gEventObjectPic_Spenser_3), - obj_frame_tiles(gEventObjectPic_Spenser_4), - obj_frame_tiles(gEventObjectPic_Spenser_5), - obj_frame_tiles(gEventObjectPic_Spenser_6), - obj_frame_tiles(gEventObjectPic_Spenser_7), - obj_frame_tiles(gEventObjectPic_Spenser_8), + overworld_frame(gEventObjectPic_Spenser, 16, 32, 0), + overworld_frame(gEventObjectPic_Spenser, 16, 32, 1), + overworld_frame(gEventObjectPic_Spenser, 16, 32, 2), + overworld_frame(gEventObjectPic_Spenser, 16, 32, 3), + overworld_frame(gEventObjectPic_Spenser, 16, 32, 4), + overworld_frame(gEventObjectPic_Spenser, 16, 32, 5), + overworld_frame(gEventObjectPic_Spenser, 16, 32, 6), + overworld_frame(gEventObjectPic_Spenser, 16, 32, 7), + overworld_frame(gEventObjectPic_Spenser, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Greta[] = { - obj_frame_tiles(gEventObjectPic_Greta_0), - obj_frame_tiles(gEventObjectPic_Greta_1), - obj_frame_tiles(gEventObjectPic_Greta_2), - obj_frame_tiles(gEventObjectPic_Greta_3), - obj_frame_tiles(gEventObjectPic_Greta_4), - obj_frame_tiles(gEventObjectPic_Greta_5), - obj_frame_tiles(gEventObjectPic_Greta_6), - obj_frame_tiles(gEventObjectPic_Greta_7), - obj_frame_tiles(gEventObjectPic_Greta_8), + overworld_frame(gEventObjectPic_Greta, 16, 32, 0), + overworld_frame(gEventObjectPic_Greta, 16, 32, 1), + overworld_frame(gEventObjectPic_Greta, 16, 32, 2), + overworld_frame(gEventObjectPic_Greta, 16, 32, 3), + overworld_frame(gEventObjectPic_Greta, 16, 32, 4), + overworld_frame(gEventObjectPic_Greta, 16, 32, 5), + overworld_frame(gEventObjectPic_Greta, 16, 32, 6), + overworld_frame(gEventObjectPic_Greta, 16, 32, 7), + overworld_frame(gEventObjectPic_Greta, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Noland[] = { - obj_frame_tiles(gEventObjectPic_Noland_0), - obj_frame_tiles(gEventObjectPic_Noland_1), - obj_frame_tiles(gEventObjectPic_Noland_2), - obj_frame_tiles(gEventObjectPic_Noland_3), - obj_frame_tiles(gEventObjectPic_Noland_4), - obj_frame_tiles(gEventObjectPic_Noland_5), - obj_frame_tiles(gEventObjectPic_Noland_6), - obj_frame_tiles(gEventObjectPic_Noland_7), - obj_frame_tiles(gEventObjectPic_Noland_8), + overworld_frame(gEventObjectPic_Noland, 16, 32, 0), + overworld_frame(gEventObjectPic_Noland, 16, 32, 1), + overworld_frame(gEventObjectPic_Noland, 16, 32, 2), + overworld_frame(gEventObjectPic_Noland, 16, 32, 3), + overworld_frame(gEventObjectPic_Noland, 16, 32, 4), + overworld_frame(gEventObjectPic_Noland, 16, 32, 5), + overworld_frame(gEventObjectPic_Noland, 16, 32, 6), + overworld_frame(gEventObjectPic_Noland, 16, 32, 7), + overworld_frame(gEventObjectPic_Noland, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Lucy[] = { - obj_frame_tiles(gEventObjectPic_Lucy_0), - obj_frame_tiles(gEventObjectPic_Lucy_1), - obj_frame_tiles(gEventObjectPic_Lucy_2), - obj_frame_tiles(gEventObjectPic_Lucy_3), - obj_frame_tiles(gEventObjectPic_Lucy_4), - obj_frame_tiles(gEventObjectPic_Lucy_5), - obj_frame_tiles(gEventObjectPic_Lucy_6), - obj_frame_tiles(gEventObjectPic_Lucy_7), - obj_frame_tiles(gEventObjectPic_Lucy_8), + overworld_frame(gEventObjectPic_Lucy, 16, 32, 0), + overworld_frame(gEventObjectPic_Lucy, 16, 32, 1), + overworld_frame(gEventObjectPic_Lucy, 16, 32, 2), + overworld_frame(gEventObjectPic_Lucy, 16, 32, 3), + overworld_frame(gEventObjectPic_Lucy, 16, 32, 4), + overworld_frame(gEventObjectPic_Lucy, 16, 32, 5), + overworld_frame(gEventObjectPic_Lucy, 16, 32, 6), + overworld_frame(gEventObjectPic_Lucy, 16, 32, 7), + overworld_frame(gEventObjectPic_Lucy, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Brandon[] = { - obj_frame_tiles(gEventObjectPic_Brandon_0), - obj_frame_tiles(gEventObjectPic_Brandon_1), - obj_frame_tiles(gEventObjectPic_Brandon_2), - obj_frame_tiles(gEventObjectPic_Brandon_3), - obj_frame_tiles(gEventObjectPic_Brandon_4), - obj_frame_tiles(gEventObjectPic_Brandon_5), - obj_frame_tiles(gEventObjectPic_Brandon_6), - obj_frame_tiles(gEventObjectPic_Brandon_7), - obj_frame_tiles(gEventObjectPic_Brandon_8), + overworld_frame(gEventObjectPic_Brandon, 16, 32, 0), + overworld_frame(gEventObjectPic_Brandon, 16, 32, 1), + overworld_frame(gEventObjectPic_Brandon, 16, 32, 2), + overworld_frame(gEventObjectPic_Brandon, 16, 32, 3), + overworld_frame(gEventObjectPic_Brandon, 16, 32, 4), + overworld_frame(gEventObjectPic_Brandon, 16, 32, 5), + overworld_frame(gEventObjectPic_Brandon, 16, 32, 6), + overworld_frame(gEventObjectPic_Brandon, 16, 32, 7), + overworld_frame(gEventObjectPic_Brandon, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Lugia[] = { - obj_frame_tiles(gEventObjectPic_Lugia_0), - obj_frame_tiles(gEventObjectPic_Lugia_0), - obj_frame_tiles(gEventObjectPic_Lugia_0), - obj_frame_tiles(gEventObjectPic_Lugia_0), - obj_frame_tiles(gEventObjectPic_Lugia_1), - obj_frame_tiles(gEventObjectPic_Lugia_0), - obj_frame_tiles(gEventObjectPic_Lugia_1), - obj_frame_tiles(gEventObjectPic_Lugia_0), - obj_frame_tiles(gEventObjectPic_Lugia_1), + overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), + overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), + overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), + overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), + overworld_frame(gEventObjectPic_Lugia, 32, 32, 1), + overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), + overworld_frame(gEventObjectPic_Lugia, 32, 32, 1), + overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), + overworld_frame(gEventObjectPic_Lugia, 32, 32, 1), }; const struct SpriteFrameImage gEventObjectPicTable_HoOh[] = { - obj_frame_tiles(gEventObjectPic_HoOh_0), - obj_frame_tiles(gEventObjectPic_HoOh_0), - obj_frame_tiles(gEventObjectPic_HoOh_0), - obj_frame_tiles(gEventObjectPic_HoOh_0), - obj_frame_tiles(gEventObjectPic_HoOh_1), - obj_frame_tiles(gEventObjectPic_HoOh_0), - obj_frame_tiles(gEventObjectPic_HoOh_1), - obj_frame_tiles(gEventObjectPic_HoOh_0), - obj_frame_tiles(gEventObjectPic_HoOh_1), + overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), + overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), + overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), + overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), + overworld_frame(gEventObjectPic_HoOh, 32, 32, 1), + overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), + overworld_frame(gEventObjectPic_HoOh, 32, 32, 1), + overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), + overworld_frame(gEventObjectPic_HoOh, 32, 32, 1), }; const struct SpriteFrameImage gEventObjectPicTable_RubySapphireBrendan[] = { - obj_frame_tiles(gEventObjectPic_RubySapphireBrendan_0), - obj_frame_tiles(gEventObjectPic_RubySapphireBrendan_1), - obj_frame_tiles(gEventObjectPic_RubySapphireBrendan_2), - obj_frame_tiles(gEventObjectPic_RubySapphireBrendan_3), - obj_frame_tiles(gEventObjectPic_RubySapphireBrendan_4), - obj_frame_tiles(gEventObjectPic_RubySapphireBrendan_5), - obj_frame_tiles(gEventObjectPic_RubySapphireBrendan_6), - obj_frame_tiles(gEventObjectPic_RubySapphireBrendan_7), - obj_frame_tiles(gEventObjectPic_RubySapphireBrendan_8), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 0), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 1), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 2), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 3), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 4), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 5), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 6), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 7), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RubySapphireMay[] = { - obj_frame_tiles(gEventObjectPic_RubySapphireMay_0), - obj_frame_tiles(gEventObjectPic_RubySapphireMay_1), - obj_frame_tiles(gEventObjectPic_RubySapphireMay_2), - obj_frame_tiles(gEventObjectPic_RubySapphireMay_3), - obj_frame_tiles(gEventObjectPic_RubySapphireMay_4), - obj_frame_tiles(gEventObjectPic_RubySapphireMay_5), - obj_frame_tiles(gEventObjectPic_RubySapphireMay_6), - obj_frame_tiles(gEventObjectPic_RubySapphireMay_7), - obj_frame_tiles(gEventObjectPic_RubySapphireMay_8), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 0), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 1), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 2), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 3), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 4), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 5), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 6), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 7), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 8), }; #endif //GUARD_EVENT_OBJECT_PIC_TABLES_H diff --git a/src/data/field_event_obj/field_effect_objects.h b/src/data/field_event_obj/field_effect_objects.h index c8633daa7..785a15872 100755 --- a/src/data/field_event_obj/field_effect_objects.h +++ b/src/data/field_event_obj/field_effect_objects.h @@ -13,23 +13,23 @@ const union AnimCmd gFieldEffectObjectImageAnim_850C9D0[] = const union AnimCmd *const gFieldEffectObjectImageAnimTable_Shadow[] = { - gFieldEffectObjectImageAnim_850C9D0, + gFieldEffectObjectImageAnim_850C9D0, }; const struct SpriteFrameImage gFieldEffectObjectPicTable_ShadowSmall[] = { - obj_frame_tiles(gFieldEffectObjectPic_ShadowSmall), + obj_frame_tiles(gFieldEffectObjectPic_ShadowSmall), }; const struct SpriteFrameImage gFieldEffectObjectPicTable_ShadowMedium[] = { - obj_frame_tiles(gFieldEffectObjectPic_ShadowMedium), + obj_frame_tiles(gFieldEffectObjectPic_ShadowMedium), }; const struct SpriteFrameImage gFieldEffectObjectPicTable_ShadowLarge[] = { - obj_frame_tiles(gFieldEffectObjectPic_ShadowLarge), + obj_frame_tiles(gFieldEffectObjectPic_ShadowLarge), }; const struct SpriteFrameImage gFieldEffectObjectPicTable_ShadowExtraLarge[] = { - obj_frame_tiles(gFieldEffectObjectPic_ShadowExtraLarge), + obj_frame_tiles(gFieldEffectObjectPic_ShadowExtraLarge), }; const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_8x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, oamc_shadow}; @@ -41,11 +41,11 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {0xFFFF, 0x const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_64x32, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, oamc_shadow}; const struct SpriteFrameImage gFieldEffectObjectPicTable_TallGrass[] = { - obj_frame_tiles(gFieldEffectObjectPic_TallGrass_0), - obj_frame_tiles(gFieldEffectObjectPic_TallGrass_1), - obj_frame_tiles(gFieldEffectObjectPic_TallGrass_2), - obj_frame_tiles(gFieldEffectObjectPic_TallGrass_3), - obj_frame_tiles(gFieldEffectObjectPic_TallGrass_4), + overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 0), + overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 1), + overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 2), + overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 3), + overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850CA84[] = @@ -66,11 +66,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_TallGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_TallGrass, gFieldEffectObjectPicTable_TallGrass, gDummySpriteAffineAnimTable, unc_grass_normal}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Ripple[] = { - obj_frame_tiles(gFieldEffectObjectPic_Ripple_0), - obj_frame_tiles(gFieldEffectObjectPic_Ripple_1), - obj_frame_tiles(gFieldEffectObjectPic_Ripple_2), - obj_frame_tiles(gFieldEffectObjectPic_Ripple_3), - obj_frame_tiles(gFieldEffectObjectPic_Ripple_4), + overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 0), + overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 1), + overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 2), + overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 3), + overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850CAE0[] = @@ -94,11 +94,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Ripple[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Ripple, gFieldEffectObjectPicTable_Ripple, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Ash[] = { - obj_frame_tiles(gFieldEffectObjectPic_Ash_0), - obj_frame_tiles(gFieldEffectObjectPic_Ash_1), - obj_frame_tiles(gFieldEffectObjectPic_Ash_2), - obj_frame_tiles(gFieldEffectObjectPic_Ash_3), - obj_frame_tiles(gFieldEffectObjectPic_Ash_4), + overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 0), + overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 1), + overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 2), + overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 3), + overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850CB48[] = @@ -119,9 +119,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Ash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Ash = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Ash, gFieldEffectObjectPicTable_Ash, gDummySpriteAffineAnimTable, sub_8155460}; const struct SpriteFrameImage gFieldEffectObjectPicTable_SurfBlob[] = { - obj_frame_tiles(gFieldEffectObjectPic_SurfBlob_0), - obj_frame_tiles(gFieldEffectObjectPic_SurfBlob_1), - obj_frame_tiles(gFieldEffectObjectPic_SurfBlob_2), + overworld_frame(gFieldEffectObjectPic_SurfBlob, 32, 32, 0), + overworld_frame(gFieldEffectObjectPic_SurfBlob, 32, 32, 1), + overworld_frame(gFieldEffectObjectPic_SurfBlob, 32, 32, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850CB94[] = @@ -159,14 +159,14 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_SurfBlob[] = const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_SurfBlob, gFieldEffectObjectPicTable_SurfBlob, gDummySpriteAffineAnimTable, sub_8155658}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Arrow[] = { - obj_frame_tiles(gFieldEffectObjectPic_Arrow_0), - obj_frame_tiles(gFieldEffectObjectPic_Arrow_1), - obj_frame_tiles(gFieldEffectObjectPic_Arrow_2), - obj_frame_tiles(gFieldEffectObjectPic_Arrow_3), - obj_frame_tiles(gFieldEffectObjectPic_Arrow_4), - obj_frame_tiles(gFieldEffectObjectPic_Arrow_5), - obj_frame_tiles(gFieldEffectObjectPic_Arrow_6), - obj_frame_tiles(gFieldEffectObjectPic_Arrow_7), + overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 0), + overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 1), + overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 2), + overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 3), + overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 4), + overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 5), + overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 6), + overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 7), }; const union AnimCmd gFieldEffectObjectImageAnim_850CC1C[] = @@ -208,9 +208,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Arrow[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Arrow, gFieldEffectObjectPicTable_Arrow, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; const struct SpriteFrameImage gFieldEffectObjectPicTable_GroundImpactDust[] = { - obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_0), - obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_1), - obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_2), + obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_0), + obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_1), + obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_2), }; const union AnimCmd gFieldEffectObjectImageAnim_850CC8C[] = @@ -229,10 +229,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_GroundImpactDust[] = const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_GroundImpactDust, gFieldEffectObjectPicTable_GroundImpactDust, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopTallGrass[] = { - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_0), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_1), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_2), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_3), + obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_0), + obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_1), + obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_2), + obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CCD8[] = @@ -252,8 +252,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopTallGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopTallGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopTallGrass, gFieldEffectObjectPicTable_BikeHopTallGrass, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_SandFootprints[] = { - obj_frame_tiles(gFieldEffectObjectPic_SandFootprints_0), - obj_frame_tiles(gFieldEffectObjectPic_SandFootprints_1), + obj_frame_tiles(gFieldEffectObjectPic_SandFootprints_0), + obj_frame_tiles(gFieldEffectObjectPic_SandFootprints_1), }; const union AnimCmd gFieldEffectObjectImageAnim_850CD18[] = @@ -292,8 +292,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_SandFootprints[] = const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_SandFootprints, gFieldEffectObjectPicTable_SandFootprints, gDummySpriteAffineAnimTable, sub_8154C60}; const struct SpriteFrameImage gFieldEffectObjectPicTable_DeepSandFootprints[] = { - obj_frame_tiles(gFieldEffectObjectPic_DeepSandFootprints_0), - obj_frame_tiles(gFieldEffectObjectPic_DeepSandFootprints_1), + obj_frame_tiles(gFieldEffectObjectPic_DeepSandFootprints_0), + obj_frame_tiles(gFieldEffectObjectPic_DeepSandFootprints_1), }; const union AnimCmd gFieldEffectObjectImageAnim_850CD74[] = @@ -332,10 +332,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_DeepSandFootprints[] const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_DeepSandFootprints, gFieldEffectObjectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, sub_8154C60}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeTireTracks[] = { - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_0), - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_1), - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_2), - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_3), + obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_0), + obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_1), + obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_2), + obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CDE0[] = @@ -402,10 +402,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeTireTracks[] = const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeTireTracks, gFieldEffectObjectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, sub_8154C60}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopBigSplash[] = { - obj_frame_tiles(gFieldEffectObjectPic_BikeHopBigSplash_0), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopBigSplash_1), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopBigSplash_2), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopBigSplash_3), + overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 16, 16, 0), + overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 16, 16, 1), + overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 16, 16, 2), + overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 16, 16, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CE7C[] = @@ -425,8 +425,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopBigSplash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopBigSplash = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeHopBigSplash, gFieldEffectObjectPicTable_BikeHopBigSplash, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Splash[] = { - obj_frame_tiles(gFieldEffectObjectPic_Splash_0), - obj_frame_tiles(gFieldEffectObjectPic_Splash_1), + overworld_frame(gFieldEffectObjectPic_Splash, 16, 8, 0), + overworld_frame(gFieldEffectObjectPic_Splash, 16, 8, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850CEBC[] = @@ -458,9 +458,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Splash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Splash = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Splash, gFieldEffectObjectPicTable_Splash, gDummySpriteAffineAnimTable, sub_8154D90}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopSmallSplash[] = { - obj_frame_tiles(gFieldEffectObjectPic_BikeHopSmallSplash_0), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopSmallSplash_1), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopSmallSplash_2), + overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 16, 8, 0), + overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 16, 8, 1), + overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 16, 8, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850CF24[] = @@ -479,10 +479,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopSmallSplash[] const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopSmallSplash = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopSmallSplash, gFieldEffectObjectPicTable_BikeHopSmallSplash, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_LongGrass[] = { - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_0), - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_1), - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_2), - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_3), + obj_frame_tiles(gFieldEffectObjectPic_LongGrass_0), + obj_frame_tiles(gFieldEffectObjectPic_LongGrass_1), + obj_frame_tiles(gFieldEffectObjectPic_LongGrass_2), + obj_frame_tiles(gFieldEffectObjectPic_LongGrass_3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CF70[] = @@ -505,12 +505,12 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_LongGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_LongGrass, gFieldEffectObjectPicTable_LongGrass, gDummySpriteAffineAnimTable, unc_grass_tall}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown16[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_3), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_4), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_5), + obj_frame_tiles(gFieldEffectObjectPic_Unknown16_0), + obj_frame_tiles(gFieldEffectObjectPic_Unknown16_1), + obj_frame_tiles(gFieldEffectObjectPic_Unknown16_2), + obj_frame_tiles(gFieldEffectObjectPic_Unknown16_3), + obj_frame_tiles(gFieldEffectObjectPic_Unknown16_4), + obj_frame_tiles(gFieldEffectObjectPic_Unknown16_5), }; const union AnimCmd gFieldEffectObjectImageAnim_850CFDC[] = @@ -532,15 +532,15 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown16[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16 = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown16, gFieldEffectObjectPicTable_Unknown16, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown17[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_5), - obj_frame_tiles(gFieldEffectObjectPic_Unknown17_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown17_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown17_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown17_3), - obj_frame_tiles(gFieldEffectObjectPic_Unknown17_4), - obj_frame_tiles(gFieldEffectObjectPic_Unknown17_5), - obj_frame_tiles(gFieldEffectObjectPic_Unknown17_6), - obj_frame_tiles(gFieldEffectObjectPic_Unknown17_7), + obj_frame_tiles(gFieldEffectObjectPic_Unknown16_5), + overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 0), + overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 1), + overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 2), + overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 3), + overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 4), + overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 5), + overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 6), + overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 7), }; const union AnimCmd gFieldEffectObjectImageAnim_850D05C[] = @@ -565,10 +565,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown17[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17 = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown17, gFieldEffectObjectPicTable_Unknown17, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown18[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_3), + obj_frame_tiles(gFieldEffectObjectPic_Unknown18_0), + obj_frame_tiles(gFieldEffectObjectPic_Unknown18_1), + obj_frame_tiles(gFieldEffectObjectPic_Unknown18_2), + obj_frame_tiles(gFieldEffectObjectPic_Unknown18_3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D0C0[] = @@ -590,10 +590,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown18[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown18 = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown18, gFieldEffectObjectPicTable_Unknown18, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown19[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_3), + obj_frame_tiles(gFieldEffectObjectPic_Unknown19_0), + obj_frame_tiles(gFieldEffectObjectPic_Unknown19_1), + obj_frame_tiles(gFieldEffectObjectPic_Unknown19_2), + obj_frame_tiles(gFieldEffectObjectPic_Unknown19_3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D118[] = @@ -613,9 +613,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown19[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19 = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown19, gFieldEffectObjectPicTable_Unknown19, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown29[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown29_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown29_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown29_2), + obj_frame_tiles(gFieldEffectObjectPic_Unknown29_0), + obj_frame_tiles(gFieldEffectObjectPic_Unknown29_1), + obj_frame_tiles(gFieldEffectObjectPic_Unknown29_2), }; const union AnimCmd gFieldEffectObjectImageAnim_850D160[] = @@ -634,10 +634,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown29[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29 = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Unknown29, gFieldEffectObjectPicTable_Unknown29, gDummySpriteAffineAnimTable, sub_81559BC}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown20[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_3), + obj_frame_tiles(gFieldEffectObjectPic_Unknown20_0), + obj_frame_tiles(gFieldEffectObjectPic_Unknown20_1), + obj_frame_tiles(gFieldEffectObjectPic_Unknown20_2), + obj_frame_tiles(gFieldEffectObjectPic_Unknown20_3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D1AC[] = @@ -695,12 +695,12 @@ const union AffineAnimCmd *const gFieldEffectObjectRotScalAnimTable_Unknown21[] const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectObjectRotScalAnimTable_Unknown21, SpriteCallbackDummy}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BerryTreeGrowthSparkle[] = { - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_0), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_1), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_2), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_3), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_4), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_5), + obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_0), + obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_1), + obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_2), + obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_3), + obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_4), + obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_5), }; const union AnimCmd gFieldEffectObjectImageAnim_850D2D4[] = @@ -736,13 +736,13 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BerryTreeGrowthSpark const struct SpriteTemplate gFieldEffectObjectTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle, gFieldEffectObjectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_TreeDisguise[] = { - obj_frame_tiles(gFieldEffectObjectPic_TreeDisguise_0), - obj_frame_tiles(gFieldEffectObjectPic_TreeDisguise_1), - obj_frame_tiles(gFieldEffectObjectPic_TreeDisguise_2), - obj_frame_tiles(gFieldEffectObjectPic_TreeDisguise_3), - obj_frame_tiles(gFieldEffectObjectPic_TreeDisguise_4), - obj_frame_tiles(gFieldEffectObjectPic_TreeDisguise_5), - obj_frame_tiles(gFieldEffectObjectPic_TreeDisguise_6), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 0), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 1), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 2), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 3), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 4), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 5), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 6), }; const union AnimCmd gFieldEffectObjectImageAnim_850D37C[] = @@ -772,13 +772,13 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_TreeDisguise[] = const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, sub_8155C88}; const struct SpriteFrameImage gFieldEffectObjectPicTable_MountainDisguise[] = { - obj_frame_tiles(gFieldEffectObjectPic_MountainDisguise_0), - obj_frame_tiles(gFieldEffectObjectPic_MountainDisguise_1), - obj_frame_tiles(gFieldEffectObjectPic_MountainDisguise_2), - obj_frame_tiles(gFieldEffectObjectPic_MountainDisguise_3), - obj_frame_tiles(gFieldEffectObjectPic_MountainDisguise_4), - obj_frame_tiles(gFieldEffectObjectPic_MountainDisguise_5), - obj_frame_tiles(gFieldEffectObjectPic_MountainDisguise_6), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 0), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 1), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 2), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 3), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 4), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 5), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 6), }; const union AnimCmd gFieldEffectObjectImageAnim_850D3FC[] = @@ -808,19 +808,19 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_MountainDisguise[] = const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_MountainDisguise, gFieldEffectObjectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, sub_8155C88}; const struct SpriteFrameImage gFieldEffectObjectPicTable_SandDisguisePlaceholder[] = { - obj_frame_tiles(gFieldEffectObjectPic_SandDisguisePlaceholder_0), - obj_frame_tiles(gFieldEffectObjectPic_SandDisguisePlaceholder_1), - obj_frame_tiles(gFieldEffectObjectPic_SandDisguisePlaceholder_2), - obj_frame_tiles(gFieldEffectObjectPic_SandDisguisePlaceholder_3), - obj_frame_tiles(gFieldEffectObjectPic_SandDisguisePlaceholder_4), - obj_frame_tiles(gFieldEffectObjectPic_SandDisguisePlaceholder_5), - obj_frame_tiles(gFieldEffectObjectPic_SandDisguisePlaceholder_6), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 0), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 1), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 2), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 3), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 4), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 5), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 6), }; const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_SandDisguisePlaceholder, gDummySpriteAffineAnimTable, sub_8155C88}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Bird[] = { - obj_frame_tiles(gFieldEffectObjectPic_Bird), + obj_frame_tiles(gFieldEffectObjectPic_Bird), }; const union AnimCmd gFieldEffectObjectImageAnim_850D49C[] = @@ -837,8 +837,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bird[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Bird = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_Bird, gFieldEffectObjectPicTable_Bird, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; const struct SpriteFrameImage gFieldEffectObjectPicTable_ShortGrass[] = { - obj_frame_tiles(gFieldEffectObjectPic_ShortGrass_0), - obj_frame_tiles(gFieldEffectObjectPic_ShortGrass_1), + overworld_frame(gFieldEffectObjectPic_ShortGrass, 16, 16, 0), + overworld_frame(gFieldEffectObjectPic_ShortGrass, 16, 16, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850D4D0[] = @@ -856,7 +856,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_ShortGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_ShortGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_ShortGrass, gFieldEffectObjectPicTable_ShortGrass, gDummySpriteAffineAnimTable, sub_8154A10}; const struct SpriteFrameImage gFieldEffectObjectPicTable_HotSpringsWater[] = { - obj_frame_tiles(gFieldEffectObjectPic_HotSpringsWater), + obj_frame_tiles(gFieldEffectObjectPic_HotSpringsWater), }; const union AnimCmd gFieldEffectObjectImageAnim_850D500[] = @@ -873,11 +873,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_HotSpringsWater[] = const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_HotSpringsWater, gFieldEffectObjectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, sub_8155158}; const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpOutOfAsh[] = { - obj_frame_tiles(gFieldEffectObjectPic_JumpOutOfAsh_0), - obj_frame_tiles(gFieldEffectObjectPic_JumpOutOfAsh_1), - obj_frame_tiles(gFieldEffectObjectPic_JumpOutOfAsh_2), - obj_frame_tiles(gFieldEffectObjectPic_JumpOutOfAsh_3), - obj_frame_tiles(gFieldEffectObjectPic_JumpOutOfAsh_4), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 0), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 1), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 2), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 3), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850D54C[] = @@ -900,11 +900,11 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh = {0xFFFF, 0 const struct SpritePalette gFieldEffectObjectPaletteInfo2 = {gFieldEffectObjectPalette2, 0x100D}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown33[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_3), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_4), + obj_frame_tiles(gFieldEffectObjectPic_Unknown33_0), + obj_frame_tiles(gFieldEffectObjectPic_Unknown33_1), + obj_frame_tiles(gFieldEffectObjectPic_Unknown33_2), + obj_frame_tiles(gFieldEffectObjectPic_Unknown33_3), + obj_frame_tiles(gFieldEffectObjectPic_Unknown33_4), }; const union AnimCmd gFieldEffectObjectImageAnim_850D5B0[] = @@ -925,14 +925,14 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown33[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown33 = {0xFFFF, 0x100D, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown33, gFieldEffectObjectPicTable_Unknown33, gDummySpriteAffineAnimTable, sub_80B7A58}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Bubbles[] = { - obj_frame_tiles(gFieldEffectObjectPic_Bubbles_0), - obj_frame_tiles(gFieldEffectObjectPic_Bubbles_1), - obj_frame_tiles(gFieldEffectObjectPic_Bubbles_2), - obj_frame_tiles(gFieldEffectObjectPic_Bubbles_3), - obj_frame_tiles(gFieldEffectObjectPic_Bubbles_4), - obj_frame_tiles(gFieldEffectObjectPic_Bubbles_5), - obj_frame_tiles(gFieldEffectObjectPic_Bubbles_6), - obj_frame_tiles(gFieldEffectObjectPic_Bubbles_7), + overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 0), + overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 1), + overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 2), + overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 3), + overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 4), + overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 5), + overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 6), + overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 7), }; const union AnimCmd gFieldEffectObjectImageAnim_850D624[] = @@ -956,8 +956,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bubbles[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_Bubbles, gFieldEffectObjectPicTable_Bubbles, gDummySpriteAffineAnimTable, sub_8155AEC}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown35[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown35_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown35_1), + obj_frame_tiles(gFieldEffectObjectPic_Unknown35_0), + obj_frame_tiles(gFieldEffectObjectPic_Unknown35_1), }; const union AnimCmd gFieldEffectObjectImageAnim_850D674[] = @@ -987,7 +987,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Rayquaza[] = { }; const struct SpriteFrameImage gFieldEffectObjectPicTable_Rayquaza[] = { - {.data = (u8*)gEventObjectPic_Rayquaza_0, .size = (sizeof gEventObjectPic_Rayquaza_0) / 4} + overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 0), }; const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_Rayquaza, gFieldEffectObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable, sub_8155F80}; -- cgit v1.2.3 From 291ac2cee9b04c6a9b203867bbcf9df0176ef0e2 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sat, 8 Sep 2018 00:28:32 +0100 Subject: Add build rules for overworld sprite sheets --- src/data/field_event_obj/event_object_pic_tables.h | 52 +++++++++++----------- src/data/field_event_obj/field_effect_objects.h | 2 +- 2 files changed, 27 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_pic_tables.h b/src/data/field_event_obj/event_object_pic_tables.h index 53f5976f1..80a4e12ac 100755 --- a/src/data/field_event_obj/event_object_pic_tables.h +++ b/src/data/field_event_obj/event_object_pic_tables.h @@ -66,16 +66,16 @@ const struct SpriteFrameImage gEventObjectPicTable_BrendanAcroBike[] = { const struct SpriteFrameImage gEventObjectPicTable_BrendanSurfing[] = { overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 1), overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 4), overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 0), overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 1), overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 2), overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 3), overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 3), overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 5), }; @@ -122,15 +122,15 @@ const struct SpriteFrameImage gEventObjectPicTable_LittleBoy1[] = { }; const struct SpriteFrameImage gEventObjectPicTable_LittleGirl1[] = { - overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 0), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 1), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 2), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 3), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 4), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 5), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 6), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 7), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 16, 8), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 0), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 1), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 2), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 3), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 4), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 5), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 6), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 7), + overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Boy1[] = { @@ -1057,16 +1057,16 @@ const struct SpriteFrameImage gEventObjectPicTable_MayAcroBike[] = { const struct SpriteFrameImage gEventObjectPicTable_MaySurfing[] = { overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 1), overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 2), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 4), overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 0), overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 1), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 1), overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 2), overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 2), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 3), overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 4), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 4), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 1), + overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 3), overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 5), }; @@ -1658,24 +1658,24 @@ const struct SpriteFrameImage gEventObjectPicTable_ContestOldMan[] = { const struct SpriteFrameImage gEventObjectPicTable_BrendanWatering[] = { overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 1), overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 1), + overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 1), overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 3), overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 3), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 4), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 4), overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 5), overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 5), }; const struct SpriteFrameImage gEventObjectPicTable_MayWatering[] = { overworld_frame(gEventObjectPic_MayWatering, 32, 32, 0), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 1), overworld_frame(gEventObjectPic_MayWatering, 32, 32, 2), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 4), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 1), + overworld_frame(gEventObjectPic_MayWatering, 32, 32, 1), overworld_frame(gEventObjectPic_MayWatering, 32, 32, 3), overworld_frame(gEventObjectPic_MayWatering, 32, 32, 3), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 4), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 4), overworld_frame(gEventObjectPic_MayWatering, 32, 32, 5), overworld_frame(gEventObjectPic_MayWatering, 32, 32, 5), }; @@ -1858,12 +1858,12 @@ const struct SpriteFrameImage gEventObjectPicTable_Azumarill[] = { const struct SpriteFrameImage gEventObjectPicTable_Wingull[] = { overworld_frame(gEventObjectPic_Wingull, 16, 16, 0), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 1), overworld_frame(gEventObjectPic_Wingull, 16, 16, 2), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 4), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 1), + overworld_frame(gEventObjectPic_Wingull, 16, 16, 1), overworld_frame(gEventObjectPic_Wingull, 16, 16, 3), overworld_frame(gEventObjectPic_Wingull, 16, 16, 3), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 4), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 4), overworld_frame(gEventObjectPic_Wingull, 16, 16, 5), overworld_frame(gEventObjectPic_Wingull, 16, 16, 5), }; diff --git a/src/data/field_event_obj/field_effect_objects.h b/src/data/field_event_obj/field_effect_objects.h index 785a15872..e8d15918f 100755 --- a/src/data/field_event_obj/field_effect_objects.h +++ b/src/data/field_event_obj/field_effect_objects.h @@ -987,7 +987,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Rayquaza[] = { }; const struct SpriteFrameImage gFieldEffectObjectPicTable_Rayquaza[] = { - overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 0), + {.data = (u8*)gEventObjectPic_Rayquaza, .size = ((64*64)/2) /4} }; const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_Rayquaza, gFieldEffectObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable, sub_8155F80}; -- cgit v1.2.3 From d945a8bf2fc1fb61cf8f2c3e572fe378ba45bdae Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 7 Sep 2018 19:24:33 -0500 Subject: Macroize main_menu and general cleanup --- src/battle_dome.c | 12 +-- src/main_menu.c | 226 +++++++++++++++++++++++++++++++----------------------- 2 files changed, 134 insertions(+), 104 deletions(-) (limited to 'src') diff --git a/src/battle_dome.c b/src/battle_dome.c index ff284b564..0815b6a9b 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -6024,7 +6024,7 @@ static void HblankCb_BattleDome(void) if (vCount < 50) { 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)); + SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } else if (vCount > 57) @@ -6032,13 +6032,13 @@ static void HblankCb_BattleDome(void) if (vCount < 75) { 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)); + SET_WIN0H_WIN1H(WIN_RANGE(144, 152), WIN_RANGE(88, 96)); return; } else if (vCount < 82) { 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)); + SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } else if (vCount > 94) @@ -6046,13 +6046,13 @@ static void HblankCb_BattleDome(void) if (vCount < 103) { 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)); + SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } else if (vCount < 119) { 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)); + SET_WIN0H_WIN1H(WIN_RANGE(144, 152), WIN_RANGE(88, 96)); return; } else if (vCount > 126) @@ -6060,7 +6060,7 @@ static void HblankCb_BattleDome(void) if (vCount_ < 135) { 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)); + SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } } diff --git a/src/main_menu.c b/src/main_menu.c index 3d8d5acc2..314ac272a 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -131,85 +131,115 @@ 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[] = -{ +#define MENU_LEFT 2 +#define MENU_TOP_WIN0 1 +#define MENU_TOP_WIN1 5 +#define MENU_TOP_WIN2 1 +#define MENU_TOP_WIN3 9 +#define MENU_TOP_WIN4 13 +#define MENU_TOP_WIN5 17 +#define MENU_TOP_WIN6 21 +#define MENU_WIDTH 26 +#define MENU_HEIGHT_WIN0 2 +#define MENU_HEIGHT_WIN1 2 +#define MENU_HEIGHT_WIN2 6 +#define MENU_HEIGHT_WIN3 2 +#define MENU_HEIGHT_WIN4 2 +#define MENU_HEIGHT_WIN5 2 +#define MENU_HEIGHT_WIN6 2 + +#define MENU_LEFT_ERROR 2 +#define MENU_TOP_ERROR 15 +#define MENU_WIDTH_ERROR 26 +#define MENU_HEIGHT_ERROR 4 + +#define MENU_SHADOW_PADDING 1 + +#define MENU_WIN_HCOORDS WIN_RANGE(((MENU_LEFT - 1) * 8) + MENU_SHADOW_PADDING, (MENU_LEFT + MENU_WIDTH + 1) * 8 - MENU_SHADOW_PADDING) +#define MENU_WIN_VCOORDS(n) WIN_RANGE(((MENU_TOP_WIN##n - 1) * 8) + MENU_SHADOW_PADDING, (MENU_TOP_WIN##n + MENU_HEIGHT_WIN##n + 1) * 8 - MENU_SHADOW_PADDING) +#define MENU_SCROLL_SHIFT WIN_RANGE(32, 32) + +const struct WindowTemplate sWindowTemplates_MainMenu[] = +{ + // No saved game + // NEW GAME { .priority = 0, - .tilemapLeft = 2, - .tilemapTop = 1, - .width = 26, - .height = 2, + .tilemapLeft = MENU_LEFT, + .tilemapTop = MENU_TOP_WIN0, + .width = MENU_WIDTH, + .height = MENU_HEIGHT_WIN0, .paletteNum = 15, .baseBlock = 1 }, + // OPTIONS { .priority = 0, - .tilemapLeft = 2, - .tilemapTop = 5, - .width = 26, - .height = 2, + .tilemapLeft = MENU_LEFT, + .tilemapTop = MENU_TOP_WIN1, + .width = MENU_WIDTH, + .height = MENU_HEIGHT_WIN1, .paletteNum = 15, .baseBlock = 0x35 - } -}; - -const struct WindowTemplate sWindowTemplates_HasSavedGame[] = -{ + }, + // Has saved game + // CONTINUE { .priority = 0, - .tilemapLeft = 2, - .tilemapTop = 1, - .width = 26, - .height = 6, + .tilemapLeft = MENU_LEFT, + .tilemapTop = MENU_TOP_WIN2, + .width = MENU_WIDTH, + .height = MENU_HEIGHT_WIN2, .paletteNum = 15, .baseBlock = 1 }, + // NEW GAME { .priority = 0, - .tilemapLeft = 2, - .tilemapTop = 9, - .width = 26, - .height = 2, + .tilemapLeft = MENU_LEFT, + .tilemapTop = MENU_TOP_WIN3, + .width = MENU_WIDTH, + .height = MENU_HEIGHT_WIN3, .paletteNum = 15, .baseBlock = 0x9D }, + // OPTION / MYSTERY GIFT { .priority = 0, - .tilemapLeft = 2, - .tilemapTop = 13, - .width = 26, - .height = 2, + .tilemapLeft = MENU_LEFT, + .tilemapTop = MENU_TOP_WIN4, + .width = MENU_WIDTH, + .height = MENU_HEIGHT_WIN4, .paletteNum = 15, .baseBlock = 0xD1 }, + // OPTION / MYSTERY EVENTS { .priority = 0, - .tilemapLeft = 2, - .tilemapTop = 17, - .width = 26, - .height = 2, + .tilemapLeft = MENU_LEFT, + .tilemapTop = MENU_TOP_WIN5, + .width = MENU_WIDTH, + .height = MENU_HEIGHT_WIN5, .paletteNum = 15, .baseBlock = 0x105 }, + // OPTION { .priority = 0, - .tilemapLeft = 2, - .tilemapTop = 21, - .width = 26, - .height = 2, + .tilemapLeft = MENU_LEFT, + .tilemapTop = MENU_TOP_WIN6, + .width = MENU_WIDTH, + .height = MENU_HEIGHT_WIN6, .paletteNum = 15, .baseBlock = 0x139 - } -}; - -const struct WindowTemplate sWindowTemplate_ErrorWindow[] = -{ + }, + // Error message window { .priority = 0, - .tilemapLeft = 2, - .tilemapTop = 15, - .width = 26, - .height = 4, + .tilemapLeft = MENU_LEFT_ERROR, + .tilemapTop = MENU_TOP_ERROR, + .width = MENU_WIDTH_ERROR, + .height = MENU_HEIGHT_ERROR, .paletteNum = 15, .baseBlock = 0x16D }, @@ -351,14 +381,14 @@ enum { HAS_NO_SAVED_GAME, //NEW GAME, OPTION HAS_SAVED_GAME, //CONTINUE, NEW GAME, OPTION - HAS_MYSTERY_GIFT, //CONTINUE, NEW GAME, MYSTERY EVENTS, OPTION - HAS_MYSTERY_EVENTS, + HAS_MYSTERY_GIFT, //CONTINUE, NEW GAME, MYSTERY GIFT, OPTION + HAS_MYSTERY_EVENTS, //CONTINUE, NEW GAME, MYSTERY GIFT, MYSTERY EVENTS, OPTION }; enum { ACTION_NEW_GAME, ACTION_CONTINUE, - ACTION_OPTIONS, + ACTION_OPTION, ACTION_MYSTERY_GIFT, ACTION_MYSTERY_EVENTS, ACTION_UNKNOWN, // TODO: change when rom_8011DC0 decompiled @@ -423,12 +453,12 @@ u32 InitMainMenu(bool8 returningFromOptionsMenu) else BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0xFFFF); // fade to white ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_082FF0E8, 2); + InitBgsFromTemplates(0, gUnknown_082FF0E8, ARRAY_COUNT(gUnknown_082FF0E8)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); ChangeBgY(1, 0, 0); - InitWindows(sWindowTemplates_NoSavedGame); + InitWindows(sWindowTemplates_MainMenu); DeactivateAllTextPrinters(); LoadMainMenuWindowFrameTiles(0, MAIN_MENU_BORDER_TILE); @@ -535,7 +565,7 @@ void Task_WaitForSaveFileErrorWindow(u8 taskId) if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON)) { ClearWindowTilemap(7); - ClearMainMenuWindowTilemap(sWindowTemplate_ErrorWindow); + ClearMainMenuWindowTilemap(&sWindowTemplates_MainMenu[7]); gTasks[taskId].func = Task_MainMenuCheckBattery; } } @@ -570,7 +600,7 @@ void Task_WaitForBatteryDryErrorWindow(u8 taskId) if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON)) { ClearWindowTilemap(7); - ClearMainMenuWindowTilemap(sWindowTemplate_ErrorWindow); + ClearMainMenuWindowTilemap(&sWindowTemplates_MainMenu[7]); gTasks[taskId].func = Task_DisplayMainMenu; } } @@ -625,8 +655,8 @@ void Task_DisplayMainMenu(u8 taskId) PutWindowTilemap(1); CopyWindowToVram(0, 2); CopyWindowToVram(1, 2); - DrawMainMenuWindowBorder(&sWindowTemplates_NoSavedGame[0], MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_NoSavedGame[1], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[0], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[1], MAIN_MENU_BORDER_TILE); break; case HAS_SAVED_GAME: FillWindowPixelBuffer(2, 0xAA); @@ -642,9 +672,9 @@ void Task_DisplayMainMenu(u8 taskId) CopyWindowToVram(2, 2); CopyWindowToVram(3, 2); CopyWindowToVram(4, 2); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[0], MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[1], MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[2], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[2], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[3], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[4], MAIN_MENU_BORDER_TILE); break; case HAS_MYSTERY_GIFT: FillWindowPixelBuffer(2, 0xAA); @@ -664,10 +694,10 @@ void Task_DisplayMainMenu(u8 taskId) CopyWindowToVram(3, 2); CopyWindowToVram(4, 2); CopyWindowToVram(5, 2); - DrawMainMenuWindowBorder(sWindowTemplates_HasSavedGame, MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[1], MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[2], MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[3], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[2], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[3], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[4], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[5], MAIN_MENU_BORDER_TILE); break; case HAS_MYSTERY_EVENTS: FillWindowPixelBuffer(2, 0xAA); @@ -691,11 +721,11 @@ void Task_DisplayMainMenu(u8 taskId) CopyWindowToVram(4, 2); CopyWindowToVram(5, 2); CopyWindowToVram(6, 2); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[0], MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[1], MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[2], MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[3], MAIN_MENU_BORDER_TILE); - DrawMainMenuWindowBorder(&sWindowTemplates_HasSavedGame[4], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[2], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[3], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[4], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[5], MAIN_MENU_BORDER_TILE); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[6], MAIN_MENU_BORDER_TILE); tScrollArrowTaskId = AddScrollIndicatorArrowPair(&sScrollArrowsTemplate_MainMenu, &sCurrItemAndOptionMenuCheck); gTasks[tScrollArrowTaskId].func = Task_ScrollIndicatorArrowPairOnMainMenu; if (sCurrItemAndOptionMenuCheck == 4) @@ -732,8 +762,8 @@ bool8 HandleMainMenuInput(u8 taskId) { PlaySE(SE_SELECT); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_WHITEALPHA); - SetGpuReg(REG_OFFSET_WIN0H, 0xF0); - SetGpuReg(REG_OFFSET_WIN0V, 0xA0); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160)); gTasks[taskId].func = Task_HandleMainMenuBPressed; } else if ((gMain.newKeys & DPAD_UP) && tCurrItem > 0) @@ -798,7 +828,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) action = ACTION_NEW_GAME; break; case 1: - action = ACTION_OPTIONS; + action = ACTION_OPTION; break; } break; @@ -813,7 +843,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) action = ACTION_NEW_GAME; break; case 2: - action = ACTION_OPTIONS; + action = ACTION_OPTION; break; } break; @@ -832,11 +862,11 @@ void Task_HandleMainMenuAPressed(u8 taskId) if (!wirelessAdapterConnected) { action = ACTION_INVALID; - gTasks[taskId].tMenuType = 0; + gTasks[taskId].tMenuType = HAS_NO_SAVED_GAME; } break; case 3: - action = ACTION_OPTIONS; + action = ACTION_OPTION; break; } break; @@ -857,13 +887,13 @@ void Task_HandleMainMenuAPressed(u8 taskId) if (!wirelessAdapterConnected) { action = ACTION_INVALID; - gTasks[taskId].tMenuType = 0; + gTasks[taskId].tMenuType = HAS_NO_SAVED_GAME; } } else if (wirelessAdapterConnected) { action = ACTION_INVALID; - gTasks[taskId].tMenuType = 1; + gTasks[taskId].tMenuType = HAS_SAVED_GAME; } else { @@ -874,7 +904,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) if (wirelessAdapterConnected) { action = ACTION_INVALID; - gTasks[taskId].tMenuType = 2; + gTasks[taskId].tMenuType = HAS_MYSTERY_GIFT; } else { @@ -882,7 +912,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) } break; case 4: - action = ACTION_OPTIONS; + action = ACTION_OPTION; break; } break; @@ -903,7 +933,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) SetMainCallback2(CB2_ContinueSavedGame); DestroyTask(taskId); break; - case ACTION_OPTIONS: + case ACTION_OPTION: gMain.savedCallback = CB2_ReinitMainMenu; SetMainCallback2(CB2_InitOptionMenu); DestroyTask(taskId); @@ -935,7 +965,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) return; } FreeAllWindowBuffers(); - if (action != ACTION_OPTIONS) + if (action != ACTION_OPTION) sCurrItemAndOptionMenuCheck = 0; else sCurrItemAndOptionMenuCheck |= 0x8000; // entering the options menu @@ -1005,7 +1035,7 @@ void Task_DisplayMainMenuInvalidActionError(u8 taskId) void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrolled) { - SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(9, 231)); + SetGpuReg(REG_OFFSET_WIN0H, MENU_WIN_HCOORDS); switch (menuType) { @@ -1015,10 +1045,10 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrol { case 0: default: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(1, 31)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(0)); break; case 1: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(33, 63)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(1)); break; } break; @@ -1027,13 +1057,13 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrol { case 0: default: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(1, 63)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(2)); break; case 1: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(65, 95)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(3)); break; case 2: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(97, 127)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(4)); break; } break; @@ -1042,16 +1072,16 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrol { case 0: default: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(1, 63)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(2)); break; case 1: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(65, 95)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(3)); break; case 2: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(97, 127)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(4)); break; case 3: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(129, 159)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(5)); break; } break; @@ -1060,28 +1090,28 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrol { case 0: default: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(1, 63)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(2)); break; case 1: if (isScrolled) - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(33, 63)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(3) - MENU_SCROLL_SHIFT); else - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(65, 95)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(3)); break; case 2: if (isScrolled) - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(65, 95)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(4) - MENU_SCROLL_SHIFT); else - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(97, 127)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(4)); break; case 3: if (isScrolled) - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(97, 127)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(5) - MENU_SCROLL_SHIFT); else - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(129, 159)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(5)); break; case 4: - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(129, 159)); + SetGpuReg(REG_OFFSET_WIN0V, MENU_WIN_VCOORDS(6) - MENU_SCROLL_SHIFT); break; } break; @@ -1915,9 +1945,9 @@ void CreateMainMenuErrorWindow(const u8* str) PrintTextOnWindow(7, 1, str, 0, 1, 2, 0); PutWindowTilemap(7); CopyWindowToVram(7, 2); - DrawMainMenuWindowBorder(sWindowTemplate_ErrorWindow, MAIN_MENU_BORDER_TILE); - SetGpuReg(REG_OFFSET_WIN0H, 0x9E7); - SetGpuReg(REG_OFFSET_WIN0V, 0x719F); + DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[7], MAIN_MENU_BORDER_TILE); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(9, 231)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(113, 159)); } void fmt_savegame(void) -- cgit v1.2.3 From f73807ea607ce195f0351213c24869d2f5286e5a Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 7 Sep 2018 23:52:11 -0500 Subject: Add palette tags for event objects --- .../field_event_obj/event_object_graphics_info.h | 490 ++++++++++----------- src/event_object_movement.c | 351 ++++++++------- 2 files changed, 439 insertions(+), 402 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_graphics_info.h b/src/data/field_event_obj/event_object_graphics_info.h index 14ef4983d..fd8bb78ce 100755 --- a/src/data/field_event_obj/event_object_graphics_info.h +++ b/src/data/field_event_obj/event_object_graphics_info.h @@ -1,250 +1,250 @@ #ifndef GUARD_EVENT_OBJECT_GRAPHICS_INFO_H #define GUARD_EVENT_OBJECT_GRAPHICS_INFO_H -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanNormal = {0xFFFF, 0x1100, 0x1102, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanMachBike = {0xFFFF, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanAcroBike = {0xFFFF, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanSurfing = {0xFFFF, 0x1100, 0x11FF, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Surfing, gEventObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanFieldMove = {0xFFFF, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_FieldMove, gEventObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_QuintyPlump = {0xFFFF, 0x110B, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_QuintyPlump, gEventObjectPicTable_QuintyPlump, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy1 = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleBoy1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl1 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleGirl1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy1 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl1 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Girl1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy2 = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl2 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Girl2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy2 = {0xFFFF, 0x1106, 0x11FF, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleBoy2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl2 = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleGirl2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy3 = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy3, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl3 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Girl3, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy4 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy4, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman1 = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_FatMan = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_FatMan, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman2 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man1 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman3 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman3, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan1 = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldMan1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman1 = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldWoman1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man2 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman4 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman4, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man3 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man3, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman5 = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman5, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Cook = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Cook, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman6 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman6, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan2 = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldMan2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman2 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldWoman2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Camper = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Camper, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Picnicker = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Picnicker, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man4 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man4, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman7 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman7, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Youngster = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Youngster, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BugCatcher = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BugCatcher, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PsychicM = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_PsychicM, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SchoolKidM = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SchoolKidM, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Maniac = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Maniac, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_HexManiac = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_HexManiac, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Rayquaza1 = {0xFFFF, 0x1105, 0x11FF, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_64x64, gEventObjectSpriteOamTables_64x64, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RayquazaStill, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SwimmerM = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SwimmerM, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SwimmerF = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SwimmerF, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BlackBelt = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BlackBelt, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Beauty = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Beauty, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Scientist1 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Scientist1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Lass = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Lass, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Gentleman = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Gentleman, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Sailor = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Sailor, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Fisherman = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Fisherman, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RunningTriathleteM = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RunningTriathleteF = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TuberF = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_TuberF, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TuberM = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_TuberM, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Hiker = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Hiker, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CyclingTriathleteM = {0xFFFF, 0x1105, 0x11FF, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CyclingTriathleteF = {0xFFFF, 0x1103, 0x11FF, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Nurse = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Nurse, gEventObjectPicTable_Nurse, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ItemBall = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_ItemBall, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTree = {0xFFFF, 0x1103, 0x11FF, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, NULL, gEventObjectImageAnimTable_BerryTree, gEventObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTreeEarlyStages = {0xFFFF, 0x1103, 0x11FF, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_BerryTree, gEventObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTreeLateStages = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BerryTree, gEventObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ProfBirch = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ProfBirch, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man5 = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man5, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man6 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man6, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ReporterM = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ReporterM, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ReporterF = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ReporterF, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Bard = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Hipster = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Trader = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Storyteller = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Giddy = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMauvilleOldMan1 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMauvilleOldMan2 = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedNatuDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMagnemiteDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedSquirtleDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedWooperDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedPikachuDoll = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedPorygon2Doll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CuttableTree = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_CuttableTree, gEventObjectPicTable_CuttableTree, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MartEmployee = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MartEmployee, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RooftopSaleWoman = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Teala = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Teala, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BreakableRock = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_BreakableRock, gEventObjectPicTable_BreakableRock, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PushableBoulder = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_PushableBoulder, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MrBrineysBoat = {0xFFFF, 0x1105, 0x11FF, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayNormal = {0xFFFF, 0x1110, 0x1102, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_MayNormal, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayMachBike = {0xFFFF, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayAcroBike = {0xFFFF, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MaySurfing = {0xFFFF, 0x1110, 0x11FF, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Surfing, gEventObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayFieldMove = {0xFFFF, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_FieldMove, gEventObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Truck = {0xFFFF, 0x110D, 0x11FF, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_Truck, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_Truck, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_VigorothCarryingBox = {0xFFFF, 0x110E, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_VigorothCarryingBox, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_VigorothFacingAway = {0xFFFF, 0x110E, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_VigorothFacingAway, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BirchsBag = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BirchsBag, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_EnemyZigzagoon = {0xFFFF, 0x110F, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_EnemyZigzagoon, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Poochyena = {0xFFFF, 0x111C, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Poochyena, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Artist = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Artist, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanNormal = {0xFFFF, 0x1100, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanMachBike = {0xFFFF, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanAcroBike = {0xFFFF, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanSurfing = {0xFFFF, 0x1100, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Surfing, gEventObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanFieldMove = {0xFFFF, 0x1100, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_FieldMove, gEventObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMayNormal = {0xFFFF, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_MayNormal, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMayMachBike = {0xFFFF, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMayAcroBike = {0xFFFF, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMaySurfing = {0xFFFF, 0x1110, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Surfing, gEventObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMayFieldMove = {0xFFFF, 0x1110, 0x1102, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_FieldMove, gEventObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Cameraman = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Cameraman, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanUnderwater = {0xFFFF, 0x1115, 0x11FF, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayUnderwater = {0xFFFF, 0x1115, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MayUnderwater, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MovingBox = {0xFFFF, 0x1112, 0x11FF, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MovingBox, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CableCar = {0xFFFF, 0x1113, 0x11FF, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_64x64, gEventObjectSpriteOamTables_64x64, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_CableCar, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Scientist2 = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Scientist2, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man7 = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man7, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AquaMemberM = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_AquaMemberM, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AquaMemberF = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_AquaMemberF, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MagmaMemberM = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MagmaMemberM, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MagmaMemberF = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MagmaMemberF, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Sidney = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Sidney, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Phoebe = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Phoebe, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Glacia = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Glacia, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Drake = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Drake, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Roxanne = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Roxanne, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Brawly = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Brawly, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Wattson = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Wattson, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Flannery = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Flannery, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Norman = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Norman, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Winona = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Winona, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Liza = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Liza, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Tate = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Tate, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Wallace = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Wallace, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Steven = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Steven, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Wally = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Wally, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RubySapphireLittleBoy = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RubySapphireLittleBoy, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanFishing = {0xFFFF, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Fishing, gEventObjectPicTable_BrendanFishing, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayFishing = {0xFFFF, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Fishing, gEventObjectPicTable_MayFishing, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_HotSpringsOldWoman = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SSTidal = {0xFFFF, 0x1114, 0x11FF, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_8x8, gEventObjectSpriteOamTables_SSTidal, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SSTidal, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SubmarineShadow = {0xFFFF, 0x111B, 0x11FF, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_8x8, gEventObjectSpriteOamTables_SubmarineShadow, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SubmarineShadow, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PichuDoll = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_PichuDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PikachuDoll = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_PikachuDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MarillDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MarillDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TogepiDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_TogepiDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CyndaquilDoll = {0xFFFF, 0x1106, 0x11FF, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ChikoritaDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TotodileDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_TotodileDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_JigglypuffDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MeowthDoll = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MeowthDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ClefairyDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_ClefairyDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_DittoDoll = {0xFFFF, 0x1106, 0x11FF, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_DittoDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SmoochumDoll = {0xFFFF, 0x1106, 0x11FF, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SmoochumDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TreeckoDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_TreeckoDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TorchicDoll = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_TorchicDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MudkipDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MudkipDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_DuskullDoll = {0xFFFF, 0x1106, 0x11FF, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_DuskullDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_WynautDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_WynautDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BaltoyDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BaltoyDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_KecleonDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_KecleonDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AzurillDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_AzurillDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SkittyDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SkittyDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SwabluDoll = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SwabluDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_GulpinDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_GulpinDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LotadDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_LotadDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SeedotDoll = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SeedotDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PikaCushion = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_PikaCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RoundCushion = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_RoundCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_KissCushion = {0xFFFF, 0x1106, 0x11FF, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_KissCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ZigzagCushion = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_ZigzagCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SpinCushion = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SpinCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_DiamondCushion = {0xFFFF, 0x1106, 0x11FF, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_DiamondCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BallCushion = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BallCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_GrassCushion = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_GrassCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_FireCushion = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_FireCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_WaterCushion = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_WaterCushion, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigSnorlaxDoll = {0xFFFF, 0x1106, 0x11FF, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRhydonDoll = {0xFFFF, 0x1106, 0x11FF, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigLaprasDoll = {0xFFFF, 0x1103, 0x11FF, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigVenusaurDoll = {0xFFFF, 0x1105, 0x11FF, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigCharizardDoll = {0xFFFF, 0x1104, 0x11FF, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigBlastoiseDoll = {0xFFFF, 0x1103, 0x11FF, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigWailmerDoll = {0xFFFF, 0x1106, 0x11FF, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegirockDoll = {0xFFFF, 0x1103, 0x11FF, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegiceDoll = {0xFFFF, 0x1105, 0x11FF, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegisteelDoll = {0xFFFF, 0x1106, 0x11FF, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Latias = {0xFFFF, 0x1104, 0x11FF, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Latios = {0xFFFF, 0x1103, 0x11FF, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy5 = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy5, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ContestOldMan = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ContestOldMan, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanWatering = {0xFFFF, 0x1100, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanWatering, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayWatering = {0xFFFF, 0x1110, 0x1102, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MayWatering, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanDecorating = {0xFFFF, 0x1100, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BrendanDecorating, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayDecorating = {0xFFFF, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MayDecorating, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Archie = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Archie, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Maxie = {0xFFFF, 0x1104, 0x11FF, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Maxie, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kyogre1 = {0xFFFF, 0x1106, 0x11FF, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_KyogreFront, gEventObjectRotScalAnimTable_KyogreGroudon}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Groudon1 = {0xFFFF, 0x1105, 0x11FF, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_GroudonFront, gEventObjectRotScalAnimTable_KyogreGroudon}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kyogre3 = {0xFFFF, 0x1106, 0x11FF, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_KyogreSide, gEventObjectRotScalAnimTable_KyogreGroudon}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Groudon3 = {0xFFFF, 0x1105, 0x11FF, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Groudon3, gEventObjectPicTable_GroudonSide, gEventObjectRotScalAnimTable_KyogreGroudon}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Fossil = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_Fossil, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Regirock = {0xFFFF, 0x1104, 0x11FF, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Regi, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Regice = {0xFFFF, 0x1105, 0x11FF, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Regi, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Registeel = {0xFFFF, 0x1106, 0x11FF, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Regi, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Skitty = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Skitty, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kecleon1 = {0xFFFF, 0x1105, 0x11FF, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Kecleon, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kyogre2 = {0xFFFF, 0x1116, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_KyogreFront, gEventObjectRotScalAnimTable_KyogreGroudon}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Groudon2 = {0xFFFF, 0x1118, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_GroudonFront, gEventObjectRotScalAnimTable_KyogreGroudon}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Rayquaza2 = {0xFFFF, 0x1105, 0x11FF, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_64x64, gEventObjectSpriteOamTables_64x64, gEventObjectImageAnimTable_Rayquaza2, gEventObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Zigzagoon = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Zigzagoon, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Pikachu = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Pikachu, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Azumarill = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Azumarill, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Wingull = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Wingull, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kecleon2 = {0xFFFF, 0x1105, 0x1102, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Kecleon, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TuberMSwimming = {0xFFFF, 0x1104, 0x11FF, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_TuberMSwimming, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Azurill = {0xFFFF, 0x1103, 0x11FF, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Azurill, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Mom = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Mom, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LinkBrendan = {0xFFFF, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LinkMay = {0xFFFF, 0x1110, 0x1102, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_MayNormal, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Juan = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Juan, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Scott = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Scott, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MysteryEventDeliveryman = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MysteryEventDeliveryman, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Statue = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_Statue, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kirlia = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_S, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Kirlia, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Dusclops = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Dusclops, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnionRoomAttendant = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_UnionRoomAttendant, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Red = {0xFFFF, 0x111D, 0x11FF, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Red, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Leaf = {0xFFFF, 0x111D, 0x11FF, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Leaf, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Sudowoodo = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Sudowoodo, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Mew = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Mew, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Deoxys = {0xFFFF, 0x111E, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Deoxys, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BirthIslandStone = {0xFFFF, 0x111F, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BirthIslandStone, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Anabel = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Anabel, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Tucker = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Tucker, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Greta = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Greta, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Spenser = {0xFFFF, 0x1103, 0x11FF, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Spenser, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Noland = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Noland, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Lucy = {0xFFFF, 0x1106, 0x11FF, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Lucy, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Brandon = {0xFFFF, 0x1105, 0x11FF, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Brandon, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RubySapphireBrendan = {0xFFFF, 0x1122, 0x11FF, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RubySapphireBrendan, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RubySapphireMay = {0xFFFF, 0x1123, 0x11FF, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RubySapphireMay, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Lugia = {0xFFFF, 0x1121, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Lugia, gDummySpriteAffineAnimTable}; -const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_HoOh = {0xFFFF, 0x1120, 0x11FF, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_HoOh, gEventObjectPicTable_HoOh, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanNormal = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanMachBike = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanAcroBike = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanSurfing = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Surfing, gEventObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanFieldMove = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_FieldMove, gEventObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_QuintyPlump = {0xFFFF, EVENT_OBJ_PAL_TAG_12, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_QuintyPlump, gEventObjectPicTable_QuintyPlump, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy1 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleBoy1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl1 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleGirl1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy1 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl1 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Girl1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy2 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl2 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Girl2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleBoy2 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleBoy2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LittleGirl2 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LittleGirl2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy3 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy3, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Girl3 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Girl3, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy4 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy4, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman1 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_FatMan = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_FatMan, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman2 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man1 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman3 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman3, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan1 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldMan1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman1 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldWoman1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man2 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman4 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman4, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man3 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man3, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman5 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman5, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Cook = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Cook, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman6 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman6, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldMan2 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldMan2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_OldWoman2 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_OldWoman2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Camper = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Camper, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Picnicker = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Picnicker, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man4 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man4, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Woman7 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Woman7, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Youngster = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Youngster, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BugCatcher = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BugCatcher, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PsychicM = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_PsychicM, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SchoolKidM = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SchoolKidM, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Maniac = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Maniac, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_HexManiac = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_HexManiac, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Rayquaza1 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_64x64, gEventObjectSpriteOamTables_64x64, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RayquazaStill, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SwimmerM = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SwimmerM, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SwimmerF = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SwimmerF, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BlackBelt = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BlackBelt, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Beauty = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Beauty, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Scientist1 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Scientist1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Lass = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Lass, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Gentleman = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Gentleman, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Sailor = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Sailor, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Fisherman = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Fisherman, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RunningTriathleteM = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RunningTriathleteF = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TuberF = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_TuberF, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TuberM = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_TuberM, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Hiker = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Hiker, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CyclingTriathleteM = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CyclingTriathleteF = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Nurse = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Nurse, gEventObjectPicTable_Nurse, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ItemBall = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_ItemBall, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTree = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, NULL, gEventObjectImageAnimTable_BerryTree, gEventObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTreeEarlyStages = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_BerryTree, gEventObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BerryTreeLateStages = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BerryTree, gEventObjectPicTable_PechaBerryTree, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ProfBirch = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ProfBirch, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man5 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man5, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man6 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man6, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ReporterM = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ReporterM, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ReporterF = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ReporterF, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Bard = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Hipster = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Trader = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Storyteller = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Giddy = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMauvilleOldMan1 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMauvilleOldMan2 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedNatuDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMagnemiteDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedSquirtleDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedWooperDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedPikachuDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedPorygon2Doll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CuttableTree = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_CuttableTree, gEventObjectPicTable_CuttableTree, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MartEmployee = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MartEmployee, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RooftopSaleWoman = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Teala = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Teala, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BreakableRock = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_BreakableRock, gEventObjectPicTable_BreakableRock, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PushableBoulder = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_PushableBoulder, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MrBrineysBoat = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayNormal = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_MayNormal, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayMachBike = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayAcroBike = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MaySurfing = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Surfing, gEventObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayFieldMove = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_FieldMove, gEventObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Truck = {0xFFFF, EVENT_OBJ_PAL_TAG_14, EVENT_OBJ_PAL_TAG_NONE, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_Truck, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_Truck, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_VigorothCarryingBox = {0xFFFF, EVENT_OBJ_PAL_TAG_15, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_VigorothCarryingBox, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_VigorothFacingAway = {0xFFFF, EVENT_OBJ_PAL_TAG_15, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_VigorothFacingAway, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BirchsBag = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BirchsBag, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_EnemyZigzagoon = {0xFFFF, EVENT_OBJ_PAL_TAG_16, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_EnemyZigzagoon, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Poochyena = {0xFFFF, EVENT_OBJ_PAL_TAG_27, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Poochyena, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Artist = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Artist, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanNormal = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanMachBike = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanMachBike, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanAcroBike = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanSurfing = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Surfing, gEventObjectPicTable_BrendanSurfing, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalBrendanFieldMove = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_FieldMove, gEventObjectPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMayNormal = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_MayNormal, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMayMachBike = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MayMachBike, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMayAcroBike = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_AcroBike, gEventObjectPicTable_MayAcroBike, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMaySurfing = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Surfing, gEventObjectPicTable_MaySurfing, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RivalMayFieldMove = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_FieldMove, gEventObjectPicTable_MayFieldMove, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Cameraman = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Cameraman, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanUnderwater = {0xFFFF, EVENT_OBJ_PAL_TAG_11, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayUnderwater = {0xFFFF, EVENT_OBJ_PAL_TAG_11, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MayUnderwater, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MovingBox = {0xFFFF, EVENT_OBJ_PAL_TAG_19, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MovingBox, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CableCar = {0xFFFF, EVENT_OBJ_PAL_TAG_20, EVENT_OBJ_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_64x64, gEventObjectSpriteOamTables_64x64, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_CableCar, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Scientist2 = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Scientist2, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Man7 = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Man7, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AquaMemberM = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_AquaMemberM, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AquaMemberF = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_AquaMemberF, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MagmaMemberM = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MagmaMemberM, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MagmaMemberF = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MagmaMemberF, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Sidney = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Sidney, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Phoebe = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Phoebe, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Glacia = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Glacia, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Drake = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Drake, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Roxanne = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Roxanne, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Brawly = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Brawly, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Wattson = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Wattson, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Flannery = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Flannery, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Norman = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Norman, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Winona = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Winona, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Liza = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Liza, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Tate = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Tate, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Wallace = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Wallace, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Steven = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Steven, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Wally = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Wally, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RubySapphireLittleBoy = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RubySapphireLittleBoy, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanFishing = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Fishing, gEventObjectPicTable_BrendanFishing, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayFishing = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Fishing, gEventObjectPicTable_MayFishing, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_HotSpringsOldWoman = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SSTidal = {0xFFFF, EVENT_OBJ_PAL_TAG_21, EVENT_OBJ_PAL_TAG_NONE, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_8x8, gEventObjectSpriteOamTables_SSTidal, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SSTidal, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SubmarineShadow = {0xFFFF, EVENT_OBJ_PAL_TAG_26, EVENT_OBJ_PAL_TAG_NONE, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_8x8, gEventObjectSpriteOamTables_SubmarineShadow, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_SubmarineShadow, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PichuDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_PichuDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PikachuDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_PikachuDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MarillDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MarillDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TogepiDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_TogepiDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_CyndaquilDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ChikoritaDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TotodileDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_TotodileDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_JigglypuffDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MeowthDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MeowthDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ClefairyDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_ClefairyDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_DittoDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_DittoDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SmoochumDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SmoochumDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TreeckoDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_TreeckoDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TorchicDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_TorchicDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MudkipDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MudkipDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_DuskullDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_DuskullDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_WynautDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_WynautDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BaltoyDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BaltoyDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_KecleonDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_KecleonDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_AzurillDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_AzurillDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SkittyDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SkittyDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SwabluDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SwabluDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_GulpinDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_GulpinDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LotadDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_LotadDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SeedotDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SeedotDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_PikaCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_PikaCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RoundCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_RoundCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_KissCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_KissCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ZigzagCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_ZigzagCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_SpinCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_SpinCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_DiamondCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_DiamondCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BallCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BallCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_GrassCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_GrassCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_FireCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_FireCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_WaterCushion = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_WaterCushion, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigSnorlaxDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRhydonDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigLaprasDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigVenusaurDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigCharizardDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigBlastoiseDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigWailmerDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegirockDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegiceDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BigRegisteelDoll = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Latias = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Latios = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_LatiasLatios, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Boy5 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Boy5, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_ContestOldMan = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_ContestOldMan, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanWatering = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_BrendanWatering, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayWatering = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MayWatering, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BrendanDecorating = {0xFFFF, EVENT_OBJ_PAL_TAG_8, EVENT_OBJ_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BrendanDecorating, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MayDecorating = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_MayDecorating, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Archie = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Archie, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Maxie = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Maxie, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kyogre1 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_KyogreFront, gEventObjectRotScalAnimTable_KyogreGroudon}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Groudon1 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_GroudonFront, gEventObjectRotScalAnimTable_KyogreGroudon}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kyogre3 = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_KyogreSide, gEventObjectRotScalAnimTable_KyogreGroudon}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Groudon3 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Groudon3, gEventObjectPicTable_GroudonSide, gEventObjectRotScalAnimTable_KyogreGroudon}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Fossil = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_Fossil, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Regirock = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Regi, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Regice = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Regi, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Registeel = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Regi, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Skitty = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Skitty, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kecleon1 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Kecleon, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kyogre2 = {0xFFFF, EVENT_OBJ_PAL_TAG_22, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_KyogreFront, gEventObjectRotScalAnimTable_KyogreGroudon}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Groudon2 = {0xFFFF, EVENT_OBJ_PAL_TAG_24, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_GroudonFront, gEventObjectRotScalAnimTable_KyogreGroudon}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Rayquaza2 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gEventObjectBaseOam_64x64, gEventObjectSpriteOamTables_64x64, gEventObjectImageAnimTable_Rayquaza2, gEventObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Zigzagoon = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Zigzagoon, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Pikachu = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Pikachu, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Azumarill = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Azumarill, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Wingull = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Wingull, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kecleon2 = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_10, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Kecleon, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_TuberMSwimming = {0xFFFF, EVENT_OBJ_PAL_TAG_1, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_TuberMSwimming, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Azurill = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x16, gEventObjectSpriteOamTables_16x16, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Azurill, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Mom = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Mom, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LinkBrendan = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_BrendanNormal, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_LinkMay = {0xFFFF, EVENT_OBJ_PAL_TAG_17, EVENT_OBJ_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_BrendanMayNormal, gEventObjectPicTable_MayNormal, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Juan = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Juan, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Scott = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Scott, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_MysteryEventDeliveryman = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_MysteryEventDeliveryman, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Statue = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_Statue, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Kirlia = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_S, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Kirlia, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Dusclops = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Dusclops, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnionRoomAttendant = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_UnionRoomAttendant, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Red = {0xFFFF, EVENT_OBJ_PAL_TAG_28, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Red, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Leaf = {0xFFFF, EVENT_OBJ_PAL_TAG_28, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Leaf, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Sudowoodo = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Sudowoodo, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Mew = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Mew, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Deoxys = {0xFFFF, EVENT_OBJ_PAL_TAG_29, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Deoxys, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_BirthIslandStone = {0xFFFF, EVENT_OBJ_PAL_TAG_30, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Inanimate, gEventObjectPicTable_BirthIslandStone, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Anabel = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Anabel, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Tucker = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Tucker, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Greta = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Greta, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Spenser = {0xFFFF, EVENT_OBJ_PAL_TAG_0, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Spenser, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Noland = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Noland, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Lucy = {0xFFFF, EVENT_OBJ_PAL_TAG_3, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Lucy, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Brandon = {0xFFFF, EVENT_OBJ_PAL_TAG_2, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Brandon, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RubySapphireBrendan = {0xFFFF, EVENT_OBJ_PAL_TAG_33, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RubySapphireBrendan, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_RubySapphireMay = {0xFFFF, EVENT_OBJ_PAL_TAG_34, EVENT_OBJ_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_16x32, gEventObjectSpriteOamTables_16x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_RubySapphireMay, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_Lugia = {0xFFFF, EVENT_OBJ_PAL_TAG_32, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_Standard, gEventObjectPicTable_Lugia, gDummySpriteAffineAnimTable}; +const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_HoOh = {0xFFFF, EVENT_OBJ_PAL_TAG_31, EVENT_OBJ_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gEventObjectBaseOam_32x32, gEventObjectSpriteOamTables_32x32, gEventObjectImageAnimTable_HoOh, gEventObjectPicTable_HoOh, gDummySpriteAffineAnimTable}; #endif //GUARD_EVENT_OBJECT_GRAPHICS_INFO_H diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 9a1e711c3..7f76bb168 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -368,6 +368,43 @@ const u8 gInitialMovementTypeFacingDirections[] = { DIR_EAST, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT }; +#define EVENT_OBJ_PAL_TAG_0 0x1103 +#define EVENT_OBJ_PAL_TAG_1 0x1104 +#define EVENT_OBJ_PAL_TAG_2 0x1105 +#define EVENT_OBJ_PAL_TAG_3 0x1106 +#define EVENT_OBJ_PAL_TAG_4 0x1107 +#define EVENT_OBJ_PAL_TAG_5 0x1108 +#define EVENT_OBJ_PAL_TAG_6 0x1109 +#define EVENT_OBJ_PAL_TAG_7 0x110A +#define EVENT_OBJ_PAL_TAG_8 0x1100 +#define EVENT_OBJ_PAL_TAG_9 0x1101 +#define EVENT_OBJ_PAL_TAG_10 0x1102 +#define EVENT_OBJ_PAL_TAG_11 0x1115 +#define EVENT_OBJ_PAL_TAG_12 0x110B +#define EVENT_OBJ_PAL_TAG_13 0x110C +#define EVENT_OBJ_PAL_TAG_14 0x110D +#define EVENT_OBJ_PAL_TAG_15 0x110E +#define EVENT_OBJ_PAL_TAG_16 0x110F +#define EVENT_OBJ_PAL_TAG_17 0x1110 +#define EVENT_OBJ_PAL_TAG_18 0x1111 +#define EVENT_OBJ_PAL_TAG_19 0x1112 +#define EVENT_OBJ_PAL_TAG_20 0x1113 +#define EVENT_OBJ_PAL_TAG_21 0x1114 +#define EVENT_OBJ_PAL_TAG_22 0x1116 +#define EVENT_OBJ_PAL_TAG_23 0x1117 +#define EVENT_OBJ_PAL_TAG_24 0x1118 +#define EVENT_OBJ_PAL_TAG_25 0x1119 +#define EVENT_OBJ_PAL_TAG_26 0x111B +#define EVENT_OBJ_PAL_TAG_27 0x111C +#define EVENT_OBJ_PAL_TAG_28 0x111D +#define EVENT_OBJ_PAL_TAG_29 0x111E +#define EVENT_OBJ_PAL_TAG_30 0x111F +#define EVENT_OBJ_PAL_TAG_31 0x1120 +#define EVENT_OBJ_PAL_TAG_32 0x1121 +#define EVENT_OBJ_PAL_TAG_33 0x1122 +#define EVENT_OBJ_PAL_TAG_34 0x1123 +#define EVENT_OBJ_PAL_TAG_NONE 0x11FF + #include "data/field_event_obj/event_object_graphics_info_pointers.h" #include "data/field_event_obj/field_effect_object_template_pointers.h" #include "data/field_event_obj/event_object_pic_tables.h" @@ -377,216 +414,216 @@ const u8 gInitialMovementTypeFacingDirections[] = { #include "data/field_event_obj/event_object_graphics_info.h" const struct SpritePalette sEventObjectSpritePalettes[] = { - {gEventObjectPalette0, 0x1103}, - {gEventObjectPalette1, 0x1104}, - {gEventObjectPalette2, 0x1105}, - {gEventObjectPalette3, 0x1106}, - {gEventObjectPalette4, 0x1107}, - {gEventObjectPalette5, 0x1108}, - {gEventObjectPalette6, 0x1109}, - {gEventObjectPalette7, 0x110A}, - {gEventObjectPalette8, 0x1100}, - {gEventObjectPalette9, 0x1101}, - {gEventObjectPalette10, 0x1102}, - {gEventObjectPalette11, 0x1115}, - {gEventObjectPalette12, 0x110B}, - {gEventObjectPalette13, 0x110C}, - {gEventObjectPalette14, 0x110D}, - {gEventObjectPalette15, 0x110E}, - {gEventObjectPalette16, 0x110F}, - {gEventObjectPalette17, 0x1110}, - {gEventObjectPalette18, 0x1111}, - {gEventObjectPalette19, 0x1112}, - {gEventObjectPalette20, 0x1113}, - {gEventObjectPalette21, 0x1114}, - {gEventObjectPalette22, 0x1116}, - {gEventObjectPalette23, 0x1117}, - {gEventObjectPalette24, 0x1118}, - {gEventObjectPalette25, 0x1119}, - {gEventObjectPalette26, 0x111B}, - {gEventObjectPalette27, 0x111C}, - {gEventObjectPalette28, 0x111D}, - {gEventObjectPalette29, 0x111E}, - {gEventObjectPalette30, 0x111F}, - {gEventObjectPalette31, 0x1120}, - {gEventObjectPalette32, 0x1121}, - {gEventObjectPalette33, 0x1122}, - {gEventObjectPalette34, 0x1123}, + {gEventObjectPalette0, EVENT_OBJ_PAL_TAG_0}, + {gEventObjectPalette1, EVENT_OBJ_PAL_TAG_1}, + {gEventObjectPalette2, EVENT_OBJ_PAL_TAG_2}, + {gEventObjectPalette3, EVENT_OBJ_PAL_TAG_3}, + {gEventObjectPalette4, EVENT_OBJ_PAL_TAG_4}, + {gEventObjectPalette5, EVENT_OBJ_PAL_TAG_5}, + {gEventObjectPalette6, EVENT_OBJ_PAL_TAG_6}, + {gEventObjectPalette7, EVENT_OBJ_PAL_TAG_7}, + {gEventObjectPalette8, EVENT_OBJ_PAL_TAG_8}, + {gEventObjectPalette9, EVENT_OBJ_PAL_TAG_9}, + {gEventObjectPalette10, EVENT_OBJ_PAL_TAG_10}, + {gEventObjectPalette11, EVENT_OBJ_PAL_TAG_11}, + {gEventObjectPalette12, EVENT_OBJ_PAL_TAG_12}, + {gEventObjectPalette13, EVENT_OBJ_PAL_TAG_13}, + {gEventObjectPalette14, EVENT_OBJ_PAL_TAG_14}, + {gEventObjectPalette15, EVENT_OBJ_PAL_TAG_15}, + {gEventObjectPalette16, EVENT_OBJ_PAL_TAG_16}, + {gEventObjectPalette17, EVENT_OBJ_PAL_TAG_17}, + {gEventObjectPalette18, EVENT_OBJ_PAL_TAG_18}, + {gEventObjectPalette19, EVENT_OBJ_PAL_TAG_19}, + {gEventObjectPalette20, EVENT_OBJ_PAL_TAG_20}, + {gEventObjectPalette21, EVENT_OBJ_PAL_TAG_21}, + {gEventObjectPalette22, EVENT_OBJ_PAL_TAG_22}, + {gEventObjectPalette23, EVENT_OBJ_PAL_TAG_23}, + {gEventObjectPalette24, EVENT_OBJ_PAL_TAG_24}, + {gEventObjectPalette25, EVENT_OBJ_PAL_TAG_25}, + {gEventObjectPalette26, EVENT_OBJ_PAL_TAG_26}, + {gEventObjectPalette27, EVENT_OBJ_PAL_TAG_27}, + {gEventObjectPalette28, EVENT_OBJ_PAL_TAG_28}, + {gEventObjectPalette29, EVENT_OBJ_PAL_TAG_29}, + {gEventObjectPalette30, EVENT_OBJ_PAL_TAG_30}, + {gEventObjectPalette31, EVENT_OBJ_PAL_TAG_31}, + {gEventObjectPalette32, EVENT_OBJ_PAL_TAG_32}, + {gEventObjectPalette33, EVENT_OBJ_PAL_TAG_33}, + {gEventObjectPalette34, EVENT_OBJ_PAL_TAG_34}, {NULL, 0x0000}, }; const u16 gPlayerReflectionPaletteTags[] = { - 0x1101, - 0x1101, - 0x1101, - 0x1101, + EVENT_OBJ_PAL_TAG_9, + EVENT_OBJ_PAL_TAG_9, + EVENT_OBJ_PAL_TAG_9, + EVENT_OBJ_PAL_TAG_9, }; const u16 Unknown_0850BCF0[] = { - 0x1111, - 0x1111, - 0x1111, - 0x1111, + EVENT_OBJ_PAL_TAG_18, + EVENT_OBJ_PAL_TAG_18, + EVENT_OBJ_PAL_TAG_18, + EVENT_OBJ_PAL_TAG_18, }; const u16 gPlayerUnderwaterReflectionPaletteTags[] = { - 0x1115, - 0x1115, - 0x1115, - 0x1115, + EVENT_OBJ_PAL_TAG_11, + EVENT_OBJ_PAL_TAG_11, + EVENT_OBJ_PAL_TAG_11, + EVENT_OBJ_PAL_TAG_11, }; const struct PairedPalettes gPlayerReflectionPaletteSets[] = { - {0x1100, gPlayerReflectionPaletteTags}, - {0x1110, Unknown_0850BCF0}, - {0x1115, gPlayerUnderwaterReflectionPaletteTags}, - {0x11FF, NULL}, + {EVENT_OBJ_PAL_TAG_8, gPlayerReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_17, Unknown_0850BCF0}, + {EVENT_OBJ_PAL_TAG_11, gPlayerUnderwaterReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_NONE, NULL}, }; const u16 gQuintyPlumpReflectionPaletteTags[] = { - 0x110C, - 0x110C, - 0x110C, - 0x110C, + EVENT_OBJ_PAL_TAG_13, + EVENT_OBJ_PAL_TAG_13, + EVENT_OBJ_PAL_TAG_13, + EVENT_OBJ_PAL_TAG_13, }; const u16 gTruckReflectionPaletteTags[] = { - 0x110D, - 0x110D, - 0x110D, - 0x110D, + EVENT_OBJ_PAL_TAG_14, + EVENT_OBJ_PAL_TAG_14, + EVENT_OBJ_PAL_TAG_14, + EVENT_OBJ_PAL_TAG_14, }; const u16 gVigorothMoverReflectionPaletteTags[] = { - 0x110E, - 0x110E, - 0x110E, - 0x110E, + EVENT_OBJ_PAL_TAG_15, + EVENT_OBJ_PAL_TAG_15, + EVENT_OBJ_PAL_TAG_15, + EVENT_OBJ_PAL_TAG_15, }; const u16 gMovingBoxReflectionPaletteTags[] = { - 0x1112, - 0x1112, - 0x1112, - 0x1112, + EVENT_OBJ_PAL_TAG_19, + EVENT_OBJ_PAL_TAG_19, + EVENT_OBJ_PAL_TAG_19, + EVENT_OBJ_PAL_TAG_19, }; const u16 gCableCarReflectionPaletteTags[] = { - 0x1113, - 0x1113, - 0x1113, - 0x1113, + EVENT_OBJ_PAL_TAG_20, + EVENT_OBJ_PAL_TAG_20, + EVENT_OBJ_PAL_TAG_20, + EVENT_OBJ_PAL_TAG_20, }; const u16 gSSTidalReflectionPaletteTags[] = { - 0x1114, - 0x1114, - 0x1114, - 0x1114, + EVENT_OBJ_PAL_TAG_21, + EVENT_OBJ_PAL_TAG_21, + EVENT_OBJ_PAL_TAG_21, + EVENT_OBJ_PAL_TAG_21, }; const u16 gSubmarineShadowReflectionPaletteTags[] = { - 0x111B, - 0x111B, - 0x111B, - 0x111B, + EVENT_OBJ_PAL_TAG_26, + EVENT_OBJ_PAL_TAG_26, + EVENT_OBJ_PAL_TAG_26, + EVENT_OBJ_PAL_TAG_26, }; const u16 Unknown_0850BD58[] = { // Kyogre2? - 0x1117, - 0x1117, - 0x1117, - 0x1117, + EVENT_OBJ_PAL_TAG_23, + EVENT_OBJ_PAL_TAG_23, + EVENT_OBJ_PAL_TAG_23, + EVENT_OBJ_PAL_TAG_23, }; const u16 Unknown_0850BD60[] = { // Groudon2? - 0x1119, - 0x1119, - 0x1119, - 0x1119, + EVENT_OBJ_PAL_TAG_25, + EVENT_OBJ_PAL_TAG_25, + EVENT_OBJ_PAL_TAG_25, + EVENT_OBJ_PAL_TAG_25, }; const u16 Unknown_0850BD68[] = { // Invisible Keckleon? - 0x1109, - 0x1109, - 0x1109, - 0x1109, + EVENT_OBJ_PAL_TAG_6, + EVENT_OBJ_PAL_TAG_6, + EVENT_OBJ_PAL_TAG_6, + EVENT_OBJ_PAL_TAG_6, }; const u16 gRedLeafReflectionPaletteTags[] = { - 0x111D, - 0x111D, - 0x111D, - 0x111D, + EVENT_OBJ_PAL_TAG_28, + EVENT_OBJ_PAL_TAG_28, + EVENT_OBJ_PAL_TAG_28, + EVENT_OBJ_PAL_TAG_28, }; const struct PairedPalettes gSpecialObjectReflectionPaletteSets[] = { - {4352, gPlayerReflectionPaletteTags}, - {4368, Unknown_0850BCF0}, - {4363, gQuintyPlumpReflectionPaletteTags}, - {4365, gTruckReflectionPaletteTags}, - {4366, gVigorothMoverReflectionPaletteTags}, - {4370, gMovingBoxReflectionPaletteTags}, - {4371, gCableCarReflectionPaletteTags}, - {4372, gSSTidalReflectionPaletteTags}, - {4374, Unknown_0850BD58}, - {4376, Unknown_0850BD60}, - {4357, Unknown_0850BD68}, - {4379, gSubmarineShadowReflectionPaletteTags}, - {4381, gRedLeafReflectionPaletteTags}, - {4607, NULL}, + {EVENT_OBJ_PAL_TAG_8, gPlayerReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_17, Unknown_0850BCF0}, + {EVENT_OBJ_PAL_TAG_12, gQuintyPlumpReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_14, gTruckReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_15, gVigorothMoverReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_19, gMovingBoxReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_20, gCableCarReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_21, gSSTidalReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_22, Unknown_0850BD58}, + {EVENT_OBJ_PAL_TAG_24, Unknown_0850BD60}, + {EVENT_OBJ_PAL_TAG_2, Unknown_0850BD68}, + {EVENT_OBJ_PAL_TAG_26, gSubmarineShadowReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_28, gRedLeafReflectionPaletteTags}, + {EVENT_OBJ_PAL_TAG_NONE, NULL}, }; const u16 gObjectPaletteTags0[] = { - 0x1100, - 0x1101, - 0x1103, - 0x1104, - 0x1105, - 0x1106, - 0x1107, - 0x1108, - 0x1109, - 0x110A, + EVENT_OBJ_PAL_TAG_8, + EVENT_OBJ_PAL_TAG_9, + EVENT_OBJ_PAL_TAG_0, + EVENT_OBJ_PAL_TAG_1, + EVENT_OBJ_PAL_TAG_2, + EVENT_OBJ_PAL_TAG_3, + EVENT_OBJ_PAL_TAG_4, + EVENT_OBJ_PAL_TAG_5, + EVENT_OBJ_PAL_TAG_6, + EVENT_OBJ_PAL_TAG_7, }; const u16 gObjectPaletteTags1[] = { - 0x1100, - 0x1101, - 0x1103, - 0x1104, - 0x1105, - 0x1106, - 0x1107, - 0x1108, - 0x1109, - 0x110A, + EVENT_OBJ_PAL_TAG_8, + EVENT_OBJ_PAL_TAG_9, + EVENT_OBJ_PAL_TAG_0, + EVENT_OBJ_PAL_TAG_1, + EVENT_OBJ_PAL_TAG_2, + EVENT_OBJ_PAL_TAG_3, + EVENT_OBJ_PAL_TAG_4, + EVENT_OBJ_PAL_TAG_5, + EVENT_OBJ_PAL_TAG_6, + EVENT_OBJ_PAL_TAG_7, }; const u16 gObjectPaletteTags2[] = { - 0x1100, - 0x1101, - 0x1103, - 0x1104, - 0x1105, - 0x1106, - 0x1107, - 0x1108, - 0x1109, - 0x110A, + EVENT_OBJ_PAL_TAG_8, + EVENT_OBJ_PAL_TAG_9, + EVENT_OBJ_PAL_TAG_0, + EVENT_OBJ_PAL_TAG_1, + EVENT_OBJ_PAL_TAG_2, + EVENT_OBJ_PAL_TAG_3, + EVENT_OBJ_PAL_TAG_4, + EVENT_OBJ_PAL_TAG_5, + EVENT_OBJ_PAL_TAG_6, + EVENT_OBJ_PAL_TAG_7, }; const u16 gObjectPaletteTags3[] = { - 0x1100, - 0x1101, - 0x1103, - 0x1104, - 0x1105, - 0x1106, - 0x1107, - 0x1108, - 0x1109, - 0x110A, + EVENT_OBJ_PAL_TAG_8, + EVENT_OBJ_PAL_TAG_9, + EVENT_OBJ_PAL_TAG_0, + EVENT_OBJ_PAL_TAG_1, + EVENT_OBJ_PAL_TAG_2, + EVENT_OBJ_PAL_TAG_3, + EVENT_OBJ_PAL_TAG_4, + EVENT_OBJ_PAL_TAG_5, + EVENT_OBJ_PAL_TAG_6, + EVENT_OBJ_PAL_TAG_7, }; @@ -2082,7 +2119,7 @@ static void sub_808E894(u16 paletteTag) u16 paletteSlot; paletteSlot = FindEventObjectPaletteIndexByTag(paletteTag); - if (paletteSlot != 0x11ff) // always true + if (paletteSlot != EVENT_OBJ_PAL_TAG_NONE) // always true { sub_808E8F4(&sEventObjectSpritePalettes[paletteSlot]); } @@ -2092,7 +2129,7 @@ void sub_808E8C0(u16 *paletteTags) { u8 i; - for (i = 0; paletteTags[i] != 0x11ff; i++) + for (i = 0; paletteTags[i] != EVENT_OBJ_PAL_TAG_NONE; i++) { sub_808E894(paletteTags[i]); } @@ -2129,7 +2166,7 @@ static u8 FindEventObjectPaletteIndexByTag(u16 tag) { u8 i; - for (i = 0; sEventObjectSpritePalettes[i].tag != 0x11ff; i++) + for (i = 0; sEventObjectSpritePalettes[i].tag != EVENT_OBJ_PAL_TAG_NONE; i++) { if (sEventObjectSpritePalettes[i].tag == tag) { @@ -2144,7 +2181,7 @@ void LoadPlayerObjectReflectionPalette(u16 tag, u8 slot) u8 i; PatchObjectPalette(tag, slot); - for (i = 0; gPlayerReflectionPaletteSets[i].tag != 0x11ff; i++) + for (i = 0; gPlayerReflectionPaletteSets[i].tag != EVENT_OBJ_PAL_TAG_NONE; i++) { if (gPlayerReflectionPaletteSets[i].tag == tag) { @@ -2160,7 +2197,7 @@ void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot) sCurrentSpecialObjectPaletteTag = tag; PatchObjectPalette(tag, slot); - for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != 0x11ff; i++) + for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != EVENT_OBJ_PAL_TAG_NONE; i++) { if (gSpecialObjectReflectionPaletteSets[i].tag == tag) { @@ -2613,7 +2650,7 @@ void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat) void InitEventObjectPalettes(u8 palSlot) { FreeAndReserveObjectSpritePalettes(); - sCurrentSpecialObjectPaletteTag = 0x11ff; + sCurrentSpecialObjectPaletteTag = EVENT_OBJ_PAL_TAG_NONE; sCurrentReflectionType = palSlot; if (palSlot == 1) { @@ -2634,14 +2671,14 @@ u16 GetObjectPaletteTag(u8 palSlot) { return gObjectPaletteTagSets[sCurrentReflectionType][palSlot]; } - for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != 0x11ff; i++) + for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != EVENT_OBJ_PAL_TAG_NONE; i++) { if (gSpecialObjectReflectionPaletteSets[i].tag == sCurrentSpecialObjectPaletteTag) { return gSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType]; } } - return 0x11ff; + return EVENT_OBJ_PAL_TAG_NONE; } movement_type_empty_callback(MovementType_None) -- cgit v1.2.3 From e1834c9d7bc961f872169e056b788fec04f39867 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 8 Sep 2018 03:07:44 -0500 Subject: Change overworld_frame macro to use tiles --- .../field_event_obj/berry_tree_graphics_tables.h | 540 ++-- src/data/field_event_obj/event_object_pic_tables.h | 2840 ++++++++++---------- src/data/field_event_obj/field_effect_objects.h | 160 +- 3 files changed, 1770 insertions(+), 1770 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/berry_tree_graphics_tables.h b/src/data/field_event_obj/berry_tree_graphics_tables.h index 679a0e5a5..beb59974f 100755 --- a/src/data/field_event_obj/berry_tree_graphics_tables.h +++ b/src/data/field_event_obj/berry_tree_graphics_tables.h @@ -2,421 +2,421 @@ #define GUARD_BERRY_TREE_GRAPHICS_TABLES_H const struct SpriteFrameImage gEventObjectPicTable_PechaBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_PechaBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_PechaBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_PechaBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_PechaBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_PechaBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_PechaBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_PechaBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_KelpsyBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_KelpsyBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_KelpsyBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_WepearBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_WepearBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_WepearBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_WepearBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_WepearBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_WepearBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_WepearBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_WepearBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_IapapaBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_IapapaBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_IapapaBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_IapapaBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_IapapaBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_IapapaBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_IapapaBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_IapapaBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_CheriBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_CheriBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_CheriBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_CheriBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_CheriBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_CheriBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_CheriBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_CheriBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_FigyBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_FigyBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_FigyBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_FigyBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_FigyBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_FigyBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_FigyBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_FigyBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_MagoBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_MagoBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_MagoBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_MagoBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_MagoBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_MagoBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_MagoBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_MagoBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_LumBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_LumBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_LumBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_LumBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_LumBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_LumBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_LumBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_LumBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_RazzBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_RazzBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_RazzBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_RazzBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_RazzBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_RazzBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_RazzBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_RazzBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_GrepaBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_GrepaBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_GrepaBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_GrepaBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_GrepaBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_GrepaBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_GrepaBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_GrepaBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_RabutaBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_RabutaBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_RabutaBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_RabutaBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_RabutaBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_RabutaBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_RabutaBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_RabutaBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_NomelBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_NomelBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_NomelBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_NomelBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_NomelBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_NomelBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_NomelBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_NomelBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_LeppaBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_LeppaBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_LeppaBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_LeppaBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_LeppaBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_LeppaBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_LeppaBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_LeppaBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_LiechiBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_LiechiBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_LiechiBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_LiechiBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_LiechiBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_LiechiBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_LiechiBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_LiechiBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_HondewBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_HondewBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_HondewBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_HondewBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_HondewBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_HondewBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_HondewBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_HondewBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5}; const struct SpriteFrameImage gEventObjectPicTable_AguavBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_AguavBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_AguavBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_AguavBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_AguavBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_AguavBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_AguavBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_AguavBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_WikiBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_WikiBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_WikiBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_WikiBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_WikiBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_WikiBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_WikiBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_WikiBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_PomegBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_PomegBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_PomegBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_PomegBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_PomegBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_PomegBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_PomegBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_PomegBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_RawstBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_RawstBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_RawstBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_RawstBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_RawstBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_RawstBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_RawstBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_RawstBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_SpelonBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_SpelonBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_SpelonBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_SpelonBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_SpelonBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_SpelonBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_SpelonBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_SpelonBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_ChestoBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_ChestoBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_ChestoBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_ChestoBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_ChestoBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_ChestoBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_ChestoBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_ChestoBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_OranBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_OranBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_OranBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_OranBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_OranBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_OranBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_OranBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_OranBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_PersimBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_PersimBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_PersimBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_PersimBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_PersimBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_PersimBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_PersimBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_PersimBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_SitrusBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_SitrusBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_SitrusBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_SitrusBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_SitrusBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_SitrusBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_SitrusBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_SitrusBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_AspearBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_AspearBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_AspearBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_AspearBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_AspearBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_AspearBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_AspearBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_AspearBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3}; const struct SpriteFrameImage gEventObjectPicTable_PamtreBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_PamtreBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_PamtreBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_PamtreBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_PamtreBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_PamtreBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_PamtreBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_PamtreBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_CornnBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_CornnBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_CornnBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_CornnBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_CornnBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_CornnBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_CornnBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_CornnBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_LansatBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_LansatBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_LansatBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_LansatBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_LansatBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_LansatBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_LansatBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_LansatBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2}; const struct SpriteFrameImage gEventObjectPicTable_DurinBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_DurinBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_DurinBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_DurinBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_DurinBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_DurinBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_DurinBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_DurinBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4}; const struct SpriteFrameImage gEventObjectPicTable_TamatoBerryTree[] = { - overworld_frame(gEventObjectPic_BerryTreeDirtPile, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 0), - overworld_frame(gEventObjectPic_BerryTreeSprout, 16, 16, 1), - overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 0), - overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 1), - overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 2), - overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 3), - overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 4), - overworld_frame(gEventObjectPic_TamatoBerryTree, 16, 32, 5), + overworld_frame(gEventObjectPic_BerryTreeDirtPile, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 0), + overworld_frame(gEventObjectPic_BerryTreeSprout, 2, 2, 1), + overworld_frame(gEventObjectPic_TamatoBerryTree, 2, 4, 0), + overworld_frame(gEventObjectPic_TamatoBerryTree, 2, 4, 1), + overworld_frame(gEventObjectPic_TamatoBerryTree, 2, 4, 2), + overworld_frame(gEventObjectPic_TamatoBerryTree, 2, 4, 3), + overworld_frame(gEventObjectPic_TamatoBerryTree, 2, 4, 4), + overworld_frame(gEventObjectPic_TamatoBerryTree, 2, 4, 5), }; const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2}; diff --git a/src/data/field_event_obj/event_object_pic_tables.h b/src/data/field_event_obj/event_object_pic_tables.h index 80a4e12ac..40a6ad61c 100755 --- a/src/data/field_event_obj/event_object_pic_tables.h +++ b/src/data/field_event_obj/event_object_pic_tables.h @@ -2,748 +2,748 @@ #define GUARD_EVENT_OBJECT_PIC_TABLES_H const struct SpriteFrameImage gEventObjectPicTable_BrendanNormal[] = { - overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 0), - overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 1), - overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 2), - overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 3), - overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 4), - overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 5), - overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 6), - overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 7), - overworld_frame(gEventObjectPic_BrendanNormal, 16, 32, 8), - overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 0), - overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 1), - overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 2), - overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 3), - overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 4), - overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 5), - overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 6), - overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 7), - overworld_frame(gEventObjectPic_BrendanRunning, 16, 32, 8), + overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 0), + overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 1), + overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 2), + overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 3), + overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 4), + overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 5), + overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 6), + overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 7), + overworld_frame(gEventObjectPic_BrendanNormal, 2, 4, 8), + overworld_frame(gEventObjectPic_BrendanRunning, 2, 4, 0), + overworld_frame(gEventObjectPic_BrendanRunning, 2, 4, 1), + overworld_frame(gEventObjectPic_BrendanRunning, 2, 4, 2), + overworld_frame(gEventObjectPic_BrendanRunning, 2, 4, 3), + overworld_frame(gEventObjectPic_BrendanRunning, 2, 4, 4), + overworld_frame(gEventObjectPic_BrendanRunning, 2, 4, 5), + overworld_frame(gEventObjectPic_BrendanRunning, 2, 4, 6), + overworld_frame(gEventObjectPic_BrendanRunning, 2, 4, 7), + overworld_frame(gEventObjectPic_BrendanRunning, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanMachBike[] = { - overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 3), - overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 4), - overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 5), - overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 6), - overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 7), - overworld_frame(gEventObjectPic_BrendanMachBike, 32, 32, 8), + overworld_frame(gEventObjectPic_BrendanMachBike, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanMachBike, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanMachBike, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanMachBike, 4, 4, 3), + overworld_frame(gEventObjectPic_BrendanMachBike, 4, 4, 4), + overworld_frame(gEventObjectPic_BrendanMachBike, 4, 4, 5), + overworld_frame(gEventObjectPic_BrendanMachBike, 4, 4, 6), + overworld_frame(gEventObjectPic_BrendanMachBike, 4, 4, 7), + overworld_frame(gEventObjectPic_BrendanMachBike, 4, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanAcroBike[] = { - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 3), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 4), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 5), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 6), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 7), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 8), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 9), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 10), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 11), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 12), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 13), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 14), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 15), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 16), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 17), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 18), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 19), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 20), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 21), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 22), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 23), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 24), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 25), - overworld_frame(gEventObjectPic_BrendanAcroBike, 32, 32, 26), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 3), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 4), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 5), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 6), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 7), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 8), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 9), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 10), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 11), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 12), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 13), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 14), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 15), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 16), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 17), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 18), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 19), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 20), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 21), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 22), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 23), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 24), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 25), + overworld_frame(gEventObjectPic_BrendanAcroBike, 4, 4, 26), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanSurfing[] = { - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 4), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 4), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 4), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 3), - overworld_frame(gEventObjectPic_BrendanSurfing, 32, 32, 5), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 4), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 4), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 4), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 3), + overworld_frame(gEventObjectPic_BrendanSurfing, 4, 4, 5), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanUnderwater[] = { - overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanUnderwater, 32, 32, 2), + overworld_frame(gEventObjectPic_BrendanUnderwater, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanUnderwater, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanUnderwater, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanUnderwater, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanUnderwater, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanUnderwater, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanUnderwater, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanUnderwater, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanUnderwater, 4, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanFieldMove[] = { - overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 3), - overworld_frame(gEventObjectPic_BrendanFieldMove, 32, 32, 4), + overworld_frame(gEventObjectPic_BrendanFieldMove, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanFieldMove, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanFieldMove, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanFieldMove, 4, 4, 3), + overworld_frame(gEventObjectPic_BrendanFieldMove, 4, 4, 4), }; const struct SpriteFrameImage gEventObjectPicTable_QuintyPlump[] = { - overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 0), - overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 1), - overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 2), - overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 3), - overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 4), - overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 5), - overworld_frame(gEventObjectPic_QuintyPlump, 32, 32, 6), + overworld_frame(gEventObjectPic_QuintyPlump, 4, 4, 0), + overworld_frame(gEventObjectPic_QuintyPlump, 4, 4, 1), + overworld_frame(gEventObjectPic_QuintyPlump, 4, 4, 2), + overworld_frame(gEventObjectPic_QuintyPlump, 4, 4, 3), + overworld_frame(gEventObjectPic_QuintyPlump, 4, 4, 4), + overworld_frame(gEventObjectPic_QuintyPlump, 4, 4, 5), + overworld_frame(gEventObjectPic_QuintyPlump, 4, 4, 6), }; const struct SpriteFrameImage gEventObjectPicTable_LittleBoy1[] = { - overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 0), - overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 1), - overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 2), - overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 3), - overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 4), - overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 5), - overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 6), - overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 7), - overworld_frame(gEventObjectPic_LittleBoy1, 16, 16, 8), + overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 0), + overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 1), + overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 2), + overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 3), + overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 4), + overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 5), + overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 6), + overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 7), + overworld_frame(gEventObjectPic_LittleBoy1, 2, 2, 8), }; const struct SpriteFrameImage gEventObjectPicTable_LittleGirl1[] = { - overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 0), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 1), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 2), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 3), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 4), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 5), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 6), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 7), - overworld_frame(gEventObjectPic_LittleGirl1, 16, 32, 8), + overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 0), + overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 1), + overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 2), + overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 3), + overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 4), + overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 5), + overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 6), + overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 7), + overworld_frame(gEventObjectPic_LittleGirl1, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Boy1[] = { - overworld_frame(gEventObjectPic_Boy1, 16, 32, 0), - overworld_frame(gEventObjectPic_Boy1, 16, 32, 1), - overworld_frame(gEventObjectPic_Boy1, 16, 32, 2), - overworld_frame(gEventObjectPic_Boy1, 16, 32, 3), - overworld_frame(gEventObjectPic_Boy1, 16, 32, 4), - overworld_frame(gEventObjectPic_Boy1, 16, 32, 5), - overworld_frame(gEventObjectPic_Boy1, 16, 32, 6), - overworld_frame(gEventObjectPic_Boy1, 16, 32, 7), - overworld_frame(gEventObjectPic_Boy1, 16, 32, 8), + overworld_frame(gEventObjectPic_Boy1, 2, 4, 0), + overworld_frame(gEventObjectPic_Boy1, 2, 4, 1), + overworld_frame(gEventObjectPic_Boy1, 2, 4, 2), + overworld_frame(gEventObjectPic_Boy1, 2, 4, 3), + overworld_frame(gEventObjectPic_Boy1, 2, 4, 4), + overworld_frame(gEventObjectPic_Boy1, 2, 4, 5), + overworld_frame(gEventObjectPic_Boy1, 2, 4, 6), + overworld_frame(gEventObjectPic_Boy1, 2, 4, 7), + overworld_frame(gEventObjectPic_Boy1, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Girl1[] = { - overworld_frame(gEventObjectPic_Girl1, 16, 32, 0), - overworld_frame(gEventObjectPic_Girl1, 16, 32, 1), - overworld_frame(gEventObjectPic_Girl1, 16, 32, 2), - overworld_frame(gEventObjectPic_Girl1, 16, 32, 3), - overworld_frame(gEventObjectPic_Girl1, 16, 32, 4), - overworld_frame(gEventObjectPic_Girl1, 16, 32, 5), - overworld_frame(gEventObjectPic_Girl1, 16, 32, 6), - overworld_frame(gEventObjectPic_Girl1, 16, 32, 7), - overworld_frame(gEventObjectPic_Girl1, 16, 32, 8), + overworld_frame(gEventObjectPic_Girl1, 2, 4, 0), + overworld_frame(gEventObjectPic_Girl1, 2, 4, 1), + overworld_frame(gEventObjectPic_Girl1, 2, 4, 2), + overworld_frame(gEventObjectPic_Girl1, 2, 4, 3), + overworld_frame(gEventObjectPic_Girl1, 2, 4, 4), + overworld_frame(gEventObjectPic_Girl1, 2, 4, 5), + overworld_frame(gEventObjectPic_Girl1, 2, 4, 6), + overworld_frame(gEventObjectPic_Girl1, 2, 4, 7), + overworld_frame(gEventObjectPic_Girl1, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Boy2[] = { - overworld_frame(gEventObjectPic_Boy2, 16, 32, 0), - overworld_frame(gEventObjectPic_Boy2, 16, 32, 1), - overworld_frame(gEventObjectPic_Boy2, 16, 32, 2), - overworld_frame(gEventObjectPic_Boy2, 16, 32, 3), - overworld_frame(gEventObjectPic_Boy2, 16, 32, 4), - overworld_frame(gEventObjectPic_Boy2, 16, 32, 5), - overworld_frame(gEventObjectPic_Boy2, 16, 32, 6), - overworld_frame(gEventObjectPic_Boy2, 16, 32, 7), - overworld_frame(gEventObjectPic_Boy2, 16, 32, 8), + overworld_frame(gEventObjectPic_Boy2, 2, 4, 0), + overworld_frame(gEventObjectPic_Boy2, 2, 4, 1), + overworld_frame(gEventObjectPic_Boy2, 2, 4, 2), + overworld_frame(gEventObjectPic_Boy2, 2, 4, 3), + overworld_frame(gEventObjectPic_Boy2, 2, 4, 4), + overworld_frame(gEventObjectPic_Boy2, 2, 4, 5), + overworld_frame(gEventObjectPic_Boy2, 2, 4, 6), + overworld_frame(gEventObjectPic_Boy2, 2, 4, 7), + overworld_frame(gEventObjectPic_Boy2, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Girl2[] = { - overworld_frame(gEventObjectPic_Girl2, 16, 32, 0), - overworld_frame(gEventObjectPic_Girl2, 16, 32, 1), - overworld_frame(gEventObjectPic_Girl2, 16, 32, 2), - overworld_frame(gEventObjectPic_Girl2, 16, 32, 3), - overworld_frame(gEventObjectPic_Girl2, 16, 32, 4), - overworld_frame(gEventObjectPic_Girl2, 16, 32, 5), - overworld_frame(gEventObjectPic_Girl2, 16, 32, 6), - overworld_frame(gEventObjectPic_Girl2, 16, 32, 7), - overworld_frame(gEventObjectPic_Girl2, 16, 32, 8), + overworld_frame(gEventObjectPic_Girl2, 2, 4, 0), + overworld_frame(gEventObjectPic_Girl2, 2, 4, 1), + overworld_frame(gEventObjectPic_Girl2, 2, 4, 2), + overworld_frame(gEventObjectPic_Girl2, 2, 4, 3), + overworld_frame(gEventObjectPic_Girl2, 2, 4, 4), + overworld_frame(gEventObjectPic_Girl2, 2, 4, 5), + overworld_frame(gEventObjectPic_Girl2, 2, 4, 6), + overworld_frame(gEventObjectPic_Girl2, 2, 4, 7), + overworld_frame(gEventObjectPic_Girl2, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_LittleBoy2[] = { - overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 0), - overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 1), - overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 2), - overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 3), - overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 4), - overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 5), - overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 6), - overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 7), - overworld_frame(gEventObjectPic_LittleBoy2, 16, 16, 8), + overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 0), + overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 1), + overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 2), + overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 3), + overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 4), + overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 5), + overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 6), + overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 7), + overworld_frame(gEventObjectPic_LittleBoy2, 2, 2, 8), }; const struct SpriteFrameImage gEventObjectPicTable_LittleGirl2[] = { - overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 0), - overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 1), - overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 2), - overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 3), - overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 4), - overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 5), - overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 6), - overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 7), - overworld_frame(gEventObjectPic_LittleGirl2, 16, 16, 8), + overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 0), + overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 1), + overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 2), + overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 3), + overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 4), + overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 5), + overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 6), + overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 7), + overworld_frame(gEventObjectPic_LittleGirl2, 2, 2, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Boy3[] = { - overworld_frame(gEventObjectPic_Boy3, 16, 32, 0), - overworld_frame(gEventObjectPic_Boy3, 16, 32, 1), - overworld_frame(gEventObjectPic_Boy3, 16, 32, 2), - overworld_frame(gEventObjectPic_Boy3, 16, 32, 3), - overworld_frame(gEventObjectPic_Boy3, 16, 32, 4), - overworld_frame(gEventObjectPic_Boy3, 16, 32, 5), - overworld_frame(gEventObjectPic_Boy3, 16, 32, 6), - overworld_frame(gEventObjectPic_Boy3, 16, 32, 7), - overworld_frame(gEventObjectPic_Boy3, 16, 32, 8), + overworld_frame(gEventObjectPic_Boy3, 2, 4, 0), + overworld_frame(gEventObjectPic_Boy3, 2, 4, 1), + overworld_frame(gEventObjectPic_Boy3, 2, 4, 2), + overworld_frame(gEventObjectPic_Boy3, 2, 4, 3), + overworld_frame(gEventObjectPic_Boy3, 2, 4, 4), + overworld_frame(gEventObjectPic_Boy3, 2, 4, 5), + overworld_frame(gEventObjectPic_Boy3, 2, 4, 6), + overworld_frame(gEventObjectPic_Boy3, 2, 4, 7), + overworld_frame(gEventObjectPic_Boy3, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Girl3[] = { - overworld_frame(gEventObjectPic_Girl3, 16, 32, 0), - overworld_frame(gEventObjectPic_Girl3, 16, 32, 1), - overworld_frame(gEventObjectPic_Girl3, 16, 32, 2), - overworld_frame(gEventObjectPic_Girl3, 16, 32, 3), - overworld_frame(gEventObjectPic_Girl3, 16, 32, 4), - overworld_frame(gEventObjectPic_Girl3, 16, 32, 5), - overworld_frame(gEventObjectPic_Girl3, 16, 32, 6), - overworld_frame(gEventObjectPic_Girl3, 16, 32, 7), - overworld_frame(gEventObjectPic_Girl3, 16, 32, 8), + overworld_frame(gEventObjectPic_Girl3, 2, 4, 0), + overworld_frame(gEventObjectPic_Girl3, 2, 4, 1), + overworld_frame(gEventObjectPic_Girl3, 2, 4, 2), + overworld_frame(gEventObjectPic_Girl3, 2, 4, 3), + overworld_frame(gEventObjectPic_Girl3, 2, 4, 4), + overworld_frame(gEventObjectPic_Girl3, 2, 4, 5), + overworld_frame(gEventObjectPic_Girl3, 2, 4, 6), + overworld_frame(gEventObjectPic_Girl3, 2, 4, 7), + overworld_frame(gEventObjectPic_Girl3, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Boy4[] = { - overworld_frame(gEventObjectPic_Boy4, 16, 32, 0), - overworld_frame(gEventObjectPic_Boy4, 16, 32, 1), - overworld_frame(gEventObjectPic_Boy4, 16, 32, 2), - overworld_frame(gEventObjectPic_Boy4, 16, 32, 3), - overworld_frame(gEventObjectPic_Boy4, 16, 32, 4), - overworld_frame(gEventObjectPic_Boy4, 16, 32, 5), - overworld_frame(gEventObjectPic_Boy4, 16, 32, 6), - overworld_frame(gEventObjectPic_Boy4, 16, 32, 7), - overworld_frame(gEventObjectPic_Boy4, 16, 32, 8), + overworld_frame(gEventObjectPic_Boy4, 2, 4, 0), + overworld_frame(gEventObjectPic_Boy4, 2, 4, 1), + overworld_frame(gEventObjectPic_Boy4, 2, 4, 2), + overworld_frame(gEventObjectPic_Boy4, 2, 4, 3), + overworld_frame(gEventObjectPic_Boy4, 2, 4, 4), + overworld_frame(gEventObjectPic_Boy4, 2, 4, 5), + overworld_frame(gEventObjectPic_Boy4, 2, 4, 6), + overworld_frame(gEventObjectPic_Boy4, 2, 4, 7), + overworld_frame(gEventObjectPic_Boy4, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman1[] = { - overworld_frame(gEventObjectPic_Woman1, 16, 32, 0), - overworld_frame(gEventObjectPic_Woman1, 16, 32, 1), - overworld_frame(gEventObjectPic_Woman1, 16, 32, 2), - overworld_frame(gEventObjectPic_Woman1, 16, 32, 3), - overworld_frame(gEventObjectPic_Woman1, 16, 32, 4), - overworld_frame(gEventObjectPic_Woman1, 16, 32, 5), - overworld_frame(gEventObjectPic_Woman1, 16, 32, 6), - overworld_frame(gEventObjectPic_Woman1, 16, 32, 7), - overworld_frame(gEventObjectPic_Woman1, 16, 32, 8), + overworld_frame(gEventObjectPic_Woman1, 2, 4, 0), + overworld_frame(gEventObjectPic_Woman1, 2, 4, 1), + overworld_frame(gEventObjectPic_Woman1, 2, 4, 2), + overworld_frame(gEventObjectPic_Woman1, 2, 4, 3), + overworld_frame(gEventObjectPic_Woman1, 2, 4, 4), + overworld_frame(gEventObjectPic_Woman1, 2, 4, 5), + overworld_frame(gEventObjectPic_Woman1, 2, 4, 6), + overworld_frame(gEventObjectPic_Woman1, 2, 4, 7), + overworld_frame(gEventObjectPic_Woman1, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_FatMan[] = { - overworld_frame(gEventObjectPic_FatMan, 16, 32, 0), - overworld_frame(gEventObjectPic_FatMan, 16, 32, 1), - overworld_frame(gEventObjectPic_FatMan, 16, 32, 2), - overworld_frame(gEventObjectPic_FatMan, 16, 32, 3), - overworld_frame(gEventObjectPic_FatMan, 16, 32, 4), - overworld_frame(gEventObjectPic_FatMan, 16, 32, 5), - overworld_frame(gEventObjectPic_FatMan, 16, 32, 6), - overworld_frame(gEventObjectPic_FatMan, 16, 32, 7), - overworld_frame(gEventObjectPic_FatMan, 16, 32, 8), + overworld_frame(gEventObjectPic_FatMan, 2, 4, 0), + overworld_frame(gEventObjectPic_FatMan, 2, 4, 1), + overworld_frame(gEventObjectPic_FatMan, 2, 4, 2), + overworld_frame(gEventObjectPic_FatMan, 2, 4, 3), + overworld_frame(gEventObjectPic_FatMan, 2, 4, 4), + overworld_frame(gEventObjectPic_FatMan, 2, 4, 5), + overworld_frame(gEventObjectPic_FatMan, 2, 4, 6), + overworld_frame(gEventObjectPic_FatMan, 2, 4, 7), + overworld_frame(gEventObjectPic_FatMan, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman2[] = { - overworld_frame(gEventObjectPic_Woman2, 16, 32, 0), - overworld_frame(gEventObjectPic_Woman2, 16, 32, 1), - overworld_frame(gEventObjectPic_Woman2, 16, 32, 2), - overworld_frame(gEventObjectPic_Woman2, 16, 32, 3), - overworld_frame(gEventObjectPic_Woman2, 16, 32, 4), - overworld_frame(gEventObjectPic_Woman2, 16, 32, 5), - overworld_frame(gEventObjectPic_Woman2, 16, 32, 6), - overworld_frame(gEventObjectPic_Woman2, 16, 32, 7), - overworld_frame(gEventObjectPic_Woman2, 16, 32, 8), + overworld_frame(gEventObjectPic_Woman2, 2, 4, 0), + overworld_frame(gEventObjectPic_Woman2, 2, 4, 1), + overworld_frame(gEventObjectPic_Woman2, 2, 4, 2), + overworld_frame(gEventObjectPic_Woman2, 2, 4, 3), + overworld_frame(gEventObjectPic_Woman2, 2, 4, 4), + overworld_frame(gEventObjectPic_Woman2, 2, 4, 5), + overworld_frame(gEventObjectPic_Woman2, 2, 4, 6), + overworld_frame(gEventObjectPic_Woman2, 2, 4, 7), + overworld_frame(gEventObjectPic_Woman2, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man1[] = { - overworld_frame(gEventObjectPic_Man1, 16, 32, 0), - overworld_frame(gEventObjectPic_Man1, 16, 32, 1), - overworld_frame(gEventObjectPic_Man1, 16, 32, 2), - overworld_frame(gEventObjectPic_Man1, 16, 32, 3), - overworld_frame(gEventObjectPic_Man1, 16, 32, 4), - overworld_frame(gEventObjectPic_Man1, 16, 32, 5), - overworld_frame(gEventObjectPic_Man1, 16, 32, 6), - overworld_frame(gEventObjectPic_Man1, 16, 32, 7), - overworld_frame(gEventObjectPic_Man1, 16, 32, 8), + overworld_frame(gEventObjectPic_Man1, 2, 4, 0), + overworld_frame(gEventObjectPic_Man1, 2, 4, 1), + overworld_frame(gEventObjectPic_Man1, 2, 4, 2), + overworld_frame(gEventObjectPic_Man1, 2, 4, 3), + overworld_frame(gEventObjectPic_Man1, 2, 4, 4), + overworld_frame(gEventObjectPic_Man1, 2, 4, 5), + overworld_frame(gEventObjectPic_Man1, 2, 4, 6), + overworld_frame(gEventObjectPic_Man1, 2, 4, 7), + overworld_frame(gEventObjectPic_Man1, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman3[] = { - overworld_frame(gEventObjectPic_Woman3, 16, 32, 0), - overworld_frame(gEventObjectPic_Woman3, 16, 32, 1), - overworld_frame(gEventObjectPic_Woman3, 16, 32, 2), - overworld_frame(gEventObjectPic_Woman3, 16, 32, 3), - overworld_frame(gEventObjectPic_Woman3, 16, 32, 4), - overworld_frame(gEventObjectPic_Woman3, 16, 32, 5), - overworld_frame(gEventObjectPic_Woman3, 16, 32, 6), - overworld_frame(gEventObjectPic_Woman3, 16, 32, 7), - overworld_frame(gEventObjectPic_Woman3, 16, 32, 8), + overworld_frame(gEventObjectPic_Woman3, 2, 4, 0), + overworld_frame(gEventObjectPic_Woman3, 2, 4, 1), + overworld_frame(gEventObjectPic_Woman3, 2, 4, 2), + overworld_frame(gEventObjectPic_Woman3, 2, 4, 3), + overworld_frame(gEventObjectPic_Woman3, 2, 4, 4), + overworld_frame(gEventObjectPic_Woman3, 2, 4, 5), + overworld_frame(gEventObjectPic_Woman3, 2, 4, 6), + overworld_frame(gEventObjectPic_Woman3, 2, 4, 7), + overworld_frame(gEventObjectPic_Woman3, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_OldMan1[] = { - overworld_frame(gEventObjectPic_OldMan1, 16, 32, 0), - overworld_frame(gEventObjectPic_OldMan1, 16, 32, 1), - overworld_frame(gEventObjectPic_OldMan1, 16, 32, 2), - overworld_frame(gEventObjectPic_OldMan1, 16, 32, 3), - overworld_frame(gEventObjectPic_OldMan1, 16, 32, 4), - overworld_frame(gEventObjectPic_OldMan1, 16, 32, 5), - overworld_frame(gEventObjectPic_OldMan1, 16, 32, 6), - overworld_frame(gEventObjectPic_OldMan1, 16, 32, 7), - overworld_frame(gEventObjectPic_OldMan1, 16, 32, 8), + overworld_frame(gEventObjectPic_OldMan1, 2, 4, 0), + overworld_frame(gEventObjectPic_OldMan1, 2, 4, 1), + overworld_frame(gEventObjectPic_OldMan1, 2, 4, 2), + overworld_frame(gEventObjectPic_OldMan1, 2, 4, 3), + overworld_frame(gEventObjectPic_OldMan1, 2, 4, 4), + overworld_frame(gEventObjectPic_OldMan1, 2, 4, 5), + overworld_frame(gEventObjectPic_OldMan1, 2, 4, 6), + overworld_frame(gEventObjectPic_OldMan1, 2, 4, 7), + overworld_frame(gEventObjectPic_OldMan1, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_OldWoman1[] = { - overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 0), - overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 1), - overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 2), - overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 3), - overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 4), - overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 5), - overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 6), - overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 7), - overworld_frame(gEventObjectPic_OldWoman1, 16, 32, 8), + overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 0), + overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 1), + overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 2), + overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 3), + overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 4), + overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 5), + overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 6), + overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 7), + overworld_frame(gEventObjectPic_OldWoman1, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man2[] = { - overworld_frame(gEventObjectPic_Man2, 16, 32, 0), - overworld_frame(gEventObjectPic_Man2, 16, 32, 1), - overworld_frame(gEventObjectPic_Man2, 16, 32, 2), - overworld_frame(gEventObjectPic_Man2, 16, 32, 3), - overworld_frame(gEventObjectPic_Man2, 16, 32, 4), - overworld_frame(gEventObjectPic_Man2, 16, 32, 5), - overworld_frame(gEventObjectPic_Man2, 16, 32, 6), - overworld_frame(gEventObjectPic_Man2, 16, 32, 7), - overworld_frame(gEventObjectPic_Man2, 16, 32, 8), + overworld_frame(gEventObjectPic_Man2, 2, 4, 0), + overworld_frame(gEventObjectPic_Man2, 2, 4, 1), + overworld_frame(gEventObjectPic_Man2, 2, 4, 2), + overworld_frame(gEventObjectPic_Man2, 2, 4, 3), + overworld_frame(gEventObjectPic_Man2, 2, 4, 4), + overworld_frame(gEventObjectPic_Man2, 2, 4, 5), + overworld_frame(gEventObjectPic_Man2, 2, 4, 6), + overworld_frame(gEventObjectPic_Man2, 2, 4, 7), + overworld_frame(gEventObjectPic_Man2, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman4[] = { - overworld_frame(gEventObjectPic_Woman4, 16, 32, 0), - overworld_frame(gEventObjectPic_Woman4, 16, 32, 1), - overworld_frame(gEventObjectPic_Woman4, 16, 32, 2), - overworld_frame(gEventObjectPic_Woman4, 16, 32, 3), - overworld_frame(gEventObjectPic_Woman4, 16, 32, 4), - overworld_frame(gEventObjectPic_Woman4, 16, 32, 5), - overworld_frame(gEventObjectPic_Woman4, 16, 32, 6), - overworld_frame(gEventObjectPic_Woman4, 16, 32, 7), - overworld_frame(gEventObjectPic_Woman4, 16, 32, 8), + overworld_frame(gEventObjectPic_Woman4, 2, 4, 0), + overworld_frame(gEventObjectPic_Woman4, 2, 4, 1), + overworld_frame(gEventObjectPic_Woman4, 2, 4, 2), + overworld_frame(gEventObjectPic_Woman4, 2, 4, 3), + overworld_frame(gEventObjectPic_Woman4, 2, 4, 4), + overworld_frame(gEventObjectPic_Woman4, 2, 4, 5), + overworld_frame(gEventObjectPic_Woman4, 2, 4, 6), + overworld_frame(gEventObjectPic_Woman4, 2, 4, 7), + overworld_frame(gEventObjectPic_Woman4, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man3[] = { - overworld_frame(gEventObjectPic_Man3, 16, 32, 0), - overworld_frame(gEventObjectPic_Man3, 16, 32, 1), - overworld_frame(gEventObjectPic_Man3, 16, 32, 2), - overworld_frame(gEventObjectPic_Man3, 16, 32, 3), - overworld_frame(gEventObjectPic_Man3, 16, 32, 4), - overworld_frame(gEventObjectPic_Man3, 16, 32, 5), - overworld_frame(gEventObjectPic_Man3, 16, 32, 6), - overworld_frame(gEventObjectPic_Man3, 16, 32, 7), - overworld_frame(gEventObjectPic_Man3, 16, 32, 8), + overworld_frame(gEventObjectPic_Man3, 2, 4, 0), + overworld_frame(gEventObjectPic_Man3, 2, 4, 1), + overworld_frame(gEventObjectPic_Man3, 2, 4, 2), + overworld_frame(gEventObjectPic_Man3, 2, 4, 3), + overworld_frame(gEventObjectPic_Man3, 2, 4, 4), + overworld_frame(gEventObjectPic_Man3, 2, 4, 5), + overworld_frame(gEventObjectPic_Man3, 2, 4, 6), + overworld_frame(gEventObjectPic_Man3, 2, 4, 7), + overworld_frame(gEventObjectPic_Man3, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman5[] = { - overworld_frame(gEventObjectPic_Woman5, 16, 32, 0), - overworld_frame(gEventObjectPic_Woman5, 16, 32, 1), - overworld_frame(gEventObjectPic_Woman5, 16, 32, 2), - overworld_frame(gEventObjectPic_Woman5, 16, 32, 3), - overworld_frame(gEventObjectPic_Woman5, 16, 32, 4), - overworld_frame(gEventObjectPic_Woman5, 16, 32, 5), - overworld_frame(gEventObjectPic_Woman5, 16, 32, 6), - overworld_frame(gEventObjectPic_Woman5, 16, 32, 7), - overworld_frame(gEventObjectPic_Woman5, 16, 32, 8), + overworld_frame(gEventObjectPic_Woman5, 2, 4, 0), + overworld_frame(gEventObjectPic_Woman5, 2, 4, 1), + overworld_frame(gEventObjectPic_Woman5, 2, 4, 2), + overworld_frame(gEventObjectPic_Woman5, 2, 4, 3), + overworld_frame(gEventObjectPic_Woman5, 2, 4, 4), + overworld_frame(gEventObjectPic_Woman5, 2, 4, 5), + overworld_frame(gEventObjectPic_Woman5, 2, 4, 6), + overworld_frame(gEventObjectPic_Woman5, 2, 4, 7), + overworld_frame(gEventObjectPic_Woman5, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Cook[] = { - overworld_frame(gEventObjectPic_Cook, 16, 32, 0), - overworld_frame(gEventObjectPic_Cook, 16, 32, 1), - overworld_frame(gEventObjectPic_Cook, 16, 32, 2), - overworld_frame(gEventObjectPic_Cook, 16, 32, 0), - overworld_frame(gEventObjectPic_Cook, 16, 32, 0), - overworld_frame(gEventObjectPic_Cook, 16, 32, 1), - overworld_frame(gEventObjectPic_Cook, 16, 32, 1), - overworld_frame(gEventObjectPic_Cook, 16, 32, 2), - overworld_frame(gEventObjectPic_Cook, 16, 32, 2), + overworld_frame(gEventObjectPic_Cook, 2, 4, 0), + overworld_frame(gEventObjectPic_Cook, 2, 4, 1), + overworld_frame(gEventObjectPic_Cook, 2, 4, 2), + overworld_frame(gEventObjectPic_Cook, 2, 4, 0), + overworld_frame(gEventObjectPic_Cook, 2, 4, 0), + overworld_frame(gEventObjectPic_Cook, 2, 4, 1), + overworld_frame(gEventObjectPic_Cook, 2, 4, 1), + overworld_frame(gEventObjectPic_Cook, 2, 4, 2), + overworld_frame(gEventObjectPic_Cook, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Woman6[] = { - overworld_frame(gEventObjectPic_Woman6, 16, 32, 0), - overworld_frame(gEventObjectPic_Woman6, 16, 32, 1), - overworld_frame(gEventObjectPic_Woman6, 16, 32, 2), - overworld_frame(gEventObjectPic_Woman6, 16, 32, 3), - overworld_frame(gEventObjectPic_Woman6, 16, 32, 4), - overworld_frame(gEventObjectPic_Woman6, 16, 32, 5), - overworld_frame(gEventObjectPic_Woman6, 16, 32, 6), - overworld_frame(gEventObjectPic_Woman6, 16, 32, 7), - overworld_frame(gEventObjectPic_Woman6, 16, 32, 8), + overworld_frame(gEventObjectPic_Woman6, 2, 4, 0), + overworld_frame(gEventObjectPic_Woman6, 2, 4, 1), + overworld_frame(gEventObjectPic_Woman6, 2, 4, 2), + overworld_frame(gEventObjectPic_Woman6, 2, 4, 3), + overworld_frame(gEventObjectPic_Woman6, 2, 4, 4), + overworld_frame(gEventObjectPic_Woman6, 2, 4, 5), + overworld_frame(gEventObjectPic_Woman6, 2, 4, 6), + overworld_frame(gEventObjectPic_Woman6, 2, 4, 7), + overworld_frame(gEventObjectPic_Woman6, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_OldMan2[] = { - overworld_frame(gEventObjectPic_OldMan2, 16, 32, 0), - overworld_frame(gEventObjectPic_OldMan2, 16, 32, 1), - overworld_frame(gEventObjectPic_OldMan2, 16, 32, 2), - overworld_frame(gEventObjectPic_OldMan2, 16, 32, 0), - overworld_frame(gEventObjectPic_OldMan2, 16, 32, 0), - overworld_frame(gEventObjectPic_OldMan2, 16, 32, 1), - overworld_frame(gEventObjectPic_OldMan2, 16, 32, 1), - overworld_frame(gEventObjectPic_OldMan2, 16, 32, 2), - overworld_frame(gEventObjectPic_OldMan2, 16, 32, 2), + overworld_frame(gEventObjectPic_OldMan2, 2, 4, 0), + overworld_frame(gEventObjectPic_OldMan2, 2, 4, 1), + overworld_frame(gEventObjectPic_OldMan2, 2, 4, 2), + overworld_frame(gEventObjectPic_OldMan2, 2, 4, 0), + overworld_frame(gEventObjectPic_OldMan2, 2, 4, 0), + overworld_frame(gEventObjectPic_OldMan2, 2, 4, 1), + overworld_frame(gEventObjectPic_OldMan2, 2, 4, 1), + overworld_frame(gEventObjectPic_OldMan2, 2, 4, 2), + overworld_frame(gEventObjectPic_OldMan2, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_OldWoman2[] = { - overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 0), - overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 1), - overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 2), - overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 3), - overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 4), - overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 5), - overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 6), - overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 7), - overworld_frame(gEventObjectPic_OldWoman2, 16, 32, 8), + overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 0), + overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 1), + overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 2), + overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 3), + overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 4), + overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 5), + overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 6), + overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 7), + overworld_frame(gEventObjectPic_OldWoman2, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Camper[] = { - overworld_frame(gEventObjectPic_Camper, 16, 32, 0), - overworld_frame(gEventObjectPic_Camper, 16, 32, 1), - overworld_frame(gEventObjectPic_Camper, 16, 32, 2), - overworld_frame(gEventObjectPic_Camper, 16, 32, 3), - overworld_frame(gEventObjectPic_Camper, 16, 32, 4), - overworld_frame(gEventObjectPic_Camper, 16, 32, 5), - overworld_frame(gEventObjectPic_Camper, 16, 32, 6), - overworld_frame(gEventObjectPic_Camper, 16, 32, 7), - overworld_frame(gEventObjectPic_Camper, 16, 32, 8), + overworld_frame(gEventObjectPic_Camper, 2, 4, 0), + overworld_frame(gEventObjectPic_Camper, 2, 4, 1), + overworld_frame(gEventObjectPic_Camper, 2, 4, 2), + overworld_frame(gEventObjectPic_Camper, 2, 4, 3), + overworld_frame(gEventObjectPic_Camper, 2, 4, 4), + overworld_frame(gEventObjectPic_Camper, 2, 4, 5), + overworld_frame(gEventObjectPic_Camper, 2, 4, 6), + overworld_frame(gEventObjectPic_Camper, 2, 4, 7), + overworld_frame(gEventObjectPic_Camper, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Picnicker[] = { - overworld_frame(gEventObjectPic_Picnicker, 16, 32, 0), - overworld_frame(gEventObjectPic_Picnicker, 16, 32, 1), - overworld_frame(gEventObjectPic_Picnicker, 16, 32, 2), - overworld_frame(gEventObjectPic_Picnicker, 16, 32, 3), - overworld_frame(gEventObjectPic_Picnicker, 16, 32, 4), - overworld_frame(gEventObjectPic_Picnicker, 16, 32, 5), - overworld_frame(gEventObjectPic_Picnicker, 16, 32, 6), - overworld_frame(gEventObjectPic_Picnicker, 16, 32, 7), - overworld_frame(gEventObjectPic_Picnicker, 16, 32, 8), + overworld_frame(gEventObjectPic_Picnicker, 2, 4, 0), + overworld_frame(gEventObjectPic_Picnicker, 2, 4, 1), + overworld_frame(gEventObjectPic_Picnicker, 2, 4, 2), + overworld_frame(gEventObjectPic_Picnicker, 2, 4, 3), + overworld_frame(gEventObjectPic_Picnicker, 2, 4, 4), + overworld_frame(gEventObjectPic_Picnicker, 2, 4, 5), + overworld_frame(gEventObjectPic_Picnicker, 2, 4, 6), + overworld_frame(gEventObjectPic_Picnicker, 2, 4, 7), + overworld_frame(gEventObjectPic_Picnicker, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man4[] = { - overworld_frame(gEventObjectPic_Man4, 16, 32, 0), - overworld_frame(gEventObjectPic_Man4, 16, 32, 1), - overworld_frame(gEventObjectPic_Man4, 16, 32, 2), - overworld_frame(gEventObjectPic_Man4, 16, 32, 3), - overworld_frame(gEventObjectPic_Man4, 16, 32, 4), - overworld_frame(gEventObjectPic_Man4, 16, 32, 5), - overworld_frame(gEventObjectPic_Man4, 16, 32, 6), - overworld_frame(gEventObjectPic_Man4, 16, 32, 7), - overworld_frame(gEventObjectPic_Man4, 16, 32, 8), + overworld_frame(gEventObjectPic_Man4, 2, 4, 0), + overworld_frame(gEventObjectPic_Man4, 2, 4, 1), + overworld_frame(gEventObjectPic_Man4, 2, 4, 2), + overworld_frame(gEventObjectPic_Man4, 2, 4, 3), + overworld_frame(gEventObjectPic_Man4, 2, 4, 4), + overworld_frame(gEventObjectPic_Man4, 2, 4, 5), + overworld_frame(gEventObjectPic_Man4, 2, 4, 6), + overworld_frame(gEventObjectPic_Man4, 2, 4, 7), + overworld_frame(gEventObjectPic_Man4, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Woman7[] = { - overworld_frame(gEventObjectPic_Woman7, 16, 32, 0), - overworld_frame(gEventObjectPic_Woman7, 16, 32, 1), - overworld_frame(gEventObjectPic_Woman7, 16, 32, 2), - overworld_frame(gEventObjectPic_Woman7, 16, 32, 3), - overworld_frame(gEventObjectPic_Woman7, 16, 32, 4), - overworld_frame(gEventObjectPic_Woman7, 16, 32, 5), - overworld_frame(gEventObjectPic_Woman7, 16, 32, 6), - overworld_frame(gEventObjectPic_Woman7, 16, 32, 7), - overworld_frame(gEventObjectPic_Woman7, 16, 32, 8), + overworld_frame(gEventObjectPic_Woman7, 2, 4, 0), + overworld_frame(gEventObjectPic_Woman7, 2, 4, 1), + overworld_frame(gEventObjectPic_Woman7, 2, 4, 2), + overworld_frame(gEventObjectPic_Woman7, 2, 4, 3), + overworld_frame(gEventObjectPic_Woman7, 2, 4, 4), + overworld_frame(gEventObjectPic_Woman7, 2, 4, 5), + overworld_frame(gEventObjectPic_Woman7, 2, 4, 6), + overworld_frame(gEventObjectPic_Woman7, 2, 4, 7), + overworld_frame(gEventObjectPic_Woman7, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Youngster[] = { - overworld_frame(gEventObjectPic_Youngster, 16, 32, 0), - overworld_frame(gEventObjectPic_Youngster, 16, 32, 1), - overworld_frame(gEventObjectPic_Youngster, 16, 32, 2), - overworld_frame(gEventObjectPic_Youngster, 16, 32, 3), - overworld_frame(gEventObjectPic_Youngster, 16, 32, 4), - overworld_frame(gEventObjectPic_Youngster, 16, 32, 5), - overworld_frame(gEventObjectPic_Youngster, 16, 32, 6), - overworld_frame(gEventObjectPic_Youngster, 16, 32, 7), - overworld_frame(gEventObjectPic_Youngster, 16, 32, 8), + overworld_frame(gEventObjectPic_Youngster, 2, 4, 0), + overworld_frame(gEventObjectPic_Youngster, 2, 4, 1), + overworld_frame(gEventObjectPic_Youngster, 2, 4, 2), + overworld_frame(gEventObjectPic_Youngster, 2, 4, 3), + overworld_frame(gEventObjectPic_Youngster, 2, 4, 4), + overworld_frame(gEventObjectPic_Youngster, 2, 4, 5), + overworld_frame(gEventObjectPic_Youngster, 2, 4, 6), + overworld_frame(gEventObjectPic_Youngster, 2, 4, 7), + overworld_frame(gEventObjectPic_Youngster, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BugCatcher[] = { - overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 0), - overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 1), - overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 2), - overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 3), - overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 4), - overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 5), - overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 6), - overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 7), - overworld_frame(gEventObjectPic_BugCatcher, 16, 32, 8), + overworld_frame(gEventObjectPic_BugCatcher, 2, 4, 0), + overworld_frame(gEventObjectPic_BugCatcher, 2, 4, 1), + overworld_frame(gEventObjectPic_BugCatcher, 2, 4, 2), + overworld_frame(gEventObjectPic_BugCatcher, 2, 4, 3), + overworld_frame(gEventObjectPic_BugCatcher, 2, 4, 4), + overworld_frame(gEventObjectPic_BugCatcher, 2, 4, 5), + overworld_frame(gEventObjectPic_BugCatcher, 2, 4, 6), + overworld_frame(gEventObjectPic_BugCatcher, 2, 4, 7), + overworld_frame(gEventObjectPic_BugCatcher, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_PsychicM[] = { - overworld_frame(gEventObjectPic_PsychicM, 16, 32, 0), - overworld_frame(gEventObjectPic_PsychicM, 16, 32, 1), - overworld_frame(gEventObjectPic_PsychicM, 16, 32, 2), - overworld_frame(gEventObjectPic_PsychicM, 16, 32, 3), - overworld_frame(gEventObjectPic_PsychicM, 16, 32, 4), - overworld_frame(gEventObjectPic_PsychicM, 16, 32, 5), - overworld_frame(gEventObjectPic_PsychicM, 16, 32, 6), - overworld_frame(gEventObjectPic_PsychicM, 16, 32, 7), - overworld_frame(gEventObjectPic_PsychicM, 16, 32, 8), + overworld_frame(gEventObjectPic_PsychicM, 2, 4, 0), + overworld_frame(gEventObjectPic_PsychicM, 2, 4, 1), + overworld_frame(gEventObjectPic_PsychicM, 2, 4, 2), + overworld_frame(gEventObjectPic_PsychicM, 2, 4, 3), + overworld_frame(gEventObjectPic_PsychicM, 2, 4, 4), + overworld_frame(gEventObjectPic_PsychicM, 2, 4, 5), + overworld_frame(gEventObjectPic_PsychicM, 2, 4, 6), + overworld_frame(gEventObjectPic_PsychicM, 2, 4, 7), + overworld_frame(gEventObjectPic_PsychicM, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_SchoolKidM[] = { - overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 0), - overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 1), - overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 2), - overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 3), - overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 4), - overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 5), - overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 6), - overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 7), - overworld_frame(gEventObjectPic_SchoolKidM, 16, 32, 8), + overworld_frame(gEventObjectPic_SchoolKidM, 2, 4, 0), + overworld_frame(gEventObjectPic_SchoolKidM, 2, 4, 1), + overworld_frame(gEventObjectPic_SchoolKidM, 2, 4, 2), + overworld_frame(gEventObjectPic_SchoolKidM, 2, 4, 3), + overworld_frame(gEventObjectPic_SchoolKidM, 2, 4, 4), + overworld_frame(gEventObjectPic_SchoolKidM, 2, 4, 5), + overworld_frame(gEventObjectPic_SchoolKidM, 2, 4, 6), + overworld_frame(gEventObjectPic_SchoolKidM, 2, 4, 7), + overworld_frame(gEventObjectPic_SchoolKidM, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Maniac[] = { - overworld_frame(gEventObjectPic_Maniac, 16, 32, 0), - overworld_frame(gEventObjectPic_Maniac, 16, 32, 1), - overworld_frame(gEventObjectPic_Maniac, 16, 32, 2), - overworld_frame(gEventObjectPic_Maniac, 16, 32, 3), - overworld_frame(gEventObjectPic_Maniac, 16, 32, 4), - overworld_frame(gEventObjectPic_Maniac, 16, 32, 5), - overworld_frame(gEventObjectPic_Maniac, 16, 32, 6), - overworld_frame(gEventObjectPic_Maniac, 16, 32, 7), - overworld_frame(gEventObjectPic_Maniac, 16, 32, 8), + overworld_frame(gEventObjectPic_Maniac, 2, 4, 0), + overworld_frame(gEventObjectPic_Maniac, 2, 4, 1), + overworld_frame(gEventObjectPic_Maniac, 2, 4, 2), + overworld_frame(gEventObjectPic_Maniac, 2, 4, 3), + overworld_frame(gEventObjectPic_Maniac, 2, 4, 4), + overworld_frame(gEventObjectPic_Maniac, 2, 4, 5), + overworld_frame(gEventObjectPic_Maniac, 2, 4, 6), + overworld_frame(gEventObjectPic_Maniac, 2, 4, 7), + overworld_frame(gEventObjectPic_Maniac, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_HexManiac[] = { - overworld_frame(gEventObjectPic_HexManiac, 16, 32, 0), - overworld_frame(gEventObjectPic_HexManiac, 16, 32, 1), - overworld_frame(gEventObjectPic_HexManiac, 16, 32, 2), - overworld_frame(gEventObjectPic_HexManiac, 16, 32, 3), - overworld_frame(gEventObjectPic_HexManiac, 16, 32, 4), - overworld_frame(gEventObjectPic_HexManiac, 16, 32, 5), - overworld_frame(gEventObjectPic_HexManiac, 16, 32, 6), - overworld_frame(gEventObjectPic_HexManiac, 16, 32, 7), - overworld_frame(gEventObjectPic_HexManiac, 16, 32, 8), + overworld_frame(gEventObjectPic_HexManiac, 2, 4, 0), + overworld_frame(gEventObjectPic_HexManiac, 2, 4, 1), + overworld_frame(gEventObjectPic_HexManiac, 2, 4, 2), + overworld_frame(gEventObjectPic_HexManiac, 2, 4, 3), + overworld_frame(gEventObjectPic_HexManiac, 2, 4, 4), + overworld_frame(gEventObjectPic_HexManiac, 2, 4, 5), + overworld_frame(gEventObjectPic_HexManiac, 2, 4, 6), + overworld_frame(gEventObjectPic_HexManiac, 2, 4, 7), + overworld_frame(gEventObjectPic_HexManiac, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_SwimmerM[] = { - overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 0), - overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 1), - overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 2), - overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 3), - overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 4), - overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 5), - overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 6), - overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 7), - overworld_frame(gEventObjectPic_SwimmerM, 16, 32, 8), + overworld_frame(gEventObjectPic_SwimmerM, 2, 4, 0), + overworld_frame(gEventObjectPic_SwimmerM, 2, 4, 1), + overworld_frame(gEventObjectPic_SwimmerM, 2, 4, 2), + overworld_frame(gEventObjectPic_SwimmerM, 2, 4, 3), + overworld_frame(gEventObjectPic_SwimmerM, 2, 4, 4), + overworld_frame(gEventObjectPic_SwimmerM, 2, 4, 5), + overworld_frame(gEventObjectPic_SwimmerM, 2, 4, 6), + overworld_frame(gEventObjectPic_SwimmerM, 2, 4, 7), + overworld_frame(gEventObjectPic_SwimmerM, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_SwimmerF[] = { - overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 0), - overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 1), - overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 2), - overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 3), - overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 4), - overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 5), - overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 6), - overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 7), - overworld_frame(gEventObjectPic_SwimmerF, 16, 32, 8), + overworld_frame(gEventObjectPic_SwimmerF, 2, 4, 0), + overworld_frame(gEventObjectPic_SwimmerF, 2, 4, 1), + overworld_frame(gEventObjectPic_SwimmerF, 2, 4, 2), + overworld_frame(gEventObjectPic_SwimmerF, 2, 4, 3), + overworld_frame(gEventObjectPic_SwimmerF, 2, 4, 4), + overworld_frame(gEventObjectPic_SwimmerF, 2, 4, 5), + overworld_frame(gEventObjectPic_SwimmerF, 2, 4, 6), + overworld_frame(gEventObjectPic_SwimmerF, 2, 4, 7), + overworld_frame(gEventObjectPic_SwimmerF, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BlackBelt[] = { - overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 0), - overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 1), - overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 2), - overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 3), - overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 4), - overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 5), - overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 6), - overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 7), - overworld_frame(gEventObjectPic_BlackBelt, 16, 32, 8), + overworld_frame(gEventObjectPic_BlackBelt, 2, 4, 0), + overworld_frame(gEventObjectPic_BlackBelt, 2, 4, 1), + overworld_frame(gEventObjectPic_BlackBelt, 2, 4, 2), + overworld_frame(gEventObjectPic_BlackBelt, 2, 4, 3), + overworld_frame(gEventObjectPic_BlackBelt, 2, 4, 4), + overworld_frame(gEventObjectPic_BlackBelt, 2, 4, 5), + overworld_frame(gEventObjectPic_BlackBelt, 2, 4, 6), + overworld_frame(gEventObjectPic_BlackBelt, 2, 4, 7), + overworld_frame(gEventObjectPic_BlackBelt, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Beauty[] = { - overworld_frame(gEventObjectPic_Beauty, 16, 32, 0), - overworld_frame(gEventObjectPic_Beauty, 16, 32, 1), - overworld_frame(gEventObjectPic_Beauty, 16, 32, 2), - overworld_frame(gEventObjectPic_Beauty, 16, 32, 3), - overworld_frame(gEventObjectPic_Beauty, 16, 32, 4), - overworld_frame(gEventObjectPic_Beauty, 16, 32, 5), - overworld_frame(gEventObjectPic_Beauty, 16, 32, 6), - overworld_frame(gEventObjectPic_Beauty, 16, 32, 7), - overworld_frame(gEventObjectPic_Beauty, 16, 32, 8), + overworld_frame(gEventObjectPic_Beauty, 2, 4, 0), + overworld_frame(gEventObjectPic_Beauty, 2, 4, 1), + overworld_frame(gEventObjectPic_Beauty, 2, 4, 2), + overworld_frame(gEventObjectPic_Beauty, 2, 4, 3), + overworld_frame(gEventObjectPic_Beauty, 2, 4, 4), + overworld_frame(gEventObjectPic_Beauty, 2, 4, 5), + overworld_frame(gEventObjectPic_Beauty, 2, 4, 6), + overworld_frame(gEventObjectPic_Beauty, 2, 4, 7), + overworld_frame(gEventObjectPic_Beauty, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Scientist1[] = { - overworld_frame(gEventObjectPic_Scientist1, 16, 32, 0), - overworld_frame(gEventObjectPic_Scientist1, 16, 32, 1), - overworld_frame(gEventObjectPic_Scientist1, 16, 32, 2), - overworld_frame(gEventObjectPic_Scientist1, 16, 32, 3), - overworld_frame(gEventObjectPic_Scientist1, 16, 32, 4), - overworld_frame(gEventObjectPic_Scientist1, 16, 32, 5), - overworld_frame(gEventObjectPic_Scientist1, 16, 32, 6), - overworld_frame(gEventObjectPic_Scientist1, 16, 32, 7), - overworld_frame(gEventObjectPic_Scientist1, 16, 32, 8), + overworld_frame(gEventObjectPic_Scientist1, 2, 4, 0), + overworld_frame(gEventObjectPic_Scientist1, 2, 4, 1), + overworld_frame(gEventObjectPic_Scientist1, 2, 4, 2), + overworld_frame(gEventObjectPic_Scientist1, 2, 4, 3), + overworld_frame(gEventObjectPic_Scientist1, 2, 4, 4), + overworld_frame(gEventObjectPic_Scientist1, 2, 4, 5), + overworld_frame(gEventObjectPic_Scientist1, 2, 4, 6), + overworld_frame(gEventObjectPic_Scientist1, 2, 4, 7), + overworld_frame(gEventObjectPic_Scientist1, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Lass[] = { - overworld_frame(gEventObjectPic_Lass, 16, 32, 0), - overworld_frame(gEventObjectPic_Lass, 16, 32, 1), - overworld_frame(gEventObjectPic_Lass, 16, 32, 2), - overworld_frame(gEventObjectPic_Lass, 16, 32, 3), - overworld_frame(gEventObjectPic_Lass, 16, 32, 4), - overworld_frame(gEventObjectPic_Lass, 16, 32, 5), - overworld_frame(gEventObjectPic_Lass, 16, 32, 6), - overworld_frame(gEventObjectPic_Lass, 16, 32, 7), - overworld_frame(gEventObjectPic_Lass, 16, 32, 8), + overworld_frame(gEventObjectPic_Lass, 2, 4, 0), + overworld_frame(gEventObjectPic_Lass, 2, 4, 1), + overworld_frame(gEventObjectPic_Lass, 2, 4, 2), + overworld_frame(gEventObjectPic_Lass, 2, 4, 3), + overworld_frame(gEventObjectPic_Lass, 2, 4, 4), + overworld_frame(gEventObjectPic_Lass, 2, 4, 5), + overworld_frame(gEventObjectPic_Lass, 2, 4, 6), + overworld_frame(gEventObjectPic_Lass, 2, 4, 7), + overworld_frame(gEventObjectPic_Lass, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Gentleman[] = { - overworld_frame(gEventObjectPic_Gentleman, 16, 32, 0), - overworld_frame(gEventObjectPic_Gentleman, 16, 32, 1), - overworld_frame(gEventObjectPic_Gentleman, 16, 32, 2), - overworld_frame(gEventObjectPic_Gentleman, 16, 32, 3), - overworld_frame(gEventObjectPic_Gentleman, 16, 32, 4), - overworld_frame(gEventObjectPic_Gentleman, 16, 32, 5), - overworld_frame(gEventObjectPic_Gentleman, 16, 32, 6), - overworld_frame(gEventObjectPic_Gentleman, 16, 32, 7), - overworld_frame(gEventObjectPic_Gentleman, 16, 32, 8), + overworld_frame(gEventObjectPic_Gentleman, 2, 4, 0), + overworld_frame(gEventObjectPic_Gentleman, 2, 4, 1), + overworld_frame(gEventObjectPic_Gentleman, 2, 4, 2), + overworld_frame(gEventObjectPic_Gentleman, 2, 4, 3), + overworld_frame(gEventObjectPic_Gentleman, 2, 4, 4), + overworld_frame(gEventObjectPic_Gentleman, 2, 4, 5), + overworld_frame(gEventObjectPic_Gentleman, 2, 4, 6), + overworld_frame(gEventObjectPic_Gentleman, 2, 4, 7), + overworld_frame(gEventObjectPic_Gentleman, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Sailor[] = { - overworld_frame(gEventObjectPic_Sailor, 16, 32, 0), - overworld_frame(gEventObjectPic_Sailor, 16, 32, 1), - overworld_frame(gEventObjectPic_Sailor, 16, 32, 2), - overworld_frame(gEventObjectPic_Sailor, 16, 32, 3), - overworld_frame(gEventObjectPic_Sailor, 16, 32, 4), - overworld_frame(gEventObjectPic_Sailor, 16, 32, 5), - overworld_frame(gEventObjectPic_Sailor, 16, 32, 6), - overworld_frame(gEventObjectPic_Sailor, 16, 32, 7), - overworld_frame(gEventObjectPic_Sailor, 16, 32, 8), + overworld_frame(gEventObjectPic_Sailor, 2, 4, 0), + overworld_frame(gEventObjectPic_Sailor, 2, 4, 1), + overworld_frame(gEventObjectPic_Sailor, 2, 4, 2), + overworld_frame(gEventObjectPic_Sailor, 2, 4, 3), + overworld_frame(gEventObjectPic_Sailor, 2, 4, 4), + overworld_frame(gEventObjectPic_Sailor, 2, 4, 5), + overworld_frame(gEventObjectPic_Sailor, 2, 4, 6), + overworld_frame(gEventObjectPic_Sailor, 2, 4, 7), + overworld_frame(gEventObjectPic_Sailor, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Fisherman[] = { - overworld_frame(gEventObjectPic_Fisherman, 16, 32, 0), - overworld_frame(gEventObjectPic_Fisherman, 16, 32, 1), - overworld_frame(gEventObjectPic_Fisherman, 16, 32, 2), - overworld_frame(gEventObjectPic_Fisherman, 16, 32, 3), - overworld_frame(gEventObjectPic_Fisherman, 16, 32, 4), - overworld_frame(gEventObjectPic_Fisherman, 16, 32, 5), - overworld_frame(gEventObjectPic_Fisherman, 16, 32, 6), - overworld_frame(gEventObjectPic_Fisherman, 16, 32, 7), - overworld_frame(gEventObjectPic_Fisherman, 16, 32, 8), + overworld_frame(gEventObjectPic_Fisherman, 2, 4, 0), + overworld_frame(gEventObjectPic_Fisherman, 2, 4, 1), + overworld_frame(gEventObjectPic_Fisherman, 2, 4, 2), + overworld_frame(gEventObjectPic_Fisherman, 2, 4, 3), + overworld_frame(gEventObjectPic_Fisherman, 2, 4, 4), + overworld_frame(gEventObjectPic_Fisherman, 2, 4, 5), + overworld_frame(gEventObjectPic_Fisherman, 2, 4, 6), + overworld_frame(gEventObjectPic_Fisherman, 2, 4, 7), + overworld_frame(gEventObjectPic_Fisherman, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RunningTriathleteM[] = { - overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 0), - overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 1), - overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 2), - overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 3), - overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 4), - overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 5), - overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 6), - overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 7), - overworld_frame(gEventObjectPic_RunningTriathleteM, 16, 32, 8), + overworld_frame(gEventObjectPic_RunningTriathleteM, 2, 4, 0), + overworld_frame(gEventObjectPic_RunningTriathleteM, 2, 4, 1), + overworld_frame(gEventObjectPic_RunningTriathleteM, 2, 4, 2), + overworld_frame(gEventObjectPic_RunningTriathleteM, 2, 4, 3), + overworld_frame(gEventObjectPic_RunningTriathleteM, 2, 4, 4), + overworld_frame(gEventObjectPic_RunningTriathleteM, 2, 4, 5), + overworld_frame(gEventObjectPic_RunningTriathleteM, 2, 4, 6), + overworld_frame(gEventObjectPic_RunningTriathleteM, 2, 4, 7), + overworld_frame(gEventObjectPic_RunningTriathleteM, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RunningTriathleteF[] = { - overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 0), - overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 1), - overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 2), - overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 3), - overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 4), - overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 5), - overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 6), - overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 7), - overworld_frame(gEventObjectPic_RunningTriathleteF, 16, 32, 8), + overworld_frame(gEventObjectPic_RunningTriathleteF, 2, 4, 0), + overworld_frame(gEventObjectPic_RunningTriathleteF, 2, 4, 1), + overworld_frame(gEventObjectPic_RunningTriathleteF, 2, 4, 2), + overworld_frame(gEventObjectPic_RunningTriathleteF, 2, 4, 3), + overworld_frame(gEventObjectPic_RunningTriathleteF, 2, 4, 4), + overworld_frame(gEventObjectPic_RunningTriathleteF, 2, 4, 5), + overworld_frame(gEventObjectPic_RunningTriathleteF, 2, 4, 6), + overworld_frame(gEventObjectPic_RunningTriathleteF, 2, 4, 7), + overworld_frame(gEventObjectPic_RunningTriathleteF, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_TuberF[] = { - overworld_frame(gEventObjectPic_TuberF, 16, 16, 0), - overworld_frame(gEventObjectPic_TuberF, 16, 16, 1), - overworld_frame(gEventObjectPic_TuberF, 16, 16, 2), - overworld_frame(gEventObjectPic_TuberF, 16, 16, 3), - overworld_frame(gEventObjectPic_TuberF, 16, 16, 4), - overworld_frame(gEventObjectPic_TuberF, 16, 16, 5), - overworld_frame(gEventObjectPic_TuberF, 16, 16, 6), - overworld_frame(gEventObjectPic_TuberF, 16, 16, 7), - overworld_frame(gEventObjectPic_TuberF, 16, 16, 8), + overworld_frame(gEventObjectPic_TuberF, 2, 2, 0), + overworld_frame(gEventObjectPic_TuberF, 2, 2, 1), + overworld_frame(gEventObjectPic_TuberF, 2, 2, 2), + overworld_frame(gEventObjectPic_TuberF, 2, 2, 3), + overworld_frame(gEventObjectPic_TuberF, 2, 2, 4), + overworld_frame(gEventObjectPic_TuberF, 2, 2, 5), + overworld_frame(gEventObjectPic_TuberF, 2, 2, 6), + overworld_frame(gEventObjectPic_TuberF, 2, 2, 7), + overworld_frame(gEventObjectPic_TuberF, 2, 2, 8), }; const struct SpriteFrameImage gEventObjectPicTable_TuberM[] = { - overworld_frame(gEventObjectPic_TuberM, 16, 16, 0), - overworld_frame(gEventObjectPic_TuberM, 16, 16, 1), - overworld_frame(gEventObjectPic_TuberM, 16, 16, 2), - overworld_frame(gEventObjectPic_TuberM, 16, 16, 3), - overworld_frame(gEventObjectPic_TuberM, 16, 16, 4), - overworld_frame(gEventObjectPic_TuberM, 16, 16, 5), - overworld_frame(gEventObjectPic_TuberM, 16, 16, 6), - overworld_frame(gEventObjectPic_TuberM, 16, 16, 7), - overworld_frame(gEventObjectPic_TuberM, 16, 16, 8), + overworld_frame(gEventObjectPic_TuberM, 2, 2, 0), + overworld_frame(gEventObjectPic_TuberM, 2, 2, 1), + overworld_frame(gEventObjectPic_TuberM, 2, 2, 2), + overworld_frame(gEventObjectPic_TuberM, 2, 2, 3), + overworld_frame(gEventObjectPic_TuberM, 2, 2, 4), + overworld_frame(gEventObjectPic_TuberM, 2, 2, 5), + overworld_frame(gEventObjectPic_TuberM, 2, 2, 6), + overworld_frame(gEventObjectPic_TuberM, 2, 2, 7), + overworld_frame(gEventObjectPic_TuberM, 2, 2, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Hiker[] = { - overworld_frame(gEventObjectPic_Hiker, 16, 32, 0), - overworld_frame(gEventObjectPic_Hiker, 16, 32, 1), - overworld_frame(gEventObjectPic_Hiker, 16, 32, 2), - overworld_frame(gEventObjectPic_Hiker, 16, 32, 3), - overworld_frame(gEventObjectPic_Hiker, 16, 32, 4), - overworld_frame(gEventObjectPic_Hiker, 16, 32, 5), - overworld_frame(gEventObjectPic_Hiker, 16, 32, 6), - overworld_frame(gEventObjectPic_Hiker, 16, 32, 7), - overworld_frame(gEventObjectPic_Hiker, 16, 32, 8), + overworld_frame(gEventObjectPic_Hiker, 2, 4, 0), + overworld_frame(gEventObjectPic_Hiker, 2, 4, 1), + overworld_frame(gEventObjectPic_Hiker, 2, 4, 2), + overworld_frame(gEventObjectPic_Hiker, 2, 4, 3), + overworld_frame(gEventObjectPic_Hiker, 2, 4, 4), + overworld_frame(gEventObjectPic_Hiker, 2, 4, 5), + overworld_frame(gEventObjectPic_Hiker, 2, 4, 6), + overworld_frame(gEventObjectPic_Hiker, 2, 4, 7), + overworld_frame(gEventObjectPic_Hiker, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_CyclingTriathleteM[] = { - overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 0), - overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 1), - overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 2), - overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 3), - overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 4), - overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 5), - overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 6), - overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 7), - overworld_frame(gEventObjectPic_CyclingTriathleteM, 32, 32, 8), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 4, 4, 0), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 4, 4, 1), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 4, 4, 2), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 4, 4, 3), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 4, 4, 4), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 4, 4, 5), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 4, 4, 6), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 4, 4, 7), + overworld_frame(gEventObjectPic_CyclingTriathleteM, 4, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_CyclingTriathleteF[] = { - overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 0), - overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 1), - overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 2), - overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 3), - overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 4), - overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 5), - overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 6), - overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 7), - overworld_frame(gEventObjectPic_CyclingTriathleteF, 32, 32, 8), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 4, 4, 0), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 4, 4, 1), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 4, 4, 2), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 4, 4, 3), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 4, 4, 4), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 4, 4, 5), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 4, 4, 6), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 4, 4, 7), + overworld_frame(gEventObjectPic_CyclingTriathleteF, 4, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Nurse[] = { - overworld_frame(gEventObjectPic_Nurse, 16, 32, 0), - overworld_frame(gEventObjectPic_Nurse, 16, 32, 1), - overworld_frame(gEventObjectPic_Nurse, 16, 32, 2), - overworld_frame(gEventObjectPic_Nurse, 16, 32, 0), - overworld_frame(gEventObjectPic_Nurse, 16, 32, 0), - overworld_frame(gEventObjectPic_Nurse, 16, 32, 1), - overworld_frame(gEventObjectPic_Nurse, 16, 32, 1), - overworld_frame(gEventObjectPic_Nurse, 16, 32, 2), - overworld_frame(gEventObjectPic_Nurse, 16, 32, 2), - overworld_frame(gEventObjectPic_Nurse, 16, 32, 3), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 0), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 1), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 2), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 0), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 0), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 1), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 1), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 2), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 2), + overworld_frame(gEventObjectPic_Nurse, 2, 4, 3), }; const struct SpriteFrameImage gEventObjectPicTable_ItemBall[] = { @@ -751,87 +751,87 @@ const struct SpriteFrameImage gEventObjectPicTable_ItemBall[] = { }; const struct SpriteFrameImage gEventObjectPicTable_ProfBirch[] = { - overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 0), - overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 1), - overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 2), - overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 3), - overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 4), - overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 5), - overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 6), - overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 7), - overworld_frame(gEventObjectPic_ProfBirch, 16, 32, 8), + overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 0), + overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 1), + overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 2), + overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 3), + overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 4), + overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 5), + overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 6), + overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 7), + overworld_frame(gEventObjectPic_ProfBirch, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man5[] = { - overworld_frame(gEventObjectPic_Man5, 16, 32, 0), - overworld_frame(gEventObjectPic_Man5, 16, 32, 1), - overworld_frame(gEventObjectPic_Man5, 16, 32, 2), - overworld_frame(gEventObjectPic_Man5, 16, 32, 3), - overworld_frame(gEventObjectPic_Man5, 16, 32, 4), - overworld_frame(gEventObjectPic_Man5, 16, 32, 5), - overworld_frame(gEventObjectPic_Man5, 16, 32, 6), - overworld_frame(gEventObjectPic_Man5, 16, 32, 7), - overworld_frame(gEventObjectPic_Man5, 16, 32, 8), + overworld_frame(gEventObjectPic_Man5, 2, 4, 0), + overworld_frame(gEventObjectPic_Man5, 2, 4, 1), + overworld_frame(gEventObjectPic_Man5, 2, 4, 2), + overworld_frame(gEventObjectPic_Man5, 2, 4, 3), + overworld_frame(gEventObjectPic_Man5, 2, 4, 4), + overworld_frame(gEventObjectPic_Man5, 2, 4, 5), + overworld_frame(gEventObjectPic_Man5, 2, 4, 6), + overworld_frame(gEventObjectPic_Man5, 2, 4, 7), + overworld_frame(gEventObjectPic_Man5, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man6[] = { - overworld_frame(gEventObjectPic_Man6, 16, 32, 0), - overworld_frame(gEventObjectPic_Man6, 16, 32, 1), - overworld_frame(gEventObjectPic_Man6, 16, 32, 2), - overworld_frame(gEventObjectPic_Man6, 16, 32, 3), - overworld_frame(gEventObjectPic_Man6, 16, 32, 4), - overworld_frame(gEventObjectPic_Man6, 16, 32, 5), - overworld_frame(gEventObjectPic_Man6, 16, 32, 6), - overworld_frame(gEventObjectPic_Man6, 16, 32, 7), - overworld_frame(gEventObjectPic_Man6, 16, 32, 8), + overworld_frame(gEventObjectPic_Man6, 2, 4, 0), + overworld_frame(gEventObjectPic_Man6, 2, 4, 1), + overworld_frame(gEventObjectPic_Man6, 2, 4, 2), + overworld_frame(gEventObjectPic_Man6, 2, 4, 3), + overworld_frame(gEventObjectPic_Man6, 2, 4, 4), + overworld_frame(gEventObjectPic_Man6, 2, 4, 5), + overworld_frame(gEventObjectPic_Man6, 2, 4, 6), + overworld_frame(gEventObjectPic_Man6, 2, 4, 7), + overworld_frame(gEventObjectPic_Man6, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_ReporterM[] = { - overworld_frame(gEventObjectPic_ReporterM, 16, 32, 0), - overworld_frame(gEventObjectPic_ReporterM, 16, 32, 1), - overworld_frame(gEventObjectPic_ReporterM, 16, 32, 2), - overworld_frame(gEventObjectPic_ReporterM, 16, 32, 3), - overworld_frame(gEventObjectPic_ReporterM, 16, 32, 4), - overworld_frame(gEventObjectPic_ReporterM, 16, 32, 5), - overworld_frame(gEventObjectPic_ReporterM, 16, 32, 6), - overworld_frame(gEventObjectPic_ReporterM, 16, 32, 7), - overworld_frame(gEventObjectPic_ReporterM, 16, 32, 8), + overworld_frame(gEventObjectPic_ReporterM, 2, 4, 0), + overworld_frame(gEventObjectPic_ReporterM, 2, 4, 1), + overworld_frame(gEventObjectPic_ReporterM, 2, 4, 2), + overworld_frame(gEventObjectPic_ReporterM, 2, 4, 3), + overworld_frame(gEventObjectPic_ReporterM, 2, 4, 4), + overworld_frame(gEventObjectPic_ReporterM, 2, 4, 5), + overworld_frame(gEventObjectPic_ReporterM, 2, 4, 6), + overworld_frame(gEventObjectPic_ReporterM, 2, 4, 7), + overworld_frame(gEventObjectPic_ReporterM, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_ReporterF[] = { - overworld_frame(gEventObjectPic_ReporterF, 16, 32, 0), - overworld_frame(gEventObjectPic_ReporterF, 16, 32, 1), - overworld_frame(gEventObjectPic_ReporterF, 16, 32, 2), - overworld_frame(gEventObjectPic_ReporterF, 16, 32, 3), - overworld_frame(gEventObjectPic_ReporterF, 16, 32, 4), - overworld_frame(gEventObjectPic_ReporterF, 16, 32, 5), - overworld_frame(gEventObjectPic_ReporterF, 16, 32, 6), - overworld_frame(gEventObjectPic_ReporterF, 16, 32, 7), - overworld_frame(gEventObjectPic_ReporterF, 16, 32, 8), + overworld_frame(gEventObjectPic_ReporterF, 2, 4, 0), + overworld_frame(gEventObjectPic_ReporterF, 2, 4, 1), + overworld_frame(gEventObjectPic_ReporterF, 2, 4, 2), + overworld_frame(gEventObjectPic_ReporterF, 2, 4, 3), + overworld_frame(gEventObjectPic_ReporterF, 2, 4, 4), + overworld_frame(gEventObjectPic_ReporterF, 2, 4, 5), + overworld_frame(gEventObjectPic_ReporterF, 2, 4, 6), + overworld_frame(gEventObjectPic_ReporterF, 2, 4, 7), + overworld_frame(gEventObjectPic_ReporterF, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MauvilleOldMan1[] = { - overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 0), - overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 1), - overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 2), - overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 3), - overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 4), - overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 5), - overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 6), - overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 7), - overworld_frame(gEventObjectPic_MauvilleOldMan1, 16, 32, 8), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 2, 4, 0), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 2, 4, 1), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 2, 4, 2), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 2, 4, 3), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 2, 4, 4), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 2, 4, 5), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 2, 4, 6), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 2, 4, 7), + overworld_frame(gEventObjectPic_MauvilleOldMan1, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MauvilleOldMan2[] = { - overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 0), - overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 1), - overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 2), - overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 3), - overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 4), - overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 5), - overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 6), - overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 7), - overworld_frame(gEventObjectPic_MauvilleOldMan2, 16, 32, 8), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 2, 4, 0), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 2, 4, 1), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 2, 4, 2), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 2, 4, 3), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 2, 4, 4), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 2, 4, 5), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 2, 4, 6), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 2, 4, 7), + overworld_frame(gEventObjectPic_MauvilleOldMan2, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_UnusedNatuDoll[] = { @@ -859,53 +859,53 @@ const struct SpriteFrameImage gEventObjectPicTable_UnusedPorygon2Doll[] = { }; const struct SpriteFrameImage gEventObjectPicTable_CuttableTree[] = { - overworld_frame(gEventObjectPic_CuttableTree, 16, 16, 0), - overworld_frame(gEventObjectPic_CuttableTree, 16, 16, 1), - overworld_frame(gEventObjectPic_CuttableTree, 16, 16, 2), - overworld_frame(gEventObjectPic_CuttableTree, 16, 16, 3), + overworld_frame(gEventObjectPic_CuttableTree, 2, 2, 0), + overworld_frame(gEventObjectPic_CuttableTree, 2, 2, 1), + overworld_frame(gEventObjectPic_CuttableTree, 2, 2, 2), + overworld_frame(gEventObjectPic_CuttableTree, 2, 2, 3), }; const struct SpriteFrameImage gEventObjectPicTable_MartEmployee[] = { - overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 0), - overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 1), - overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 2), - overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 3), - overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 4), - overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 5), - overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 6), - overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 7), - overworld_frame(gEventObjectPic_MartEmployee, 16, 32, 8), + overworld_frame(gEventObjectPic_MartEmployee, 2, 4, 0), + overworld_frame(gEventObjectPic_MartEmployee, 2, 4, 1), + overworld_frame(gEventObjectPic_MartEmployee, 2, 4, 2), + overworld_frame(gEventObjectPic_MartEmployee, 2, 4, 3), + overworld_frame(gEventObjectPic_MartEmployee, 2, 4, 4), + overworld_frame(gEventObjectPic_MartEmployee, 2, 4, 5), + overworld_frame(gEventObjectPic_MartEmployee, 2, 4, 6), + overworld_frame(gEventObjectPic_MartEmployee, 2, 4, 7), + overworld_frame(gEventObjectPic_MartEmployee, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RooftopSaleWoman[] = { - overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 0), - overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 1), - overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 2), - overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 3), - overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 4), - overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 5), - overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 6), - overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 7), - overworld_frame(gEventObjectPic_RooftopSaleWoman, 16, 32, 8), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 2, 4, 0), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 2, 4, 1), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 2, 4, 2), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 2, 4, 3), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 2, 4, 4), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 2, 4, 5), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 2, 4, 6), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 2, 4, 7), + overworld_frame(gEventObjectPic_RooftopSaleWoman, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Teala[] = { - overworld_frame(gEventObjectPic_Teala, 16, 32, 0), - overworld_frame(gEventObjectPic_Teala, 16, 32, 1), - overworld_frame(gEventObjectPic_Teala, 16, 32, 2), - overworld_frame(gEventObjectPic_Teala, 16, 32, 3), - overworld_frame(gEventObjectPic_Teala, 16, 32, 4), - overworld_frame(gEventObjectPic_Teala, 16, 32, 5), - overworld_frame(gEventObjectPic_Teala, 16, 32, 6), - overworld_frame(gEventObjectPic_Teala, 16, 32, 7), - overworld_frame(gEventObjectPic_Teala, 16, 32, 8), + overworld_frame(gEventObjectPic_Teala, 2, 4, 0), + overworld_frame(gEventObjectPic_Teala, 2, 4, 1), + overworld_frame(gEventObjectPic_Teala, 2, 4, 2), + overworld_frame(gEventObjectPic_Teala, 2, 4, 3), + overworld_frame(gEventObjectPic_Teala, 2, 4, 4), + overworld_frame(gEventObjectPic_Teala, 2, 4, 5), + overworld_frame(gEventObjectPic_Teala, 2, 4, 6), + overworld_frame(gEventObjectPic_Teala, 2, 4, 7), + overworld_frame(gEventObjectPic_Teala, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BreakableRock[] = { - overworld_frame(gEventObjectPic_BreakableRock, 16, 16, 0), - overworld_frame(gEventObjectPic_BreakableRock, 16, 16, 1), - overworld_frame(gEventObjectPic_BreakableRock, 16, 16, 2), - overworld_frame(gEventObjectPic_BreakableRock, 16, 16, 3), + overworld_frame(gEventObjectPic_BreakableRock, 2, 2, 0), + overworld_frame(gEventObjectPic_BreakableRock, 2, 2, 1), + overworld_frame(gEventObjectPic_BreakableRock, 2, 2, 2), + overworld_frame(gEventObjectPic_BreakableRock, 2, 2, 3), }; const struct SpriteFrameImage gEventObjectPicTable_PushableBoulder[] = { @@ -913,15 +913,15 @@ const struct SpriteFrameImage gEventObjectPicTable_PushableBoulder[] = { }; const struct SpriteFrameImage gEventObjectPicTable_MrBrineysBoat[] = { - overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 0), - overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 1), - overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 2), - overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 0), - overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 0), - overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 1), - overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 1), - overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 2), - overworld_frame(gEventObjectPic_MrBrineysBoat, 32, 32, 2), + overworld_frame(gEventObjectPic_MrBrineysBoat, 4, 4, 0), + overworld_frame(gEventObjectPic_MrBrineysBoat, 4, 4, 1), + overworld_frame(gEventObjectPic_MrBrineysBoat, 4, 4, 2), + overworld_frame(gEventObjectPic_MrBrineysBoat, 4, 4, 0), + overworld_frame(gEventObjectPic_MrBrineysBoat, 4, 4, 0), + overworld_frame(gEventObjectPic_MrBrineysBoat, 4, 4, 1), + overworld_frame(gEventObjectPic_MrBrineysBoat, 4, 4, 1), + overworld_frame(gEventObjectPic_MrBrineysBoat, 4, 4, 2), + overworld_frame(gEventObjectPic_MrBrineysBoat, 4, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Truck[] = { @@ -929,27 +929,27 @@ const struct SpriteFrameImage gEventObjectPicTable_Truck[] = { }; const struct SpriteFrameImage gEventObjectPicTable_VigorothCarryingBox[] = { - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 0), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 0), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 0), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 1), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 2), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 1), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 2), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 1), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 2), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 0), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 0), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 0), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 1), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 2), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 1), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 2), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 1), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_VigorothFacingAway[] = { - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 3), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 3), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 3), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), - overworld_frame(gEventObjectPic_Vigoroth, 32, 32, 4), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 3), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 3), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 3), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 4), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 4), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 4), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 4), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 4), + overworld_frame(gEventObjectPic_Vigoroth, 4, 4, 4), }; const struct SpriteFrameImage gEventObjectPicTable_BirchsBag[] = { @@ -957,149 +957,149 @@ const struct SpriteFrameImage gEventObjectPicTable_BirchsBag[] = { }; const struct SpriteFrameImage gEventObjectPicTable_EnemyZigzagoon[] = { - overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 0), - overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 1), - overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 2), - overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 3), - overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 4), - overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 5), - overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 6), - overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 7), - overworld_frame(gEventObjectPic_EnemyZigzagoon, 32, 32, 8), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 4, 4, 0), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 4, 4, 1), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 4, 4, 2), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 4, 4, 3), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 4, 4, 4), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 4, 4, 5), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 4, 4, 6), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 4, 4, 7), + overworld_frame(gEventObjectPic_EnemyZigzagoon, 4, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Poochyena[] = { - overworld_frame(gEventObjectPic_Poochyena, 32, 32, 0), - overworld_frame(gEventObjectPic_Poochyena, 32, 32, 1), - overworld_frame(gEventObjectPic_Poochyena, 32, 32, 2), - overworld_frame(gEventObjectPic_Poochyena, 32, 32, 3), - overworld_frame(gEventObjectPic_Poochyena, 32, 32, 4), - overworld_frame(gEventObjectPic_Poochyena, 32, 32, 5), - overworld_frame(gEventObjectPic_Poochyena, 32, 32, 6), - overworld_frame(gEventObjectPic_Poochyena, 32, 32, 7), - overworld_frame(gEventObjectPic_Poochyena, 32, 32, 8), + overworld_frame(gEventObjectPic_Poochyena, 4, 4, 0), + overworld_frame(gEventObjectPic_Poochyena, 4, 4, 1), + overworld_frame(gEventObjectPic_Poochyena, 4, 4, 2), + overworld_frame(gEventObjectPic_Poochyena, 4, 4, 3), + overworld_frame(gEventObjectPic_Poochyena, 4, 4, 4), + overworld_frame(gEventObjectPic_Poochyena, 4, 4, 5), + overworld_frame(gEventObjectPic_Poochyena, 4, 4, 6), + overworld_frame(gEventObjectPic_Poochyena, 4, 4, 7), + overworld_frame(gEventObjectPic_Poochyena, 4, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Artist[] = { - overworld_frame(gEventObjectPic_Artist, 16, 32, 0), - overworld_frame(gEventObjectPic_Artist, 16, 32, 1), - overworld_frame(gEventObjectPic_Artist, 16, 32, 2), - overworld_frame(gEventObjectPic_Artist, 16, 32, 3), - overworld_frame(gEventObjectPic_Artist, 16, 32, 4), - overworld_frame(gEventObjectPic_Artist, 16, 32, 5), - overworld_frame(gEventObjectPic_Artist, 16, 32, 6), - overworld_frame(gEventObjectPic_Artist, 16, 32, 7), - overworld_frame(gEventObjectPic_Artist, 16, 32, 8), + overworld_frame(gEventObjectPic_Artist, 2, 4, 0), + overworld_frame(gEventObjectPic_Artist, 2, 4, 1), + overworld_frame(gEventObjectPic_Artist, 2, 4, 2), + overworld_frame(gEventObjectPic_Artist, 2, 4, 3), + overworld_frame(gEventObjectPic_Artist, 2, 4, 4), + overworld_frame(gEventObjectPic_Artist, 2, 4, 5), + overworld_frame(gEventObjectPic_Artist, 2, 4, 6), + overworld_frame(gEventObjectPic_Artist, 2, 4, 7), + overworld_frame(gEventObjectPic_Artist, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MayNormal[] = { - overworld_frame(gEventObjectPic_MayNormal, 16, 32, 0), - overworld_frame(gEventObjectPic_MayNormal, 16, 32, 1), - overworld_frame(gEventObjectPic_MayNormal, 16, 32, 2), - overworld_frame(gEventObjectPic_MayNormal, 16, 32, 3), - overworld_frame(gEventObjectPic_MayNormal, 16, 32, 4), - overworld_frame(gEventObjectPic_MayNormal, 16, 32, 5), - overworld_frame(gEventObjectPic_MayNormal, 16, 32, 6), - overworld_frame(gEventObjectPic_MayNormal, 16, 32, 7), - overworld_frame(gEventObjectPic_MayNormal, 16, 32, 8), - overworld_frame(gEventObjectPic_MayRunning, 16, 32, 0), - overworld_frame(gEventObjectPic_MayRunning, 16, 32, 1), - overworld_frame(gEventObjectPic_MayRunning, 16, 32, 2), - overworld_frame(gEventObjectPic_MayRunning, 16, 32, 3), - overworld_frame(gEventObjectPic_MayRunning, 16, 32, 4), - overworld_frame(gEventObjectPic_MayRunning, 16, 32, 5), - overworld_frame(gEventObjectPic_MayRunning, 16, 32, 6), - overworld_frame(gEventObjectPic_MayRunning, 16, 32, 7), - overworld_frame(gEventObjectPic_MayRunning, 16, 32, 8), + overworld_frame(gEventObjectPic_MayNormal, 2, 4, 0), + overworld_frame(gEventObjectPic_MayNormal, 2, 4, 1), + overworld_frame(gEventObjectPic_MayNormal, 2, 4, 2), + overworld_frame(gEventObjectPic_MayNormal, 2, 4, 3), + overworld_frame(gEventObjectPic_MayNormal, 2, 4, 4), + overworld_frame(gEventObjectPic_MayNormal, 2, 4, 5), + overworld_frame(gEventObjectPic_MayNormal, 2, 4, 6), + overworld_frame(gEventObjectPic_MayNormal, 2, 4, 7), + overworld_frame(gEventObjectPic_MayNormal, 2, 4, 8), + overworld_frame(gEventObjectPic_MayRunning, 2, 4, 0), + overworld_frame(gEventObjectPic_MayRunning, 2, 4, 1), + overworld_frame(gEventObjectPic_MayRunning, 2, 4, 2), + overworld_frame(gEventObjectPic_MayRunning, 2, 4, 3), + overworld_frame(gEventObjectPic_MayRunning, 2, 4, 4), + overworld_frame(gEventObjectPic_MayRunning, 2, 4, 5), + overworld_frame(gEventObjectPic_MayRunning, 2, 4, 6), + overworld_frame(gEventObjectPic_MayRunning, 2, 4, 7), + overworld_frame(gEventObjectPic_MayRunning, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MayMachBike[] = { - overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 0), - overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 1), - overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 2), - overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 3), - overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 4), - overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 5), - overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 6), - overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 7), - overworld_frame(gEventObjectPic_MayMachBike, 32, 32, 8), + overworld_frame(gEventObjectPic_MayMachBike, 4, 4, 0), + overworld_frame(gEventObjectPic_MayMachBike, 4, 4, 1), + overworld_frame(gEventObjectPic_MayMachBike, 4, 4, 2), + overworld_frame(gEventObjectPic_MayMachBike, 4, 4, 3), + overworld_frame(gEventObjectPic_MayMachBike, 4, 4, 4), + overworld_frame(gEventObjectPic_MayMachBike, 4, 4, 5), + overworld_frame(gEventObjectPic_MayMachBike, 4, 4, 6), + overworld_frame(gEventObjectPic_MayMachBike, 4, 4, 7), + overworld_frame(gEventObjectPic_MayMachBike, 4, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MayAcroBike[] = { - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 0), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 1), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 2), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 3), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 4), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 5), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 6), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 7), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 8), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 9), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 10), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 11), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 12), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 13), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 14), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 15), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 16), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 17), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 18), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 19), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 20), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 21), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 22), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 23), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 24), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 25), - overworld_frame(gEventObjectPic_MayAcroBike, 32, 32, 26), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 0), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 1), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 2), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 3), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 4), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 5), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 6), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 7), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 8), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 9), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 10), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 11), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 12), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 13), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 14), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 15), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 16), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 17), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 18), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 19), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 20), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 21), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 22), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 23), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 24), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 25), + overworld_frame(gEventObjectPic_MayAcroBike, 4, 4, 26), }; const struct SpriteFrameImage gEventObjectPicTable_MaySurfing[] = { - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 2), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 4), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 0), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 2), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 2), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 4), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 4), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 1), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 3), - overworld_frame(gEventObjectPic_MaySurfing, 32, 32, 5), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 0), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 2), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 4), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 0), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 0), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 2), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 2), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 4), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 4), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 1), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 3), + overworld_frame(gEventObjectPic_MaySurfing, 4, 4, 5), }; const struct SpriteFrameImage gEventObjectPicTable_MayUnderwater[] = { - overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 0), - overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 1), - overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 2), - overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 0), - overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 0), - overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 1), - overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 1), - overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 2), - overworld_frame(gEventObjectPic_MayUnderwater, 32, 32, 2), + overworld_frame(gEventObjectPic_MayUnderwater, 4, 4, 0), + overworld_frame(gEventObjectPic_MayUnderwater, 4, 4, 1), + overworld_frame(gEventObjectPic_MayUnderwater, 4, 4, 2), + overworld_frame(gEventObjectPic_MayUnderwater, 4, 4, 0), + overworld_frame(gEventObjectPic_MayUnderwater, 4, 4, 0), + overworld_frame(gEventObjectPic_MayUnderwater, 4, 4, 1), + overworld_frame(gEventObjectPic_MayUnderwater, 4, 4, 1), + overworld_frame(gEventObjectPic_MayUnderwater, 4, 4, 2), + overworld_frame(gEventObjectPic_MayUnderwater, 4, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_MayFieldMove[] = { - overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 0), - overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 1), - overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 2), - overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 3), - overworld_frame(gEventObjectPic_MayFieldMove, 32, 32, 4), + overworld_frame(gEventObjectPic_MayFieldMove, 4, 4, 0), + overworld_frame(gEventObjectPic_MayFieldMove, 4, 4, 1), + overworld_frame(gEventObjectPic_MayFieldMove, 4, 4, 2), + overworld_frame(gEventObjectPic_MayFieldMove, 4, 4, 3), + overworld_frame(gEventObjectPic_MayFieldMove, 4, 4, 4), }; const struct SpriteFrameImage gEventObjectPicTable_Cameraman[] = { - overworld_frame(gEventObjectPic_Cameraman, 16, 32, 0), - overworld_frame(gEventObjectPic_Cameraman, 16, 32, 1), - overworld_frame(gEventObjectPic_Cameraman, 16, 32, 2), - overworld_frame(gEventObjectPic_Cameraman, 16, 32, 3), - overworld_frame(gEventObjectPic_Cameraman, 16, 32, 4), - overworld_frame(gEventObjectPic_Cameraman, 16, 32, 5), - overworld_frame(gEventObjectPic_Cameraman, 16, 32, 6), - overworld_frame(gEventObjectPic_Cameraman, 16, 32, 7), - overworld_frame(gEventObjectPic_Cameraman, 16, 32, 8), + overworld_frame(gEventObjectPic_Cameraman, 2, 4, 0), + overworld_frame(gEventObjectPic_Cameraman, 2, 4, 1), + overworld_frame(gEventObjectPic_Cameraman, 2, 4, 2), + overworld_frame(gEventObjectPic_Cameraman, 2, 4, 3), + overworld_frame(gEventObjectPic_Cameraman, 2, 4, 4), + overworld_frame(gEventObjectPic_Cameraman, 2, 4, 5), + overworld_frame(gEventObjectPic_Cameraman, 2, 4, 6), + overworld_frame(gEventObjectPic_Cameraman, 2, 4, 7), + overworld_frame(gEventObjectPic_Cameraman, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MovingBox[] = { @@ -1111,309 +1111,309 @@ const struct SpriteFrameImage gEventObjectPicTable_CableCar[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Scientist2[] = { - overworld_frame(gEventObjectPic_Scientist2, 16, 32, 0), - overworld_frame(gEventObjectPic_Scientist2, 16, 32, 1), - overworld_frame(gEventObjectPic_Scientist2, 16, 32, 2), - overworld_frame(gEventObjectPic_Scientist2, 16, 32, 3), - overworld_frame(gEventObjectPic_Scientist2, 16, 32, 4), - overworld_frame(gEventObjectPic_Scientist2, 16, 32, 5), - overworld_frame(gEventObjectPic_Scientist2, 16, 32, 6), - overworld_frame(gEventObjectPic_Scientist2, 16, 32, 7), - overworld_frame(gEventObjectPic_Scientist2, 16, 32, 8), + overworld_frame(gEventObjectPic_Scientist2, 2, 4, 0), + overworld_frame(gEventObjectPic_Scientist2, 2, 4, 1), + overworld_frame(gEventObjectPic_Scientist2, 2, 4, 2), + overworld_frame(gEventObjectPic_Scientist2, 2, 4, 3), + overworld_frame(gEventObjectPic_Scientist2, 2, 4, 4), + overworld_frame(gEventObjectPic_Scientist2, 2, 4, 5), + overworld_frame(gEventObjectPic_Scientist2, 2, 4, 6), + overworld_frame(gEventObjectPic_Scientist2, 2, 4, 7), + overworld_frame(gEventObjectPic_Scientist2, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Man7[] = { - overworld_frame(gEventObjectPic_Man7, 16, 32, 0), - overworld_frame(gEventObjectPic_Man7, 16, 32, 1), - overworld_frame(gEventObjectPic_Man7, 16, 32, 2), - overworld_frame(gEventObjectPic_Man7, 16, 32, 3), - overworld_frame(gEventObjectPic_Man7, 16, 32, 4), - overworld_frame(gEventObjectPic_Man7, 16, 32, 5), - overworld_frame(gEventObjectPic_Man7, 16, 32, 6), - overworld_frame(gEventObjectPic_Man7, 16, 32, 7), - overworld_frame(gEventObjectPic_Man7, 16, 32, 8), + overworld_frame(gEventObjectPic_Man7, 2, 4, 0), + overworld_frame(gEventObjectPic_Man7, 2, 4, 1), + overworld_frame(gEventObjectPic_Man7, 2, 4, 2), + overworld_frame(gEventObjectPic_Man7, 2, 4, 3), + overworld_frame(gEventObjectPic_Man7, 2, 4, 4), + overworld_frame(gEventObjectPic_Man7, 2, 4, 5), + overworld_frame(gEventObjectPic_Man7, 2, 4, 6), + overworld_frame(gEventObjectPic_Man7, 2, 4, 7), + overworld_frame(gEventObjectPic_Man7, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_AquaMemberM[] = { - overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 0), - overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 1), - overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 2), - overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 3), - overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 4), - overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 5), - overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 6), - overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 7), - overworld_frame(gEventObjectPic_AquaMemberM, 16, 32, 8), + overworld_frame(gEventObjectPic_AquaMemberM, 2, 4, 0), + overworld_frame(gEventObjectPic_AquaMemberM, 2, 4, 1), + overworld_frame(gEventObjectPic_AquaMemberM, 2, 4, 2), + overworld_frame(gEventObjectPic_AquaMemberM, 2, 4, 3), + overworld_frame(gEventObjectPic_AquaMemberM, 2, 4, 4), + overworld_frame(gEventObjectPic_AquaMemberM, 2, 4, 5), + overworld_frame(gEventObjectPic_AquaMemberM, 2, 4, 6), + overworld_frame(gEventObjectPic_AquaMemberM, 2, 4, 7), + overworld_frame(gEventObjectPic_AquaMemberM, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_AquaMemberF[] = { - overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 0), - overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 1), - overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 2), - overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 3), - overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 4), - overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 5), - overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 6), - overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 7), - overworld_frame(gEventObjectPic_AquaMemberF, 16, 32, 8), + overworld_frame(gEventObjectPic_AquaMemberF, 2, 4, 0), + overworld_frame(gEventObjectPic_AquaMemberF, 2, 4, 1), + overworld_frame(gEventObjectPic_AquaMemberF, 2, 4, 2), + overworld_frame(gEventObjectPic_AquaMemberF, 2, 4, 3), + overworld_frame(gEventObjectPic_AquaMemberF, 2, 4, 4), + overworld_frame(gEventObjectPic_AquaMemberF, 2, 4, 5), + overworld_frame(gEventObjectPic_AquaMemberF, 2, 4, 6), + overworld_frame(gEventObjectPic_AquaMemberF, 2, 4, 7), + overworld_frame(gEventObjectPic_AquaMemberF, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MagmaMemberM[] = { - overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 0), - overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 1), - overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 2), - overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 3), - overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 4), - overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 5), - overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 6), - overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 7), - overworld_frame(gEventObjectPic_MagmaMemberM, 16, 32, 8), + overworld_frame(gEventObjectPic_MagmaMemberM, 2, 4, 0), + overworld_frame(gEventObjectPic_MagmaMemberM, 2, 4, 1), + overworld_frame(gEventObjectPic_MagmaMemberM, 2, 4, 2), + overworld_frame(gEventObjectPic_MagmaMemberM, 2, 4, 3), + overworld_frame(gEventObjectPic_MagmaMemberM, 2, 4, 4), + overworld_frame(gEventObjectPic_MagmaMemberM, 2, 4, 5), + overworld_frame(gEventObjectPic_MagmaMemberM, 2, 4, 6), + overworld_frame(gEventObjectPic_MagmaMemberM, 2, 4, 7), + overworld_frame(gEventObjectPic_MagmaMemberM, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MagmaMemberF[] = { - overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 0), - overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 1), - overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 2), - overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 3), - overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 4), - overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 5), - overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 6), - overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 7), - overworld_frame(gEventObjectPic_MagmaMemberF, 16, 32, 8), + overworld_frame(gEventObjectPic_MagmaMemberF, 2, 4, 0), + overworld_frame(gEventObjectPic_MagmaMemberF, 2, 4, 1), + overworld_frame(gEventObjectPic_MagmaMemberF, 2, 4, 2), + overworld_frame(gEventObjectPic_MagmaMemberF, 2, 4, 3), + overworld_frame(gEventObjectPic_MagmaMemberF, 2, 4, 4), + overworld_frame(gEventObjectPic_MagmaMemberF, 2, 4, 5), + overworld_frame(gEventObjectPic_MagmaMemberF, 2, 4, 6), + overworld_frame(gEventObjectPic_MagmaMemberF, 2, 4, 7), + overworld_frame(gEventObjectPic_MagmaMemberF, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Sidney[] = { - overworld_frame(gEventObjectPic_Sidney, 16, 32, 0), - overworld_frame(gEventObjectPic_Sidney, 16, 32, 1), - overworld_frame(gEventObjectPic_Sidney, 16, 32, 2), - overworld_frame(gEventObjectPic_Sidney, 16, 32, 0), - overworld_frame(gEventObjectPic_Sidney, 16, 32, 0), - overworld_frame(gEventObjectPic_Sidney, 16, 32, 1), - overworld_frame(gEventObjectPic_Sidney, 16, 32, 1), - overworld_frame(gEventObjectPic_Sidney, 16, 32, 2), - overworld_frame(gEventObjectPic_Sidney, 16, 32, 2), + overworld_frame(gEventObjectPic_Sidney, 2, 4, 0), + overworld_frame(gEventObjectPic_Sidney, 2, 4, 1), + overworld_frame(gEventObjectPic_Sidney, 2, 4, 2), + overworld_frame(gEventObjectPic_Sidney, 2, 4, 0), + overworld_frame(gEventObjectPic_Sidney, 2, 4, 0), + overworld_frame(gEventObjectPic_Sidney, 2, 4, 1), + overworld_frame(gEventObjectPic_Sidney, 2, 4, 1), + overworld_frame(gEventObjectPic_Sidney, 2, 4, 2), + overworld_frame(gEventObjectPic_Sidney, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Phoebe[] = { - overworld_frame(gEventObjectPic_Phoebe, 16, 32, 0), - overworld_frame(gEventObjectPic_Phoebe, 16, 32, 1), - overworld_frame(gEventObjectPic_Phoebe, 16, 32, 2), - overworld_frame(gEventObjectPic_Phoebe, 16, 32, 0), - overworld_frame(gEventObjectPic_Phoebe, 16, 32, 0), - overworld_frame(gEventObjectPic_Phoebe, 16, 32, 1), - overworld_frame(gEventObjectPic_Phoebe, 16, 32, 1), - overworld_frame(gEventObjectPic_Phoebe, 16, 32, 2), - overworld_frame(gEventObjectPic_Phoebe, 16, 32, 2), + overworld_frame(gEventObjectPic_Phoebe, 2, 4, 0), + overworld_frame(gEventObjectPic_Phoebe, 2, 4, 1), + overworld_frame(gEventObjectPic_Phoebe, 2, 4, 2), + overworld_frame(gEventObjectPic_Phoebe, 2, 4, 0), + overworld_frame(gEventObjectPic_Phoebe, 2, 4, 0), + overworld_frame(gEventObjectPic_Phoebe, 2, 4, 1), + overworld_frame(gEventObjectPic_Phoebe, 2, 4, 1), + overworld_frame(gEventObjectPic_Phoebe, 2, 4, 2), + overworld_frame(gEventObjectPic_Phoebe, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Glacia[] = { - overworld_frame(gEventObjectPic_Glacia, 16, 32, 0), - overworld_frame(gEventObjectPic_Glacia, 16, 32, 1), - overworld_frame(gEventObjectPic_Glacia, 16, 32, 2), - overworld_frame(gEventObjectPic_Glacia, 16, 32, 0), - overworld_frame(gEventObjectPic_Glacia, 16, 32, 0), - overworld_frame(gEventObjectPic_Glacia, 16, 32, 1), - overworld_frame(gEventObjectPic_Glacia, 16, 32, 1), - overworld_frame(gEventObjectPic_Glacia, 16, 32, 2), - overworld_frame(gEventObjectPic_Glacia, 16, 32, 2), + overworld_frame(gEventObjectPic_Glacia, 2, 4, 0), + overworld_frame(gEventObjectPic_Glacia, 2, 4, 1), + overworld_frame(gEventObjectPic_Glacia, 2, 4, 2), + overworld_frame(gEventObjectPic_Glacia, 2, 4, 0), + overworld_frame(gEventObjectPic_Glacia, 2, 4, 0), + overworld_frame(gEventObjectPic_Glacia, 2, 4, 1), + overworld_frame(gEventObjectPic_Glacia, 2, 4, 1), + overworld_frame(gEventObjectPic_Glacia, 2, 4, 2), + overworld_frame(gEventObjectPic_Glacia, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Drake[] = { - overworld_frame(gEventObjectPic_Drake, 16, 32, 0), - overworld_frame(gEventObjectPic_Drake, 16, 32, 1), - overworld_frame(gEventObjectPic_Drake, 16, 32, 2), - overworld_frame(gEventObjectPic_Drake, 16, 32, 0), - overworld_frame(gEventObjectPic_Drake, 16, 32, 0), - overworld_frame(gEventObjectPic_Drake, 16, 32, 1), - overworld_frame(gEventObjectPic_Drake, 16, 32, 1), - overworld_frame(gEventObjectPic_Drake, 16, 32, 2), - overworld_frame(gEventObjectPic_Drake, 16, 32, 2), + overworld_frame(gEventObjectPic_Drake, 2, 4, 0), + overworld_frame(gEventObjectPic_Drake, 2, 4, 1), + overworld_frame(gEventObjectPic_Drake, 2, 4, 2), + overworld_frame(gEventObjectPic_Drake, 2, 4, 0), + overworld_frame(gEventObjectPic_Drake, 2, 4, 0), + overworld_frame(gEventObjectPic_Drake, 2, 4, 1), + overworld_frame(gEventObjectPic_Drake, 2, 4, 1), + overworld_frame(gEventObjectPic_Drake, 2, 4, 2), + overworld_frame(gEventObjectPic_Drake, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Roxanne[] = { - overworld_frame(gEventObjectPic_Roxanne, 16, 32, 0), - overworld_frame(gEventObjectPic_Roxanne, 16, 32, 1), - overworld_frame(gEventObjectPic_Roxanne, 16, 32, 2), - overworld_frame(gEventObjectPic_Roxanne, 16, 32, 0), - overworld_frame(gEventObjectPic_Roxanne, 16, 32, 0), - overworld_frame(gEventObjectPic_Roxanne, 16, 32, 1), - overworld_frame(gEventObjectPic_Roxanne, 16, 32, 1), - overworld_frame(gEventObjectPic_Roxanne, 16, 32, 2), - overworld_frame(gEventObjectPic_Roxanne, 16, 32, 2), + overworld_frame(gEventObjectPic_Roxanne, 2, 4, 0), + overworld_frame(gEventObjectPic_Roxanne, 2, 4, 1), + overworld_frame(gEventObjectPic_Roxanne, 2, 4, 2), + overworld_frame(gEventObjectPic_Roxanne, 2, 4, 0), + overworld_frame(gEventObjectPic_Roxanne, 2, 4, 0), + overworld_frame(gEventObjectPic_Roxanne, 2, 4, 1), + overworld_frame(gEventObjectPic_Roxanne, 2, 4, 1), + overworld_frame(gEventObjectPic_Roxanne, 2, 4, 2), + overworld_frame(gEventObjectPic_Roxanne, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Brawly[] = { - overworld_frame(gEventObjectPic_Brawly, 16, 32, 0), - overworld_frame(gEventObjectPic_Brawly, 16, 32, 1), - overworld_frame(gEventObjectPic_Brawly, 16, 32, 2), - overworld_frame(gEventObjectPic_Brawly, 16, 32, 0), - overworld_frame(gEventObjectPic_Brawly, 16, 32, 0), - overworld_frame(gEventObjectPic_Brawly, 16, 32, 1), - overworld_frame(gEventObjectPic_Brawly, 16, 32, 1), - overworld_frame(gEventObjectPic_Brawly, 16, 32, 2), - overworld_frame(gEventObjectPic_Brawly, 16, 32, 2), + overworld_frame(gEventObjectPic_Brawly, 2, 4, 0), + overworld_frame(gEventObjectPic_Brawly, 2, 4, 1), + overworld_frame(gEventObjectPic_Brawly, 2, 4, 2), + overworld_frame(gEventObjectPic_Brawly, 2, 4, 0), + overworld_frame(gEventObjectPic_Brawly, 2, 4, 0), + overworld_frame(gEventObjectPic_Brawly, 2, 4, 1), + overworld_frame(gEventObjectPic_Brawly, 2, 4, 1), + overworld_frame(gEventObjectPic_Brawly, 2, 4, 2), + overworld_frame(gEventObjectPic_Brawly, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Wattson[] = { - overworld_frame(gEventObjectPic_Wattson, 16, 32, 0), - overworld_frame(gEventObjectPic_Wattson, 16, 32, 1), - overworld_frame(gEventObjectPic_Wattson, 16, 32, 2), - overworld_frame(gEventObjectPic_Wattson, 16, 32, 0), - overworld_frame(gEventObjectPic_Wattson, 16, 32, 0), - overworld_frame(gEventObjectPic_Wattson, 16, 32, 1), - overworld_frame(gEventObjectPic_Wattson, 16, 32, 1), - overworld_frame(gEventObjectPic_Wattson, 16, 32, 2), - overworld_frame(gEventObjectPic_Wattson, 16, 32, 2), + overworld_frame(gEventObjectPic_Wattson, 2, 4, 0), + overworld_frame(gEventObjectPic_Wattson, 2, 4, 1), + overworld_frame(gEventObjectPic_Wattson, 2, 4, 2), + overworld_frame(gEventObjectPic_Wattson, 2, 4, 0), + overworld_frame(gEventObjectPic_Wattson, 2, 4, 0), + overworld_frame(gEventObjectPic_Wattson, 2, 4, 1), + overworld_frame(gEventObjectPic_Wattson, 2, 4, 1), + overworld_frame(gEventObjectPic_Wattson, 2, 4, 2), + overworld_frame(gEventObjectPic_Wattson, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Flannery[] = { - overworld_frame(gEventObjectPic_Flannery, 16, 32, 0), - overworld_frame(gEventObjectPic_Flannery, 16, 32, 1), - overworld_frame(gEventObjectPic_Flannery, 16, 32, 2), - overworld_frame(gEventObjectPic_Flannery, 16, 32, 0), - overworld_frame(gEventObjectPic_Flannery, 16, 32, 0), - overworld_frame(gEventObjectPic_Flannery, 16, 32, 1), - overworld_frame(gEventObjectPic_Flannery, 16, 32, 1), - overworld_frame(gEventObjectPic_Flannery, 16, 32, 2), - overworld_frame(gEventObjectPic_Flannery, 16, 32, 2), + overworld_frame(gEventObjectPic_Flannery, 2, 4, 0), + overworld_frame(gEventObjectPic_Flannery, 2, 4, 1), + overworld_frame(gEventObjectPic_Flannery, 2, 4, 2), + overworld_frame(gEventObjectPic_Flannery, 2, 4, 0), + overworld_frame(gEventObjectPic_Flannery, 2, 4, 0), + overworld_frame(gEventObjectPic_Flannery, 2, 4, 1), + overworld_frame(gEventObjectPic_Flannery, 2, 4, 1), + overworld_frame(gEventObjectPic_Flannery, 2, 4, 2), + overworld_frame(gEventObjectPic_Flannery, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Norman[] = { - overworld_frame(gEventObjectPic_Norman, 16, 32, 0), - overworld_frame(gEventObjectPic_Norman, 16, 32, 1), - overworld_frame(gEventObjectPic_Norman, 16, 32, 2), - overworld_frame(gEventObjectPic_Norman, 16, 32, 3), - overworld_frame(gEventObjectPic_Norman, 16, 32, 4), - overworld_frame(gEventObjectPic_Norman, 16, 32, 5), - overworld_frame(gEventObjectPic_Norman, 16, 32, 6), - overworld_frame(gEventObjectPic_Norman, 16, 32, 7), - overworld_frame(gEventObjectPic_Norman, 16, 32, 8), + overworld_frame(gEventObjectPic_Norman, 2, 4, 0), + overworld_frame(gEventObjectPic_Norman, 2, 4, 1), + overworld_frame(gEventObjectPic_Norman, 2, 4, 2), + overworld_frame(gEventObjectPic_Norman, 2, 4, 3), + overworld_frame(gEventObjectPic_Norman, 2, 4, 4), + overworld_frame(gEventObjectPic_Norman, 2, 4, 5), + overworld_frame(gEventObjectPic_Norman, 2, 4, 6), + overworld_frame(gEventObjectPic_Norman, 2, 4, 7), + overworld_frame(gEventObjectPic_Norman, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Winona[] = { - overworld_frame(gEventObjectPic_Winona, 16, 32, 0), - overworld_frame(gEventObjectPic_Winona, 16, 32, 1), - overworld_frame(gEventObjectPic_Winona, 16, 32, 2), - overworld_frame(gEventObjectPic_Winona, 16, 32, 0), - overworld_frame(gEventObjectPic_Winona, 16, 32, 0), - overworld_frame(gEventObjectPic_Winona, 16, 32, 1), - overworld_frame(gEventObjectPic_Winona, 16, 32, 1), - overworld_frame(gEventObjectPic_Winona, 16, 32, 2), - overworld_frame(gEventObjectPic_Winona, 16, 32, 2), + overworld_frame(gEventObjectPic_Winona, 2, 4, 0), + overworld_frame(gEventObjectPic_Winona, 2, 4, 1), + overworld_frame(gEventObjectPic_Winona, 2, 4, 2), + overworld_frame(gEventObjectPic_Winona, 2, 4, 0), + overworld_frame(gEventObjectPic_Winona, 2, 4, 0), + overworld_frame(gEventObjectPic_Winona, 2, 4, 1), + overworld_frame(gEventObjectPic_Winona, 2, 4, 1), + overworld_frame(gEventObjectPic_Winona, 2, 4, 2), + overworld_frame(gEventObjectPic_Winona, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Liza[] = { - overworld_frame(gEventObjectPic_Liza, 16, 32, 0), - overworld_frame(gEventObjectPic_Liza, 16, 32, 1), - overworld_frame(gEventObjectPic_Liza, 16, 32, 2), - overworld_frame(gEventObjectPic_Liza, 16, 32, 0), - overworld_frame(gEventObjectPic_Liza, 16, 32, 0), - overworld_frame(gEventObjectPic_Liza, 16, 32, 1), - overworld_frame(gEventObjectPic_Liza, 16, 32, 1), - overworld_frame(gEventObjectPic_Liza, 16, 32, 2), - overworld_frame(gEventObjectPic_Liza, 16, 32, 2), + overworld_frame(gEventObjectPic_Liza, 2, 4, 0), + overworld_frame(gEventObjectPic_Liza, 2, 4, 1), + overworld_frame(gEventObjectPic_Liza, 2, 4, 2), + overworld_frame(gEventObjectPic_Liza, 2, 4, 0), + overworld_frame(gEventObjectPic_Liza, 2, 4, 0), + overworld_frame(gEventObjectPic_Liza, 2, 4, 1), + overworld_frame(gEventObjectPic_Liza, 2, 4, 1), + overworld_frame(gEventObjectPic_Liza, 2, 4, 2), + overworld_frame(gEventObjectPic_Liza, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Tate[] = { - overworld_frame(gEventObjectPic_Tate, 16, 32, 0), - overworld_frame(gEventObjectPic_Tate, 16, 32, 1), - overworld_frame(gEventObjectPic_Tate, 16, 32, 2), - overworld_frame(gEventObjectPic_Tate, 16, 32, 0), - overworld_frame(gEventObjectPic_Tate, 16, 32, 0), - overworld_frame(gEventObjectPic_Tate, 16, 32, 1), - overworld_frame(gEventObjectPic_Tate, 16, 32, 1), - overworld_frame(gEventObjectPic_Tate, 16, 32, 2), - overworld_frame(gEventObjectPic_Tate, 16, 32, 2), + overworld_frame(gEventObjectPic_Tate, 2, 4, 0), + overworld_frame(gEventObjectPic_Tate, 2, 4, 1), + overworld_frame(gEventObjectPic_Tate, 2, 4, 2), + overworld_frame(gEventObjectPic_Tate, 2, 4, 0), + overworld_frame(gEventObjectPic_Tate, 2, 4, 0), + overworld_frame(gEventObjectPic_Tate, 2, 4, 1), + overworld_frame(gEventObjectPic_Tate, 2, 4, 1), + overworld_frame(gEventObjectPic_Tate, 2, 4, 2), + overworld_frame(gEventObjectPic_Tate, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Wallace[] = { - overworld_frame(gEventObjectPic_Wallace, 16, 32, 0), - overworld_frame(gEventObjectPic_Wallace, 16, 32, 1), - overworld_frame(gEventObjectPic_Wallace, 16, 32, 2), - overworld_frame(gEventObjectPic_Wallace, 16, 32, 3), - overworld_frame(gEventObjectPic_Wallace, 16, 32, 4), - overworld_frame(gEventObjectPic_Wallace, 16, 32, 5), - overworld_frame(gEventObjectPic_Wallace, 16, 32, 6), - overworld_frame(gEventObjectPic_Wallace, 16, 32, 7), - overworld_frame(gEventObjectPic_Wallace, 16, 32, 8), + overworld_frame(gEventObjectPic_Wallace, 2, 4, 0), + overworld_frame(gEventObjectPic_Wallace, 2, 4, 1), + overworld_frame(gEventObjectPic_Wallace, 2, 4, 2), + overworld_frame(gEventObjectPic_Wallace, 2, 4, 3), + overworld_frame(gEventObjectPic_Wallace, 2, 4, 4), + overworld_frame(gEventObjectPic_Wallace, 2, 4, 5), + overworld_frame(gEventObjectPic_Wallace, 2, 4, 6), + overworld_frame(gEventObjectPic_Wallace, 2, 4, 7), + overworld_frame(gEventObjectPic_Wallace, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Steven[] = { - overworld_frame(gEventObjectPic_Steven, 16, 32, 0), - overworld_frame(gEventObjectPic_Steven, 16, 32, 1), - overworld_frame(gEventObjectPic_Steven, 16, 32, 2), - overworld_frame(gEventObjectPic_Steven, 16, 32, 3), - overworld_frame(gEventObjectPic_Steven, 16, 32, 4), - overworld_frame(gEventObjectPic_Steven, 16, 32, 5), - overworld_frame(gEventObjectPic_Steven, 16, 32, 6), - overworld_frame(gEventObjectPic_Steven, 16, 32, 7), - overworld_frame(gEventObjectPic_Steven, 16, 32, 8), + overworld_frame(gEventObjectPic_Steven, 2, 4, 0), + overworld_frame(gEventObjectPic_Steven, 2, 4, 1), + overworld_frame(gEventObjectPic_Steven, 2, 4, 2), + overworld_frame(gEventObjectPic_Steven, 2, 4, 3), + overworld_frame(gEventObjectPic_Steven, 2, 4, 4), + overworld_frame(gEventObjectPic_Steven, 2, 4, 5), + overworld_frame(gEventObjectPic_Steven, 2, 4, 6), + overworld_frame(gEventObjectPic_Steven, 2, 4, 7), + overworld_frame(gEventObjectPic_Steven, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Wally[] = { - overworld_frame(gEventObjectPic_Wally, 16, 32, 0), - overworld_frame(gEventObjectPic_Wally, 16, 32, 1), - overworld_frame(gEventObjectPic_Wally, 16, 32, 2), - overworld_frame(gEventObjectPic_Wally, 16, 32, 3), - overworld_frame(gEventObjectPic_Wally, 16, 32, 4), - overworld_frame(gEventObjectPic_Wally, 16, 32, 5), - overworld_frame(gEventObjectPic_Wally, 16, 32, 6), - overworld_frame(gEventObjectPic_Wally, 16, 32, 7), - overworld_frame(gEventObjectPic_Wally, 16, 32, 8), + overworld_frame(gEventObjectPic_Wally, 2, 4, 0), + overworld_frame(gEventObjectPic_Wally, 2, 4, 1), + overworld_frame(gEventObjectPic_Wally, 2, 4, 2), + overworld_frame(gEventObjectPic_Wally, 2, 4, 3), + overworld_frame(gEventObjectPic_Wally, 2, 4, 4), + overworld_frame(gEventObjectPic_Wally, 2, 4, 5), + overworld_frame(gEventObjectPic_Wally, 2, 4, 6), + overworld_frame(gEventObjectPic_Wally, 2, 4, 7), + overworld_frame(gEventObjectPic_Wally, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RubySapphireLittleBoy[] = { - overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 0), - overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 1), - overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 2), - overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 3), - overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 4), - overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 5), - overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 6), - overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 7), - overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 16, 16, 8), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 2, 2, 0), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 2, 2, 1), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 2, 2, 2), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 2, 2, 3), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 2, 2, 4), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 2, 2, 5), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 2, 2, 6), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 2, 2, 7), + overworld_frame(gEventObjectPic_RubySapphireLittleBoy, 2, 2, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanFishing[] = { - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 3), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 4), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 5), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 6), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 7), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 8), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 9), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 10), - overworld_frame(gEventObjectPic_BrendanFishing, 32, 32, 11), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 3), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 4), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 5), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 6), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 7), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 8), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 9), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 10), + overworld_frame(gEventObjectPic_BrendanFishing, 4, 4, 11), }; const struct SpriteFrameImage gEventObjectPicTable_MayFishing[] = { - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 0), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 1), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 2), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 3), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 4), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 5), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 6), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 7), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 8), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 9), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 10), - overworld_frame(gEventObjectPic_MayFishing, 32, 32, 11), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 0), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 1), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 2), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 3), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 4), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 5), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 6), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 7), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 8), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 9), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 10), + overworld_frame(gEventObjectPic_MayFishing, 4, 4, 11), }; const struct SpriteFrameImage gEventObjectPicTable_HotSpringsOldWoman[] = { - overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 0), - overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 1), - overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 2), - overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 3), - overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 4), - overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 5), - overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 6), - overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 7), - overworld_frame(gEventObjectPic_HotSpringsOldWoman, 16, 32, 8), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 2, 4, 0), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 2, 4, 1), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 2, 4, 2), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 2, 4, 3), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 2, 4, 4), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 2, 4, 5), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 2, 4, 6), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 2, 4, 7), + overworld_frame(gEventObjectPic_HotSpringsOldWoman, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_SSTidal[] = { @@ -1621,63 +1621,63 @@ const struct SpriteFrameImage gEventObjectPicTable_BigRegisteelDoll[] = { }; const struct SpriteFrameImage gEventObjectPicTable_LatiasLatios[] = { - overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 0), - overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 0), - overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 0), - overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 1), - overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 2), - overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 1), - overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 2), - overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 1), - overworld_frame(gEventObjectPic_LatiasLatios, 32, 32, 2), + overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 0), + overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 0), + overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 0), + overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 1), + overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 2), + overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 1), + overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 2), + overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 1), + overworld_frame(gEventObjectPic_LatiasLatios, 4, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Boy5[] = { - overworld_frame(gEventObjectPic_Boy5, 16, 32, 0), - overworld_frame(gEventObjectPic_Boy5, 16, 32, 1), - overworld_frame(gEventObjectPic_Boy5, 16, 32, 2), - overworld_frame(gEventObjectPic_Boy5, 16, 32, 0), - overworld_frame(gEventObjectPic_Boy5, 16, 32, 0), - overworld_frame(gEventObjectPic_Boy5, 16, 32, 1), - overworld_frame(gEventObjectPic_Boy5, 16, 32, 1), - overworld_frame(gEventObjectPic_Boy5, 16, 32, 2), - overworld_frame(gEventObjectPic_Boy5, 16, 32, 2), + overworld_frame(gEventObjectPic_Boy5, 2, 4, 0), + overworld_frame(gEventObjectPic_Boy5, 2, 4, 1), + overworld_frame(gEventObjectPic_Boy5, 2, 4, 2), + overworld_frame(gEventObjectPic_Boy5, 2, 4, 0), + overworld_frame(gEventObjectPic_Boy5, 2, 4, 0), + overworld_frame(gEventObjectPic_Boy5, 2, 4, 1), + overworld_frame(gEventObjectPic_Boy5, 2, 4, 1), + overworld_frame(gEventObjectPic_Boy5, 2, 4, 2), + overworld_frame(gEventObjectPic_Boy5, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_ContestOldMan[] = { - overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 0), - overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 1), - overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 2), - overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 3), - overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 4), - overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 5), - overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 6), - overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 7), - overworld_frame(gEventObjectPic_ContestOldMan, 16, 32, 8), + overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 0), + overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 1), + overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 2), + overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 3), + overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 4), + overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 5), + overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 6), + overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 7), + overworld_frame(gEventObjectPic_ContestOldMan, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanWatering[] = { - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 0), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 2), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 4), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 1), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 3), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 3), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 5), - overworld_frame(gEventObjectPic_BrendanWatering, 32, 32, 5), + overworld_frame(gEventObjectPic_BrendanWatering, 4, 4, 0), + overworld_frame(gEventObjectPic_BrendanWatering, 4, 4, 2), + overworld_frame(gEventObjectPic_BrendanWatering, 4, 4, 4), + overworld_frame(gEventObjectPic_BrendanWatering, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanWatering, 4, 4, 1), + overworld_frame(gEventObjectPic_BrendanWatering, 4, 4, 3), + overworld_frame(gEventObjectPic_BrendanWatering, 4, 4, 3), + overworld_frame(gEventObjectPic_BrendanWatering, 4, 4, 5), + overworld_frame(gEventObjectPic_BrendanWatering, 4, 4, 5), }; const struct SpriteFrameImage gEventObjectPicTable_MayWatering[] = { - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 0), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 2), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 4), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 1), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 1), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 3), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 3), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 5), - overworld_frame(gEventObjectPic_MayWatering, 32, 32, 5), + overworld_frame(gEventObjectPic_MayWatering, 4, 4, 0), + overworld_frame(gEventObjectPic_MayWatering, 4, 4, 2), + overworld_frame(gEventObjectPic_MayWatering, 4, 4, 4), + overworld_frame(gEventObjectPic_MayWatering, 4, 4, 1), + overworld_frame(gEventObjectPic_MayWatering, 4, 4, 1), + overworld_frame(gEventObjectPic_MayWatering, 4, 4, 3), + overworld_frame(gEventObjectPic_MayWatering, 4, 4, 3), + overworld_frame(gEventObjectPic_MayWatering, 4, 4, 5), + overworld_frame(gEventObjectPic_MayWatering, 4, 4, 5), }; const struct SpriteFrameImage gEventObjectPicTable_BrendanDecorating[] = { @@ -1689,75 +1689,75 @@ const struct SpriteFrameImage gEventObjectPicTable_MayDecorating[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Archie[] = { - overworld_frame(gEventObjectPic_Archie, 16, 32, 0), - overworld_frame(gEventObjectPic_Archie, 16, 32, 1), - overworld_frame(gEventObjectPic_Archie, 16, 32, 2), - overworld_frame(gEventObjectPic_Archie, 16, 32, 3), - overworld_frame(gEventObjectPic_Archie, 16, 32, 4), - overworld_frame(gEventObjectPic_Archie, 16, 32, 5), - overworld_frame(gEventObjectPic_Archie, 16, 32, 6), - overworld_frame(gEventObjectPic_Archie, 16, 32, 7), - overworld_frame(gEventObjectPic_Archie, 16, 32, 8), + overworld_frame(gEventObjectPic_Archie, 2, 4, 0), + overworld_frame(gEventObjectPic_Archie, 2, 4, 1), + overworld_frame(gEventObjectPic_Archie, 2, 4, 2), + overworld_frame(gEventObjectPic_Archie, 2, 4, 3), + overworld_frame(gEventObjectPic_Archie, 2, 4, 4), + overworld_frame(gEventObjectPic_Archie, 2, 4, 5), + overworld_frame(gEventObjectPic_Archie, 2, 4, 6), + overworld_frame(gEventObjectPic_Archie, 2, 4, 7), + overworld_frame(gEventObjectPic_Archie, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Maxie[] = { - overworld_frame(gEventObjectPic_Maxie, 16, 32, 0), - overworld_frame(gEventObjectPic_Maxie, 16, 32, 1), - overworld_frame(gEventObjectPic_Maxie, 16, 32, 2), - overworld_frame(gEventObjectPic_Maxie, 16, 32, 3), - overworld_frame(gEventObjectPic_Maxie, 16, 32, 4), - overworld_frame(gEventObjectPic_Maxie, 16, 32, 5), - overworld_frame(gEventObjectPic_Maxie, 16, 32, 6), - overworld_frame(gEventObjectPic_Maxie, 16, 32, 7), - overworld_frame(gEventObjectPic_Maxie, 16, 32, 8), + overworld_frame(gEventObjectPic_Maxie, 2, 4, 0), + overworld_frame(gEventObjectPic_Maxie, 2, 4, 1), + overworld_frame(gEventObjectPic_Maxie, 2, 4, 2), + overworld_frame(gEventObjectPic_Maxie, 2, 4, 3), + overworld_frame(gEventObjectPic_Maxie, 2, 4, 4), + overworld_frame(gEventObjectPic_Maxie, 2, 4, 5), + overworld_frame(gEventObjectPic_Maxie, 2, 4, 6), + overworld_frame(gEventObjectPic_Maxie, 2, 4, 7), + overworld_frame(gEventObjectPic_Maxie, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_KyogreFront[] = { - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 0), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 0), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 0), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 1), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 0), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 0), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 0), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 1), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 1), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 1), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 1), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 1), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 1), }; const struct SpriteFrameImage gEventObjectPicTable_GroudonFront[] = { - overworld_frame(gEventObjectPic_Groudon, 32, 32, 0), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 0), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 0), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 1), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 0), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 0), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 0), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 1), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 1), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 1), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 1), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 1), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 1), }; const struct SpriteFrameImage gEventObjectPicTable_KyogreSide[] = { - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 2), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 2), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 2), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), - overworld_frame(gEventObjectPic_Kyogre, 32, 32, 3), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 2), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 2), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 2), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 3), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 3), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 3), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 3), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 3), + overworld_frame(gEventObjectPic_Kyogre, 4, 4, 3), }; const struct SpriteFrameImage gEventObjectPicTable_GroudonSide[] = { - overworld_frame(gEventObjectPic_Groudon, 32, 32, 2), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 2), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 2), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), - overworld_frame(gEventObjectPic_Groudon, 32, 32, 3), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 2), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 2), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 2), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 3), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 3), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 3), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 3), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 3), + overworld_frame(gEventObjectPic_Groudon, 4, 4, 3), }; const struct SpriteFrameImage gEventObjectPicTable_Fossil[] = { @@ -1777,35 +1777,35 @@ const struct SpriteFrameImage gEventObjectPicTable_Regi[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Skitty[] = { - overworld_frame(gEventObjectPic_Skitty, 16, 16, 0), - overworld_frame(gEventObjectPic_Skitty, 16, 16, 1), - overworld_frame(gEventObjectPic_Skitty, 16, 16, 2), - overworld_frame(gEventObjectPic_Skitty, 16, 16, 0), - overworld_frame(gEventObjectPic_Skitty, 16, 16, 0), - overworld_frame(gEventObjectPic_Skitty, 16, 16, 1), - overworld_frame(gEventObjectPic_Skitty, 16, 16, 1), - overworld_frame(gEventObjectPic_Skitty, 16, 16, 2), - overworld_frame(gEventObjectPic_Skitty, 16, 16, 2), + overworld_frame(gEventObjectPic_Skitty, 2, 2, 0), + overworld_frame(gEventObjectPic_Skitty, 2, 2, 1), + overworld_frame(gEventObjectPic_Skitty, 2, 2, 2), + overworld_frame(gEventObjectPic_Skitty, 2, 2, 0), + overworld_frame(gEventObjectPic_Skitty, 2, 2, 0), + overworld_frame(gEventObjectPic_Skitty, 2, 2, 1), + overworld_frame(gEventObjectPic_Skitty, 2, 2, 1), + overworld_frame(gEventObjectPic_Skitty, 2, 2, 2), + overworld_frame(gEventObjectPic_Skitty, 2, 2, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Kecleon[] = { - overworld_frame(gEventObjectPic_Kecleon, 16, 16, 0), - overworld_frame(gEventObjectPic_Kecleon, 16, 16, 1), - overworld_frame(gEventObjectPic_Kecleon, 16, 16, 2), - overworld_frame(gEventObjectPic_Kecleon, 16, 16, 0), - overworld_frame(gEventObjectPic_Kecleon, 16, 16, 0), - overworld_frame(gEventObjectPic_Kecleon, 16, 16, 1), - overworld_frame(gEventObjectPic_Kecleon, 16, 16, 1), - overworld_frame(gEventObjectPic_Kecleon, 16, 16, 2), - overworld_frame(gEventObjectPic_Kecleon, 16, 16, 2), + overworld_frame(gEventObjectPic_Kecleon, 2, 2, 0), + overworld_frame(gEventObjectPic_Kecleon, 2, 2, 1), + overworld_frame(gEventObjectPic_Kecleon, 2, 2, 2), + overworld_frame(gEventObjectPic_Kecleon, 2, 2, 0), + overworld_frame(gEventObjectPic_Kecleon, 2, 2, 0), + overworld_frame(gEventObjectPic_Kecleon, 2, 2, 1), + overworld_frame(gEventObjectPic_Kecleon, 2, 2, 1), + overworld_frame(gEventObjectPic_Kecleon, 2, 2, 2), + overworld_frame(gEventObjectPic_Kecleon, 2, 2, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Rayquaza[] = { - overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 0), - overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 1), - overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 2), - overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 3), - overworld_frame(gEventObjectPic_Rayquaza, 64, 64, 4), + overworld_frame(gEventObjectPic_Rayquaza, 8, 8, 0), + overworld_frame(gEventObjectPic_Rayquaza, 8, 8, 1), + overworld_frame(gEventObjectPic_Rayquaza, 8, 8, 2), + overworld_frame(gEventObjectPic_Rayquaza, 8, 8, 3), + overworld_frame(gEventObjectPic_Rayquaza, 8, 8, 4), }; const struct SpriteFrameImage gEventObjectPicTable_RayquazaStill[] = { @@ -1821,123 +1821,123 @@ const struct SpriteFrameImage gEventObjectPicTable_RayquazaStill[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Zigzagoon[] = { - overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 0), - overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 1), - overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 2), - overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 0), - overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 0), - overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 1), - overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 1), - overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 2), - overworld_frame(gEventObjectPic_Zigzagoon, 16, 16, 2), + overworld_frame(gEventObjectPic_Zigzagoon, 2, 2, 0), + overworld_frame(gEventObjectPic_Zigzagoon, 2, 2, 1), + overworld_frame(gEventObjectPic_Zigzagoon, 2, 2, 2), + overworld_frame(gEventObjectPic_Zigzagoon, 2, 2, 0), + overworld_frame(gEventObjectPic_Zigzagoon, 2, 2, 0), + overworld_frame(gEventObjectPic_Zigzagoon, 2, 2, 1), + overworld_frame(gEventObjectPic_Zigzagoon, 2, 2, 1), + overworld_frame(gEventObjectPic_Zigzagoon, 2, 2, 2), + overworld_frame(gEventObjectPic_Zigzagoon, 2, 2, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Pikachu[] = { - overworld_frame(gEventObjectPic_Pikachu, 16, 16, 0), - overworld_frame(gEventObjectPic_Pikachu, 16, 16, 1), - overworld_frame(gEventObjectPic_Pikachu, 16, 16, 2), - overworld_frame(gEventObjectPic_Pikachu, 16, 16, 0), - overworld_frame(gEventObjectPic_Pikachu, 16, 16, 0), - overworld_frame(gEventObjectPic_Pikachu, 16, 16, 1), - overworld_frame(gEventObjectPic_Pikachu, 16, 16, 1), - overworld_frame(gEventObjectPic_Pikachu, 16, 16, 2), - overworld_frame(gEventObjectPic_Pikachu, 16, 16, 2), + overworld_frame(gEventObjectPic_Pikachu, 2, 2, 0), + overworld_frame(gEventObjectPic_Pikachu, 2, 2, 1), + overworld_frame(gEventObjectPic_Pikachu, 2, 2, 2), + overworld_frame(gEventObjectPic_Pikachu, 2, 2, 0), + overworld_frame(gEventObjectPic_Pikachu, 2, 2, 0), + overworld_frame(gEventObjectPic_Pikachu, 2, 2, 1), + overworld_frame(gEventObjectPic_Pikachu, 2, 2, 1), + overworld_frame(gEventObjectPic_Pikachu, 2, 2, 2), + overworld_frame(gEventObjectPic_Pikachu, 2, 2, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Azumarill[] = { - overworld_frame(gEventObjectPic_Azumarill, 16, 16, 0), - overworld_frame(gEventObjectPic_Azumarill, 16, 16, 1), - overworld_frame(gEventObjectPic_Azumarill, 16, 16, 2), - overworld_frame(gEventObjectPic_Azumarill, 16, 16, 0), - overworld_frame(gEventObjectPic_Azumarill, 16, 16, 0), - overworld_frame(gEventObjectPic_Azumarill, 16, 16, 1), - overworld_frame(gEventObjectPic_Azumarill, 16, 16, 1), - overworld_frame(gEventObjectPic_Azumarill, 16, 16, 2), - overworld_frame(gEventObjectPic_Azumarill, 16, 16, 2), + overworld_frame(gEventObjectPic_Azumarill, 2, 2, 0), + overworld_frame(gEventObjectPic_Azumarill, 2, 2, 1), + overworld_frame(gEventObjectPic_Azumarill, 2, 2, 2), + overworld_frame(gEventObjectPic_Azumarill, 2, 2, 0), + overworld_frame(gEventObjectPic_Azumarill, 2, 2, 0), + overworld_frame(gEventObjectPic_Azumarill, 2, 2, 1), + overworld_frame(gEventObjectPic_Azumarill, 2, 2, 1), + overworld_frame(gEventObjectPic_Azumarill, 2, 2, 2), + overworld_frame(gEventObjectPic_Azumarill, 2, 2, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Wingull[] = { - overworld_frame(gEventObjectPic_Wingull, 16, 16, 0), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 2), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 4), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 1), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 1), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 3), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 3), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 5), - overworld_frame(gEventObjectPic_Wingull, 16, 16, 5), + overworld_frame(gEventObjectPic_Wingull, 2, 2, 0), + overworld_frame(gEventObjectPic_Wingull, 2, 2, 2), + overworld_frame(gEventObjectPic_Wingull, 2, 2, 4), + overworld_frame(gEventObjectPic_Wingull, 2, 2, 1), + overworld_frame(gEventObjectPic_Wingull, 2, 2, 1), + overworld_frame(gEventObjectPic_Wingull, 2, 2, 3), + overworld_frame(gEventObjectPic_Wingull, 2, 2, 3), + overworld_frame(gEventObjectPic_Wingull, 2, 2, 5), + overworld_frame(gEventObjectPic_Wingull, 2, 2, 5), }; const struct SpriteFrameImage gEventObjectPicTable_TuberMSwimming[] = { - overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 0), - overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 1), - overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 2), - overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 3), - overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 4), - overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 5), - overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 6), - overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 7), - overworld_frame(gEventObjectPic_TuberMSwimming, 16, 16, 8), + overworld_frame(gEventObjectPic_TuberMSwimming, 2, 2, 0), + overworld_frame(gEventObjectPic_TuberMSwimming, 2, 2, 1), + overworld_frame(gEventObjectPic_TuberMSwimming, 2, 2, 2), + overworld_frame(gEventObjectPic_TuberMSwimming, 2, 2, 3), + overworld_frame(gEventObjectPic_TuberMSwimming, 2, 2, 4), + overworld_frame(gEventObjectPic_TuberMSwimming, 2, 2, 5), + overworld_frame(gEventObjectPic_TuberMSwimming, 2, 2, 6), + overworld_frame(gEventObjectPic_TuberMSwimming, 2, 2, 7), + overworld_frame(gEventObjectPic_TuberMSwimming, 2, 2, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Azurill[] = { - overworld_frame(gEventObjectPic_Azurill, 16, 16, 0), - overworld_frame(gEventObjectPic_Azurill, 16, 16, 1), - overworld_frame(gEventObjectPic_Azurill, 16, 16, 2), - overworld_frame(gEventObjectPic_Azurill, 16, 16, 0), - overworld_frame(gEventObjectPic_Azurill, 16, 16, 0), - overworld_frame(gEventObjectPic_Azurill, 16, 16, 1), - overworld_frame(gEventObjectPic_Azurill, 16, 16, 1), - overworld_frame(gEventObjectPic_Azurill, 16, 16, 2), - overworld_frame(gEventObjectPic_Azurill, 16, 16, 2), + overworld_frame(gEventObjectPic_Azurill, 2, 2, 0), + overworld_frame(gEventObjectPic_Azurill, 2, 2, 1), + overworld_frame(gEventObjectPic_Azurill, 2, 2, 2), + overworld_frame(gEventObjectPic_Azurill, 2, 2, 0), + overworld_frame(gEventObjectPic_Azurill, 2, 2, 0), + overworld_frame(gEventObjectPic_Azurill, 2, 2, 1), + overworld_frame(gEventObjectPic_Azurill, 2, 2, 1), + overworld_frame(gEventObjectPic_Azurill, 2, 2, 2), + overworld_frame(gEventObjectPic_Azurill, 2, 2, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Mom[] = { - overworld_frame(gEventObjectPic_Mom, 16, 32, 0), - overworld_frame(gEventObjectPic_Mom, 16, 32, 1), - overworld_frame(gEventObjectPic_Mom, 16, 32, 2), - overworld_frame(gEventObjectPic_Mom, 16, 32, 3), - overworld_frame(gEventObjectPic_Mom, 16, 32, 4), - overworld_frame(gEventObjectPic_Mom, 16, 32, 5), - overworld_frame(gEventObjectPic_Mom, 16, 32, 6), - overworld_frame(gEventObjectPic_Mom, 16, 32, 7), - overworld_frame(gEventObjectPic_Mom, 16, 32, 8), + overworld_frame(gEventObjectPic_Mom, 2, 4, 0), + overworld_frame(gEventObjectPic_Mom, 2, 4, 1), + overworld_frame(gEventObjectPic_Mom, 2, 4, 2), + overworld_frame(gEventObjectPic_Mom, 2, 4, 3), + overworld_frame(gEventObjectPic_Mom, 2, 4, 4), + overworld_frame(gEventObjectPic_Mom, 2, 4, 5), + overworld_frame(gEventObjectPic_Mom, 2, 4, 6), + overworld_frame(gEventObjectPic_Mom, 2, 4, 7), + overworld_frame(gEventObjectPic_Mom, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Scott[] = { - overworld_frame(gEventObjectPic_Scott, 16, 32, 0), - overworld_frame(gEventObjectPic_Scott, 16, 32, 1), - overworld_frame(gEventObjectPic_Scott, 16, 32, 2), - overworld_frame(gEventObjectPic_Scott, 16, 32, 3), - overworld_frame(gEventObjectPic_Scott, 16, 32, 4), - overworld_frame(gEventObjectPic_Scott, 16, 32, 5), - overworld_frame(gEventObjectPic_Scott, 16, 32, 6), - overworld_frame(gEventObjectPic_Scott, 16, 32, 7), - overworld_frame(gEventObjectPic_Scott, 16, 32, 8), + overworld_frame(gEventObjectPic_Scott, 2, 4, 0), + overworld_frame(gEventObjectPic_Scott, 2, 4, 1), + overworld_frame(gEventObjectPic_Scott, 2, 4, 2), + overworld_frame(gEventObjectPic_Scott, 2, 4, 3), + overworld_frame(gEventObjectPic_Scott, 2, 4, 4), + overworld_frame(gEventObjectPic_Scott, 2, 4, 5), + overworld_frame(gEventObjectPic_Scott, 2, 4, 6), + overworld_frame(gEventObjectPic_Scott, 2, 4, 7), + overworld_frame(gEventObjectPic_Scott, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Juan[] = { - overworld_frame(gEventObjectPic_Juan, 16, 32, 0), - overworld_frame(gEventObjectPic_Juan, 16, 32, 1), - overworld_frame(gEventObjectPic_Juan, 16, 32, 2), - overworld_frame(gEventObjectPic_Juan, 16, 32, 3), - overworld_frame(gEventObjectPic_Juan, 16, 32, 4), - overworld_frame(gEventObjectPic_Juan, 16, 32, 5), - overworld_frame(gEventObjectPic_Juan, 16, 32, 6), - overworld_frame(gEventObjectPic_Juan, 16, 32, 7), - overworld_frame(gEventObjectPic_Juan, 16, 32, 8), + overworld_frame(gEventObjectPic_Juan, 2, 4, 0), + overworld_frame(gEventObjectPic_Juan, 2, 4, 1), + overworld_frame(gEventObjectPic_Juan, 2, 4, 2), + overworld_frame(gEventObjectPic_Juan, 2, 4, 3), + overworld_frame(gEventObjectPic_Juan, 2, 4, 4), + overworld_frame(gEventObjectPic_Juan, 2, 4, 5), + overworld_frame(gEventObjectPic_Juan, 2, 4, 6), + overworld_frame(gEventObjectPic_Juan, 2, 4, 7), + overworld_frame(gEventObjectPic_Juan, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_MysteryEventDeliveryman[] = { - overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 0), - overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 1), - overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 2), - overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 0), - overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 0), - overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 1), - overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 1), - overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 2), - overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 16, 32, 2), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 2, 4, 0), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 2, 4, 1), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 2, 4, 2), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 2, 4, 0), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 2, 4, 0), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 2, 4, 1), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 2, 4, 1), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 2, 4, 2), + overworld_frame(gEventObjectPic_MysteryEventDeliveryman, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Statue[] = { @@ -1945,99 +1945,99 @@ const struct SpriteFrameImage gEventObjectPicTable_Statue[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Dusclops[] = { - overworld_frame(gEventObjectPic_Dusclops, 16, 32, 0), - overworld_frame(gEventObjectPic_Dusclops, 16, 32, 1), - overworld_frame(gEventObjectPic_Dusclops, 16, 32, 2), - overworld_frame(gEventObjectPic_Dusclops, 16, 32, 3), - overworld_frame(gEventObjectPic_Dusclops, 16, 32, 4), - overworld_frame(gEventObjectPic_Dusclops, 16, 32, 5), - overworld_frame(gEventObjectPic_Dusclops, 16, 32, 6), - overworld_frame(gEventObjectPic_Dusclops, 16, 32, 7), - overworld_frame(gEventObjectPic_Dusclops, 16, 32, 8), + overworld_frame(gEventObjectPic_Dusclops, 2, 4, 0), + overworld_frame(gEventObjectPic_Dusclops, 2, 4, 1), + overworld_frame(gEventObjectPic_Dusclops, 2, 4, 2), + overworld_frame(gEventObjectPic_Dusclops, 2, 4, 3), + overworld_frame(gEventObjectPic_Dusclops, 2, 4, 4), + overworld_frame(gEventObjectPic_Dusclops, 2, 4, 5), + overworld_frame(gEventObjectPic_Dusclops, 2, 4, 6), + overworld_frame(gEventObjectPic_Dusclops, 2, 4, 7), + overworld_frame(gEventObjectPic_Dusclops, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Kirlia[] = { - overworld_frame(gEventObjectPic_Kirlia, 16, 32, 0), - overworld_frame(gEventObjectPic_Kirlia, 16, 32, 1), - overworld_frame(gEventObjectPic_Kirlia, 16, 32, 2), - overworld_frame(gEventObjectPic_Kirlia, 16, 32, 3), - overworld_frame(gEventObjectPic_Kirlia, 16, 32, 4), - overworld_frame(gEventObjectPic_Kirlia, 16, 32, 5), - overworld_frame(gEventObjectPic_Kirlia, 16, 32, 6), - overworld_frame(gEventObjectPic_Kirlia, 16, 32, 7), - overworld_frame(gEventObjectPic_Kirlia, 16, 32, 8), + overworld_frame(gEventObjectPic_Kirlia, 2, 4, 0), + overworld_frame(gEventObjectPic_Kirlia, 2, 4, 1), + overworld_frame(gEventObjectPic_Kirlia, 2, 4, 2), + overworld_frame(gEventObjectPic_Kirlia, 2, 4, 3), + overworld_frame(gEventObjectPic_Kirlia, 2, 4, 4), + overworld_frame(gEventObjectPic_Kirlia, 2, 4, 5), + overworld_frame(gEventObjectPic_Kirlia, 2, 4, 6), + overworld_frame(gEventObjectPic_Kirlia, 2, 4, 7), + overworld_frame(gEventObjectPic_Kirlia, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_UnionRoomAttendant[] = { - overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 0), - overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 1), - overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 2), - overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 0), - overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 0), - overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 1), - overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 1), - overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 2), - overworld_frame(gEventObjectPic_UnionRoomAttendant, 16, 32, 2), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 2, 4, 0), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 2, 4, 1), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 2, 4, 2), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 2, 4, 0), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 2, 4, 0), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 2, 4, 1), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 2, 4, 1), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 2, 4, 2), + overworld_frame(gEventObjectPic_UnionRoomAttendant, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Sudowoodo[] = { - overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), - overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), - overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 1), - overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), - overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), - overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), - overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 0), - overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 1), - overworld_frame(gEventObjectPic_Sudowoodo, 16, 32, 2), + overworld_frame(gEventObjectPic_Sudowoodo, 2, 4, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 2, 4, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 2, 4, 1), + overworld_frame(gEventObjectPic_Sudowoodo, 2, 4, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 2, 4, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 2, 4, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 2, 4, 0), + overworld_frame(gEventObjectPic_Sudowoodo, 2, 4, 1), + overworld_frame(gEventObjectPic_Sudowoodo, 2, 4, 2), }; const struct SpriteFrameImage gEventObjectPicTable_Mew[] = { - overworld_frame(gEventObjectPic_Mew, 16, 32, 0), - overworld_frame(gEventObjectPic_Mew, 16, 32, 1), - overworld_frame(gEventObjectPic_Mew, 16, 32, 2), - overworld_frame(gEventObjectPic_Mew, 16, 32, 3), - overworld_frame(gEventObjectPic_Mew, 16, 32, 4), - overworld_frame(gEventObjectPic_Mew, 16, 32, 5), - overworld_frame(gEventObjectPic_Mew, 16, 32, 6), - overworld_frame(gEventObjectPic_Mew, 16, 32, 7), - overworld_frame(gEventObjectPic_Mew, 16, 32, 8), + overworld_frame(gEventObjectPic_Mew, 2, 4, 0), + overworld_frame(gEventObjectPic_Mew, 2, 4, 1), + overworld_frame(gEventObjectPic_Mew, 2, 4, 2), + overworld_frame(gEventObjectPic_Mew, 2, 4, 3), + overworld_frame(gEventObjectPic_Mew, 2, 4, 4), + overworld_frame(gEventObjectPic_Mew, 2, 4, 5), + overworld_frame(gEventObjectPic_Mew, 2, 4, 6), + overworld_frame(gEventObjectPic_Mew, 2, 4, 7), + overworld_frame(gEventObjectPic_Mew, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Red[] = { - overworld_frame(gEventObjectPic_Red, 16, 32, 0), - overworld_frame(gEventObjectPic_Red, 16, 32, 1), - overworld_frame(gEventObjectPic_Red, 16, 32, 2), - overworld_frame(gEventObjectPic_Red, 16, 32, 3), - overworld_frame(gEventObjectPic_Red, 16, 32, 4), - overworld_frame(gEventObjectPic_Red, 16, 32, 5), - overworld_frame(gEventObjectPic_Red, 16, 32, 6), - overworld_frame(gEventObjectPic_Red, 16, 32, 7), - overworld_frame(gEventObjectPic_Red, 16, 32, 8), + overworld_frame(gEventObjectPic_Red, 2, 4, 0), + overworld_frame(gEventObjectPic_Red, 2, 4, 1), + overworld_frame(gEventObjectPic_Red, 2, 4, 2), + overworld_frame(gEventObjectPic_Red, 2, 4, 3), + overworld_frame(gEventObjectPic_Red, 2, 4, 4), + overworld_frame(gEventObjectPic_Red, 2, 4, 5), + overworld_frame(gEventObjectPic_Red, 2, 4, 6), + overworld_frame(gEventObjectPic_Red, 2, 4, 7), + overworld_frame(gEventObjectPic_Red, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Leaf[] = { - overworld_frame(gEventObjectPic_Leaf, 16, 32, 0), - overworld_frame(gEventObjectPic_Leaf, 16, 32, 1), - overworld_frame(gEventObjectPic_Leaf, 16, 32, 2), - overworld_frame(gEventObjectPic_Leaf, 16, 32, 3), - overworld_frame(gEventObjectPic_Leaf, 16, 32, 4), - overworld_frame(gEventObjectPic_Leaf, 16, 32, 5), - overworld_frame(gEventObjectPic_Leaf, 16, 32, 6), - overworld_frame(gEventObjectPic_Leaf, 16, 32, 7), - overworld_frame(gEventObjectPic_Leaf, 16, 32, 8), + overworld_frame(gEventObjectPic_Leaf, 2, 4, 0), + overworld_frame(gEventObjectPic_Leaf, 2, 4, 1), + overworld_frame(gEventObjectPic_Leaf, 2, 4, 2), + overworld_frame(gEventObjectPic_Leaf, 2, 4, 3), + overworld_frame(gEventObjectPic_Leaf, 2, 4, 4), + overworld_frame(gEventObjectPic_Leaf, 2, 4, 5), + overworld_frame(gEventObjectPic_Leaf, 2, 4, 6), + overworld_frame(gEventObjectPic_Leaf, 2, 4, 7), + overworld_frame(gEventObjectPic_Leaf, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Deoxys[] = { - overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), - overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), - overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), - overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), - overworld_frame(gEventObjectPic_Deoxys, 32, 32, 1), - overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), - overworld_frame(gEventObjectPic_Deoxys, 32, 32, 1), - overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), - overworld_frame(gEventObjectPic_Deoxys, 32, 32, 0), + overworld_frame(gEventObjectPic_Deoxys, 4, 4, 0), + overworld_frame(gEventObjectPic_Deoxys, 4, 4, 0), + overworld_frame(gEventObjectPic_Deoxys, 4, 4, 0), + overworld_frame(gEventObjectPic_Deoxys, 4, 4, 0), + overworld_frame(gEventObjectPic_Deoxys, 4, 4, 1), + overworld_frame(gEventObjectPic_Deoxys, 4, 4, 0), + overworld_frame(gEventObjectPic_Deoxys, 4, 4, 1), + overworld_frame(gEventObjectPic_Deoxys, 4, 4, 0), + overworld_frame(gEventObjectPic_Deoxys, 4, 4, 0), }; const struct SpriteFrameImage gEventObjectPicTable_BirthIslandStone[] = { @@ -2045,135 +2045,135 @@ const struct SpriteFrameImage gEventObjectPicTable_BirthIslandStone[] = { }; const struct SpriteFrameImage gEventObjectPicTable_Anabel[] = { - overworld_frame(gEventObjectPic_Anabel, 16, 32, 0), - overworld_frame(gEventObjectPic_Anabel, 16, 32, 1), - overworld_frame(gEventObjectPic_Anabel, 16, 32, 2), - overworld_frame(gEventObjectPic_Anabel, 16, 32, 3), - overworld_frame(gEventObjectPic_Anabel, 16, 32, 4), - overworld_frame(gEventObjectPic_Anabel, 16, 32, 5), - overworld_frame(gEventObjectPic_Anabel, 16, 32, 6), - overworld_frame(gEventObjectPic_Anabel, 16, 32, 7), - overworld_frame(gEventObjectPic_Anabel, 16, 32, 8), + overworld_frame(gEventObjectPic_Anabel, 2, 4, 0), + overworld_frame(gEventObjectPic_Anabel, 2, 4, 1), + overworld_frame(gEventObjectPic_Anabel, 2, 4, 2), + overworld_frame(gEventObjectPic_Anabel, 2, 4, 3), + overworld_frame(gEventObjectPic_Anabel, 2, 4, 4), + overworld_frame(gEventObjectPic_Anabel, 2, 4, 5), + overworld_frame(gEventObjectPic_Anabel, 2, 4, 6), + overworld_frame(gEventObjectPic_Anabel, 2, 4, 7), + overworld_frame(gEventObjectPic_Anabel, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Tucker[] = { - overworld_frame(gEventObjectPic_Tucker, 16, 32, 0), - overworld_frame(gEventObjectPic_Tucker, 16, 32, 1), - overworld_frame(gEventObjectPic_Tucker, 16, 32, 2), - overworld_frame(gEventObjectPic_Tucker, 16, 32, 3), - overworld_frame(gEventObjectPic_Tucker, 16, 32, 4), - overworld_frame(gEventObjectPic_Tucker, 16, 32, 5), - overworld_frame(gEventObjectPic_Tucker, 16, 32, 6), - overworld_frame(gEventObjectPic_Tucker, 16, 32, 7), - overworld_frame(gEventObjectPic_Tucker, 16, 32, 8), + overworld_frame(gEventObjectPic_Tucker, 2, 4, 0), + overworld_frame(gEventObjectPic_Tucker, 2, 4, 1), + overworld_frame(gEventObjectPic_Tucker, 2, 4, 2), + overworld_frame(gEventObjectPic_Tucker, 2, 4, 3), + overworld_frame(gEventObjectPic_Tucker, 2, 4, 4), + overworld_frame(gEventObjectPic_Tucker, 2, 4, 5), + overworld_frame(gEventObjectPic_Tucker, 2, 4, 6), + overworld_frame(gEventObjectPic_Tucker, 2, 4, 7), + overworld_frame(gEventObjectPic_Tucker, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Spenser[] = { - overworld_frame(gEventObjectPic_Spenser, 16, 32, 0), - overworld_frame(gEventObjectPic_Spenser, 16, 32, 1), - overworld_frame(gEventObjectPic_Spenser, 16, 32, 2), - overworld_frame(gEventObjectPic_Spenser, 16, 32, 3), - overworld_frame(gEventObjectPic_Spenser, 16, 32, 4), - overworld_frame(gEventObjectPic_Spenser, 16, 32, 5), - overworld_frame(gEventObjectPic_Spenser, 16, 32, 6), - overworld_frame(gEventObjectPic_Spenser, 16, 32, 7), - overworld_frame(gEventObjectPic_Spenser, 16, 32, 8), + overworld_frame(gEventObjectPic_Spenser, 2, 4, 0), + overworld_frame(gEventObjectPic_Spenser, 2, 4, 1), + overworld_frame(gEventObjectPic_Spenser, 2, 4, 2), + overworld_frame(gEventObjectPic_Spenser, 2, 4, 3), + overworld_frame(gEventObjectPic_Spenser, 2, 4, 4), + overworld_frame(gEventObjectPic_Spenser, 2, 4, 5), + overworld_frame(gEventObjectPic_Spenser, 2, 4, 6), + overworld_frame(gEventObjectPic_Spenser, 2, 4, 7), + overworld_frame(gEventObjectPic_Spenser, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Greta[] = { - overworld_frame(gEventObjectPic_Greta, 16, 32, 0), - overworld_frame(gEventObjectPic_Greta, 16, 32, 1), - overworld_frame(gEventObjectPic_Greta, 16, 32, 2), - overworld_frame(gEventObjectPic_Greta, 16, 32, 3), - overworld_frame(gEventObjectPic_Greta, 16, 32, 4), - overworld_frame(gEventObjectPic_Greta, 16, 32, 5), - overworld_frame(gEventObjectPic_Greta, 16, 32, 6), - overworld_frame(gEventObjectPic_Greta, 16, 32, 7), - overworld_frame(gEventObjectPic_Greta, 16, 32, 8), + overworld_frame(gEventObjectPic_Greta, 2, 4, 0), + overworld_frame(gEventObjectPic_Greta, 2, 4, 1), + overworld_frame(gEventObjectPic_Greta, 2, 4, 2), + overworld_frame(gEventObjectPic_Greta, 2, 4, 3), + overworld_frame(gEventObjectPic_Greta, 2, 4, 4), + overworld_frame(gEventObjectPic_Greta, 2, 4, 5), + overworld_frame(gEventObjectPic_Greta, 2, 4, 6), + overworld_frame(gEventObjectPic_Greta, 2, 4, 7), + overworld_frame(gEventObjectPic_Greta, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Noland[] = { - overworld_frame(gEventObjectPic_Noland, 16, 32, 0), - overworld_frame(gEventObjectPic_Noland, 16, 32, 1), - overworld_frame(gEventObjectPic_Noland, 16, 32, 2), - overworld_frame(gEventObjectPic_Noland, 16, 32, 3), - overworld_frame(gEventObjectPic_Noland, 16, 32, 4), - overworld_frame(gEventObjectPic_Noland, 16, 32, 5), - overworld_frame(gEventObjectPic_Noland, 16, 32, 6), - overworld_frame(gEventObjectPic_Noland, 16, 32, 7), - overworld_frame(gEventObjectPic_Noland, 16, 32, 8), + overworld_frame(gEventObjectPic_Noland, 2, 4, 0), + overworld_frame(gEventObjectPic_Noland, 2, 4, 1), + overworld_frame(gEventObjectPic_Noland, 2, 4, 2), + overworld_frame(gEventObjectPic_Noland, 2, 4, 3), + overworld_frame(gEventObjectPic_Noland, 2, 4, 4), + overworld_frame(gEventObjectPic_Noland, 2, 4, 5), + overworld_frame(gEventObjectPic_Noland, 2, 4, 6), + overworld_frame(gEventObjectPic_Noland, 2, 4, 7), + overworld_frame(gEventObjectPic_Noland, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Lucy[] = { - overworld_frame(gEventObjectPic_Lucy, 16, 32, 0), - overworld_frame(gEventObjectPic_Lucy, 16, 32, 1), - overworld_frame(gEventObjectPic_Lucy, 16, 32, 2), - overworld_frame(gEventObjectPic_Lucy, 16, 32, 3), - overworld_frame(gEventObjectPic_Lucy, 16, 32, 4), - overworld_frame(gEventObjectPic_Lucy, 16, 32, 5), - overworld_frame(gEventObjectPic_Lucy, 16, 32, 6), - overworld_frame(gEventObjectPic_Lucy, 16, 32, 7), - overworld_frame(gEventObjectPic_Lucy, 16, 32, 8), + overworld_frame(gEventObjectPic_Lucy, 2, 4, 0), + overworld_frame(gEventObjectPic_Lucy, 2, 4, 1), + overworld_frame(gEventObjectPic_Lucy, 2, 4, 2), + overworld_frame(gEventObjectPic_Lucy, 2, 4, 3), + overworld_frame(gEventObjectPic_Lucy, 2, 4, 4), + overworld_frame(gEventObjectPic_Lucy, 2, 4, 5), + overworld_frame(gEventObjectPic_Lucy, 2, 4, 6), + overworld_frame(gEventObjectPic_Lucy, 2, 4, 7), + overworld_frame(gEventObjectPic_Lucy, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Brandon[] = { - overworld_frame(gEventObjectPic_Brandon, 16, 32, 0), - overworld_frame(gEventObjectPic_Brandon, 16, 32, 1), - overworld_frame(gEventObjectPic_Brandon, 16, 32, 2), - overworld_frame(gEventObjectPic_Brandon, 16, 32, 3), - overworld_frame(gEventObjectPic_Brandon, 16, 32, 4), - overworld_frame(gEventObjectPic_Brandon, 16, 32, 5), - overworld_frame(gEventObjectPic_Brandon, 16, 32, 6), - overworld_frame(gEventObjectPic_Brandon, 16, 32, 7), - overworld_frame(gEventObjectPic_Brandon, 16, 32, 8), + overworld_frame(gEventObjectPic_Brandon, 2, 4, 0), + overworld_frame(gEventObjectPic_Brandon, 2, 4, 1), + overworld_frame(gEventObjectPic_Brandon, 2, 4, 2), + overworld_frame(gEventObjectPic_Brandon, 2, 4, 3), + overworld_frame(gEventObjectPic_Brandon, 2, 4, 4), + overworld_frame(gEventObjectPic_Brandon, 2, 4, 5), + overworld_frame(gEventObjectPic_Brandon, 2, 4, 6), + overworld_frame(gEventObjectPic_Brandon, 2, 4, 7), + overworld_frame(gEventObjectPic_Brandon, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_Lugia[] = { - overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), - overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), - overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), - overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), - overworld_frame(gEventObjectPic_Lugia, 32, 32, 1), - overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), - overworld_frame(gEventObjectPic_Lugia, 32, 32, 1), - overworld_frame(gEventObjectPic_Lugia, 32, 32, 0), - overworld_frame(gEventObjectPic_Lugia, 32, 32, 1), + overworld_frame(gEventObjectPic_Lugia, 4, 4, 0), + overworld_frame(gEventObjectPic_Lugia, 4, 4, 0), + overworld_frame(gEventObjectPic_Lugia, 4, 4, 0), + overworld_frame(gEventObjectPic_Lugia, 4, 4, 0), + overworld_frame(gEventObjectPic_Lugia, 4, 4, 1), + overworld_frame(gEventObjectPic_Lugia, 4, 4, 0), + overworld_frame(gEventObjectPic_Lugia, 4, 4, 1), + overworld_frame(gEventObjectPic_Lugia, 4, 4, 0), + overworld_frame(gEventObjectPic_Lugia, 4, 4, 1), }; const struct SpriteFrameImage gEventObjectPicTable_HoOh[] = { - overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), - overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), - overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), - overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), - overworld_frame(gEventObjectPic_HoOh, 32, 32, 1), - overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), - overworld_frame(gEventObjectPic_HoOh, 32, 32, 1), - overworld_frame(gEventObjectPic_HoOh, 32, 32, 0), - overworld_frame(gEventObjectPic_HoOh, 32, 32, 1), + overworld_frame(gEventObjectPic_HoOh, 4, 4, 0), + overworld_frame(gEventObjectPic_HoOh, 4, 4, 0), + overworld_frame(gEventObjectPic_HoOh, 4, 4, 0), + overworld_frame(gEventObjectPic_HoOh, 4, 4, 0), + overworld_frame(gEventObjectPic_HoOh, 4, 4, 1), + overworld_frame(gEventObjectPic_HoOh, 4, 4, 0), + overworld_frame(gEventObjectPic_HoOh, 4, 4, 1), + overworld_frame(gEventObjectPic_HoOh, 4, 4, 0), + overworld_frame(gEventObjectPic_HoOh, 4, 4, 1), }; const struct SpriteFrameImage gEventObjectPicTable_RubySapphireBrendan[] = { - overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 0), - overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 1), - overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 2), - overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 3), - overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 4), - overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 5), - overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 6), - overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 7), - overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 16, 32, 8), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 2, 4, 0), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 2, 4, 1), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 2, 4, 2), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 2, 4, 3), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 2, 4, 4), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 2, 4, 5), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 2, 4, 6), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 2, 4, 7), + overworld_frame(gEventObjectPic_RubySapphireBrendanNormal, 2, 4, 8), }; const struct SpriteFrameImage gEventObjectPicTable_RubySapphireMay[] = { - overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 0), - overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 1), - overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 2), - overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 3), - overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 4), - overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 5), - overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 6), - overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 7), - overworld_frame(gEventObjectPic_RubySapphireMayNormal, 16, 32, 8), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 0), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 1), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 2), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 3), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 4), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 5), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 6), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 7), + overworld_frame(gEventObjectPic_RubySapphireMayNormal, 2, 4, 8), }; #endif //GUARD_EVENT_OBJECT_PIC_TABLES_H diff --git a/src/data/field_event_obj/field_effect_objects.h b/src/data/field_event_obj/field_effect_objects.h index e8d15918f..45a498dac 100755 --- a/src/data/field_event_obj/field_effect_objects.h +++ b/src/data/field_event_obj/field_effect_objects.h @@ -41,11 +41,11 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {0xFFFF, 0x const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_64x32, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, oamc_shadow}; const struct SpriteFrameImage gFieldEffectObjectPicTable_TallGrass[] = { - overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 0), - overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 1), - overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 2), - overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 3), - overworld_frame(gFieldEffectObjectPic_TallGrass, 16, 16, 4), + overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850CA84[] = @@ -66,11 +66,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_TallGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_TallGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_TallGrass, gFieldEffectObjectPicTable_TallGrass, gDummySpriteAffineAnimTable, unc_grass_normal}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Ripple[] = { - overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 0), - overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 1), - overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 2), - overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 3), - overworld_frame(gFieldEffectObjectPic_Ripple, 16, 16, 4), + overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Ripple, 2, 2, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850CAE0[] = @@ -94,11 +94,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Ripple[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Ripple = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Ripple, gFieldEffectObjectPicTable_Ripple, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Ash[] = { - overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 0), - overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 1), - overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 2), - overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 3), - overworld_frame(gFieldEffectObjectPic_Ash, 16, 16, 4), + overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Ash, 2, 2, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850CB48[] = @@ -119,9 +119,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Ash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Ash = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Ash, gFieldEffectObjectPicTable_Ash, gDummySpriteAffineAnimTable, sub_8155460}; const struct SpriteFrameImage gFieldEffectObjectPicTable_SurfBlob[] = { - overworld_frame(gFieldEffectObjectPic_SurfBlob, 32, 32, 0), - overworld_frame(gFieldEffectObjectPic_SurfBlob, 32, 32, 1), - overworld_frame(gFieldEffectObjectPic_SurfBlob, 32, 32, 2), + overworld_frame(gFieldEffectObjectPic_SurfBlob, 4, 4, 0), + overworld_frame(gFieldEffectObjectPic_SurfBlob, 4, 4, 1), + overworld_frame(gFieldEffectObjectPic_SurfBlob, 4, 4, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850CB94[] = @@ -159,14 +159,14 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_SurfBlob[] = const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_SurfBlob, gFieldEffectObjectPicTable_SurfBlob, gDummySpriteAffineAnimTable, sub_8155658}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Arrow[] = { - overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 0), - overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 1), - overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 2), - overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 3), - overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 4), - overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 5), - overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 6), - overworld_frame(gFieldEffectObjectPic_Arrow, 16, 16, 7), + overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 5), + overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 6), + overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 7), }; const union AnimCmd gFieldEffectObjectImageAnim_850CC1C[] = @@ -402,10 +402,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeTireTracks[] = const struct SpriteTemplate gFieldEffectObjectTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeTireTracks, gFieldEffectObjectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, sub_8154C60}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopBigSplash[] = { - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 16, 16, 0), - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 16, 16, 1), - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 16, 16, 2), - overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 16, 16, 3), + overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_BikeHopBigSplash, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CE7C[] = @@ -425,8 +425,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopBigSplash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopBigSplash = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_BikeHopBigSplash, gFieldEffectObjectPicTable_BikeHopBigSplash, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Splash[] = { - overworld_frame(gFieldEffectObjectPic_Splash, 16, 8, 0), - overworld_frame(gFieldEffectObjectPic_Splash, 16, 8, 1), + overworld_frame(gFieldEffectObjectPic_Splash, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_Splash, 2, 1, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850CEBC[] = @@ -458,9 +458,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Splash[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Splash = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Splash, gFieldEffectObjectPicTable_Splash, gDummySpriteAffineAnimTable, sub_8154D90}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopSmallSplash[] = { - overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 16, 8, 0), - overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 16, 8, 1), - overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 16, 8, 2), + overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_BikeHopSmallSplash, 2, 1, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850CF24[] = @@ -533,14 +533,14 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16 = {0xFFFF, 0x10 const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown17[] = { obj_frame_tiles(gFieldEffectObjectPic_Unknown16_5), - overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 0), - overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 1), - overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 2), - overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 3), - overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 4), - overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 5), - overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 6), - overworld_frame(gFieldEffectObjectPic_Unknown17, 16, 16, 7), + overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 5), + overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 6), + overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 7), }; const union AnimCmd gFieldEffectObjectImageAnim_850D05C[] = @@ -736,13 +736,13 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BerryTreeGrowthSpark const struct SpriteTemplate gFieldEffectObjectTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle, gFieldEffectObjectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_TreeDisguise[] = { - overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 0), - overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 1), - overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 2), - overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 3), - overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 4), - overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 5), - overworld_frame(gFieldEffectObjectPic_TreeDisguise, 16, 32, 6), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 0), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 1), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 2), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 3), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 4), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 5), + overworld_frame(gFieldEffectObjectPic_TreeDisguise, 2, 4, 6), }; const union AnimCmd gFieldEffectObjectImageAnim_850D37C[] = @@ -772,13 +772,13 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_TreeDisguise[] = const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, sub_8155C88}; const struct SpriteFrameImage gFieldEffectObjectPicTable_MountainDisguise[] = { - overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 0), - overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 1), - overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 2), - overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 3), - overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 4), - overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 5), - overworld_frame(gFieldEffectObjectPic_MountainDisguise, 16, 32, 6), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 0), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 1), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 2), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 3), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 4), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 5), + overworld_frame(gFieldEffectObjectPic_MountainDisguise, 2, 4, 6), }; const union AnimCmd gFieldEffectObjectImageAnim_850D3FC[] = @@ -808,13 +808,13 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_MountainDisguise[] = const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_MountainDisguise, gFieldEffectObjectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, sub_8155C88}; const struct SpriteFrameImage gFieldEffectObjectPicTable_SandDisguisePlaceholder[] = { - overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 0), - overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 1), - overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 2), - overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 3), - overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 4), - overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 5), - overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 16, 32, 6), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 0), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 1), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 2), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 3), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 4), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 5), + overworld_frame(gFieldEffectObjectPic_SandDisguisePlaceholder, 2, 4, 6), }; const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_TreeDisguise, gFieldEffectObjectPicTable_SandDisguisePlaceholder, gDummySpriteAffineAnimTable, sub_8155C88}; @@ -837,8 +837,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bird[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Bird = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_Bird, gFieldEffectObjectPicTable_Bird, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; const struct SpriteFrameImage gFieldEffectObjectPicTable_ShortGrass[] = { - overworld_frame(gFieldEffectObjectPic_ShortGrass, 16, 16, 0), - overworld_frame(gFieldEffectObjectPic_ShortGrass, 16, 16, 1), + overworld_frame(gFieldEffectObjectPic_ShortGrass, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_ShortGrass, 2, 2, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850D4D0[] = @@ -873,11 +873,11 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_HotSpringsWater[] = const struct SpriteTemplate gFieldEffectObjectTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_HotSpringsWater, gFieldEffectObjectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, sub_8155158}; const struct SpriteFrameImage gFieldEffectObjectPicTable_JumpOutOfAsh[] = { - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 0), - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 1), - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 2), - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 3), - overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 16, 16, 4), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_JumpOutOfAsh, 2, 2, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850D54C[] = @@ -925,14 +925,14 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown33[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown33 = {0xFFFF, 0x100D, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown33, gFieldEffectObjectPicTable_Unknown33, gDummySpriteAffineAnimTable, sub_80B7A58}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Bubbles[] = { - overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 0), - overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 1), - overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 2), - overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 3), - overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 4), - overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 5), - overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 6), - overworld_frame(gFieldEffectObjectPic_Bubbles, 16, 32, 7), + overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 0), + overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 1), + overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 2), + overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 3), + overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 4), + overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 5), + overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 6), + overworld_frame(gFieldEffectObjectPic_Bubbles, 2, 4, 7), }; const union AnimCmd gFieldEffectObjectImageAnim_850D624[] = @@ -987,7 +987,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Rayquaza[] = { }; const struct SpriteFrameImage gFieldEffectObjectPicTable_Rayquaza[] = { - {.data = (u8*)gEventObjectPic_Rayquaza, .size = ((64*64)/2) /4} + overworld_frame(gEventObjectPic_Rayquaza, 4, 4, 0), }; const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_32x32, gFieldEffectObjectImageAnimTable_Rayquaza, gFieldEffectObjectPicTable_Rayquaza, gDummySpriteAffineAnimTable, sub_8155F80}; -- cgit v1.2.3 From 1616c254d21b216ecf652461a0cb0b7772450651 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 8 Sep 2018 22:33:07 +0200 Subject: Swap_InitAllSprites done --- src/battle_factory.c | 805 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 761 insertions(+), 44 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index 1609658f3..6324f4040 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -34,8 +34,22 @@ #define MENU_OPTIONS_COUNT 3 #define SELECTABLE_MONS_COUNT 6 + #define TAG_PAL_BALL_GREY 0x64 #define TAG_PAL_BALL_SELECTED 0x65 +#define TAG_PAL_66 0x66 +#define TAG_PAL_67 0x67 + +#define TAG_TILE_64 0x64 +#define TAG_TILE_65 0x65 +#define TAG_TILE_66 0x66 +#define TAG_TILE_67 0x67 +#define TAG_TILE_68 0x68 +#define TAG_TILE_69 0x69 +#define TAG_TILE_6A 0x6A +#define TAG_TILE_6B 0x6B +#define TAG_TILE_6C 0x6C +#define TAG_TILE_6D 0x6D struct FactorySelecteableMon { @@ -74,29 +88,21 @@ struct FactorySelectMonsStruct u8 unk2A9; }; +// 'Action' refers to the Cancel, Pknm for swap windows. + struct FactorySwapMonsStruct { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - u8 unk6; - u8 unk7; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - u8 unkC; - u8 unkD; - u8 unkE; - u8 unkF; - u8 unk10; - u8 unk11; + u8 menuCursorPos; + u8 menuCursor1SpriteId; + u8 menuCursor2SpriteId; + u8 cursorPos; + u8 cursorSpriteId; + u8 ballSpriteIds[3]; + u8 unk8[2][3]; + u8 unkE[2][2]; u8 unk12; u8 unk13; - u8 unk14; + u8 actionsState; bool8 fromSummaryScreen; u8 yesNoCursorPos; u8 unk17; @@ -109,7 +115,7 @@ struct FactorySwapMonsStruct u8 unk1E; u8 unk1F; u8 unk20; - u8 unk21; + u8 palBlendTaskId; u8 unk22; u8 unk23; u16 unk24; @@ -169,9 +175,7 @@ u8 sub_81A6F70(u8 battleMode, u8 lvlMode); u8 sub_81A6CA8(u8 arg0, u8 arg1); static bool32 Select_AreSpeciesValid(u16 monSetId); void sub_819E538(void); -void sub_819DC1C(void); void sub_819E9E0(void); -void sub_819EE08(void); void sub_819EAC0(void); void Swap_UpdateYesNoCursorPosition(s8 direction); void Swap_UpdateMenuCursorPosition(s8 direction); @@ -179,14 +183,26 @@ void sub_819EA64(u8 windowId); void sub_819D770(u8 taskId); void Task_HandleSwapScreenChooseMons(u8 taskId); void sub_819D588(u8 taskId); -void Swap_PrintOnYesNoQuestionWindow(const u8 *str); +void Swap_PrintOnInfoWindow(const u8 *str); void Swap_ShowMenuOptions(void); void Swap_PrintMonSpecies(void); +void Swap_PrintMonSpecies2(void); +void Swap_PrintMonSpecies3(void); void Swap_PrintMonCategory(void); +void Swap_InitAllSprites(void); +void Swap_PrintPkmnSwap(void); +void sub_819EADC(void); +void sub_819EAF8(void); +void CB2_InitSwapScreen(void); +void Swap_ShowSummaryMonSprite(void); void Swap_UpdateActionCursorPosition(s8 direction); void Swap_UpdateBallCursorPosition(s8 direction); void Swap_RunMenuOptionFunc(u8 taskId); void sub_819F184(u8 taskId); +void Swap_PrintActionStrings(void); +void Swap_PrintActionStrings2(void); +void Swap_PrintActionStrings3(u8 field); +void sub_819F048(u8 field); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -224,25 +240,25 @@ const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbap const struct SpriteSheet gUnknown_086103BC[] = { - {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), 0x65}, - {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), 0x66}, - {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), 0x67}, - {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), 0x6D}, + {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), TAG_TILE_65}, + {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), TAG_TILE_66}, + {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), TAG_TILE_67}, + {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), TAG_TILE_6D}, {}, }; const struct CompressedSpriteSheet gUnknown_086103E4[] = { - {gUnknown_085B18AC, 0x800, 0x64}, + {gUnknown_085B18AC, 0x800, TAG_TILE_64}, {}, }; const struct SpritePalette gUnknown_086103F4[] = { - {gUnknown_0860F13C, 0x64}, - {gUnknown_0860F15C, 0x65}, - {gUnknown_0860F17C, 0x66}, - {gUnknown_0861039C, 0x67}, + {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, + {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, + {gUnknown_0860F17C, TAG_PAL_66}, + {gUnknown_0861039C, TAG_PAL_67}, {}, }; @@ -254,8 +270,11 @@ u8 (* const sSelect_MenuOptionFuncs[])(void) = }; extern const struct BgTemplate gUnknown_08610428[3]; +extern const struct BgTemplate gUnknown_086108B8[4]; extern const struct WindowTemplate gUnknown_08610434[]; +extern const struct WindowTemplate gUnknown_086108C8[]; extern const u16 gUnknown_0861046C[]; +extern const u16 gUnknown_08610918[]; extern const struct SpriteTemplate gUnknown_086105D8; extern const struct SpriteTemplate gUnknown_086105F0; extern const struct SpriteTemplate gUnknown_08610608; @@ -263,6 +282,9 @@ extern const struct SpriteTemplate gUnknown_08610620; extern const struct SpriteTemplate gUnknown_08610638; extern const u8 gUnknown_08610479[]; extern const u8 gUnknown_08610476[]; +extern const struct SpritePalette gUnknown_086106B0[]; +extern const struct SpriteSheet gUnknown_08610650[]; +extern const struct CompressedSpriteSheet gUnknown_086106A0[]; // gfx extern const u8 gFrontierFactorySelectMenu_Gfx[]; @@ -284,6 +306,8 @@ extern const u8 gText_Yes2[]; extern const u8 gText_No2[]; extern const u8 gText_QuitSwapping[]; extern const u8 gText_AcceptThisPkmn[]; +extern const u8 gText_SelectPkmnToAccept[]; +extern const u8 gText_SelectPkmnToSwap[]; // code void sub_819A44C(struct Sprite *sprite) @@ -1486,7 +1510,9 @@ static void Task_SelectBlendPalette(u8 taskId) } } -void sub_819C7E0(void) +// Swap Screen's section begins here. + +void Swap_CB2(void) { AnimateSprites(); BuildOamBuffer(); @@ -1495,7 +1521,7 @@ void sub_819C7E0(void) RunTasks(); } -void sub_819C7FC(void) +void Swap_VblankCb(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -1526,7 +1552,7 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen case 7: if (!gPaletteFade.active) { - DestroyTask(sFactorySwapScreen->unk21); + DestroyTask(sFactorySwapScreen->palBlendTaskId); sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); sub_819E538(); FREE_AND_SET_NULL(gUnknown_0203CE40); @@ -1541,7 +1567,7 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen DestroyTask(taskId); sFactorySwapScreen->fromSummaryScreen = TRUE; sFactorySwapScreen->unk24 = gPlttBufferUnfaded[244]; - ShowPokemonSummaryScreen(0, gPlayerParty, sFactorySwapScreen->unk3, 3 - 1, sub_819DC1C); + ShowPokemonSummaryScreen(0, gPlayerParty, sFactorySwapScreen->cursorPos, 3 - 1, CB2_InitSwapScreen); break; } } @@ -1567,7 +1593,7 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen case 1: if (sFactorySwapScreen->unk20 == 1) { - sFactorySwapScreen->unk13 = sFactorySwapScreen->unk3; + sFactorySwapScreen->unk13 = sFactorySwapScreen->cursorPos; sub_819C810(); } gTasks[taskId].data[0]++; @@ -1579,7 +1605,7 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen case 3: if (!UpdatePaletteFade()) { - DestroyTask(sFactorySwapScreen->unk21); + DestroyTask(sFactorySwapScreen->palBlendTaskId); sub_819E538(); FREE_AND_SET_NULL(gUnknown_0203CE40); FREE_AND_SET_NULL(gUnknown_0203CE44); @@ -1672,7 +1698,7 @@ void sub_819CC24(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - Swap_PrintOnYesNoQuestionWindow(gText_QuitSwapping); + Swap_PrintOnInfoWindow(gText_QuitSwapping); sFactorySwapScreen->unk20 = 0; gTasks[taskId].data[0] = 4; gTasks[taskId].data[6] = (u32)(sub_819CBDC) >> 16; @@ -1704,7 +1730,7 @@ void sub_819CCD4(u8 taskId) if (gTasks[taskId].data[0] == 0) { sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); - Swap_PrintOnYesNoQuestionWindow(gText_AcceptThisPkmn); + Swap_PrintOnInfoWindow(gText_AcceptThisPkmn); sFactorySwapScreen->unk20 = 1; gTasks[taskId].data[0] = 4; gTasks[taskId].data[6] = (u32)(sub_819CC74) >> 16; @@ -1777,7 +1803,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) { PlaySE(SE_SELECT); sFactorySwapScreen->unk22 = 0; - sub_819EE08(); + Swap_PrintMonSpecies2(); sub_819EAC0(); sub_819F184(taskId); } @@ -1785,7 +1811,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) { PlaySE(SE_SELECT); sFactorySwapScreen->unk22 = 0; - sub_819EE08(); + Swap_PrintMonSpecies2(); sub_819EAC0(); gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 16; gTasks[taskId].data[7] = (u32)(sub_819CC24); @@ -1821,7 +1847,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) } } -void sub_819CF54(u8 taskId) +void Task_SwapBlendPalette(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1876,7 +1902,7 @@ void sub_819CF54(u8 taskId) } } -void sub_819D064(u8 taskId) +void Task_SwapBlendPalette2(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1906,3 +1932,694 @@ void sub_819D064(u8 taskId) break; } } + +void sub_819D12C(u8 taskId) +{ + s8 i; + u8 var_2C; + bool8 r7; + + switch (gTasks[taskId].data[0]) + { + case 0: + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[0] = 1; + break; + case 1: + var_2C = 0; + for (i = 2; i >= 0; i--) + { + if (i != 2) + { + u8 posX = var_2C - gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; + if (posX == 16 || gTasks[taskId].data[i + 2] == 1) + { + var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x += 10; + } + else if (posX > 16) + { + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[i + 1]].pos1.x - 48; + } + } + else + { + var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x += 10; + } + + if (gTasks[taskId].data[i + 1] == 1) + { + if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x > (i * 48) + 72) + { + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = (i * 48) + 72; + r7 = TRUE; + } + else if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x == (i * 48) + 72) + { + r7 = TRUE; + } + else + { + r7 = FALSE; + } + } + else + { + r7 = FALSE; + } + + if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x - 16 > 240) + { + var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; + gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = -16; + if (sFactorySwapScreen->actionsState == 1) + gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); + else + gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); + + gTasks[taskId].data[i + 1] = 1; + } + } + if (r7 == TRUE) + DestroyTask(taskId); + break; + } +} + +void sub_819D324(u8 taskId) +{ + u8 i, j; + s32 posX = 0; + s8 r4 = gTasks[taskId].data[3]; + bool8 r1; + s16 currPosX; + u8 taskId2; + + if (gTasks[taskId].data[2] == 1) + r4 *= -1; + + switch (gTasks[taskId].data[0]) + { + case 0: + currPosX = gSprites[sFactorySwapScreen->unk8[0][0]].pos1.x; + if (!gTasks[taskId].data[2]) + { + if (currPosX + r4 < 240) + { + r1 = TRUE; + } + else + { + r1 = FALSE; + posX = 240; + } + } + else + { + if (currPosX + r4 > 160) + { + r1 = TRUE; + } + else + { + r1 = FALSE; + posX = 160; + } + } + + if (r1 == TRUE) + { + for (i = 0; i < 3; i++) + { + for (j = 0; j < 2; j++) + gSprites[sFactorySwapScreen->unk8[j][i]].pos1.x += r4; + } + } + else + { + for (j = 0; j < 2; j++) + { + gSprites[sFactorySwapScreen->unk8[j][0]].pos1.x = posX; + gSprites[sFactorySwapScreen->unk8[j][1]].pos1.x = posX + 16; + gSprites[sFactorySwapScreen->unk8[j][2]].pos1.x = posX + 48; + } + taskId2 = gTasks[taskId].data[1]; + gTasks[taskId2].data[3] = 1; + DestroyTask(taskId); + } + break; + case 1: + currPosX = gSprites[sFactorySwapScreen->unkE[0][0]].pos1.x; + if (!gTasks[taskId].data[2]) + { + if (currPosX + r4 < 240) + { + r1 = TRUE; + } + else + { + r1 = FALSE; + posX = 240; + } + } + else + { + if (currPosX + r4 > 192) + { + r1 = TRUE; + } + else + { + r1 = FALSE; + posX = 192; + } + } + + if (r1 == TRUE) + { + for (i = 0; i < 2; i++) + { + for (j = 0; j < 2; j++) + gSprites[sFactorySwapScreen->unkE[j][i]].pos1.x += r4; + } + } + else + { + for (j = 0; j < 2; j++) + { + gSprites[sFactorySwapScreen->unkE[j][0]].pos1.x = posX; + gSprites[sFactorySwapScreen->unkE[j][1]].pos1.x = posX + 16; + } + taskId2 = gTasks[taskId].data[1]; + gTasks[taskId2].data[4] = 1; + DestroyTask(taskId); + } + break; + } +} + +void sub_819D588(u8 taskId) +{ + u8 anotherTaskId; + u16 loPtr, hiPtr; + + switch (gTasks[taskId].data[0]) + { + case 0: + LoadPalette(gUnknown_08610918, 0xE0, 0xA); + Swap_PrintActionStrings(); + PutWindowTilemap(5); + gTasks[taskId].data[0]++; + break; + case 1: + sub_819EA64(3); + gTasks[taskId].data[0]++; + break; + case 2: + BeginNormalPaletteFade(0x4000, 0, 0, 0x10, gUnknown_0860F13C[37]); + gTasks[taskId].data[0]++; + break; + case 3: + if (!gPaletteFade.active) + { + FillWindowPixelBuffer(5, 0); + CopyWindowToVram(5, 2); + if (sFactorySwapScreen->actionsState == 1) + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[3] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 0; + gTasks[anotherTaskId].data[2] = 0; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[2] = 5; + gTasks[taskId].data[0]++; + } + else + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[3] = 1; + gTasks[taskId].data[4] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 1; + gTasks[anotherTaskId].data[2] = 0; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[0] += 2; + } + } + break; + case 4: + if (gTasks[taskId].data[2] == 0) + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[4] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 1; + gTasks[anotherTaskId].data[2] = 0; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[0]++; + } + else + { + gTasks[taskId].data[2]--; + } + break; + case 5: + if (gTasks[taskId].data[3] == 1 && gTasks[taskId].data[4] == 1) + { + gTasks[taskId].data[0] = gTasks[taskId].data[5]; + loPtr = gTasks[taskId].data[6]; + hiPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void *)((loPtr << 0x10) | (hiPtr)); + } + break; + } +} + +void sub_819D770(u8 taskId) +{ + u8 anotherTaskId; + u16 loPtr, hiPtr; + if (sFactorySwapScreen->unk30 == 1) + return; + + switch (gTasks[taskId].data[0]) + { + case 0: + if (sFactorySwapScreen->actionsState == 1) + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[3] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 0; + gTasks[anotherTaskId].data[2] = 1; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[2] = 10; + gTasks[taskId].data[0]++; + } + else + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[3] = 1; + gTasks[taskId].data[4] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 1; + gTasks[anotherTaskId].data[2] = 1; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[0] += 2; + } + break; + case 1: + if (gTasks[taskId].data[2] == 0) + { + anotherTaskId = CreateTask(sub_819D324, 0); + gTasks[taskId].data[4] = 0; + gTasks[anotherTaskId].data[1] = taskId; + gTasks[anotherTaskId].data[0] = 1; + gTasks[anotherTaskId].data[2] = 1; + gTasks[anotherTaskId].data[3] = 6; + gTasks[taskId].data[0]++; + } + else + { + gTasks[taskId].data[2]--; + } + break; + case 2: + if (gTasks[taskId].data[3] == 1 && gTasks[taskId].data[4] == 1) + { + gPlttBufferFaded[226] = gUnknown_0860F13C[37]; + Swap_PrintActionStrings(); + PutWindowTilemap(5); + gTasks[taskId].data[0]++; + } + break; + case 3: + BeginNormalPaletteFade(0x4000, 0, 0x10, 0, gUnknown_0860F13C[37]); + gTasks[taskId].data[0]++; + break; + case 4: + if (!gPaletteFade.active) + { + Swap_PrintActionStrings3(0); + gTasks[taskId].data[0]++; + } + break; + case 5: + Swap_PrintActionStrings3(1); + PutWindowTilemap(3); + gTasks[taskId].data[0]++; + break; + case 6: + FillWindowPixelBuffer(5, 0); + CopyWindowToVram(5, 2); + gTasks[taskId].data[0]++; + break; + case 7: + if (sFactorySwapScreen->actionsState == 0) + Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap); + else + Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); + if (sFactorySwapScreen->cursorPos < 3) + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0; + Swap_PrintMonCategory(); + gTasks[taskId].data[0]++; + break; + case 8: + Swap_PrintMonSpecies3(); + sub_819EADC(); + sFactorySwapScreen->unk22 = 1; + gTasks[taskId].data[0] = gTasks[taskId].data[5]; + loPtr = gTasks[taskId].data[6]; + hiPtr = gTasks[taskId].data[7]; + gTasks[taskId].func = (void *)((loPtr << 0x10) | (hiPtr)); + break; + } +} + +void sub_819D9EC(u8 taskId) +{ + u8 i; + if (sFactorySwapScreen->unk30 == 1) + return; + + switch (gTasks[taskId].data[0]) + { + case 0: + Swap_PrintMonSpecies3(); + gTasks[taskId].data[0]++; + break; + case 1: + sub_819EADC(); + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; + gTasks[taskId].data[0]++; + break; + case 2: + CreateTask(sub_819D12C, 0); + gTasks[sFactorySwapScreen->palBlendTaskId].func = Task_SwapBlendPalette2; + gTasks[taskId].data[0]++; + break; + case 3: + if (!FuncIsActiveTask(sub_819D12C) && gTasks[sFactorySwapScreen->palBlendTaskId].data[4] == 1) + { + sub_819EAC0(); + if (sFactorySwapScreen->actionsState == 0) + { + sub_819F048(1); + } + else + { + sub_819F048(0); + for (i = 0; i < 3; i++) + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + } + gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x; + gTasks[sFactorySwapScreen->palBlendTaskId].func = Task_SwapBlendPalette; + sFactorySwapScreen->unk27 = 0; + sFactorySwapScreen->unk28 = 6; + sFactorySwapScreen->unk26 = FALSE; + gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 1; + gTasks[taskId].data[0]++; + } + break; + case 4: + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 0x10; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; + break; + } +} + +void Swap_InitStruct(void) +{ + if (sFactorySwapScreen == NULL) + { + sFactorySwapScreen = AllocZeroed(sizeof(*sFactorySwapScreen)); + sFactorySwapScreen->cursorPos = 0; + sFactorySwapScreen->unk30 = 0; + sFactorySwapScreen->fromSummaryScreen = FALSE; + } +} + +void sub_819DC00(void) +{ + sFactorySwapScreen = NULL; + SetMainCallback2(CB2_InitSwapScreen); +} + +void CB2_InitSwapScreen(void) +{ + u8 taskId; + + switch (gMain.state) + { + case 0: + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + CpuFill32(0, (void *)VRAM, VRAM_SIZE); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_086108B8, ARRAY_COUNT(gUnknown_086108B8)); + InitWindows(gUnknown_086108C8); + DeactivateAllTextPrinters(); + gMain.state++; + break; + case 1: + gUnknown_0203CE40 = Alloc(0x440); + gUnknown_0203CE44 = AllocZeroed(0x440); + gUnknown_0203CE48 = Alloc(0x800); + gUnknown_0203CE4C = AllocZeroed(0x800); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + 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, 0); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + FreeAllSpritePalettes(); + ResetAllPicSprites(); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE40, 0x440); + CpuCopy16(gUnknown_0861033C, gUnknown_0203CE44, 0x60); + LoadBgTiles(1, gUnknown_0203CE40, 0x440, 0); + LoadBgTiles(3, gUnknown_0203CE44, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE48, 0x800); + LoadBgTilemap(1, gUnknown_0203CE48, 0x800, 0); + LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); + LoadPalette(gUnknown_08610918, 0xF0, 10); + LoadPalette(gUnknown_08610918, 0xE0, 10); + LoadPalette(gUnknown_0861039C, 0x20, 4); + gMain.state++; + break; + case 3: + SetBgTilemapBuffer(3, gUnknown_0203CE4C); + CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); + CopyBgTilemapBufferToVram(3); + gMain.state++; + break; + case 4: + LoadSpritePalettes(gUnknown_086106B0); + LoadSpriteSheets(gUnknown_08610650); + LoadCompressedObjectPic(gUnknown_086106A0); + SetVBlankCallback(Swap_VblankCb); + gMain.state++; + break; + case 5: + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + sFactorySwapScreen->cursorPos = gUnknown_0203CF20; + gMain.state++; + break; + case 6: + Swap_InitStruct(); + Swap_InitAllSprites(); + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + Swap_ShowSummaryMonSprite(); + sub_819F048(0); + gMain.state++; + break; + case 7: + Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap); + PutWindowTilemap(2); + gMain.state++; + break; + case 8: + Swap_PrintMonCategory(); + PutWindowTilemap(8); + gMain.state++; + break; + case 9: + if (!sFactorySwapScreen->fromSummaryScreen) + Swap_PrintMonSpecies(); + PutWindowTilemap(1); + gMain.state++; + break; + case 10: + Swap_PrintPkmnSwap(); + PutWindowTilemap(0); + gMain.state++; + break; + case 11: + gMain.state++; + break; + case 12: + if (sFactorySwapScreen->fromSummaryScreen) + Swap_PrintMonSpecies2(); + gMain.state++; + break; + case 13: + Swap_PrintActionStrings2(); + PutWindowTilemap(3); + gMain.state++; + break; + case 14: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ShowBg(0); + ShowBg(1); + ShowBg(2); + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + { + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + } + else + { + HideBg(3); + } + gMain.state++; + break; + case 15: + sFactorySwapScreen->palBlendTaskId = CreateTask(Task_SwapBlendPalette, 0); + if (!sFactorySwapScreen->fromSummaryScreen) + { + gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 0; + taskId = CreateTask(Task_HandleSwapScreenChooseMons, 0); + gTasks[taskId].data[0] = 0; + } + else + { + sub_819EAF8(); + gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 1; + sFactorySwapScreen->unk22 = FALSE; + taskId = CreateTask(Task_HandleSwapScreenMenu, 0); + gTasks[taskId].data[0] = 2; + } + SetMainCallback2(Swap_CB2); + break; + } +} + +extern const struct SpriteTemplate gUnknown_08610834; +extern const struct SpriteTemplate gUnknown_0861084C; +extern const struct SpriteTemplate gUnknown_08610864; +extern const struct SpriteTemplate gUnknown_0861087C; + +void Swap_InitAllSprites(void) +{ + u8 i; + u8 x; + struct SpriteTemplate spriteTemplate; + + spriteTemplate = gUnknown_08610834; + spriteTemplate.paletteTag = TAG_PAL_BALL_SELECTED; + + for (i = 0; i < 3; i++) + { + sFactorySwapScreen->ballSpriteIds[i] = CreateSprite(&spriteTemplate, (48 * i) + 72, 64, 1); + gSprites[sFactorySwapScreen->ballSpriteIds[i]].data[0] = 0; + } + sFactorySwapScreen->cursorSpriteId = CreateSprite(&gUnknown_0861084C, gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x, 88, 0); + sFactorySwapScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610864, 176, 112, 0); + sFactorySwapScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_0861087C, 176, 144, 0); + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].centerToCornerVecY = 0; + + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + x = 240; + else + x = 192; + + spriteTemplate = gUnknown_0861084C; + spriteTemplate.tileTag = TAG_TILE_68; + sFactorySwapScreen->unk8[0][0] = CreateSprite(&spriteTemplate, 240, 120, 10); + + spriteTemplate = gUnknown_08610864; + spriteTemplate.tileTag = TAG_TILE_69; + sFactorySwapScreen->unk8[0][1] = CreateSprite(&spriteTemplate, 256, 120, 10); + sFactorySwapScreen->unk8[0][2] = CreateSprite(&spriteTemplate, 288, 120, 10); + + spriteTemplate = gUnknown_0861084C; + spriteTemplate.tileTag = TAG_TILE_6A; + sFactorySwapScreen->unk8[1][0] = CreateSprite(&spriteTemplate, 240, 120, 1); + + spriteTemplate = gUnknown_08610864; + spriteTemplate.tileTag = TAG_TILE_6B; + sFactorySwapScreen->unk8[1][1] = CreateSprite(&spriteTemplate, 256, 120, 1); + spriteTemplate.tileTag = TAG_TILE_6C; + sFactorySwapScreen->unk8[1][2] = CreateSprite(&spriteTemplate, 288, 120, 1); + + spriteTemplate = gUnknown_0861084C; + spriteTemplate.tileTag = TAG_TILE_68; + sFactorySwapScreen->unkE[0][0] = CreateSprite(&spriteTemplate, x, 144, 10); + + spriteTemplate = gUnknown_08610864; + spriteTemplate.tileTag = TAG_TILE_69; + sFactorySwapScreen->unkE[0][1] = CreateSprite(&spriteTemplate, x + 16, 144, 10); + + spriteTemplate = gUnknown_0861084C; + spriteTemplate.tileTag = TAG_TILE_6A; + sFactorySwapScreen->unkE[1][0] = CreateSprite(&spriteTemplate, x, 144, 1); + + spriteTemplate = gUnknown_08610864; + spriteTemplate.tileTag = TAG_TILE_6C; + sFactorySwapScreen->unkE[1][1] = CreateSprite(&spriteTemplate, x + 16, 144, 1); + + for (i = 0; i < 2; i++) + { + gSprites[sFactorySwapScreen->unk8[i][0]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk8[i][0]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->unk8[i][1]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk8[i][1]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->unk8[i][2]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk8[i][2]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->unkE[i][0]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unkE[i][0]].centerToCornerVecY = 0; + gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecY = 0; + + gSprites[sFactorySwapScreen->unk8[i][0]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[i][1]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[i][2]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[i][0]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[i][1]].invisible = 1; + } + + gSprites[sFactorySwapScreen->unkE[0][0]].invisible = 0; + gSprites[sFactorySwapScreen->unkE[0][1]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[0][0]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[0][1]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[0][2]].invisible = 0; +} -- cgit v1.2.3 From 2f59df03ab8dbd5d9edb28b5680cc668aafc6684 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 8 Sep 2018 23:38:30 +0200 Subject: Standartize AddTextPrinterParametrized functions, --- src/battle_factory.c | 315 ++++++++++++++++++++++++++++++++++++++++--- src/battle_interface.c | 2 +- src/battle_pyramid_bag.c | 8 +- src/battle_records.c | 22 +-- src/berry_blender.c | 8 +- src/berry_tag_screen.c | 18 +-- src/clear_save_data_screen.c | 4 +- src/coins.c | 2 +- src/credits.c | 2 +- src/decoration.c | 10 +- src/diploma.c | 4 +- src/egg_hatch.c | 2 +- src/field_region_map.c | 4 +- src/field_specials.c | 28 ++-- src/hall_of_fame.c | 6 +- src/item_menu.c | 6 +- src/learn_move.c | 4 +- src/list_menu.c | 4 +- src/main_menu.c | 2 +- src/map_name_popup.c | 2 +- src/mauville_old_man.c | 6 +- src/menu.c | 32 ++--- src/menu_helpers.c | 2 +- src/money.c | 2 +- src/mystery_event_menu.c | 2 +- src/naming_screen.c | 8 +- src/option_menu.c | 6 +- src/player_pc.c | 16 +-- src/pokeblock.c | 2 +- src/pokeblock_feed.c | 2 +- src/pokedex.c | 8 +- src/pokemon_storage_system.c | 14 +- src/pokemon_summary_screen.c | 2 +- src/record_mixing.c | 2 +- src/region_map.c | 8 +- src/reset_rtc_screen.c | 10 +- src/save_failed_screen.c | 2 +- src/scrcmd.c | 4 +- src/slot_machine.c | 8 +- src/start_menu.c | 24 ++-- src/starter_choose.c | 4 +- src/text.c | 4 +- src/trader.c | 6 +- src/wallclock.c | 6 +- 44 files changed, 453 insertions(+), 180 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index 6324f4040..6d7514504 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -90,6 +90,12 @@ struct FactorySelectMonsStruct // 'Action' refers to the Cancel, Pknm for swap windows. +struct UnkField18Struct +{ + u8 unk0; + u8 unk1[7]; +}; + struct FactorySwapMonsStruct { u8 menuCursorPos; @@ -105,11 +111,8 @@ struct FactorySwapMonsStruct u8 actionsState; bool8 fromSummaryScreen; u8 yesNoCursorPos; - u8 unk17; - u8 unk18; - u8 unk19; - u8 unk1A; - u8 unk1B; + u8 actionsCount; + struct UnkField18Struct *unk18; u8 unk1C; u8 unk1D; u8 unk1E; @@ -174,8 +177,9 @@ static u8 Select_OptionRentDeselect(void); u8 sub_81A6F70(u8 battleMode, u8 lvlMode); u8 sub_81A6CA8(u8 arg0, u8 arg1); static bool32 Select_AreSpeciesValid(u16 monSetId); -void sub_819E538(void); -void sub_819E9E0(void); +void Swap_DestroyAllSprites(void); +void Swap_ShowYesNoOptions(void); +void sub_819E8EC(void); void sub_819EAC0(void); void Swap_UpdateYesNoCursorPosition(s8 direction); void Swap_UpdateMenuCursorPosition(s8 direction); @@ -185,6 +189,8 @@ void Task_HandleSwapScreenChooseMons(u8 taskId); void sub_819D588(u8 taskId); void Swap_PrintOnInfoWindow(const u8 *str); void Swap_ShowMenuOptions(void); +void Swap_PrintMenuOptions(void); +void Swap_PrintYesNoOptions(void); void Swap_PrintMonSpecies(void); void Swap_PrintMonSpecies2(void); void Swap_PrintMonSpecies3(void); @@ -201,19 +207,20 @@ void Swap_RunMenuOptionFunc(u8 taskId); void sub_819F184(u8 taskId); void Swap_PrintActionStrings(void); void Swap_PrintActionStrings2(void); -void Swap_PrintActionStrings3(u8 field); -void sub_819F048(u8 field); +void Swap_PrintActionStrings3(u8 arg0); +void sub_819F048(u8 arg0); +void sub_819E838(u8 arg0); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; EWRAM_DATA u8 *gUnknown_0203CE30 = NULL; EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; -static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; -extern u8 *gUnknown_0203CE40; -extern u8 *gUnknown_0203CE44; -extern u8 *gUnknown_0203CE48; -extern u8 *gUnknown_0203CE4C; +EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; +EWRAM_DATA u8 *gUnknown_0203CE40 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE44 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE48 = NULL; +EWRAM_DATA u8 *gUnknown_0203CE4C = NULL; // IWRAM bss IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; @@ -281,6 +288,7 @@ extern const struct SpriteTemplate gUnknown_08610608; extern const struct SpriteTemplate gUnknown_08610620; extern const struct SpriteTemplate gUnknown_08610638; extern const u8 gUnknown_08610479[]; +extern const u8 gUnknown_08610925[]; extern const u8 gUnknown_08610476[]; extern const struct SpritePalette gUnknown_086106B0[]; extern const struct SpriteSheet gUnknown_08610650[]; @@ -308,6 +316,7 @@ extern const u8 gText_QuitSwapping[]; extern const u8 gText_AcceptThisPkmn[]; extern const u8 gText_SelectPkmnToAccept[]; extern const u8 gText_SelectPkmnToSwap[]; +extern const u8 gText_PkmnSwap[]; // code void sub_819A44C(struct Sprite *sprite) @@ -1066,7 +1075,7 @@ static void sub_819B958(u8 windowId) static void Select_PrintRentalPkmnString(void) { FillWindowPixelBuffer(0, 0); - PrintTextOnWindow(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } @@ -1098,14 +1107,14 @@ static void Select_PrintSelectMonString(void) else str = gText_TheseThreePkmnOkay; - PrintTextOnWindow(2, 1, str, 2, 5, 0, NULL); + AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } static void Select_PrintCantSelectSameMon(void) { FillWindowPixelBuffer(2, 0); - PrintTextOnWindow(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); + AddTextPrinterParameterized(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } @@ -1200,7 +1209,7 @@ static void Select_PrintMonCategory(void) species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); x = GetStringRightAlignXOffset(1, text, 0x76); - PrintTextOnWindow(5, 1, text, x, 1, 0, NULL); + AddTextPrinterParameterized(5, 1, text, x, 1, 0, NULL); CopyWindowToVram(5, 2); } } @@ -1554,7 +1563,7 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen { DestroyTask(sFactorySwapScreen->palBlendTaskId); sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); - sub_819E538(); + Swap_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE40); FREE_AND_SET_NULL(gUnknown_0203CE44); FREE_AND_SET_NULL(gUnknown_0203CE48); @@ -1606,7 +1615,7 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen if (!UpdatePaletteFade()) { DestroyTask(sFactorySwapScreen->palBlendTaskId); - sub_819E538(); + Swap_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE40); FREE_AND_SET_NULL(gUnknown_0203CE44); FREE_AND_SET_NULL(gUnknown_0203CE48); @@ -1630,7 +1639,7 @@ void Task_HandleSwapScreenYesNo(u8 taskId) switch (gTasks[taskId].data[0]) { case 4: - sub_819E9E0(); + Swap_ShowYesNoOptions(); gTasks[taskId].data[0] = 5; break; case 5: @@ -2623,3 +2632,267 @@ void Swap_InitAllSprites(void) gSprites[sFactorySwapScreen->unk8[0][1]].invisible = 0; gSprites[sFactorySwapScreen->unk8[0][2]].invisible = 0; } + +void Swap_DestroyAllSprites(void) +{ + u8 i, j; + + for (i = 0; i < 3; i++) + DestroySprite(&gSprites[sFactorySwapScreen->ballSpriteIds[i]]); + DestroySprite(&gSprites[sFactorySwapScreen->cursorSpriteId]); + DestroySprite(&gSprites[sFactorySwapScreen->menuCursor1SpriteId]); + DestroySprite(&gSprites[sFactorySwapScreen->menuCursor2SpriteId]); + for (i = 0; i < 2; i++) + { + for (j = 0; j < 3; j++) + DestroySprite(&gSprites[sFactorySwapScreen->unk8[i][j]]); + } + for (i = 0; i < 2; i++) + { + for (j = 0; j < 2; j++) + DestroySprite(&gSprites[sFactorySwapScreen->unkE[i][j]]); + } +} + +void Swap_HandleActionCursorChange(u8 cursorId) +{ + if (cursorId < 3) + { + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0; + sub_819E8EC(); + gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[cursorId]].pos1.x; + } + else + { + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; + sub_819E838(sFactorySwapScreen->unk18[cursorId].unk0); + } +} + +void Swap_UpdateBallCursorPosition(s8 direction) +{ + u8 cursorPos; + PlaySE(SE_SELECT); + if (direction > 0) // Move cursor right. + { + if (sFactorySwapScreen->cursorPos + 1 != sFactorySwapScreen->actionsCount) + sFactorySwapScreen->cursorPos++; + else + sFactorySwapScreen->cursorPos = 0; + } + else // Move cursor left. + { + if (sFactorySwapScreen->cursorPos != 0) + sFactorySwapScreen->cursorPos--; + else + sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1; + } + + cursorPos = sFactorySwapScreen->cursorPos; + Swap_HandleActionCursorChange(cursorPos); +} + +void Swap_UpdateActionCursorPosition(s8 direction) +{ + u8 cursorPos; + PlaySE(SE_SELECT); + if (direction > 0) // Move cursor down. + { + if (sFactorySwapScreen->cursorPos < 3) + sFactorySwapScreen->cursorPos = 3; + else if (sFactorySwapScreen->cursorPos + 1 != sFactorySwapScreen->actionsCount) + sFactorySwapScreen->cursorPos++; + else + sFactorySwapScreen->cursorPos = 0; + } + else // Move cursor up. + { + if (sFactorySwapScreen->cursorPos < 3) + sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1; + else if (sFactorySwapScreen->cursorPos != 0) + sFactorySwapScreen->cursorPos--; + else + sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1; + } + + cursorPos = sFactorySwapScreen->cursorPos; + Swap_HandleActionCursorChange(cursorPos); +} + +void Swap_UpdateYesNoCursorPosition(s8 direction) +{ + if (direction > 0) // Move cursor down. + { + if (sFactorySwapScreen->yesNoCursorPos != 1) + sFactorySwapScreen->yesNoCursorPos++; + else + sFactorySwapScreen->yesNoCursorPos = 0; + } + else // Move cursor up. + { + if (sFactorySwapScreen->yesNoCursorPos != 0) + sFactorySwapScreen->yesNoCursorPos--; + else + sFactorySwapScreen->yesNoCursorPos = 1; + } + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; +} + +void Swap_UpdateMenuCursorPosition(s8 direction) +{ + PlaySE(SE_SELECT); + if (direction > 0) // Move cursor down. + { + if (sFactorySwapScreen->menuCursorPos != MENU_OPTIONS_COUNT - 1) + sFactorySwapScreen->menuCursorPos++; + else + sFactorySwapScreen->menuCursorPos = 0; + } + else // Move cursor up. + { + if (sFactorySwapScreen->menuCursorPos != 0) + sFactorySwapScreen->menuCursorPos--; + else + sFactorySwapScreen->menuCursorPos = MENU_OPTIONS_COUNT - 1; + } + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; +} + +void sub_819E838(u8 arg0) +{ + u8 i; + + for (i = 0; i < 3; i++) + { + if (arg0 == 2) + { + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 0; + if (i < 2) + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1; + } + else if (arg0 == 3) + { + if (i < 2) + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + } + } +} + +void sub_819E8EC(void) +{ + u8 i; + + for (i = 0; i < 3; i++) + { + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + if (i < 2) + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1; + } +} + +void Swap_ShowMenuOptions(void) +{ + if (sFactorySwapScreen->fromSummaryScreen == TRUE) + sFactorySwapScreen->fromSummaryScreen = FALSE; + else + sFactorySwapScreen->menuCursorPos = 0; + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.x = 176; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0; + + Swap_PrintMenuOptions(); +} + +void Swap_ShowYesNoOptions(void) +{ + sFactorySwapScreen->yesNoCursorPos = 0; + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.x = 176; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = 112; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = 112; + + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0; + + Swap_PrintYesNoOptions(); +} + +void sub_819EA64(u8 windowId) +{ + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; + FillWindowPixelBuffer(windowId, 0); + CopyWindowToVram(windowId, 2); + ClearWindowTilemap(windowId); +} + +void sub_819EAC0(void) +{ + PutWindowTilemap(1); + FillWindowPixelBuffer(1, 0); + CopyWindowToVram(1, 2); +} + +void sub_819EADC(void) +{ + PutWindowTilemap(7); + FillWindowPixelBuffer(7, 0); + CopyWindowToVram(7, 2); +} + +void sub_819EAF8(void) +{ + sub_819EAC0(); + PutWindowTilemap(5); + FillWindowPixelBuffer(5, 0); + CopyWindowToVram(5, 2); +} + +void Swap_PrintPkmnSwap(void) +{ + FillWindowPixelBuffer(0, 0x11); + AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL); + CopyWindowToVram(0, 3); +} + +void Swap_PrintMonSpecies(void) +{ + u16 species; + u8 x; + + FillWindowPixelBuffer(1, 0); + if (sFactorySwapScreen->cursorPos > 2) + { + CopyWindowToVram(1, 2); + } + else + { + u8 monId = sFactorySwapScreen->cursorPos; + if (sFactorySwapScreen->actionsState == 0) + species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); + else + species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + StringCopy(gStringVar4, gSpeciesNames[species]); + x = GetStringRightAlignXOffset(1, gStringVar4, 86); + AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610925, 0, gStringVar4); + CopyWindowToVram(1, 3); + } +} + +void Swap_PrintOnInfoWindow(const u8 *str) +{ + FillWindowPixelBuffer(2, 0); + AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); + CopyWindowToVram(2, 2); +} diff --git a/src/battle_interface.c b/src/battle_interface.c index 278edb6f4..e45af2bf0 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2589,7 +2589,7 @@ static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, color[1] = 1; color[2] = 3; - AddTextPrinterParameterized2(winId, 0, x, y, 0, 0, color, -1, str); + AddTextPrinterParameterized4(winId, 0, x, y, 0, 0, color, -1, str); *windowId = winId; return (u8*)(GetWindowAttribute(winId, WINDOW_TILE_DATA)); diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 8a5ce7a99..5a31554b4 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -997,7 +997,7 @@ static void sub_81C6404(void) StringExpandPlaceholders(gStringVar4, gText_xVar1); sub_81C6CEC(3); x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28); - PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL); + AddTextPrinterParameterized(3, 1, gStringVar4, x, 2, 0, NULL); } static void sub_81C645C(s16 value) @@ -1007,7 +1007,7 @@ static void sub_81C645C(s16 value) 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); + AddTextPrinterParameterized(3, 1, gStringVar4, x, 2, 0, NULL); } static void sub_81C64B4(u8 taskId) @@ -1280,12 +1280,12 @@ static void sub_81C6BD8(void) 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, sColorTable[colorTableId], speed, src); + AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); } 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, sColorTable[colorTableId], speed, src); + AddTextPrinterParameterized4(windowId, 7, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src); } static void sub_81C6CEC(u8 windowId) diff --git a/src/battle_records.c b/src/battle_records.c index 1680f3cc4..762cb8aae 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -266,7 +266,7 @@ static void PrintLinkBattleWinsLossesDraws(struct LinkBattleRecord *records) StringExpandPlaceholders(gStringVar4, gText_TotalRecordWLD); x = GetStringCenterAlignXOffset(1, gStringVar4, 0xD0); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar4, x, 0x11, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x, 0x11, 0, NULL); } static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y, s32 language) @@ -274,10 +274,10 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y, s32 lan if (record->wins == 0 && record->losses == 0 && record->draws == 0) { // empty slot - PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoPlayer, 8, (y * 8) + 1, 0, NULL); - PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoScore, 80, (y * 8) + 1, 0, NULL); - PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoScore, 128, (y * 8) + 1, 0, NULL); - PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoScore, 176, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoPlayer, 8, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoScore, 80, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoScore, 128, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoScore, 176, (y * 8) + 1, 0, NULL); } else { @@ -285,16 +285,16 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y, s32 lan StringCopyN(gStringVar1, record->name, 7); ConvertInternationalString(gStringVar1, language); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 8, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 8, (y * 8) + 1, 0, NULL); ConvertIntToDecimalStringN(gStringVar1, record->wins, STR_CONV_MODE_RIGHT_ALIGN, 4); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 80, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 80, (y * 8) + 1, 0, NULL); ConvertIntToDecimalStringN(gStringVar1, record->losses, STR_CONV_MODE_RIGHT_ALIGN, 4); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 128, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 128, (y * 8) + 1, 0, NULL); ConvertIntToDecimalStringN(gStringVar1, record->draws, STR_CONV_MODE_RIGHT_ALIGN, 4); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 176, (y * 8) + 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 176, (y * 8) + 1, 0, NULL); } } @@ -308,11 +308,11 @@ void ShowLinkBattleRecords(void) StringExpandPlaceholders(gStringVar4, gText_PlayersBattleResults); x = GetStringCenterAlignXOffset(1, gStringVar4, 208); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar4, x, 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x, 1, 0, NULL); PrintLinkBattleWinsLossesDraws(gSaveBlock1Ptr->linkBattleRecords.entries); StringExpandPlaceholders(gStringVar4, gText_WinLoseDraw); - PrintTextOnWindow(gRecordsWindowId, 1, gStringVar4, 0, 41, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, 0, 41, 0, NULL); for (i = 0; i < LINK_B_RECORDS_COUNT; i++) { diff --git a/src/berry_blender.c b/src/berry_blender.c index 02df933f2..92d44ea78 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -3487,8 +3487,8 @@ void ShowBerryBlenderRecordWindow(void) FillWindowPixelBuffer(gRecordsWindowId, 0x11); xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 0x90); - PrintTextOnWindow(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL); - PrintTextOnWindow(gRecordsWindowId, 1, gText_234Players, 4, 0x29, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, gText_234Players, 4, 0x29, 0, NULL); for (i = 0, yPos = 0x29; i < BLENDER_SCORES_NO; i++) { @@ -3503,7 +3503,7 @@ void ShowBerryBlenderRecordWindow(void) txtPtr = StringAppend(txtPtr, sText_RPM); xPos = GetStringRightAlignXOffset(1, text, 0x8C); - PrintTextOnWindow(gRecordsWindowId, 1, text, xPos, yPos + (i * 16), 0, NULL); + AddTextPrinterParameterized(gRecordsWindowId, 1, text, xPos, yPos + (i * 16), 0, NULL); } PutWindowTilemap(gRecordsWindowId); @@ -3596,7 +3596,7 @@ static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s3 FillWindowPixelBuffer(windowId, txtColor[0] | (txtColor[0] << 4)); } - AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, 1, txtColor, speed, string); + AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, 1, txtColor, speed, string); } static bool32 Blender_PrintText(s16 *textState, const u8 *string, s32 textSpeed) diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index fb4bf6817..7623decd3 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -343,7 +343,7 @@ static void HandleInitWindows(void) static void PrintTextInBerryTagScreen(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId) { - AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, sTextColors[colorStructId], speed, text); + AddTextPrinterParameterized4(windowId, 1, x, y, 0, 0, sTextColors[colorStructId], speed, text); } static void AddBerryTagTextToBg0(void) @@ -376,7 +376,7 @@ static void PrintBerryNumberAndName(void) static void PrintBerrySize(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL); if (berry->size != 0) { u32 inches, fraction; @@ -390,34 +390,34 @@ static void PrintBerrySize(void) ConvertIntToDecimalStringN(gStringVar1, inches, 0, 2); ConvertIntToDecimalStringN(gStringVar2, fraction, 0, 2); StringExpandPlaceholders(gStringVar4, gText_Var1DotVar2); - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gStringVar4, 0x28, 1, 0, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gStringVar4, 0x28, 1, 0, NULL); } else { - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 1, 0, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 1, 0, NULL); } } static void PrintBerryFirmness(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL); if (berry->firmness != 0) - PrintTextOnWindow(WIN_SIZE_FIRM, 1, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL); else - PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL); + AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL); } static void PrintBerryDescription1(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(WIN_DESC, 1, berry->description1, 0, 1, 0, NULL); + AddTextPrinterParameterized(WIN_DESC, 1, berry->description1, 0, 1, 0, NULL); } static void PrintBerryDescription2(void) { const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); - PrintTextOnWindow(WIN_DESC, 1, berry->description2, 0, 0x11, 0, NULL); + AddTextPrinterParameterized(WIN_DESC, 1, berry->description2, 0, 0x11, 0, NULL); } static void CreateBerrySprite(void) diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 5c1f7db20..839a77e4a 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -79,7 +79,7 @@ void CB2_InitClearSaveDataScreen(void) static void Task_DoClearSaveDataScreenYesNo(u8 taskId) { SetWindowBorderStyle(0, 0, 2, 14); - PrintTextOnWindow(0, 1, gText_ClearAllSaveData, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_ClearAllSaveData, 0, 1, 0, 0); CreateYesNoMenu(sClearSaveYesNo, 2, 14, 1); gTasks[taskId].func = Task_ClearSaveDataScreenYesNoChoice; } @@ -90,7 +90,7 @@ static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId) { case 0: FillWindowPixelBuffer(0, 17); - PrintTextOnWindow(0, 1, gText_ClearingData, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_ClearingData, 0, 1, 0, 0); gTasks[taskId].func = Task_ClearSaveData; break; case 1: diff --git a/src/coins.c b/src/coins.c index 12e0bd4ef..967eb92ac 100644 --- a/src/coins.c +++ b/src/coins.c @@ -19,7 +19,7 @@ void PrintCoinsString(u32 coinAmount) StringExpandPlaceholders(gStringVar4, gText_Coins); xAlign = GetStringRightAlignXOffset(1, gStringVar4, 0x40); - PrintTextOnWindow(sCoinsWindowId, 1, gStringVar4, xAlign, 1, 0, NULL); + AddTextPrinterParameterized(sCoinsWindowId, 1, gStringVar4, xAlign, 1, 0, NULL); } void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) diff --git a/src/credits.c b/src/credits.c index c054958ce..8e641fdb5 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1189,7 +1189,7 @@ static void sub_81755BC(const u8 *string, u8 y, u8 a2) } x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, 0xF0, 1); - AddTextPrinterParameterized2(0, 1, x, y, 1, 0, color, -1, string); + AddTextPrinterParameterized4(0, 1, x, y, 1, 0, color, -1, string); } void sub_8175620(void) diff --git a/src/decoration.c b/src/decoration.c index b21d51278..442c66d7f 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -499,7 +499,7 @@ void sub_8126B80(u8 taskId) void sub_8126C08(void) { FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3); } void SecretBasePC_Decorate(u8 taskId) @@ -622,7 +622,7 @@ void sub_8126E8C(u8 taskId) sub_8126F68(r5, i, 8, i << 4, FALSE, 0xFF); } } - PrintTextOnWindow(r5, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, (i << 4) + 1, 0, 0); + AddTextPrinterParameterized(r5, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, (i << 4) + 1, 0, 0); schedule_bg_copy_tilemap_to_vram(0); } @@ -636,12 +636,12 @@ void sub_8126F68(u8 winid, u8 decorCat, u8 x, u8 y, bool8 flag, u8 speed) sub_8127058(gStringVar4, flag); strbuf = StringLength(gStringVar4) + gStringVar4; StringCopy(strbuf, sDecorCatNames[decorCat]); - PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL); + AddTextPrinterParameterized(winid, 1, gStringVar4, x, y, speed, NULL); strbuf = ConvertIntToDecimalStringN(strbuf, CountDecorationCategoryN(decorCat), STR_CONV_MODE_RIGHT_ALIGN, 2); *strbuf++ = CHAR_SLASH; ConvertIntToDecimalStringN(strbuf, gDecorationInventories[decorCat].size, STR_CONV_MODE_RIGHT_ALIGN, 2); x = GetStringRightAlignXOffset(1, gStringVar4, width); - PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL); + AddTextPrinterParameterized(winid, 1, gStringVar4, x, y, speed, NULL); } void sub_8127058(u8 *str, bool8 flag) @@ -932,7 +932,7 @@ void sub_8127744(u32 a0) { txt = gDecorations[gCurDecorInventoryItems[a0]].description; } - PrintTextOnWindow(winidx, 1, txt, 0, 1, 0, 0); + AddTextPrinterParameterized(winidx, 1, txt, 0, 1, 0, 0); } void sub_81277A8(void) diff --git a/src/diploma.c b/src/diploma.c index 599ceec72..8e0b48ed3 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -17,7 +17,7 @@ extern int decompress_and_copy_tile_data_to_vram(u8 bg_id, void *src, int size, extern bool8 free_temp_tile_data_buffers_if_possible(void); extern void sub_80861E8(void); // rom4 extern bool16 sub_80C0944(void); -extern void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 *color, s8 speed, u8 *str); +extern void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 *color, s8 speed, u8 *str); extern u16 gUnknown_0860F074[]; @@ -210,5 +210,5 @@ static void PrintDiplomaText(u8 *text, u8 var1, u8 var2) { u8 color[3] = {0, 2, 3}; - AddTextPrinterParameterized2(0, 1, var1, var2, 0, 0, color, -1, text); + AddTextPrinterParameterized4(0, 1, var1, var2, 0, 0, color, -1, text); } diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 1c626cc86..f72ca04a3 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -856,7 +856,7 @@ static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed) sEggHatchData->textColor[0] = 0; sEggHatchData->textColor[1] = 5; sEggHatchData->textColor[2] = 6; - AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, sEggHatchData->textColor, speed, string); + AddTextPrinterParameterized4(windowId, 1, x, y, 0, 0, sEggHatchData->textColor, speed, string); } u8 GetEggStepsToSubtract(void) diff --git a/src/field_region_map.c b/src/field_region_map.c index f56548068..14b4cdd2f 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -126,7 +126,7 @@ static void FieldUpdateRegionMap(void) case 1: SetWindowBorderStyle(1, 0, 0x27, 0xd); offset = GetStringCenterAlignXOffset(1, gText_Hoenn, 0x38); - PrintTextOnWindow(1, 1, gText_Hoenn, offset, 1, 0, NULL); + AddTextPrinterParameterized(1, 1, gText_Hoenn, offset, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); SetWindowBorderStyle(0, 0, 0x27, 0xd); PrintRegionMapSecName(); @@ -182,7 +182,7 @@ static void PrintRegionMapSecName(void) if (sFieldRegionMapHandler->regionMap.iconDrawType != MAPSECTYPE_NONE) { FillWindowPixelBuffer(0, 0x11); - PrintTextOnWindow(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } else diff --git a/src/field_specials.c b/src/field_specials.c index 84852e6b5..a6c0a1baf 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1836,10 +1836,10 @@ void sub_8139B60(void) SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0); xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64); - PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(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); + AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL); PutWindowTilemap(gUnknown_0203AB5E); CopyWindowToVram(gUnknown_0203AB5E, 3); @@ -2178,13 +2178,13 @@ void sub_8139F20(void) } break; case 5: - if (gSaveBlock2Ptr->frontier.field_DE2[0] >= gSaveBlock2Ptr->frontier.field_DE2[1]) + if (gSaveBlock2Ptr->frontier.field_DE2[0][0] >= gSaveBlock2Ptr->frontier.field_DE2[0][1]) { - unk = gSaveBlock2Ptr->frontier.field_DE2[0]; + unk = gSaveBlock2Ptr->frontier.field_DE2[0][0]; } else { - unk = gSaveBlock2Ptr->frontier.field_DE2[1]; + unk = gSaveBlock2Ptr->frontier.field_DE2[0][1]; } break; case 6: @@ -3063,7 +3063,7 @@ void sub_813A8FC(void) 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); + AddTextPrinterParameterized(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL); } void sub_813A958(void) @@ -3201,7 +3201,7 @@ static void sub_813AA60(u16 a0, u16 a1) switch (a0) { case 3: - AddTextPrinterParameterized(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3); if (gUnknown_085B312C[a1] == 0xFFFF) { sub_813ABD4(gUnknown_085B312C[a1]); @@ -3214,7 +3214,7 @@ static void sub_813AA60(u16 a0, u16 a1) } break; case 4: - AddTextPrinterParameterized(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3); if (gUnknown_085B3142[a1] == 0xFFFF) { sub_813ABD4(gUnknown_085B3142[a1]); @@ -3227,11 +3227,11 @@ static void sub_813AA60(u16 a0, u16 a1) } break; case 5: - AddTextPrinterParameterized(0, 1, gUnknown_085B31B4[a1], 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(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); + AddTextPrinterParameterized2(0, 1, gUnknown_085B31D0[a1], 0, NULL, 2, 1, 3); sub_813ABD4(gUnknown_085B315C[a1]); break; } @@ -3339,11 +3339,11 @@ static void sub_813AD34(u8 a0, u16 a1) FillWindowPixelRect(gUnknown_0203AB5E, 0x11, 0, 0, 96, 48); if (a0 == 10) { - PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL); + AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL); } else { - PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL); + AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL); } } } @@ -3367,10 +3367,10 @@ void sub_813ADD4(void) 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); + AddTextPrinterParameterized5(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); + AddTextPrinterParameterized(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL); PutWindowTilemap(task->data[13]); CopyWindowToVram(task->data[13], 3); } diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 081c963ee..b739ba66d 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -531,7 +531,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId) *lastSavedTeam = *sHofMonPtr; NewMenuHelpers_DrawDialogueFrame(0, 0); - AddTextPrinterParameterized(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3); CopyWindowToVram(0, 3); gTasks[taskId].func = Task_Hof_TrySaveData; } @@ -738,7 +738,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId) FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); HallOfFame_PrintPlayerInfo(1, 2); NewMenuHelpers_DrawDialogueFrame(0, 0); - AddTextPrinterParameterized(0, 1, gText_LeagueChamp, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gText_LeagueChamp, 0, NULL, 2, 1, 3); CopyWindowToVram(0, 3); gTasks[taskId].func = Task_Hof_ExitOnKeyPressed; } @@ -1107,7 +1107,7 @@ static void Task_HofPC_PrintDataIsCorrupted(u8 taskId) { sub_8198180(gText_UnkCtrlF800Exit, 8, 1); NewMenuHelpers_DrawDialogueFrame(0, 0); - AddTextPrinterParameterized(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3); CopyWindowToVram(0, 3); gTasks[taskId].func = Task_HofPC_ExitOnButtonPress; } diff --git a/src/item_menu.c b/src/item_menu.c index f58c2b8b3..c9b19fc3f 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -884,7 +884,7 @@ void sub_81ABC54(u8 a, s16 b) u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2; ConvertIntToDecimalStringN(gStringVar1, b, 2, r3); StringExpandPlaceholders(gStringVar4, gText_xVar1); - PrintTextOnWindow(a, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0); + AddTextPrinterParameterized(a, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0); } void sub_81ABCC0(int a, int b, int c) @@ -892,7 +892,7 @@ void sub_81ABCC0(int a, int b, int c) u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2; ConvertIntToDecimalStringN(gStringVar1, b, 2, r3); StringExpandPlaceholders(gStringVar4, gText_xVar1); - PrintTextOnWindow(a, 1, gStringVar4, 0, 1, -1, 0); + AddTextPrinterParameterized(a, 1, gStringVar4, 0, 1, -1, 0); PrintMoneyAmount(a, 0x26, 1, c, 0); } @@ -2118,7 +2118,7 @@ void setup_bag_menu_textboxes(void) void bag_menu_print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 h) { - AddTextPrinterParameterized2(windowId, fontId, left, top, letterSpacing, lineSpacing, gUnknown_08614164[h], speed, str); + AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, gUnknown_08614164[h], speed, str); } u8 sub_81AE124(u8 a) diff --git a/src/learn_move.c b/src/learn_move.c index e288a393d..ff23cb3dc 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -632,7 +632,7 @@ static void HideSpritesAndPrintTeachText(bool8 a) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); FillWindowPixelBuffer(3, 0x11); - PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } @@ -696,7 +696,7 @@ static void ShowTeachMoveText(bool8 showContest) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); FillWindowPixelBuffer(3, 0x11); - PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL); } } diff --git a/src/list_menu.c b/src/list_menu.c index 6b5c3af94..ec45ba3e4 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -600,7 +600,7 @@ static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y) colors[0] = gListMenuOverride.fillValue; colors[1] = gListMenuOverride.cursorPal; colors[2] = gListMenuOverride.cursorShadowPal; - AddTextPrinterParameterized2(list->template.windowId, + AddTextPrinterParameterized4(list->template.windowId, gListMenuOverride.fontId, x, y, gListMenuOverride.lettersSpacing, @@ -613,7 +613,7 @@ static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y) colors[0] = list->template.fillValue; colors[1] = list->template.cursorPal; colors[2] = list->template.cursorShadowPal; - AddTextPrinterParameterized2(list->template.windowId, + AddTextPrinterParameterized4(list->template.windowId, list->template.fontId, x, y, list->template.lettersSpacing, diff --git a/src/main_menu.c b/src/main_menu.c index b4b343fc6..19f11efab 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1820,7 +1820,7 @@ void set_default_player_name(u8 nameId) void CreateMainMenuErrorWindow(const u8* str) { FillWindowPixelBuffer(7, 17); - PrintTextOnWindow(7, 1, str, 0, 1, 2, 0); + AddTextPrinterParameterized(7, 1, str, 0, 1, 2, 0); PutWindowTilemap(7); CopyWindowToVram(7, 2); DrawMainMenuWindowBorder(sWindowTemplate_ErrorWindow, MAIN_MENU_BORDER_TILE); diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 578636d40..1876f2ca4 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -251,7 +251,7 @@ static void ShowMapNamePopUpWindow(void) mapDisplayHeader[0] = EXT_CTRL_CODE_BEGIN; mapDisplayHeader[1] = EXT_CTRL_CODE_HIGHLIGHT; mapDisplayHeader[2] = TEXT_COLOR_TRANSPARENT; - PrintTextOnWindow(GetMapNamePopUpWindowId(), 7, mapDisplayHeader, x, 3, 0xFF, NULL); + AddTextPrinterParameterized(GetMapNamePopUpWindowId(), 7, mapDisplayHeader, x, 3, 0xFF, NULL); CopyWindowToVram(GetMapNamePopUpWindowId(), 3); } diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 591e3ad9a..6ebc7affa 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -438,7 +438,7 @@ static void BardSong_TextSubPrinter(struct TextSubPrinter * printer, u16 a1) static void sub_8120708(const u8 * src) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, src, 0, 1, 1, BardSong_TextSubPrinter); + AddTextPrinterParameterized(0, 1, src, 0, 1, 1, BardSong_TextSubPrinter); gUnknown_03002F84 = TRUE; CopyWindowToVram(0, 3); } @@ -1160,9 +1160,9 @@ static void PrintStoryList(void) u16 gameStatID = sStorytellerPtr->gameStatIDs[i]; if (gameStatID == 0) break; - PrintTextOnWindow(sStorytellerWindowId, 1, GetStoryTitleByStat(gameStatID), 8, 16 * i + 1, 0xFF, NULL); + AddTextPrinterParameterized(sStorytellerWindowId, 1, GetStoryTitleByStat(gameStatID), 8, 16 * i + 1, 0xFF, NULL); } - PrintTextOnWindow(sStorytellerWindowId, 1, gText_Exit, 8, 16 * i + 1, 0xFF, NULL); + AddTextPrinterParameterized(sStorytellerWindowId, 1, gText_Exit, 8, 16 * i + 1, 0xFF, NULL); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sStorytellerWindowId, GetFreeStorySlot() + 1, 0); CopyWindowToVram(sStorytellerWindowId, 3); } diff --git a/src/menu.c b/src/menu.c index 7c9c2f8a8..38d355cf2 100644 --- a/src/menu.c +++ b/src/menu.c @@ -149,7 +149,7 @@ u16 sub_8197224(void) return IsTextPrinterActive(0); } -u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor) +u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor) { struct TextSubPrinter printer; @@ -175,19 +175,19 @@ void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress) { void (*callback)(struct TextSubPrinter *, u16) = NULL; gTextFlags.flag_0 = allowSkippingDelayWithButtonPress; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3); } void AddTextPrinterForMessage_2(bool8 allowSkippingDelayWithButtonPress) { gTextFlags.flag_0 = allowSkippingDelayWithButtonPress; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3); } void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed) { gTextFlags.flag_0 = allowSkippingDelayWithButtonPress; - AddTextPrinterParameterized(0, 1, gStringVar4, speed, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, speed, NULL, 2, 1, 3); } void sub_81973A4(void) @@ -525,7 +525,7 @@ void RemoveMapNamePopUpWindow(void) void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextSubPrinter *, u16)) { gTextFlags.flag_0 = a1; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3); } void sub_8197AE8(bool8 copyToVram) @@ -843,7 +843,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo 0, string2); } - AddTextPrinterParameterized2(gUnknown_0203CDA0, 1, 4, 1, 0, 0, color, 0, string); + AddTextPrinterParameterized4(gUnknown_0203CDA0, 1, 4, 1, 0, 0, color, 0, string); if (copyToVram) CopyWindowToVram(gUnknown_0203CDA0, 3); } @@ -918,7 +918,7 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos) width = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 0); height = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 1); FillWindowPixelRect(gUnknown_0203CD90.windowId, 0x11, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * oldPos + gUnknown_0203CD90.top, width, height); - PrintTextOnWindow(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0); + AddTextPrinterParameterized(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0); } u8 MoveMenuCursor(s8 cursorDelta) @@ -1079,7 +1079,7 @@ void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 i u8 i; for (i = 0; i < itemCount; i++) { - PrintTextOnWindow(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL); + AddTextPrinterParameterized(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL); } CopyWindowToVram(windowId, 2); } @@ -1089,7 +1089,7 @@ void sub_81987BC(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 item u8 i; for (i = 0; i < itemCount; i++) { - sub_8199F74(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, a6, a7); + AddTextPrinterParameterized5(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, a6, a7); } CopyWindowToVram(windowId, 2); } @@ -1209,7 +1209,7 @@ void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u { for (j = 0; j < a6; j++) { - PrintTextOnWindow(windowId, fontId, strs[(i * a6) + j].text, (a4 * j) + left, (a5 * i) + top, 0xFF, NULL); + AddTextPrinterParameterized(windowId, fontId, strs[(i * a6) + j].text, (a4 * j) + left, (a5 * i) + top, 0xFF, NULL); } } CopyWindowToVram(windowId, 2); @@ -1303,7 +1303,7 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos) cursorHeight); xPos = (newCursorPos % gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionWidth + gUnknown_0203CD90.left; yPos = (newCursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionHeight + gUnknown_0203CD90.top; - PrintTextOnWindow(gUnknown_0203CD90.windowId, + AddTextPrinterParameterized(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, xPos, @@ -1588,7 +1588,7 @@ void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs) for (i = 0; i < itemCount; i++) { - PrintTextOnWindow(windowId, 1, strs[i].text, 8, (i * 16) + 1, 0xFF, NULL); + AddTextPrinterParameterized(windowId, 1, strs[i].text, 8, (i * 16) + 1, 0xFF, NULL); } CopyWindowToVram(windowId, 2); @@ -1654,7 +1654,7 @@ void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs { for (j = 0; j < a6; j++) { - PrintTextOnWindow(windowId, 1, strs[(i * a6) + j].text, (a4 * j) + 8, (i * 16) + 1, 0xFF, NULL); + AddTextPrinterParameterized(windowId, 1, strs[(i * a6) + j].text, (a4 * j) + 8, (i * 16) + 1, 0xFF, NULL); } } CopyWindowToVram(windowId, 2); @@ -1946,7 +1946,7 @@ void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const AddTextPrinter(&printer, speed, NULL); } -void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str) +void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str) { struct TextSubPrinter printer; @@ -1967,7 +1967,7 @@ void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 left, u8 top, u8 le AddTextPrinter(&printer, speed, NULL); } -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 AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing) { struct TextSubPrinter printer; @@ -1997,7 +1997,7 @@ void PrintPlayerNameOnWindow(u8 windowId, const u8 *src, u16 x, u16 y) StringExpandPlaceholders(gStringVar4, src); - PrintTextOnWindow(windowId, 1, gStringVar4, x, y, 0xFF, 0); + AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, 0xFF, 0); } //Screw this function, it's long and unreferenced and ugh diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 217fdabae..0f6d5aa38 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -137,7 +137,7 @@ void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 StringExpandPlaceholders(gStringVar4, string); gTextFlags.flag_0 = 1; - AddTextPrinterParameterized(windowId, fontId, gStringVar4, textSpeed, NULL, 2, 1, 3); + AddTextPrinterParameterized2(windowId, fontId, gStringVar4, textSpeed, NULL, 2, 1, 3); gUnknown_0300117C = taskFunc; gTasks[taskId].func = Task_ContinueTaskAfterMessagePrints; } diff --git a/src/money.c b/src/money.c index 98f25a42a..7b78dda92 100644 --- a/src/money.c +++ b/src/money.c @@ -152,7 +152,7 @@ void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed) *(txtPtr++) = 0x77; StringExpandPlaceholders(txtPtr, gText_PokedollarVar1); - PrintTextOnWindow(windowId, 1, gStringVar4, x, y, speed, NULL); + AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, speed, NULL); } void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount) diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 68f31584b..d3119190c 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -298,5 +298,5 @@ static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 sp textColor[2] = 3; FillWindowPixelBuffer(windowId, (textColor[0]) | (textColor[0] << 4)); - AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, textColor, speed, text); + AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, textColor, speed, text); } diff --git a/src/naming_screen.c b/src/naming_screen.c index 35a05499b..c5a44cb82 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -531,7 +531,7 @@ static void DisplaySentToPCMessage(void) StringExpandPlaceholders(gStringVar4, gUnknown_0858BDB8[stringToDisplay]); NewMenuHelpers_DrawDialogueFrame(0, 0); gTextFlags.flag_0 = TRUE; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), 0, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), 0, 2, 1, 3); CopyWindowToVram(0, 3); } @@ -1447,7 +1447,7 @@ static void HandleDpadMovement(struct Task *task) static void sub_80E4894(void) { FillWindowPixelBuffer(gNamingScreenData->windows[3], 0x11); - PrintTextOnWindow(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0); + AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1458,7 +1458,7 @@ static void sub_80E48E8(void) StringCopy(buffer, gSpeciesNames[gNamingScreenData->monSpecies]); StringAppendN(buffer, gNamingScreenData->template->title, 15); FillWindowPixelBuffer(gNamingScreenData->windows[3], 0x11); - PrintTextOnWindow(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0); + AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0); PutWindowTilemap(gNamingScreenData->windows[3]); } @@ -1652,7 +1652,7 @@ static void sub_80E4D10(void) temp[1] = gExpandedPlaceholder_Empty[0]; unk2 = (sub_80E503C(temp[0]) == 1) ? 2 : 0; - PrintTextOnWindow(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL); + AddTextPrinterParameterized(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL); } sub_80E498C(); diff --git a/src/option_menu.c b/src/option_menu.c index fc0c0c24e..a650545b1 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -379,7 +379,7 @@ static void DrawOptionMenuChoice(const u8 *text, u8 x, u8 y, u8 style) } dst[i] = EOS; - PrintTextOnWindow(WIN_OPTIONS, 1, dst, x, y + 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_OPTIONS, 1, dst, x, y + 1, TEXT_SPEED_FF, NULL); } static u8 TextSpeed_ProcessInput(u8 selection) @@ -605,7 +605,7 @@ static void ButtonMode_DrawChoices(u8 selection) static void DrawTextOption(void) { FillWindowPixelBuffer(WIN_TEXT_OPTION, 0x11); - PrintTextOnWindow(WIN_TEXT_OPTION, 1, gText_Option, 8, 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_TEXT_OPTION, 1, gText_Option, 8, 1, TEXT_SPEED_FF, NULL); CopyWindowToVram(WIN_TEXT_OPTION, 3); } @@ -616,7 +616,7 @@ static void DrawOptionMenuTexts(void) FillWindowPixelBuffer(WIN_OPTIONS, 0x11); for (i = 0; i < MENUITEM_COUNT; i++) { - PrintTextOnWindow(WIN_OPTIONS, 1, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(WIN_OPTIONS, 1, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL); } CopyWindowToVram(WIN_OPTIONS, 3); } diff --git a/src/player_pc.c b/src/player_pc.c index ef00e2e06..b09db0e73 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -371,7 +371,7 @@ static void InitItemStorageMenu(u8 taskId, u8 var) static void ItemStorageMenuPrint(const u8 *textPtr) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, textPtr, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, textPtr, 0, 1, 0, 0); } static void ItemStorageMenuProcessInput(u8 taskId) @@ -544,7 +544,7 @@ static void Mailbox_DrawMailboxMenu(u8 taskId) windowId = sub_81D1C84(0); sub_81D1C84(1); - PrintTextOnWindow(windowId, 1, gText_Mailbox, GetStringCenterAlignXOffset(1, gText_Mailbox, 0x40), 1, 0, NULL); + AddTextPrinterParameterized(windowId, 1, gText_Mailbox, GetStringCenterAlignXOffset(1, gText_Mailbox, 0x40), 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gTasks[taskId].data[5] = sub_81D1DC0(&playerPCItemPageInfo); sub_81D1E90(&playerPCItemPageInfo); @@ -883,7 +883,7 @@ static void fish4_goto_x5_or_x6(u8 windowId, s32 id, u8 yOffset) } ConvertIntToDecimalStringN(gStringVar1, gSaveBlock1Ptr->pcItems[id].quantity, STR_CONV_MODE_RIGHT_ALIGN, 3); StringExpandPlaceholders(gStringVar4, gText_xVar1); - PrintTextOnWindow(windowId, 7, gStringVar4, GetStringRightAlignXOffset(7, gStringVar4, 104), yOffset, 0xFF, NULL); + AddTextPrinterParameterized(windowId, 7, gStringVar4, GetStringRightAlignXOffset(7, gStringVar4, 104), yOffset, 0xFF, NULL); } } @@ -897,7 +897,7 @@ static void sub_816BEF0(s32 id) else description = ItemStorage_GetItemPcResponse(ITEMPC_GO_BACK_TO_PREV); FillWindowPixelBuffer(windowId, 17); - PrintTextOnWindow(windowId, 1, description, 0, 1, 0, NULL); + AddTextPrinterParameterized(windowId, 1, description, 0, 1, 0, NULL); } static void ItemStorage_StartScrollIndicator(void) @@ -926,7 +926,7 @@ static void sub_816BFE0(u8 y, u8 b, u8 speed) if(b == 0xFF) FillWindowPixelRect(windowId, 17, 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1)); else - AddTextPrinterParameterized2(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2); + AddTextPrinterParameterized4(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2); } static void sub_816C060(u16 itemId) @@ -988,7 +988,7 @@ static void ItemStorage_ProcessWithdrawTossInput(u8 taskId) if(!toss) text = gText_WithdrawItem; x = GetStringCenterAlignXOffset(1, text, 104); - PrintTextOnWindow(gUnknown_0203BCC4->windowIds[3], 1, text, x, 1, 0, NULL); + AddTextPrinterParameterized(gUnknown_0203BCC4->windowIds[3], 1, text, x, 1, 0, NULL); CopyWindowToVram(gUnknown_0203BCC4->windowIds[2], 2); sub_816C110(); sub_816C140(); @@ -1044,7 +1044,7 @@ static void ItemStorage_PrintItemPcResponse(const u8 *string) u8 windowId = gUnknown_0203BCC4->windowIds[1]; FillWindowPixelBuffer(windowId, 0x11); StringExpandPlaceholders(gStringVar4, string); - PrintTextOnWindow(windowId, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, 0, NULL); } static void ItemStorage_ProcessInput(u8 taskId) @@ -1202,7 +1202,7 @@ static void sub_816C6BC(u8 windowId, u16 value, u32 mode, u8 x, u8 y, u8 n) { ConvertIntToDecimalStringN(gStringVar1, value, mode, n); StringExpandPlaceholders(gStringVar4, gText_xVar1); - PrintTextOnWindow(windowId, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 48), y, 0, NULL); + AddTextPrinterParameterized(windowId, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 48), y, 0, NULL); } static void ItemStorage_DoItemAction(u8 taskId) diff --git a/src/pokeblock.c b/src/pokeblock.c index e615693b9..ea38c559d 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -580,7 +580,7 @@ static void HandleInitWindows(void) static void PrintOnPokeblockWindow(u8 windowId, const u8 *string, s32 x) { - AddTextPrinterParameterized2(windowId, 1, x, 1, 0, 0, sTextColorInPokeblockMenu, 0, string); + AddTextPrinterParameterized4(windowId, 1, x, 1, 0, 0, sTextColorInPokeblockMenu, 0, string); } static void PutPokeblockInfoText(void) diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 5f06ed7e8..1449d4a00 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -789,7 +789,7 @@ static void Task_HandleMonAtePokeblock(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_Var1DisdainfullyAteVar2); gTextFlags.flag_0 = 1; - AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3); gTasks[taskId].func = Task_WaitForAtePokeblockText; } diff --git a/src/pokedex.c b/src/pokedex.c index 2cb3c153f..d27f0d89c 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1637,7 +1637,7 @@ void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top) color[0] = 0; color[1] = 15; color[2] = 3; - AddTextPrinterParameterized2(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str); + AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str); } void sub_80BCE84(u8 a, u16 b, u16 c) @@ -2450,7 +2450,7 @@ void sub_80BE8DC(const u8* str, u8 left, u8 top) color[1] = 15; color[2] = 3; - AddTextPrinterParameterized2(0, 1, left, top, 0, 0, color, -1, str); + AddTextPrinterParameterized4(0, 1, left, top, 0, 0, color, -1, str); } u8 sub_80BE91C(struct PokedexListItem* item, u8 b) @@ -4065,7 +4065,7 @@ void sub_80C0A88(u8 windowId, const u8 *str, u8 left, u8 top) color[1] = 15; color[2] = 3; - AddTextPrinterParameterized2(windowId, 1, left, top, 0, 0, color, -1, str); + AddTextPrinterParameterized4(windowId, 1, left, top, 0, 0, color, -1, str); } void sub_80C0AC4(u8 windowId, u16 order, u8 left, u8 top) @@ -4368,7 +4368,7 @@ void sub_80C1270(const u8 *str, u32 left, u32 top) color[0] = 0; color[1] = 15; color[2] = 2; - AddTextPrinterParameterized2(0, 1, left, top, 0, 0, color, -1, str); + AddTextPrinterParameterized4(0, 1, left, top, 0, 0, color, -1, str); } void sub_80C12B0(u32 x, u32 y, u32 width, u32 height) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index eae868134..031f704a4 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -258,7 +258,7 @@ void Task_PokemonStorageSystem(u8 taskId) 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); + AddTextPrinterParameterized2(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]++; @@ -284,7 +284,7 @@ void Task_PokemonStorageSystem(u8 taskId) { task->data[1] = task->data[3]; FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); } break; case -1: @@ -299,13 +299,13 @@ void Task_PokemonStorageSystem(u8 taskId) if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE) { FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(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); + AddTextPrinterParameterized2(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3); task->data[0] = 3; } else @@ -320,7 +320,7 @@ void Task_PokemonStorageSystem(u8 taskId) if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } else if (gMain.newKeys & DPAD_UP) @@ -330,7 +330,7 @@ void Task_PokemonStorageSystem(u8 taskId) MoveMenuCursor(-1); task->data[1] = GetMenuCursorPos(); FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } else if (gMain.newKeys & DPAD_DOWN) @@ -340,7 +340,7 @@ void Task_PokemonStorageSystem(u8 taskId) MoveMenuCursor(1); task->data[1] = GetMenuCursorPos(); FillWindowPixelBuffer(0, 0x11); - AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); + AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3); task->data[0] = 2; } break; diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 9648747e7..baf4b128e 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2379,7 +2379,7 @@ static void sub_81C2554(void) static void SummaryScreen_PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, u8 y, u8 lineSpacing, u8 colorId) { - AddTextPrinterParameterized2(windowId, 1, x, y, 0, lineSpacing, sTextColors_861CD2C[colorId], 0, string); + AddTextPrinterParameterized4(windowId, 1, x, y, 0, lineSpacing, sTextColors_861CD2C[colorId], 0, string); } static void sub_81C25E8(void) diff --git a/src/record_mixing.c b/src/record_mixing.c index 552c32d38..6c6f69fa8 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -306,7 +306,7 @@ static void ReceiveExchangePacket(u32 which) static void PrintTextOnRecordMixing(const u8 *src) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, src, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, src, 0, 1, 0, NULL); CopyWindowToVram(0, 3); } diff --git a/src/region_map.c b/src/region_map.c index 3214ae185..e06d121e9 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1631,7 +1631,7 @@ void MCB2_FlyMap(void) LoadPalette(sRegionMapFramePal, 0x10, 0x20); PutWindowTilemap(2); FillWindowPixelBuffer(2, 0x00); - PrintTextOnWindow(2, 1, gText_FlyToWhere, 0, 1, 0, NULL); + AddTextPrinterParameterized(2, 1, gText_FlyToWhere, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gMain.state++; break; @@ -1697,9 +1697,9 @@ static void sub_8124904(void) flag = TRUE; sub_8198070(0, FALSE); SetWindowBorderStyle(1, FALSE, 0x65, 0x0d); - PrintTextOnWindow(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); + AddTextPrinterParameterized(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); + AddTextPrinterParameterized(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = TRUE; } @@ -1717,7 +1717,7 @@ static void sub_8124904(void) { FillWindowPixelBuffer(0, 0x11); } - PrintTextOnWindow(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); gUnknown_03001180 = FALSE; } diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 416a8da9d..34444cbf4 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -314,14 +314,14 @@ static void PrintTime(u8 windowId, u8 x, u8 y, u16 days, u8 hours, u8 minutes, u ConvertIntToDecimalStringN(gStringVar1, seconds, 2, 2); dest = StringCopy(dest, gStringVar1); - PrintTextOnWindow(windowId, 1, gStringVar4, x, y, TEXT_SPEED_FF, NULL); + AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, TEXT_SPEED_FF, NULL); } static void ShowChooseTimeWindow(u8 windowId, u16 days, u8 hours, u8 minutes, u8 seconds) { SetWindowBorderStyle(windowId, FALSE, 0x214, 0xE); PrintTime(windowId, 0, 1, days, hours, minutes, seconds); - PrintTextOnWindow(windowId, 1, gText_Confirm2, 126, 1, 0, NULL); + AddTextPrinterParameterized(windowId, 1, gText_Confirm2, 126, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } @@ -496,7 +496,7 @@ static void VBlankCB(void) static void ShowMessage(const u8 *str) { sub_8197B1C(1, FALSE, 0x200, 0xF); - PrintTextOnWindow(1, 1, str, 0, 1, 0, NULL); + AddTextPrinterParameterized(1, 1, str, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); } @@ -508,7 +508,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId) { case 0: SetWindowBorderStyle(0, FALSE, 0x214, 0xE); - PrintTextOnWindow(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0); + AddTextPrinterParameterized(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0); PrintTime( 0, 0, @@ -517,7 +517,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId) gLocalTime.hours, gLocalTime.minutes, gLocalTime.seconds); - PrintTextOnWindow(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0); + AddTextPrinterParameterized(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0); PrintTime( 0, 0, diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index b207d7e74..4c1da8620 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -173,7 +173,7 @@ static void SaveFailedScreenTextPrint(u8 *text, u8 var1, u8 var2) color[0] = 0; color[1] = 15; color[2] = 3; - AddTextPrinterParameterized2(gSaveFailedWindowIds[TEXT_WIN_ID], 1, var1 * 8, var2 * 8 + 1, 0, 0, color, 0, text); + AddTextPrinterParameterized4(gSaveFailedWindowIds[TEXT_WIN_ID], 1, var1 * 8, var2 * 8 + 1, 0, 0, color, 0, text); } void DoSaveFailedScreen(u8 saveType) diff --git a/src/scrcmd.c b/src/scrcmd.c index 01d04704a..b9a8a37af 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1304,7 +1304,7 @@ bool8 ScrCmd_cmdDB(struct ScriptContext *ctx) msg = (const u8 *)ctx->data[0]; sub_81973A4(); NewMenuHelpers_DrawDialogueFrame(0, 1); - PrintTextOnWindow(0, 1, msg, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, msg, 0, 1, 0, 0); return FALSE; } @@ -1521,7 +1521,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0); PutWindowTilemap(gUnknown_03000F30); FillWindowPixelBuffer(gUnknown_03000F30, 0x11); - PrintTextOnWindow(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0); + AddTextPrinterParameterized(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0); CopyWindowToVram(gUnknown_03000F30, 3); return FALSE; } diff --git a/src/slot_machine.c b/src/slot_machine.c index 6b6a46cf8..ed00f41c2 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -725,7 +725,7 @@ extern const u8 gText_YouveRunOutOfCoins[]; bool8 sub_8101F44(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); sSlotMachine->state = 7; return FALSE; @@ -966,7 +966,7 @@ bool8 sub_81022F0(struct Task *task) bool8 sub_8102318(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, gText_QuitTheGame, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); sub_80323CC(0x15, 7, 0x214, 0x180, 0xE, 0xF); sSlotMachine->state = 22; @@ -996,7 +996,7 @@ bool8 sub_8102344(struct Task *task) bool8 sub_810239C(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, 3); sSlotMachine->state = 24; return FALSE; @@ -1015,7 +1015,7 @@ bool8 sub_81023B8(struct Task *task) bool8 sub_81023E0_(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); - PrintTextOnWindow(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); + AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); sSlotMachine->state = 26; return FALSE; diff --git a/src/start_menu.c b/src/start_menu.c index 4a58c146e..56dad89f7 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -377,7 +377,7 @@ static void ShowSafariBallsWindow(void) NewMenuHelpers_DrawStdWindowFrame(sSafariBallsWindowId, FALSE); ConvertIntToDecimalStringN(gStringVar1, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2); StringExpandPlaceholders(gStringVar4, gText_SafariBallStock); - PrintTextOnWindow(sSafariBallsWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); + AddTextPrinterParameterized(sSafariBallsWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); CopyWindowToVram(sSafariBallsWindowId, 2); } @@ -392,7 +392,7 @@ static void ShowPyramidFloorWindow(void) NewMenuHelpers_DrawStdWindowFrame(sBattlePyramidFloorWindowId, FALSE); StringCopy(gStringVar1, sPyramindFloorNames[gSaveBlock2Ptr->frontier.field_CB2]); StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor); - PrintTextOnWindow(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); + AddTextPrinterParameterized(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); CopyWindowToVram(sBattlePyramidFloorWindowId, 2); } @@ -422,7 +422,7 @@ static bool32 PrintStartMenuActions(s8 *pIndex, u32 count) } else { StringExpandPlaceholders(gStringVar4, sStartMenuItems[sCurrentStartMenuActions[index]].text); - PrintTextOnWindow(GetStartMenuWindowId(), 1, gStringVar4, 8, (index << 4) + 9, 0xFF, NULL); + AddTextPrinterParameterized(GetStartMenuWindowId(), 1, gStringVar4, 8, (index << 4) + 9, 0xFF, NULL); } index++; @@ -1249,7 +1249,7 @@ static void sub_80A0550(u8 taskId) { case 0: FillWindowPixelBuffer(0, 17); - AddTextPrinterParameterized(0, + AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 255, @@ -1342,38 +1342,38 @@ static void ShowSaveInfoWindow(void) // Print region name yOffset = 1; sub_819A344(3, gStringVar4, TEXT_COLOR_GREEN); - PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, 0, yOffset, 0xFF, NULL); // Print player name yOffset = 0x11; - PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingPlayer, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingPlayer, 0, yOffset, 0xFF, NULL); sub_819A344(0, gStringVar4, color); xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70); PrintPlayerNameOnWindow(sSaveInfoWindowId, gStringVar4, xOffset, yOffset); // Print badge count yOffset = 0x21; - PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingBadges, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingBadges, 0, yOffset, 0xFF, NULL); sub_819A344(4, gStringVar4, color); xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70); - PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); if (FlagGet(FLAG_SYS_POKEDEX_GET) == TRUE) { // Print pokedex count yOffset = 0x31; - PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingPokedex, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingPokedex, 0, yOffset, 0xFF, NULL); sub_819A344(1, gStringVar4, color); xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70); - PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); } // Print play time yOffset += 0x10; - PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingTime, 0, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingTime, 0, yOffset, 0xFF, NULL); sub_819A344(2, gStringVar4, color); xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70); - PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); + AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL); CopyWindowToVram(sSaveInfoWindowId, 2); } diff --git a/src/starter_choose.c b/src/starter_choose.c index 5625b6184..80d909c26 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -189,7 +189,7 @@ static void Task_StarterChoose1(u8 taskId) { CreateStarterPokemonLabel(gTasks[taskId].tStarterSelection); SetWindowBorderStyle(0, FALSE, 0x2A8, 0xD); - PrintTextOnWindow(0, 1, gText_BirchInTrouble, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, gText_BirchInTrouble, 0, 1, 0, NULL); PutWindowTilemap(0); schedule_bg_copy_tilemap_to_vram(0); gTasks[taskId].func = Task_StarterChoose2; @@ -243,7 +243,7 @@ static void Task_StarterChoose4(u8 taskId) { PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0); FillWindowPixelBuffer(0, 0x11); - PrintTextOnWindow(0, 1, gText_ConfirmStarterChoice, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, gText_ConfirmStarterChoice, 0, 1, 0, NULL); schedule_bg_copy_tilemap_to_vram(0); CreateYesNoMenu(&gUnknown_085B1DDC, 0x2A8, 0xD, 0); gTasks[taskId].func = Task_StarterChoose5; diff --git a/src/text.c b/src/text.c index ed70f767b..e5a9feed8 100644 --- a/src/text.c +++ b/src/text.c @@ -139,14 +139,14 @@ void SetFontsPointer(const struct FontInfo *fonts) gFonts = fonts; } -void DeactivateAllTextPrinters (void) +void DeactivateAllTextPrinters(void) { int printer; for (printer = 0; printer < NUM_TEXT_PRINTERS; ++printer) gTextPrinters[printer].sub_union.sub.active = 0; } -u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)) +u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)) { struct TextSubPrinter subPrinter; diff --git a/src/trader.c b/src/trader.c index c4d70ac9a..f081d7e95 100644 --- a/src/trader.c +++ b/src/trader.c @@ -77,11 +77,11 @@ void CreateAvailableDecorationsMenu(u8 taskId) for (i = 0; i < 4; i++) { if (trader->decorIds[i] > NUM_DECORATIONS) - PrintTextOnWindow(data[3], 1, gText_FiveMarks, 8, 16 * i + 1, 255, NULL); + AddTextPrinterParameterized(data[3], 1, gText_FiveMarks, 8, 16 * i + 1, 255, NULL); else - PrintTextOnWindow(data[3], 1, gDecorations[trader->decorIds[i]].name, 8, 16 * i + 1, 255, NULL); + AddTextPrinterParameterized(data[3], 1, gDecorations[trader->decorIds[i]].name, 8, 16 * i + 1, 255, NULL); } - PrintTextOnWindow(data[3], 1, gText_Exit, 8, 16 * i + 1, 255, NULL); + AddTextPrinterParameterized(data[3], 1, gText_Exit, 8, 16 * i + 1, 255, NULL); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[3], 5, 0); schedule_bg_copy_tilemap_to_vram(0); } diff --git a/src/wallclock.c b/src/wallclock.c index 5be20d5c9..138dfcc38 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -639,7 +639,7 @@ void CB2_StartWallClock(void) WallClockInit(); - PrintTextOnWindow(1, 1, gText_Confirm3, 0, 1, 0, NULL); + AddTextPrinterParameterized(1, 1, gText_Confirm3, 0, 1, 0, NULL); PutWindowTilemap(1); schedule_bg_copy_tilemap_to_vram(2); } @@ -687,7 +687,7 @@ void CB2_ViewWallClock(void) WallClockInit(); - PrintTextOnWindow(1, 1, gText_Cancel4, 0, 1, 0, NULL); + AddTextPrinterParameterized(1, 1, gText_Cancel4, 0, 1, 0, NULL); PutWindowTilemap(1); schedule_bg_copy_tilemap_to_vram(2); } @@ -754,7 +754,7 @@ static void Task_SetClock2(u8 taskId) static void Task_SetClock3(u8 taskId) { SetWindowBorderStyle(0, FALSE, 0x250, 0x0d); - PrintTextOnWindow(0, 1, gText_IsThisTheCorrectTime, 0, 1, 0, NULL); + AddTextPrinterParameterized(0, 1, gText_IsThisTheCorrectTime, 0, 1, 0, NULL); PutWindowTilemap(0); schedule_bg_copy_tilemap_to_vram(0); CreateYesNoMenu(&gUnknown_085B21F4, 0x250, 0x0d, 1); -- cgit v1.2.3 From 6454740587f9a97105c45d54bf4284015a20d6d1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 9 Sep 2018 13:12:26 +0200 Subject: More battle factory --- src/battle_factory.c | 576 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 479 insertions(+), 97 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index 6d7514504..f85a14b48 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -78,8 +78,8 @@ struct FactorySelectMonsStruct u8 unused8; struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT]; struct UnkFactoryStruct unk294[3]; - u8 unk2A0; - u8 palBlendTaskId; + bool8 unk2A0; + u8 fadeSpeciesNameTaskId; bool8 unk2A2; u16 unk2A4; bool8 unk2A6; @@ -88,12 +88,14 @@ struct FactorySelectMonsStruct u8 unk2A9; }; -// 'Action' refers to the Cancel, Pknm for swap windows. +// 'Action' refers to the 3 Selectable mons, Cancel, Pknm for swap windows. +#define ACTIONS_PLAYER_SCREEN 0 +#define ACTIONS_ENEMY_SCREEN 1 -struct UnkField18Struct +struct SwapActionIdAndFunc { - u8 unk0; - u8 unk1[7]; + u8 id; + void (*func)(u8 taskId); }; struct FactorySwapMonsStruct @@ -106,19 +108,19 @@ struct FactorySwapMonsStruct u8 ballSpriteIds[3]; u8 unk8[2][3]; u8 unkE[2][2]; - u8 unk12; - u8 unk13; - u8 actionsState; + u8 playerMonId; + u8 enemyMonId; + bool8 inEnemyScreen; bool8 fromSummaryScreen; u8 yesNoCursorPos; u8 actionsCount; - struct UnkField18Struct *unk18; + const struct SwapActionIdAndFunc *actionsData; u8 unk1C; u8 unk1D; u8 unk1E; u8 unk1F; - u8 unk20; - u8 palBlendTaskId; + bool8 monSwapped; + u8 fadeSpeciesNameTaskId; u8 unk22; u8 unk23; u16 unk24; @@ -127,7 +129,7 @@ struct FactorySwapMonsStruct u8 unk28; u8 unk29; struct UnkFactoryStruct unk2C; - u8 unk30; + bool8 unk30; }; extern u8 (*gUnknown_030062E8)(void); @@ -146,7 +148,7 @@ static void CB2_InitSelectScreen(void); static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V); static void Select_InitMonsData(void); static void Select_InitAllSprites(void); -static void Select_ShowCheckedMonSprite(void); +static void Select_ShowSummaryMonSprite(void); static void Select_PrintSelectMonString(void); static void Select_PrintMonSpecies(void); static void Select_PrintMonCategory(void); @@ -158,17 +160,17 @@ static void sub_819C568(void); static void Select_ShowMenuOptions(void); static void Select_PrintMenuOptions(void); static void Select_PrintYesNoOptions(void); -static void Task_SelectBlendPalette(u8 taskId); +static void Task_SelectFadeSpeciesName(u8 taskId); static void sub_819C1D0(u8 taskId); static void Task_HandleSelectionScreenChooseMons(u8 taskId); static void Task_HandleSelectionScreenMenu(u8 taskId); static void CreateFrontierFactorySelectableMons(u8 firstMonId); static void CreateTentFactorySelectableMons(u8 firstMonId); static void Select_SetBallSpritePaletteNum(u8 id); -void sub_819F444(struct UnkFactoryStruct arg0, u8 *arg1); +void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1); static void sub_819B958(u8 windowId); -void sub_819F2B4(u8 *arg0, u8 *arg1, u8 arg2); -void sub_819F3F8(struct UnkFactoryStruct arg0, u8 *arg1, u8 arg2); +void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen); +void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen); static u8 Select_RunMenuOptionFunc(void); static u8 sub_819BC9C(void); static u8 Select_OptionSummary(void); @@ -187,6 +189,7 @@ void sub_819EA64(u8 windowId); void sub_819D770(u8 taskId); void Task_HandleSwapScreenChooseMons(u8 taskId); void sub_819D588(u8 taskId); +void sub_819F7B4(u8 taskId); void Swap_PrintOnInfoWindow(const u8 *str); void Swap_ShowMenuOptions(void); void Swap_PrintMenuOptions(void); @@ -204,12 +207,15 @@ void Swap_ShowSummaryMonSprite(void); void Swap_UpdateActionCursorPosition(s8 direction); void Swap_UpdateBallCursorPosition(s8 direction); void Swap_RunMenuOptionFunc(u8 taskId); -void sub_819F184(u8 taskId); +void Swap_RunActionFunc(u8 taskId); +void Task_SwapCantHaveSameMons(u8 taskId); void Swap_PrintActionStrings(void); void Swap_PrintActionStrings2(void); -void Swap_PrintActionStrings3(u8 arg0); -void sub_819F048(u8 arg0); +void Swap_PrintOneActionString(u8 which); +void Swap_InitActions(u8 id); void sub_819E838(u8 arg0); +bool8 Swap_AlreadyHasSameSpecies(u8 monId); +void sub_819F600(struct Sprite *sprite); // Ewram variables EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; @@ -224,7 +230,7 @@ EWRAM_DATA u8 *gUnknown_0203CE4C = NULL; // IWRAM bss IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; -IWRAM_DATA u8 (*gUnknown_03001280)(void); +IWRAM_DATA void (*gUnknown_03001280)(u8 taskId); IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen; // Const rom data. @@ -276,6 +282,8 @@ u8 (* const sSelect_MenuOptionFuncs[])(void) = [MENU_OTHERS] = Select_OptionOthers }; +extern void (* const sSwap_MenuOptionFuncs[])(u8 taskId); + extern const struct BgTemplate gUnknown_08610428[3]; extern const struct BgTemplate gUnknown_086108B8[4]; extern const struct WindowTemplate gUnknown_08610434[]; @@ -290,6 +298,7 @@ extern const struct SpriteTemplate gUnknown_08610638; extern const u8 gUnknown_08610479[]; extern const u8 gUnknown_08610925[]; extern const u8 gUnknown_08610476[]; +extern const u8 gUnknown_08610922[]; extern const struct SpritePalette gUnknown_086106B0[]; extern const struct SpriteSheet gUnknown_08610650[]; extern const struct CompressedSpriteSheet gUnknown_086106A0[]; @@ -307,16 +316,24 @@ extern const u8 gText_SelectThirdPkmn[]; extern const u8 gText_TheseThreePkmnOkay[]; extern const u8 gText_CantSelectSamePkmn[]; extern const u8 gText_Summary[]; +extern const u8 gText_Rechoose[]; extern const u8 gText_Deselect[]; extern const u8 gText_Rent[]; extern const u8 gText_Others2[]; extern const u8 gText_Yes2[]; +extern const u8 gText_Yes3[]; extern const u8 gText_No2[]; +extern const u8 gText_No3[]; extern const u8 gText_QuitSwapping[]; extern const u8 gText_AcceptThisPkmn[]; extern const u8 gText_SelectPkmnToAccept[]; extern const u8 gText_SelectPkmnToSwap[]; extern const u8 gText_PkmnSwap[]; +extern const u8 gText_Swap[]; +extern const u8 gText_Summary2[]; +extern const u8 gText_PkmnForSwap[]; +extern const u8 gText_SamePkmnInPartyAlready[]; +extern const u8 gText_Cancel3[]; // code void sub_819A44C(struct Sprite *sprite) @@ -468,7 +485,7 @@ static void CB2_InitSelectScreen(void) Select_InitMonsData(); Select_InitAllSprites(); if (sFactorySelectScreen->fromSummaryScreen == TRUE) - Select_ShowCheckedMonSprite(); + Select_ShowSummaryMonSprite(); gMain.state++; break; case 6: @@ -492,16 +509,16 @@ static void CB2_InitSelectScreen(void) gMain.state++; break; case 10: - sFactorySelectScreen->palBlendTaskId = CreateTask(Task_SelectBlendPalette, 0); + sFactorySelectScreen->fadeSpeciesNameTaskId = CreateTask(Task_SelectFadeSpeciesName, 0); if (!sFactorySelectScreen->fromSummaryScreen) { - gTasks[sFactorySelectScreen->palBlendTaskId].data[0] = 0; + gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 0; taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0); gTasks[taskId].data[0] = 0; } else { - gTasks[sFactorySelectScreen->palBlendTaskId].data[0] = 1; + gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 1; sFactorySelectScreen->unk2A2 = FALSE; taskId = CreateTask(Task_HandleSelectionScreenMenu, 0); gTasks[taskId].data[0] = 13; @@ -692,7 +709,7 @@ static void Task_FromSelectScreenToSummaryScreen(u8 taskId) case 7: if (!gPaletteFade.active) { - DestroyTask(sFactorySelectScreen->palBlendTaskId); + DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); sub_819F444(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0); Select_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE2C); @@ -718,7 +735,7 @@ static void Task_FromSelectScreenToSummaryScreen(u8 taskId) static void Task_CloseSelectionScreen(u8 taskId) { - if (sFactorySelectScreen->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != TRUE) { switch (gTasks[taskId].data[0]) { @@ -730,7 +747,7 @@ static void Task_CloseSelectionScreen(u8 taskId) if (!UpdatePaletteFade()) { Select_CopyMonsToPlayerParty(); - DestroyTask(sFactorySelectScreen->palBlendTaskId); + DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); Select_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE2C); FREE_AND_SET_NULL(gUnknown_0203CE34); @@ -747,7 +764,7 @@ static void Task_CloseSelectionScreen(u8 taskId) static void Task_HandleSelectionScreenYesNo(u8 taskId) { - if (sFactorySelectScreen->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != TRUE) { switch (gTasks[taskId].data[0]) { @@ -808,11 +825,11 @@ static void Task_HandleSelectionScreenMenu(u8 taskId) { case 2: if (!sFactorySelectScreen->fromSummaryScreen) - sub_819F2B4(&sFactorySelectScreen->unk294[1].field1, &sFactorySelectScreen->unk2A0, 0); + sub_819F2B4(&sFactorySelectScreen->unk294[1].field1, &sFactorySelectScreen->unk2A0, FALSE); gTasks[taskId].data[0] = 9; break; case 9: - if (sFactorySelectScreen->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != TRUE) { Select_ShowMenuOptions(); sFactorySelectScreen->fromSummaryScreen = FALSE; @@ -850,7 +867,7 @@ static void Task_HandleSelectionScreenMenu(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); sub_819B958(3); sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; @@ -888,7 +905,7 @@ static void Task_HandleSelectionScreenMenu(u8 taskId) static void Task_HandleSelectionScreenChooseMons(u8 taskId) { - if (sFactorySelectScreen->unk2A0 != 1) + if (sFactorySelectScreen->unk2A0 != TRUE) { switch (gTasks[taskId].data[0]) { @@ -926,7 +943,7 @@ static void Task_HandleSelectionScreenChooseMons(u8 taskId) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); Select_PrintSelectMonString(); sFactorySelectScreen->unk2A2 = TRUE; gTasks[taskId].data[0] = 1; @@ -1161,7 +1178,7 @@ static u8 Select_OptionRentDeselect(void) } else { - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); Select_HandleMonSelectionChange(); Select_PrintSelectMonString(); sub_819B958(3); @@ -1191,7 +1208,7 @@ static u8 Select_OptionSummary(void) static u8 Select_OptionOthers(void) { - sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, 0); + sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE); sub_819B958(3); return 1; } @@ -1226,15 +1243,15 @@ void sub_819BD70(void) gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; - sFactorySelectScreen->unk2A0 = 0; + sFactorySelectScreen->unk2A0 = FALSE; } -void sub_819BE20(u8 arg0) +void sub_819BE20(bool8 arg0) { sFactorySelectScreen->unk2A0 = arg0; } -static void Select_ShowCheckedMonSprite(void) +static void Select_ShowSummaryMonSprite(void) { struct Pokemon *mon; u16 species; @@ -1277,7 +1294,7 @@ static void Select_ShowChosenMonsSprites(void) } } } - sFactorySelectScreen->unk2A0 = 0; + sFactorySelectScreen->unk2A0 = FALSE; } static void sub_819C040(struct Sprite *sprite) @@ -1309,7 +1326,7 @@ static void sub_819C100(struct Sprite *sprite) FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[0].field1].oam.matrixNum); FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[2].field1].oam.matrixNum); - sFactorySelectScreen->unk2A0 = 0; + sFactorySelectScreen->unk2A0 = FALSE; DestroySprite(&gSprites[sFactorySelectScreen->unk294[0].field1]); DestroySprite(&gSprites[sFactorySelectScreen->unk294[2].field1]); @@ -1415,7 +1432,7 @@ static void sub_819C4B4(void) gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; - sFactorySelectScreen->unk2A0 = 1; + sFactorySelectScreen->unk2A0 = TRUE; } static void sub_819C568(void) @@ -1429,7 +1446,7 @@ static void sub_819C568(void) taskId = CreateTask(sub_819C2D4, 1); gTasks[taskId].func(taskId); - sFactorySelectScreen->unk2A0 = 1; + sFactorySelectScreen->unk2A0 = TRUE; } static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V) @@ -1464,7 +1481,7 @@ static bool32 Select_AreSpeciesValid(u16 monSetId) return TRUE; } -static void Task_SelectBlendPalette(u8 taskId) +static void Task_SelectFadeSpeciesName(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1537,20 +1554,20 @@ void Swap_VblankCb(void) TransferPlttBuffer(); } -void sub_819C810(void) +void CopySwappedMonData(void) { u8 happiness; - gPlayerParty[sFactorySwapScreen->unk12] = gEnemyParty[sFactorySwapScreen->unk13]; + gPlayerParty[sFactorySwapScreen->playerMonId] = gEnemyParty[sFactorySwapScreen->enemyMonId]; happiness = 0; - SetMonData(&gPlayerParty[sFactorySwapScreen->unk12], MON_DATA_FRIENDSHIP, &happiness); - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].monId = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk13 + 3].monId; - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].ivs = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk13 + 3].ivs; - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->unk13], MON_DATA_PERSONALITY, NULL); - gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->unk12].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->unk13].box, MON_DATA_ALT_ABILITY, NULL); + SetMonData(&gPlayerParty[sFactorySwapScreen->playerMonId], MON_DATA_FRIENDSHIP, &happiness); + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].monId; + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].ivs; + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY, NULL); + gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ALT_ABILITY, NULL); } -void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen +void Task_FromSwapScreenToSummaryScreen(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1561,7 +1578,7 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen case 7: if (!gPaletteFade.active) { - DestroyTask(sFactorySwapScreen->palBlendTaskId); + DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); Swap_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE40); @@ -1581,14 +1598,14 @@ void sub_819C90C(u8 taskId) // Task_FromSelectScreenToSummaryScreen } } -void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen +void Task_CloseSwapScreen(u8 taskId) { - if (sFactorySwapScreen->unk30 != 1) + if (sFactorySwapScreen->unk30 != TRUE) { switch (gTasks[taskId].data[0]) { case 0: - if (sFactorySwapScreen->unk20 == 1) + if (sFactorySwapScreen->monSwapped == TRUE) { gTasks[taskId].data[0]++; gSpecialVar_Result = 0; @@ -1600,10 +1617,10 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen } break; case 1: - if (sFactorySwapScreen->unk20 == 1) + if (sFactorySwapScreen->monSwapped == TRUE) { - sFactorySwapScreen->unk13 = sFactorySwapScreen->cursorPos; - sub_819C810(); + sFactorySwapScreen->enemyMonId = sFactorySwapScreen->cursorPos; + CopySwappedMonData(); } gTasks[taskId].data[0]++; break; @@ -1614,7 +1631,7 @@ void sub_819CA08(u8 taskId) // Task_CloseSelectionScreen case 3: if (!UpdatePaletteFade()) { - DestroyTask(sFactorySwapScreen->palBlendTaskId); + DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); Swap_DestroyAllSprites(); FREE_AND_SET_NULL(gUnknown_0203CE40); FREE_AND_SET_NULL(gUnknown_0203CE44); @@ -1634,7 +1651,7 @@ void Task_HandleSwapScreenYesNo(u8 taskId) { u16 loPtr, hiPtr; - if (sFactorySwapScreen->unk30 != 1) + if (sFactorySwapScreen->unk30 != TRUE) { switch (gTasks[taskId].data[0]) { @@ -1691,7 +1708,7 @@ void sub_819CBDC(u8 taskId) if (gTasks[taskId].data[1] == 1) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_819CA08; + gTasks[taskId].func = Task_CloseSwapScreen; } else { @@ -1708,7 +1725,7 @@ void sub_819CC24(u8 taskId) if (gTasks[taskId].data[0] == 0) { Swap_PrintOnInfoWindow(gText_QuitSwapping); - sFactorySwapScreen->unk20 = 0; + sFactorySwapScreen->monSwapped = FALSE; gTasks[taskId].data[0] = 4; gTasks[taskId].data[6] = (u32)(sub_819CBDC) >> 16; gTasks[taskId].data[7] = (u32)(sub_819CBDC); @@ -1718,11 +1735,11 @@ void sub_819CC24(u8 taskId) void sub_819CC74(u8 taskId) { - sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, 1); + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); if (gTasks[taskId].data[1] == 1) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = sub_819CA08; + gTasks[taskId].func = Task_CloseSwapScreen; } else { @@ -1738,9 +1755,9 @@ void sub_819CCD4(u8 taskId) { if (gTasks[taskId].data[0] == 0) { - sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); Swap_PrintOnInfoWindow(gText_AcceptThisPkmn); - sFactorySwapScreen->unk20 = 1; + sFactorySwapScreen->monSwapped = TRUE; gTasks[taskId].data[0] = 4; gTasks[taskId].data[6] = (u32)(sub_819CC74) >> 16; gTasks[taskId].data[7] = (u32)(sub_819CC74); @@ -1754,18 +1771,18 @@ void Task_HandleSwapScreenMenu(u8 taskId) { case 2: if (!sFactorySwapScreen->fromSummaryScreen) - sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, 1); + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); gTasks[taskId].data[0] = 9; break; case 9: - if (sFactorySwapScreen->unk30 != 1) + if (sFactorySwapScreen->unk30 != TRUE) { Swap_ShowMenuOptions(); gTasks[taskId].data[0] = 3; } break; case 3: - if (sFactorySwapScreen->unk30 != 1) + if (sFactorySwapScreen->unk30 != TRUE) { if (gMain.newKeys & A_BUTTON) { @@ -1775,7 +1792,7 @@ void Task_HandleSwapScreenMenu(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, 1); + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); sub_819EA64(3); gTasks[taskId].data[0] = 0; gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16; @@ -1814,7 +1831,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) sFactorySwapScreen->unk22 = 0; Swap_PrintMonSpecies2(); sub_819EAC0(); - sub_819F184(taskId); + Swap_RunActionFunc(taskId); } else if (gMain.newKeys & B_BUTTON) { @@ -1856,7 +1873,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) } } -void Task_SwapBlendPalette(u8 taskId) +void Task_SwapFadeSpeciesName(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -1911,7 +1928,7 @@ void Task_SwapBlendPalette(u8 taskId) } } -void Task_SwapBlendPalette2(u8 taskId) +void Task_SwapFadeSpeciesName2(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2004,7 +2021,7 @@ void sub_819D12C(u8 taskId) { var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x; gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = -16; - if (sFactorySwapScreen->actionsState == 1) + if (sFactorySwapScreen->inEnemyScreen == TRUE) gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED); else gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY); @@ -2156,7 +2173,7 @@ void sub_819D588(u8 taskId) { FillWindowPixelBuffer(5, 0); CopyWindowToVram(5, 2); - if (sFactorySwapScreen->actionsState == 1) + if (sFactorySwapScreen->inEnemyScreen == TRUE) { anotherTaskId = CreateTask(sub_819D324, 0); gTasks[taskId].data[3] = 0; @@ -2212,13 +2229,13 @@ void sub_819D770(u8 taskId) { u8 anotherTaskId; u16 loPtr, hiPtr; - if (sFactorySwapScreen->unk30 == 1) + if (sFactorySwapScreen->unk30 == TRUE) return; switch (gTasks[taskId].data[0]) { case 0: - if (sFactorySwapScreen->actionsState == 1) + if (sFactorySwapScreen->inEnemyScreen == TRUE) { anotherTaskId = CreateTask(sub_819D324, 0); gTasks[taskId].data[3] = 0; @@ -2273,12 +2290,12 @@ void sub_819D770(u8 taskId) case 4: if (!gPaletteFade.active) { - Swap_PrintActionStrings3(0); + Swap_PrintOneActionString(0); gTasks[taskId].data[0]++; } break; case 5: - Swap_PrintActionStrings3(1); + Swap_PrintOneActionString(1); PutWindowTilemap(3); gTasks[taskId].data[0]++; break; @@ -2288,7 +2305,7 @@ void sub_819D770(u8 taskId) gTasks[taskId].data[0]++; break; case 7: - if (sFactorySwapScreen->actionsState == 0) + if (!sFactorySwapScreen->inEnemyScreen) Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap); else Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); @@ -2312,7 +2329,7 @@ void sub_819D770(u8 taskId) void sub_819D9EC(u8 taskId) { u8 i; - if (sFactorySwapScreen->unk30 == 1) + if (sFactorySwapScreen->unk30 == TRUE) return; switch (gTasks[taskId].data[0]) @@ -2328,29 +2345,29 @@ void sub_819D9EC(u8 taskId) break; case 2: CreateTask(sub_819D12C, 0); - gTasks[sFactorySwapScreen->palBlendTaskId].func = Task_SwapBlendPalette2; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName2; gTasks[taskId].data[0]++; break; case 3: - if (!FuncIsActiveTask(sub_819D12C) && gTasks[sFactorySwapScreen->palBlendTaskId].data[4] == 1) + if (!FuncIsActiveTask(sub_819D12C) && gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[4] == 1) { sub_819EAC0(); - if (sFactorySwapScreen->actionsState == 0) + if (!sFactorySwapScreen->inEnemyScreen) { - sub_819F048(1); + Swap_InitActions(ACTIONS_ENEMY_SCREEN); } else { - sub_819F048(0); + Swap_InitActions(ACTIONS_PLAYER_SCREEN); for (i = 0; i < 3; i++) gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; } gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x; - gTasks[sFactorySwapScreen->palBlendTaskId].func = Task_SwapBlendPalette; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName; sFactorySwapScreen->unk27 = 0; sFactorySwapScreen->unk28 = 6; sFactorySwapScreen->unk26 = FALSE; - gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 1; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 1; gTasks[taskId].data[0]++; } break; @@ -2370,7 +2387,7 @@ void Swap_InitStruct(void) { sFactorySwapScreen = AllocZeroed(sizeof(*sFactorySwapScreen)); sFactorySwapScreen->cursorPos = 0; - sFactorySwapScreen->unk30 = 0; + sFactorySwapScreen->unk30 = FALSE; sFactorySwapScreen->fromSummaryScreen = FALSE; } } @@ -2461,7 +2478,7 @@ void CB2_InitSwapScreen(void) Swap_InitAllSprites(); if (sFactorySwapScreen->fromSummaryScreen == TRUE) Swap_ShowSummaryMonSprite(); - sub_819F048(0); + Swap_InitActions(ACTIONS_PLAYER_SCREEN); gMain.state++; break; case 7: @@ -2517,17 +2534,17 @@ void CB2_InitSwapScreen(void) gMain.state++; break; case 15: - sFactorySwapScreen->palBlendTaskId = CreateTask(Task_SwapBlendPalette, 0); + sFactorySwapScreen->fadeSpeciesNameTaskId = CreateTask(Task_SwapFadeSpeciesName, 0); if (!sFactorySwapScreen->fromSummaryScreen) { - gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 0; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 0; taskId = CreateTask(Task_HandleSwapScreenChooseMons, 0); gTasks[taskId].data[0] = 0; } else { sub_819EAF8(); - gTasks[sFactorySwapScreen->palBlendTaskId].data[0] = 1; + gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 1; sFactorySwapScreen->unk22 = FALSE; taskId = CreateTask(Task_HandleSwapScreenMenu, 0); gTasks[taskId].data[0] = 2; @@ -2541,6 +2558,7 @@ extern const struct SpriteTemplate gUnknown_08610834; extern const struct SpriteTemplate gUnknown_0861084C; extern const struct SpriteTemplate gUnknown_08610864; extern const struct SpriteTemplate gUnknown_0861087C; +extern const struct SpriteTemplate gUnknown_08610894; void Swap_InitAllSprites(void) { @@ -2665,7 +2683,7 @@ void Swap_HandleActionCursorChange(u8 cursorId) else { gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; - sub_819E838(sFactorySwapScreen->unk18[cursorId].unk0); + sub_819E838(sFactorySwapScreen->actionsData[cursorId].id); } } @@ -2879,7 +2897,7 @@ void Swap_PrintMonSpecies(void) else { u8 monId = sFactorySwapScreen->cursorPos; - if (sFactorySwapScreen->actionsState == 0) + if (!sFactorySwapScreen->inEnemyScreen) species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); else species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); @@ -2896,3 +2914,367 @@ void Swap_PrintOnInfoWindow(const u8 *str) AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } + +void Swap_PrintMenuOptions(void) +{ + PutWindowTilemap(3); + FillWindowPixelBuffer(3, 0); + AddTextPrinterParameterized3(3, 1, 15, 1, gUnknown_08610922, 0, gText_Summary2); + AddTextPrinterParameterized3(3, 1, 15, 17, gUnknown_08610922, 0, gText_Swap); + AddTextPrinterParameterized3(3, 1, 15, 33, gUnknown_08610922, 0, gText_Rechoose); + CopyWindowToVram(3, 3); +} + +void Swap_PrintYesNoOptions(void) +{ + PutWindowTilemap(4); + FillWindowPixelBuffer(4, 0); + AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610922, 0, gText_Yes3); + AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610922, 0, gText_No3); + CopyWindowToVram(4, 3); +} + +void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) +{ + s32 x = GetStringRightAlignXOffset(0, str, 0x46); + AddTextPrinterParameterized3(windowId, 0, x, y, gUnknown_08610922, 0, str); +} + +void Swap_PrintActionStrings(void) +{ + FillWindowPixelBuffer(5, 0); + switch (sFactorySwapScreen->inEnemyScreen) + { + case TRUE: + Swap_PrintActionString(gText_PkmnForSwap, 0, 5); + case FALSE: + Swap_PrintActionString(gText_Cancel3, 24, 5); + break; + } + CopyWindowToVram(5, 3); +} + +void Swap_PrintActionStrings2(void) +{ + FillWindowPixelBuffer(3, 0); + switch (sFactorySwapScreen->inEnemyScreen) + { + case TRUE: + Swap_PrintActionString(gText_PkmnForSwap, 8, 3); + case FALSE: + Swap_PrintActionString(gText_Cancel3, 32, 3); + break; + } + CopyWindowToVram(3, 3); +} + +void Swap_PrintOneActionString(u8 which) +{ + switch (which) + { + case 0: + if (sFactorySwapScreen->inEnemyScreen == TRUE) + Swap_PrintActionString(gText_PkmnForSwap, 8, 3); + break; + case 1: + Swap_PrintActionString(gText_Cancel3, 32, 3); + break; + } + CopyWindowToVram(3, 3); +} + +void Swap_PrintMonSpecies2(void) +{ + u16 species; + u8 x; + u16 pal[5]; + + CpuCopy16(gUnknown_08610918, pal, 8); + if (!sFactorySwapScreen->fromSummaryScreen) + pal[4] = gPlttBufferFaded[228]; + else + pal[4] = sFactorySwapScreen->unk24; + LoadPalette(pal, 0xF0, 0xA); + + PutWindowTilemap(7); + FillWindowPixelBuffer(7, 0); + if (sFactorySwapScreen->cursorPos > 2) + { + CopyWindowToVram(7, 3); + } + else + { + u8 monId = sFactorySwapScreen->cursorPos; + if (!sFactorySwapScreen->inEnemyScreen) + species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); + else + species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + StringCopy(gStringVar4, gSpeciesNames[species]); + x = GetStringRightAlignXOffset(1, gStringVar4, 86); + AddTextPrinterParameterized3(7, 1, x, 1, gUnknown_08610925, 0, gStringVar4); + CopyWindowToVram(7, 3); + } +} + +void Swap_PrintMonSpecies3(void) +{ + u16 species; + u8 x; + + LoadPalette(gUnknown_08610918, 0xE0, 0xA); + CpuCopy16(gPlttBufferUnfaded + 240, gPlttBufferFaded + 224, 10); + + if (sFactorySwapScreen->cursorPos > 2) + { + CopyWindowToVram(1, 2); + } + else + { + u8 monId = sFactorySwapScreen->cursorPos; + if (!sFactorySwapScreen->inEnemyScreen) + species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); + else + species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + StringCopy(gStringVar4, gSpeciesNames[species]); + x = GetStringRightAlignXOffset(1, gStringVar4, 86); + AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610925, 0, gStringVar4); + CopyWindowToVram(1, 3); + } +} + +void Swap_PrintMonCategory(void) +{ + u16 species; + u8 text[30]; + u8 x; + u8 monId = sFactorySwapScreen->cursorPos; + + FillWindowPixelBuffer(8, 0); + if (monId > 2) + { + CopyWindowToVram(8, 2); + } + else + { + PutWindowTilemap(8); + if (!sFactorySwapScreen->inEnemyScreen) + species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); + else + species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); + x = GetStringRightAlignXOffset(1, text, 0x76); + AddTextPrinterParameterized(8, 1, text, x, 1, 0, NULL); + CopyWindowToVram(8, 2); + } +} + +extern const struct SwapActionIdAndFunc gUnknown_08610928[4]; +extern const struct SwapActionIdAndFunc gUnknown_08610948[5]; + +void Swap_InitActions(u8 id) +{ + if (sFactorySwapScreen->fromSummaryScreen != TRUE) + { + switch (id) + { + case ACTIONS_PLAYER_SCREEN: + sFactorySwapScreen->inEnemyScreen = FALSE; + sFactorySwapScreen->cursorPos = 0; + sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610928); + sFactorySwapScreen->actionsData = gUnknown_08610928; + break; + case ACTIONS_ENEMY_SCREEN: + sFactorySwapScreen->inEnemyScreen = TRUE; + sFactorySwapScreen->cursorPos = 0; + sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610948); + sFactorySwapScreen->actionsData = gUnknown_08610948; + break; + } + } +} + +void Swap_RunMenuOptionFunc(u8 taskId) +{ + gUnknown_03001280 = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos]; + gUnknown_03001280(taskId); +} + +void sub_819F0CC(u8 taskId) +{ + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); + sFactorySwapScreen->playerMonId = sFactorySwapScreen->cursorPos; + sub_819EA64(3); + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819D9EC; +} + +void sub_819F114(u8 taskId) +{ + gTasks[taskId].data[0] = 6; + gTasks[taskId].func = Task_FromSwapScreenToSummaryScreen; +} + +void sub_819F134(u8 taskId) +{ + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); + sub_819EA64(3); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 0x10; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons); + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = sub_819D770; +} + +void Swap_RunActionFunc(u8 taskId) +{ + gUnknown_03001280 = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func; + gUnknown_03001280(taskId); +} + +void sub_819F1AC(u8 taskId) +{ + gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 0x10; + gTasks[taskId].data[7] = (u32)(sub_819CC24); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[5] = 0; + gTasks[taskId].func = sub_819D588; +} + +void sub_819F1DC(u8 taskId) +{ + gTasks[taskId].data[6] = (u32)(sub_819D9EC) >> 0x10; + gTasks[taskId].data[7] = (u32)(sub_819D9EC); + gTasks[taskId].data[5] = 0; + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819D588; +} + +void sub_819F20C(u8 taskId) +{ + if (!sFactorySwapScreen->inEnemyScreen) + { + gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenMenu) >> 0x10; + gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenMenu); + gTasks[taskId].data[5] = 2; + } + else if (Swap_AlreadyHasSameSpecies(sFactorySwapScreen->cursorPos) == TRUE) + { + sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[5] = 1; + gTasks[taskId].func = Task_SwapCantHaveSameMons; + return; + } + else + { + gTasks[taskId].data[6] = (u32)(sub_819CCD4) >> 0x10; + gTasks[taskId].data[7] = (u32)(sub_819CCD4); + gTasks[taskId].data[5] = 0; + } + gTasks[taskId].data[0] = 0; + gTasks[taskId].func = sub_819D588; +} + +void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen) +{ + *arg0 = CreateSprite(&gUnknown_08610894, 120, 64, 1); + gSprites[*arg0].callback = sub_819F600; + gSprites[*arg0].data[7] = swapScreen; + *arg1 = TRUE; +} + +void Swap_ShowSummaryMonSprite(void) +{ + struct Pokemon *mon; + u16 species; + u32 personality, otId; + + sFactorySwapScreen->unk2C.field1 = CreateSprite(&gUnknown_08610894, 120, 64, 1); + StartSpriteAffineAnim(&gSprites[sFactorySwapScreen->unk2C.field1], 2); + + mon = &gPlayerParty[sFactorySwapScreen->cursorPos]; + species = GetMonData(mon, MON_DATA_SPECIES, NULL); + personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, personality, otId, TRUE, 88, 32, 15, 0xFFFF); // BUG: otId and personality should be switched. + gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0; + + gSprites[sFactorySwapScreen->unk2C.field1].invisible = 1; +} + +void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) +{ + u8 taskId; + + FreeAndDestroyMonPicSprite(arg0.field0); + taskId = CreateTask(sub_819F7B4, 1); + gTasks[taskId].data[7] = swapScreen; + gTasks[taskId].data[6] = arg0.field1; + gTasks[taskId].func(taskId); + *arg1 = TRUE; +} + +void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) +{ + FreeAndDestroyMonPicSprite(arg0.field0); + FreeOamMatrix(gSprites[arg0.field1].oam.matrixNum); + DestroySprite(&gSprites[arg0.field1]); + *arg1 = FALSE; +} + +void Task_SwapCantHaveSameMons(u8 taskId) +{ + if (sFactorySwapScreen->unk30 == TRUE) + return; + + switch (gTasks[taskId].data[0]) + { + case 0: + Swap_PrintOnInfoWindow(gText_SamePkmnInPartyAlready); + sFactorySwapScreen->monSwapped = FALSE; + gTasks[taskId].data[0]++; + break; + case 1: + if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); + gTasks[taskId].data[0]++; + } + break; + case 2: + if (sFactorySwapScreen->unk30 != TRUE) + { + FillWindowPixelBuffer(5, 0); + CopyWindowToVram(5, 2); + gTasks[taskId].data[0]++; + } + break; + case 3: + Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); + gTasks[taskId].data[0]++; + break; + case 4: + Swap_PrintMonSpecies3(); + sub_819EADC(); + sFactorySwapScreen->unk22 = 1; + gTasks[taskId].data[0] = gTasks[taskId].data[5]; + gTasks[taskId].func = Task_HandleSwapScreenChooseMons; + break; + } +} + +bool8 Swap_AlreadyHasSameSpecies(u8 monId) +{ + u8 i; + u16 species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); + + for (i = 0; i < 3; i++) + { + if (i != sFactorySwapScreen->playerMonId && (u16)(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL)) == species) + return TRUE; + } + return FALSE; +} -- cgit v1.2.3 From 135e98a82493b2538c030af9b327cb104e27a3dd Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Sun, 9 Sep 2018 16:06:35 +0100 Subject: Move battle factory data to C --- src/battle_factory.c | 742 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 717 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index f85a14b48..1ae2afa21 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -144,6 +144,7 @@ extern const u8 gUnknown_085B18AC[]; extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot); // This file's functions. +void sub_819A44C(struct Sprite *sprite); static void CB2_InitSelectScreen(void); static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V); static void Select_InitMonsData(void); @@ -207,6 +208,9 @@ void Swap_ShowSummaryMonSprite(void); void Swap_UpdateActionCursorPosition(s8 direction); void Swap_UpdateBallCursorPosition(s8 direction); void Swap_RunMenuOptionFunc(u8 taskId); +void sub_819F0CC(u8 taskId); +void sub_819F114(u8 taskId); +void sub_819F134(u8 taskId); void Swap_RunActionFunc(u8 taskId); void Task_SwapCantHaveSameMons(u8 taskId); void Swap_PrintActionStrings(void); @@ -282,26 +286,714 @@ u8 (* const sSelect_MenuOptionFuncs[])(void) = [MENU_OTHERS] = Select_OptionOthers }; -extern void (* const sSwap_MenuOptionFuncs[])(u8 taskId); +static const struct BgTemplate gUnknown_08610428[3] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 24, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 25, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 27, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate gUnknown_08610434[] = +{ + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 2, + .width = 12, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x0001, + }, + { + .priority = 0, + .tilemapLeft = 19, + .tilemapTop = 2, + .width = 11, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x0019, + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 15, + .width = 20, + .height = 3, + .paletteNum = 15, + .baseBlock = 0x002f, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 14, + .width = 8, + .height = 6, + .paletteNum = 15, + .baseBlock = 0x006b, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 14, + .width = 8, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x009b, + }, + { + .priority = 0, + .tilemapLeft = 15, + .tilemapTop = 0, + .width = 15, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x00bb, + }, + DUMMY_WIN_TEMPLATE, +}; + +static const u16 gUnknown_0861046C[] = INCBIN_U16("graphics/unknown/unknown_61046C.gbapal"); + +static const u8 gUnknown_08610476[] = {0x00, 0x02, 0x00}; +static const u8 gUnknown_08610479[] = {0x00, 0x04, 0x00}; + +static const struct OamData gUnknown_0861047C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_08610484 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_0861048C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_08610494 = +{ + .y = 0, + .affineMode = 3, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 1, +}; + +static const union AnimCmd gUnknown_0861049C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_086104A4[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_086104AC[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_086104B4[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(0, 32), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd * const gUnknown_086104FC[] = +{ + gUnknown_0861049C, +}; + +static const union AnimCmd * const gUnknown_08610500[] = +{ + gUnknown_086104A4, +}; + +static const union AnimCmd * const gUnknown_08610504[] = +{ + gUnknown_086104AC, + gUnknown_086104B4, +}; + +static const union AffineAnimCmd gUnknown_0861050C[] = +{ + AFFINEANIMCMD_FRAME(5, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(16, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(32, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(64, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(128, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(256, 5, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_0861056C[] = +{ + AFFINEANIMCMD_FRAME(128, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(64, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(32, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(16, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(5, 5, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_086105BC[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gUnknown_086105CC[] = +{ + gUnknown_0861050C, + gUnknown_0861056C, + gUnknown_086105BC, +}; + +static const struct SpriteTemplate gUnknown_086105D8 = +{ + .tileTag = 0x0064, + .paletteTag = 0x0064, + .oam = &gUnknown_0861047C, + .anims = gUnknown_08610504, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_819A44C +}; + +static const struct SpriteTemplate gUnknown_086105F0 = +{ + .tileTag = 0x0065, + .paletteTag = 0x0066, + .oam = &gUnknown_08610484, + .anims = gUnknown_086104FC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610608 = +{ + .tileTag = 0x0066, + .paletteTag = 0x0066, + .oam = &gUnknown_0861048C, + .anims = gUnknown_086104FC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610620 = +{ + .tileTag = 0x0067, + .paletteTag = 0x0066, + .oam = &gUnknown_0861048C, + .anims = gUnknown_086104FC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610638 = +{ + .tileTag = 0x006d, + .paletteTag = 0x0067, + .oam = &gUnknown_08610494, + .anims = gUnknown_08610500, + .images = NULL, + .affineAnims = gUnknown_086105CC, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteSheet gUnknown_08610650[] = +{ + {gUnknown_0860F3BC, 0x0080, 0x0065}, + {gUnknown_0860F43C, 0x0100, 0x0066}, + {gUnknown_0860F53C, 0x0100, 0x0067}, + {gUnknown_0860F63C, 0x0080, 0x0068}, + {gUnknown_0860F6BC, 0x0100, 0x0069}, + {gUnknown_0860F7BC, 0x0100, 0x006a}, + {gUnknown_0860F83C, 0x0100, 0x006b}, + {gUnknown_0860F93C, 0x0100, 0x006c}, + {gUnknown_0860FA3C, 0x0800, 0x006d}, + {}, +}; + +static const struct CompressedSpriteSheet gUnknown_086106A0[] = +{ + {gUnknown_085B18AC, 0x0800, 0x0064}, + {}, +}; + +static const struct SpritePalette gUnknown_086106B0[] = +{ + {gUnknown_0860F13C, 0x0064}, + {gUnknown_0860F15C, 0x0065}, + {gUnknown_0860F17C, 0x0066}, + {gUnknown_0861039C, 0x0067}, + {}, +}; + +static const struct OamData gUnknown_086106D8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_086106E0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_086106E8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_086106F0 = +{ + .y = 0, + .affineMode = 3, + .objMode = 1, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 1, +}; + +static const union AnimCmd gUnknown_086106F8[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_08610700[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_08610708[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; + +static const union AnimCmd gUnknown_08610710[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(0, 32), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(16, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd * const gUnknown_08610758[] = +{ + gUnknown_086106F8, +}; + +static const union AnimCmd * const gUnknown_0861075C[] = +{ + gUnknown_08610700, +}; + +static const union AnimCmd * const gUnknown_08610760[] = +{ + gUnknown_08610708, + gUnknown_08610710, +}; + +static const union AffineAnimCmd gUnknown_08610768[] = +{ + AFFINEANIMCMD_FRAME(5, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(16, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(32, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(64, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(128, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(256, 5, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_086107C8[] = +{ + AFFINEANIMCMD_FRAME(128, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(64, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(32, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(16, 5, 0, 0), + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_FRAME(5, 5, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_08610818[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gUnknown_08610828[] = +{ + gUnknown_08610768, + gUnknown_086107C8, + gUnknown_08610818, +}; + +static const struct SpriteTemplate gUnknown_08610834 = +{ + .tileTag = 0x0064, + .paletteTag = 0x0064, + .oam = &gUnknown_086106D8, + .anims = gUnknown_08610760, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_819A44C +}; + +static const struct SpriteTemplate gUnknown_0861084C = +{ + .tileTag = 0x0065, + .paletteTag = 0x0066, + .oam = &gUnknown_086106E0, + .anims = gUnknown_08610758, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610864 = +{ + .tileTag = 0x0066, + .paletteTag = 0x0066, + .oam = &gUnknown_086106E8, + .anims = gUnknown_08610758, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_0861087C = +{ + .tileTag = 0x0067, + .paletteTag = 0x0066, + .oam = &gUnknown_086106E8, + .anims = gUnknown_08610758, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct SpriteTemplate gUnknown_08610894 = +{ + .tileTag = 0x006d, + .paletteTag = 0x0067, + .oam = &gUnknown_086106F0, + .anims = gUnknown_0861075C, + .images = NULL, + .affineAnims = gUnknown_08610828, + .callback = SpriteCallbackDummy +}; + +void (* const sSwap_MenuOptionFuncs[])(u8 taskId) = +{ + sub_819F114, + sub_819F0CC, + sub_819F134, +}; + +static const struct BgTemplate gUnknown_086108B8[4] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 24, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 25, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 26, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 27, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate gUnknown_086108C8[] = +{ + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 2, + .width = 12, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x0001, + }, + { + .priority = 2, + .tilemapLeft = 19, + .tilemapTop = 2, + .width = 11, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x0019, + }, + { + .priority = 0, + .tilemapLeft = 0, + .tilemapTop = 15, + .width = 20, + .height = 3, + .paletteNum = 15, + .baseBlock = 0x002f, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 14, + .width = 9, + .height = 6, + .paletteNum = 15, + .baseBlock = 0x006b, + }, + { + .priority = 0, + .tilemapLeft = 22, + .tilemapTop = 14, + .width = 8, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x00a1, + }, + { + .priority = 2, + .tilemapLeft = 21, + .tilemapTop = 15, + .width = 9, + .height = 5, + .paletteNum = 14, + .baseBlock = 0x006b, + }, + { + .priority = 2, + .tilemapLeft = 10, + .tilemapTop = 2, + .width = 4, + .height = 2, + .paletteNum = 14, + .baseBlock = 0x00c1, + }, + { + .priority = 0, + .tilemapLeft = 19, + .tilemapTop = 2, + .width = 11, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x00c9, + }, + { + .priority = 0, + .tilemapLeft = 15, + .tilemapTop = 0, + .width = 15, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x00df, + }, + DUMMY_WIN_TEMPLATE, +}; + +//const u16 gUnknown_08610918[] = {0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x1f, 0x00}; // palette +//const u8 gUnknown_08610922[] = {0x00, 0x02, 0x00}; +//const u8 gUnknown_08610925[] = {0x00, 0x04, 0x00}; -extern const struct BgTemplate gUnknown_08610428[3]; -extern const struct BgTemplate gUnknown_086108B8[4]; -extern const struct WindowTemplate gUnknown_08610434[]; -extern const struct WindowTemplate gUnknown_086108C8[]; -extern const u16 gUnknown_0861046C[]; extern const u16 gUnknown_08610918[]; -extern const struct SpriteTemplate gUnknown_086105D8; -extern const struct SpriteTemplate gUnknown_086105F0; -extern const struct SpriteTemplate gUnknown_08610608; -extern const struct SpriteTemplate gUnknown_08610620; -extern const struct SpriteTemplate gUnknown_08610638; -extern const u8 gUnknown_08610479[]; -extern const u8 gUnknown_08610925[]; -extern const u8 gUnknown_08610476[]; extern const u8 gUnknown_08610922[]; -extern const struct SpritePalette gUnknown_086106B0[]; -extern const struct SpriteSheet gUnknown_08610650[]; -extern const struct CompressedSpriteSheet gUnknown_086106A0[]; +extern const u8 gUnknown_08610925[]; // gfx extern const u8 gFrontierFactorySelectMenu_Gfx[]; @@ -1345,8 +2037,8 @@ static void sub_819C1D0(u8 taskId) task->data[5] = 64; task->data[8] = 65; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24])); - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); break; @@ -1364,7 +2056,7 @@ static void sub_819C1D0(u8 taskId) task->data[8] = 96; ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); } - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); if (task->data[5] != 32) return; break; @@ -1401,8 +2093,8 @@ static void sub_819C2D4(u8 taskId) task->data[5] = 32; task->data[8] = 96; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24])); - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); task->data[0]++; @@ -1415,7 +2107,7 @@ static void sub_819C2D4(u8 taskId) task->data[5] = 64; task->data[8] = 65; } - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); if (task->data[5] == 64) task->data[0]++; break; @@ -1452,8 +2144,8 @@ static void sub_819C568(void) static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V) { SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(mWin0H, nWin0H)); - SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(mWin0V, nWin0V)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(mWin0H, nWin0H)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(mWin0V, nWin0V)); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); } -- cgit v1.2.3 From 4d1df7ecbe69cf151d00976648aa34faae8cd6e9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 9 Sep 2018 20:31:51 +0200 Subject: comm --- src/battle_factory.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index f85a14b48..898278b03 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -208,6 +208,7 @@ void Swap_UpdateActionCursorPosition(s8 direction); void Swap_UpdateBallCursorPosition(s8 direction); void Swap_RunMenuOptionFunc(u8 taskId); void Swap_RunActionFunc(u8 taskId); +void sub_819F69C(u8 taskId); void Task_SwapCantHaveSameMons(u8 taskId); void Swap_PrintActionStrings(void); void Swap_PrintActionStrings2(void); @@ -3278,3 +3279,17 @@ bool8 Swap_AlreadyHasSameSpecies(u8 monId) } return FALSE; } + +void sub_819F600(struct Sprite *sprite) +{ + u8 taskId; + + if (sprite->affineAnimEnded) + { + sprite->invisible = 1; + taskId = CreateTask(sub_819F69C, 1); + gTasks[taskId].data[7] = sprite->data[7]; + gTasks[taskId].func(taskId); + sprite->callback = SpriteCallbackDummy; + } +} -- cgit v1.2.3 From 044ef98309bae2ba49668cdc453f4e82b84ba3d7 Mon Sep 17 00:00:00 2001 From: Tetrable Date: Sun, 9 Sep 2018 22:35:07 +0100 Subject: Document trainer animations, correct unused table labelling --- src/data/pokemon_graphics/unknown_anims.h | 2 +- src/data/trainer_graphics/back_pic_anims.h | 66 +-- src/data/trainer_graphics/front_pic_anims.h | 654 ++++++++++++++++++++-------- src/pokemon.c | 10 +- src/trainer_pokemon_sprites.c | 4 +- 5 files changed, 507 insertions(+), 229 deletions(-) (limited to 'src') diff --git a/src/data/pokemon_graphics/unknown_anims.h b/src/data/pokemon_graphics/unknown_anims.h index a4ae43eb6..313e7ae35 100644 --- a/src/data/pokemon_graphics/unknown_anims.h +++ b/src/data/pokemon_graphics/unknown_anims.h @@ -1902,7 +1902,7 @@ 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[] = +const union AnimCmd *const *const gUnusedTrainerFrontAnimsPtrTable[] = { gUnknown_082FFDCC, gUnknown_082FFDD0, diff --git a/src/data/trainer_graphics/back_pic_anims.h b/src/data/trainer_graphics/back_pic_anims.h index e2419b6f6..21dbda597 100644 --- a/src/data/trainer_graphics/back_pic_anims.h +++ b/src/data/trainer_graphics/back_pic_anims.h @@ -1,4 +1,4 @@ -const union AnimCmd gUnknown_08305C24[] = +const union AnimCmd gAnimCmd_Brendan_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), @@ -8,7 +8,7 @@ const union AnimCmd gUnknown_08305C24[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08305C3C[] = +const union AnimCmd gAnimCmd_May_Steven_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), @@ -18,7 +18,7 @@ const union AnimCmd gUnknown_08305C3C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08305C54[] = +const union AnimCmd gAnimCmd_Wally_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), @@ -28,7 +28,7 @@ const union AnimCmd gUnknown_08305C54[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08305C6C[] = +const union AnimCmd gAnimCmd_Red_1[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(2, 6), @@ -38,7 +38,7 @@ const union AnimCmd gUnknown_08305C6C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08305C84[] = +const union AnimCmd gAnimCmd_Leaf_1[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(2, 6), @@ -48,7 +48,7 @@ const union AnimCmd gUnknown_08305C84[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08305C9C[] = +const union AnimCmd gAnimCmd_RubySapphireBrendan_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), @@ -58,7 +58,7 @@ const union AnimCmd gUnknown_08305C9C[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_08305CB4[] = +const union AnimCmd gAnimCmd_RubySapphireMay_1[] = { ANIMCMD_FRAME(0, 24), ANIMCMD_FRAME(1, 9), @@ -68,62 +68,62 @@ const union AnimCmd gUnknown_08305CB4[] = ANIMCMD_END, }; -const union AnimCmd *const gUnknown_08305CCC[] = +const union AnimCmd *const gTrainerBackAnims_Brendan[] = { AnimCmd_82FF540, - gUnknown_08305C24, + gAnimCmd_Brendan_1, }; -const union AnimCmd *const gUnknown_08305CD4[] = +const union AnimCmd *const gTrainerBackAnims_May[] = { AnimCmd_82FF540, - gUnknown_08305C3C, + gAnimCmd_May_Steven_1, }; -const union AnimCmd *const gUnknown_08305CDC[] = +const union AnimCmd *const gTrainerBackAnims_Red[] = { gAnimCmd_General_Frame0, - gUnknown_08305C6C, + gAnimCmd_Red_1, }; -const union AnimCmd *const gUnknown_08305CE4[] = +const union AnimCmd *const gTrainerBackAnims_Leaf[] = { gAnimCmd_General_Frame0, - gUnknown_08305C84, + gAnimCmd_Leaf_1, }; -const union AnimCmd *const gUnknown_08305CEC[] = +const union AnimCmd *const gTrainerBackAnims_RubySapphireBrendan[] = { AnimCmd_82FF540, - gUnknown_08305C9C, + gAnimCmd_RubySapphireBrendan_1, }; -const union AnimCmd *const gUnknown_08305CF4[] = +const union AnimCmd *const gTrainerBackAnims_RubySapphireMay[] = { AnimCmd_82FF540, - gUnknown_08305CB4, + gAnimCmd_RubySapphireMay_1, }; -const union AnimCmd *const gUnknown_08305CFC[] = +const union AnimCmd *const gTrainerBackAnims_Wally[] = { AnimCmd_82FF540, - gUnknown_08305C54, + gAnimCmd_Wally_1, }; -const union AnimCmd *const gUnknown_08305D04[] = +const union AnimCmd *const gTrainerBackAnims_Steven[] = { AnimCmd_82FF540, - gUnknown_08305C3C, + gAnimCmd_May_Steven_1, }; -const union AnimCmd *const *const gUnknown_08305D0C[] = -{ - gUnknown_08305CCC, - gUnknown_08305CD4, - gUnknown_08305CDC, - gUnknown_08305CE4, - gUnknown_08305CEC, - gUnknown_08305CF4, - gUnknown_08305CFC, - gUnknown_08305D04, +const union AnimCmd *const *const gTrainerBackAnimsPtrTable[] = +{ + gTrainerBackAnims_Brendan, + gTrainerBackAnims_May, + gTrainerBackAnims_Red, + gTrainerBackAnims_Leaf, + gTrainerBackAnims_RubySapphireBrendan, + gTrainerBackAnims_RubySapphireMay, + gTrainerBackAnims_Wally, + gTrainerBackAnims_Steven, }; diff --git a/src/data/trainer_graphics/front_pic_anims.h b/src/data/trainer_graphics/front_pic_anims.h index 423ce33b9..b72726506 100644 --- a/src/data/trainer_graphics/front_pic_anims.h +++ b/src/data/trainer_graphics/front_pic_anims.h @@ -1,190 +1,468 @@ -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[] = +const union AnimCmd *const gTrainerFrontAnims_Hiker[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_AquaGruntM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_PokemonBreederF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_CoolTrainerM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_BirdKeeper[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Collector[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_AquaGruntF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_SwimmerM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_MagmaGruntM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_ExpertM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_AquaAdminM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_BlackBelt[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_AquaAdminF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_AquaLeaderArchie[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_HexManiac[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_AromaLady[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_RuinManiac[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Interviewer[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_TuberF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_TuberM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_CoolTrainerF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Lady[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Beauty[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_RichBoy[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_ExpertF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Pokemaniac[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_MagmaGruntF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Guitarist[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Kindler[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Camper[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Picnicker[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_BugManiac[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_PokemonBreederM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_PsychicM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_PsychicF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Gentleman[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_EliteFourSidney[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_EliteFourPhoebe[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_EliteFourGlacia[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_EliteFourDrake[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_LeaderRoxanne[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_LeaderBrawly[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_LeaderWattson[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_LeaderFlannery[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_LeaderNorman[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_LeaderWinona[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_LeaderTateAndLiza[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_LeaderJuan[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_SchoolKidM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_SchoolKidF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_SrAndJr[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_WinstrateM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_WinstrateF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Youngster[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_ChampionWallace[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Fisherman[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_CyclingTriathleteM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_CyclingTriathleteF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_RunningTriathleteM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_RunningTriathleteF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_SwimmingTriathleteM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_SwimmingTriathleteF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_DragonTamer[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_NinjaBoy[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_BattleGirl[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_ParasolLady[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_SwimmerF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Twins[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Sailor[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_MagmaAdmin[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Wally[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Brendan[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_May[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_BugCatcher[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_PokemonRangerM[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_PokemonRangerF[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_MagmaLeaderMaxie[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Lass[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_YoungCouple[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_OldCouple[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_SisAndBro[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Steven[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_SalonMaidenAnabel[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_DomeAceTucker[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_PalaceMavenSpenser[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_ArenaTycoonGreta[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_FactoryHeadNoland[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_PikeQueenLucy[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_PyramidKingBrandon[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Red[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_Leaf[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_RubySapphireBrendan[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const gTrainerFrontAnims_RubySapphireMay[] ={ + gAnimCmd_General_Frame0, +}; + +const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[] = { - 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, + gTrainerFrontAnims_Hiker, // TRAINER_PIC_HIKER + gTrainerFrontAnims_AquaGruntM, // TRAINER_PIC_AQUA_GRUNT_M + gTrainerFrontAnims_PokemonBreederF, // TRAINER_PIC_POKEMON_BREEDER_F + gTrainerFrontAnims_CoolTrainerM, // TRAINER_PIC_COOL_TRAINER_M + gTrainerFrontAnims_BirdKeeper, // TRAINER_PIC_BIRD_KEEPER + gTrainerFrontAnims_Collector, // TRAINER_PIC_COLLECTOR + gTrainerFrontAnims_AquaGruntF, // TRAINER_PIC_AQUA_GRUNT_F + gTrainerFrontAnims_SwimmerM, // TRAINER_PIC_SWIMMER_M + gTrainerFrontAnims_MagmaGruntM, // TRAINER_PIC_MAGMA_GRUNT_M + gTrainerFrontAnims_ExpertM, // TRAINER_PIC_EXPERT_M + gTrainerFrontAnims_AquaAdminM, // TRAINER_PIC_AQUA_ADMIN_M + gTrainerFrontAnims_BlackBelt, // TRAINER_PIC_BLACK_BELT + gTrainerFrontAnims_AquaAdminF, // TRAINER_PIC_AQUA_ADMIN_F + gTrainerFrontAnims_AquaLeaderArchie, // TRAINER_PIC_AQUA_LEADER_ARCHIE + gTrainerFrontAnims_HexManiac, // TRAINER_PIC_HEX_MANIAC + gTrainerFrontAnims_AromaLady, // TRAINER_PIC_AROMA_LADY + gTrainerFrontAnims_RuinManiac, // TRAINER_PIC_RUIN_MANIAC + gTrainerFrontAnims_Interviewer, // TRAINER_PIC_INTERVIEWER + gTrainerFrontAnims_TuberF, // TRAINER_PIC_TUBER_F + gTrainerFrontAnims_TuberM, // TRAINER_PIC_TUBER_M + gTrainerFrontAnims_CoolTrainerF, // TRAINER_PIC_COOL_TRAINER_F + gTrainerFrontAnims_Lady, // TRAINER_PIC_LADY + gTrainerFrontAnims_Beauty, // TRAINER_PIC_BEAUTY + gTrainerFrontAnims_RichBoy, // TRAINER_PIC_RICH_BOY + gTrainerFrontAnims_ExpertF, // TRAINER_PIC_EXPERT_F + gTrainerFrontAnims_Pokemaniac, // TRAINER_PIC_POKEMANIAC + gTrainerFrontAnims_MagmaGruntF, // TRAINER_PIC_MAGMA_GRUNT_F + gTrainerFrontAnims_Guitarist, // TRAINER_PIC_GUITARIST + gTrainerFrontAnims_Kindler, // TRAINER_PIC_KINDLER + gTrainerFrontAnims_Camper, // TRAINER_PIC_CAMPER + gTrainerFrontAnims_Picnicker, // TRAINER_PIC_PICNICKER + gTrainerFrontAnims_BugManiac, // TRAINER_PIC_BUG_MANIAC + gTrainerFrontAnims_PokemonBreederM, // TRAINER_PIC_POKEMON_BREEDER_M + gTrainerFrontAnims_PsychicM, // TRAINER_PIC_PSYCHIC_M + gTrainerFrontAnims_PsychicF, // TRAINER_PIC_PSYCHIC_F + gTrainerFrontAnims_Gentleman, // TRAINER_PIC_GENTLEMAN + gTrainerFrontAnims_EliteFourSidney, // TRAINER_PIC_ELITE_FOUR_SIDNEY + gTrainerFrontAnims_EliteFourPhoebe, // TRAINER_PIC_ELITE_FOUR_PHOEBE + gTrainerFrontAnims_EliteFourGlacia, // TRAINER_PIC_ELITE_FOUR_GLACIA + gTrainerFrontAnims_EliteFourDrake, // TRAINER_PIC_ELITE_FOUR_DRAKE + gTrainerFrontAnims_LeaderRoxanne, // TRAINER_PIC_LEADER_ROXANNE + gTrainerFrontAnims_LeaderBrawly, // TRAINER_PIC_LEADER_BRAWLY + gTrainerFrontAnims_LeaderWattson, // TRAINER_PIC_LEADER_WATTSON + gTrainerFrontAnims_LeaderFlannery, // TRAINER_PIC_LEADER_FLANNERY + gTrainerFrontAnims_LeaderNorman, // TRAINER_PIC_LEADER_NORMAN + gTrainerFrontAnims_LeaderWinona, // TRAINER_PIC_LEADER_WINONA + gTrainerFrontAnims_LeaderTateAndLiza, // TRAINER_PIC_LEADER_TATE_AND_LIZA + gTrainerFrontAnims_LeaderJuan, // TRAINER_PIC_LEADER_JUAN + gTrainerFrontAnims_SchoolKidM, // TRAINER_PIC_SCHOOL_KID_M + gTrainerFrontAnims_SchoolKidF, // TRAINER_PIC_SCHOOL_KID_F + gTrainerFrontAnims_SrAndJr, // TRAINER_PIC_SR_AND_JR + gTrainerFrontAnims_WinstrateM, // TRAINER_PIC_WINSTRATE_M + gTrainerFrontAnims_WinstrateF, // TRAINER_PIC_WINSTRATE_F + gTrainerFrontAnims_Youngster, // TRAINER_PIC_YOUNGSTER + gTrainerFrontAnims_ChampionWallace, // TRAINER_PIC_CHAMPION_WALLACE + gTrainerFrontAnims_Fisherman, // TRAINER_PIC_FISHERMAN + gTrainerFrontAnims_CyclingTriathleteM, // TRAINER_PIC_CYCLING_TRIATHLETE_M + gTrainerFrontAnims_CyclingTriathleteF, // TRAINER_PIC_CYCLING_TRIATHLETE_F + gTrainerFrontAnims_RunningTriathleteM, // TRAINER_PIC_RUNNING_TRIATHLETE_M + gTrainerFrontAnims_RunningTriathleteF, // TRAINER_PIC_RUNNING_TRIATHLETE_F + gTrainerFrontAnims_SwimmingTriathleteM, // TRAINER_PIC_SWIMMING_TRIATHLETE_M + gTrainerFrontAnims_SwimmingTriathleteF, // TRAINER_PIC_SWIMMING_TRIATHLETE_F + gTrainerFrontAnims_DragonTamer, // TRAINER_PIC_DRAGON_TAMER + gTrainerFrontAnims_NinjaBoy, // TRAINER_PIC_NINJA_BOY + gTrainerFrontAnims_BattleGirl, // TRAINER_PIC_BATTLE_GIRL + gTrainerFrontAnims_ParasolLady, // TRAINER_PIC_PARASOL_LADY + gTrainerFrontAnims_SwimmerF, // TRAINER_PIC_SWIMMER_F + gTrainerFrontAnims_Twins, // TRAINER_PIC_TWINS + gTrainerFrontAnims_Sailor, // TRAINER_PIC_SAILOR + gTrainerFrontAnims_MagmaAdmin, // TRAINER_PIC_MAGMA_ADMIN + gTrainerFrontAnims_Wally, // TRAINER_PIC_WALLY + gTrainerFrontAnims_Brendan, // TRAINER_PIC_BRENDAN + gTrainerFrontAnims_May, // TRAINER_PIC_MAY + gTrainerFrontAnims_BugCatcher, // TRAINER_PIC_BUG_CATCHER + gTrainerFrontAnims_PokemonRangerM, // TRAINER_PIC_POKEMON_RANGER_M + gTrainerFrontAnims_PokemonRangerF, // TRAINER_PIC_POKEMON_RANGER_F + gTrainerFrontAnims_MagmaLeaderMaxie, // TRAINER_PIC_MAGMA_LEADER_MAXIE + gTrainerFrontAnims_Lass, // TRAINER_PIC_LASS + gTrainerFrontAnims_YoungCouple, // TRAINER_PIC_YOUNG_COUPLE + gTrainerFrontAnims_OldCouple, // TRAINER_PIC_OLD_COUPLE + gTrainerFrontAnims_SisAndBro, // TRAINER_PIC_SIS_AND_BRO + gTrainerFrontAnims_Steven, // TRAINER_PIC_STEVEN + gTrainerFrontAnims_SalonMaidenAnabel, // TRAINER_PIC_SALON_MAIDEN_ANABEL + gTrainerFrontAnims_DomeAceTucker, // TRAINER_PIC_DOME_ACE_TUCKER + gTrainerFrontAnims_PalaceMavenSpenser, // TRAINER_PIC_PALACE_MAVEN_SPENSER + gTrainerFrontAnims_ArenaTycoonGreta, // TRAINER_PIC_ARENA_TYCOON_GRETA + gTrainerFrontAnims_FactoryHeadNoland, // TRAINER_PIC_FACTORY_HEAD_NOLAND + gTrainerFrontAnims_PikeQueenLucy, // TRAINER_PIC_PIKE_QUEEN_LUCY + gTrainerFrontAnims_PyramidKingBrandon, // TRAINER_PIC_PYRAMID_KING_BRANDON + gTrainerFrontAnims_Red, // TRAINER_PIC_RED + gTrainerFrontAnims_Leaf, // TRAINER_PIC_LEAF + gTrainerFrontAnims_RubySapphireBrendan, // TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN + gTrainerFrontAnims_RubySapphireMay, // TRAINER_PIC_RUBY_SAPPHIRE_MAY }; diff --git a/src/pokemon.c b/src/pokemon.c index 292254985..78a7a55a5 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -66,8 +66,8 @@ extern const union AffineAnimCmd *const gUnknown_082FF618[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const union AnimCmd *gPlayerMonSpriteAnimsTable[]; extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[]; -extern const union AnimCmd *const *const gUnknown_08305D0C[]; -extern const union AnimCmd *const *const gUnknown_0830536C[]; +extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[]; +extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const struct UnknownPokemonStruct3 gUnknown_08610970[]; extern const struct CompressedSpritePalette gMonPaletteTable[]; @@ -3831,7 +3831,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) { gMultiuseSpriteTemplate = gUnknown_08329DF8[trainerSpriteId]; - gMultiuseSpriteTemplate.anims = gUnknown_08305D0C[trainerSpriteId]; + gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId]; } else { @@ -3839,7 +3839,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition]; else gMultiuseSpriteTemplate = gUnknown_08329D98[battlerPosition]; - gMultiuseSpriteTemplate.anims = gUnknown_0830536C[trainerSpriteId]; + gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[trainerSpriteId]; } } @@ -3851,7 +3851,7 @@ void SetMultiuseSpriteTemplateToTrainerFront(u16 arg0, u8 battlerPosition) gMultiuseSpriteTemplate = gUnknown_08329D98[battlerPosition]; gMultiuseSpriteTemplate.paletteTag = arg0; - gMultiuseSpriteTemplate.anims = gUnknown_0830536C[arg0]; + gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[arg0]; } static void EncryptBoxMon(struct BoxPokemon *boxMon) diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 085e66214..18c02350f 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -19,7 +19,7 @@ extern const union AffineAnimCmd *const gUnknown_082FF618[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const union AnimCmd *const gPlayerMonSpriteAnimsTable[]; extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[NUM_SPECIES]; -extern const union AnimCmd *const *const gUnknown_0830536C[]; +extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; // Static type declarations @@ -146,7 +146,7 @@ static void AssignSpriteAnimsTable(bool8 isTrainer) if (!isTrainer) sCreatingSpriteTemplate.anims = gPlayerMonSpriteAnimsTable; else - sCreatingSpriteTemplate.anims = gUnknown_0830536C[0]; + sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0]; } static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys) -- cgit v1.2.3 From b87856b58eacd3ea7375f001427d53f096b02b68 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 10 Sep 2018 01:01:39 +0200 Subject: Battle Factory is decompiled and documented. --- src/battle_factory.c | 652 ++++++++++++++++++++++++++++------------------- src/battle_tent.c | 190 ++++++++++---- src/hall_of_fame.c | 37 +-- src/save.c | 5 +- src/save_failed_screen.c | 8 +- 5 files changed, 541 insertions(+), 351 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index 486449f94..07c5c9e10 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -1,4 +1,5 @@ #include "global.h" +#include "battle_factory.h" #include "sprite.h" #include "event_data.h" #include "overworld.h" @@ -115,14 +116,10 @@ struct FactorySwapMonsStruct u8 yesNoCursorPos; u8 actionsCount; const struct SwapActionIdAndFunc *actionsData; - u8 unk1C; - u8 unk1D; - u8 unk1E; - u8 unk1F; + u8 unused1C[4]; bool8 monSwapped; u8 fadeSpeciesNameTaskId; - u8 unk22; - u8 unk23; + bool8 unk22; u16 unk24; bool8 unk26; u8 unk27; @@ -142,9 +139,11 @@ extern const struct BattleFrontierTrainer gBattleFrontierTrainers[]; extern const u8 gUnknown_085B18AC[]; extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot); +extern u8 sub_81A6F70(u8 battleMode, u8 lvlMode); +extern u8 sub_81A6CA8(u8 arg0, u8 arg1); // This file's functions. -void sub_819A44C(struct Sprite *sprite); +static void sub_819A44C(struct Sprite *sprite); static void CB2_InitSelectScreen(void); static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V); static void Select_InitMonsData(void); @@ -168,95 +167,97 @@ static void Task_HandleSelectionScreenMenu(u8 taskId); static void CreateFrontierFactorySelectableMons(u8 firstMonId); static void CreateTentFactorySelectableMons(u8 firstMonId); static void Select_SetBallSpritePaletteNum(u8 id); -void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1); +static void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1); static void sub_819B958(u8 windowId); -void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen); -void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen); +static void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen); +static void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen); static u8 Select_RunMenuOptionFunc(void); static u8 sub_819BC9C(void); static u8 Select_OptionSummary(void); static u8 Select_OptionOthers(void); static u8 Select_OptionRentDeselect(void); -u8 sub_81A6F70(u8 battleMode, u8 lvlMode); -u8 sub_81A6CA8(u8 arg0, u8 arg1); static bool32 Select_AreSpeciesValid(u16 monSetId); -void Swap_DestroyAllSprites(void); -void Swap_ShowYesNoOptions(void); -void sub_819E8EC(void); -void sub_819EAC0(void); -void Swap_UpdateYesNoCursorPosition(s8 direction); -void Swap_UpdateMenuCursorPosition(s8 direction); -void sub_819EA64(u8 windowId); -void sub_819D770(u8 taskId); -void Task_HandleSwapScreenChooseMons(u8 taskId); -void sub_819D588(u8 taskId); -void sub_819F7B4(u8 taskId); -void Swap_PrintOnInfoWindow(const u8 *str); -void Swap_ShowMenuOptions(void); -void Swap_PrintMenuOptions(void); -void Swap_PrintYesNoOptions(void); -void Swap_PrintMonSpecies(void); -void Swap_PrintMonSpecies2(void); -void Swap_PrintMonSpecies3(void); -void Swap_PrintMonCategory(void); -void Swap_InitAllSprites(void); -void Swap_PrintPkmnSwap(void); -void sub_819EADC(void); -void sub_819EAF8(void); -void CB2_InitSwapScreen(void); -void Swap_ShowSummaryMonSprite(void); -void Swap_UpdateActionCursorPosition(s8 direction); -void Swap_UpdateBallCursorPosition(s8 direction); -void Swap_RunMenuOptionFunc(u8 taskId); -void sub_819F0CC(u8 taskId); -void sub_819F114(u8 taskId); -void sub_819F134(u8 taskId); -void Swap_RunActionFunc(u8 taskId); -void sub_819F69C(u8 taskId); -void Task_SwapCantHaveSameMons(u8 taskId); -void Swap_PrintActionStrings(void); -void Swap_PrintActionStrings2(void); -void Swap_PrintOneActionString(u8 which); -void Swap_InitActions(u8 id); -void sub_819E838(u8 arg0); -bool8 Swap_AlreadyHasSameSpecies(u8 monId); -void sub_819F600(struct Sprite *sprite); +static void Swap_DestroyAllSprites(void); +static void Swap_ShowYesNoOptions(void); +static void sub_819E8EC(void); +static void sub_819EAC0(void); +static void Swap_UpdateYesNoCursorPosition(s8 direction); +static void Swap_UpdateMenuCursorPosition(s8 direction); +static void sub_819EA64(u8 windowId); +static void sub_819D770(u8 taskId); +static void Task_HandleSwapScreenChooseMons(u8 taskId); +static void sub_819D588(u8 taskId); +static void sub_819F7B4(u8 taskId); +static void Swap_PrintOnInfoWindow(const u8 *str); +static void Swap_ShowMenuOptions(void); +static void Swap_PrintMenuOptions(void); +static void Swap_PrintYesNoOptions(void); +static void Swap_PrintMonSpecies(void); +static void Swap_PrintMonSpecies2(void); +static void Swap_PrintMonSpecies3(void); +static void Swap_PrintMonCategory(void); +static void Swap_InitAllSprites(void); +static void Swap_PrintPkmnSwap(void); +static void sub_819EADC(void); +static void sub_819EAF8(void); +static void CB2_InitSwapScreen(void); +static void Swap_ShowSummaryMonSprite(void); +static void Swap_UpdateActionCursorPosition(s8 direction); +static void Swap_UpdateBallCursorPosition(s8 direction); +static void Swap_RunMenuOptionFunc(u8 taskId); +static void sub_819F0CC(u8 taskId); +static void sub_819F114(u8 taskId); +static void sub_819F134(u8 taskId); +static void Swap_RunActionFunc(u8 taskId); +static void sub_819F69C(u8 taskId); +static void Task_SwapCantHaveSameMons(u8 taskId); +static void Swap_ShowMonSprite(void); +static void Swap_PrintActionStrings(void); +static void Swap_PrintActionStrings2(void); +static void Swap_PrintOneActionString(u8 which); +static void Swap_InitActions(u8 id); +static void sub_819E838(u8 arg0); +static bool8 Swap_AlreadyHasSameSpecies(u8 monId); +static void sub_819F600(struct Sprite *sprite); +static void Swap_ActionMon(u8 taskId); +static void Swap_ActionCancel(u8 taskId); +static void Swap_ActionPkmnForSwap(u8 taskId); // Ewram variables -EWRAM_DATA u8 *gUnknown_0203CE2C = NULL; -EWRAM_DATA u8 *gUnknown_0203CE30 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE34 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE38 = NULL; -EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; -EWRAM_DATA u8 *gUnknown_0203CE40 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE44 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE48 = NULL; -EWRAM_DATA u8 *gUnknown_0203CE4C = NULL; +static EWRAM_DATA u8 *sSelectMenuTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSelectMonCardBgTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSelectMenuTilemapBuffer = NULL; +static EWRAM_DATA u8 *sSelectMonCardBgTilemapBuffer = NULL; +static EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL; +static EWRAM_DATA u8 *sSwapMenuTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSwapMonCardBgTilesetBuffer = NULL; +static EWRAM_DATA u8 *sSwapMenuTilemapBuffer = NULL; +static EWRAM_DATA u8 *sSwapMonCardBgTilemapBuffer = NULL; // IWRAM bss -IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; -IWRAM_DATA void (*gUnknown_03001280)(u8 taskId); -IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen; +static IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen; +static IWRAM_DATA void (*sSwap_CurrentTableFunc)(u8 taskId); +static IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen; // Const rom data. -const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal"); -const u16 gUnknown_0860F15C[] = INCBIN_U16("graphics/unknown/unknown_60F15C.gbapal"); -const u16 gUnknown_0860F17C[] = INCBIN_U16("graphics/unknown/unknown_60F17C.gbapal"); -const u8 gUnknown_0860F1BC[] = INCBIN_U8("graphics/unknown/unknown_60F1BC.4bpp"); -const u8 gUnknown_0860F3BC[] = INCBIN_U8("graphics/unknown/unknown_60F3BC.4bpp"); -const u8 gUnknown_0860F43C[] = INCBIN_U8("graphics/unknown/unknown_60F43C.4bpp"); -const u8 gUnknown_0860F53C[] = INCBIN_U8("graphics/unknown/unknown_60F53C.4bpp"); -const u8 gUnknown_0860F63C[] = INCBIN_U8("graphics/unknown/unknown_60F63C.4bpp"); -const u8 gUnknown_0860F6BC[] = INCBIN_U8("graphics/unknown/unknown_60F6BC.4bpp"); -const u8 gUnknown_0860F7BC[] = INCBIN_U8("graphics/unknown/unknown_60F7BC.4bpp"); -const u8 gUnknown_0860F83C[] = INCBIN_U8("graphics/unknown/unknown_60F83C.4bpp"); -const u8 gUnknown_0860F93C[] = INCBIN_U8("graphics/unknown/unknown_60F93C.4bpp"); -const u8 gUnknown_0860FA3C[] = INCBIN_U8("graphics/unknown/unknown_60FA3C.4bpp"); -const u8 gUnknown_0861023C[] = INCBIN_U8("graphics/unknown/unknown_61023C.bin"); -const u8 gUnknown_0861033C[] = INCBIN_U8("graphics/unknown/unknown_61033C.4bpp"); -const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbapal"); - -const struct SpriteSheet gUnknown_086103BC[] = +static const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal"); +static const u16 gUnknown_0860F15C[] = INCBIN_U16("graphics/unknown/unknown_60F15C.gbapal"); +static const u16 gUnknown_0860F17C[] = INCBIN_U16("graphics/unknown/unknown_60F17C.gbapal"); +static const u8 gUnknown_0860F1BC[] = INCBIN_U8("graphics/unknown/unknown_60F1BC.4bpp"); +static const u8 gUnknown_0860F3BC[] = INCBIN_U8("graphics/unknown/unknown_60F3BC.4bpp"); +static const u8 gUnknown_0860F43C[] = INCBIN_U8("graphics/unknown/unknown_60F43C.4bpp"); +static const u8 gUnknown_0860F53C[] = INCBIN_U8("graphics/unknown/unknown_60F53C.4bpp"); +static const u8 gUnknown_0860F63C[] = INCBIN_U8("graphics/unknown/unknown_60F63C.4bpp"); +static const u8 gUnknown_0860F6BC[] = INCBIN_U8("graphics/unknown/unknown_60F6BC.4bpp"); +static const u8 gUnknown_0860F7BC[] = INCBIN_U8("graphics/unknown/unknown_60F7BC.4bpp"); +static const u8 gUnknown_0860F83C[] = INCBIN_U8("graphics/unknown/unknown_60F83C.4bpp"); +static const u8 gUnknown_0860F93C[] = INCBIN_U8("graphics/unknown/unknown_60F93C.4bpp"); +static const u8 gUnknown_0860FA3C[] = INCBIN_U8("graphics/unknown/unknown_60FA3C.4bpp"); +static const u8 gUnknown_0861023C[] = INCBIN_U8("graphics/unknown/unknown_61023C.bin"); +static const u8 gUnknown_0861033C[] = INCBIN_U8("graphics/unknown/unknown_61033C.4bpp"); +static const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbapal"); + +static const struct SpriteSheet gUnknown_086103BC[] = { {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), TAG_TILE_65}, {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), TAG_TILE_66}, @@ -265,13 +266,13 @@ const struct SpriteSheet gUnknown_086103BC[] = {}, }; -const struct CompressedSpriteSheet gUnknown_086103E4[] = +static const struct CompressedSpriteSheet gUnknown_086103E4[] = { {gUnknown_085B18AC, 0x800, TAG_TILE_64}, {}, }; -const struct SpritePalette gUnknown_086103F4[] = +static const struct SpritePalette gUnknown_086103F4[] = { {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, @@ -280,14 +281,14 @@ const struct SpritePalette gUnknown_086103F4[] = {}, }; -u8 (* const sSelect_MenuOptionFuncs[])(void) = +u8 static (* const sSelect_MenuOptionFuncs[])(void) = { [MENU_SUMMARY] = Select_OptionSummary, [MENU_RENT] /*Or Deselect*/ = Select_OptionRentDeselect, [MENU_OTHERS] = Select_OptionOthers }; -static const struct BgTemplate gUnknown_08610428[3] = +static const struct BgTemplate sSelect_BgTemplates[] = { { .bg = 0, @@ -318,7 +319,7 @@ static const struct BgTemplate gUnknown_08610428[3] = }, }; -static const struct WindowTemplate gUnknown_08610434[] = +static const struct WindowTemplate sSelect_WindowTemplates[] = { { .priority = 0, @@ -551,8 +552,8 @@ static const union AffineAnimCmd * const gUnknown_086105CC[] = static const struct SpriteTemplate gUnknown_086105D8 = { - .tileTag = 0x0064, - .paletteTag = 0x0064, + .tileTag = TAG_TILE_64, + .paletteTag = TAG_PAL_BALL_GREY, .oam = &gUnknown_0861047C, .anims = gUnknown_08610504, .images = NULL, @@ -562,8 +563,8 @@ static const struct SpriteTemplate gUnknown_086105D8 = static const struct SpriteTemplate gUnknown_086105F0 = { - .tileTag = 0x0065, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_65, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_08610484, .anims = gUnknown_086104FC, .images = NULL, @@ -573,8 +574,8 @@ static const struct SpriteTemplate gUnknown_086105F0 = static const struct SpriteTemplate gUnknown_08610608 = { - .tileTag = 0x0066, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_66, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_0861048C, .anims = gUnknown_086104FC, .images = NULL, @@ -584,8 +585,8 @@ static const struct SpriteTemplate gUnknown_08610608 = static const struct SpriteTemplate gUnknown_08610620 = { - .tileTag = 0x0067, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_67, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_0861048C, .anims = gUnknown_086104FC, .images = NULL, @@ -595,8 +596,8 @@ static const struct SpriteTemplate gUnknown_08610620 = static const struct SpriteTemplate gUnknown_08610638 = { - .tileTag = 0x006d, - .paletteTag = 0x0067, + .tileTag = TAG_TILE_6D, + .paletteTag = TAG_PAL_67, .oam = &gUnknown_08610494, .anims = gUnknown_08610500, .images = NULL, @@ -606,30 +607,30 @@ static const struct SpriteTemplate gUnknown_08610638 = static const struct SpriteSheet gUnknown_08610650[] = { - {gUnknown_0860F3BC, 0x0080, 0x0065}, - {gUnknown_0860F43C, 0x0100, 0x0066}, - {gUnknown_0860F53C, 0x0100, 0x0067}, - {gUnknown_0860F63C, 0x0080, 0x0068}, - {gUnknown_0860F6BC, 0x0100, 0x0069}, - {gUnknown_0860F7BC, 0x0100, 0x006a}, - {gUnknown_0860F83C, 0x0100, 0x006b}, - {gUnknown_0860F93C, 0x0100, 0x006c}, - {gUnknown_0860FA3C, 0x0800, 0x006d}, + {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), TAG_TILE_65}, + {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), TAG_TILE_66}, + {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), TAG_TILE_67}, + {gUnknown_0860F63C, sizeof(gUnknown_0860F63C), TAG_TILE_68}, + {gUnknown_0860F6BC, sizeof(gUnknown_0860F6BC), TAG_TILE_69}, + {gUnknown_0860F7BC, 0x100, TAG_TILE_6A}, + {gUnknown_0860F83C, sizeof(gUnknown_0860F83C), TAG_TILE_6B}, + {gUnknown_0860F93C, sizeof(gUnknown_0860F93C), TAG_TILE_6C}, + {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), TAG_TILE_6D}, {}, }; static const struct CompressedSpriteSheet gUnknown_086106A0[] = { - {gUnknown_085B18AC, 0x0800, 0x0064}, + {gUnknown_085B18AC, 0x800, TAG_TILE_64}, {}, }; static const struct SpritePalette gUnknown_086106B0[] = { - {gUnknown_0860F13C, 0x0064}, - {gUnknown_0860F15C, 0x0065}, - {gUnknown_0860F17C, 0x0066}, - {gUnknown_0861039C, 0x0067}, + {gUnknown_0860F13C, TAG_PAL_BALL_GREY}, + {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED}, + {gUnknown_0860F17C, TAG_PAL_66}, + {gUnknown_0861039C, TAG_PAL_67}, {}, }; @@ -802,8 +803,8 @@ static const union AffineAnimCmd * const gUnknown_08610828[] = static const struct SpriteTemplate gUnknown_08610834 = { - .tileTag = 0x0064, - .paletteTag = 0x0064, + .tileTag = TAG_TILE_64, + .paletteTag = TAG_PAL_BALL_GREY, .oam = &gUnknown_086106D8, .anims = gUnknown_08610760, .images = NULL, @@ -813,8 +814,8 @@ static const struct SpriteTemplate gUnknown_08610834 = static const struct SpriteTemplate gUnknown_0861084C = { - .tileTag = 0x0065, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_65, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_086106E0, .anims = gUnknown_08610758, .images = NULL, @@ -824,8 +825,8 @@ static const struct SpriteTemplate gUnknown_0861084C = static const struct SpriteTemplate gUnknown_08610864 = { - .tileTag = 0x0066, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_66, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_086106E8, .anims = gUnknown_08610758, .images = NULL, @@ -835,8 +836,8 @@ static const struct SpriteTemplate gUnknown_08610864 = static const struct SpriteTemplate gUnknown_0861087C = { - .tileTag = 0x0067, - .paletteTag = 0x0066, + .tileTag = TAG_TILE_67, + .paletteTag = TAG_PAL_66, .oam = &gUnknown_086106E8, .anims = gUnknown_08610758, .images = NULL, @@ -846,8 +847,8 @@ static const struct SpriteTemplate gUnknown_0861087C = static const struct SpriteTemplate gUnknown_08610894 = { - .tileTag = 0x006d, - .paletteTag = 0x0067, + .tileTag = TAG_TILE_6D, + .paletteTag = TAG_PAL_67, .oam = &gUnknown_086106F0, .anims = gUnknown_0861075C, .images = NULL, @@ -855,14 +856,14 @@ static const struct SpriteTemplate gUnknown_08610894 = .callback = SpriteCallbackDummy }; -void (* const sSwap_MenuOptionFuncs[])(u8 taskId) = +void static (* const sSwap_MenuOptionFuncs[])(u8 taskId) = { sub_819F114, sub_819F0CC, sub_819F134, }; -static const struct BgTemplate gUnknown_086108B8[4] = +static const struct BgTemplate sSwap_BgTemplates[4] = { { .bg = 0, @@ -902,7 +903,7 @@ static const struct BgTemplate gUnknown_086108B8[4] = }, }; -static const struct WindowTemplate gUnknown_086108C8[] = +static const struct WindowTemplate sSwap_WindowTemplates[] = { { .priority = 0, @@ -988,13 +989,26 @@ static const struct WindowTemplate gUnknown_086108C8[] = DUMMY_WIN_TEMPLATE, }; -//const u16 gUnknown_08610918[] = {0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x1f, 0x00}; // palette -//const u8 gUnknown_08610922[] = {0x00, 0x02, 0x00}; -//const u8 gUnknown_08610925[] = {0x00, 0x04, 0x00}; +static const u16 gUnknown_08610918[] = {0x0, 0x0, 0x7FFF, 0x0, 0x1F}; // Palette. +static const u8 gUnknown_08610922[] = {0x0, 0x02, 0x0}; +static const u8 gUnknown_08610925[] = {0x0, 0x04, 0x0}; -extern const u16 gUnknown_08610918[]; -extern const u8 gUnknown_08610922[]; -extern const u8 gUnknown_08610925[]; +static const struct SwapActionIdAndFunc sSwap_PlayerScreenActions[] = +{ + {1, Swap_ActionMon}, + {1, Swap_ActionMon}, + {1, Swap_ActionMon}, + {3, Swap_ActionCancel}, +}; + +static const struct SwapActionIdAndFunc sSwap_EnemyScreenActions[] = +{ + {1, Swap_ActionMon}, + {1, Swap_ActionMon}, + {1, Swap_ActionMon}, + {2, Swap_ActionPkmnForSwap}, + {3, Swap_ActionCancel}, +}; // gfx extern const u8 gFrontierFactorySelectMenu_Gfx[]; @@ -1029,7 +1043,7 @@ extern const u8 gText_SamePkmnInPartyAlready[]; extern const u8 gText_Cancel3[]; // code -void sub_819A44C(struct Sprite *sprite) +static void sub_819A44C(struct Sprite *sprite) { if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED)) { @@ -1076,7 +1090,7 @@ static void Select_VblankCb(void) TransferPlttBuffer(); } -void sub_819A4F8(void) +void DoBattleFactorySelectScreen(void) { sFactorySelectScreen = NULL; SetMainCallback2(CB2_InitSelectScreen); @@ -1095,16 +1109,16 @@ static void CB2_InitSelectScreen(void) SetVBlankCallback(NULL); CpuFill32(0, (void *)VRAM, VRAM_SIZE); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_08610428, ARRAY_COUNT(gUnknown_08610428)); - InitWindows(gUnknown_08610434); + InitBgsFromTemplates(0, sSelect_BgTemplates, ARRAY_COUNT(sSelect_BgTemplates)); + InitWindows(sSelect_WindowTemplates); DeactivateAllTextPrinters(); gMain.state++; break; case 1: - gUnknown_0203CE2C = Alloc(0x440); - gUnknown_0203CE30 = AllocZeroed(0x440); - gUnknown_0203CE34 = Alloc(0x800); - gUnknown_0203CE38 = AllocZeroed(0x800); + sSelectMenuTilesetBuffer = Alloc(0x440); + sSelectMonCardBgTilesetBuffer = AllocZeroed(0x440); + sSelectMenuTilemapBuffer = Alloc(0x800); + sSelectMonCardBgTilemapBuffer = AllocZeroed(0x800); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -1128,12 +1142,12 @@ static void CB2_InitSelectScreen(void) ResetSpriteData(); ResetTasks(); FreeAllSpritePalettes(); - CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE2C, 0x440); - CpuCopy16(gUnknown_0861033C, gUnknown_0203CE30, 0x60); - LoadBgTiles(1, gUnknown_0203CE2C, 0x440, 0); - LoadBgTiles(3, gUnknown_0203CE30, 0x60, 0); - CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE34, 0x800); - LoadBgTilemap(1, gUnknown_0203CE34, 0x800, 0); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, sSelectMenuTilesetBuffer, 0x440); + CpuCopy16(gUnknown_0861033C, sSelectMonCardBgTilesetBuffer, 0x60); + LoadBgTiles(1, sSelectMenuTilesetBuffer, 0x440, 0); + LoadBgTiles(3, sSelectMonCardBgTilesetBuffer, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSelectMenuTilemapBuffer, 0x800); + LoadBgTilemap(1, sSelectMenuTilemapBuffer, 0x800, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); LoadPalette(gUnknown_0861046C, 0xF0, 8); LoadPalette(gUnknown_0861046C, 0xE0, 10); @@ -1143,7 +1157,7 @@ static void CB2_InitSelectScreen(void) gMain.state++; break; case 3: - SetBgTilemapBuffer(3, gUnknown_0203CE38); + SetBgTilemapBuffer(3, sSelectMonCardBgTilemapBuffer); CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8); CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8); @@ -1405,10 +1419,10 @@ static void Task_FromSelectScreenToSummaryScreen(u8 taskId) DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); sub_819F444(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0); Select_DestroyAllSprites(); - FREE_AND_SET_NULL(gUnknown_0203CE2C); - FREE_AND_SET_NULL(gUnknown_0203CE30); - FREE_AND_SET_NULL(gUnknown_0203CE34); - FREE_AND_SET_NULL(gUnknown_0203CE38); + FREE_AND_SET_NULL(sSelectMenuTilesetBuffer); + FREE_AND_SET_NULL(sSelectMonCardBgTilesetBuffer); + FREE_AND_SET_NULL(sSelectMenuTilemapBuffer); + FREE_AND_SET_NULL(sSelectMonCardBgTilemapBuffer); FreeAllWindowBuffers(); gTasks[taskId].data[0] = 8; } @@ -1442,9 +1456,9 @@ static void Task_CloseSelectionScreen(u8 taskId) Select_CopyMonsToPlayerParty(); DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId); Select_DestroyAllSprites(); - FREE_AND_SET_NULL(gUnknown_0203CE2C); - FREE_AND_SET_NULL(gUnknown_0203CE34); - FREE_AND_SET_NULL(gUnknown_0203CE38); + FREE_AND_SET_NULL(sSelectMenuTilesetBuffer); + FREE_AND_SET_NULL(sSelectMenuTilemapBuffer); + FREE_AND_SET_NULL(sSelectMonCardBgTilemapBuffer); FREE_AND_SET_NULL(sFactorySelectScreen); FreeAllWindowBuffers(); SetMainCallback2(CB2_ReturnToFieldContinueScript); @@ -1924,7 +1938,7 @@ static void Select_PrintMonCategory(void) } } -void sub_819BD70(void) +static void Summary_ShowMonSprite(void) { u8 monId = sFactorySelectScreen->cursorPos; struct Pokemon *mon = &sFactorySelectScreen->mons[monId].monData; @@ -1939,7 +1953,7 @@ void sub_819BD70(void) sFactorySelectScreen->unk2A0 = FALSE; } -void sub_819BE20(bool8 arg0) +static void sub_819BE20(bool8 arg0) { sFactorySelectScreen->unk2A0 = arg0; } @@ -2231,7 +2245,7 @@ static void Task_SelectFadeSpeciesName(u8 taskId) // Swap Screen's section begins here. -void Swap_CB2(void) +static void Swap_CB2(void) { AnimateSprites(); BuildOamBuffer(); @@ -2240,14 +2254,14 @@ void Swap_CB2(void) RunTasks(); } -void Swap_VblankCb(void) +static void Swap_VblankCb(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void CopySwappedMonData(void) +static void CopySwappedMonData(void) { u8 happiness; @@ -2260,7 +2274,7 @@ void CopySwappedMonData(void) gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ALT_ABILITY, NULL); } -void Task_FromSwapScreenToSummaryScreen(u8 taskId) +static void Task_FromSwapScreenToSummaryScreen(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2274,10 +2288,10 @@ void Task_FromSwapScreenToSummaryScreen(u8 taskId) DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30); Swap_DestroyAllSprites(); - FREE_AND_SET_NULL(gUnknown_0203CE40); - FREE_AND_SET_NULL(gUnknown_0203CE44); - FREE_AND_SET_NULL(gUnknown_0203CE48); - FREE_AND_SET_NULL(gUnknown_0203CE4C); + FREE_AND_SET_NULL(sSwapMenuTilesetBuffer); + FREE_AND_SET_NULL(sSwapMonCardBgTilesetBuffer); + FREE_AND_SET_NULL(sSwapMenuTilemapBuffer); + FREE_AND_SET_NULL(sSwapMonCardBgTilemapBuffer); FreeAllWindowBuffers(); gTasks[taskId].data[0] = 8; } @@ -2291,7 +2305,7 @@ void Task_FromSwapScreenToSummaryScreen(u8 taskId) } } -void Task_CloseSwapScreen(u8 taskId) +static void Task_CloseSwapScreen(u8 taskId) { if (sFactorySwapScreen->unk30 != TRUE) { @@ -2326,10 +2340,10 @@ void Task_CloseSwapScreen(u8 taskId) { DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId); Swap_DestroyAllSprites(); - FREE_AND_SET_NULL(gUnknown_0203CE40); - FREE_AND_SET_NULL(gUnknown_0203CE44); - FREE_AND_SET_NULL(gUnknown_0203CE48); - FREE_AND_SET_NULL(gUnknown_0203CE4C); + FREE_AND_SET_NULL(sSwapMenuTilesetBuffer); + FREE_AND_SET_NULL(sSwapMonCardBgTilesetBuffer); + FREE_AND_SET_NULL(sSwapMenuTilemapBuffer); + FREE_AND_SET_NULL(sSwapMonCardBgTilemapBuffer); FREE_AND_SET_NULL(sFactorySwapScreen); FreeAllWindowBuffers(); SetMainCallback2(CB2_ReturnToFieldContinueScript); @@ -2340,7 +2354,7 @@ void Task_CloseSwapScreen(u8 taskId) } } -void Task_HandleSwapScreenYesNo(u8 taskId) +static void Task_HandleSwapScreenYesNo(u8 taskId) { u16 loPtr, hiPtr; @@ -2396,7 +2410,7 @@ void Task_HandleSwapScreenYesNo(u8 taskId) } } -void sub_819CBDC(u8 taskId) +static void sub_819CBDC(u8 taskId) { if (gTasks[taskId].data[1] == 1) { @@ -2413,7 +2427,7 @@ void sub_819CBDC(u8 taskId) } } -void sub_819CC24(u8 taskId) +static void sub_819CC24(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -2426,7 +2440,7 @@ void sub_819CC24(u8 taskId) } } -void sub_819CC74(u8 taskId) +static void sub_819CC74(u8 taskId) { sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); if (gTasks[taskId].data[1] == 1) @@ -2444,7 +2458,7 @@ void sub_819CC74(u8 taskId) } } -void sub_819CCD4(u8 taskId) +static void sub_819CCD4(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -2458,7 +2472,7 @@ void sub_819CCD4(u8 taskId) } } -void Task_HandleSwapScreenMenu(u8 taskId) +static void Task_HandleSwapScreenMenu(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2506,14 +2520,14 @@ void Task_HandleSwapScreenMenu(u8 taskId) } } -void Task_HandleSwapScreenChooseMons(u8 taskId) +static void Task_HandleSwapScreenChooseMons(u8 taskId) { switch (gTasks[taskId].data[0]) { case 0: if (!gPaletteFade.active) { - sFactorySwapScreen->unk22 = 1; + sFactorySwapScreen->unk22 = TRUE; gTasks[taskId].data[0] = 1; } break; @@ -2521,7 +2535,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sFactorySwapScreen->unk22 = 0; + sFactorySwapScreen->unk22 = FALSE; Swap_PrintMonSpecies2(); sub_819EAC0(); Swap_RunActionFunc(taskId); @@ -2529,7 +2543,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) else if (gMain.newKeys & B_BUTTON) { PlaySE(SE_SELECT); - sFactorySwapScreen->unk22 = 0; + sFactorySwapScreen->unk22 = FALSE; Swap_PrintMonSpecies2(); sub_819EAC0(); gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 16; @@ -2566,7 +2580,7 @@ void Task_HandleSwapScreenChooseMons(u8 taskId) } } -void Task_SwapFadeSpeciesName(u8 taskId) +static void Task_SwapFadeSpeciesName(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2621,7 +2635,7 @@ void Task_SwapFadeSpeciesName(u8 taskId) } } -void Task_SwapFadeSpeciesName2(u8 taskId) +static void Task_SwapFadeSpeciesName2(u8 taskId) { switch (gTasks[taskId].data[0]) { @@ -2652,7 +2666,7 @@ void Task_SwapFadeSpeciesName2(u8 taskId) } } -void sub_819D12C(u8 taskId) +static void sub_819D12C(u8 taskId) { s8 i; u8 var_2C; @@ -2728,7 +2742,7 @@ void sub_819D12C(u8 taskId) } } -void sub_819D324(u8 taskId) +static void sub_819D324(u8 taskId) { u8 i, j; s32 posX = 0; @@ -2840,7 +2854,7 @@ void sub_819D324(u8 taskId) } } -void sub_819D588(u8 taskId) +static void sub_819D588(u8 taskId) { u8 anotherTaskId; u16 loPtr, hiPtr; @@ -2918,7 +2932,7 @@ void sub_819D588(u8 taskId) } } -void sub_819D770(u8 taskId) +static void sub_819D770(u8 taskId) { u8 anotherTaskId; u16 loPtr, hiPtr; @@ -3010,7 +3024,7 @@ void sub_819D770(u8 taskId) case 8: Swap_PrintMonSpecies3(); sub_819EADC(); - sFactorySwapScreen->unk22 = 1; + sFactorySwapScreen->unk22 = TRUE; gTasks[taskId].data[0] = gTasks[taskId].data[5]; loPtr = gTasks[taskId].data[6]; hiPtr = gTasks[taskId].data[7]; @@ -3019,7 +3033,7 @@ void sub_819D770(u8 taskId) } } -void sub_819D9EC(u8 taskId) +static void sub_819D9EC(u8 taskId) { u8 i; if (sFactorySwapScreen->unk30 == TRUE) @@ -3074,7 +3088,7 @@ void sub_819D9EC(u8 taskId) } } -void Swap_InitStruct(void) +static void Swap_InitStruct(void) { if (sFactorySwapScreen == NULL) { @@ -3085,13 +3099,13 @@ void Swap_InitStruct(void) } } -void sub_819DC00(void) +void DoBattleFactorySwapScreen(void) { sFactorySwapScreen = NULL; SetMainCallback2(CB2_InitSwapScreen); } -void CB2_InitSwapScreen(void) +static void CB2_InitSwapScreen(void) { u8 taskId; @@ -3102,16 +3116,16 @@ void CB2_InitSwapScreen(void) SetVBlankCallback(NULL); CpuFill32(0, (void *)VRAM, VRAM_SIZE); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_086108B8, ARRAY_COUNT(gUnknown_086108B8)); - InitWindows(gUnknown_086108C8); + InitBgsFromTemplates(0, sSwap_BgTemplates, ARRAY_COUNT(sSwap_BgTemplates)); + InitWindows(sSwap_WindowTemplates); DeactivateAllTextPrinters(); gMain.state++; break; case 1: - gUnknown_0203CE40 = Alloc(0x440); - gUnknown_0203CE44 = AllocZeroed(0x440); - gUnknown_0203CE48 = Alloc(0x800); - gUnknown_0203CE4C = AllocZeroed(0x800); + sSwapMenuTilesetBuffer = Alloc(0x440); + sSwapMonCardBgTilesetBuffer = AllocZeroed(0x440); + sSwapMenuTilemapBuffer = Alloc(0x800); + sSwapMonCardBgTilemapBuffer = AllocZeroed(0x800); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -3136,12 +3150,12 @@ void CB2_InitSwapScreen(void) ResetTasks(); FreeAllSpritePalettes(); ResetAllPicSprites(); - CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE40, 0x440); - CpuCopy16(gUnknown_0861033C, gUnknown_0203CE44, 0x60); - LoadBgTiles(1, gUnknown_0203CE40, 0x440, 0); - LoadBgTiles(3, gUnknown_0203CE44, 0x60, 0); - CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE48, 0x800); - LoadBgTilemap(1, gUnknown_0203CE48, 0x800, 0); + CpuCopy16(gFrontierFactorySelectMenu_Gfx, sSwapMenuTilesetBuffer, 0x440); + CpuCopy16(gUnknown_0861033C, sSwapMonCardBgTilesetBuffer, 0x60); + LoadBgTiles(1, sSwapMenuTilesetBuffer, 0x440, 0); + LoadBgTiles(3, sSwapMonCardBgTilesetBuffer, 0x60, 0); + CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSwapMenuTilemapBuffer, 0x800); + LoadBgTilemap(1, sSwapMenuTilemapBuffer, 0x800, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); LoadPalette(gUnknown_08610918, 0xF0, 10); LoadPalette(gUnknown_08610918, 0xE0, 10); @@ -3149,7 +3163,7 @@ void CB2_InitSwapScreen(void) gMain.state++; break; case 3: - SetBgTilemapBuffer(3, gUnknown_0203CE4C); + SetBgTilemapBuffer(3, sSwapMonCardBgTilemapBuffer); CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8); CopyBgTilemapBufferToVram(3); gMain.state++; @@ -3247,13 +3261,7 @@ void CB2_InitSwapScreen(void) } } -extern const struct SpriteTemplate gUnknown_08610834; -extern const struct SpriteTemplate gUnknown_0861084C; -extern const struct SpriteTemplate gUnknown_08610864; -extern const struct SpriteTemplate gUnknown_0861087C; -extern const struct SpriteTemplate gUnknown_08610894; - -void Swap_InitAllSprites(void) +static void Swap_InitAllSprites(void) { u8 i; u8 x; @@ -3344,7 +3352,7 @@ void Swap_InitAllSprites(void) gSprites[sFactorySwapScreen->unk8[0][2]].invisible = 0; } -void Swap_DestroyAllSprites(void) +static void Swap_DestroyAllSprites(void) { u8 i, j; @@ -3365,7 +3373,7 @@ void Swap_DestroyAllSprites(void) } } -void Swap_HandleActionCursorChange(u8 cursorId) +static void Swap_HandleActionCursorChange(u8 cursorId) { if (cursorId < 3) { @@ -3380,7 +3388,7 @@ void Swap_HandleActionCursorChange(u8 cursorId) } } -void Swap_UpdateBallCursorPosition(s8 direction) +static void Swap_UpdateBallCursorPosition(s8 direction) { u8 cursorPos; PlaySE(SE_SELECT); @@ -3403,7 +3411,7 @@ void Swap_UpdateBallCursorPosition(s8 direction) Swap_HandleActionCursorChange(cursorPos); } -void Swap_UpdateActionCursorPosition(s8 direction) +static void Swap_UpdateActionCursorPosition(s8 direction) { u8 cursorPos; PlaySE(SE_SELECT); @@ -3430,7 +3438,7 @@ void Swap_UpdateActionCursorPosition(s8 direction) Swap_HandleActionCursorChange(cursorPos); } -void Swap_UpdateYesNoCursorPosition(s8 direction) +static void Swap_UpdateYesNoCursorPosition(s8 direction) { if (direction > 0) // Move cursor down. { @@ -3451,7 +3459,7 @@ void Swap_UpdateYesNoCursorPosition(s8 direction) gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112; } -void Swap_UpdateMenuCursorPosition(s8 direction) +static void Swap_UpdateMenuCursorPosition(s8 direction) { PlaySE(SE_SELECT); if (direction > 0) // Move cursor down. @@ -3473,7 +3481,7 @@ void Swap_UpdateMenuCursorPosition(s8 direction) gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; } -void sub_819E838(u8 arg0) +static void sub_819E838(u8 arg0) { u8 i; @@ -3494,7 +3502,7 @@ void sub_819E838(u8 arg0) } } -void sub_819E8EC(void) +static void sub_819E8EC(void) { u8 i; @@ -3506,7 +3514,7 @@ void sub_819E8EC(void) } } -void Swap_ShowMenuOptions(void) +static void Swap_ShowMenuOptions(void) { if (sFactorySwapScreen->fromSummaryScreen == TRUE) sFactorySwapScreen->fromSummaryScreen = FALSE; @@ -3524,7 +3532,7 @@ void Swap_ShowMenuOptions(void) Swap_PrintMenuOptions(); } -void Swap_ShowYesNoOptions(void) +static void Swap_ShowYesNoOptions(void) { sFactorySwapScreen->yesNoCursorPos = 0; @@ -3539,7 +3547,7 @@ void Swap_ShowYesNoOptions(void) Swap_PrintYesNoOptions(); } -void sub_819EA64(u8 windowId) +static void sub_819EA64(u8 windowId) { gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; @@ -3548,21 +3556,21 @@ void sub_819EA64(u8 windowId) ClearWindowTilemap(windowId); } -void sub_819EAC0(void) +static void sub_819EAC0(void) { PutWindowTilemap(1); FillWindowPixelBuffer(1, 0); CopyWindowToVram(1, 2); } -void sub_819EADC(void) +static void sub_819EADC(void) { PutWindowTilemap(7); FillWindowPixelBuffer(7, 0); CopyWindowToVram(7, 2); } -void sub_819EAF8(void) +static void sub_819EAF8(void) { sub_819EAC0(); PutWindowTilemap(5); @@ -3570,14 +3578,14 @@ void sub_819EAF8(void) CopyWindowToVram(5, 2); } -void Swap_PrintPkmnSwap(void) +static void Swap_PrintPkmnSwap(void) { FillWindowPixelBuffer(0, 0x11); AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL); CopyWindowToVram(0, 3); } -void Swap_PrintMonSpecies(void) +static void Swap_PrintMonSpecies(void) { u16 species; u8 x; @@ -3601,14 +3609,14 @@ void Swap_PrintMonSpecies(void) } } -void Swap_PrintOnInfoWindow(const u8 *str) +static void Swap_PrintOnInfoWindow(const u8 *str) { FillWindowPixelBuffer(2, 0); AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL); CopyWindowToVram(2, 2); } -void Swap_PrintMenuOptions(void) +static void Swap_PrintMenuOptions(void) { PutWindowTilemap(3); FillWindowPixelBuffer(3, 0); @@ -3618,7 +3626,7 @@ void Swap_PrintMenuOptions(void) CopyWindowToVram(3, 3); } -void Swap_PrintYesNoOptions(void) +static void Swap_PrintYesNoOptions(void) { PutWindowTilemap(4); FillWindowPixelBuffer(4, 0); @@ -3627,13 +3635,13 @@ void Swap_PrintYesNoOptions(void) CopyWindowToVram(4, 3); } -void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) +static void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId) { s32 x = GetStringRightAlignXOffset(0, str, 0x46); AddTextPrinterParameterized3(windowId, 0, x, y, gUnknown_08610922, 0, str); } -void Swap_PrintActionStrings(void) +static void Swap_PrintActionStrings(void) { FillWindowPixelBuffer(5, 0); switch (sFactorySwapScreen->inEnemyScreen) @@ -3647,7 +3655,7 @@ void Swap_PrintActionStrings(void) CopyWindowToVram(5, 3); } -void Swap_PrintActionStrings2(void) +static void Swap_PrintActionStrings2(void) { FillWindowPixelBuffer(3, 0); switch (sFactorySwapScreen->inEnemyScreen) @@ -3661,7 +3669,7 @@ void Swap_PrintActionStrings2(void) CopyWindowToVram(3, 3); } -void Swap_PrintOneActionString(u8 which) +static void Swap_PrintOneActionString(u8 which) { switch (which) { @@ -3676,7 +3684,7 @@ void Swap_PrintOneActionString(u8 which) CopyWindowToVram(3, 3); } -void Swap_PrintMonSpecies2(void) +static void Swap_PrintMonSpecies2(void) { u16 species; u8 x; @@ -3709,7 +3717,7 @@ void Swap_PrintMonSpecies2(void) } } -void Swap_PrintMonSpecies3(void) +static void Swap_PrintMonSpecies3(void) { u16 species; u8 x; @@ -3735,7 +3743,7 @@ void Swap_PrintMonSpecies3(void) } } -void Swap_PrintMonCategory(void) +static void Swap_PrintMonCategory(void) { u16 species; u8 text[30]; @@ -3761,10 +3769,7 @@ void Swap_PrintMonCategory(void) } } -extern const struct SwapActionIdAndFunc gUnknown_08610928[4]; -extern const struct SwapActionIdAndFunc gUnknown_08610948[5]; - -void Swap_InitActions(u8 id) +static void Swap_InitActions(u8 id) { if (sFactorySwapScreen->fromSummaryScreen != TRUE) { @@ -3773,26 +3778,26 @@ void Swap_InitActions(u8 id) case ACTIONS_PLAYER_SCREEN: sFactorySwapScreen->inEnemyScreen = FALSE; sFactorySwapScreen->cursorPos = 0; - sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610928); - sFactorySwapScreen->actionsData = gUnknown_08610928; + sFactorySwapScreen->actionsCount = ARRAY_COUNT(sSwap_PlayerScreenActions); + sFactorySwapScreen->actionsData = sSwap_PlayerScreenActions; break; case ACTIONS_ENEMY_SCREEN: sFactorySwapScreen->inEnemyScreen = TRUE; sFactorySwapScreen->cursorPos = 0; - sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610948); - sFactorySwapScreen->actionsData = gUnknown_08610948; + sFactorySwapScreen->actionsCount = ARRAY_COUNT(sSwap_EnemyScreenActions); + sFactorySwapScreen->actionsData = sSwap_EnemyScreenActions; break; } } } -void Swap_RunMenuOptionFunc(u8 taskId) +static void Swap_RunMenuOptionFunc(u8 taskId) { - gUnknown_03001280 = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos]; - gUnknown_03001280(taskId); + sSwap_CurrentTableFunc = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos]; + sSwap_CurrentTableFunc(taskId); } -void sub_819F0CC(u8 taskId) +static void sub_819F0CC(u8 taskId) { sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); sFactorySwapScreen->playerMonId = sFactorySwapScreen->cursorPos; @@ -3801,13 +3806,13 @@ void sub_819F0CC(u8 taskId) gTasks[taskId].func = sub_819D9EC; } -void sub_819F114(u8 taskId) +static void sub_819F114(u8 taskId) { gTasks[taskId].data[0] = 6; gTasks[taskId].func = Task_FromSwapScreenToSummaryScreen; } -void sub_819F134(u8 taskId) +static void sub_819F134(u8 taskId) { sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE); sub_819EA64(3); @@ -3818,13 +3823,13 @@ void sub_819F134(u8 taskId) gTasks[taskId].func = sub_819D770; } -void Swap_RunActionFunc(u8 taskId) +static void Swap_RunActionFunc(u8 taskId) { - gUnknown_03001280 = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func; - gUnknown_03001280(taskId); + sSwap_CurrentTableFunc = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func; + sSwap_CurrentTableFunc(taskId); } -void sub_819F1AC(u8 taskId) +static void Swap_ActionCancel(u8 taskId) { gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 0x10; gTasks[taskId].data[7] = (u32)(sub_819CC24); @@ -3833,7 +3838,7 @@ void sub_819F1AC(u8 taskId) gTasks[taskId].func = sub_819D588; } -void sub_819F1DC(u8 taskId) +static void Swap_ActionPkmnForSwap(u8 taskId) { gTasks[taskId].data[6] = (u32)(sub_819D9EC) >> 0x10; gTasks[taskId].data[7] = (u32)(sub_819D9EC); @@ -3842,7 +3847,7 @@ void sub_819F1DC(u8 taskId) gTasks[taskId].func = sub_819D588; } -void sub_819F20C(u8 taskId) +static void Swap_ActionMon(u8 taskId) { if (!sFactorySwapScreen->inEnemyScreen) { @@ -3868,7 +3873,7 @@ void sub_819F20C(u8 taskId) gTasks[taskId].func = sub_819D588; } -void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen) +static void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen) { *arg0 = CreateSprite(&gUnknown_08610894, 120, 64, 1); gSprites[*arg0].callback = sub_819F600; @@ -3876,7 +3881,7 @@ void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen) *arg1 = TRUE; } -void Swap_ShowSummaryMonSprite(void) +static void Swap_ShowSummaryMonSprite(void) { struct Pokemon *mon; u16 species; @@ -3897,7 +3902,7 @@ void Swap_ShowSummaryMonSprite(void) gSprites[sFactorySwapScreen->unk2C.field1].invisible = 1; } -void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) +static void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) { u8 taskId; @@ -3909,7 +3914,7 @@ void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) *arg1 = TRUE; } -void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) +static void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) { FreeAndDestroyMonPicSprite(arg0.field0); FreeOamMatrix(gSprites[arg0.field1].oam.matrixNum); @@ -3917,7 +3922,7 @@ void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1) *arg1 = FALSE; } -void Task_SwapCantHaveSameMons(u8 taskId) +static void Task_SwapCantHaveSameMons(u8 taskId) { if (sFactorySwapScreen->unk30 == TRUE) return; @@ -3952,14 +3957,14 @@ void Task_SwapCantHaveSameMons(u8 taskId) case 4: Swap_PrintMonSpecies3(); sub_819EADC(); - sFactorySwapScreen->unk22 = 1; + sFactorySwapScreen->unk22 = TRUE; gTasks[taskId].data[0] = gTasks[taskId].data[5]; gTasks[taskId].func = Task_HandleSwapScreenChooseMons; break; } } -bool8 Swap_AlreadyHasSameSpecies(u8 monId) +static bool8 Swap_AlreadyHasSameSpecies(u8 monId) { u8 i; u16 species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); @@ -3972,7 +3977,7 @@ bool8 Swap_AlreadyHasSameSpecies(u8 monId) return FALSE; } -void sub_819F600(struct Sprite *sprite) +static void sub_819F600(struct Sprite *sprite) { u8 taskId; @@ -3985,3 +3990,124 @@ void sub_819F600(struct Sprite *sprite) sprite->callback = SpriteCallbackDummy; } } + +static void sub_819F654(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + { + FreeOamMatrix(sprite->oam.matrixNum); + if (sprite->data[7] == TRUE) + sFactorySwapScreen->unk30 = FALSE; + else + sub_819BE20(FALSE); + DestroySprite(sprite); + } +} + +static void sub_819F69C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + task->data[3] = 88; + task->data[24] = 152; // BUG: writing outside the array's bounds. + task->data[5] = 64; + task->data[8] = 65; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + break; + case 1: + ShowBg(3); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + break; + case 2: + task->data[5] -= 4; + task->data[8] += 4; + if (task->data[5] <= 32 || task->data[8] >= 96) + { + task->data[5] = 32; + task->data[8] = 96; + } + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + if (task->data[5] != 32) + return; + break; + default: + DestroyTask(taskId); + // UB: Should not use the task after it has been deleted. + if (gTasks[taskId].data[7] == TRUE) + Swap_ShowMonSprite(); + else + Summary_ShowMonSprite(); + return; + } + task->data[0]++; +} + +static void sub_819F7B4(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + switch (task->data[0]) + { + default: + HideBg(3); + gSprites[task->data[6]].data[7] = task->data[7]; + gSprites[task->data[6]].invisible = 0; + gSprites[task->data[6]].callback = sub_819F654; + StartSpriteAffineAnim(&gSprites[task->data[6]], 1); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + DestroyTask(taskId); + break; + case 0: + task->data[3] = 88; + task->data[24] = 152; // BUG: writing outside the array's bounds. + task->data[5] = 32; + task->data[8] = 96; + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->data[3], task->data[24])); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ); + task->data[0]++; + break; + case 1: + task->data[5] += 4; + task->data[8] -= 4; + if (task->data[5] >= 64 || task->data[8] <= 65) + { + task->data[5] = 64; + task->data[8] = 65; + } + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(task->data[5], task->data[8])); + if (task->data[5] == 64) + task->data[0]++; + break; + } +} + +static void Swap_ShowMonSprite(void) +{ + struct Pokemon *mon; + u16 species; + u32 personality, otId; + + if (!sFactorySwapScreen->inEnemyScreen) + mon = &gPlayerParty[sFactorySwapScreen->cursorPos]; + else + mon = &gEnemyParty[sFactorySwapScreen->cursorPos]; + + species = GetMonData(mon, MON_DATA_SPECIES, NULL); + personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL); + otId = GetMonData(mon, MON_DATA_OT_ID, NULL); + + sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF); + gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0; + gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0; + + sFactorySwapScreen->unk30 = FALSE; +} diff --git a/src/battle_tent.c b/src/battle_tent.c index 516f3fc4d..e30cac386 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -1,13 +1,15 @@ #include "global.h" +#include "battle_tent.h" #include "overworld.h" #include "event_data.h" #include "region_map.h" #include "battle.h" #include "battle_setup.h" #include "battle_tower.h" -#include "battle_frontier_2.h" #include "random.h" #include "item.h" +#include "battle_factory.h" +#include "battle_frontier_2.h" #include "constants/items.h" #include "constants/region_map_sections.h" @@ -15,35 +17,40 @@ extern const struct BattleFrontierTrainer gSlateportBattleTentTrainers[]; extern const struct FacilityMon gSlateportBattleTentMons[]; extern const u16 gBattleFrontierHeldItems[]; +extern u16 gUnknown_03006298[]; + // This file's functions. -void sub_81B99D4(void); -void sub_81B9A28(void); -void sub_81B9A44(void); -void sub_81B9A60(void); -void sub_81B9A90(void); -void sub_81B9ABC(void); -void sub_81B9B00(void); -void sub_81B9B28(void); -void sub_81B9BA0(void); -void sub_81B9BF4(void); -void sub_81B9C10(void); -void sub_81B9C2C(void); -void sub_81B9C70(void); -void sub_81B9C98(void); -void sub_81B9CF0(void); -void sub_81B9D28(void); -void sub_81B9D7C(void); -void sub_81B9D98(void); -void sub_81B9DB4(void); -void sub_81B9DF8(void); -void sub_81B9E20(void); -void sub_81B9E78(void); -void sub_81B9E88(void); -void sub_81BA040(void); -void sub_81B9EC0(void); +static void sub_81B99D4(void); +static void sub_81B9A28(void); +static void sub_81B9A44(void); +static void sub_81B9A60(void); +static void sub_81B9A90(void); +static void sub_81B9ABC(void); +static void sub_81B9B00(void); +static void sub_81B9B28(void); +static void sub_81B9BA0(void); +static void sub_81B9BF4(void); +static void sub_81B9C10(void); +static void sub_81B9C2C(void); +static void sub_81B9C70(void); +static void sub_81B9C98(void); +static void sub_81B9CF0(void); +static void sub_81B9D28(void); +static void sub_81B9D7C(void); +static void sub_81B9D98(void); +static void sub_81B9DB4(void); +static void sub_81B9DF8(void); +static void sub_81B9E20(void); +static void sub_81B9E78(void); +static void sub_81B9E88(void); +static void sub_81BA040(void); +static void sub_81B9EC0(void); + +// IWRAM bss +static IWRAM_DATA u16 sRandMonSetId; // const rom data -void (*const gUnknown_086160B4[])(void) = +void static (*const gUnknown_086160B4[])(void) = { sub_81B99D4, sub_81B9A28, @@ -57,7 +64,7 @@ void (*const gUnknown_086160B4[])(void) = static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL}; -void (*const gUnknown_086160D8[])(void) = +void static (*const gUnknown_086160D8[])(void) = { sub_81B9BA0, sub_81B9BF4, @@ -70,7 +77,7 @@ void (*const gUnknown_086160D8[])(void) = static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION}; -void (*const gUnknown_086160F8[])(void) = +void static (*const gUnknown_086160F8[])(void) = { sub_81B9D28, sub_81B9D7C, @@ -92,7 +99,7 @@ void sub_81B99B4(void) gUnknown_086160B4[gSpecialVar_0x8004](); } -void sub_81B99D4(void) +static void sub_81B99D4(void) { gSaveBlock2Ptr->frontier.field_CA8 = 0; gSaveBlock2Ptr->frontier.field_CB2 = 0; @@ -100,29 +107,29 @@ void sub_81B99D4(void) saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -void sub_81B9A28(void) +static void sub_81B9A28(void) { gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6A; } -void sub_81B9A44(void) +static void sub_81B9A44(void) { gSaveBlock2Ptr->frontier.field_E6A = gSpecialVar_0x8006; } -void sub_81B9A60(void) +static void sub_81B9A60(void) { gTrainerBattleOpponent_A = (u32)((Random() % 255) * 5) / 64; sub_8162614(gTrainerBattleOpponent_A, 0); } -void sub_81B9A90(void) +static void sub_81B9A90(void) { if (gTrainerBattleOpponent_A < 300) ConvertBattleFrontierTrainerSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore); } -void sub_81B9ABC(void) +static void sub_81B9ABC(void) { gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -130,12 +137,12 @@ void sub_81B9ABC(void) sub_81A4C30(); } -void sub_81B9B00(void) +static void sub_81B9B00(void) { gSaveBlock2Ptr->frontier.field_E6A = sVerdanturfTentRewards[Random() % ARRAY_COUNT(sVerdanturfTentRewards)]; } -void sub_81B9B28(void) +static void sub_81B9B28(void) { if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6A, 1) == TRUE) { @@ -154,7 +161,7 @@ void sub_81B9B80(void) gUnknown_086160D8[gSpecialVar_0x8004](); } -void sub_81B9BA0(void) +static void sub_81B9BA0(void) { gSaveBlock2Ptr->frontier.field_CA8 = 0; gSaveBlock2Ptr->frontier.field_CB2 = 0; @@ -162,17 +169,17 @@ void sub_81B9BA0(void) saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -void sub_81B9BF4(void) +static void sub_81B9BF4(void) { gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6C; } -void sub_81B9C10(void) +static void sub_81B9C10(void) { gSaveBlock2Ptr->frontier.field_E6C = gSpecialVar_0x8006; } -void sub_81B9C2C(void) +static void sub_81B9C2C(void) { gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -180,12 +187,12 @@ void sub_81B9C2C(void) sub_81A4C30(); } -void sub_81B9C70(void) +static void sub_81B9C70(void) { gSaveBlock2Ptr->frontier.field_E6C = sFallarborTentRewards[Random() % ARRAY_COUNT(sFallarborTentRewards)]; } -void sub_81B9C98(void) +static void sub_81B9C98(void) { if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6C, 1) == TRUE) { @@ -199,7 +206,7 @@ void sub_81B9C98(void) } } -void sub_81B9CF0(void) +static void sub_81B9CF0(void) { GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A); } @@ -209,7 +216,7 @@ void sub_81B9D08(void) gUnknown_086160F8[gSpecialVar_0x8004](); } -void sub_81B9D28(void) +static void sub_81B9D28(void) { gSaveBlock2Ptr->frontier.field_CA8 = 0; gSaveBlock2Ptr->frontier.field_CB2 = 0; @@ -217,17 +224,17 @@ void sub_81B9D28(void) saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -void sub_81B9D7C(void) +static void sub_81B9D7C(void) { gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6E; } -void sub_81B9D98(void) +static void sub_81B9D98(void) { gSaveBlock2Ptr->frontier.field_E6E = gSpecialVar_0x8006; } -void sub_81B9DB4(void) +static void sub_81B9DB4(void) { gSaveBlock2Ptr->frontier.field_CA8 = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -235,12 +242,12 @@ void sub_81B9DB4(void) sub_81A4C30(); } -void sub_81B9DF8(void) +static void sub_81B9DF8(void) { gSaveBlock2Ptr->frontier.field_E6E = sSlateportTentRewards[Random() % ARRAY_COUNT(sSlateportTentRewards)]; } -void sub_81B9E20(void) +static void sub_81B9E20(void) { if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6E, 1) == TRUE) { @@ -254,15 +261,15 @@ void sub_81B9E20(void) } } -void sub_81B9E78(void) +static void sub_81B9E78(void) { ZeroPlayerPartyMons(); - sub_819A4F8(); + DoBattleFactorySelectScreen(); } -void sub_81B9E88(void) +static void sub_81B9E88(void) { - sub_819DC00(); + DoBattleFactorySwapScreen(); } bool8 sub_81B9E94(void) @@ -273,7 +280,7 @@ bool8 sub_81B9E94(void) // This function was written very...oddly. #ifdef NONMATCHING -void sub_81B9EC0(void) +static void sub_81B9EC0(void) { s32 i, j; u16 currMonId = 0, currSpecies = 0; @@ -335,7 +342,7 @@ void sub_81B9EC0(void) } #else NAKED -void sub_81B9EC0(void) +static void sub_81B9EC0(void) { asm_unified("\n\ push {r4-r7,lr}\n\ @@ -526,3 +533,74 @@ _081BA024:\n\ "); } #endif // NONMATCHING + +static void sub_81BA040(void) +{ + u16 trainerId; + s32 i, j, k; + register const u16 *monSetsPool asm("r9"); // Fix me. Compiler insists on moving that variable into stack. + u16 species[3]; + u16 heldItems[3]; + s32 monPoolCount = 0; + + gFacilityTrainers = gSlateportBattleTentTrainers; + gFacilityTrainerMons = gSlateportBattleTentMons; + + while (1) + { + do + { + trainerId = Random() % 30; + for (i = 0; i < gSaveBlock2Ptr->frontier.field_CB2; i++) + { + if (gSaveBlock2Ptr->frontier.field_CB4[i] == trainerId) + break; + } + } while (i != gSaveBlock2Ptr->frontier.field_CB2); + + gTrainerBattleOpponent_A = trainerId; + while (gFacilityTrainers[gTrainerBattleOpponent_A].btMonPool[monPoolCount] != 0xFFFF) + monPoolCount++; + if (monPoolCount > 8) + break; + monPoolCount = 0; + } + + if (gSaveBlock2Ptr->frontier.field_CB2 < 2) + gSaveBlock2Ptr->frontier.field_CB4[gSaveBlock2Ptr->frontier.field_CB2] = gTrainerBattleOpponent_A; + + monSetsPool = gFacilityTrainers[gTrainerBattleOpponent_A].btMonPool; + i = 0; + while (i != 3) + { + sRandMonSetId = monSetsPool[Random() % monPoolCount]; + for (j = 0; j < 6; j++) + { + if (gFacilityTrainerMons[sRandMonSetId].species == gFacilityTrainerMons[gSaveBlock2Ptr->frontier.field_E70[j].monId].species) + break; + } + if (j != 6) + continue; + + for (k = 0; k < i; k++) + { + if (species[k] == gFacilityTrainerMons[sRandMonSetId].species) + break; + } + if (k != i) + continue; + + for (k = 0; k < i; k++) + { + if (heldItems[k] != 0 && heldItems[k] == gBattleFrontierHeldItems[gFacilityTrainerMons[sRandMonSetId].itemTableId]) + break; + } + if (k != i) + continue; + + species[i] = gFacilityTrainerMons[sRandMonSetId].species; + heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[sRandMonSetId].itemTableId]; + gUnknown_03006298[i] = sRandMonSetId; + i++; + } +} diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index b739ba66d..522d11d4f 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -28,6 +28,7 @@ #include "overworld.h" #include "menu.h" #include "trainer_pokemon_sprites.h" +#include "data2.h" struct HallofFameMon { @@ -57,10 +58,6 @@ static EWRAM_DATA struct HofGfx *sHofGfxPtr = NULL; extern bool8 gHasHallOfFameRecords; extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern MainCallback gGameContinueCallback; -extern u32 gDamagedSaveSectors; -extern u8 gReservedSpritePaletteCount; -extern const u8 gSpeciesNames[][11]; #define HALL_OF_FAME_MAX_TEAMS 50 @@ -84,10 +81,6 @@ extern const u8 gContestConfetti_Gfx[]; extern const u8 gContestConfetti_Pal[]; extern void sub_8175620(void); -extern u8 TrySavingData(u8); -extern void sub_8197434(u8, u8); -extern u16 sub_818D97C(u8 playerGender, u8); -extern void sub_8198204(u8 *dst, const u8 *src, u8, u8, u8); extern bool8 sub_80F9C30(void); extern void sub_8198314(void); extern void ReturnFromHallOfFamePC(void); @@ -182,20 +175,18 @@ static const u8 sUnknown_085E5388[] = {0, 1, 2, 0}; static const u8 sUnknown_085E538C[] = {0, 2, 3, 0, 4, 5, 0, 0}; -static const struct CompressedSpriteSheet sHallOfFame_ConfettiSpriteSheet = +static const struct CompressedSpriteSheet sHallOfFame_ConfettiSpriteSheet[] = { - gContestConfetti_Gfx, 0x220, 1001 + {gContestConfetti_Gfx, 0x220, 1001}, + {}, }; -static const u8 sUnused0[8] = {}; - -static const struct CompressedSpritePalette sHallOfFame_ConfettiSpritePalette = +static const struct CompressedSpritePalette sHallOfFame_ConfettiSpritePalette[] = { - gContestConfetti_Pal, 1001 + {gContestConfetti_Pal, 1001}, + {}, }; -static const u8 sUnused1[8] = {}; - static const s16 sHallOfFame_MonFullTeamPositions[6][4] = { {120, 210, 120, 40}, @@ -610,7 +601,7 @@ static void Task_Hof_DisplayMon(u8 taskId) gSprites[spriteId].tSpecies = currMon->species; gSprites[spriteId].callback = SpriteCB_GetOnScreenAndAnimate; gTasks[taskId].tMonSpriteId(currMonId) = spriteId; - sub_8197434(0, 1); + sub_8197434(0, TRUE); gTasks[taskId].func = Task_Hof_PrintMonInfoAfterAnimating; } @@ -964,9 +955,9 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_HOFNumber); if (gTasks[taskId].tCurrTeamNo <= 0) - sub_8198204(gStringVar4, gText_PickCancel, 0, 0, 1); + sub_8198204(gStringVar4, gText_PickCancel, 0, 0, TRUE); else - sub_8198204(gStringVar4, gText_PickNextCancel, 0, 0, 1); + sub_8198204(gStringVar4, gText_PickNextCancel, 0, 0, TRUE); gTasks[taskId].func = Task_HofPC_PrintMonInfo; } @@ -1300,8 +1291,8 @@ static void sub_8174F70(void) ResetAllPicSprites(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; - LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet); - LoadCompressedObjectPalette(&sHallOfFame_ConfettiSpritePalette); + LoadCompressedObjectPic(sHallOfFame_ConfettiSpriteSheet); + LoadCompressedObjectPalette(sHallOfFame_ConfettiSpritePalette); } static void sub_8174FAC(void) @@ -1517,8 +1508,8 @@ static void sub_8175364(u8 taskId) gSpecialVar_0x8004 = var; gSpecialVar_0x8005 = 0xFFFF; } - LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet); - LoadCompressedObjectPalette(&sHallOfFame_ConfettiSpritePalette); + LoadCompressedObjectPic(sHallOfFame_ConfettiSpriteSheet); + LoadCompressedObjectPalette(sHallOfFame_ConfettiSpritePalette); data[0]++; break; case 1: diff --git a/src/save.c b/src/save.c index 81731692e..68427c4c3 100644 --- a/src/save.c +++ b/src/save.c @@ -9,8 +9,6 @@ // for the chunk declarations -extern struct SaveSectionLocation gRamSaveSectionLocations[0xE]; -extern u16 gUnknown_03006294; extern bool8 gSoftResetDisabled; extern u32 gUnknown_0203CF5C; @@ -83,6 +81,9 @@ u16 gUnknown_03006208; u16 gSaveUnusedVar; u16 gSaveFileStatus; void (*gGameContinueCallback)(void); +struct SaveSectionLocation gRamSaveSectionLocations[0xE]; +u16 gSaveUnusedVar2; +u16 gUnknown_03006294; EWRAM_DATA struct SaveSection gSaveDataBuffer = {0}; diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 4c1da8620..2587bf10a 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -4,6 +4,7 @@ #include "palette.h" #include "gpu_regs.h" #include "bg.h" +#include "decompress.h" #include "task.h" #include "window.h" #include "menu.h" @@ -14,16 +15,11 @@ #define MSG_WIN_TOP 12 #define CLOCK_WIN_TOP (MSG_WIN_TOP - 4) -extern void (*gGameContinueCallback)(void); - -extern u32 gDamagedSaveSectors; - extern const u8 gBirchHelpGfx[]; extern const u8 gBirchBagTilemap[]; extern const u8 gBirchGrassTilemap[]; extern const u16 gBirchBagGrassPal[]; extern const u16 gUnknown_0860F074[]; -extern struct SaveSection gSaveDataBuffer; extern u8 gText_SaveFailedCheckingBackup[]; extern u8 gText_BackupMemoryDamaged[]; @@ -32,8 +28,6 @@ extern u8 gText_SaveCompleteGameCannotContinue[]; extern u8 gText_SaveCompletePressA[]; extern u8 gText_GamePlayCannotBeContinued[]; -extern u8 gDecompressionBuffer[]; - // gSaveFailedClockInfo enum enum { -- cgit v1.2.3 From 74cc2cf512657f478667f6b57ab595ab546962a1 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 10 Sep 2018 10:18:30 +0200 Subject: battle factory review changes --- src/battle_factory.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/battle_factory.c b/src/battle_factory.c index 07c5c9e10..a83a14e64 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -24,6 +24,7 @@ #include "trainer_pokemon_sprites.h" #include "constants/battle_frontier.h" #include "constants/songs.h" +#include "constants/rgb.h" // Select_ refers to the first Pokemon selection screen where you choose 3 Pokemon. // Swap_ refers to the consecutive selection screen where you can keep your Pokemon or swap one with beaten trainer's. @@ -989,7 +990,7 @@ static const struct WindowTemplate sSwap_WindowTemplates[] = DUMMY_WIN_TEMPLATE, }; -static const u16 gUnknown_08610918[] = {0x0, 0x0, 0x7FFF, 0x0, 0x1F}; // Palette. +static const u16 gUnknown_08610918[] = {RGB_BLACK, RGB_BLACK, RGB_WHITE, RGB_BLACK, RGB_RED}; // Palette. static const u8 gUnknown_08610922[] = {0x0, 0x02, 0x0}; static const u8 gUnknown_08610925[] = {0x0, 0x04, 0x0}; @@ -2670,7 +2671,7 @@ static void sub_819D12C(u8 taskId) { s8 i; u8 var_2C; - bool8 r7; + bool8 destroyTask; switch (gTasks[taskId].data[0]) { @@ -2708,20 +2709,20 @@ static void sub_819D12C(u8 taskId) if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x > (i * 48) + 72) { gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = (i * 48) + 72; - r7 = TRUE; + destroyTask = TRUE; } else if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x == (i * 48) + 72) { - r7 = TRUE; + destroyTask = TRUE; } else { - r7 = FALSE; + destroyTask = FALSE; } } else { - r7 = FALSE; + destroyTask = FALSE; } if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x - 16 > 240) @@ -2736,7 +2737,7 @@ static void sub_819D12C(u8 taskId) gTasks[taskId].data[i + 1] = 1; } } - if (r7 == TRUE) + if (destroyTask == TRUE) DestroyTask(taskId); break; } @@ -2862,7 +2863,7 @@ static void sub_819D588(u8 taskId) switch (gTasks[taskId].data[0]) { case 0: - LoadPalette(gUnknown_08610918, 0xE0, 0xA); + LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); Swap_PrintActionStrings(); PutWindowTilemap(5); gTasks[taskId].data[0]++; @@ -3157,8 +3158,8 @@ static void CB2_InitSwapScreen(void) CpuCopy16(gFrontierFactorySelectMenu_Tilemap, sSwapMenuTilemapBuffer, 0x800); LoadBgTilemap(1, sSwapMenuTilemapBuffer, 0x800, 0); LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40); - LoadPalette(gUnknown_08610918, 0xF0, 10); - LoadPalette(gUnknown_08610918, 0xE0, 10); + LoadPalette(gUnknown_08610918, 0xF0, sizeof(gUnknown_08610918)); + LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); LoadPalette(gUnknown_0861039C, 0x20, 4); gMain.state++; break; @@ -3722,7 +3723,7 @@ static void Swap_PrintMonSpecies3(void) u16 species; u8 x; - LoadPalette(gUnknown_08610918, 0xE0, 0xA); + LoadPalette(gUnknown_08610918, 0xE0, sizeof(gUnknown_08610918)); CpuCopy16(gPlttBufferUnfaded + 240, gPlttBufferFaded + 224, 10); if (sFactorySwapScreen->cursorPos > 2) -- cgit v1.2.3 From d9941cd1a8614cef012696e6549a2fda336fa8c8 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Mon, 10 Sep 2018 10:25:58 -0500 Subject: Standardize sprite visibility to boolean --- src/battle_anim.c | 18 +++--- src/battle_bg.c | 8 +-- src/battle_controller_link_opponent.c | 2 +- src/battle_controller_link_partner.c | 2 +- src/battle_controller_opponent.c | 2 +- src/battle_controller_player.c | 2 +- src/battle_controller_player_partner.c | 2 +- src/battle_controller_recorded_opponent.c | 2 +- src/battle_controller_recorded_player.c | 2 +- src/battle_controller_wally.c | 2 +- src/battle_dome.c | 56 +++++++++--------- src/battle_factory.c | 94 +++++++++++++++---------------- src/battle_gfx_sfx_util.c | 2 +- src/battle_interface.c | 18 +++--- src/berry_tag_screen.c | 20 +++---- src/credits.c | 20 +++---- src/egg_hatch.c | 6 +- src/event_object_movement.c | 8 +-- src/evolution_graphics.c | 16 +++--- src/evolution_scene.c | 8 +-- src/field_effect.c | 30 +++++----- src/item_menu.c | 2 +- src/main_menu.c | 22 ++++---- src/menu_helpers.c | 2 +- src/pokemon_animation.c | 8 +-- src/rom_8034C54.c | 2 +- src/sprite.c | 2 +- 27 files changed, 179 insertions(+), 179 deletions(-) (limited to 'src') diff --git a/src/battle_anim.c b/src/battle_anim.c index b6f726897..2d514c955 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -558,7 +558,7 @@ static void sub_80A40F4(u8 taskId) s16 *selfData = gTasks[taskId].data; u8 battlerSpriteId = gBattlerSpriteIds[selfData[t1_MONBG_BATTLER]]; - gSprites[battlerSpriteId].invisible = 1; + gSprites[battlerSpriteId].invisible = TRUE; if (!selfData[t1_CREATE_ANOTHER_TASK]) { @@ -699,7 +699,7 @@ void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) gBattle_BG1_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20; if (setSpriteInvisible) - gSprites[gBattlerSpriteIds[battlerId]].invisible = 1; + gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); @@ -734,7 +734,7 @@ void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) gBattle_BG2_Y = -(gSprites[battlerSpriteId].pos1.y + gSprites[battlerSpriteId].pos2.y) + 0x20; if (setSpriteInvisible) - gSprites[gBattlerSpriteIds[battlerId]].invisible = 1; + gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X); SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y); @@ -866,9 +866,9 @@ static void ScriptCmd_clearmonbg(void) battlerId = gBattleAnimTarget; if (sMonAnimTaskIdArray[0] != 0xFF) - gSprites[gBattlerSpriteIds[battlerId]].invisible = 0; + gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != 0xFF) - gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = 0; + gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; else animBattlerId = 0; @@ -973,9 +973,9 @@ static void ScriptCmd_clearmonbg_23(void) battlerId = gBattleAnimTarget; if (IsBattlerSpriteVisible(battlerId)) - gSprites[gBattlerSpriteIds[battlerId]].invisible = 0; + gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; if (animBattlerId > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK)) - gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = 0; + gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; else animBattlerId = 0; @@ -1745,7 +1745,7 @@ static void ScriptCmd_invisible(void) spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); if (spriteId != 0xFF) - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; sBattleAnimScriptPtr += 2; } @@ -1756,7 +1756,7 @@ static void ScriptCmd_visible(void) spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); if (spriteId != 0xFF) - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; sBattleAnimScriptPtr += 2; } diff --git a/src/battle_bg.c b/src/battle_bg.c index 999b64a54..fb3e52eac 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -412,8 +412,8 @@ void sub_8035D74(u8 taskId) gPlttBufferUnfaded[palId * 16 + 0x10F] = gPlttBufferFaded[palId * 16 + 0x10F] = 0x7FFF; gBattleStruct->field_7D = CreateSprite(&gUnknown_0831A9D0, 111, 80, 0); gBattleStruct->field_7E = CreateSprite(&gUnknown_0831A9E8, 129, 80, 0); - gSprites[gBattleStruct->field_7D].invisible = 1; - gSprites[gBattleStruct->field_7E].invisible = 1; + gSprites[gBattleStruct->field_7D].invisible = TRUE; + gSprites[gBattleStruct->field_7E].invisible = TRUE; gTasks[taskId].data[0]++; break; case 2: @@ -444,8 +444,8 @@ void sub_8035D74(u8 taskId) PlaySE(SE_W231); DestroyTask(taskId); - gSprites[gBattleStruct->field_7D].invisible = 0; - gSprites[gBattleStruct->field_7E].invisible = 0; + gSprites[gBattleStruct->field_7D].invisible = FALSE; + gSprites[gBattleStruct->field_7E].invisible = FALSE; gSprites[gBattleStruct->field_7E].oam.tileNum += 0x40; gSprites[gBattleStruct->field_7D].data[0] = 0; gSprites[gBattleStruct->field_7E].data[0] = 1; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index d786dacd1..637b8c702 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -442,7 +442,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; LinkOpponentBufferExecCompleted(); } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 9867c14e4..bfaaf9e82 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -332,7 +332,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; LinkPartnerBufferExecCompleted(); } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 6148587f8..3c126aeec 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -435,7 +435,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; OpponentBufferExecCompleted(); } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 7f038a0c3..57a4efa9f 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -1398,7 +1398,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; PlayerBufferExecCompleted(); } diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 601b8dcc1..7795c5656 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -520,7 +520,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; PlayerPartnerBufferExecCompleted(); } diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index affcb09ab..963c535db 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -425,7 +425,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; RecordedOpponentBufferExecCompleted(); } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 4f224bc67..1a043573f 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -415,7 +415,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; RecordedPlayerBufferExecCompleted(); } diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 4faf78681..747aa2987 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -371,7 +371,7 @@ static void DoHitAnimBlinkSpriteEffect(void) if (gSprites[spriteId].data[1] == 32) { gSprites[spriteId].data[1] = 0; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gDoingBattleAnim = FALSE; WallyBufferExecCompleted(); } diff --git a/src/battle_dome.c b/src/battle_dome.c index 0815b6a9b..82384b43a 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -3622,7 +3622,7 @@ static void sub_8190400(u8 taskId) gSprites[r7].data[0] = i; gSprites[r7].data[1] = 0; if (r9 == 1) - gSprites[r7].invisible = 1; + gSprites[r7].invisible = TRUE; r7 = CreateSprite(&gUnknown_0860D050, 234, 80, 0); StartSpriteAnim(&gSprites[r7], 1); @@ -3644,7 +3644,7 @@ static void SpriteCb_TrainerIconCardScrollUp(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.y >= -32) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCallbackDummy; } @@ -3664,7 +3664,7 @@ static void SpriteCb_TrainerIconCardScrollDown(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.y <= 192) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCallbackDummy; } @@ -3684,7 +3684,7 @@ static void SpriteCb_TrainerIconCardScrollLeft(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.x >= -32) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCallbackDummy; } @@ -3704,7 +3704,7 @@ static void SpriteCb_TrainerIconCardScrollRight(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.x <= 272) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCallbackDummy; } @@ -3734,7 +3734,7 @@ static void SpriteCb_MonIconCardScrollUp(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.y >= -16) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCb_MonIcon; } @@ -3756,7 +3756,7 @@ static void SpriteCb_MonIconCardScrollDown(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.y <= 176) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 40) sprite->callback = SpriteCb_MonIcon; } @@ -3778,7 +3778,7 @@ static void SpriteCb_MonIconCardScrollLeft(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.x >= -16) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCb_MonIcon; } @@ -3800,7 +3800,7 @@ static void SpriteCb_MonIconCardScrollRight(struct Sprite *sprite) if (sprite->data[0] != 0) { if (sprite->pos1.x <= 256) - sprite->invisible = 0; + sprite->invisible = FALSE; if (++sprite->data[1] == 64) sprite->callback = SpriteCb_MonIcon; } @@ -3828,29 +3828,29 @@ static void sub_8190B40(struct Sprite *sprite) if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt)) { - sprite->invisible = 0; + sprite->invisible = FALSE; } else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated && sBattleDomeStruct->unk_10 - 1 < r12) { - sprite->invisible = 0; + sprite->invisible = FALSE; } else { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } } else { if (sBattleDomeStruct->unk_10 != 0) { - sprite->invisible = 0; + sprite->invisible = FALSE; } else { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } } } @@ -3861,23 +3861,23 @@ static void sub_8190B40(struct Sprite *sprite) if (sBattleDomeStruct->unk_10 > 1) { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } else { - sprite->invisible = 0; + sprite->invisible = FALSE; } } else { if (sBattleDomeStruct->unk_10 != 0) { - sprite->invisible = 0; + sprite->invisible = FALSE; } else { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } } } @@ -3892,11 +3892,11 @@ static void sub_8190C6C(struct Sprite *sprite) if (sBattleDomeStruct->unk_10 != 0) { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } else { - sprite->invisible = 0; + sprite->invisible = FALSE; } } else @@ -3904,11 +3904,11 @@ static void sub_8190C6C(struct Sprite *sprite) if (sBattleDomeStruct->unk_10 != 1) { if (gTasks[taskId1].data[0] == 2) - sprite->invisible = 1; + sprite->invisible = TRUE; } else { - sprite->invisible = 0; + sprite->invisible = FALSE; } } } @@ -4770,7 +4770,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerId), TRUE, x + 48, y + 64, palSlot + 12, 0xFFFF); if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[arrId]].invisible = TRUE; for (i = 0; i < 3; i++) { @@ -4803,7 +4803,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) } if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = TRUE; } textPrinter.fontId = 2; textPrinter.x = 0; @@ -5208,7 +5208,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) sBattleDomeStruct->arr[arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[0]), TRUE, x + 48, y + 88, palSlot + 12, 0xFFFF); if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[arrId]].invisible = TRUE; if (lost[0]) gSprites[sBattleDomeStruct->arr[arrId]].oam.paletteNum = 3; @@ -5221,7 +5221,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) sBattleDomeStruct->arr[1 + arrId] = CreateTrainerPicSprite(GetFrontierTrainerFrontSpriteId(trainerIds[1]), TRUE, x + 192, y + 88, palSlot + 13, 0xFFFF); if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[1 + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[1 + arrId]].invisible = TRUE; if (lost[1]) gSprites[sBattleDomeStruct->arr[1 + arrId]].oam.paletteNum = 3; @@ -5257,7 +5257,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) } if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[2 + i + arrId]].invisible = TRUE; if (lost[0]) { gSprites[sBattleDomeStruct->arr[2 + i + arrId]].oam.paletteNum = 3; @@ -5297,7 +5297,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) } if (flags & 0x1E) - gSprites[sBattleDomeStruct->arr[5 + i + arrId]].invisible = 1; + gSprites[sBattleDomeStruct->arr[5 + i + arrId]].invisible = TRUE; if (lost[1]) { gSprites[sBattleDomeStruct->arr[5 + i + arrId]].oam.paletteNum = 3; diff --git a/src/battle_factory.c b/src/battle_factory.c index a83a14e64..36c5ed2e8 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -1273,8 +1273,8 @@ static void Select_InitAllSprites(void) sFactorySelectScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0); sFactorySelectScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0); - gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecX = 0; gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecY = 0; @@ -1767,8 +1767,8 @@ static void Select_ShowMenuOptions(void) gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112; - gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = FALSE; Select_PrintMenuOptions(); } @@ -1782,16 +1782,16 @@ static void Select_ShowYesNoOptions(void) gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208; gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = 112; - gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = FALSE; Select_PrintYesNoOptions(); } static void sub_819B958(u8 windowId) { - gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1; - gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = TRUE; FillWindowPixelBuffer(windowId, 0); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); @@ -1977,7 +1977,7 @@ static void Select_ShowSummaryMonSprite(void) gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0; gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0; - gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 1; + gSprites[sFactorySelectScreen->unk294[1].field1].invisible = TRUE; } static void Select_ShowChosenMonsSprites(void) @@ -2013,9 +2013,9 @@ static void sub_819C040(struct Sprite *sprite) && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded) { - sprite->invisible = 1; - gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 1; - gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 1; + sprite->invisible = TRUE; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = TRUE; + gSprites[sFactorySelectScreen->unk294[2].field1].invisible = TRUE; taskId = CreateTask(sub_819C1D0, 1); gTasks[taskId].func(taskId); @@ -2091,11 +2091,11 @@ static void sub_819C2D4(u8 taskId) { default: HideBg(3); - gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[1].field1].invisible = FALSE; gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C100; - gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[0].field1].invisible = FALSE; gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy; - gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 0; + gSprites[sFactorySelectScreen->unk294[2].field1].invisible = FALSE; gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy; StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 1); StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[0].field1], 1); @@ -3018,7 +3018,7 @@ static void sub_819D770(u8 taskId) else Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept); if (sFactorySwapScreen->cursorPos < 3) - gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0; + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = FALSE; Swap_PrintMonCategory(); gTasks[taskId].data[0]++; break; @@ -3048,7 +3048,7 @@ static void sub_819D9EC(u8 taskId) break; case 1: sub_819EADC(); - gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = TRUE; gTasks[taskId].data[0]++; break; case 2: @@ -3068,7 +3068,7 @@ static void sub_819D9EC(u8 taskId) { Swap_InitActions(ACTIONS_PLAYER_SCREEN); for (i = 0; i < 3; i++) - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; } gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x; gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName; @@ -3279,8 +3279,8 @@ static void Swap_InitAllSprites(void) sFactorySwapScreen->cursorSpriteId = CreateSprite(&gUnknown_0861084C, gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x, 88, 0); sFactorySwapScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610864, 176, 112, 0); sFactorySwapScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_0861087C, 176, 144, 0); - gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecX = 0; gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecY = 0; gSprites[sFactorySwapScreen->menuCursor2SpriteId].centerToCornerVecX = 0; @@ -3339,18 +3339,18 @@ static void Swap_InitAllSprites(void) gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecX = 0; gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unk8[i][0]].invisible = 1; - gSprites[sFactorySwapScreen->unk8[i][1]].invisible = 1; - gSprites[sFactorySwapScreen->unk8[i][2]].invisible = 1; - gSprites[sFactorySwapScreen->unkE[i][0]].invisible = 1; - gSprites[sFactorySwapScreen->unkE[i][1]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[i][0]].invisible = TRUE; + gSprites[sFactorySwapScreen->unk8[i][1]].invisible = TRUE; + gSprites[sFactorySwapScreen->unk8[i][2]].invisible = TRUE; + gSprites[sFactorySwapScreen->unkE[i][0]].invisible = TRUE; + gSprites[sFactorySwapScreen->unkE[i][1]].invisible = TRUE; } - gSprites[sFactorySwapScreen->unkE[0][0]].invisible = 0; - gSprites[sFactorySwapScreen->unkE[0][1]].invisible = 0; - gSprites[sFactorySwapScreen->unk8[0][0]].invisible = 0; - gSprites[sFactorySwapScreen->unk8[0][1]].invisible = 0; - gSprites[sFactorySwapScreen->unk8[0][2]].invisible = 0; + gSprites[sFactorySwapScreen->unkE[0][0]].invisible = FALSE; + gSprites[sFactorySwapScreen->unkE[0][1]].invisible = FALSE; + gSprites[sFactorySwapScreen->unk8[0][0]].invisible = FALSE; + gSprites[sFactorySwapScreen->unk8[0][1]].invisible = FALSE; + gSprites[sFactorySwapScreen->unk8[0][2]].invisible = FALSE; } static void Swap_DestroyAllSprites(void) @@ -3378,13 +3378,13 @@ static void Swap_HandleActionCursorChange(u8 cursorId) { if (cursorId < 3) { - gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0; + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = FALSE; sub_819E8EC(); gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[cursorId]].pos1.x; } else { - gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1; + gSprites[sFactorySwapScreen->cursorSpriteId].invisible = TRUE; sub_819E838(sFactorySwapScreen->actionsData[cursorId].id); } } @@ -3490,15 +3490,15 @@ static void sub_819E838(u8 arg0) { if (arg0 == 2) { - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 0; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = FALSE; if (i < 2) - gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = TRUE; } else if (arg0 == 3) { if (i < 2) - gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 0; - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = FALSE; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; } } } @@ -3509,9 +3509,9 @@ static void sub_819E8EC(void) for (i = 0; i < 3; i++) { - gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unk8[1][i]].invisible = TRUE; if (i < 2) - gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1; + gSprites[sFactorySwapScreen->unkE[1][i]].invisible = TRUE; } } @@ -3527,8 +3527,8 @@ static void Swap_ShowMenuOptions(void) gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112; - gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = FALSE; Swap_PrintMenuOptions(); } @@ -3542,16 +3542,16 @@ static void Swap_ShowYesNoOptions(void) gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208; gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = 112; - gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = FALSE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = FALSE; Swap_PrintYesNoOptions(); } static void sub_819EA64(u8 windowId) { - gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1; - gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1; + gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = TRUE; + gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = TRUE; FillWindowPixelBuffer(windowId, 0); CopyWindowToVram(windowId, 2); ClearWindowTilemap(windowId); @@ -3900,7 +3900,7 @@ static void Swap_ShowSummaryMonSprite(void) gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0; gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0; - gSprites[sFactorySwapScreen->unk2C.field1].invisible = 1; + gSprites[sFactorySwapScreen->unk2C.field1].invisible = TRUE; } static void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen) @@ -3984,7 +3984,7 @@ static void sub_819F600(struct Sprite *sprite) if (sprite->affineAnimEnded) { - sprite->invisible = 1; + sprite->invisible = TRUE; taskId = CreateTask(sub_819F69C, 1); gTasks[taskId].data[7] = sprite->data[7]; gTasks[taskId].func(taskId); @@ -4058,7 +4058,7 @@ static void sub_819F7B4(u8 taskId) default: HideBg(3); gSprites[task->data[6]].data[7] = task->data[7]; - gSprites[task->data[6]].invisible = 0; + gSprites[task->data[6]].invisible = FALSE; gSprites[task->data[6]].callback = sub_819F654; StartSpriteAffineAnim(&gSprites[task->data[6]], 1); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 8f17d488e..23ed8a19f 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -1173,7 +1173,7 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) void SpriteCB_SetInvisible(struct Sprite *sprite) { - sprite->invisible = 1; + sprite->invisible = TRUE; } void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species) diff --git a/src/battle_interface.c b/src/battle_interface.c index e45af2bf0..d2750bf9d 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -974,13 +974,13 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId) gSprites[healthboxLeftSpriteId].hMain_HealthBarSpriteId = healthbarSpriteId; gSprites[healthboxLeftSpriteId].hMain_Battler = battlerId; - gSprites[healthboxLeftSpriteId].invisible = 1; + gSprites[healthboxLeftSpriteId].invisible = TRUE; - gSprites[healthboxRightSpriteId].invisible = 1; + gSprites[healthboxRightSpriteId].invisible = TRUE; healthBarSpritePtr->hBar_HealthBoxSpriteId = healthboxLeftSpriteId; healthBarSpritePtr->hBar_Data6 = data6; - healthBarSpritePtr->invisible = 1; + healthBarSpritePtr->invisible = TRUE; return healthboxLeftSpriteId; } @@ -1058,16 +1058,16 @@ void SetBattleBarStruct(u8 battlerId, u8 healthboxSpriteId, s32 maxVal, s32 oldV void SetHealthboxSpriteInvisible(u8 healthboxSpriteId) { - gSprites[healthboxSpriteId].invisible = 1; - gSprites[gSprites[healthboxSpriteId].hMain_HealthBarSpriteId].invisible = 1; - gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 1; + gSprites[healthboxSpriteId].invisible = TRUE; + gSprites[gSprites[healthboxSpriteId].hMain_HealthBarSpriteId].invisible = TRUE; + gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = TRUE; } void SetHealthboxSpriteVisible(u8 healthboxSpriteId) { - gSprites[healthboxSpriteId].invisible = 0; - gSprites[gSprites[healthboxSpriteId].hMain_HealthBarSpriteId].invisible = 0; - gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 0; + gSprites[healthboxSpriteId].invisible = FALSE; + gSprites[gSprites[healthboxSpriteId].hMain_HealthBarSpriteId].invisible = FALSE; + gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = FALSE; } static void UpdateSpritePos(u8 spriteId, s16 x, s16 y) diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index d30af944e..07fb6bd9e 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -477,29 +477,29 @@ static void SetFlavorCirclesVisiblity(void) const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); if (berry->spicy) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = TRUE; if (berry->dry) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = TRUE; if (berry->sweet) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = TRUE; if (berry->bitter) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = TRUE; if (berry->sour) - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 0; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = FALSE; else - gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 1; + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = TRUE; } static void DestroyFlavorCircleSprites(void) diff --git a/src/credits.c b/src/credits.c index 94089a6d1..981b60a47 100644 --- a/src/credits.c +++ b/src/credits.c @@ -1862,8 +1862,8 @@ static void sub_817664C(u8 data, u8 taskIdA) switch (data) { case 0: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 272; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; @@ -1873,8 +1873,8 @@ static void sub_817664C(u8 data, u8 taskIdA) gTasks[taskIdA].data[TDA_0] = sub_817B3DC(0, 0x2000, 0x20, 8); break; case 1: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; @@ -1884,8 +1884,8 @@ static void sub_817664C(u8 data, u8 taskIdA) gTasks[taskIdA].data[TDA_0] = sub_817B3DC(0, 0x2000, 0x20, 8); break; case 2: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 272; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; @@ -1895,8 +1895,8 @@ static void sub_817664C(u8 data, u8 taskIdA) gTasks[taskIdA].data[TDA_0] = sub_817B3DC(1, 0x2000, 0x200, 8); break; case 3: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 120; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = -32; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; @@ -1906,8 +1906,8 @@ static void sub_817664C(u8 data, u8 taskIdA) gTasks[taskIdA].data[TDA_0] = sub_817B3DC(1, 0x2000, 0x200, 8); break; case 4: - gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; - gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; + gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = FALSE; + gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = FALSE; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.x = 88; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].pos1.x = 152; gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].pos1.y = 46; diff --git a/src/egg_hatch.c b/src/egg_hatch.c index d56f03028..9f2526295 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -451,7 +451,7 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc case 1: SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, r5); spriteID = CreateSprite(&gMultiuseSpriteTemplate, 120, 75, 6); - gSprites[spriteID].invisible = 1; + gSprites[spriteID].invisible = TRUE; gSprites[spriteID].callback = SpriteCallbackDummy; break; } @@ -808,7 +808,7 @@ static void SpriteCB_Egg_4(struct Sprite* sprite) if (!gPaletteFade.active) { PlaySE(SE_TAMAGO); - sprite->invisible = 1; + sprite->invisible = TRUE; sprite->callback = SpriteCB_Egg_5; sprite->data[0] = 0; } @@ -818,7 +818,7 @@ static void SpriteCB_Egg_5(struct Sprite* sprite) { if (sprite->data[0] == 0) { - gSprites[sEggHatchData->pokeSpriteID].invisible = 0; + gSprites[sEggHatchData->pokeSpriteID].invisible = FALSE; StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1); } if (sprite->data[0] == 8) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 7f76bb168..2b85e751f 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1097,13 +1097,13 @@ static void sub_808D450(void) gSprites[spriteId].oam.affineMode = 1; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 0); - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 31); gSprites[spriteId].oam.affineMode = 1; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 1); - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; } u8 GetFirstInactiveEventObjectId(void) @@ -8798,9 +8798,9 @@ void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible) y2 = y - (sprite->centerToCornerVecY >> 1); if ((s16)x > 255 || x2 < -16) - sprite->invisible = 1; + sprite->invisible = TRUE; if ((s16)y > 175 || y2 < -16) - sprite->invisible = 1; + sprite->invisible = TRUE; } void UpdateEventObjectSpriteSubpriorityAndVisibility(struct Sprite *sprite) diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index 8d02eef91..77f65289e 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -220,10 +220,10 @@ static void SpriteCB_PostEvoSparkleSet2(struct Sprite* sprite) sprite->subpriority = 1; else { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->subpriority = 20; if (sprite->data[6] > 112 && sprite->data[6] & 1) - sprite->invisible = 1; + sprite->invisible = TRUE; } if (matrixNum < 20) matrixNum = 20; @@ -498,13 +498,13 @@ u8 sub_817C3A0(u8 preEvoSpriteID, u8 postEvoSpriteID) gSprites[preEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB; gSprites[preEvoSpriteID].oam.affineMode = 1; gSprites[preEvoSpriteID].oam.matrixNum = 30; - gSprites[preEvoSpriteID].invisible = 0; + gSprites[preEvoSpriteID].invisible = FALSE; CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[preEvoSpriteID].oam.paletteNum * 16)], 16); gSprites[postEvoSpriteID].callback = PokeEvoSprite_DummySpriteCB; gSprites[postEvoSpriteID].oam.affineMode = 1; gSprites[postEvoSpriteID].oam.matrixNum = 31; - gSprites[postEvoSpriteID].invisible = 0; + gSprites[postEvoSpriteID].invisible = FALSE; CpuSet(stack, &gPlttBufferFaded[0x100 + (gSprites[postEvoSpriteID].oam.paletteNum * 16)], 16); gTasks[taskID].tEvoStopped = FALSE; @@ -588,11 +588,11 @@ static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskID) { gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = 0; gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = 1; + gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = TRUE; gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = 0; gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = 0; + gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = FALSE; DestroyTask(taskID); } @@ -601,11 +601,11 @@ static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskID) { gSprites[gTasks[taskID].tPreEvoSpriteID].oam.affineMode = 0; gSprites[gTasks[taskID].tPreEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = 0; + gSprites[gTasks[taskID].tPreEvoSpriteID].invisible = FALSE; gSprites[gTasks[taskID].tPostEvoSpriteID].oam.affineMode = 0; gSprites[gTasks[taskID].tPostEvoSpriteID].oam.matrixNum = 0; - gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = 1; + gSprites[gTasks[taskID].tPostEvoSpriteID].invisible = TRUE; DestroyTask(taskID); } diff --git a/src/evolution_scene.c b/src/evolution_scene.c index ae15e79fe..91ac90b1b 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -285,7 +285,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 1; - gSprites[ID].invisible = 1; + gSprites[ID].invisible = TRUE; // postEvo sprite DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve], @@ -299,7 +299,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, sEvoStructPtr->postEvoSpriteID = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30); gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; - gSprites[ID].invisible = 1; + gSprites[ID].invisible = TRUE; LoadEvoSparkleSpriteAndPal(); @@ -514,7 +514,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri gSprites[ID].callback = SpriteCallbackDummy_2; gSprites[ID].oam.paletteNum = 2; - gSprites[ID].invisible = 1; + gSprites[ID].invisible = TRUE; LoadEvoSparkleSpriteAndPal(); @@ -623,7 +623,7 @@ static void Task_EvolutionScene(u8 taskID) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); - gSprites[sEvoStructPtr->preEvoSpriteID].invisible = 0; + gSprites[sEvoStructPtr->preEvoSpriteID].invisible = FALSE; gTasks[taskID].tState++; ShowBg(0); ShowBg(1); diff --git a/src/field_effect.c b/src/field_effect.c index ecda8578b..e7ecca183 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1078,7 +1078,7 @@ u8 PokecenterHealEffectHelper(s16 x, s16 y) spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C31C, x, y, 0); sprite = &gSprites[spriteIdAtEnd]; sprite->oam.priority = 2; - sprite->invisible = 1; + sprite->invisible = TRUE; SetSubspriteTables(sprite, &gUnknown_0855C2AC); return spriteIdAtEnd; } @@ -1088,7 +1088,7 @@ void SpriteCB_PokecenterMonitor(struct Sprite *sprite) if (sprite->data[0] != 0) { sprite->data[0] = 0; - sprite->invisible = 0; + sprite->invisible = FALSE; StartSpriteAnim(sprite, 1); } if (sprite->animEnded) @@ -1108,7 +1108,7 @@ void HallOfFameRecordEffectHelper(s16 a0, s16 a1, s16 a2, u8 a3) { spriteIdAtEnd = CreateSpriteAtEnd(&gSpriteTemplate_855C34C, a1, a2, 0); } - gSprites[spriteIdAtEnd].invisible = 1; + gSprites[spriteIdAtEnd].invisible = TRUE; gSprites[spriteIdAtEnd].data[0] = a0; } @@ -1182,7 +1182,7 @@ void mapldr_08084390(void) Overworld_PlaySpecialMapMusic(); pal_fill_black(); CreateTask(c3_080843F8, 0); - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 1; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE; if (gPlayerAvatar.flags & 0x08) { EventObjectTurn(&gEventObjects[gPlayerAvatar.eventObjectId], DIR_WEST); @@ -1242,7 +1242,7 @@ bool8 sub_80B6BCC(struct Task *task) // gUnknown_0855C3C8[0] playerObject = &gEventObjects[gPlayerAvatar.eventObjectId]; playerSprite = &gSprites[gPlayerAvatar.spriteId]; CameraObjectReset2(); - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 1; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE; gPlayerAvatar.preventStep = TRUE; EventObjectSetHeldMovement(playerObject, GetFaceDirectionMovementAction(GetPlayerFacingDirection())); task->data[4] = playerSprite->subspriteMode; @@ -1271,7 +1271,7 @@ bool8 sub_80B6C90(struct Task *task) // gUnknown_0855C3C8[2] sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); task->data[1] = 1; task->data[2] = 0; - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 0; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = FALSE; PlaySE(SE_RU_HYUU); task->data[0]++; return FALSE; @@ -1869,7 +1869,7 @@ bool8 sub_80B78EC(struct Task *task, struct EventObject *eventObject, struct Spr CameraObjectReset2(); FreezeEventObjects(); gPlayerAvatar.preventStep = TRUE; - eventObject->invisible = 1; + eventObject->invisible = TRUE; task->data[0]++; return FALSE; } @@ -1894,7 +1894,7 @@ bool8 sub_80B7968(struct Task *task, struct EventObject *eventObject, struct Spr if (sprite->animCmdIndex > 1) { task->data[0]++; - eventObject->invisible = 0; + eventObject->invisible = FALSE; CameraObjectReset1(); PlaySE(SE_W091); EventObjectSetHeldMovement(eventObject, GetJumpMovementAction(DIR_EAST)); @@ -1982,7 +1982,7 @@ bool8 sub_80B7B94(struct Task *task, struct EventObject *eventObject, struct Spr { if (gSprites[task->data[1]].animCmdIndex == 2) { - eventObject->invisible = 1; + eventObject->invisible = TRUE; task->data[0]++; } return FALSE; @@ -2097,7 +2097,7 @@ void mapldr_080859D4(void) ScriptContext2_Enable(); FreezeEventObjects(); gFieldCallback = NULL; - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 1; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE; CreateTask(sub_80B7E94, 0); } @@ -2127,7 +2127,7 @@ void sub_80B7EE8(struct Task *task) } if (task->data[2] >= 32 && task->data[15] == GetPlayerFacingDirection()) { - eventObject->invisible = 0; + eventObject->invisible = FALSE; ScriptContext2_Disable(); UnfreezeEventObjects(); DestroyTask(FindTaskIdByFunc(sub_80B7E94)); @@ -2254,7 +2254,7 @@ static void mapldr_08085D88(void) ScriptContext2_Enable(); FreezeEventObjects(); gFieldCallback = NULL; - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 1; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = TRUE; CameraObjectReset2(); CreateTask(sub_80B8250, 0); } @@ -2279,7 +2279,7 @@ void sub_80B8280(struct Task *task) sprite = &gSprites[gPlayerAvatar.spriteId]; centerToCornerVecY = -(sprite->centerToCornerVecY << 1); sprite->pos2.y = -(sprite->pos1.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY + centerToCornerVecY); - gEventObjects[gPlayerAvatar.eventObjectId].invisible = 0; + gEventObjects[gPlayerAvatar.eventObjectId].invisible = FALSE; task->data[0]++; task->data[1] = 8; task->data[2] = 1; @@ -3463,7 +3463,7 @@ void sub_80B96B0(struct Sprite *sprite) sprite->data[7]++; sprite->oam.affineMode = 0; FreeOamMatrix(sprite->oam.matrixNum); - sprite->invisible = 1; + sprite->invisible = TRUE; } } } @@ -3516,7 +3516,7 @@ void sub_80B9804(struct Task *task) CameraObjectReset2(); EventObjectTurn(eventObject, DIR_WEST); StartSpriteAnim(&gSprites[eventObject->spriteId], 0x16); - eventObject->invisible = 0; + eventObject->invisible = FALSE; task->data[1] = sub_80B94C4(); sub_80B9524(task->data[1]); sub_80B9560(task->data[1], eventObject->spriteId); diff --git a/src/item_menu.c b/src/item_menu.c index 938277210..0cdedec97 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1185,7 +1185,7 @@ void SwitchBagPocket(u8 taskId, s16 deltaBagPocketId, u16 a3) ClearWindowTilemap(1); DestroyListMenuTask(data[0], &gUnknown_0203CE58.scrollPosition[gUnknown_0203CE58.pocket], &gUnknown_0203CE58.cursorPosition[gUnknown_0203CE58.pocket]); schedule_bg_copy_tilemap_to_vram(0); - gSprites[gUnknown_0203CE54->unk804[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = 1; + gSprites[gUnknown_0203CE54->unk804[2 + (gUnknown_0203CE54->unk81B_1 ^ 1)]].invisible = TRUE; sub_81AB824(); } pocketId = gUnknown_0203CE58.pocket; diff --git a/src/main_menu.c b/src/main_menu.c index fd8b1b04d..7e84ae7ec 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1164,7 +1164,7 @@ void task_new_game_prof_birch_speech_2(u8 taskId) spriteId = gTasks[taskId].data[8]; gSprites[spriteId].pos1.x = 0x88; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; sub_8031BAC(taskId, 10); sub_8031D34(taskId, 20); @@ -1225,7 +1225,7 @@ void sub_8030A70(u8 taskId) gSprites[spriteId].pos1.x = 0x64; gSprites[spriteId].pos1.y = 0x4B; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gSprites[spriteId].data[0] = 0; CreatePokeballSpriteToReleaseMon(spriteId, gSprites[spriteId].oam.paletteNum, 0x70, 0x3A, 0, 0, 0x20, 0xFFFF, SPECIES_LOTAD); @@ -1306,8 +1306,8 @@ void task_new_game_prof_birch_speech_9(u8 taskId) { if (gTasks[taskId].data[5]) { - gSprites[gTasks[taskId].data[8]].invisible = 1; - gSprites[gTasks[taskId].data[9]].invisible = 1; + gSprites[gTasks[taskId].data[8]].invisible = TRUE; + gSprites[gTasks[taskId].data[9]].invisible = TRUE; if (gTasks[taskId].data[7]) { gTasks[taskId].data[7]--; @@ -1318,7 +1318,7 @@ void task_new_game_prof_birch_speech_9(u8 taskId) gSprites[spriteId].pos1.x = 0xB4; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; gTasks[taskId].data[2] = spriteId; gTasks[taskId].data[6] = 0; @@ -1394,14 +1394,14 @@ void sub_8030ED4(u8 taskId) } else { - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; if (gTasks[taskId].data[6]) spriteId = gTasks[taskId].data[11]; else spriteId = gTasks[taskId].data[10]; gSprites[spriteId].pos1.x = 0xF0; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gTasks[taskId].data[2] = spriteId; gSprites[spriteId].oam.objMode = 1; sub_8031BAC(taskId, 0); @@ -1562,8 +1562,8 @@ void task_new_game_prof_birch_speech_part2_8(u8 taskId) if (gTasks[taskId].data[5]) { - gSprites[gTasks[taskId].data[8]].invisible = 1; - gSprites[gTasks[taskId].data[9]].invisible = 1; + gSprites[gTasks[taskId].data[8]].invisible = TRUE; + gSprites[gTasks[taskId].data[9]].invisible = TRUE; if (gTasks[taskId].data[7]) { gTasks[taskId].data[7]--; @@ -1575,7 +1575,7 @@ void task_new_game_prof_birch_speech_part2_8(u8 taskId) spriteId = gTasks[taskId].data[10]; gSprites[spriteId].pos1.x = 0x78; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; gTasks[taskId].data[2] = spriteId; sub_8031BAC(taskId, 2); @@ -1692,7 +1692,7 @@ void new_game_prof_birch_speech_part2_start(void) } gSprites[spriteId].pos1.x = 0xB4; gSprites[spriteId].pos1.y = 0x3C; - gSprites[spriteId].invisible = 0; + gSprites[spriteId].invisible = FALSE; gTasks[taskId].data[2] = spriteId; SetGpuReg(REG_OFFSET_BG1HOFS, -60); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 0f6d5aa38..8cabbde42 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -410,7 +410,7 @@ void sub_8122344(u8 *spriteIds, u8 count) if (i != 0) StartSpriteAnim(&gSprites[spriteIds[i]], 1); - gSprites[spriteIds[i]].invisible = 1; + gSprites[spriteIds[i]].invisible = TRUE; } } diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 9c307f7f8..e75f2eeba 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -2347,7 +2347,7 @@ static void pokemonanimfunc_27(struct Sprite *sprite) sprite->invisible = sprite->data[4]; if (++sprite->data[2] > 19) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->callback = SpriteCB_SetDummyOnAnimEnd; } sprite->data[3] = 2; @@ -3069,17 +3069,17 @@ static void pokemonanimfunc_35(struct Sprite *sprite) { sprite->data[7] = 0; sprite->data[2]++; - sprite->invisible = 0; + sprite->invisible = FALSE; } else { sprite->data[7]++; - sprite->invisible = 1; + sprite->invisible = TRUE; } if (sprite->data[2] > 10) { - sprite->invisible = 0; + sprite->invisible = FALSE; sprite->callback = SpriteCB_SetDummyOnAnimEnd; } } diff --git a/src/rom_8034C54.c b/src/rom_8034C54.c index 42df51295..da18c330c 100644 --- a/src/rom_8034C54.c +++ b/src/rom_8034C54.c @@ -442,7 +442,7 @@ static void sub_8035608(void) ResetSpriteData(); spriteId = CreateSprite(&gUnknown_0831AC88, 0, 0, 0); - gSprites[spriteId].invisible = 1; + gSprites[spriteId].invisible = TRUE; SetMainCallback2(sub_8035648); } diff --git a/src/sprite.c b/src/sprite.c index 8a4729b27..c133dc73e 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -171,7 +171,7 @@ static const struct Sprite sDummySprite = .data = {0, 0, 0, 0, 0, 0, 0}, .inUse = 0, .coordOffsetEnabled = 0, - .invisible = 0, + .invisible = FALSE, .flags_3 = 0, .flags_4 = 0, .flags_5 = 0, -- cgit v1.2.3 From bcea321494f3cab1284325e73cca7f796961d963 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 01:35:47 +0100 Subject: Finish converting data2b data --- src/data2b.c | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 250 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/data2b.c b/src/data2b.c index 46a158e09..50cdee323 100644 --- a/src/data2b.c +++ b/src/data2b.c @@ -1,9 +1,257 @@ #include "global.h" #include "data2.h" #include "graphics.h" +#include "malloc.h" -extern const union AnimCmd gAnimCmd_General_Frame0[]; -extern const union AnimCmd AnimCmd_82FF540[]; +const u16 gUnknown_082FF1D8[] = INCBIN_U16("graphics/link/minigame_digits.gbapal"); +const u8 gUnknown_082FF1F8[] = INCBIN_U8("graphics/link/minigame_digits.4bpp.lz"); +const u8 gUnknown_082FF2B8[] = INCBIN_U8("graphics/link/minigame_digits2.4bpp.lz"); + +const struct SpriteFrameImage gUnknown_082FF3A8[] = +{ + gHeap + 0x8000, 0x800, + gHeap + 0x8800, 0x800, + gHeap + 0x9000, 0x800, + gHeap + 0x9800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF3C8[] = +{ + gHeap + 0xA000, 0x800, + gHeap + 0xA800, 0x800, + gHeap + 0xB000, 0x800, + gHeap + 0xB800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF3E8[] = +{ + gHeap + 0xC000, 0x800, + gHeap + 0xC800, 0x800, + gHeap + 0xD000, 0x800, + gHeap + 0xD800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF408[] = +{ + gHeap + 0xE000, 0x800, + gHeap + 0xE800, 0x800, + gHeap + 0xF000, 0x800, + gHeap + 0xF800, 0x800, +}; + +const struct SpriteFrameImage gUnknown_082FF428[] = +{ + gTrainerBackPic_Brendan, 0x0800, + gTrainerBackPic_Brendan + 0x0800, 0x0800, + gTrainerBackPic_Brendan + 0x1000, 0x0800, + gTrainerBackPic_Brendan + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF448[] = +{ + gTrainerBackPic_May, 0x0800, + gTrainerBackPic_May + 0x0800, 0x0800, + gTrainerBackPic_May + 0x1000, 0x0800, + gTrainerBackPic_May + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF468[] = +{ + gTrainerBackPic_Red, 0x0800, + gTrainerBackPic_Red + 0x0800, 0x0800, + gTrainerBackPic_Red + 0x1000, 0x0800, + gTrainerBackPic_Red + 0x1800, 0x0800, + gTrainerBackPic_Red + 0x2000, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF490[] = +{ + gTrainerBackPic_Leaf, 0x0800, + gTrainerBackPic_Leaf + 0x0800, 0x0800, + gTrainerBackPic_Leaf + 0x1000, 0x0800, + gTrainerBackPic_Leaf + 0x1800, 0x0800, + gTrainerBackPic_Leaf + 0x2000, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF4B8[] = +{ + gTrainerBackPic_RubySapphireBrendan, 0x0800, + gTrainerBackPic_RubySapphireBrendan + 0x0800, 0x0800, + gTrainerBackPic_RubySapphireBrendan + 0x1000, 0x0800, + gTrainerBackPic_RubySapphireBrendan + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF4D8[] = +{ + gTrainerBackPic_RubySapphireMay, 0x0800, + gTrainerBackPic_RubySapphireMay + 0x0800, 0x0800, + gTrainerBackPic_RubySapphireMay + 0x1000, 0x0800, + gTrainerBackPic_RubySapphireMay + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF4F8[] = +{ + gTrainerBackPic_Wally, 0x0800, + gTrainerBackPic_Wally + 0x0800, 0x0800, + gTrainerBackPic_Wally + 0x1000, 0x0800, + gTrainerBackPic_Wally + 0x1800, 0x0800, +}; + +const struct SpriteFrameImage gUnknown_082FF518[] = +{ + gTrainerBackPic_Steven, 0x0800, + gTrainerBackPic_Steven + 0x0800, 0x0800, + gTrainerBackPic_Steven + 0x1000, 0x0800, + gTrainerBackPic_Steven + 0x1800, 0x0800, +}; + +const union AnimCmd gAnimCmd_General_Frame0[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +const union AnimCmd AnimCmd_82FF540[] = +{ + ANIMCMD_FRAME(3, 0), + ANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF548[] = +{ + AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF558[] = +{ + AFFINEANIMCMD_FRAME(0xff00, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF568[] = +{ + AFFINEANIMCMD_FRAME(0x0028, 0x0028, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x0012, 0x0012, 0x00, 0x0c), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF580[] = +{ + AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x12), + AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x0f), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF598[] = +{ + AFFINEANIMCMD_FRAME(0x00a0, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x0004, 0x0000, 0x00, 0x08), + AFFINEANIMCMD_FRAME(0xfffc, 0x0000, 0x00, 0x08), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd gUnknown_082FF5B8[] = +{ + AFFINEANIMCMD_FRAME(0x0002, 0x0002, 0x00, 0x14), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF5C8[] = +{ + AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x14), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF5D8[] = +{ + AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0000), + AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x09), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF5F0[] = +{ + AFFINEANIMCMD_FRAME(0x0004, 0x0004, 0x00, 0x3f), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF600[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd * const gUnknown_082FF618[] = +{ + gUnknown_082FF548, + gUnknown_082FF568, + gUnknown_082FF580, + gUnknown_082FF598, + gUnknown_082FF5B8, + gUnknown_082FF5C8, + gUnknown_082FF5F0, + gUnknown_082FF600, + gUnknown_082FF5D8, +}; + +const union AffineAnimCmd gUnknown_082FF63C[] = +{ + AFFINEANIMCMD_FRAME(0xfffc, 0xfffc, 0x04, 0x3f), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF64C[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF664[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfb, 0x14), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x00, 0x14), + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x05, 0x14), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_082FF684[] = +{ + AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x09, 0x6e), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd * const gUnknown_082FF694[] = +{ + gUnknown_082FF548, + gUnknown_082FF568, + gUnknown_082FF580, + gUnknown_082FF598, + gUnknown_082FF5B8, + gUnknown_082FF5C8, + gUnknown_082FF63C, + gUnknown_082FF64C, + gUnknown_082FF664, + gUnknown_082FF5D8, + gUnknown_082FF684, +}; + +const union AffineAnimCmd * const gUnknown_082FF6C0[] = +{ + gUnknown_082FF558, + gUnknown_082FF568, + gUnknown_082FF580, + gUnknown_082FF598, + gUnknown_082FF5B8, + gUnknown_082FF5C8, + gUnknown_082FF63C, + gUnknown_082FF64C, + gUnknown_082FF664, + gUnknown_082FF5D8, + gUnknown_082FF684, +}; #include "data/pokemon_graphics/unknown_anims.h" #include "data/pokemon_graphics/front_pic_coordinates.h" -- cgit v1.2.3 From b6ee8823f021a7da98cf84d5fc8a6b8609d1630f Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 02:04:03 +0100 Subject: Move field_special_scene data to C --- src/field_special_scene.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/field_special_scene.c b/src/field_special_scene.c index c6cb0741d..1cabf63d6 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -1,22 +1,21 @@ #include "global.h" -#include "task.h" -#include "sprite.h" +#include "event_data.h" #include "event_object_movement.h" -#include "constants/songs.h" -#include "sound.h" +#include "main.h" #include "palette.h" #include "script.h" +#include "script_movement.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "constants/songs.h" #include "constants/vars.h" -#include "event_data.h" -#include "main.h" #define SECONDS(value) ((signed) (60.0 * value + 0.5)) extern u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); // should be in field_specials.h extern void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -extern bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8); extern bool32 CountSSTidalStep(u16); -extern bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, u8 *); extern void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); extern void sp13E_warp_to_last_warp(void); extern void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); @@ -38,11 +37,12 @@ extern void pal_fill_black(void); extern void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatileId); extern void DrawWholeMapView(); -extern s8 gTruckCamera_HorizontalTable[]; - -extern u8 gUnknown_0858E8AB[]; -extern u8 gUnknown_0858E8AD[]; +//. rodata +static const s8 gTruckCamera_HorizontalTable[] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, -1, -1, -1, 0}; +const u8 gUnknown_0858E8AB[] = {0x18, 0xFE}; +const u8 gUnknown_0858E8AD[] = {0x17, 0xFE}; +// .text void Task_Truck3(u8); s16 GetTruckCameraBobbingY(int a1) -- cgit v1.2.3 From 3c16d8c59876b2d5d84a3c9d82a7fc5718a32edb Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 02:17:21 +0100 Subject: Move braille_puzzles data to C --- src/braille_puzzles.c | 53 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index b7ed1f713..4765141de 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -1,19 +1,16 @@ #include "global.h" #include "event_data.h" -#include "constants/songs.h" -#include "sound.h" +#include "field_camera.h" +#include "field_effect.h" #include "script.h" -#include "constants/species.h" +#include "sound.h" #include "task.h" -#include "field_effect.h" #include "constants/flags.h" #include "constants/maps.h" +#include "constants/songs.h" +#include "constants/species.h" extern void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatileId); // fieldmap -extern void DrawWholeMapView(); // field_camera -extern void SetCameraPanningCallback(void ( *callback)()); // field_camera -extern void InstallCameraPanAheadCallback(void); -extern void SetCameraPanning(s16 x, s16 y); extern u8 GetCursorSelectionMonId(void); extern u8 oei_task_add(void); @@ -26,7 +23,45 @@ enum EWRAM_DATA static u8 sBraillePuzzleCallbackFlag = 0; -extern const u8 gUnknown_085EFE74[][2]; +static const u8 gUnknown_085EFE74[][2] = +{ + {0x04, 0x15}, + {0x05, 0x15}, + {0x06, 0x15}, + {0x07, 0x15}, + {0x08, 0x15}, + {0x09, 0x15}, + {0x0a, 0x15}, + {0x0b, 0x15}, + {0x0c, 0x15}, + {0x0c, 0x16}, + {0x0c, 0x17}, + {0x0d, 0x17}, + {0x0d, 0x18}, + {0x0d, 0x19}, + {0x0d, 0x1a}, + {0x0d, 0x1b}, + {0x0c, 0x1b}, + {0x0c, 0x1c}, + {0x04, 0x1d}, + {0x05, 0x1d}, + {0x06, 0x1d}, + {0x07, 0x1d}, + {0x08, 0x1d}, + {0x09, 0x1d}, + {0x0a, 0x1d}, + {0x0b, 0x1d}, + {0x0c, 0x1d}, + {0x04, 0x1c}, + {0x04, 0x1b}, + {0x03, 0x1b}, + {0x03, 0x1a}, + {0x03, 0x19}, + {0x03, 0x18}, + {0x03, 0x17}, + {0x04, 0x17}, + {0x04, 0x16}, +}; void SealedChamberShakingEffect(u8); void sub_8179860(void); -- cgit v1.2.3 From 991151f4613e534f73141035b054ab7914d04a14 Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 03:04:19 +0100 Subject: Move item_use data to C --- src/item_use.c | 59 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/item_use.c b/src/item_use.c index ea8206502..67bdabd87 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -1,15 +1,10 @@ #include "global.h" #include "item_use.h" #include "battle.h" -#include "main.h" +#include "battle_pyramid_bag.h" #include "berry.h" #include "bike.h" #include "coins.h" -#include "constants/bg_event_constants.h" -#include "constants/flags.h" -#include "constants/items.h" -#include "constants/songs.h" -#include "constants/vars.h" #include "data2.h" #include "event_data.h" #include "fieldmap.h" @@ -18,25 +13,31 @@ #include "field_screen.h" #include "field_weather.h" #include "item.h" +#include "item_menu.h" #include "mail.h" +#include "main.h" +#include "menu.h" +#include "menu_helpers.h" #include "metatile_behavior.h" #include "overworld.h" #include "palette.h" +#include "party_menu.h" +#include "pokeblock.h" #include "pokemon.h" #include "rom_818CFC8.h" #include "script.h" #include "sound.h" +#include "strings.h" #include "string_util.h" #include "task.h" #include "text.h" -#include "strings.h" -#include "pokeblock.h" -#include "menu.h" -#include "item_menu.h" -#include "battle_pyramid_bag.h" +#include "constants/bg_event_constants.h" +#include "constants/flags.h" +#include "constants/items.h" +#include "constants/songs.h" +#include "constants/vars.h" 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); @@ -45,7 +46,6 @@ extern void ItemUseOutOfBattle_TMHM(u8 a); extern void ItemUseOutOfBattle_EvolutionStone(u8 b); extern bool8 IsPlayerFacingSurfableFishableWater(void); extern bool8 sub_81221AC(void); -extern u8 gUnknown_085920E4[]; extern u8 Route102_EventScript_274482[]; extern u8 Route102_EventScript_2744C0[]; extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[]; @@ -53,16 +53,7 @@ extern int sub_80247BC(void); extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection); extern void SetUpItemUseCallback(u8 taskId); extern void ItemUseCB_Medicine(u8, u16, TaskFunc); -extern void sub_81B67C8(u8, u16, TaskFunc); -extern void sub_81B79E8(u8, u16, TaskFunc); -extern void dp05_ether(u8, u16, TaskFunc); -extern void dp05_pp_up(u8, u16, TaskFunc); -extern void dp05_rare_candy(u8, u16, TaskFunc); -extern void sub_81B6DC4(u8, u16, TaskFunc); -extern void sub_81B7C74(u8, u16, TaskFunc); -extern u16 ItemIdToBattleMoveId(u16); -extern void bag_menu_yes_no(u8, u8, void(**)(u8 taskId)); -extern void (*gUnknown_085920E8[])(u8 taskId); +extern void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*); extern void sub_81C5924(void); extern void sub_81C59BC(void); extern void sub_81AB9A8(u8); @@ -92,6 +83,7 @@ void sub_80FDE7C(u8 taskId); void sub_80FDF90(u8 taskId); void task08_0809AD8C(u8 taskId); void sub_80FE024(u8 taskId); +void sub_80FE03C(u8 taskId); void sub_80FE124(u8 taskId); void sub_80FE164(u8 taskId); @@ -108,6 +100,25 @@ void sub_80FDBEC(void); bool8 sub_80FDE2C(void); void ItemUseOutOfBattle_CannotUse(u8 taskId); +// .rodata + +static const MainCallback gUnknown_085920D8[] = +{ + sub_81B617C, + CB2_ReturnToField, + NULL, +}; + +static const u8 gUnknown_085920E4[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST}; + +static const struct YesNoFuncTable gUnknown_085920E8 = +{ + .yesFunc = sub_80FE03C, + .noFunc = bag_menu_inits_lists_menu, +}; + +// .text + void SetUpItemUseCallback(u8 taskId) { u8 type; @@ -784,7 +795,7 @@ void task08_0809AD8C(u8 taskId) void sub_80FE024(u8 taskId) { - bag_menu_yes_no(taskId, 6, gUnknown_085920E8); + bag_menu_yes_no(taskId, 6, &gUnknown_085920E8); } void sub_80FE03C(u8 taskId) -- cgit v1.2.3 From ba125b23fd7a51675c27d5d23e8037e7c9dfdeb7 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Tue, 11 Sep 2018 17:18:10 -0500 Subject: Remove transparency from event object spritesheets --- src/data/field_event_obj/event_object_graphics.h | 74 ++++------------ src/data/field_event_obj/field_effect_objects.h | 108 +++++++++++------------ 2 files changed, 69 insertions(+), 113 deletions(-) (limited to 'src') diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index 522f14db4..a99d5a779 100755 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h @@ -255,12 +255,7 @@ const u32 gEventObjectPic_CableCar[] = INCBIN_U32("graphics/event_objects/pics/m const u16 gEventObjectPalette20[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_20.gbapal"); const u32 gEventObjectPic_SSTidal[] = INCBIN_U32("graphics/event_objects/pics/misc/ss_tidal.4bpp"); const u16 gEventObjectPalette21[] = INCBIN_U16("graphics/event_objects/palettes/field_object_palette_21.gbapal"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_0[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/0.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_1[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/1.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_2[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/2.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_3[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/3.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_4[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/4.4bpp"); -const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle_5[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle/5.4bpp"); +const u32 gFieldEffectObjectPic_BerryTreeGrowthSparkle[] = INCBIN_U32("graphics/event_objects/pics/effects/berry_tree_growth_sparkle.4bpp"); const u32 gEventObjectPic_BerryTreeDirtPile[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/dirt_pile.4bpp"); const u32 gEventObjectPic_BerryTreeSprout[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/sprout.4bpp"); const u32 gEventObjectPic_PechaBerryTree[] = INCBIN_U32("graphics/event_objects/pics/berry_trees/pecha.4bpp"); @@ -310,72 +305,33 @@ const u32 gFieldEffectObjectPic_Ash[] = INCBIN_U32("graphics/event_objects/pics/ const u32 gFieldEffectObjectPic_Arrow[] = INCBIN_U32("graphics/event_objects/pics/effects/arrow.4bpp"); const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_00.gbapal"); const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_01.gbapal"); -const u32 gFieldEffectObjectPic_GroundImpactDust_0[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust/0.4bpp"); -const u32 gFieldEffectObjectPic_GroundImpactDust_1[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust/1.4bpp"); -const u32 gFieldEffectObjectPic_GroundImpactDust_2[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust/2.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass_0[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass/0.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass_1[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass/1.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass_2[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass/2.4bpp"); -const u32 gFieldEffectObjectPic_BikeHopTallGrass_3[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass/3.4bpp"); -const u32 gUnusedGrass_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass/0.4bpp"); -const u32 gUnusedGrass_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass/1.4bpp"); -const u32 gUnusedGrass_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass/2.4bpp"); -const u32 gUnusedGrass_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/4.4bpp"); -const u32 gUnknown_084F7E38[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_4F7E38/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown16_5[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16/5.4bpp"); +const u32 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U32("graphics/event_objects/pics/effects/ground_impact_dust.4bpp"); +const u32 gFieldEffectObjectPic_BikeHopTallGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_tall_grass.4bpp"); +const u32 gUnusedGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/unused_grass.4bpp"); +const u32 gFieldEffectObjectPic_Unknown16[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_16.4bpp"); const u32 gFieldEffectObjectPic_Unknown17[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_17.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown18_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18/3.4bpp"); -const u32 gFieldEffectObjectPic_LongGrass_0[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/0.4bpp"); -const u32 gFieldEffectObjectPic_LongGrass_1[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/1.4bpp"); -const u32 gFieldEffectObjectPic_LongGrass_2[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/2.4bpp"); -const u32 gFieldEffectObjectPic_LongGrass_3[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass/3.4bpp"); +const u32 gFieldEffectObjectPic_Unknown18[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_18.4bpp"); +const u32 gFieldEffectObjectPic_LongGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/long_grass.4bpp"); const u32 gFieldEffectObjectPic_TallGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/tall_grass.4bpp"); const u32 gFieldEffectObjectPic_ShortGrass[] = INCBIN_U32("graphics/event_objects/pics/effects/short_grass.4bpp"); -const u32 gFieldEffectObjectPic_SandFootprints_0[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_footprints/0.4bpp"); -const u32 gFieldEffectObjectPic_SandFootprints_1[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_footprints/1.4bpp"); -const u32 gFieldEffectObjectPic_DeepSandFootprints_0[] = INCBIN_U32("graphics/event_objects/pics/effects/deep_sand_footprints/0.4bpp"); -const u32 gFieldEffectObjectPic_DeepSandFootprints_1[] = INCBIN_U32("graphics/event_objects/pics/effects/deep_sand_footprints/1.4bpp"); -const u32 gFieldEffectObjectPic_BikeTireTracks_0[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks/0.4bpp"); -const u32 gFieldEffectObjectPic_BikeTireTracks_1[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks/1.4bpp"); -const u32 gFieldEffectObjectPic_BikeTireTracks_2[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks/2.4bpp"); -const u32 gFieldEffectObjectPic_BikeTireTracks_3[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown19_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown29_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown29_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown29_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29/2.4bpp"); +const u32 gFieldEffectObjectPic_SandFootprints[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_footprints.4bpp"); +const u32 gFieldEffectObjectPic_DeepSandFootprints[] = INCBIN_U32("graphics/event_objects/pics/effects/deep_sand_footprints.4bpp"); +const u32 gFieldEffectObjectPic_BikeTireTracks[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_tire_tracks.4bpp"); +const u32 gFieldEffectObjectPic_Unknown19[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_19.4bpp"); +const u32 gFieldEffectObjectPic_Unknown29[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_29.4bpp"); const u32 gFieldEffectObjectPic_BikeHopBigSplash[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_big_splash.4bpp"); const u32 gFieldEffectObjectPic_Splash[] = INCBIN_U32("graphics/event_objects/pics/effects/splash.4bpp"); const u32 gFieldEffectObjectPic_BikeHopSmallSplash[] = INCBIN_U32("graphics/event_objects/pics/effects/bike_hop_small_splash.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown20_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20/4.4bpp"); +const u32 gFieldEffectObjectPic_Unknown20[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_20.4bpp"); const u32 gFieldEffectObjectPic_TreeDisguise[] = INCBIN_U32("graphics/event_objects/pics/effects/tree_disguise.4bpp"); const u32 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U32("graphics/event_objects/pics/effects/mountain_disguise.4bpp"); const u32 gFieldEffectObjectPic_SandDisguisePlaceholder[] = INCBIN_U32("graphics/event_objects/pics/effects/sand_disguise_placeholder.4bpp"); const u32 gFieldEffectObjectPic_HotSpringsWater[] = INCBIN_U32("graphics/event_objects/pics/effects/hot_springs_water.4bpp"); const u16 gFieldEffectObjectPalette2[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_02.gbapal"); const u32 gFieldEffectObjectPic_JumpOutOfAsh[] = INCBIN_U32("graphics/event_objects/pics/effects/jump_out_of_ash.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/1.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_2[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/2.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_3[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/3.4bpp"); -const u32 gFieldEffectObjectPic_Unknown33_4[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33/4.4bpp"); +const u32 gFieldEffectObjectPic_Unknown33[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_33.4bpp"); const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/event_objects/pics/effects/bubbles.4bpp"); -const u32 gFieldEffectObjectPic_Unknown35_0[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35/0.4bpp"); -const u32 gFieldEffectObjectPic_Unknown35_1[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35/1.4bpp"); +const u32 gFieldEffectObjectPic_Unknown35[] = INCBIN_U32("graphics/event_objects/pics/effects/unknown_35.4bpp"); const u16 gFieldEffectObjectPalette3[] = INCBIN_U16("graphics/event_objects/palettes/field_effect_object_palette_03.gbapal"); const u32 gFieldEffectObjectPic_Bird[] = INCBIN_U32("graphics/event_objects/pics/effects/bird.4bpp"); const u32 gEventObjectPic_Juan[] = INCBIN_U32("graphics/event_objects/pics/people/gym_leaders/juan.4bpp"); diff --git a/src/data/field_event_obj/field_effect_objects.h b/src/data/field_event_obj/field_effect_objects.h index 45a498dac..15fc73343 100755 --- a/src/data/field_event_obj/field_effect_objects.h +++ b/src/data/field_event_obj/field_effect_objects.h @@ -208,9 +208,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Arrow[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow = {0xFFFF, 0xFFFF, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Arrow, gFieldEffectObjectPicTable_Arrow, gDummySpriteAffineAnimTable, SpriteCallbackDummy}; const struct SpriteFrameImage gFieldEffectObjectPicTable_GroundImpactDust[] = { - obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_0), - obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_1), - obj_frame_tiles(gFieldEffectObjectPic_GroundImpactDust_2), + overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850CC8C[] = @@ -229,10 +229,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_GroundImpactDust[] = const struct SpriteTemplate gFieldEffectObjectTemplate_GroundImpactDust = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_GroundImpactDust, gFieldEffectObjectPicTable_GroundImpactDust, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeHopTallGrass[] = { - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_0), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_1), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_2), - obj_frame_tiles(gFieldEffectObjectPic_BikeHopTallGrass_3), + overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 2), + overworld_frame(gFieldEffectObjectPic_BikeHopTallGrass, 2, 1, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CCD8[] = @@ -252,8 +252,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopTallGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopTallGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopTallGrass, gFieldEffectObjectPicTable_BikeHopTallGrass, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_SandFootprints[] = { - obj_frame_tiles(gFieldEffectObjectPic_SandFootprints_0), - obj_frame_tiles(gFieldEffectObjectPic_SandFootprints_1), + overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_SandFootprints, 2, 2, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850CD18[] = @@ -292,8 +292,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_SandFootprints[] = const struct SpriteTemplate gFieldEffectObjectTemplate_SandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_SandFootprints, gFieldEffectObjectPicTable_SandFootprints, gDummySpriteAffineAnimTable, sub_8154C60}; const struct SpriteFrameImage gFieldEffectObjectPicTable_DeepSandFootprints[] = { - obj_frame_tiles(gFieldEffectObjectPic_DeepSandFootprints_0), - obj_frame_tiles(gFieldEffectObjectPic_DeepSandFootprints_1), + overworld_frame(gFieldEffectObjectPic_DeepSandFootprints, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_DeepSandFootprints, 2, 2, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850CD74[] = @@ -332,10 +332,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_DeepSandFootprints[] const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_DeepSandFootprints, gFieldEffectObjectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, sub_8154C60}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BikeTireTracks[] = { - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_0), - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_1), - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_2), - obj_frame_tiles(gFieldEffectObjectPic_BikeTireTracks_3), + overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_BikeTireTracks, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CDE0[] = @@ -479,10 +479,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_BikeHopSmallSplash[] const struct SpriteTemplate gFieldEffectObjectTemplate_BikeHopSmallSplash = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_BikeHopSmallSplash, gFieldEffectObjectPicTable_BikeHopSmallSplash, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_LongGrass[] = { - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_0), - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_1), - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_2), - obj_frame_tiles(gFieldEffectObjectPic_LongGrass_3), + overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_LongGrass, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850CF70[] = @@ -505,12 +505,12 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_LongGrass[] = const struct SpriteTemplate gFieldEffectObjectTemplate_LongGrass = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_LongGrass, gFieldEffectObjectPicTable_LongGrass, gDummySpriteAffineAnimTable, unc_grass_tall}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown16[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_3), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_4), - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_5), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6), }; const union AnimCmd gFieldEffectObjectImageAnim_850CFDC[] = @@ -532,7 +532,7 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown16[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown16 = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown16, gFieldEffectObjectPicTable_Unknown16, gDummySpriteAffineAnimTable, sub_8156194}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown17[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown16_5), + overworld_frame(gFieldEffectObjectPic_Unknown16, 2, 2, 6), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 1), overworld_frame(gFieldEffectObjectPic_Unknown17, 2, 2, 2), @@ -565,10 +565,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown17[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown17 = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown17, gFieldEffectObjectPicTable_Unknown17, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown18[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown18_3), + overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown18, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D0C0[] = @@ -590,10 +590,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown18[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown18 = {0xFFFF, 0x1005, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown18, gFieldEffectObjectPicTable_Unknown18, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown19[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown19_3), + overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown19, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D118[] = @@ -613,9 +613,9 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown19[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown19 = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x16, gFieldEffectObjectImageAnimTable_Unknown19, gFieldEffectObjectPicTable_Unknown19, gDummySpriteAffineAnimTable, sub_81561D0}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown29[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown29_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown29_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown29_2), + overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 0), + overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 1), + overworld_frame(gFieldEffectObjectPic_Unknown29, 2, 1, 2), }; const union AnimCmd gFieldEffectObjectImageAnim_850D160[] = @@ -634,10 +634,10 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Unknown29[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown29 = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x8, gFieldEffectObjectImageAnimTable_Unknown29, gFieldEffectObjectPicTable_Unknown29, gDummySpriteAffineAnimTable, sub_81559BC}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown20[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown20_3), + overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown20, 2, 2, 3), }; const union AnimCmd gFieldEffectObjectImageAnim_850D1AC[] = @@ -695,12 +695,12 @@ const union AffineAnimCmd *const gFieldEffectObjectRotScalAnimTable_Unknown21[] const struct SpriteTemplate gFieldEffectObjectTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectObjectRotScalAnimTable_Unknown21, SpriteCallbackDummy}; const struct SpriteFrameImage gFieldEffectObjectPicTable_BerryTreeGrowthSparkle[] = { - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_0), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_1), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_2), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_3), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_4), - obj_frame_tiles(gFieldEffectObjectPic_BerryTreeGrowthSparkle_5), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 4), + overworld_frame(gFieldEffectObjectPic_BerryTreeGrowthSparkle, 2, 2, 5), }; const union AnimCmd gFieldEffectObjectImageAnim_850D2D4[] = @@ -900,11 +900,11 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_JumpOutOfAsh = {0xFFFF, 0 const struct SpritePalette gFieldEffectObjectPaletteInfo2 = {gFieldEffectObjectPalette2, 0x100D}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown33[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_1), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_2), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_3), - obj_frame_tiles(gFieldEffectObjectPic_Unknown33_4), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 1), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 2), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 3), + overworld_frame(gFieldEffectObjectPic_Unknown33, 2, 2, 4), }; const union AnimCmd gFieldEffectObjectImageAnim_850D5B0[] = @@ -956,8 +956,8 @@ const union AnimCmd *const gFieldEffectObjectImageAnimTable_Bubbles[] = const struct SpriteTemplate gFieldEffectObjectTemplate_Bubbles = {0xFFFF, 0x1004, &gEventObjectBaseOam_16x32, gFieldEffectObjectImageAnimTable_Bubbles, gFieldEffectObjectPicTable_Bubbles, gDummySpriteAffineAnimTable, sub_8155AEC}; const struct SpriteFrameImage gFieldEffectObjectPicTable_Unknown35[] = { - obj_frame_tiles(gFieldEffectObjectPic_Unknown35_0), - obj_frame_tiles(gFieldEffectObjectPic_Unknown35_1), + overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 0), + overworld_frame(gFieldEffectObjectPic_Unknown35, 2, 2, 1), }; const union AnimCmd gFieldEffectObjectImageAnim_850D674[] = -- cgit v1.2.3 From f40fa373988288ee6ca9b8938cb6c33aa409575e Mon Sep 17 00:00:00 2001 From: Slawter666 <38655737+Slawter666@users.noreply.github.com> Date: Tue, 11 Sep 2018 23:37:47 +0100 Subject: Move battle_bg data to C --- src/battle_bg.c | 671 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/battle_main.c | 2 +- 2 files changed, 653 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/battle_bg.c b/src/battle_bg.c index 999b64a54..b8c24e10f 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -1,24 +1,26 @@ #include "global.h" #include "battle.h" -#include "sprite.h" -#include "constants/trainers.h" -#include "graphics.h" -#include "decompress.h" +#include "battle_bg.h" +#include "battle_main.h" +#include "battle_message.h" +#include "battle_setup.h" #include "bg.h" -#include "palette.h" -#include "main.h" +#include "decompress.h" #include "gpu_regs.h" +#include "graphics.h" #include "link.h" -#include "battle_message.h" +#include "main.h" +#include "menu.h" +#include "palette.h" +#include "sound.h" +#include "sprite.h" #include "task.h" +#include "text_window.h" #include "trig.h" -#include "sound.h" -#include "constants/songs.h" #include "window.h" -#include "text_window.h" -#include "menu.h" -#include "battle_setup.h" #include "constants/map_types.h" +#include "constants/songs.h" +#include "constants/trainers.h" struct BattleBackground { @@ -29,13 +31,6 @@ struct BattleBackground const void *palette; }; -extern const struct SpriteTemplate gUnknown_0831A9D0; -extern const struct SpriteTemplate gUnknown_0831A9E8; -extern const struct CompressedSpriteSheet gUnknown_0831AA00; -extern const struct BgTemplate gBattleBgTemplates[4]; -extern const struct WindowTemplate *const gBattleWindowTemplates[]; -extern const struct BattleBackground gBattleTerrainTable[]; - extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; @@ -43,6 +38,644 @@ extern u16 gBattle_BG2_Y; extern u8 GetCurrentMapBattleScene(void); +// .rodata +static const u16 sUnrefArray[] = {0x0300, 0x0000}; //OamData? + +static const struct OamData gUnknown_0831A988 = +{ + .y = 0, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const struct OamData gUnknown_0831A990 = +{ + .y = 0, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 64, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AffineAnimCmd gUnknown_0831A998[] = +{ + AFFINEANIMCMD_FRAME(0x0080, 0x0080, 0x00, 0x00), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gUnknown_0831A9A8[] = +{ + AFFINEANIMCMD_FRAME(0x0080, 0x0080, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x0018, 0x0018, 0x00, 0x80), + AFFINEANIMCMD_FRAME(0x0018, 0x0018, 0x00, 0x80), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd * const gUnknown_0831A9C8[] = +{ + gUnknown_0831A998, + gUnknown_0831A9A8, +}; + +static const struct SpriteTemplate gUnknown_0831A9D0 = +{ + .tileTag = 0x2710, + .paletteTag = 0x2710, + .oam = &gUnknown_0831A988, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_0831A9C8, + .callback = nullsub_17 +}; + +static const struct SpriteTemplate gUnknown_0831A9E8 = +{ + .tileTag = 0x2710, + .paletteTag = 0x2710, + .oam = &gUnknown_0831A990, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_0831A9C8, + .callback = nullsub_17 +}; + +static const struct CompressedSpriteSheet gUnknown_0831AA00 = +{ + gUnknown_08D77B0C, 0x1000, 0x2710 +}; + +const struct BgTemplate gBattleBgTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 24, + .screenSize = 2, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 28, + .screenSize = 2, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 1, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 26, + .screenSize = 1, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, +}; + +static const struct WindowTemplate gUnknown_0831AA18[] = +{ + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x0090, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 35, + .width = 14, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x01c0, + }, + { + .priority = 0, + .tilemapLeft = 17, + .tilemapTop = 35, + .width = 12, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x0190, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 55, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0300, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 55, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0310, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0320, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0330, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 55, + .width = 4, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0290, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 57, + .width = 0, + .height = 0, + .paletteNum = 5, + .baseBlock = 0x0298, + }, + { + .priority = 0, + .tilemapLeft = 25, + .tilemapTop = 55, + .width = 4, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0298, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x02a0, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 55, + .width = 8, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x02b0, + }, + { + .priority = 0, + .tilemapLeft = 26, + .tilemapTop = 9, + .width = 3, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 1, + .tilemapLeft = 19, + .tilemapTop = 8, + .width = 10, + .height = 11, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 2, + .tilemapLeft = 18, + .tilemapTop = 0, + .width = 12, + .height = 3, + .paletteNum = 6, + .baseBlock = 0x016e, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 3, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0020, + }, + { + .priority = 2, + .tilemapLeft = 2, + .tilemapTop = 3, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0040, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 2, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0020, + }, + { + .priority = 2, + .tilemapLeft = 2, + .tilemapTop = 2, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0040, + }, + { + .priority = 1, + .tilemapLeft = 2, + .tilemapTop = 6, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0060, + }, + { + .priority = 2, + .tilemapLeft = 2, + .tilemapTop = 6, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0080, + }, + { + .priority = 0, + .tilemapLeft = 12, + .tilemapTop = 2, + .width = 6, + .height = 2, + .paletteNum = 0, + .baseBlock = 0x00a0, + }, + { + .priority = 0, + .tilemapLeft = 4, + .tilemapTop = 2, + .width = 7, + .height = 2, + .paletteNum = 0, + .baseBlock = 0x00a0, + }, + { + .priority = 0, + .tilemapLeft = 19, + .tilemapTop = 2, + .width = 7, + .height = 2, + .paletteNum = 0, + .baseBlock = 0x00b0, + }, + DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate gUnknown_0831AAE0[] = +{ + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x0090, + }, + { + .priority = 0, + .tilemapLeft = 1, + .tilemapTop = 35, + .width = 14, + .height = 4, + .paletteNum = 0, + .baseBlock = 0x01c0, + }, + { + .priority = 0, + .tilemapLeft = 17, + .tilemapTop = 35, + .width = 12, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x0190, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 55, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0300, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 55, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0310, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0320, + }, + { + .priority = 0, + .tilemapLeft = 11, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0330, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 55, + .width = 4, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0290, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 57, + .width = 0, + .height = 0, + .paletteNum = 5, + .baseBlock = 0x0298, + }, + { + .priority = 0, + .tilemapLeft = 25, + .tilemapTop = 55, + .width = 4, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0298, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 57, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x02a0, + }, + { + .priority = 0, + .tilemapLeft = 21, + .tilemapTop = 55, + .width = 8, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x02b0, + }, + { + .priority = 0, + .tilemapLeft = 26, + .tilemapTop = 9, + .width = 3, + .height = 4, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 1, + .tilemapLeft = 19, + .tilemapTop = 8, + .width = 10, + .height = 11, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 2, + .tilemapLeft = 18, + .tilemapTop = 0, + .width = 12, + .height = 3, + .paletteNum = 6, + .baseBlock = 0x016e, + }, + { + .priority = 0, + .tilemapLeft = 6, + .tilemapTop = 1, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0100, + }, + { + .priority = 0, + .tilemapLeft = 14, + .tilemapTop = 1, + .width = 2, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0110, + }, + { + .priority = 0, + .tilemapLeft = 16, + .tilemapTop = 1, + .width = 8, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0114, + }, + { + .priority = 0, + .tilemapLeft = 12, + .tilemapTop = 4, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0124, + }, + { + .priority = 0, + .tilemapLeft = 12, + .tilemapTop = 6, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0130, + }, + { + .priority = 0, + .tilemapLeft = 12, + .tilemapTop = 8, + .width = 6, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x013c, + }, + { + .priority = 0, + .tilemapLeft = 8, + .tilemapTop = 11, + .width = 14, + .height = 2, + .paletteNum = 5, + .baseBlock = 0x0148, + }, + { + .priority = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 7, + .baseBlock = 0x0090, + }, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate * const gBattleWindowTemplates[] = +{ + gUnknown_0831AA18, + gUnknown_0831AAE0, +}; + +static const struct BattleBackground gBattleTerrainTable[] = +{ + { + .tileset = gBattleTerrainTiles_TallGrass, + .tilemap = gBattleTerrainTilemap_TallGrass, + .entryTileset = gBattleTerrainAnimTiles_TallGrass, + .entryTilemap = gBattleTerrainAnimTilemap_TallGrass, + .palette = gBattleTerrainPalette_TallGrass, + }, + { + .tileset = gBattleTerrainTiles_LongGrass, + .tilemap = gBattleTerrainTilemap_LongGrass, + .entryTileset = gBattleTerrainAnimTiles_LongGrass, + .entryTilemap = gBattleTerrainAnimTilemap_LongGrass, + .palette = gBattleTerrainPalette_LongGrass, + }, + { + .tileset = gBattleTerrainTiles_Sand, + .tilemap = gBattleTerrainTilemap_Sand, + .entryTileset = gBattleTerrainAnimTiles_Sand, + .entryTilemap = gBattleTerrainAnimTilemap_Sand, + .palette = gBattleTerrainPalette_Sand, + }, + { + .tileset = gBattleTerrainTiles_Underwater, + .tilemap = gBattleTerrainTilemap_Underwater, + .entryTileset = gBattleTerrainAnimTiles_Underwater, + .entryTilemap = gBattleTerrainAnimTilemap_Underwater, + .palette = gBattleTerrainPalette_Underwater, + }, + { + .tileset = gBattleTerrainTiles_Water, + .tilemap = gBattleTerrainTilemap_Water, + .entryTileset = gBattleTerrainAnimTiles_Water, + .entryTilemap = gBattleTerrainAnimTilemap_Water, + .palette = gBattleTerrainPalette_Water, + }, + { + .tileset = gBattleTerrainTiles_PondWater, + .tilemap = gBattleTerrainTilemap_PondWater, + .entryTileset = gBattleTerrainAnimTiles_PondWater, + .entryTilemap = gBattleTerrainAnimTilemap_PondWater, + .palette = gBattleTerrainPalette_PondWater, + }, + { + .tileset = gBattleTerrainTiles_Rock, + .tilemap = gBattleTerrainTilemap_Rock, + .entryTileset = gBattleTerrainAnimTiles_Rock, + .entryTilemap = gBattleTerrainAnimTilemap_Rock, + .palette = gBattleTerrainPalette_Rock, + }, + { + .tileset = gBattleTerrainTiles_Cave, + .tilemap = gBattleTerrainTilemap_Cave, + .entryTileset = gBattleTerrainAnimTiles_Cave, + .entryTilemap = gBattleTerrainAnimTilemap_Cave, + .palette = gBattleTerrainPalette_Cave, + }, + { + .tileset = gBattleTerrainTiles_Building, + .tilemap = gBattleTerrainTilemap_Building, + .entryTileset = gBattleTerrainAnimTiles_Building, + .entryTilemap = gBattleTerrainAnimTilemap_Building, + .palette = gBattleTerrainPalette_Building, + }, + {// plain + .tileset = gBattleTerrainTiles_Building, + .tilemap = gBattleTerrainTilemap_Building, + .entryTileset = gBattleTerrainAnimTiles_Building, + .entryTilemap = gBattleTerrainAnimTilemap_Building, + .palette = gBattleTerrainPalette_Plain, + }, +}; + +// .text void BattleInitBgsAndWindows(void) { ResetBgsAndClearDma3BusyFlags(0); diff --git a/src/battle_main.c b/src/battle_main.c index 1a1f6f61a..781fbeff4 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -2055,7 +2055,7 @@ void VBlankCB_Battle(void) ScanlineEffect_InitHBlankDmaTransfer(); } -void nullsub_17(void) +void nullsub_17(struct Sprite *sprite) { } -- cgit v1.2.3 From b860d583e4a5b6fd39e725df998ee9837f7f3029 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 14 Sep 2018 12:15:46 -0500 Subject: Document main_menu --- src/data/pokemon/trainer_class_lookups.h | 4 +- src/field_message_box.c | 2 +- src/main_menu.c | 1064 ++++++++++++++++-------------- src/mauville_old_man.c | 2 +- src/menu.c | 2 +- src/slot_machine.c | 2 +- src/start_menu.c | 2 +- 7 files changed, 567 insertions(+), 511 deletions(-) (limited to 'src') diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h index ec4dbf0fb..02b2016c1 100644 --- a/src/data/pokemon/trainer_class_lookups.h +++ b/src/data/pokemon/trainer_class_lookups.h @@ -63,10 +63,10 @@ const u8 gFacilityClassToPicIndex[] = TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1 - TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_MAY + TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3 TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4 - TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN + TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_MAY TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6 TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7 TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2 diff --git a/src/field_message_box.c b/src/field_message_box.c index 7ed87e837..19859ec0f 100755 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -37,7 +37,7 @@ void sub_8098154(u8 taskId) task->data[0]++; break; case 2: - if (sub_8197224() != 1) + if (RunTextPrintersAndIsPrinter0Active() != 1) { gUnknown_020375BC = 0; DestroyTask(taskId); diff --git a/src/main_menu.c b/src/main_menu.c index 7e84ae7ec..bcc4f9af5 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -5,6 +5,7 @@ #include "constants/rgb.h" #include "constants/songs.h" #include "constants/species.h" +#include "constants/trainers.h" #include "decompress.h" #include "event_data.h" #include "field_effect.h" @@ -45,91 +46,91 @@ static EWRAM_DATA u8 gUnknown_02022D04 = 0; static EWRAM_DATA u16 sCurrItemAndOptionMenuCheck = 0; -static IWRAM_DATA u8 gUnknown_03000DD0; +static IWRAM_DATA u8 sBirchSpeechMainTaskId; // Static ROM declarations -u32 InitMainMenu(bool8); -void Task_MainMenuCheckSaveFile(u8); -void Task_MainMenuCheckBattery(u8); -void Task_WaitForSaveFileErrorWindow(u8); -void CreateMainMenuErrorWindow(const u8*); +static u32 InitMainMenu(bool8); +static void Task_MainMenuCheckSaveFile(u8); +static void Task_MainMenuCheckBattery(u8); +static void Task_WaitForSaveFileErrorWindow(u8); +static void CreateMainMenuErrorWindow(const u8*); static void ClearMainMenuWindowTilemap(const struct WindowTemplate*); -void Task_DisplayMainMenu(u8); -void Task_WaitForBatteryDryErrorWindow(u8); -void fmt_savegame(void); -void HighlightSelectedMainMenuItem(u8, u8, s16); -void Task_HandleMainMenuInput(u8); -void Task_HandleMainMenuAPressed(u8); -void Task_HandleMainMenuBPressed(u8); -void task_new_game_prof_birch_speech_1(u8); -void Task_DisplayMainMenuInvalidActionError(u8); -void AddBirchSpeechObjects(u8); -void task_new_game_prof_birch_speech_2(u8); -void sub_8031BAC(u8, u8); -void sub_8031D34(u8, u8); -void task_new_game_prof_birch_speech_3(u8); -void unknown_rbox_to_vram(u8, u8); -void sub_8032318(u8); -void task_new_game_prof_birch_speech_4(u8); -void task_new_game_prof_birch_speech_5(u8); -void sub_80323A0(struct TextSubPrinter *printer, u16 a); -void task_new_game_prof_birch_speech_6(u8); -void sub_8030B14(u8); -void task_new_game_prof_birch_speech_7(u8); -void sub_8031ACC(u8, u8); -void sub_8031C88(u8, u8); -void task_new_game_prof_birch_speech_8(u8); -void task_new_game_prof_birch_speech_9(u8); -void task_new_game_prof_birch_speech_10(u8); -void task_new_game_prof_birch_speech_11(u8); -void LoadMainMenuWindowFrameTiles(u8, u16); -void DrawMainMenuWindowBorder(const struct WindowTemplate*, u16); -void Task_HighlightSelectedMainMenuItem(u8); -void task_new_game_prof_birch_speech_12(u8); -void task_new_game_prof_birch_speech_13(u8); -void sub_8031D74(void); -s8 sub_8031DB4(void); -void sub_80322E0(u8, u8); -void task_new_game_prof_birch_speech_14(u8); -void sub_8030ED4(u8); -void sub_8030F7C(u8); -void task_new_game_prof_birch_speech_15(u8); -void task_new_game_prof_birch_speech_16(u8); -void task_new_game_prof_birch_speech_17(u8); -void new_game_prof_birch_speech_part2_start(void); -void set_default_player_name(u8); -void task_new_game_prof_birch_speech_part2_3(u8); -void task_new_game_prof_birch_speech_part2_4(u8); -void sub_80323CC(u8, u8, u16, u16, u8, u8); -void task_new_game_prof_birch_speech_part2_5(u8); -void task_new_game_prof_birch_speech_part2_6(u8); -void task_new_game_prof_birch_speech_part2_7(u8); -void task_new_game_prof_birch_speech_part2_8(u8); -void task_new_game_prof_birch_speech_part2_9(u8); -void sub_80318D8(struct Sprite*); -void task_new_game_prof_birch_speech_part2_10(u8); -void task_new_game_prof_birch_speech_part2_11(u8); -void task_new_game_prof_birch_speech_part2_12(u8); -void nullsub_11(); -void task_new_game_prof_birch_speech_part2_1(u8); -void fmt_time(void); -void fmt_pokedex(void); -void fmt_player(void); -void fmt_badges(void); -void sub_8032474(u8, u8, u8, u8, u8, u8); +static void Task_DisplayMainMenu(u8); +static void Task_WaitForBatteryDryErrorWindow(u8); +static void MainMenu_FormatSavegameText(void); +static void HighlightSelectedMainMenuItem(u8, u8, s16); +static void Task_HandleMainMenuInput(u8); +static void Task_HandleMainMenuAPressed(u8); +static void Task_HandleMainMenuBPressed(u8); +static void Task_NewGameBirchSpeech_Init(u8); +static void Task_DisplayMainMenuInvalidActionError(u8); +static void AddBirchSpeechObjects(u8); +static void Task_NewGameBirchSpeech_WaitToShowBirch(u8); +static void NewGameBirchSpeech_StartFadeInTarget1OutTarget2(u8, u8); +static void NewGameBirchSpeech_StartFadePlatformOut(u8, u8); +static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8); +static void NewGameBirchSpeech_ShowDialogueWindow(u8, u8); +static void NewGameBirchSpeech_ClearWindow(u8); +static void Task_NewGameBirchSpeech_ThisIsAPokemon(u8); +static void Task_NewGameBirchSpeech_MainSpeech(u8); +static void NewGameBirchSpeech_ShowPokeBallPrinterCallback(struct TextSubPrinter *printer, u16 a); +static void Task_NewGameBirchSpeech_AndYouAre(u8); +static void Task_NewGameBirchSpeechSub_WaitForLotad(u8); +static void Task_NewGameBirchSpeech_StartBirchLotadPlatformFade(u8); +static void NewGameBirchSpeech_StartFadeOutTarget1InTarget2(u8, u8); +static void NewGameBirchSpeech_StartFadePlatformIn(u8, u8); +static void Task_NewGameBirchSpeech_SlidePlatformAway(u8); +static void Task_NewGameBirchSpeech_StartPlayerFadeIn(u8); +static void Task_NewGameBirchSpeech_WaitForPlayerFadeIn(u8); +static void Task_NewGameBirchSpeech_BoyOrGirl(u8); +static void LoadMainMenuWindowFrameTiles(u8, u16); +static void DrawMainMenuWindowBorder(const struct WindowTemplate*, u16); +static void Task_HighlightSelectedMainMenuItem(u8); +static void Task_NewGameBirchSpeech_WaitToShowGenderMenu(u8); +static void Task_NewGameBirchSpeech_ChooseGender(u8); +static void NewGameBirchSpeech_ShowGenderMenu(void); +static s8 NewGameBirchSpeech_ProcessGenderMenuInput(void); +static void NewGameBirchSpeech_ClearGenderWindow(u8, u8); +static void Task_NewGameBirchSpeech_WhatsYourName(u8); +static void Task_NewGameBirchSpeech_SlideOutOldGenderSprite(u8); +static void Task_NewGameBirchSpeech_SlideInNewGenderSprite(u8); +static void Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint(u8); +static void Task_NewGameBirchSpeech_WaitPressBeforeNameChoice(u8); +static void Task_NewGameBirchSpeech_StartNamingScreen(u8); +static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void); +static void NewGameBirchSpeech_SetDefaultPlayerName(u8); +static void Task_NewGameBirchSpeech_CreateNameYesNo(u8); +static void Task_NewGameBirchSpeech_ProcessNameYesNoMenu(u8); +void CreateYesNoMenuParameterized(u8, u8, u16, u16, u8, u8); +static void Task_NewGameBirchSpeech_SlidePlatformAway2(u8); +static void Task_NewGameBirchSpeech_ReshowBirchLotad(u8); +static void Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter(u8); +static void Task_NewGameBirchSpeech_AreYouReady(u8); +static void Task_NewGameBirchSpeech_ShrinkPlayer(u8); +static void SpriteCB_MovePlayerDownWhileShrinking(struct Sprite*); +static void Task_NewGameBirchSpeech_WaitForPlayerShrink(u8); +static void Task_NewGameBirchSpeech_FadePlayerToWhite(u8); +static void Task_NewGameBirchSpeech_Cleanup(u8); +static void nullsub_11(); +static void Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox(u8); +static void MainMenu_FormatSavegamePlayer(void); +static void MainMenu_FormatSavegamePokedex(void); +static void MainMenu_FormatSavegameTime(void); +static void MainMenu_FormatSavegameBadges(void); +static void NewGameBirchSpeech_CreateDialogueWindowBorder(u8, u8, u8, u8, u8, u8); // .rodata -const u16 gUnknown_082FECFC[][16] = { +static const u16 sBirchSpeechBgPals[][16] = { INCBIN_U16("graphics/birch_speech/bg0.gbapal"), INCBIN_U16("graphics/birch_speech/bg1.gbapal") }; -const u8 gBirchIntroShadowGfx[] = INCBIN_U8("graphics/birch_speech/shadow.4bpp.lz"); -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}; +static const u8 sBirchSpeechShadowGfx[] = INCBIN_U8("graphics/birch_speech/shadow.4bpp.lz"); +static const u8 sBirchSpeechBgMap[] = INCBIN_U8("graphics/birch_speech/map.bin.lz"); +static const u16 sBirchSpeechBgGradientPal[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal"); +static const u16 sBirchSpeechPlatformBlackPal[] = {RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK}; #define MENU_LEFT 2 #define MENU_TOP_WIN0 1 @@ -159,7 +160,7 @@ const u16 gUnknown_082FF028[] = {0, 0, 0, 0, 0, 0, 0, 0}; #define MENU_WIN_VCOORDS(n) WIN_RANGE(((MENU_TOP_WIN##n - 1) * 8) + MENU_SHADOW_PADDING, (MENU_TOP_WIN##n + MENU_HEIGHT_WIN##n + 1) * 8 - MENU_SHADOW_PADDING) #define MENU_SCROLL_SHIFT WIN_RANGE(32, 32) -const struct WindowTemplate sWindowTemplates_MainMenu[] = +static const struct WindowTemplate sWindowTemplates_MainMenu[] = { // No saved game // NEW GAME @@ -246,7 +247,7 @@ const struct WindowTemplate sWindowTemplates_MainMenu[] = DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gUnknown_082FF080[] = +static const struct WindowTemplate gUnknown_082FF080[] = { { .priority = 0, @@ -278,13 +279,13 @@ const struct WindowTemplate gUnknown_082FF080[] = DUMMY_WIN_TEMPLATE }; -const u16 gMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal"); -const u16 gMainMenuTextPal[] = INCBIN_U16("graphics/misc/main_menu_text.gbapal"); +static const u16 sMainMenuBgPal[] = INCBIN_U16("graphics/misc/main_menu_bg.gbapal"); +static const u16 sMainMenuTextPal[] = INCBIN_U16("graphics/misc/main_menu_text.gbapal"); -const u8 gTextColor_Headers[] = {10, 11, 12}; -const u8 gUnknown_082FF0E3[] = {10, 1, 12}; +static const u8 sTextColor_Headers[] = {10, 11, 12}; +static const u8 sTextColor_PlayerGenderColor[] = {10, 1, 12}; -const struct BgTemplate gUnknown_082FF0E8[] = { +static const struct BgTemplate sMainMenuBgTemplates[] = { { .bg = 0, .charBaseIndex = 2, @@ -305,7 +306,7 @@ const struct BgTemplate gUnknown_082FF0E8[] = { } }; -const struct BgTemplate gUnknown_082FF0F0 = { +static const struct BgTemplate sBirchBgTemplate = { .bg = 0, .charBaseIndex = 3, .mapBaseIndex = 30, @@ -315,21 +316,24 @@ const struct BgTemplate gUnknown_082FF0F0 = { .baseTile = 0 }; -const struct ScrollArrowsTemplate sScrollArrowsTemplate_MainMenu = {2, 0x78, 8, 3, 0x78, 0x98, 3, 4, 1, 1, 0}; +static const struct ScrollArrowsTemplate sScrollArrowsTemplate_MainMenu = {2, 0x78, 8, 3, 0x78, 0x98, 3, 4, 1, 1, 0}; -const union AffineAnimCmd gUnknown_082FF104[] = { +static const union AffineAnimCmd sSpriteAffineAnim_PlayerShrink[] = { AFFINEANIMCMD_FRAME(-2, -2, 0, 0x30), AFFINEANIMCMD_END }; -const union AffineAnimCmd *const gUnknown_082FF114 = gUnknown_082FF104; +static const union AffineAnimCmd *const sSpriteAffineAnimTable_PlayerShrink[] = +{ + sSpriteAffineAnim_PlayerShrink +}; -const struct MenuAction gUnknown_082FF118[] = { +static const struct MenuAction sMenuActions_Gender[] = { {gText_BirchBoy, NULL}, {gText_BirchGirl, NULL} }; -const u8 *const gMalePresetNames[] = { +static const u8 *const gMalePresetNames[] = { gText_DefaultNameStu, gText_DefaultNameMilton, gText_DefaultNameTom, @@ -352,7 +356,7 @@ const u8 *const gMalePresetNames[] = { gText_DefaultNameQuincy }; -const u8 *const gFemalePresetNames[] = { +static const u8 *const gFemalePresetNames[] = { gText_DefaultNameKimmy, gText_DefaultNameTiara, gText_DefaultNameBella, @@ -385,7 +389,8 @@ enum HAS_MYSTERY_EVENTS, //CONTINUE, NEW GAME, MYSTERY GIFT, MYSTERY EVENTS, OPTION }; -enum { +enum +{ ACTION_NEW_GAME, ACTION_CONTINUE, ACTION_OPTION, @@ -397,7 +402,7 @@ enum { #define MAIN_MENU_BORDER_TILE 0x1D5 -void CB2_MainMenu(void) +static void CB2_MainMenu(void) { RunTasks(); AnimateSprites(); @@ -405,7 +410,7 @@ void CB2_MainMenu(void) UpdatePaletteFade(); } -void VBlankCB_MainMenu(void) +static void VBlankCB_MainMenu(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -422,7 +427,7 @@ void CB2_ReinitMainMenu(void) InitMainMenu(TRUE); } -u32 InitMainMenu(bool8 returningFromOptionsMenu) +static u32 InitMainMenu(bool8 returningFromOptionsMenu) { SetVBlankCallback(NULL); @@ -442,8 +447,8 @@ u32 InitMainMenu(bool8 returningFromOptionsMenu) DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); ResetPaletteFade(); - LoadPalette(gMainMenuBgPal, 0, 32); - LoadPalette(gMainMenuTextPal, 0xF0, 32); + LoadPalette(sMainMenuBgPal, 0, 32); + LoadPalette(sMainMenuTextPal, 0xF0, 32); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); @@ -453,7 +458,7 @@ u32 InitMainMenu(bool8 returningFromOptionsMenu) else BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0xFFFF); // fade to white ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_082FF0E8, ARRAY_COUNT(gUnknown_082FF0E8)); + InitBgsFromTemplates(0, sMainMenuBgTemplates, ARRAY_COUNT(sMainMenuBgTemplates)); ChangeBgX(0, 0, 0); ChangeBgY(0, 0, 0); ChangeBgX(1, 0, 0); @@ -490,7 +495,7 @@ u32 InitMainMenu(bool8 returningFromOptionsMenu) #define tArrowTaskIsScrolled data[15] // For scroll indicator arrow task -void Task_MainMenuCheckSaveFile(u8 taskId) +static void Task_MainMenuCheckSaveFile(u8 taskId) { s16* data = gTasks[taskId].data; @@ -559,7 +564,7 @@ void Task_MainMenuCheckSaveFile(u8 taskId) } } -void Task_WaitForSaveFileErrorWindow(u8 taskId) +static void Task_WaitForSaveFileErrorWindow(u8 taskId) { RunTextPrinters(); if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON)) @@ -570,7 +575,7 @@ void Task_WaitForSaveFileErrorWindow(u8 taskId) } } -void Task_MainMenuCheckBattery(u8 taskId) +static void Task_MainMenuCheckBattery(u8 taskId) { if (!gPaletteFade.active) { @@ -594,7 +599,7 @@ void Task_MainMenuCheckBattery(u8 taskId) } } -void Task_WaitForBatteryDryErrorWindow(u8 taskId) +static void Task_WaitForBatteryDryErrorWindow(u8 taskId) { RunTextPrinters(); if (!IsTextPrinterActive(7) && (gMain.newKeys & A_BUTTON)) @@ -605,7 +610,7 @@ void Task_WaitForBatteryDryErrorWindow(u8 taskId) } } -void Task_DisplayMainMenu(u8 taskId) +static void Task_DisplayMainMenu(u8 taskId) { s16* data = gTasks[taskId].data; u16 palette; @@ -649,8 +654,8 @@ void Task_DisplayMainMenu(u8 taskId) default: FillWindowPixelBuffer(0, 0xAA); FillWindowPixelBuffer(1, 0xAA); - AddTextPrinterParameterized3(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - AddTextPrinterParameterized3(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); + AddTextPrinterParameterized3(0, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(1, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); PutWindowTilemap(0); PutWindowTilemap(1); CopyWindowToVram(0, 2); @@ -662,10 +667,10 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(2, 0xAA); FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(4, 0xAA); - AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); - fmt_savegame(); + AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); + MainMenu_FormatSavegameText(); PutWindowTilemap(2); PutWindowTilemap(3); PutWindowTilemap(4); @@ -681,11 +686,11 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(3, 0xAA); FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(5, 0xAA); - AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift); - AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); - fmt_savegame(); + AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift); + AddTextPrinterParameterized3(5, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); + MainMenu_FormatSavegameText(); PutWindowTilemap(2); PutWindowTilemap(3); PutWindowTilemap(4); @@ -705,12 +710,12 @@ void Task_DisplayMainMenu(u8 taskId) FillWindowPixelBuffer(4, 0xAA); FillWindowPixelBuffer(5, 0xAA); FillWindowPixelBuffer(6, 0xAA); - AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue); - AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame); - AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2); - AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents); - AddTextPrinterParameterized3(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption); - fmt_savegame(); + AddTextPrinterParameterized3(2, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuContinue); + AddTextPrinterParameterized3(3, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuNewGame); + AddTextPrinterParameterized3(4, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryGift2); + AddTextPrinterParameterized3(5, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuMysteryEvents); + AddTextPrinterParameterized3(6, 1, 0, 1, sTextColor_Headers, -1, gText_MainMenuOption); + MainMenu_FormatSavegameText(); PutWindowTilemap(2); PutWindowTilemap(3); PutWindowTilemap(4); @@ -741,13 +746,13 @@ void Task_DisplayMainMenu(u8 taskId) } } -void Task_HighlightSelectedMainMenuItem(u8 taskId) +static void Task_HighlightSelectedMainMenuItem(u8 taskId) { HighlightSelectedMainMenuItem(gTasks[taskId].tMenuType, gTasks[taskId].tCurrItem, gTasks[taskId].tIsScrolled); gTasks[taskId].func = Task_HandleMainMenuInput; } -bool8 HandleMainMenuInput(u8 taskId) +static bool8 HandleMainMenuInput(u8 taskId) { s16* data = gTasks[taskId].data; @@ -793,13 +798,13 @@ bool8 HandleMainMenuInput(u8 taskId) return FALSE; } -void Task_HandleMainMenuInput(u8 taskId) +static void Task_HandleMainMenuInput(u8 taskId) { if (HandleMainMenuInput(taskId)) gTasks[taskId].func = Task_HighlightSelectedMainMenuItem; } -void Task_HandleMainMenuAPressed(u8 taskId) +static void Task_HandleMainMenuAPressed(u8 taskId) { bool8 wirelessAdapterConnected; u8 action; @@ -925,7 +930,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) default: gPlttBufferUnfaded[0] = RGB_BLACK; gPlttBufferFaded[0] = RGB_BLACK; - gTasks[taskId].func = task_new_game_prof_birch_speech_1; + gTasks[taskId].func = Task_NewGameBirchSpeech_Init; break; case ACTION_CONTINUE: gPlttBufferUnfaded[0] = RGB_BLACK; @@ -972,7 +977,7 @@ void Task_HandleMainMenuAPressed(u8 taskId) } } -void Task_HandleMainMenuBPressed(u8 taskId) +static void Task_HandleMainMenuBPressed(u8 taskId) { if (!gPaletteFade.active) { @@ -985,7 +990,7 @@ void Task_HandleMainMenuBPressed(u8 taskId) } } -void Task_DisplayMainMenuInvalidActionError(u8 taskId) +static void Task_DisplayMainMenuInvalidActionError(u8 taskId) { switch (gTasks[taskId].tCurrItem) { @@ -1033,7 +1038,7 @@ void Task_DisplayMainMenuInvalidActionError(u8 taskId) #undef tArrowTaskIsScrolled -void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrolled) +static void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrolled) { SetGpuReg(REG_OFFSET_WIN0H, MENU_WIN_HCOORDS); @@ -1118,11 +1123,21 @@ void HighlightSelectedMainMenuItem(u8 menuType, u8 selectedMenuItem, s16 isScrol } } -void task_new_game_prof_birch_speech_1(u8 taskId) +#define tPlayerSpriteId data[2] +#define tBG1HOFS data[4] +#define tIsDoneFadingSprites data[5] +#define tPlayerGender data[6] +#define tTimer data[7] +#define tBirchSpriteId data[8] +#define tLotadSpriteId data[9] +#define tBrendanSpriteId data[10] +#define tMaySpriteId data[11] + +static void Task_NewGameBirchSpeech_Init(u8 taskId) { SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - InitBgFromTemplate(&gUnknown_082FF0F0); + InitBgFromTemplate(&sBirchBgTemplate); SetGpuReg(REG_OFFSET_WIN0H, 0); SetGpuReg(REG_OFFSET_WIN0V, 0); SetGpuReg(REG_OFFSET_WININ, 0); @@ -1131,518 +1146,522 @@ void task_new_game_prof_birch_speech_1(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); - LZ77UnCompVram(gBirchIntroShadowGfx, (void*)VRAM); - LZ77UnCompVram(gUnknown_082FEEF0, (void*)(VRAM + 0x3800)); - LoadPalette(gUnknown_082FECFC, 0, 64); - LoadPalette(gUnknown_082FF028, 1, 16); + LZ77UnCompVram(sBirchSpeechShadowGfx, (void*)VRAM); + LZ77UnCompVram(sBirchSpeechBgMap, (void*)(VRAM + 0x3800)); + LoadPalette(sBirchSpeechBgPals, 0, 64); + LoadPalette(sBirchSpeechPlatformBlackPal, 1, 16); ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); ResetAllPicSprites(); AddBirchSpeechObjects(taskId); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - gTasks[taskId].data[4] = 0; - gTasks[taskId].func = task_new_game_prof_birch_speech_2; - gTasks[taskId].data[2] = 0xFF; + gTasks[taskId].tBG1HOFS = 0; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitToShowBirch; + gTasks[taskId].tPlayerSpriteId = 0xFF; gTasks[taskId].data[3] = 0xFF; - gTasks[taskId].data[7] = 0xD8; + gTasks[taskId].tTimer = 0xD8; PlayBGM(MUS_DOORO_X4); ShowBg(0); ShowBg(1); } -void task_new_game_prof_birch_speech_2(u8 taskId) +static void Task_NewGameBirchSpeech_WaitToShowBirch(u8 taskId) { u8 spriteId; - if (gTasks[taskId].data[7]) + if (gTasks[taskId].tTimer) { - gTasks[taskId].data[7]--; + gTasks[taskId].tTimer--; } else { - spriteId = gTasks[taskId].data[8]; - gSprites[spriteId].pos1.x = 0x88; - gSprites[spriteId].pos1.y = 0x3C; + spriteId = gTasks[taskId].tBirchSpriteId; + gSprites[spriteId].pos1.x = 136; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - sub_8031BAC(taskId, 10); - sub_8031D34(taskId, 20); - gTasks[taskId].data[7] = 0x50; - gTasks[taskId].func = task_new_game_prof_birch_speech_3; + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 10); + NewGameBirchSpeech_StartFadePlatformOut(taskId, 20); + gTasks[taskId].tTimer = 80; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome; } } -void task_new_game_prof_birch_speech_3(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForSpriteFadeInWelcome(u8 taskId) { - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[8]].oam.objMode = 0; - if (gTasks[taskId].data[7]) + gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 0; + if (gTasks[taskId].tTimer) { - gTasks[taskId].data[7]--; + gTasks[taskId].tTimer--; } else { InitWindows(gUnknown_082FF080); LoadMainMenuWindowFrameTiles(0, 0xF3); - LoadMessageBoxGfx(0, 0xFC, 0xF0); - unknown_rbox_to_vram(0, 1); + LoadMessageBoxGfx(0, 0xFC, 0xF0); + NewGameBirchSpeech_ShowDialogueWindow(0, 1); PutWindowTilemap(0); CopyWindowToVram(0, 2); - sub_8032318(0); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_Welcome); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_4; + gTasks[taskId].func = Task_NewGameBirchSpeech_ThisIsAPokemon; } } } -void task_new_game_prof_birch_speech_4(u8 taskId) +static void Task_NewGameBirchSpeech_ThisIsAPokemon(u8 taskId) { - if (!gPaletteFade.active && !sub_8197224()) + if (!gPaletteFade.active && !RunTextPrintersAndIsPrinter0Active()) { - gTasks[taskId].func = task_new_game_prof_birch_speech_5; + gTasks[taskId].func = Task_NewGameBirchSpeech_MainSpeech; StringExpandPlaceholders(gStringVar4, gText_ThisIsAPokemon); - AddTextPrinterWithCallbackForMessage(1, sub_80323A0); - gUnknown_03000DD0 = taskId; + AddTextPrinterWithCallbackForMessage(1, NewGameBirchSpeech_ShowPokeBallPrinterCallback); + sBirchSpeechMainTaskId = taskId; } } -void task_new_game_prof_birch_speech_5(u8 taskId) +static void Task_NewGameBirchSpeech_MainSpeech(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { StringExpandPlaceholders(gStringVar4, gText_Birch_MainSpeech); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_6; + gTasks[taskId].func = Task_NewGameBirchSpeech_AndYouAre; } } -void sub_8030A70(u8 taskId) +#define tState data[0] + +static void Task_NewGameBirchSpeechSub_InitPokeBall(u8 taskId) { - u8 spriteId = gTasks[gUnknown_03000DD0].data[9]; + u8 spriteId = gTasks[sBirchSpeechMainTaskId].tLotadSpriteId; - gSprites[spriteId].pos1.x = 0x64; - gSprites[spriteId].pos1.y = 0x4B; + gSprites[spriteId].pos1.x = 100; + gSprites[spriteId].pos1.y = 75; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].data[0] = 0; - CreatePokeballSpriteToReleaseMon(spriteId, gSprites[spriteId].oam.paletteNum, 0x70, 0x3A, 0, 0, 0x20, 0xFFFF, SPECIES_LOTAD); - gTasks[taskId].func = sub_8030B14; - gTasks[gUnknown_03000DD0].data[7] = 0; + CreatePokeballSpriteToReleaseMon(spriteId, gSprites[spriteId].oam.paletteNum, 112, 58, 0, 0, 32, 0x0000FFFF, SPECIES_LOTAD); + gTasks[taskId].func = Task_NewGameBirchSpeechSub_WaitForLotad; + gTasks[sBirchSpeechMainTaskId].tTimer = 0; } -void sub_8030B14(u8 taskId) +static void Task_NewGameBirchSpeechSub_WaitForLotad(u8 taskId) { s16 *data = gTasks[taskId].data; - struct Sprite *sprite = &gSprites[gTasks[gUnknown_03000DD0].data[9]]; + struct Sprite *sprite = &gSprites[gTasks[sBirchSpeechMainTaskId].tLotadSpriteId]; - switch (data[0]) + switch (tState) { case 0: if (sprite->callback == SpriteCallbackDummy) { sprite->oam.affineMode = 0; - goto _08030B98_inc_data0; + goto incrementStateAndTimer; } break; case 1: - if (gTasks[gUnknown_03000DD0].data[7] >= 0x60) + if (gTasks[sBirchSpeechMainTaskId].tTimer >= 96) { DestroyTask(taskId); - if (gTasks[gUnknown_03000DD0].data[7] < 0x4000) - gTasks[gUnknown_03000DD0].data[7]++; + if (gTasks[sBirchSpeechMainTaskId].tTimer < 0x4000) + gTasks[sBirchSpeechMainTaskId].tTimer++; } break; - _08030B98_inc_data0: + incrementStateAndTimer: default: - data[0]++; - if (gTasks[gUnknown_03000DD0].data[7] < 0x4000) - gTasks[gUnknown_03000DD0].data[7]++; + tState++; + if (gTasks[sBirchSpeechMainTaskId].tTimer < 0x4000) + gTasks[sBirchSpeechMainTaskId].tTimer++; break; } } -void task_new_game_prof_birch_speech_6(u8 taskId) +#undef tState + +static void Task_NewGameBirchSpeech_AndYouAre(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { gUnknown_02022D04 = 0; StringExpandPlaceholders(gStringVar4, gText_Birch_AndYouAre); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_7; + gTasks[taskId].func = Task_NewGameBirchSpeech_StartBirchLotadPlatformFade; } } -void task_new_game_prof_birch_speech_7(u8 taskId) +static void Task_NewGameBirchSpeech_StartBirchLotadPlatformFade(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { - gSprites[gTasks[taskId].data[8]].oam.objMode = 1; - gSprites[gTasks[taskId].data[9]].oam.objMode = 1; - sub_8031ACC(taskId, 2); - sub_8031C88(taskId, 1); - gTasks[taskId].data[7] = 0x40; - gTasks[taskId].func = task_new_game_prof_birch_speech_8; + gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 1; + gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = 1; + NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformIn(taskId, 1); + gTasks[taskId].tTimer = 64; + gTasks[taskId].func = Task_NewGameBirchSpeech_SlidePlatformAway; } } -void task_new_game_prof_birch_speech_8(u8 taskId) +static void Task_NewGameBirchSpeech_SlidePlatformAway(u8 taskId) { - if (gTasks[taskId].data[4] != -60) + if (gTasks[taskId].tBG1HOFS != -60) { - gTasks[taskId].data[4] -= 2; - SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].data[4]); + gTasks[taskId].tBG1HOFS -= 2; + SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].tBG1HOFS); } else { - gTasks[taskId].data[4] = -60; - gTasks[taskId].func = task_new_game_prof_birch_speech_9; + gTasks[taskId].tBG1HOFS = -60; + gTasks[taskId].func = Task_NewGameBirchSpeech_StartPlayerFadeIn; } } -void task_new_game_prof_birch_speech_9(u8 taskId) +static void Task_NewGameBirchSpeech_StartPlayerFadeIn(u8 taskId) { - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[8]].invisible = TRUE; - gSprites[gTasks[taskId].data[9]].invisible = TRUE; - if (gTasks[taskId].data[7]) + gSprites[gTasks[taskId].tBirchSpriteId].invisible = TRUE; + gSprites[gTasks[taskId].tLotadSpriteId].invisible = TRUE; + if (gTasks[taskId].tTimer) { - gTasks[taskId].data[7]--; + gTasks[taskId].tTimer--; } else { - u8 spriteId = gTasks[taskId].data[10]; + u8 spriteId = gTasks[taskId].tBrendanSpriteId; - gSprites[spriteId].pos1.x = 0xB4; - gSprites[spriteId].pos1.y = 0x3C; + gSprites[spriteId].pos1.x = 180; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - gTasks[taskId].data[2] = spriteId; - gTasks[taskId].data[6] = 0; - sub_8031BAC(taskId, 2); - sub_8031D34(taskId, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_10; + gTasks[taskId].tPlayerSpriteId = spriteId; + gTasks[taskId].tPlayerGender = MALE; + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformOut(taskId, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForPlayerFadeIn; } } } -void task_new_game_prof_birch_speech_10(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForPlayerFadeIn(u8 taskId) { - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[2]].oam.objMode = 0; - gTasks[taskId].func = task_new_game_prof_birch_speech_11; + gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 0; + gTasks[taskId].func = Task_NewGameBirchSpeech_BoyOrGirl; } } -void task_new_game_prof_birch_speech_11(u8 taskId) +static void Task_NewGameBirchSpeech_BoyOrGirl(u8 taskId) { - sub_8032318(0); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_BoyOrGirl); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_12; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitToShowGenderMenu; } -void task_new_game_prof_birch_speech_12(u8 taskId) +static void Task_NewGameBirchSpeech_WaitToShowGenderMenu(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { - sub_8031D74(); - gTasks[taskId].func = task_new_game_prof_birch_speech_13; + NewGameBirchSpeech_ShowGenderMenu(); + gTasks[taskId].func = Task_NewGameBirchSpeech_ChooseGender; } } -void task_new_game_prof_birch_speech_13(u8 taskId) +static void Task_NewGameBirchSpeech_ChooseGender(u8 taskId) { - int gender = sub_8031DB4(); - int r3; + int gender = NewGameBirchSpeech_ProcessGenderMenuInput(); + int gender2; switch (gender) { case MALE: PlaySE(SE_SELECT); gSaveBlock2Ptr->playerGender = gender; - sub_80322E0(1, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_14; + NewGameBirchSpeech_ClearGenderWindow(1, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_WhatsYourName; break; case FEMALE: PlaySE(SE_SELECT); gSaveBlock2Ptr->playerGender = gender; - sub_80322E0(1, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_14; + NewGameBirchSpeech_ClearGenderWindow(1, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_WhatsYourName; break; } - r3 = GetMenuCursorPos(); - if (r3 != gTasks[taskId].data[6]) + gender2 = GetMenuCursorPos(); + if (gender2 != gTasks[taskId].tPlayerGender) { - gTasks[taskId].data[6] = r3; - gSprites[gTasks[taskId].data[2]].oam.objMode = 1; - sub_8031ACC(taskId, 0); - gTasks[taskId].func = sub_8030ED4; + gTasks[taskId].tPlayerGender = gender2; + gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 1; + NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 0); + gTasks[taskId].func = Task_NewGameBirchSpeech_SlideOutOldGenderSprite; } } -void sub_8030ED4(u8 taskId) +static void Task_NewGameBirchSpeech_SlideOutOldGenderSprite(u8 taskId) { - u8 spriteId = gTasks[taskId].data[2]; - if (gTasks[taskId].data[5] == 0) + u8 spriteId = gTasks[taskId].tPlayerSpriteId; + if (gTasks[taskId].tIsDoneFadingSprites == 0) { gSprites[spriteId].pos1.x += 4; } else { gSprites[spriteId].invisible = TRUE; - if (gTasks[taskId].data[6]) - spriteId = gTasks[taskId].data[11]; + if (gTasks[taskId].tPlayerGender != MALE) + spriteId = gTasks[taskId].tMaySpriteId; else - spriteId = gTasks[taskId].data[10]; - gSprites[spriteId].pos1.x = 0xF0; - gSprites[spriteId].pos1.y = 0x3C; + spriteId = gTasks[taskId].tBrendanSpriteId; + gSprites[spriteId].pos1.x = 240; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; - gTasks[taskId].data[2] = spriteId; + gTasks[taskId].tPlayerSpriteId = spriteId; gSprites[spriteId].oam.objMode = 1; - sub_8031BAC(taskId, 0); - gTasks[taskId].func = sub_8030F7C; + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 0); + gTasks[taskId].func = Task_NewGameBirchSpeech_SlideInNewGenderSprite; } } -void sub_8030F7C(u8 taskId) +static void Task_NewGameBirchSpeech_SlideInNewGenderSprite(u8 taskId) { - u8 spriteId = gTasks[taskId].data[2]; + u8 spriteId = gTasks[taskId].tPlayerSpriteId; - if (gSprites[spriteId].pos1.x > 0xB4) + if (gSprites[spriteId].pos1.x > 180) { gSprites[spriteId].pos1.x -= 4; } else { - gSprites[spriteId].pos1.x = 0xB4; - if (gTasks[taskId].data[5]) + gSprites[spriteId].pos1.x = 180; + if (gTasks[taskId].tIsDoneFadingSprites) { gSprites[spriteId].oam.objMode = 0; - gTasks[taskId].func = task_new_game_prof_birch_speech_13; + gTasks[taskId].func = Task_NewGameBirchSpeech_ChooseGender; } } } -void task_new_game_prof_birch_speech_14(u8 taskId) +static void Task_NewGameBirchSpeech_WhatsYourName(u8 taskId) { - sub_8032318(0); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_WhatsYourName); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_15; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint; } -void task_new_game_prof_birch_speech_15(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForWhatsYourNameToPrint(u8 taskId) { - if (!sub_8197224()) - gTasks[taskId].func = task_new_game_prof_birch_speech_16; + if (!RunTextPrintersAndIsPrinter0Active()) + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitPressBeforeNameChoice; } -void task_new_game_prof_birch_speech_16(u8 taskId) +static void Task_NewGameBirchSpeech_WaitPressBeforeNameChoice(u8 taskId) { if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); - gTasks[taskId].func = task_new_game_prof_birch_speech_17; + gTasks[taskId].func = Task_NewGameBirchSpeech_StartNamingScreen; } } -void task_new_game_prof_birch_speech_17(u8 taskId) +static void Task_NewGameBirchSpeech_StartNamingScreen(u8 taskId) { if (!gPaletteFade.active) { FreeAllWindowBuffers(); - FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]); - set_default_player_name(Random() % 20); + FreeAndDestroyMonPicSprite(gTasks[taskId].tLotadSpriteId); + NewGameBirchSpeech_SetDefaultPlayerName(Random() % 20); DestroyTask(taskId); - DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, new_game_prof_birch_speech_part2_start); + DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_NewGameBirchSpeech_ReturnFromNamingScreen); } } -void task_new_game_prof_birch_speech_part2_2(u8 taskId) +static void Task_NewGameBirchSpeech_SoItsPlayerName(u8 taskId) { - sub_8032318(0); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_SoItsPlayer); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_3; + gTasks[taskId].func = Task_NewGameBirchSpeech_CreateNameYesNo; } -void task_new_game_prof_birch_speech_part2_3(u8 taskId) +static void Task_NewGameBirchSpeech_CreateNameYesNo(u8 taskId) { - if (!sub_8197224()) + if (!RunTextPrintersAndIsPrinter0Active()) { - sub_80323CC(2, 1, 0xF3, 0xDF, 2, 15); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_4; + CreateYesNoMenuParameterized(2, 1, 0xF3, 0xDF, 2, 15); + gTasks[taskId].func = Task_NewGameBirchSpeech_ProcessNameYesNoMenu; } } -void task_new_game_prof_birch_speech_part2_4(u8 taskId) +static void Task_NewGameBirchSpeech_ProcessNameYesNoMenu(u8 taskId) { switch (Menu_ProcessInputNoWrap_()) { case 0: PlaySE(SE_SELECT); - gSprites[gTasks[taskId].data[2]].oam.objMode = 1; - sub_8031ACC(taskId, 2); - sub_8031C88(taskId, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_5; + gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 1; + NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformIn(taskId, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_SlidePlatformAway2; break; case -1: case 1: PlaySE(SE_SELECT); - gTasks[taskId].func = task_new_game_prof_birch_speech_11; + gTasks[taskId].func = Task_NewGameBirchSpeech_BoyOrGirl; } } -void task_new_game_prof_birch_speech_part2_5(u8 taskId) +static void Task_NewGameBirchSpeech_SlidePlatformAway2(u8 taskId) { - if (gTasks[taskId].data[4]) + if (gTasks[taskId].tBG1HOFS) { - gTasks[taskId].data[4] += 2; - SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].data[4]); + gTasks[taskId].tBG1HOFS += 2; + SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].tBG1HOFS); } else { - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_6; + gTasks[taskId].func = Task_NewGameBirchSpeech_ReshowBirchLotad; } } -void task_new_game_prof_birch_speech_part2_6(u8 taskId) +static void Task_NewGameBirchSpeech_ReshowBirchLotad(u8 taskId) { u8 spriteId; - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[10]].invisible = TRUE; - gSprites[gTasks[taskId].data[11]].invisible = TRUE; - spriteId = gTasks[taskId].data[8]; - gSprites[spriteId].pos1.x = 0x88; - gSprites[spriteId].pos1.y = 0x3C; + gSprites[gTasks[taskId].tBrendanSpriteId].invisible = TRUE; + gSprites[gTasks[taskId].tMaySpriteId].invisible = TRUE; + spriteId = gTasks[taskId].tBirchSpriteId; + gSprites[spriteId].pos1.x = 136; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - spriteId = gTasks[taskId].data[9]; - gSprites[spriteId].pos1.x = 0x64; - gSprites[spriteId].pos1.y = 0x4B; + spriteId = gTasks[taskId].tLotadSpriteId; + gSprites[spriteId].pos1.x = 100; + gSprites[spriteId].pos1.y = 75; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - sub_8031BAC(taskId, 2); - sub_8031D34(taskId, 1); - sub_8032318(0); + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformOut(taskId, 1); + NewGameBirchSpeech_ClearWindow(0); StringExpandPlaceholders(gStringVar4, gText_Birch_YourePlayer); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_7; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter; } } -void task_new_game_prof_birch_speech_part2_7(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForSpriteFadeInAndTextPrinter(u8 taskId) { - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[8]].oam.objMode = 0; - gSprites[gTasks[taskId].data[9]].oam.objMode = 0; - if (!sub_8197224()) + gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 0; + gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = 0; + if (!RunTextPrintersAndIsPrinter0Active()) { - gSprites[gTasks[taskId].data[8]].oam.objMode = 1; - gSprites[gTasks[taskId].data[9]].oam.objMode = 1; - sub_8031ACC(taskId, 2); - sub_8031C88(taskId, 1); - gTasks[taskId].data[7] = 64; - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_8; + gSprites[gTasks[taskId].tBirchSpriteId].oam.objMode = 1; + gSprites[gTasks[taskId].tLotadSpriteId].oam.objMode = 1; + NewGameBirchSpeech_StartFadeOutTarget1InTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformIn(taskId, 1); + gTasks[taskId].tTimer = 64; + gTasks[taskId].func = Task_NewGameBirchSpeech_AreYouReady; } } } -void task_new_game_prof_birch_speech_part2_8(u8 taskId) +static void Task_NewGameBirchSpeech_AreYouReady(u8 taskId) { u8 spriteId; - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[8]].invisible = TRUE; - gSprites[gTasks[taskId].data[9]].invisible = TRUE; - if (gTasks[taskId].data[7]) + gSprites[gTasks[taskId].tBirchSpriteId].invisible = TRUE; + gSprites[gTasks[taskId].tLotadSpriteId].invisible = TRUE; + if (gTasks[taskId].tTimer) { - gTasks[taskId].data[7]--; + gTasks[taskId].tTimer--; return; } if (gSaveBlock2Ptr->playerGender != MALE) - spriteId = gTasks[taskId].data[11]; + spriteId = gTasks[taskId].tMaySpriteId; else - spriteId = gTasks[taskId].data[10]; - gSprites[spriteId].pos1.x = 0x78; - gSprites[spriteId].pos1.y = 0x3C; + spriteId = gTasks[taskId].tBrendanSpriteId; + gSprites[spriteId].pos1.x = 120; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; gSprites[spriteId].oam.objMode = 1; - gTasks[taskId].data[2] = spriteId; - sub_8031BAC(taskId, 2); - sub_8031D34(taskId, 1); + gTasks[taskId].tPlayerSpriteId = spriteId; + NewGameBirchSpeech_StartFadeInTarget1OutTarget2(taskId, 2); + NewGameBirchSpeech_StartFadePlatformOut(taskId, 1); StringExpandPlaceholders(gStringVar4, gText_Birch_AreYouReady); AddTextPrinterForMessage(1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_9; + gTasks[taskId].func = Task_NewGameBirchSpeech_ShrinkPlayer; } } -void task_new_game_prof_birch_speech_part2_9(u8 taskId) +static void Task_NewGameBirchSpeech_ShrinkPlayer(u8 taskId) { u8 spriteId; - if (gTasks[taskId].data[5]) + if (gTasks[taskId].tIsDoneFadingSprites) { - gSprites[gTasks[taskId].data[2]].oam.objMode = 0; - if (!sub_8197224()) + gSprites[gTasks[taskId].tPlayerSpriteId].oam.objMode = 0; + if (!RunTextPrintersAndIsPrinter0Active()) { - spriteId = gTasks[taskId].data[2]; + spriteId = gTasks[taskId].tPlayerSpriteId; gSprites[spriteId].oam.affineMode = 1; - gSprites[spriteId].affineAnims = &gUnknown_082FF114; + gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_PlayerShrink; InitSpriteAffineAnim(&gSprites[spriteId]); StartSpriteAffineAnim(&gSprites[spriteId], 0); - gSprites[spriteId].callback = sub_80318D8; + gSprites[spriteId].callback = SpriteCB_MovePlayerDownWhileShrinking; BeginNormalPaletteFade(0x0000FFFF, 0, 0, 16, RGB_BLACK); FadeOutBGM(4); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_10; + gTasks[taskId].func = Task_NewGameBirchSpeech_WaitForPlayerShrink; } } } -void task_new_game_prof_birch_speech_part2_10(u8 taskId) +static void Task_NewGameBirchSpeech_WaitForPlayerShrink(u8 taskId) { - u8 spriteId = gTasks[taskId].data[2]; + u8 spriteId = gTasks[taskId].tPlayerSpriteId; if (gSprites[spriteId].affineAnimEnded) - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_11; + gTasks[taskId].func = Task_NewGameBirchSpeech_FadePlayerToWhite; } -void task_new_game_prof_birch_speech_part2_11(u8 taskId) +static void Task_NewGameBirchSpeech_FadePlayerToWhite(u8 taskId) { u8 spriteId; if (!gPaletteFade.active) { - spriteId = gTasks[taskId].data[2]; + spriteId = gTasks[taskId].tPlayerSpriteId; gSprites[spriteId].callback = nullsub_11; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); BeginNormalPaletteFade(0xFFFF0000, 0, 0, 16, RGB_WHITEALPHA); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_12; + gTasks[taskId].func = Task_NewGameBirchSpeech_Cleanup; } } -void task_new_game_prof_birch_speech_part2_12(u8 taskId) +static void Task_NewGameBirchSpeech_Cleanup(u8 taskId) { if (!gPaletteFade.active) { FreeAllWindowBuffers(); - FreeAndDestroyMonPicSprite(gTasks[taskId].data[9]); + FreeAndDestroyMonPicSprite(gTasks[taskId].tLotadSpriteId); ResetAllPicSprites(); SetMainCallback2(CB2_NewGame); DestroyTask(taskId); } } -void new_game_prof_birch_speech_part2_start(void) +static void CB2_NewGameBirchSpeech_ReturnFromNamingScreen(void) { u8 taskId; u8 spriteId; @@ -1651,8 +1670,8 @@ void new_game_prof_birch_speech_part2_start(void) ResetBgsAndClearDma3BusyFlags(0); SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - InitBgsFromTemplates(0, gUnknown_082FF0E8, 2); - InitBgFromTemplate(&gUnknown_082FF0F0); + InitBgsFromTemplates(0, sMainMenuBgTemplates, 2); + InitBgFromTemplate(&sBirchBgTemplate); SetVBlankCallback(NULL); SetGpuReg(REG_OFFSET_BG2CNT, 0); SetGpuReg(REG_OFFSET_BG1CNT, 0); @@ -1667,14 +1686,14 @@ void new_game_prof_birch_speech_part2_start(void) DmaFill32(3, 0, OAM, OAM_SIZE); DmaFill16(3, 0, PLTT, PLTT_SIZE); ResetPaletteFade(); - LZ77UnCompVram(gBirchIntroShadowGfx, (u8*)VRAM); - LZ77UnCompVram(gUnknown_082FEEF0, (u8*)(VRAM + 0x3800)); - LoadPalette(gUnknown_082FECFC, 0, 64); - LoadPalette(&gUnknown_082FF018[1], 1, 16); + LZ77UnCompVram(sBirchSpeechShadowGfx, (u8*)VRAM); + LZ77UnCompVram(sBirchSpeechBgMap, (u8*)(VRAM + 0x3800)); + LoadPalette(sBirchSpeechBgPals, 0, 64); + LoadPalette(&sBirchSpeechBgGradientPal[1], 1, 16); ResetTasks(); - taskId = CreateTask(task_new_game_prof_birch_speech_part2_1, 0); - gTasks[taskId].data[7] = 5; - gTasks[taskId].data[4] = -60; + taskId = CreateTask(Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox, 0); + gTasks[taskId].tTimer = 5; + gTasks[taskId].tBG1HOFS = -60; ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -1682,18 +1701,18 @@ void new_game_prof_birch_speech_part2_start(void) AddBirchSpeechObjects(taskId); if (gSaveBlock2Ptr->playerGender != MALE) { - gTasks[taskId].data[6] = FEMALE; - spriteId = gTasks[taskId].data[11]; + gTasks[taskId].tPlayerGender = FEMALE; + spriteId = gTasks[taskId].tMaySpriteId; } else { - gTasks[taskId].data[6] = MALE; - spriteId = gTasks[taskId].data[10]; + gTasks[taskId].tPlayerGender = MALE; + spriteId = gTasks[taskId].tBrendanSpriteId; } - gSprites[spriteId].pos1.x = 0xB4; - gSprites[spriteId].pos1.y = 0x3C; + gSprites[spriteId].pos1.x = 180; + gSprites[spriteId].pos1.y = 60; gSprites[spriteId].invisible = FALSE; - gTasks[taskId].data[2] = spriteId; + gTasks[taskId].tPlayerSpriteId = spriteId; SetGpuReg(REG_OFFSET_BG1HOFS, -60); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); SetGpuReg(REG_OFFSET_WIN0H, 0); @@ -1718,11 +1737,11 @@ void new_game_prof_birch_speech_part2_start(void) CopyWindowToVram(0, 3); } -void nullsub_11(struct Sprite *sprite) +static void nullsub_11(struct Sprite *sprite) { } -void sub_80318D8(struct Sprite *sprite) +static void SpriteCB_MovePlayerDownWhileShrinking(struct Sprite *sprite) { u32 y; @@ -1731,201 +1750,236 @@ void sub_80318D8(struct Sprite *sprite) sprite->data[0] = y; } -u8 sub_80318F4(u8 a, u8 b) +static u8 NewGameBirchSpeech_CreateLotadSprite(u8 a, u8 b) { return CreatePicSprite2(SPECIES_LOTAD, 8, 0, 1, a, b, 14, -1); } -void AddBirchSpeechObjects(u8 taskId) -{ - u8 spriteId = AddNewGameBirchObject(0x88, 0x3C, 1); - u8 spriteId2; - u8 spriteId3; - u8 spriteId4; - - gSprites[spriteId].callback = nullsub_11; - gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].invisible = TRUE; - gTasks[taskId].data[8] = spriteId; - spriteId2 = sub_80318F4(100, 0x4B); - gSprites[spriteId2].callback = nullsub_11; - gSprites[spriteId2].oam.priority = 0; - gSprites[spriteId2].invisible = TRUE; - gTasks[taskId].data[9] = spriteId2; - spriteId3 = CreateTrainerSprite(FacilityClassToPicIndex(0x3C), 0x78, 0x3C, 0, gDecompressionBuffer); - gSprites[spriteId3].callback = nullsub_11; - gSprites[spriteId3].invisible = TRUE; - gSprites[spriteId3].oam.priority = 0; - gTasks[taskId].data[10] = spriteId3; - spriteId4 = CreateTrainerSprite(FacilityClassToPicIndex(0x3F), 0x78, 0x3C, 0, &gDecompressionBuffer[0x800]); - gSprites[spriteId4].callback = nullsub_11; - gSprites[spriteId4].invisible = TRUE; - gSprites[spriteId4].oam.priority = 0; - gTasks[taskId].data[11] = spriteId4; -} - -void sub_8031A5C(u8 taskId) -{ - int alpha; - - if (gTasks[taskId].data[1] == 0) - { - gTasks[gTasks[taskId].data[0]].data[5] = 1; +static void AddBirchSpeechObjects(u8 taskId) +{ + u8 birchSpriteId; + u8 lotadSpriteId; + u8 brendanSpriteId; + u8 maySpriteId; + + birchSpriteId = AddNewGameBirchObject(0x88, 0x3C, 1); + gSprites[birchSpriteId].callback = nullsub_11; + gSprites[birchSpriteId].oam.priority = 0; + gSprites[birchSpriteId].invisible = TRUE; + gTasks[taskId].tBirchSpriteId = birchSpriteId; + lotadSpriteId = NewGameBirchSpeech_CreateLotadSprite(100, 0x4B); + gSprites[lotadSpriteId].callback = nullsub_11; + gSprites[lotadSpriteId].oam.priority = 0; + gSprites[lotadSpriteId].invisible = TRUE; + gTasks[taskId].tLotadSpriteId = lotadSpriteId; + brendanSpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_BRENDAN), 120, 60, 0, &gDecompressionBuffer[0]); + gSprites[brendanSpriteId].callback = nullsub_11; + gSprites[brendanSpriteId].invisible = TRUE; + gSprites[brendanSpriteId].oam.priority = 0; + gTasks[taskId].tBrendanSpriteId = brendanSpriteId; + maySpriteId = CreateTrainerSprite(FacilityClassToPicIndex(FACILITY_CLASS_PKMN_TRAINER_MAY), 120, 60, 0, &gDecompressionBuffer[0x800]); + gSprites[maySpriteId].callback = nullsub_11; + gSprites[maySpriteId].invisible = TRUE; + gSprites[maySpriteId].oam.priority = 0; + gTasks[taskId].tMaySpriteId = maySpriteId; +} + +#undef tPlayerSpriteId +#undef tBG1HOFS +#undef tPlayerGender +#undef tBirchSpriteId +#undef tLotadSpriteId +#undef tBrendanSpriteId +#undef tMaySpriteId + +#define tMainTask data[0] +#define tAlphaCoeff1 data[1] +#define tAlphaCoeff2 data[2] +#define tDelay data[3] +#define tDelayTimer data[4] + +static void Task_NewGameBirchSpeech_FadeOutTarget1InTarget2(u8 taskId) +{ + int alphaCoeff2; + + if (gTasks[taskId].tAlphaCoeff1 == 0) + { + gTasks[gTasks[taskId].tMainTask].tIsDoneFadingSprites = TRUE; DestroyTask(taskId); } - else if (gTasks[taskId].data[4]) + else if (gTasks[taskId].tDelayTimer) { - gTasks[taskId].data[4]--; + gTasks[taskId].tDelayTimer--; } else { - gTasks[taskId].data[4] = gTasks[taskId].data[3]; - gTasks[taskId].data[1]--; - gTasks[taskId].data[2]++; - alpha = gTasks[taskId].data[2] << 8; - SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1] + alpha); + gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; + gTasks[taskId].tAlphaCoeff1--; + gTasks[taskId].tAlphaCoeff2++; + alphaCoeff2 = gTasks[taskId].tAlphaCoeff2 << 8; + SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].tAlphaCoeff1 + alphaCoeff2); } } -void sub_8031ACC(u8 taskId, u8 a) +static void NewGameBirchSpeech_StartFadeOutTarget1InTarget2(u8 taskId, u8 delay) { u8 taskId2; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); SetGpuReg(REG_OFFSET_BLDY, 0); - gTasks[taskId].data[5] = 0; - taskId2 = CreateTask(sub_8031A5C, 0); - gTasks[taskId2].data[0] = taskId; - gTasks[taskId2].data[1] = 16; - gTasks[taskId2].data[2] = 0; - gTasks[taskId2].data[3] = a; - gTasks[taskId2].data[4] = a; + gTasks[taskId].tIsDoneFadingSprites = 0; + taskId2 = CreateTask(Task_NewGameBirchSpeech_FadeOutTarget1InTarget2, 0); + gTasks[taskId2].tMainTask = taskId; + gTasks[taskId2].tAlphaCoeff1 = 16; + gTasks[taskId2].tAlphaCoeff2 = 0; + gTasks[taskId2].tDelay = delay; + gTasks[taskId2].tDelayTimer = delay; } -void sub_8031B3C(u8 taskId) +static void Task_NewGameBirchSpeech_FadeInTarget1OutTarget2(u8 taskId) { - int alpha; + int alphaCoeff2; - if (gTasks[taskId].data[1] == 16) + if (gTasks[taskId].tAlphaCoeff1 == 16) { - gTasks[gTasks[taskId].data[0]].data[5] = 1; + gTasks[gTasks[taskId].tMainTask].tIsDoneFadingSprites = TRUE; DestroyTask(taskId); } - else if (gTasks[taskId].data[4]) + else if (gTasks[taskId].tDelayTimer) { - gTasks[taskId].data[4]--; + gTasks[taskId].tDelayTimer--; } else { - gTasks[taskId].data[4] = gTasks[taskId].data[3]; - gTasks[taskId].data[1]++; - gTasks[taskId].data[2]--; - alpha = gTasks[taskId].data[2] << 8; - SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1] + alpha); + gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; + gTasks[taskId].tAlphaCoeff1++; + gTasks[taskId].tAlphaCoeff2--; + alphaCoeff2 = gTasks[taskId].tAlphaCoeff2 << 8; + SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].tAlphaCoeff1 + alphaCoeff2); } } -void sub_8031BAC(u8 taskId, u8 a) +static void NewGameBirchSpeech_StartFadeInTarget1OutTarget2(u8 taskId, u8 delay) { u8 taskId2; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_OBJ); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); SetGpuReg(REG_OFFSET_BLDY, 0); - gTasks[taskId].data[5] = 0; - taskId2 = CreateTask(sub_8031B3C, 0); - gTasks[taskId2].data[0] = taskId; - gTasks[taskId2].data[1] = 0; - gTasks[taskId2].data[2] = 16; - gTasks[taskId2].data[3] = a; - gTasks[taskId2].data[4] = a; + gTasks[taskId].tIsDoneFadingSprites = 0; + taskId2 = CreateTask(Task_NewGameBirchSpeech_FadeInTarget1OutTarget2, 0); + gTasks[taskId2].tMainTask = taskId; + gTasks[taskId2].tAlphaCoeff1 = 0; + gTasks[taskId2].tAlphaCoeff2 = 16; + gTasks[taskId2].tDelay = delay; + gTasks[taskId2].tDelayTimer = delay; } -void sub_8031C1C(u8 taskId) +#undef tMainTask +#undef tAlphaCoeff1 +#undef tAlphaCoeff2 +#undef tDelay +#undef tDelayTimer + +#undef tIsDoneFadingSprites + +#define tMainTask data[0] +#define tPalIndex data[1] +#define tDelayBefore data[2] +#define tDelay data[3] +#define tDelayTimer data[4] + +static void Task_NewGameBirchSpeech_FadePlatformIn(u8 taskId) { - if (gTasks[taskId].data[2]) + if (gTasks[taskId].tDelayBefore) { - gTasks[taskId].data[2]--; + gTasks[taskId].tDelayBefore--; } - else if (gTasks[taskId].data[1] == 8) + else if (gTasks[taskId].tPalIndex == 8) { DestroyTask(taskId); } - else if (gTasks[taskId].data[4]) + else if (gTasks[taskId].tDelayTimer) { - gTasks[taskId].data[4]--; + gTasks[taskId].tDelayTimer--; } else { - gTasks[taskId].data[4] = gTasks[taskId].data[3]; - gTasks[taskId].data[1]++; - LoadPalette(&gUnknown_082FF018[gTasks[taskId].data[1]], 1, 16); + gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; + gTasks[taskId].tPalIndex++; + LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], 1, 16); } } -void sub_8031C88(u8 taskId, u8 a) +static void NewGameBirchSpeech_StartFadePlatformIn(u8 taskId, u8 delay) { u8 taskId2; - taskId2 = CreateTask(sub_8031C1C, 0); - gTasks[taskId2].data[0] = taskId; - gTasks[taskId2].data[1] = 0; - gTasks[taskId2].data[2] = 8; - gTasks[taskId2].data[3] = a; - gTasks[taskId2].data[4] = a; + taskId2 = CreateTask(Task_NewGameBirchSpeech_FadePlatformIn, 0); + gTasks[taskId2].tMainTask = taskId; + gTasks[taskId2].tPalIndex = 0; + gTasks[taskId2].tDelayBefore = 8; + gTasks[taskId2].tDelay = delay; + gTasks[taskId2].tDelayTimer = delay; } -void sub_8031CC8(u8 taskId) +static void Task_NewGameBirchSpeech_FadePlatformOut(u8 taskId) { - if (gTasks[taskId].data[2]) + if (gTasks[taskId].tDelayBefore) { - gTasks[taskId].data[2]--; + gTasks[taskId].tDelayBefore--; } - else if (gTasks[taskId].data[1] == 0) + else if (gTasks[taskId].tPalIndex == 0) { DestroyTask(taskId); } - else if (gTasks[taskId].data[4]) + else if (gTasks[taskId].tDelayTimer) { - gTasks[taskId].data[4]--; + gTasks[taskId].tDelayTimer--; } else { - gTasks[taskId].data[4] = gTasks[taskId].data[3]; - gTasks[taskId].data[1]--; - LoadPalette(&gUnknown_082FF018[gTasks[taskId].data[1]], 1, 16); + gTasks[taskId].tDelayTimer = gTasks[taskId].tDelay; + gTasks[taskId].tPalIndex--; + LoadPalette(&sBirchSpeechBgGradientPal[gTasks[taskId].tPalIndex], 1, 16); } } -void sub_8031D34(u8 taskId, u8 a) +static void NewGameBirchSpeech_StartFadePlatformOut(u8 taskId, u8 delay) { u8 taskId2; - taskId2 = CreateTask(sub_8031CC8, 0); - gTasks[taskId2].data[0] = taskId; - gTasks[taskId2].data[1] = 8; - gTasks[taskId2].data[2] = 8; - gTasks[taskId2].data[3] = a; - gTasks[taskId2].data[4] = a; + taskId2 = CreateTask(Task_NewGameBirchSpeech_FadePlatformOut, 0); + gTasks[taskId2].tMainTask = taskId; + gTasks[taskId2].tPalIndex = 8; + gTasks[taskId2].tDelayBefore = 8; + gTasks[taskId2].tDelay = delay; + gTasks[taskId2].tDelayTimer = delay; } -void sub_8031D74(void) +#undef tMainTask +#undef tPalIndex +#undef tDelayBefore +#undef tDelay +#undef tDelayTimer + +static void NewGameBirchSpeech_ShowGenderMenu(void) { DrawMainMenuWindowBorder(&gUnknown_082FF080[1], 0xF3); FillWindowPixelBuffer(1, 17); - PrintMenuTable(1, 2, gUnknown_082FF118); + PrintMenuTable(1, 2, sMenuActions_Gender); InitMenuInUpperLeftCornerPlaySoundWhenAPressed(1, 2, 0); PutWindowTilemap(1); CopyWindowToVram(1, 3); } -s8 sub_8031DB4(void) +static s8 NewGameBirchSpeech_ProcessGenderMenuInput(void) { return Menu_ProcessInputNoWrapAround(); } -void set_default_player_name(u8 nameId) +static void NewGameBirchSpeech_SetDefaultPlayerName(u8 nameId) { const u8* name; u8 i; @@ -1939,7 +1993,7 @@ void set_default_player_name(u8 nameId) gSaveBlock2Ptr->playerName[7] = 0xFF; } -void CreateMainMenuErrorWindow(const u8* str) +static void CreateMainMenuErrorWindow(const u8* str) { FillWindowPixelBuffer(7, 17); AddTextPrinterParameterized(7, 1, str, 0, 1, 2, 0); @@ -1950,35 +2004,35 @@ void CreateMainMenuErrorWindow(const u8* str) SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(113, 159)); } -void fmt_savegame(void) +static void MainMenu_FormatSavegameText(void) { - fmt_time(); - fmt_pokedex(); - fmt_player(); - fmt_badges(); + MainMenu_FormatSavegamePlayer(); + MainMenu_FormatSavegamePokedex(); + MainMenu_FormatSavegameTime(); + MainMenu_FormatSavegameBadges(); } -void fmt_time(void) +static void MainMenu_FormatSavegamePlayer(void) { StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPlayer); - AddTextPrinterParameterized3(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4); - AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName); + AddTextPrinterParameterized3(2, 1, 0, 17, sTextColor_PlayerGenderColor, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, sTextColor_PlayerGenderColor, -1, gSaveBlock2Ptr->playerName); } -void fmt_player(void) +static void MainMenu_FormatSavegameTime(void) { u8 str[0x20]; u8* ptr; StringExpandPlaceholders(gStringVar4, gText_ContinueMenuTime); - AddTextPrinterParameterized3(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0x6C, 17, sTextColor_PlayerGenderColor, -1, gStringVar4); ptr = ConvertIntToDecimalStringN(str, gSaveBlock2Ptr->playTimeHours, 0, 3); *ptr = 0xF0; ConvertIntToDecimalStringN(ptr + 1, gSaveBlock2Ptr->playTimeMinutes, 2, 2); - AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, sTextColor_PlayerGenderColor, -1, str); } -void fmt_pokedex(void) +static void MainMenu_FormatSavegamePokedex(void) { u8 str[0x20]; u16 dexCount; @@ -1990,13 +2044,13 @@ void fmt_pokedex(void) else dexCount = GetHoennPokedexCount(1); StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPokedex); - AddTextPrinterParameterized3(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0, 33, sTextColor_PlayerGenderColor, -1, gStringVar4); ConvertIntToDecimalStringN(str, dexCount, 0, 3); - AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, sTextColor_PlayerGenderColor, -1, str); } } -void fmt_badges(void) +static void MainMenu_FormatSavegameBadges(void) { u8 str[0x20]; u8 badgeCount = 0; @@ -2008,18 +2062,18 @@ void fmt_badges(void) badgeCount++; } StringExpandPlaceholders(gStringVar4, gText_ContinueMenuBadges); - AddTextPrinterParameterized3(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4); + AddTextPrinterParameterized3(2, 1, 0x6C, 33, sTextColor_PlayerGenderColor, -1, gStringVar4); ConvertIntToDecimalStringN(str, badgeCount, 2, 1); - AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str); + AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, sTextColor_PlayerGenderColor, -1, str); } -void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset) +static void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset) { LoadBgTiles(bgId, GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, tileOffset); LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->pal, 32, 32); } -void DrawMainMenuWindowBorder(const struct WindowTemplate *template, u16 baseTileNum) +static void DrawMainMenuWindowBorder(const struct WindowTemplate *template, u16 baseTileNum) { u16 r9 = 1 + baseTileNum; u16 r10 = 2 + baseTileNum; @@ -2046,42 +2100,42 @@ static void ClearMainMenuWindowTilemap(const struct WindowTemplate *template) CopyBgTilemapBufferToVram(template->priority); } -void sub_8032298(u8 a, u8 b, u8 c, u8 d, u8 e, u8 unused) +static void NewGameBirchSpeech_ClearGenderWindowTilemap(u8 a, u8 b, u8 c, u8 d, u8 e, u8 unused) { FillBgTilemapBufferRect(a, 0, b + 0xFF, c + 0xFF, d + 2, e + 2, 2); } -void sub_80322E0(u8 windowId, u8 a) +static void NewGameBirchSpeech_ClearGenderWindow(u8 windowId, u8 a) { - CallWindowFunction(windowId, sub_8032298); + CallWindowFunction(windowId, NewGameBirchSpeech_ClearGenderWindowTilemap); FillWindowPixelBuffer(windowId, 0x11); ClearWindowTilemap(windowId); if (a == 1) CopyWindowToVram(windowId, 3); } -void sub_8032318(u8 a) +static void NewGameBirchSpeech_ClearWindow(u8 windowId) { - u8 fontAttribute = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND); - u8 fontAttribute2 = GetFontAttribute(1, FONTATTR_MAX_LETTER_WIDTH); - u8 fontAttribute3 = GetFontAttribute(1, FONTATTR_MAX_LETTER_HEIGHT); - u8 windowAttribute = GetWindowAttribute(a, WINDOW_WIDTH); - u8 windowAttribute2 = GetWindowAttribute(a, WINDOW_HEIGHT); + u8 bgColor = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND); + u8 maxCharWidth = GetFontAttribute(1, FONTATTR_MAX_LETTER_WIDTH); + u8 maxCharHeight = GetFontAttribute(1, FONTATTR_MAX_LETTER_HEIGHT); + u8 winWidth = GetWindowAttribute(windowId, WINDOW_WIDTH); + u8 winHeight = GetWindowAttribute(windowId, WINDOW_HEIGHT); - FillWindowPixelRect(a, fontAttribute, 0, 0, fontAttribute2 * windowAttribute, fontAttribute3 * windowAttribute2); - CopyWindowToVram(a, 2); + FillWindowPixelRect(windowId, bgColor, 0, 0, maxCharWidth * winWidth, maxCharHeight * winHeight); + CopyWindowToVram(windowId, 2); } -void sub_80323A0(struct TextSubPrinter *printer, u16 a) +static void NewGameBirchSpeech_ShowPokeBallPrinterCallback(struct TextSubPrinter *printer, u16 a) { if (*(printer->current_text_offset - 2) == 8 && gUnknown_02022D04 == 0) { gUnknown_02022D04 = 1; - CreateTask(sub_8030A70, 0); + CreateTask(Task_NewGameBirchSpeechSub_InitPokeBall, 0); } } -void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) +void CreateYesNoMenuParameterized(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) { struct WindowTemplate sp; @@ -2089,16 +2143,16 @@ void sub_80323CC(u8 a, u8 b, u16 c, u16 d, u8 e, u8 f) CreateYesNoMenu(&sp, c, e, 0); } -void unknown_rbox_to_vram(u8 windowId, u8 a) +static void NewGameBirchSpeech_ShowDialogueWindow(u8 windowId, u8 copyToVram) { - CallWindowFunction(windowId, sub_8032474); + CallWindowFunction(windowId, NewGameBirchSpeech_CreateDialogueWindowBorder); FillWindowPixelBuffer(windowId, 17); PutWindowTilemap(windowId); - if (a == 1) + if (copyToVram == TRUE) CopyWindowToVram(windowId, 3); } -void sub_8032474 (u8 a, u8 b, u8 c, u8 d, u8 e, u8 f) +static void NewGameBirchSpeech_CreateDialogueWindowBorder(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f) { FillBgTilemapBufferRect(a, 0xFD, b-2, c-1, 1, 1, f); FillBgTilemapBufferRect(a, 0xFF, b-1, c-1, 1, 1, f); @@ -2115,11 +2169,13 @@ void sub_8032474 (u8 a, u8 b, u8 c, u8 d, u8 e, u8 f) FillBgTilemapBufferRect(a, BG_TILE_V_FLIP(0x102), b+d, c+e, 1, 1, f); } -void task_new_game_prof_birch_speech_part2_1(u8 taskId) +static void Task_NewGameBirchSpeech_ReturnFromNamingScreenShowTextbox(u8 taskId) { - if (gTasks[taskId].data[7]-- <= 0) + if (gTasks[taskId].tTimer-- <= 0) { - unknown_rbox_to_vram(0, 1); - gTasks[taskId].func = task_new_game_prof_birch_speech_part2_2; + NewGameBirchSpeech_ShowDialogueWindow(0, 1); + gTasks[taskId].func = Task_NewGameBirchSpeech_SoItsPlayerName; } } + +#undef tTimer diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 6ebc7affa..3d3408bbb 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -668,7 +668,7 @@ static void Task_BardSong(u8 taskId) task->tState = 3; break; } - sub_8197224(); + RunTextPrintersAndIsPrinter0Active(); } void ScrSpecial_SetMauvilleOldManEventObjGfx(void) diff --git a/src/menu.c b/src/menu.c index c5d70f555..0e5d1b856 100644 --- a/src/menu.c +++ b/src/menu.c @@ -157,7 +157,7 @@ void sub_8197200(void) sub_81973A4(); } -u16 sub_8197224(void) +u16 RunTextPrintersAndIsPrinter0Active(void) { RunTextPrinters(); return IsTextPrinterActive(0); diff --git a/src/slot_machine.c b/src/slot_machine.c index ed00f41c2..5edd31e99 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -968,7 +968,7 @@ bool8 sub_8102318(struct Task *task) NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sub_80323CC(0x15, 7, 0x214, 0x180, 0xE, 0xF); + CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); sSlotMachine->state = 22; return FALSE; } diff --git a/src/start_menu.c b/src/start_menu.c index 56dad89f7..9d10aeaa4 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -866,7 +866,7 @@ static void InitSave(void) static u8 RunSaveCallback(void) { // True if text is still printing - if (sub_8197224() == TRUE) + if (RunTextPrintersAndIsPrinter0Active() == TRUE) { return SAVE_IN_PROGRESS; } -- cgit v1.2.3 From ff13cb63520d58951c6d7fcbb026b1f1beb21ae8 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 15 Sep 2018 13:50:23 +0200 Subject: decompile cable car util which has nothing to do with actual cable car --- src/hall_of_fame.c | 51 +++---------- src/rom_8034C54.c | 4 +- src/rom_81520A8.c | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 230 insertions(+), 43 deletions(-) create mode 100644 src/rom_81520A8.c (limited to 'src') diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 522d11d4f..2b0904672 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -29,6 +29,7 @@ #include "menu.h" #include "trainer_pokemon_sprites.h" #include "data2.h" +#include "rom_81520A8.h" struct HallofFameMon { @@ -91,13 +92,6 @@ extern void sub_80F9BCC(u16, u16, u8); extern bool8 sub_80F9C1C(void); extern void sub_81971D0(void); extern void sub_8197200(void); -extern void sub_8152254(void); -extern void sub_81525D0(u8); -extern void sub_8152438(u8, void*); -extern void sub_8152474(u8, u8, u8); -extern void sub_81522D4(void); -extern bool32 sub_81521C0(u8); -extern u8 sub_81524C4(const struct OamData *arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, u8 arg5, s16 arg6); // this file's functions static void ClearVramOamPltt_LoadHofPal(void); @@ -1444,53 +1438,28 @@ static void sub_81752C0(void) FreeSpritePaletteByTag(0x3E9); } -struct UnknownStruct912B4 -{ - s16 field_0; - s16 field_2; - s16 field_4; - s16 field_6; - s16 field_8; - s16 field_A; - s16 field_C; - s16 field_E; - s16 field_10; - s16 field_12; - s16 field_14; - s16 field_16; - s16 field_18; - s16 field_1A; - s16 field_1C; - s16 field_1E; - s16 field_20; - s16 field_22; - s16 field_24; - s16 field_26; - s16 field_28; -}; - -static void sub_81752F4(struct UnknownStruct912B4 *unkStruct) +static void sub_81752F4(struct UnkStruct_81520A8 *structPtr) { - if (unkStruct->field_E > 110) + if (structPtr->yDelta > 110) { - gTasks[unkStruct->field_28].data[15]--; - sub_81525D0(unkStruct->field_16); + gTasks[structPtr->data[7]].data[15]--; + sub_81525D0(structPtr->id); } else { u8 var; s32 rand; - unkStruct->field_E++; - unkStruct->field_E += unkStruct->field_1C; + structPtr->yDelta++; + structPtr->yDelta += structPtr->data[1]; - var = unkStruct->field_1A; + var = structPtr->data[0]; rand = Random(); rand &= 3; rand += 8; - unkStruct->field_C = (rand) * ((gSineTable[var])) / 256; + structPtr->xDelta = (rand) * ((gSineTable[var])) / 256; - unkStruct->field_1A += 4; + structPtr->data[0] += 4; } } diff --git a/src/rom_8034C54.c b/src/rom_8034C54.c index da18c330c..1ef223c69 100644 --- a/src/rom_8034C54.c +++ b/src/rom_8034C54.c @@ -431,9 +431,9 @@ static bool32 SharesPalWithAnyActive(u32 id) return FALSE; } -u8 sub_80355F8(u32 arg0, u32 arg1) +u8 sub_80355F8(u32 shape, u32 size) { - return gUnknown_082FF1C8[arg0][arg1]; + return gUnknown_082FF1C8[shape][size]; } static void sub_8035608(void) diff --git a/src/rom_81520A8.c b/src/rom_81520A8.c new file mode 100644 index 000000000..f6d14d49c --- /dev/null +++ b/src/rom_81520A8.c @@ -0,0 +1,218 @@ +#include "global.h" +#include "rom_81520A8.h" +#include "malloc.h" +#include "main.h" +#include "rom_8034C54.h" + +static EWRAM_DATA struct +{ + u8 count; + struct UnkStruct_81520A8 *unk4; +} *sUnknown_0203ABB8 = NULL; + +void sub_81520A8(void *dest, u16 value, u8 left, u8 top, u8 width, u8 height) // Unused. +{ + u8 i; + u8 j; + u8 x; + u8 y; + + for (i = 0, y = top; i < height; i++) + { + for (x = left, j = 0; j < width; j++) + { + *(u16 *)((dest) + (y * 64 + x * 2)) = value; + x = (x + 1) % 32; + } + y = (y + 1) % 32; + } +} + +void sub_8152134(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height) // Unused. +{ + u8 i; + u8 j; + u8 x; + u8 y; + const u16 *_src; + + for (i = 0, _src = src, y = top; i < height; i++) + { + for (x = left, j = 0; j < width; j++) + { + *(u16 *)((dest) + (y * 64 + x * 2)) = *(_src++); + x = (x + 1) % 32; + } + y = (y + 1) % 32; + } +} + +bool32 sub_81521C0(u8 count) +{ + u8 i = 0; + + if (count == 0) + return FALSE; + if (count > 64) + count = 64; + + sUnknown_0203ABB8 = AllocZeroed(sizeof(*sUnknown_0203ABB8)); + if (sUnknown_0203ABB8 == NULL) + return FALSE; + sUnknown_0203ABB8->unk4 = AllocZeroed(count * sizeof(struct UnkStruct_81520A8)); + if (sUnknown_0203ABB8->unk4 == NULL) + { + FREE_AND_SET_NULL(sUnknown_0203ABB8); + return FALSE; + } + + sUnknown_0203ABB8->count = count; + for (i = 0; i < count; i++) + { + memcpy(&sUnknown_0203ABB8->unk4[i].oam, &gDummyOamData, sizeof(struct OamData)); + sUnknown_0203ABB8->unk4[i].unk19_2 = TRUE; + } + + return TRUE; +} + +bool32 sub_8152254(void) +{ + u8 i = 0; + + if (sUnknown_0203ABB8 == NULL) + return FALSE; + + for (i = 0; i < sUnknown_0203ABB8->count; i++) + memcpy(&gMain.oamBuffer[i + 64], &gDummyOamData, sizeof(struct OamData)); + + memset(sUnknown_0203ABB8->unk4, 0, sUnknown_0203ABB8->count * sizeof(struct UnkStruct_81520A8)); + FREE_AND_SET_NULL(sUnknown_0203ABB8->unk4); + memset(sUnknown_0203ABB8, 0, sizeof(*sUnknown_0203ABB8)); + FREE_AND_SET_NULL(sUnknown_0203ABB8); + + return TRUE; +} + +bool32 sub_81522D4(void) +{ + u8 i = 0; + + if (sUnknown_0203ABB8 == NULL || sUnknown_0203ABB8->unk4 == NULL) + return FALSE; + + for (i = 0; i < sUnknown_0203ABB8->count; i++) + { + if (sUnknown_0203ABB8->unk4[i].unk19_0 && sUnknown_0203ABB8->unk4[i].unk19_1) + { + if (sUnknown_0203ABB8->unk4[i].callback != NULL) + sUnknown_0203ABB8->unk4[i].callback(&sUnknown_0203ABB8->unk4[i]); + + if (sUnknown_0203ABB8->unk4[i].unk19_2) + { + memcpy(&gMain.oamBuffer[i + 64], &gDummyOamData, sizeof(struct OamData)); + } + else + { + sUnknown_0203ABB8->unk4[i].oam.y = sUnknown_0203ABB8->unk4[i].y + sUnknown_0203ABB8->unk4[i].yDelta; + sUnknown_0203ABB8->unk4[i].oam.x = sUnknown_0203ABB8->unk4[i].x + sUnknown_0203ABB8->unk4[i].xDelta; + sUnknown_0203ABB8->unk4[i].oam.priority = sUnknown_0203ABB8->unk4[i].priority; + sUnknown_0203ABB8->unk4[i].oam.tileNum = sUnknown_0203ABB8->unk4[i].tileNum; + memcpy(&gMain.oamBuffer[i + 64], &sUnknown_0203ABB8->unk4[i], sizeof(struct OamData)); + } + } + } + + return TRUE; +} + +static bool32 sub_81523F4(struct UnkStruct_81520A8 *structPtr, u8 arg1) +{ + u16 tileStart; + + if (structPtr == NULL) + return FALSE; + + tileStart = GetSpriteTileStartByTag(structPtr->tileTag); + if (tileStart == 0xFFFF) + return FALSE; + + structPtr->unk18 = arg1; + structPtr->tileNum = (sub_80355F8(structPtr->oam.shape, structPtr->oam.size) * arg1) + tileStart; + return TRUE; +} + +u8 sub_8152438(u8 id, void (*func)(struct UnkStruct_81520A8 *)) +{ + if (sUnknown_0203ABB8 == NULL || id >= sUnknown_0203ABB8->count) + return 0xFF; + else if (!sUnknown_0203ABB8->unk4[id].unk19_0) + return 0xFF; + + sUnknown_0203ABB8->unk4[id].callback = func; + return id; +} + +u8 sub_8152474(u8 id, u8 dataArrayId, s16 dataValue) +{ + if (sUnknown_0203ABB8 == NULL || id >= sUnknown_0203ABB8->count) + return 0xFF; + else if (!sUnknown_0203ABB8->unk4[id].unk19_0 || dataArrayId >= ARRAY_COUNT(sUnknown_0203ABB8->unk4[id].data)) + return 0xFF; + + sUnknown_0203ABB8->unk4[id].data[dataArrayId] = dataValue; + return id; +} + +u8 sub_81524C4(const struct OamData *oam, u16 tileTag, u16 palTag, s16 x, s16 y, u8 arg5, u8 priority) +{ + struct UnkStruct_81520A8 *structPtr = NULL; + u8 i; + + if (sUnknown_0203ABB8 == NULL || oam == NULL) + return 0xFF; + + for (i = 0; i < sUnknown_0203ABB8->count; i++) + { + if (!sUnknown_0203ABB8->unk4[i].unk19_0) + { + structPtr = &sUnknown_0203ABB8->unk4[i]; + memset(structPtr, 0, sizeof(*structPtr)); + structPtr->id = i; + structPtr->unk19_0 = TRUE; + structPtr->unk19_1 = TRUE; + break; + } + } + + if (structPtr == NULL) + return 0xFF; + + memcpy(&structPtr->oam, oam, sizeof(*oam)); + structPtr->tileTag = tileTag; + structPtr->palTag = palTag; + structPtr->x = x; + structPtr->y = y; + structPtr->oam.paletteNum = IndexOfSpritePaletteTag(palTag); + if (priority < 4) + { + structPtr->priority = priority; + structPtr->oam.priority = priority; + } + sub_81523F4(structPtr, arg5); + + return structPtr->id; +} + +u8 sub_81525D0(u8 id) +{ + if (sUnknown_0203ABB8 == NULL || !sUnknown_0203ABB8->unk4[id].unk19_0) + return 0xFF; + + memset(&sUnknown_0203ABB8->unk4[id], 0, sizeof(struct UnkStruct_81520A8)); + sUnknown_0203ABB8->unk4[id].oam.y = 160; + sUnknown_0203ABB8->unk4[id].oam.x = 240; + sUnknown_0203ABB8->unk4[id].unk19_2 = TRUE; + memcpy(&gMain.oamBuffer[id + 64], &gDummyOamData, sizeof(struct OamData)); + return id; +} -- cgit v1.2.3 From 0547e260a4d1e89b6efac0c85c276316186d370c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 15 Sep 2018 18:01:20 +0200 Subject: More of slot machine --- src/slot_machine.c | 1989 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 1926 insertions(+), 63 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index 5edd31e99..4ee4a2fe4 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -22,6 +22,44 @@ #include "text_window.h" #include "constants/rgb.h" #include "main_menu.h" +#include "bg.h" +#include "window.h" + +extern u8 gOamLimit; +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; + +// Text +extern const u8 gText_YouDontHaveThreeCoins[]; +extern const u8 gText_QuitTheGame[]; +extern const u8 gText_YouveGot9999Coins[]; +extern const u8 gText_YouveRunOutOfCoins[]; +extern const u8 gText_ReelTimeHelp[]; enum { @@ -220,7 +258,7 @@ bool8 sub_81020C8(struct Task *task); /*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_8103FE8_(u8 taskId); /*static*/void sub_8104048(void); /*static*/void sub_8104064(u8 pikaPower); /*static*/bool8 sub_81040C8(void); @@ -229,7 +267,7 @@ bool8 sub_81020C8(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_812D394(struct Task *task); /*static*/void sub_810423C(u8 pikaPower); /*static*/void sub_810430C(void); /*static*/bool8 sub_810432C(void); @@ -261,13 +299,16 @@ bool8 sub_81020C8(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_812DD78(struct Task *task); /*static*/void sub_8104BFC(struct Task *task); +/*static*/void sub_812DE14(struct Task *task); +/*static*/void sub_812DE30(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_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); @@ -275,7 +316,7 @@ bool8 sub_81020C8(struct Task *task); /*static*/void sub_8105100(void); /*static*/void sub_810514C(void); /*static*/void sub_81051C0(void); -/*static*/void sub_8105284(void); +/*static*/void sub_8105284_(void); /*static*/void sub_81052EC(void); /*static*/void sub_81053A0(void); /*static*/void sub_810545C(void); @@ -304,12 +345,291 @@ bool8 sub_81020C8(struct Task *task); /*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*/void sub_812F908(void); +/*static*/void sub_812F958(void); +/*static*/void sub_812F7E4(void); +/*static*/void sub_812F968(void); +void LoadSlotMachineWheelOverlay(void); +u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); + +// Const rom data. /*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[]; +extern const u16 gUnknown_083ECE12[]; +extern const u16 gUnknown_083ECE1C[][2]; +extern const u16 gUnknown_083ECE30[]; +extern const u16 sSlotMatchFlags[]; +extern const u16 sSlotPayouts[]; +extern const s16 gUnknown_083ECCF8[][2]; +extern const struct BgTemplate gUnknown_085A7424[4]; +extern const struct WindowTemplate gUnknown_085A7434[]; +extern const u8 gUnknown_083ECD16[][6]; +extern const u8 gUnknown_083ECD28[][6]; +extern const u8 gUnknown_083ECD46[][17]; +extern const u8 gUnknown_083ECDAC[][17]; +extern const u8 sSym2Match[]; +extern const u8 gUnknown_083ECCF1[]; +extern const u8 sReelSymbols[][21]; +extern const u16 *const gUnknown_083EDD08[]; +extern const u16 *const gUnknown_083EDD1C[]; +extern const u8 gUnknown_083EDD30[]; +extern const u8 gUnknown_083EDD35[][2]; +extern const u8 gUnknown_083EDD3B[]; +extern const u16 *const gUnknown_083EDDA0[]; +extern const u16 *const gUnknown_083EDDAC; +extern const u16 sReelTimeWindowTilemap[]; +extern const u16 gUnknown_085A9898[]; +extern void (*const gUnknown_083ED064[])(void); + +const struct BgTemplate gUnknown_085A7424[] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, +}; + +const struct WindowTemplate gUnknown_085A7434[] = +{ + {0, 2, 15, 0x1B, 4, 15, 0x194}, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate gUnknown_085A7444 = +{ + 0, 1, 3, 20, 13, 13, 1 +}; + +const u8 gUnknown_085A744C[] = {3, 1, 2, 0}; + +bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = +{ + sub_8101D5C, + sub_8101D8C, + sub_8101DB0, + sub_8101DF4, + sub_8101E10, + sub_8101E3C, + sub_8101F44, + sub_8101F60, + sub_8101F88, + sub_8101FA4, + sub_8102008, + sub_8102034, + sub_8102058, + sub_8102090, + sub_81020C8, + sub_81021E0, + sub_81021FC, + sub_8102264, + sub_81022A0, + sub_81022CC, + sub_81022F0, + sub_8102318, + sub_8102344, + sub_810239C, + sub_81023B8, + sub_81023E0_, + sub_81023FC, + sub_8102424, + sub_8102460, +}; + +bool8 (*const gUnknown_083ECB20[])(struct Task *task) = +{ + sub_8102A9C, + sub_8102AD0, + sub_8102B80 +}; + +bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = +{ + sub_8102EA0, + sub_8102EA4, + sub_8102EC0, + sub_8102F4C, + sub_8103008 +}; + +bool8 (*const gUnknown_083ECB40[])(void) = +{ + sub_810305C, + sub_81032C0, + sub_81033DC +}; + +void (*const gUnknown_083ECB4C[])(void) = +{ + sub_81034F4, + sub_8103540, + sub_810380C +}; + +const u16 gUnknown_085A74FC[] = {2, 4, 4, 4, 8}; + +bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = +{ + sub_8103154, + sub_81031B4, + sub_81031B4 +}; + +bool8 (*const gUnknown_083ECB70[])(void) = +{ + sub_81032E8, + sub_81032E8, + sub_810333C +}; + +bool8 (*const gUnknown_083ECB7C[])(u8 a0) = +{ + sub_810341C, + sub_810341C, + sub_810347C +}; + +void (*const gUnknown_083ECB88[])(void) = +{ + sub_8103564, + j5_08111E84, + sub_8103668 +}; + +void (*const gUnknown_083ECB94[])(void) = +{ + sub_8103830, + sub_8103910, + sub_8103A78 +}; + +void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = +{ + sub_8103C78, + sub_8103CAC, + sub_8103CC8 +}; + +const s16 gUnknown_083ECBAC[] = {5, 10, 15}; + +void (*const gUnknown_083ECBB4[])(struct Task *task) = +{ + nullsub_68, + sub_810411C, + sub_8104144, + sub_81041AC +}; + +const u16 gUnknown_083ECBC4[][2] = +{ + {0x9e, 0x6e}, + {0x9f, 0x6f}, + {0xaf, 0x7f}, +}; + +void (*const gUnknown_083ECBD0[])(struct Task *task) = +{ + sub_810437C, + sub_81043EC, + sub_8104468, + sub_8104498, + sub_8104548, + sub_8104598, + sub_81045CC, + sub_810463C, + sub_81046C0, + sub_8104764, + sub_8104794, + sub_81047EC, + sub_8104860, + sub_81048A8, + sub_81048CC, + sub_8104940, + sub_81049C8, + sub_8104794, + sub_81049F8 +}; + +const u8 gUnknown_085A75C0[] = {1, 1, 2, 2}; +const s16 gUnknown_085A75C4[] = {0x40, 0x30, 0x18, 0x08}; +const s16 gUnknown_085A75CC[] = {10, 8, 6, 4}; + +void (*const gUnknown_083ECC30[])(struct Task *task) = +{ + sub_8104B3C, + sub_8104B60, + sub_8104B80, + sub_8104B60, + sub_812DD78, + sub_8104B60, + sub_8104BC8, + sub_8104B60, + sub_812DE14, + sub_8104B60, + sub_812DE30, + sub_8104B60, + sub_8104BFC, + sub_8104B60, + sub_8104C44, +}; + +void (*const gUnknown_083ECC54[])(struct Task *task) = +{ + nullsub_69, +}; + +extern const struct SpriteTemplate gSpriteTemplate_83ED504; +extern const struct SpriteTemplate gSpriteTemplate_83ED4EC; +extern const struct SubspriteTable gSubspriteTables_83ED7D4[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED4D4; +extern const struct SubspriteTable gSubspriteTables_83ED7B4[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED4BC; +extern const struct SpriteTemplate gSpriteTemplate_83ED4A4; +extern const struct SubspriteTable gSubspriteTables_83ED78C[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED474; +extern const struct SpriteTemplate gSpriteTemplate_83ED48C; +extern const struct SubspriteTable gSubspriteTables_83ED73C[]; +extern const struct SubspriteTable gSubspriteTables_83ED75C[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED444; +extern const struct SubspriteTable gSubspriteTables_83ED704[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED42C; +extern const struct SpriteTemplate gSpriteTemplate_83ED414; +extern const struct SpriteTemplate gSpriteTemplate_83ED45C; // code #define tState data[0] @@ -442,9 +762,6 @@ void SlotMachineDummyTask(u8 taskId) { } -extern const struct BgTemplate gUnknown_085A7424[4]; -extern const struct WindowTemplate gUnknown_085A7434[]; - void SlotMachineSetup_0_0(void) { SetVBlankCallback(NULL); @@ -493,8 +810,6 @@ void SlotMachineSetup_2_1(void) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } -extern const s16 gUnknown_083ECCF8[][2]; - void SlotMachineSetup_0_1(void) { u8 i; @@ -528,8 +843,6 @@ void SlotMachineSetup_0_1(void) sub_80EDE70(GetCoins()); } -extern u8 gOamLimit; - void SlotMachineSetup_3_0(void) { ResetPaletteFade(); @@ -539,34 +852,6 @@ 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) { gUnknown_0203AACC = Alloc(8); @@ -582,10 +867,6 @@ void SlotMachineSetup_4_0(void) 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(); @@ -617,8 +898,6 @@ 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)) @@ -717,11 +996,6 @@ bool8 sub_8101E3C(struct Task *task) return FALSE; } -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) { NewMenuHelpers_DrawDialogueFrame(0, 0); @@ -1139,11 +1413,6 @@ bool8 sub_8102540_(void) 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; @@ -1210,12 +1479,6 @@ void sub_8102680(void) 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; @@ -1337,8 +1600,6 @@ void CheckMatch_Diagonals(void) } } -extern const u8 sSym2Match[]; - u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) @@ -1364,3 +1625,1605 @@ bool8 sub_8102A44(void) else return FALSE; } + +void sub_8102A64(u8 taskId) +{ + while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)) + ; +} + +bool8 sub_8102A9C(struct Task *task) +{ + if (sub_8103E38()) + { + task->data[0]++; + if (sSlotMachine->payout == 0) + { + task->data[0] = 2; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_8102AD0(struct Task *task) +{ + if (!task->data[1]--) + { + if (IsFanfareTaskInactive()) + PlaySE(SE_PIN); + sSlotMachine->payout--; + if (sSlotMachine->coins < 9999) + sSlotMachine->coins++; + task->data[1] = 8; + if (gMain.heldKeys & A_BUTTON) + task->data[1] = 4; + } + if (IsFanfareTaskInactive() && gMain.newKeys & START_BUTTON) + { + PlaySE(SE_PIN); + sSlotMachine->coins += sSlotMachine->payout; + if (sSlotMachine->coins > 9999) + sSlotMachine->coins = 9999; + sSlotMachine->payout = 0; + } + if (sSlotMachine->payout == 0) + task->data[0]++; + return FALSE; +} + +bool8 sub_8102B80(struct Task *task) +{ + if (sub_8103E7C()) + DestroyTask(FindTaskIdByFunc(sub_8102A64)); + return FALSE; +} + +u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) +{ + s16 offset = (sSlotMachine->reelPositions[x] + y) % 21; + if (offset < 0) + offset += 21; + return sReelSymbols[x][offset]; +} + +u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) +{ + s16 r6 = 0; + s16 result = sSlotMachine->unk1C[x] % 24; + if (result != 0) + r6 = -1; + return GetTagOfReelSymbolOnScreenAtPos(x, y + r6); +} + +u8 sub_8102C48(s16 a0) +{ + s16 r1 = (sSlotMachine->unk16 + a0) % 6; + if (r1 < 0) + r1 += 6; + return gUnknown_083ECCF1[r1]; +} + +void sub_8102C84(u8 a0, s16 a1) +{ + sSlotMachine->unk1C[a0] += a1; + sSlotMachine->unk1C[a0] %= 504; + sSlotMachine->reelPositions[a0] = 21 - sSlotMachine->unk1C[a0] / 24; +} + +s16 sub_8102CCC(u8 a0, s16 a1) +{ + s16 r1 = sSlotMachine->unk1C[a0] % 24; + if (r1 != 0) + { + if (r1 < a1) + a1 = r1; + sub_8102C84(a0, a1); + r1 = sSlotMachine->unk1C[a0] % 24; + } + return r1; +} + +void sub_8102D28(s16 a0) +{ + sSlotMachine->unk14 += a0; + sSlotMachine->unk14 %= 120; + sSlotMachine->unk16 = 6 - sSlotMachine->unk14 / 20; +} + +s16 sub_8102D5C(s16 a0) +{ + s16 r1 = sSlotMachine->unk14 % 20; + if (r1 != 0) + { + if (r1 < a0) + a0 = r1; + sub_8102D28(a0); + r1 = sSlotMachine->unk14 % 20; + } + return r1; +} + +void sub_8102DA8(void) +{ + u8 i; + for (i = 0; i < 3; i++) + { + u8 taskId = CreateTask(sub_8102E68, 2); + gTasks[taskId].data[15] = i; + sSlotMachine->reelTasks[i] = taskId; + sub_8102E68(taskId); + } +} + +void sub_8102DEC(u8 a0) +{ + gTasks[sSlotMachine->reelTasks[a0]].data[0] = 1; + gTasks[sSlotMachine->reelTasks[a0]].data[14] = 1; +} + +void sub_8102E1C(u8 a0) +{ + gTasks[sSlotMachine->reelTasks[a0]].data[0] = 2; +} + +bool8 sub_8102E40(u8 a0) +{ + return gTasks[sSlotMachine->reelTasks[a0]].data[14]; +} + +void sub_8102E68(u8 taskId) +{ + while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)) + ; +} + +bool8 sub_8102EA0(struct Task *task) +{ + return FALSE; +} + +bool8 sub_8102EA4(struct Task *task) +{ + sub_8102C84(task->data[15], sSlotMachine->unk1A); + return FALSE; +} + + +bool8 sub_8102EC0(struct Task *task) +{ + task->data[0]++; + sSlotMachine->unk34[task->data[15]] = 0; + sSlotMachine->unk2E[task->data[15]] = 0; + if (sSlotMachine->unk0A == 0 && (sSlotMachine->unk04 == 0 || sSlotMachine->unk06 == 0 || !gUnknown_083ECB40[task->data[15]]())) + { + sSlotMachine->unk06 = 0; + gUnknown_083ECB4C[task->data[15]](); + } + task->data[1] = sSlotMachine->unk2E[task->data[15]]; + return TRUE; +} + +bool8 sub_8102F4C(struct Task *task) +{ + u16 sp[ARRAY_COUNT(gUnknown_085A74FC)]; + s16 r2; + + memcpy(sp, gUnknown_085A74FC, sizeof(gUnknown_085A74FC)); + r2 = sSlotMachine->unk1C[task->data[15]] % 24; + if (r2 != 0) + r2 = sub_8102CCC(task->data[15], sSlotMachine->unk1A); + else if (sSlotMachine->unk2E[task->data[15]]) + { + sSlotMachine->unk2E[task->data[15]]--; + sub_8102C84(task->data[15], sSlotMachine->unk1A); + r2 = sSlotMachine->unk1C[task->data[15]] % 24; + } + if (r2 == 0 && sSlotMachine->unk2E[task->data[15]] == 0) + { + task->data[0]++; + task->data[1] = sp[task->data[1]]; + task->data[2] = 0; + } + return FALSE; +} + +bool8 sub_8103008(struct Task *task) +{ + sSlotMachine->unk22[task->data[15]] = task->data[1]; + task->data[1] = -task->data[1]; + task->data[2]++; + if ((task->data[2] & 0x3) == 0) + task->data[1] >>= 1; + if (task->data[1] == 0) + { + task->data[0] = 0; + task->data[14] = 0; + sSlotMachine->unk22[task->data[15]] = 0; + } + return FALSE; +} + +bool8 sub_810305C(void) +{ + u8 r3 = sub_810250C(sSlotMachine->unk04); + u8 r5 = r3; + if (sSlotMachine->unk04 & 0xc0) + { + r5 = 0; + r3 = 1; + } + return gUnknown_083ECB64[sSlotMachine->bet - 1](r5, r3); +} + +bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) +{ + u8 tag = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, y); + if (tag == tag1 || tag == tag2) + { + sSlotMachine->unk07 = tag; + return TRUE; + } + return FALSE; +} + +bool8 sub_81030E0(s16 y) +{ + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - y) == 4) + return TRUE; + else + return FALSE; +} + +bool8 sub_8103134(void) +{ + if (sSlotMachine->unk04 & 0xc2) + return TRUE; + else + return FALSE; +} + +bool8 sub_8103154(u8 a0, u8 a1) +{ + s16 i; + + for (i = 0; i < 5; i++) + { + if (sub_81030A4(2 - i, a0, a1)) + { + sSlotMachine->unk34[0] = 2; + sSlotMachine->unk2E[0] = i; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_81031B4(u8 tag1, u8 tag2) +{ + s16 i; + bool8 r6 = sub_8103134(); + if (r6 || !sub_81030E0(0)) + { + for (i = 1; i < 4; i++) + { + if (sub_81030A4(i, tag1, tag2)) + { + sSlotMachine->unk34[0] = i; + sSlotMachine->unk2E[0] = 0; + return TRUE; + } + } + } + for (i = 1; i < 5; i++) + { + bool8 r7 = r6; + if (r7 || !sub_81030E0(i)) + { + if (sub_81030A4(1 - i, tag1, tag2)) + { + if (i == 1 && (r7 || !sub_81030E0(3))) + { + sSlotMachine->unk34[0] = 3; + sSlotMachine->unk2E[0] = 3; + return TRUE; + } + if (i < 4 && (r7 || !sub_81030E0(i + 1))) + { + sSlotMachine->unk34[0] = 2; + sSlotMachine->unk2E[0] = i + 1; + return TRUE; + } + sSlotMachine->unk34[0] = 1; + sSlotMachine->unk2E[0] = i; + return TRUE; + } + } + } + return FALSE; +} + +bool8 sub_81032C0(void) +{ + return gUnknown_083ECB70[sSlotMachine->bet - 1](); +} + +bool8 sub_81032E8(void) +{ + s16 i; + s16 unk34_0 = sSlotMachine->unk34[0]; + + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, unk34_0 - i) == sSlotMachine->unk07) + { + sSlotMachine->unk34[1] = unk34_0; + sSlotMachine->unk2E[1] = i; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_810333C(void) +{ + s16 i; + if (sub_81032E8()) + { + if (sSlotMachine->unk34[0] != 2 && sSlotMachine->unk2E[1] > 1 && sSlotMachine->unk2E[1] != 4) + { + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == sSlotMachine->unk07) + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = i; + break; + } + } + } + return TRUE; + } + if (sSlotMachine->unk34[0] != 2) + { + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == sSlotMachine->unk07) + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = i; + return TRUE; + } + } + } + return FALSE; +} + +bool8 sub_81033DC(void) +{ + u8 r3 = sSlotMachine->unk07; + if (sSlotMachine->unk04 & 0x40) + { + r3 = 0; + if (sSlotMachine->unk07 == 0) + { + r3 = 1; + } + } + return gUnknown_083ECB7C[sSlotMachine->bet - 1](r3); +} + +bool8 sub_810341C(u8 a0) +{ + s16 i; + s16 unk34_1 = sSlotMachine->unk34[1]; + + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, unk34_1 - i) == a0) + { + sSlotMachine->unk34[2] = unk34_1; + sSlotMachine->unk2E[2] = i; + return TRUE; + } + } + return FALSE; +} + +bool8 sub_810347C(u8 a0) +{ + s16 i; + s16 r8; + if (sSlotMachine->unk34[0] == sSlotMachine->unk34[1]) + return sub_810341C(a0); + if (sSlotMachine->unk34[0] == 1) + r8 = 3; + else + r8 = 1; + for (i = 0; i < 5; i++) + { + if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - i) == a0) + { + sSlotMachine->unk2E[2] = i; + sSlotMachine->unk34[2] = r8; + return TRUE; + } + } + return FALSE; +} + +void sub_81034F4(void) +{ + s16 i = 0; + + while (sub_81030E0(i) != 0) + i++; + sSlotMachine->unk2E[0] = i; +} + +bool8 sub_8103520(u8 *a0) +{ + if (*a0 == 0) + { + *a0 = 1; + return TRUE; + } + if (*a0 == 1) + { + *a0 = 0; + return TRUE; + } + return FALSE; +} + +void sub_8103540(void) +{ + gUnknown_083ECB88[sSlotMachine->bet - 1](); +} + +void sub_8103564(void) +{ + if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + { + u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); + if (sub_8103520(&sp0)) + { + s16 i; + for (i = 0; i < 5; i++) + { + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i)) + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = i; + break; + } + } + } + } +} + +void j5_08111E84(void) +{ + if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + { + u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); + if (sub_8103520(&sp0)) + { + s16 i; + for (i = 0; i < 5; i++) + { + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[0] - i)) + { + sSlotMachine->unk34[1] = sSlotMachine->unk34[0]; + sSlotMachine->unk2E[1] = i; + break; + } + } + } + } +} + +void sub_8103668(void) +{ + s16 i; + s16 j; + if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + { + if (sSlotMachine->unk34[0] == 2) + { + j5_08111E84(); + } + else + { + u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); + if (sub_8103520(&sp0)) + { + j = 2; + if (sSlotMachine->unk34[0] == 3) + j = 3; + for (i = 0; i < 2; i++, j--) + { + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, j)) + { + sSlotMachine->unk34[1] = j; + sSlotMachine->unk2E[1] = 0; + return; + } + } + for (j = 1; j < 5; j++) + { + if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[0] - j)) + { + if (sSlotMachine->unk34[0] == 1) + { + if (j < 3) + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = j + 1; + } + else + { + sSlotMachine->unk34[1] = 1; + sSlotMachine->unk2E[1] = j; + } + } + else + { + if (j < 3) + { + sSlotMachine->unk34[1] = 3; + sSlotMachine->unk2E[1] = j; + } + else + { + sSlotMachine->unk34[1] = 2; + sSlotMachine->unk2E[1] = j - 1; + } + } + return; + } + } + } + } + } +} + +bool8 sub_8103764(u8 a0, u8 a1) +{ + if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0)) + return TRUE; + else + return FALSE; +} + +bool8 sub_810378C(u8 a0, u8 a1, u8 a2) +{ + if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1)) + return TRUE; + else + return FALSE; +} + +bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) +{ + if ((a0 == 0 && a1 == 1 && a2 == 0) || + (a0 == 1 && a1 == 0 && a2 == 1) || + (a0 == 0 && a1 == 0 && a2 == 1) || + (a0 == 1 && a1 == 1 && a2 == 0) || + (a0 == a1 && a0 == a2)) + { + return FALSE; + } + return TRUE; +} + +void sub_810380C(void) +{ + gUnknown_083ECB94[sSlotMachine->bet - 1](); +} + +void sub_8103830(void) +{ + s16 i = 0; + u8 r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); + u8 r1 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); + if (r5 == r1) + { + while (1) + { + u8 r0; + if (!(r5 == (r0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + break; + i++; + } + } + else if (sub_8103764(r5, r1)) + { + if (sSlotMachine->unk04 & 0x80) + { + for (i = 0; i < 5; i++) + { + if (r5 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) + { + sSlotMachine->unk2E[2] = i; + return; + } + } + } + i = 0; + while (1) + { + if (r5 != GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) + break; + i++; + } + } + sSlotMachine->unk2E[2] = i; +} + +void sub_8103910(void) +{ + s16 sp0 = 0; + s16 i; + u8 r7; + u8 r6; + u8 r4; + + if (sSlotMachine->unk34[1] != 0 && sSlotMachine->unk34[0] == sSlotMachine->unk34[1] && sSlotMachine->unk04 & 0x80) + { + r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[1] - sSlotMachine->unk2E[1]); + if (sub_8103764(r7, r6)) + { + for (i = 0; i < 5; i++) + { + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, sSlotMachine->unk34[1] - i); + if (r7 == r4) + { + sp0 = i; + break; + } + } + } + } + while (1) + { + s16 r8; + for (i = 1, r8 = 0; i < 4; i++) + { + r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, i - sSlotMachine->unk2E[0]); + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, i - sSlotMachine->unk2E[1]); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, i - sp0); + if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->unk04 & 0x80))) + { + r8++; + break; + } + } + if (r8 == 0) + break; + sp0++; + } + sSlotMachine->unk2E[2] = sp0; +} + +void sub_8103A78(void) +{ + u8 r6; + u8 r5; + u8 r4; + s16 r8; + s16 i; + + sub_8103910(); + if (sSlotMachine->unk34[1] != 0 && sSlotMachine->unk34[0] != sSlotMachine->unk34[1] && sSlotMachine->unk04 & 0x80) + { + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); + r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[1] - sSlotMachine->unk2E[1]); + if (sub_8103764(r6, r5)) + { + r8 = 1; + if (sSlotMachine->unk34[0] == 1) + r8 = 3; + for (i = 0; i < 5; i++) + { + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - (sSlotMachine->unk2E[2] + i)); + if (r6 == r4) + { + sSlotMachine->unk2E[2] += i; + break; + } + } + } + } + while (1) + { + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - sSlotMachine->unk2E[0]); + r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 3 - sSlotMachine->unk2E[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->unk04 & 0x80)) + break; + sSlotMachine->unk2E[2]++; + } + while (1) + { + r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - sSlotMachine->unk2E[0]); + r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); + r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 1 - sSlotMachine->unk2E[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->unk04 & 0x80)) + break; + sSlotMachine->unk2E[2]++; + } +} + +void sub_8103C14(u8 a0) +{ + u8 taskId = CreateTask(sub_8103C48, 5); + gTasks[taskId].data[15] = a0; + sub_8103C48(taskId); +} + +void sub_8103C48(u8 taskId) +{ + gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); +} + +void sub_8103C78(struct Task *task, u8 taskId) +{ + sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); + task->data[0]++; +} + +void sub_8103CAC(struct Task *task, u8 taskId) +{ + if (++task->data[1] > 11) + task->data[0]++; +} + +void sub_8103CC8(struct Task *task, u8 taskId) +{ + sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); + DestroyTask(taskId); +} + +void sub_8103D00(u8 a0) +{ + LoadPalette(gUnknown_083EDD08[a0], gUnknown_083EDD30[a0], 2); +} + +void sub_8103D28(u8 a0) +{ + LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); +} + +void sub_8103D50(u8 a0) +{ + u8 i; + for (i = 0; i < gUnknown_083EDD3B[a0]; i++) + sub_8103D00(gUnknown_083EDD35[a0][i]); +} + +void sub_8103D8C(u8 a0) +{ + u8 i; + for (i = 0; i < gUnknown_083EDD3B[a0]; i++) + sub_8103D28(gUnknown_083EDD35[a0][i]); +} + +void sub_8103DC8(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + u8 spriteId = CreateInvisibleSprite(sub_8103EE4); + gSprites[spriteId].data[0] = i; + sSlotMachine->unk44[i] = spriteId; + } +} + +void sub_8103E04(u8 a0) +{ + struct Sprite *sprite = gSprites + sSlotMachine->unk44[a0]; + sprite->data[1] = 1; + sprite->data[2] = 4; + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = 2; + sprite->data[7] = 0; +} + +bool8 sub_8103E38(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + struct Sprite *sprite = &gSprites[sSlotMachine->unk44[i]]; + if (sprite->data[1] && sprite->data[2]) + return FALSE; + } + return TRUE; +} + +bool8 sub_8103E7C(void) +{ + u8 i; + for (i = 0; i < 5; i++) + { + if (!sub_8103EAC(sSlotMachine->unk44[i])) + return FALSE; + } + return TRUE; +} + +bool8 sub_8103EAC(u8 spriteId) +{ + struct Sprite *sprite = gSprites + spriteId; + if (!sprite->data[1]) + return TRUE; + if (sprite->data[7]) + sprite->data[1] = 0; + return sprite->data[7]; +} + +void sub_8103EE4(struct Sprite *sprite) +{ + s16 r4; + if (sprite->data[1]) + { + if (!sprite->data[3]--) + { + sprite->data[7] = 0; + sprite->data[3] = 1; + sprite->data[4] += sprite->data[5]; + r4 = 4; + if (sprite->data[2]) + r4 = 8; + if (sprite->data[4] <= 0) + { + sprite->data[7] = 1; + sprite->data[5] = -sprite->data[5]; + if (sprite->data[2]) + sprite->data[2]--; + } + else if (sprite->data[4] >= r4) + sprite->data[5] = -sprite->data[5]; + if (sprite->data[2]) + sprite->data[3] <<= 1; + } + MultiplyPaletteRGBComponents(gUnknown_083EDD30[sprite->data[0]], sprite->data[4], sprite->data[4], sprite->data[4]); + } +} + +void sub_8103F70(void) +{ + u8 taskId = CreateTask(sub_8103FE8_, 6); + gTasks[taskId].data[3] = 1; + sub_8103FE8_(taskId); +} + +bool8 sub_8103FA0(void) +{ + u8 taskId = FindTaskIdByFunc(sub_8103FE8_); + if (!gTasks[taskId].data[2]) + { + DestroyTask(taskId); + LoadPalette(gUnknown_083EDDAC, 0x10, 0x20); + return TRUE; + } + return FALSE; +} + +void sub_8103FE8_(u8 taskId) +{ + struct Task *task = gTasks + taskId; + if (!task->data[1]--) + { + task->data[1] = 4; + task->data[2] += task->data[3]; + if (task->data[2] == 0 || task->data[2] == 2) + task->data[3] = -task->data[3]; + } + LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); +} + +void sub_8104048(void) +{ + sSlotMachine->unk3E = CreateTask(sub_81040E8, 8); +} + +void sub_8104064(u8 pikaPower) +{ + struct Task *task = gTasks + sSlotMachine->unk3E; + sub_812D394(task); + task->data[0] = 1; + task->data[1]++; + task->data[15] = 1; +} + +void sub_8104098(void) +{ + struct Task *task = gTasks + sSlotMachine->unk3E; + sub_812D394(task); + task->data[0] = 3; + task->data[15] = 1; +} + +bool8 sub_81040C8(void) +{ + return gTasks[sSlotMachine->unk3E].data[15]; +} + +void sub_81040E8(u8 taskId) +{ + gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); +} + +void nullsub_68(struct Task *task) +{ +} + +void sub_810411C(struct Task *task) +{ + task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); + task->data[0]++; +} + +void sub_8104144(struct Task *task) +{ + if (gSprites[task->data[2]].data[7]) + { + s16 r5 = task->data[1] + 2; + s16 r3 = 0; + s16 r2 = 0; + if (task->data[1] == 1) + r3 = 1, r2 = 1; + else if (task->data[1] == 16) + r3 = 2, r2 = 2; + gUnknown_0203AACC[r2] = gUnknown_083ECBC4[r3][0]; + LoadBgTilemap(2, &gUnknown_0203AACC[r2], 2, r5 + 0x40); + sub_8105B88(task->data[2]); + task->data[0] = 0; + task->data[15] = 0; + } +} + +void sub_81041AC(struct Task *task) +{ + s16 r5 = task->data[1] + 2; + s16 r3 = 0; + s16 r2 = 3; + if (task->data[1] == 1) + r3 = 1, r2 = 1; + else if (task->data[1] == 16) + r3 = 2, r2 = 2; + if (task->data[2] == 0) + { + gUnknown_0203AACC[r2] = gUnknown_083ECBC4[r3][1]; + LoadBgTilemap(2, &gUnknown_0203AACC[r2], 2, r5 + 0x40); + task->data[1]--; + } + if (++task->data[2] >= 20) + task->data[2] = 0; + if (task->data[1] == 0) + { + task->data[0] = 0; + task->data[15] = 0; + } +} + +void sub_812D394(struct Task *task) +{ + u8 i; + + for (i = 2; i < 16; i++) + task->data[i] = 0; +} + +void sub_810423C(u8 pikaPower) +{ + s16 i; + s16 r3 = 0, r1 = 0; + s16 r4 = 3; + for (i = 0; i < pikaPower; i++, r4++) + { + r3 = 0, r1 = 0; + if (i == 0) + r3 = 1, r1 = 1; + else if (i == 15) + r3 = 2, r1 = 2; + gUnknown_0203AACC[r1] = gUnknown_083ECBC4[r3][0]; + LoadBgTilemap(2, &gUnknown_0203AACC[r1], 2, r4 + 0x40); + } + for (; i < 16; i++, r4++) + { + r3 = 0, r1 = 3; + if (i == 0) + r3 = 1, r1 = 1; + else if (i == 15) + r3 = 2, r1 = 2; + gUnknown_0203AACC[r1] = gUnknown_083ECBC4[r3][1]; + LoadBgTilemap(2, &gUnknown_0203AACC[r1], 2, r4 + 0x40); + } + gTasks[sSlotMachine->unk3E].data[1] = pikaPower; +} + +void sub_810430C(void) +{ + u8 taskId = CreateTask(sub_810434C, 7); + sub_810434C(taskId); +} + +bool8 sub_810432C(void) +{ + if (FindTaskIdByFunc(sub_810434C) == 0xFF) + return TRUE; + return FALSE; +} + +void sub_810434C(u8 taskId) +{ + gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId); +} + +void sub_810437C(struct Task *task) +{ + sSlotMachine->unk0A = 0; + sSlotMachine->unk14 = 0; + sSlotMachine->unk16 = 0; + task->data[0]++; + task->data[1] = 0; + task->data[2] = 30; + task->data[4] = 1280; + gSpriteCoordOffsetX = 0; + gSpriteCoordOffsetY = 0; + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + sub_8104A40(REG_OFFSET_BG3VOFS, 0); + sub_81051C0(); + sub_8105100(); + sub_81052EC(); + sub_81053A0(); + sub_810545C(); + sub_8102680(); + StopMapMusic(); + PlayNewMapMusic(MUS_BD_TIME); +} + +void sub_81043EC(struct Task *task) +{ + s16 r3; + gSpriteCoordOffsetX -= 8; + task->data[1] += 8; + r3 = ((task->data[1] + 240) & 0xff) >> 3; + SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); + if (r3 != task->data[2] && task->data[3] <= 18) + { + task->data[2] = r3; + task->data[3] = task->data[1] >> 3; + sub_8104A40(r3, task->data[3]); + } + if (task->data[1] >= 200) + { + task->data[0]++; + task->data[3] = 0; + } + sub_8102D28(task->data[4] >> 8); +} + +void sub_8104468(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + if (++task->data[5] >= 60) + { + task->data[0]++; + sub_8105578(); + sub_81056F0(); + } +} + +void sub_8104498(struct Task *task) +{ + int r5; + u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; + s16 sp4[ARRAY_COUNT(gUnknown_085A75C4)]; + s16 spC[ARRAY_COUNT(gUnknown_085A75CC)]; + + memcpy(sp0, gUnknown_085A75C0, sizeof(gUnknown_085A75C0)); + memcpy(sp4, gUnknown_085A75C4, sizeof(gUnknown_085A75C4)); + memcpy(spC, gUnknown_085A75CC, sizeof(gUnknown_085A75CC)); + + sub_8102D28(task->data[4] >> 8); + task->data[4] -= 4; + r5 = 4 - (task->data[4] >> 8); + sub_8105688(sp4[r5]); + sub_81057E8(spC[r5]); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, sp0[r5]); + if (task->data[4] <= 0x100) + { + task->data[0]++; + task->data[4] = 0x100; + task->data[5] = 0; + } +} + +void sub_8104548(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + if (++task->data[5] >= 80) + { + task->data[0]++; + task->data[5] = 0; + sub_81057E8(2); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 3); + } +} + +void sub_8104598(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + task->data[4] = (u8)task->data[4] + 0x80; + if (++task->data[5] >= 80) + { + task->data[0]++; + task->data[5] = 0; + } +} + +void sub_81045CC(struct Task *task) +{ + sub_8102D28(task->data[4] >> 8); + task->data[4] = (u8)task->data[4] + 0x40; + if (++task->data[5] >= 40) + { + task->data[5] = 0; + if (sSlotMachine->unk05) + { + if (sSlotMachine->unk0A <= task->data[6]) + task->data[0]++; + } + else if (task->data[6] > 3) + { + task->data[0]++; + } + else if (sub_81026DC(task->data[6])) + { + task->data[0] = 14; + } + task->data[6]++; + } +} + +void sub_810463C(struct Task *task) +{ + s16 r5 = sSlotMachine->unk14 % 20; + if (r5) + { + r5 = sub_8102D5C(task->data[4] >> 8); + task->data[4] = (u8)task->data[4] + 0x40; + } + else if (sub_8102C48(1) != sSlotMachine->unk05) + { + sub_8102D28(task->data[4] >> 8); + r5 = sSlotMachine->unk14 % 20; + task->data[4] = (u8)task->data[4] + 0x40; + } + if (r5 == 0 && sub_8102C48(1) == sSlotMachine->unk05) + { + task->data[4] = 0; + task->data[0]++; + } +} + +void sub_81046C0(struct Task *task) +{ + if (++task->data[4] >= 60) + { + StopMapMusic(); + sub_81056C0(); + sub_8105804(); + task->data[0]++; + if(sSlotMachine->unk05 == 0) + { + task->data[4] = 0xa0; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 5); + PlayFanfare(MUS_ME_ZANNEN); + } + else + { + task->data[4] = 0xc0; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 4); + gSprites[sSlotMachine->unk3F].animCmdIndex = 0; + if (sSlotMachine->pikaPower) + { + sub_8104098(); + sSlotMachine->pikaPower = 0; + } + PlayFanfare(MUS_ME_B_SMALL); + } + } +} + +void sub_8104764(struct Task *task) +{ + if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) + task->data[0]++; +} + +void sub_8104794(struct Task *task) +{ + s16 r4; + gSpriteCoordOffsetX -= 8; + task->data[1] += 8; + task->data[3] += 8; + r4 = ((task->data[1] - 8) & 0xff) >> 3; + SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); + if (task->data[3] >> 3 <= 25) + sub_8104A88(r4); + else + task->data[0]++; +} + +void sub_81047EC(struct Task *task) +{ + sSlotMachine->unk0B = 0; + sSlotMachine->unk0A = sSlotMachine->unk05; + gSpriteCoordOffsetX = 0; + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + sSlotMachine->unk1A = 8; + sub_810514C(); + sub_81054B8(); + sub_8105524(); + PlayNewMapMusic(sSlotMachine->backupMapMusic); + if (sSlotMachine->unk0A == 0) + { + DestroyTask(FindTaskIdByFunc(sub_810434C)); + } + else + { + sub_8104CAC(4); + task->data[1] = dp15_jump_random_unknown(); + task->data[2] = 0; + task->data[3] = 0; + task->data[0]++; + } +} + +void sub_8104860(struct Task *task) +{ + if (sSlotMachine->unk1A == task->data[1]) + task->data[0]++; + else if (sSlotMachine->unk1C[0] % 24 == 0 && (++task->data[2]& 0x07) == 0) + sSlotMachine->unk1A >>= 1; +} + +void sub_81048A8(struct Task *task) +{ + if (sub_8104E18()) + DestroyTask(FindTaskIdByFunc(sub_810434C)); +} + +void sub_81048CC(struct Task *task) +{ + sub_81054B8(); + sub_81056C0(); + sub_8105804(); + sub_8105854(); + gSprites[sSlotMachine->unk4E[0]].invisible = TRUE; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 5); + task->data[0]++; + task->data[4] = 4; + task->data[5] = 0; + StopMapMusic(); + PlayFanfare(MUS_ME_ZANNEN); + PlaySE(SE_W153); +} + +void sub_8104940(struct Task *task) +{ + gSpriteCoordOffsetY = task->data[4]; + SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); + if (task->data[5] & 0x01) + task->data[4] = -task->data[4]; + if ((++task->data[5] & 0x1f) == 0) + task->data[4] >>= 1; + if (task->data[4] == 0) + { + sub_81058A0(); + sub_81058C4(); + sub_8105284_(); + sub_81059E8(); + gSprites[sSlotMachine->unk4E[0]].invisible = FALSE; + task->data[0]++; + task->data[5] = 0; + } +} + +void sub_81049C8(struct Task *task) +{ + gSpriteCoordOffsetY = 0; + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + if (sub_8105ACC()) + { + task->data[0]++; + sub_8105AEC(); + } +} + +void sub_81049F8(struct Task *task) +{ + gSpriteCoordOffsetX = 0; + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + PlayNewMapMusic(sSlotMachine->backupMapMusic); + sub_810514C(); + sub_8105554(); + sub_8105524(); + sub_81059B8(); + DestroyTask(FindTaskIdByFunc(sub_810434C)); +} + +void sub_8104A40(s16 a0, s16 a1) +{ + s16 i; + + for (i = 4; i < 15; i++) + { + LoadBgTilemap(1, &sReelTimeWindowTilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); + } +} + +void sub_8104A88(s16 a0) +{ + u8 i; + + for (i = 4; i < 15; i++) + { + LoadBgTilemap(1, gUnknown_085A9898, 2, 32 * i + a0); + } +} + +void sub_8104AB8(u8 a0) +{ + u8 taskId = CreateTask(sub_8104B0C, 1); + gTasks[taskId].data[1] = a0; + sub_8104B0C(taskId); +} + +bool8 sub_8104AEC(void) +{ + if (FindTaskIdByFunc(sub_8104B0C) == 0xFF) + return TRUE; + else + return FALSE; +} + +void sub_8104B0C(u8 taskId) +{ + gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId); +} + +void sub_8104B3C(struct Task *task) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + task->data[0]++; +} + +void sub_8104B60(struct Task *task) +{ + if (!gPaletteFade.active) + task->data[0]++; +} + +void sub_8104B80(struct Task *task) +{ + sub_8104DA4(); + sub_81065DC(); + AddWindow(&gUnknown_085A7444); + PutWindowTilemap(1); + FillWindowPixelBuffer(1, 0); + task->data[0]++; +} + +void sub_812DD78(struct Task *task) +{ + AddTextPrinterParameterized3(1, 1, 2, 5, gUnknown_085A744C, 0, gText_ReelTimeHelp); + CopyWindowToVram(1, 3); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + task->data[0]++; +} + +void sub_8104BC8(struct Task *task) +{ + if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) + { + FillWindowPixelBuffer(1, 0); + ClearWindowTilemap(1); + CopyWindowToVram(1, 1); + RemoveWindow(1); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); + task->data[0]++; + } +} + +void sub_812DE14(struct Task *task) +{ + sub_812F968(); + ShowBg(3); + task->data[0]++; +} + +void sub_812DE30(struct Task *task) +{ + sub_8104CAC(task->data[1]); + task->data[0]++; +} + +void sub_8104BFC(struct Task *task) +{ + sub_810423C(sSlotMachine->pikaPower); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + task->data[0]++; +} + +void sub_8104C44(struct Task *task) +{ + DestroyTask(FindTaskIdByFunc(sub_8104B0C)); +} + +void sub_8104C5C(void) +{ + u8 i; + struct Task *task; + i = CreateTask(sub_8104E74_, 3); + sSlotMachine->unk3D = i; + task = gTasks + i; + task->data[1] = -1; + for (i = 4; i < 16; i++) + task->data[i] = MAX_SPRITES; +} + +void sub_8104CAC(u8 arg0) +{ + u8 i; + struct Task *task; + + sub_8104DA4(); + + task = gTasks + sSlotMachine->unk3D; + task->data[1] = arg0; + + for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) + { + u8 spriteId; + spriteId = sub_8105BB4( + gUnknown_083ED048[arg0][i].unk00, + gUnknown_083ED048[arg0][i].unk01, + gUnknown_083ED048[arg0][i].unk02 + ); + task->data[4 + i] = spriteId; + } +} + +void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +{ + u8 i; + struct Task *task = gTasks + sSlotMachine->unk3D; + for (i = 4; i < 16; i++) + { + if (task->data[i] == MAX_SPRITES) + { + task->data[i] = sub_8105BF8(a0, a1, a2, a3, a4); + break; + } + } +} + +void sub_8104DA4(void) +{ + u8 i; + struct Task *task = gTasks + sSlotMachine->unk3D; + if ((u16)task->data[1] != 0xFFFF) + gUnknown_083ED064[task->data[1]](); + for (i = 4; i < 16; i++) + { + if (task->data[i] != MAX_SPRITES) + { + DestroySprite(gSprites + task->data[i]); + task->data[i] = MAX_SPRITES; + } + } +} + +bool8 sub_8104E18(void) +{ + u8 i; + struct Task *task = gTasks + sSlotMachine->unk3D; + for (i = 4; i < 16; i++) + { + if (task->data[i] != MAX_SPRITES) + { + if (gSprites[task->data[i]].data[7]) + return FALSE; + } + } + return TRUE; +} + +void sub_8104E74_(u8 taskId) +{ + gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId); +} + +void nullsub_69(struct Task *task) +{ +} + +void sub_8104EA8(void) +{ + s16 i; + s16 j; + s16 x; + for (i = 0, x = 0x30; i < 3; i++, x += 0x28) + { + for (j = 0; j < 120; j += 24) + { + struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED414, x, 0, 14); + sprite->oam.priority = 3; + sprite->data[0] = i; + sprite->data[1] = j; + sprite->data[3] = -1; + } + } +} + +void sub_8104F18(struct Sprite *sprite) +{ + sprite->data[2] = sSlotMachine->unk1C[sprite->data[0]] + sprite->data[1]; + sprite->data[2] %= 120; + sprite->pos1.y = sSlotMachine->unk22[sprite->data[0]] + 28 + sprite->data[2]; + sprite->sheetTileStart = GetSpriteTileStartByTag(GetTagOfReelSymbolOnScreenAtPos(sprite->data[0], sprite->data[2] / 24)); + SetSpriteSheetFrameTileNum(sprite); +} + +void sub_8104F8C(void) +{ + s16 i; + s16 x; + + for (x = 203, i = 1; i < 10000; i *= 10, x -= 7) + sub_8104FF4(x, 23, 0, i); + for (x = 235, i = 1; i < 10000; i *= 10, x -= 7) + sub_8104FF4(x, 23, 1, i); +} + +void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +{ + struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); + sprite->oam.priority = 2; + sprite->data[0] = a2; + sprite->data[1] = a3; + sprite->data[2] = a3 * 10; + sprite->data[3] = -1; +} + +void sub_810506C(struct Sprite *sprite) +{ + u16 tag = sSlotMachine->coins; + if (sprite->data[0]) + tag = sSlotMachine->payout; + if (sprite->data[3] != tag) + { + sprite->data[3] = tag; + tag %= (u16)sprite->data[2]; + tag /= (u16)sprite->data[1]; + tag += 7; + sprite->sheetTileStart = GetSpriteTileStartByTag(tag); + SetSpriteSheetFrameTileNum(sprite); + } +} + +void sub_81050C4(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); + gSprites[spriteId].oam.priority = 3; + SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); +} -- cgit v1.2.3 From db248dada23086ed8a5fd26d7fcce52b575768d2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 15 Sep 2018 22:59:45 +0200 Subject: slot machine is decompiled --- src/slot_machine.c | 1318 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 1290 insertions(+), 28 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index 4ee4a2fe4..ec5640b91 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -30,29 +30,31 @@ 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; +extern struct SpriteFrameImage *gUnknown_0203AAF4; +extern struct SpriteFrameImage *gUnknown_0203AAF8; +extern struct SpriteFrameImage *gUnknown_0203AAFC; +extern struct SpriteFrameImage *gUnknown_0203AB00; +extern struct SpriteFrameImage *gUnknown_0203AB04; +extern struct SpriteFrameImage *gUnknown_0203AB08; +extern struct SpriteFrameImage *gUnknown_0203AB0C; +extern struct SpriteFrameImage *gUnknown_0203AB10; +extern struct SpriteFrameImage *gUnknown_0203AB14; +extern struct SpriteFrameImage *gUnknown_0203AB18; +extern struct SpriteFrameImage *gUnknown_0203AB1C; +extern struct SpriteFrameImage *gUnknown_0203AB20; +extern struct SpriteFrameImage *gUnknown_0203AB24; +extern struct SpriteFrameImage *gUnknown_0203AB28; +extern struct SpriteFrameImage *gUnknown_0203AAE4; +extern struct SpriteFrameImage *gUnknown_0203AAE8; +extern struct SpriteFrameImage *gUnknown_0203AAEC; +extern struct SpriteFrameImage *gUnknown_0203AAF0; +extern u8 *gUnknown_0203AAD4; +extern u8 *gUnknown_0203AAD8; +extern u8 *gUnknown_0203AAE0; +extern struct SpriteSheet *gUnknown_0203AB2C; +extern struct SpriteSheet *gUnknown_0203AB30; + +extern struct SpriteFrameImage *gUnknown_03001188[]; // Text extern const u8 gText_YouDontHaveThreeCoins[]; @@ -61,6 +63,9 @@ extern const u8 gText_YouveGot9999Coins[]; extern const u8 gText_YouveRunOutOfCoins[]; extern const u8 gText_ReelTimeHelp[]; +// gfx +extern const u8 gSlotMachineReelTime_Gfx[]; + enum { SLOT_MACHINE_TAG_7_RED, @@ -345,9 +350,7 @@ bool8 sub_81020C8(struct Task *task); /*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*/void sub_812F908(void); /*static*/void sub_812F958(void); -/*static*/void sub_812F7E4(void); /*static*/void sub_812F968(void); void LoadSlotMachineWheelOverlay(void); u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); @@ -359,11 +362,28 @@ u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); /*static*/extern const u8 gUnknown_083ECE3A[]; /*static*/extern const u16 gUnknown_083ECE42[]; /*static*/extern const u16 gUnknown_083ECE48[]; +extern const s16 gUnknown_083ECE7E[][2]; +extern const SpriteCallback gUnknown_083ECF0C[]; +extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; +extern const struct SubspriteTable *const gUnknown_083EDBC4[]; +extern const struct SpriteTemplate gSpriteTemplate_83ED6CC; +extern const struct SpriteTemplate gSpriteTemplate_83ED564; +extern const struct SpriteTemplate gSpriteTemplate_83ED54C; +extern const struct SpriteTemplate gSpriteTemplate_83ED534; +extern const u8 gUnknown_083ECC58[2]; // don't remove this until decompiled through gUnknown_083ECCF8 +extern const struct SpriteTemplate gSpriteTemplate_83ED51C; extern const u16 gUnknown_083ECE12[]; +extern const u16 *const gUnknown_083EDE10[]; extern const u16 gUnknown_083ECE1C[][2]; extern const u16 gUnknown_083ECE30[]; extern const u16 sSlotMatchFlags[]; extern const u16 sSlotPayouts[]; +extern const u8 *const gUnknown_083EDCE4; +extern const u8 *const gUnknown_083EDCDC; +extern const u8 sReelTimeGfx[]; +extern const struct SpriteSheet sSlotMachineSpriteSheets[]; +extern const struct SpritePalette gSlotMachineSpritePalettes[]; +extern const u16 *const gUnknown_083EDE20; extern const s16 gUnknown_083ECCF8[][2]; extern const struct BgTemplate gUnknown_085A7424[4]; extern const struct WindowTemplate gUnknown_085A7434[]; @@ -869,9 +889,9 @@ void SlotMachineSetup_4_0(void) void SlotMachineSetup_5_0(void) { - sub_812F908(); - sub_812F958(); - sub_812F7E4(); + sub_8106448(); + sub_81064B8(); + sub_81063C0(); LoadMessageBoxGfx(0, 0x200, 0xF0); LoadUserWindowBorderGfx(0, 0x214, 0xE0); PutWindowTilemap(0); @@ -3227,3 +3247,1245 @@ void sub_81050C4(void) gSprites[spriteId].oam.priority = 3; SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); } + +void sub_8105100(void) +{ + struct SpriteTemplate spriteTemplate; + u8 spriteId; + if (gUnknown_0203AAE4 == NULL) + gUnknown_0203AAE4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + + gUnknown_0203AAE4[0].data = gUnknown_0203AAD8 + (0 * 0x800); + gUnknown_0203AAE4[0].size = 0x800; + gUnknown_0203AAE4[1].data = gUnknown_0203AAD8 + (1 * 0x800); + gUnknown_0203AAE4[1].size = 0x800; + gUnknown_0203AAE4[2].data = gUnknown_0203AAD8 + (2 * 0x800); + gUnknown_0203AAE4[2].size = 0x800; + gUnknown_0203AAE4[3].data = gUnknown_0203AAD8 + (3 * 0x800); + gUnknown_0203AAE4[3].size = 0x800; + gUnknown_0203AAE4[4].data = gUnknown_0203AAD8 + (4 * 0x800); + gUnknown_0203AAE4[4].size = 0x800; + + spriteTemplate = gSpriteTemplate_83ED45C; + spriteTemplate.images = gUnknown_0203AAE4; + spriteId = CreateSprite(&spriteTemplate, 280, 80, 1); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].coordOffsetEnabled = TRUE; + sSlotMachine->unk3F = spriteId; +} + +void sub_810514C(void) +{ + DestroySprite(gSprites + sSlotMachine->unk3F); + if (gUnknown_0203AAE4 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAE4); +} + +void sub_8105170(struct Sprite *sprite) +{ + sprite->pos2.y = sprite->pos2.x = 0; + if (sprite->animNum == 4) + { + sprite->pos2.y = sprite->pos2.x = 8; + if ((sprite->animCmdIndex != 0 && sprite->animDelayCounter != 0) || (sprite->animCmdIndex == 0 && sprite->animDelayCounter == 0)) + sprite->pos2.y = -8; + } +} + +void sub_81051C0(void) +{ + struct SpriteTemplate spriteTemplate; + u8 spriteId; + struct Sprite *sprite; + + if (gUnknown_0203AAE8 == NULL) + gUnknown_0203AAE8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + + gUnknown_0203AAE8[0].data = gUnknown_0203AAD8 + 0x2800; + gUnknown_0203AAE8[0].size = 0x300; + spriteTemplate = gSpriteTemplate_83ED474; + spriteTemplate.images = gUnknown_0203AAE8; + spriteId = CreateSprite(&spriteTemplate, 368, 52, 7); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + SetSubspriteTables(sprite, gSubspriteTables_83ED73C); + sSlotMachine->unk49[0] = spriteId; + + if (gUnknown_0203AAEC == NULL) + gUnknown_0203AAEC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + + gUnknown_0203AAEC[0].data = gUnknown_0203AAD8 + 0x2800 + 0x300; + gUnknown_0203AAEC[0].size = 0x500; + spriteTemplate = gSpriteTemplate_83ED48C; + spriteTemplate.images = gUnknown_0203AAEC; + spriteId = CreateSprite(&spriteTemplate, 368, 84, 7); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + SetSubspriteTables(sprite, gSubspriteTables_83ED75C); + sSlotMachine->unk49[1] = spriteId; +} + +void sub_8105284_(void) +{ + struct SpriteTemplate spriteTemplate; + u8 spriteId; + struct Sprite *sprite; + + if (gUnknown_0203AAF0 == NULL) + gUnknown_0203AAF0 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + + gUnknown_0203AAF0[0].data = gUnknown_0203AAD8 + 0x3000; + gUnknown_0203AAF0[0].size = 0x600; + spriteTemplate = gSpriteTemplate_83ED4A4; + spriteTemplate.images = gUnknown_0203AAF0; + spriteId = CreateSprite(&spriteTemplate, 0xa8 - gSpriteCoordOffsetX, 0x50, 7); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + SetSubspriteTables(sprite, gSubspriteTables_83ED78C); + sSlotMachine->unk42 = spriteId; +} + +void sub_81052EC(void) +{ + u8 i; + s16 r5; + for (i = 0, r5 = 0; i < 3; i++, r5 += 20) + { + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4BC, 0x170, 0, 10); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + sprite->data[7] = r5; + sSlotMachine->unk4B[i] = spriteId; + } +} + +void sub_810535C(struct Sprite *sprite) +{ + s16 r0 = (u16)(sSlotMachine->unk14 + sprite->data[7]); + r0 %= 40; + sprite->pos1.y = r0 + 59; + StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20)); +} + +void sub_81053A0(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = 1; + SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); + sSlotMachine->unk4E[0] = spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x120, 0x68, 4); + sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = 1; + SetSubspriteTables(sprite, gSubspriteTables_83ED7B4); + sSlotMachine->unk4E[1] = spriteId; +} + +void sub_810545C(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->coordOffsetEnabled = TRUE; + sprite->oam.priority = 1; + SetSubspriteTables(sprite, gSubspriteTables_83ED7D4); + sSlotMachine->unk40 = spriteId; +} + +void sub_81054B8(void) +{ + u8 i; + + DestroySprite(&gSprites[sSlotMachine->unk40]); + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk49[i]]); + + if (gUnknown_0203AAE8 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAE8); + if (gUnknown_0203AAEC != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAEC); + + for (i = 0; i < 3; i++) + DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); +} + +void sub_8105524(void) +{ + u8 i; + + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk4E[i]]); +} + +void sub_8105554(void) +{ + DestroySprite(&gSprites[sSlotMachine->unk42]); + if (gUnknown_0203AAF0 != NULL) + FREE_AND_SET_NULL(gUnknown_0203AAF0); +} + +void sub_8105578(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->hFlip = TRUE; + sSlotMachine->unk50[0] = spriteId; + sprite->data[0] = 8; + sprite->data[1] = -1; + sprite->data[2] = -1; + sprite->data[7] = 0x20; + + spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0xb8, 0x20, 5); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sSlotMachine->unk50[1] = spriteId; + sprite->data[1] = 1; + sprite->data[2] = -1; + sprite->data[7] = 0x20; +} + +void sub_810562C(struct Sprite *sprite) +{ + if (sprite->data[0] != 0) + { + sprite->data[0]--; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->invisible = TRUE; + } + else + { + sprite->invisible = FALSE; + sprite->pos2.x += sprite->data[1]; + sprite->pos2.y += sprite->data[2]; + if (++sprite->data[3] >= 8) + { + sprite->data[0] = sprite->data[7]; + sprite->data[3] = 0; + } + } +} + +void sub_8105688(s16 a0) +{ + gSprites[sSlotMachine->unk50[0]].data[7] = a0; + gSprites[sSlotMachine->unk50[1]].data[7] = a0; +} + +void sub_81056C0(void) +{ + u8 i; + + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk50[i]]); +} + +void sub_81056F0(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].data[0] = 1; + gSprites[spriteId].data[5] = 0; + gSprites[spriteId].data[6] = 16; + gSprites[spriteId].data[7] = 8; + sSlotMachine->unk52[0] = spriteId; + + spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x68, 0x50, 3); + gSprites[spriteId].oam.priority = 1; + gSprites[spriteId].hFlip = TRUE; + sSlotMachine->unk52[1] = spriteId; +} + +void sub_8105784(struct Sprite *sprite) +{ + u8 sp[] = {16, 0}; + if (sprite->data[0] && --sprite->data[6] <= 0) + { + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, sp[sprite->data[5]], sp[sprite->data[5]], sp[sprite->data[5]]); + ++sprite->data[5]; + sprite->data[5] &= 1; + sprite->data[6] = sprite->data[7]; + } +} + +void sub_81057E8(s16 a0) +{ + gSprites[sSlotMachine->unk52[0]].data[7] = a0; +} + +void sub_8105804(void) +{ + u8 i; + MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); + for (i = 0; i < 2; i++) + DestroySprite(&gSprites[sSlotMachine->unk52[i]]); +} + +void sub_8105854(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); + gSprites[spriteId].oam.priority = 1; + sSlotMachine->unk41 = spriteId; +} + +void sub_8105894(struct Sprite *sprite) +{ + sprite->pos2.y = gSpriteCoordOffsetY; +} + +void sub_81058A0(void) +{ + DestroySprite(&gSprites[sSlotMachine->unk41]); +} + +void sub_81058C4(void) +{ + u8 i; + u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; + for (i = 0; i < 4; i++) + { + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED54C, 0x50 - gSpriteCoordOffsetX, 0x44, 0); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->coordOffsetEnabled = TRUE; + sprite->data[0] = sp[i]; + sSlotMachine->unk54[i] = spriteId; + } +} + +void sub_810594C(struct Sprite *sprite) +{ + sprite->data[0] -= 2; + sprite->data[0] &= 0xff; + sprite->pos2.x = Cos(sprite->data[0], 20); + sprite->pos2.y = Sin(sprite->data[0], 6); + sprite->subpriority = 0; + if (sprite->data[0] >= 0x80) + { + sprite->subpriority = 2; + } + if (++sprite->data[1] >= 16) + { + sprite->hFlip ^= 1; + sprite->data[1] = 0; + } +} + +void sub_81059B8(void) +{ + u8 i; + for (i = 0; i < 4; i++) + { + DestroySprite(&gSprites[sSlotMachine->unk54[i]]); + } +} + +void sub_81059E8(void) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 1; + sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; + InitSpriteAffineAnim(sprite); + sSlotMachine->unk43 = spriteId; +} + +void sub_8105A38(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + if (sprite->affineAnimEnded) + sprite->data[0]++; + } + else if (sprite->data[0] == 1) + { + sprite->invisible ^= 1; + if (++sprite->data[2] >= 24) + { + sprite->data[0]++; + sprite->data[2] = 0; + } + } + else + { + sprite->invisible = TRUE; + if (++sprite->data[2] >= 16) + sprite->data[7] = 1; + } + sprite->data[1] &= 0xff; + sprite->data[1] += 16; + sprite->pos2.y -= (sprite->data[1] >> 8); +} + +u8 sub_8105ACC(void) +{ + return gSprites[sSlotMachine->unk43].data[7]; +} + +void sub_8105AEC(void) +{ + struct Sprite *sprite = &gSprites[sSlotMachine->unk43]; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); +} + +u8 sub_8105B1C(s16 x, s16 y) +{ + u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); + struct Sprite *sprite = &gSprites[spriteId]; + sprite->oam.priority = 2; + sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE; + InitSpriteAffineAnim(sprite); + return spriteId; +} + +void sub_8105B70(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + sprite->data[7] = 1; +} + +void sub_8105B88(u8 spriteId) +{ + struct Sprite *sprite = &gSprites[spriteId]; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); +} + +u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) +{ + return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); +} + +u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +{ + struct SpriteTemplate spriteTemplate; + u8 spriteId; + struct Sprite *sprite; + + spriteTemplate = *gUnknown_083EDB5C[templateIdx]; + spriteTemplate.images = gUnknown_03001188[templateIdx]; + spriteId = CreateSprite(&spriteTemplate, x, y, 16); + sprite = &gSprites[spriteId]; + sprite->oam.priority = 3; + sprite->callback = callback; + sprite->data[6] = a4; + sprite->data[7] = 1; + if (gUnknown_083EDBC4[templateIdx]) + SetSubspriteTables(sprite, gUnknown_083EDBC4[templateIdx]); + return spriteId; +} + +void sub_8105C64(struct Sprite *sprite) +{ + sprite->data[7] = 0; +} + +void sub_8105C6C(struct Sprite *sprite) +{ + s16 sp0[] = {4, -4, 4, -4}; + s16 sp8[] = {4, 4, -4, -4}; + + if (sprite->data[1]++ >= 16) + { + sprite->subspriteTableNum ^= 1; + sprite->data[1] = 0; + } + sprite->pos2.x = 0; + sprite->pos2.y = 0; + if (sprite->subspriteTableNum != 0) + { + sprite->pos2.x = sp0[sprite->data[6]]; + sprite->pos2.y = sp8[sprite->data[6]]; + } +} + +void sub_8105CF0(struct Sprite *sprite) +{ + sprite->hFlip = TRUE; + sub_8105C6C(sprite); +} + +void sub_8105D08(struct Sprite *sprite) +{ + sprite->vFlip = TRUE; + sub_8105C6C(sprite); +} + +void sub_8105D20(struct Sprite *sprite) +{ + sprite->hFlip = TRUE; + sprite->vFlip = TRUE; + sub_8105C6C(sprite); +} + +void sub_8105D3C(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0xd0) + { + sprite->pos1.x = 0xd0; + sprite->data[0]++; + } + break; + case 1: + if (++sprite->data[1] > 90) + sprite->data[0]++; + break; + case 2: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0x110) + sprite->data[0]++; + break; + case 3: + sprite->data[7] = 0; + break; + } +} + +void sub_8105DA4(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->pos1.x -= 4; + if (sprite->pos1.x <= 0xd0) + { + sprite->pos1.x = 0xd0; + sprite->data[0]++; + } + break; + case 1: + if (++sprite->data[1] > 90) + sprite->data[0]++; + break; + case 2: + sprite->pos1.x -= 4; + if (sprite->pos1.x <= 0x90) + sprite->data[0]++; + break; + case 3: + sprite->data[7] = 0; + break; + } +} + +void sub_8105E08(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + StartSpriteAnim(sprite, sSlotMachine->unk0A - 1); + sprite->data[0]++; + // fallthrough + case 1: + if (++sprite->data[1] >= 4) + { + sprite->data[0]++; + sprite->data[1] = 0; + } + break; + case 2: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0xd0) + { + sprite->pos1.x = 0xd0; + sprite->data[0]++; + } + break; + case 3: + if (++sprite->data[1] > 90) + sprite->data[0]++; + break; + case 4: + sprite->pos1.x += 4; + if (sprite->pos1.x >= 0xf8) + sprite->data[0]++; + break; + case 5: + sprite->data[7] = 0; + break; + } +} + +void sub_8105EB4(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->animPaused = TRUE; + sprite->data[0]++; + // fallthrough + case 1: + sprite->pos1.y += 8; + if (sprite->pos1.y >= 0x70) + { + sprite->pos1.y = 0x70; + sprite->data[1] = 16; + sprite->data[0]++; + } + break; + case 2: + if (sprite->data[2] == 0) + { + sprite->pos1.y -= sprite->data[1]; + sprite->data[1] = -sprite->data[1]; + if (++sprite->data[3] >= 2) + { + sprite->data[1] >>= 2; + sprite->data[3] = 0; + if (sprite->data[1] == 0) + { + sprite->data[0]++; + sprite->data[7] = 0; + sprite->animPaused = FALSE; + } + } + } + sprite->data[2]++; + sprite->data[2] &= 0x07; + break; + } +} + +void sub_8105F54(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + if (++sprite->data[1] > 8) + sprite->data[0]++; + break; + case 1: + sprite->pos1.y += 2; + if (sprite->pos1.y >= 0x30) + { + sprite->pos1.y = 0x30; + sprite->data[0]++; + sprite->data[7] = 0; + } + break; + } +} + +void sub_8105F9C(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->invisible = TRUE; + if (++sprite->data[1] > 0x20) + { + sprite->data[0]++; + sprite->data[1] = 5; + sprite->oam.mosaic = TRUE; + sprite->invisible = FALSE; + StartSpriteAnim(sprite, 1); + SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->data[1] << 4) | sprite->data[1]) << 8); + } + break; + case 1: + sprite->data[1] -= (sprite->data[2] >> 8); + if (sprite->data[1] < 0) + sprite->data[1] = 0; + SetGpuReg(REG_OFFSET_MOSAIC, ((sprite->data[1] << 4) | sprite->data[1]) << 8); + sprite->data[2] &= 0xff; + sprite->data[2] += 0x80; + if (sprite->data[1] == 0) + { + sprite->data[0]++; + sprite->data[7] = 0; + sprite->oam.mosaic = FALSE; + StartSpriteAnim(sprite, 0); + } + break; + } +} + +void sub_8106058(struct Sprite *sprite) +{ + if (sprite->data[1] < 3) + { + LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + if (++sprite->data[2] >= 4) + { + sprite->data[1]++; + sprite->data[2] = 0; + } + } + else + { + LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); + if (++sprite->data[2] >= 25) + { + sprite->data[1] = 0; + sprite->data[2] = 0; + } + } + StartSpriteAnimIfDifferent(sprite, 1); + sprite->data[7] = 0; +} + +void sub_81060FC(struct Sprite *sprite) +{ + s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; + s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; + s16 sp20[] = {16, 12, 16, 0, 0, 4, 8, 8}; + + switch (sprite->data[0]) + { + case 0: + sprite->pos2.x = sp00[sprite->data[6]]; + sprite->pos2.y = sp10[sprite->data[6]]; + sprite->data[1] = sp20[sprite->data[6]]; + sprite->data[0]++; + // fallthrough + case 1: + if (sprite->data[1]-- == 0) + sprite->data[0]++; + break; + case 2: + if (sprite->pos2.x > 0) + sprite->pos2.x -= 4; + else if (sprite->pos2.x < 0) + sprite->pos2.x += 4; + + if (sprite->pos2.y > 0) + sprite->pos2.y -= 4; + else if (sprite->pos2.y < 0) + sprite->pos2.y += 4; + + if (sprite->pos2.x == 0 && sprite->pos2.y == 0) + sprite->data[0]++; + break; + } +} + +void sub_81061C8(struct Sprite *sprite) +{ + s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; + + if (sprite->data[0] == 0) + { + sprite->data[0]++; + sprite->data[1] = 12; + } + sprite->pos2.x = Cos(sp0[sprite->data[6]], sprite->data[1]); + sprite->pos2.y = Sin(sp0[sprite->data[6]], sprite->data[1]); + if (sprite->data[1] != 0) + sprite->data[1]--; +} + +void sub_8106230(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sSlotMachine->winIn = 0x2f; + sSlotMachine->winOut = 0x3f; + sSlotMachine->win0v = 0x2088; + sprite->invisible = TRUE; + sprite->data[0]++; + // fallthrough + case 1: + sprite->data[1] += 2; + sprite->data[2] = sprite->data[1] + 0xb0; + sprite->data[3] = 0xf0 - sprite->data[1]; + if (sprite->data[2] > 0xd0) + sprite->data[2] = 0xd0; + if (sprite->data[3] < 0xd0) + sprite->data[3] = 0xd0; + sSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; + if (sprite->data[1] > 0x33) + { + sprite->data[0]++; + sSlotMachine->winIn = 0x3f; + } + break; + case 2: + if (sSlotMachine->bet == 0) + break; + sub_8104D30(5, SpriteCallbackDummy, 0xd0, 0x74, 0); + sSlotMachine->win0h = 0xc0e0; + sSlotMachine->win0v = 0x6880; + sSlotMachine->winIn = 0x2f; + sprite->data[0]++; + sprite->data[1] = 0; + // fallthrough + case 3: + sprite->data[1] += 2; + sprite->data[2] = sprite->data[1] + 0xc0; + sprite->data[3] = 0xe0 - sprite->data[1]; + if (sprite->data[2] > 0xd0) + sprite->data[2] = 0xd0; + if (sprite->data[3] < 0xd0) + sprite->data[3] = 0xd0; + sSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3]; + if (sprite->data[1] > 0x0f) + { + sprite->data[0]++; + sSlotMachine->winIn = 0x3f; + } + break; + } +} + +void nullsub_70(void) +{ +} + +void sub_8106364(void) +{ + SetGpuReg(REG_OFFSET_MOSAIC, 0); +} + +void sub_8106370(void) +{ + LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); +} + +void sub_810639C(void) +{ + sSlotMachine->win0h = 0xf0; + sSlotMachine->win0v = 0xa0; + sSlotMachine->winIn = 0x3f; + sSlotMachine->winOut = 0x3f; +} + +void sub_81063C0(void) +{ + u8 i; + + sub_8106404(); + gUnknown_0203AAD4 = Alloc(0x3200); + LZDecompressWram(gSlotMachineReelTime_Gfx, gUnknown_0203AAD4); + gUnknown_0203AAD8 = Alloc(0x3600); + LZDecompressWram(sReelTimeGfx, gUnknown_0203AAD8); + gUnknown_0203AB30 = AllocZeroed(sizeof(struct SpriteSheet) * 22); + for (i = 0; i < 22; i++) + { + gUnknown_0203AB30[i].data = sSlotMachineSpriteSheets[i].data; + gUnknown_0203AB30[i].size = sSlotMachineSpriteSheets[i].size; + gUnknown_0203AB30[i].tag = sSlotMachineSpriteSheets[i].tag; + } + gUnknown_0203AB30[17].data = gUnknown_0203AAD4 + 0xA00; + gUnknown_0203AB30[18].data = gUnknown_0203AAD4 + 0x1400; + gUnknown_0203AB30[19].data = gUnknown_0203AAD4 + 0x1600; + gUnknown_0203AB30[20].data = gUnknown_0203AAD4 + 0x1900; + LoadSpriteSheets(gUnknown_0203AB30); + LoadSpritePalettes(gSlotMachineSpritePalettes); +} + +void sub_8106404(void) +{ + u8 *dest; + u8 i, j; + + gUnknown_0203AB2C = AllocZeroed(sizeof(struct SpriteSheet)); + gUnknown_0203AAE0 = AllocZeroed(0x2000); + dest = gUnknown_0203AAE0; + for (i = 0; i < 0x40; i++) + { + for (j = 0; j < 0x20; j++, dest++) + *dest = gUnknown_083EDCDC[j]; + } + gUnknown_0203AB2C->data = gUnknown_0203AAE0; + gUnknown_0203AB2C->size = 0x800; + gUnknown_0203AB2C->tag = 0x11; + LoadSpriteSheet(gUnknown_0203AB2C); +} + +extern const u8 gSlotMachineMenu_Gfx[]; +extern const u8 gSlotMachineMenu_Tilemap[]; +extern const u8 gUnknown_08DCEC70[]; +extern const u16 gSlotMachineMenu_Pal[]; + +void sub_8106448(void) +{ + gUnknown_0203AAC8 = Alloc(0x2200); + LZDecompressWram(gSlotMachineMenu_Gfx, gUnknown_0203AAC8); + LoadBgTiles(2, gUnknown_0203AAC8, 0x2200, 0); + LoadPalette(gSlotMachineMenu_Pal, 0, 160); + LoadPalette(gPalette_83EDE24, 208, 32); +} + +void sub_81064B8(void) +{ + sub_812F968(); + LoadSlotMachineWheelOverlay(); +} + +void sub_812F968(void) +{ + LoadBgTilemap(2, gSlotMachineMenu_Tilemap, 0x500, 0); +} + +void LoadSlotMachineWheelOverlay(void) +{ + s16 x, y, dx; + + for (x = 4; x < 18; x += 5) + { + for (dx = 0; dx < 4; dx++) + { + LoadBgTilemap(3, gUnknown_0203AAD0, 2, x + dx + 5 * 32); + LoadBgTilemap(3, gUnknown_0203AAD0 + 1, 2, x + dx + 13 * 32); + LoadBgTilemap(3, gUnknown_0203AAD0 + 2, 2, x + dx + 6 * 32); + LoadBgTilemap(3, gUnknown_0203AAD0 + 3, 2, x + dx + 12 * 32); + } + + LoadBgTilemap(3, gUnknown_0203AAD0 + 4, 2, x + 6 * 32); + LoadBgTilemap(3, gUnknown_0203AAD0 + 5, 2, x + 12 * 32); + + for (y = 7; y <= 11; y++) + LoadBgTilemap(3, gUnknown_0203AAD0 + 6, 2, x + y * 32); + } +} + +void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) +{ + gUnknown_0203AADC[0] = arg1; + gUnknown_0203AADC[1] = arg2; + gUnknown_0203AADC[2] = arg3; + gUnknown_0203AADC[3] = arg4; + + LoadBgTilemap(2, gUnknown_0203AADC, 2, 15 * 32 + arg0); + LoadBgTilemap(2, gUnknown_0203AADC + 1, 2, 15 * 32 + 1 + arg0); + LoadBgTilemap(2, gUnknown_0203AADC + 2, 2, 16 * 32 + arg0); + LoadBgTilemap(2, gUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); +} + +void sub_81065DC(void) +{ + LoadBgTilemap(2, gUnknown_08DCEC70, 0x500, 0); + HideBg(3); +} + +void SlotMachineSetup_9_0(void) +{ + gUnknown_03001188[0] = gUnknown_0203AAF4; + gUnknown_03001188[1] = gUnknown_0203AAF8; + gUnknown_03001188[2] = gUnknown_0203AAFC; + gUnknown_03001188[3] = gUnknown_0203AB04; + gUnknown_03001188[4] = gUnknown_0203AB08; + gUnknown_03001188[5] = gUnknown_0203AB18; + gUnknown_03001188[6] = gUnknown_0203AB1C; + gUnknown_03001188[7] = gUnknown_0203AB20; + gUnknown_03001188[8] = gUnknown_0203AB24; + gUnknown_03001188[9] = gUnknown_0203AB28; + gUnknown_03001188[10] = gUnknown_0203AB00; + gUnknown_03001188[11] = gUnknown_0203AB00; + gUnknown_03001188[12] = gUnknown_0203AB00; + gUnknown_03001188[13] = gUnknown_0203AB00; + gUnknown_03001188[14] = gUnknown_0203AB0C; + gUnknown_03001188[15] = gUnknown_0203AB0C; + gUnknown_03001188[16] = gUnknown_0203AB0C; + gUnknown_03001188[17] = gUnknown_0203AB0C; + gUnknown_03001188[18] = gUnknown_0203AB0C; + gUnknown_03001188[19] = gUnknown_0203AB10; + gUnknown_03001188[20] = gUnknown_0203AB10; + gUnknown_03001188[21] = gUnknown_0203AB10; + gUnknown_03001188[22] = gUnknown_0203AB14; + gUnknown_03001188[23] = gUnknown_0203AB14; + gUnknown_03001188[24] = gUnknown_0203AB14; + gUnknown_03001188[25] = NULL; +} + +void SlotMachineSetup_8_0(void) +{ + gUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; + gUnknown_0203AAF4[0].size = 0x600; + + gUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AAF8[0].data = gUnknown_0203AAD4 + 0x600; + gUnknown_0203AAF8[0].size = 0x200; + + gUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AAFC[0].data = gUnknown_0203AAD4 + 0x800; + gUnknown_0203AAFC[0].size = 0x200; + + gUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB00[0].data = gUnknown_0203AAD4 + 0xA00; + gUnknown_0203AB00[0].size = 0x200; + + gUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB04[0].data = gUnknown_0203AAD4 + 0xC00; + gUnknown_0203AB04[0].size = 0x300; + + gUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB08[0].data = gUnknown_0203AAD4 + 0x1000; + gUnknown_0203AB08[0].size = 0x400; + + gUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB0C[0].data = gUnknown_0203AAD4 + 0x1400; + gUnknown_0203AB0C[0].size = 0x200; + + gUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB10[0].data = gUnknown_0203AAD4 + 0x1600; + gUnknown_0203AB10[0].size = 0x300; + + gUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB14[0].data = gUnknown_0203AAD4 + 0x1900; + gUnknown_0203AB14[0].size = 0x300; + + gUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + gUnknown_0203AB18[0].data = gUnknown_0203AAD4 + 0x1C00; + gUnknown_0203AB18[0].size = 0x200; + gUnknown_0203AB18[1].data = gUnknown_0203AAD4 + 0x1E00; + gUnknown_0203AB18[1].size = 0x200; + + gUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + gUnknown_0203AB1C[0].data = gUnknown_0203AAD4 + 0x2000; + gUnknown_0203AB1C[0].size = 640; + + gUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + gUnknown_0203AB20[0].data = gUnknown_0203AAD4 + 0x2280; + gUnknown_0203AB20[0].size = 0x80; + gUnknown_0203AB20[1].data = gUnknown_0203AAD4 + 0x2300; + gUnknown_0203AB20[1].size = 0x80; + gUnknown_0203AB20[2].data = gUnknown_0203AAD4 + 0x2380; + gUnknown_0203AB20[2].size = 0x80; + gUnknown_0203AB20[3].data = gUnknown_0203AAD4 + 0x2400; + gUnknown_0203AB20[3].size = 0x80; + gUnknown_0203AB20[4].data = gUnknown_0203AAD4 + 0x2480; + gUnknown_0203AB20[4].size = 0x80; + + gUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + gUnknown_0203AB24[0].data = gUnknown_0203AAD4 + 0x2600; + gUnknown_0203AB24[0].size = 0x480; + gUnknown_0203AB24[1].data = gUnknown_0203AAD4 + 10880; + gUnknown_0203AB24[1].size = 0x480; + + gUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + gUnknown_0203AB28[0].data = gUnknown_0203AAD4 + 0x2F00; + gUnknown_0203AB28[0].size = 0x180; + gUnknown_0203AB28[1].data = gUnknown_0203AAD4 + 0x3080; + gUnknown_0203AB28[1].size = 0x180; +} + +const u8 sReelSymbols[][21] = +{ + { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY + }, + { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_CHERRY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_CHERRY + }, + { + SLOT_MACHINE_TAG_7_RED, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_7_BLUE, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_AZURILL, + SLOT_MACHINE_TAG_POWER, + SLOT_MACHINE_TAG_REPLAY, + SLOT_MACHINE_TAG_LOTAD, + SLOT_MACHINE_TAG_CHERRY + }, +}; + +const u8 gUnknown_083ECCF1[] = { + 1, 0, 5, 4, 3, 2 +}; + +const s16 gUnknown_083ECCF8[][2] = { + {0, 6}, + {0, 10}, + {0, 2} +}; + +const u8 gUnknown_083ECD04[][3] = { + {1, 1, 12}, + {1, 1, 14}, + {2, 2, 14}, + {2, 2, 14}, + {2, 3, 16}, + {3, 3, 16} +}; + +const u8 gUnknown_083ECD16[][6] = { + {25, 25, 30, 40, 40, 50}, + {25, 25, 30, 30, 35, 35}, + {25, 25, 30, 25, 25, 30} +}; + +const u8 gUnknown_083ECD28[][6] = { + {20, 25, 25, 20, 25, 25}, + {12, 15, 15, 18, 19, 22}, + {25, 25, 25, 30, 30, 40}, + {25, 25, 20, 20, 15, 15}, + {40, 40, 35, 35, 40, 40} +}; + +const u8 gUnknown_083ECD46[][17] = { + {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, + { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, + { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, + { 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 45, 45, 45, 100}, + { 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 100}, + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} +}; + +const u8 gUnknown_083ECDAC[][17] = { + { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, + { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, + { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, + { 2, 2, 2, 3, 3, 3, 3, 30, 30, 30, 30, 30, 30, 100, 100, 100, 50}, + { 1, 1, 1, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 40, 40, 40, 100}, + { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} +}; + +const u16 gUnknown_083ECE12[] = { + 0x80, 0xaf, 0xc8, 0xe1, 0x100 +}; + +const u16 gUnknown_083ECE1C[][2] = { + {10, 5}, + {10, 10}, + {10, 15}, + {10, 25}, + {10, 35} +}; + +const u16 gUnknown_083ECE30[] = { + 0, 5, 10, 15, 20 +}; + +const u8 gUnknown_083ECE3A[] = { + 6, 4, 3, 2, 5, 0, 0, 0 +}; + +const u16 gUnknown_083ECE42[] = { + 0x80, 0x20, 0x40 +}; + +const u16 gUnknown_083ECE48[] = { + 0x10, 0x08, 0x04, 0x02, 0x01 +}; + +const u8 sSym2Match[] = { + SLOT_MACHINE_MATCHED_777_RED, + SLOT_MACHINE_MATCHED_777_BLUE, + SLOT_MACHINE_MATCHED_AZURILL, + SLOT_MACHINE_MATCHED_LOTAD, + SLOT_MACHINE_MATCHED_1CHERRY, + SLOT_MACHINE_MATCHED_POWER, + SLOT_MACHINE_MATCHED_REPLAY +}; + +const u16 sSlotMatchFlags[] = { + 1 << SLOT_MACHINE_MATCHED_1CHERRY, + 1 << SLOT_MACHINE_MATCHED_2CHERRY, + 1 << SLOT_MACHINE_MATCHED_REPLAY, + 1 << SLOT_MACHINE_MATCHED_LOTAD, + 1 << SLOT_MACHINE_MATCHED_AZURILL, + 1 << SLOT_MACHINE_MATCHED_POWER, + 1 << SLOT_MACHINE_MATCHED_777_MIXED, + 1 << SLOT_MACHINE_MATCHED_777_RED, + 1 << SLOT_MACHINE_MATCHED_777_BLUE +}; + +const u16 sSlotPayouts[] = { + 2, 4, 0, 6, 12, 3, 90, 300, 300 +}; + +const s16 gUnknown_083ECE7E[][2] = { + { 0xd0, 0x38}, + { 0xb8, 0x00}, + { 0xc8, 0x08}, + { 0xd8, 0x10}, + { 0xe8, 0x18}, + { 0xd0, 0x48}, + { 0xd0, 0x08}, + { 0xd0, 0x40}, + { 0xd0, 0x38}, + { 0xc0, 0x58}, + { 0xe0, 0x58}, + { 0xc0, 0x78}, + { 0xe0, 0x78}, + { 0x90, 0x38}, + {0x110, 0x58}, + { 0xa8, 0x70}, + { 0xd0, 0x54}, + { 0xd0, 0x70}, + { 0xbc, 0x34}, + { 0xd0, 0x34}, + { 0xe4, 0x34}, + { 0xb8, 0x48}, + { 0xc4, 0x48}, + { 0xd0, 0x48}, + { 0xdc, 0x48}, + { 0xe8, 0x48}, + { 0xbc, 0x34}, + { 0xd0, 0x34}, + { 0xe4, 0x34}, + { 0xb8, 0x48}, + { 0xc4, 0x48}, + { 0xd0, 0x48}, + { 0xdc, 0x48}, + { 0xe8, 0x48}, + { 0x00, 0x00} +}; -- cgit v1.2.3 From 4d2637883a55d916badb0b7b6107da5b9145b529 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 15 Sep 2018 23:19:37 +0200 Subject: Slot machine is decompiled. --- src/slot_machine.c | 1109 +++++++++++++++++++++++++++++----------------------- 1 file changed, 617 insertions(+), 492 deletions(-) (limited to 'src') diff --git a/src/slot_machine.c b/src/slot_machine.c index ec5640b91..ef52b7171 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -26,35 +26,6 @@ #include "window.h" extern u8 gOamLimit; -extern u16 *gUnknown_0203AAC8; -extern u16 *gUnknown_0203AACC; -extern u16 *gUnknown_0203AAD0; -extern u16 *gUnknown_0203AADC; -extern struct SpriteFrameImage *gUnknown_0203AAF4; -extern struct SpriteFrameImage *gUnknown_0203AAF8; -extern struct SpriteFrameImage *gUnknown_0203AAFC; -extern struct SpriteFrameImage *gUnknown_0203AB00; -extern struct SpriteFrameImage *gUnknown_0203AB04; -extern struct SpriteFrameImage *gUnknown_0203AB08; -extern struct SpriteFrameImage *gUnknown_0203AB0C; -extern struct SpriteFrameImage *gUnknown_0203AB10; -extern struct SpriteFrameImage *gUnknown_0203AB14; -extern struct SpriteFrameImage *gUnknown_0203AB18; -extern struct SpriteFrameImage *gUnknown_0203AB1C; -extern struct SpriteFrameImage *gUnknown_0203AB20; -extern struct SpriteFrameImage *gUnknown_0203AB24; -extern struct SpriteFrameImage *gUnknown_0203AB28; -extern struct SpriteFrameImage *gUnknown_0203AAE4; -extern struct SpriteFrameImage *gUnknown_0203AAE8; -extern struct SpriteFrameImage *gUnknown_0203AAEC; -extern struct SpriteFrameImage *gUnknown_0203AAF0; -extern u8 *gUnknown_0203AAD4; -extern u8 *gUnknown_0203AAD8; -extern u8 *gUnknown_0203AAE0; -extern struct SpriteSheet *gUnknown_0203AB2C; -extern struct SpriteSheet *gUnknown_0203AB30; - -extern struct SpriteFrameImage *gUnknown_03001188[]; // Text extern const u8 gText_YouDontHaveThreeCoins[]; @@ -140,8 +111,6 @@ struct SlotMachineEwramStruct /*0x64*/ MainCallback prevMainCb; }; -extern struct SlotMachineEwramStruct *sSlotMachine; - struct UnkStruct1 { /*0x00*/ u8 unk00; @@ -151,217 +120,250 @@ struct UnkStruct1 #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_812D394(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_812DD78(struct Task *task); -/*static*/void sub_8104BFC(struct Task *task); -/*static*/void sub_812DE14(struct Task *task); -/*static*/void sub_812DE30(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*/void sub_812F958(void); -/*static*/void sub_812F968(void); -void LoadSlotMachineWheelOverlay(void); -u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); +/*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); +/*static */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_812D394(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_812DD78(struct Task *task); +/*static */void sub_8104BFC(struct Task *task); +/*static */void sub_812DE14(struct Task *task); +/*static */void sub_812DE30(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 */void sub_812F958(void); +/*static */void sub_812F968(void); +/*static */void LoadSlotMachineWheelOverlay(void); +/*static */u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); + +// Ewram variables +static EWRAM_DATA u16 *gUnknown_0203AAC8 = NULL; +static EWRAM_DATA u16 *gUnknown_0203AACC = NULL; +static EWRAM_DATA u16 *gUnknown_0203AAD0 = NULL; +static EWRAM_DATA u8 *gUnknown_0203AAD4 = NULL; +static EWRAM_DATA u8 *gUnknown_0203AAD8 = NULL; +static EWRAM_DATA u16 *gUnknown_0203AADC = NULL; +static EWRAM_DATA u8 *gUnknown_0203AAE0 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAE4 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAE8 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAEC = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF0 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF4 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF8 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAFC = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB00 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB04 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB08 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB0C = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB10 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB14 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB18 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB1C = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB20 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB24 = NULL; +static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB28 = NULL; +static EWRAM_DATA struct SpriteSheet *gUnknown_0203AB2C = NULL; +static EWRAM_DATA struct SpriteSheet *gUnknown_0203AB30 = NULL; +static EWRAM_DATA struct SlotMachineEwramStruct *sSlotMachine = NULL; + +// IWRAM bss +static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; // Const rom data. -/*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[]; +extern const struct UnkStruct1 *const gUnknown_083ED048[]; +extern const u16 gPalette_83EDE24[]; +extern const u8 gUnknown_083ECD04[][3]; +extern const u8 gUnknown_083ECE3A[]; +extern const u16 gUnknown_083ECE42[]; +extern const u16 gUnknown_083ECE48[]; extern const s16 gUnknown_083ECE7E[][2]; extern const SpriteCallback gUnknown_083ECF0C[]; extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; @@ -370,7 +372,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED6CC; extern const struct SpriteTemplate gSpriteTemplate_83ED564; extern const struct SpriteTemplate gSpriteTemplate_83ED54C; extern const struct SpriteTemplate gSpriteTemplate_83ED534; -extern const u8 gUnknown_083ECC58[2]; // don't remove this until decompiled through gUnknown_083ECCF8 +extern const u8 gUnknown_083ECC58[2]; extern const struct SpriteTemplate gSpriteTemplate_83ED51C; extern const u16 gUnknown_083ECE12[]; extern const u16 *const gUnknown_083EDE10[]; @@ -654,7 +656,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED45C; // code #define tState data[0] -void Task_FadeToSlotMachine(u8 taskId) +/*static */void Task_FadeToSlotMachine(u8 taskId) { switch (gTasks[taskId].tState) { @@ -684,7 +686,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) #undef tState -void CB2_SlotMachineSetup(void) +/*static */void CB2_SlotMachineSetup(void) { switch (gMain.state) { @@ -745,7 +747,7 @@ void CB2_SlotMachineSetup(void) } } -void CB2_SlotMachineLoop(void) +/*static */void CB2_SlotMachineLoop(void) { RunTasks(); AnimateSprites(); @@ -753,7 +755,7 @@ void CB2_SlotMachineLoop(void) UpdatePaletteFade(); } -void SlotMachine_VBlankCallback(void) +/*static */void SlotMachine_VBlankCallback(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -764,25 +766,25 @@ void SlotMachine_VBlankCallback(void) SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); } -void PlaySlotMachine_Internal(u8 arg0, MainCallback cb) +/*static */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) +/*static */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) +/*static */void SlotMachineDummyTask(u8 taskId) { } -void SlotMachineSetup_0_0(void) +/*static */void SlotMachineSetup_0_0(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); @@ -793,24 +795,24 @@ void SlotMachineSetup_0_0(void) DeactivateAllTextPrinters(); } -void SlotMachineSetup_6_0(void) +/*static */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) +/*static */void SlotMachineSetup_1_0(void) { DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000); } -void SlotMachineSetup_2_0(void) +/*static */void SlotMachineSetup_2_0(void) { DmaClear16(3, (u16 *)OAM, OAM_SIZE); } -void SlotMachineSetup_2_1(void) +/*static */void SlotMachineSetup_2_1(void) { SetGpuReg(REG_OFFSET_BG0CNT, 0); SetGpuReg(REG_OFFSET_BG1CNT, 0); @@ -830,7 +832,7 @@ void SlotMachineSetup_2_1(void) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } -void SlotMachineSetup_0_1(void) +/*static */void SlotMachineSetup_0_1(void) { u8 i; @@ -863,7 +865,7 @@ void SlotMachineSetup_0_1(void) sub_80EDE70(GetCoins()); } -void SlotMachineSetup_3_0(void) +/*static */void SlotMachineSetup_3_0(void) { ResetPaletteFade(); ResetSpriteData(); @@ -872,7 +874,7 @@ void SlotMachineSetup_3_0(void) ResetTasks(); } -void SlotMachineSetup_4_0(void) +/*static */void SlotMachineSetup_4_0(void) { gUnknown_0203AACC = Alloc(8); gUnknown_0203AAD0 = AllocZeroed(0xE); @@ -887,7 +889,7 @@ void SlotMachineSetup_4_0(void) gUnknown_0203AAD0[6] = 0x20BF; } -void SlotMachineSetup_5_0(void) +/*static */void SlotMachineSetup_5_0(void) { sub_8106448(); sub_81064B8(); @@ -897,7 +899,7 @@ void SlotMachineSetup_5_0(void) PutWindowTilemap(0); } -void SlotMachineSetup_10_0(void) +/*static */void SlotMachineSetup_10_0(void) { sub_8104EA8(); sub_8104F8C(); @@ -905,7 +907,7 @@ void SlotMachineSetup_10_0(void) sub_81050C4(); } -void SlotMachineSetup_10_1(void) +/*static */void SlotMachineSetup_10_1(void) { sub_8104048(); sub_8102DA8(); @@ -913,18 +915,18 @@ void SlotMachineSetup_10_1(void) sub_8101D04(); } -void sub_8101D04(void) +/*static */void sub_8101D04(void) { sub_8101D24(CreateTask(sub_8101D24, 0)); } -void sub_8101D24(u8 taskId) +/*static */void sub_8101D24(u8 taskId) { while (gUnknown_083ECAAC[sSlotMachine->state](gTasks + taskId)) ; } -bool8 sub_8101D5C(struct Task *task) +/*static */bool8 sub_8101D5C(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); sub_810423C(sSlotMachine->pikaPower); @@ -932,14 +934,14 @@ bool8 sub_8101D5C(struct Task *task) return FALSE; } -bool8 sub_8101D8C(struct Task *task) +/*static */bool8 sub_8101D8C(struct Task *task) { if (!gPaletteFade.active) sSlotMachine->state++; return FALSE; } -bool8 sub_8101DB0(struct Task *task) +/*static */bool8 sub_8101DB0(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; @@ -958,14 +960,14 @@ bool8 sub_8101DB0(struct Task *task) return TRUE; } -bool8 sub_8101DF4(struct Task *task) +/*static */bool8 sub_8101DF4(struct Task *task) { if (sub_8104E18()) sSlotMachine->state = 4; return FALSE; } -bool8 sub_8101E10(struct Task *task) +/*static */bool8 sub_8101E10(struct Task *task) { sub_8104CAC(0); sSlotMachine->state = 5; @@ -974,7 +976,7 @@ bool8 sub_8101E10(struct Task *task) return TRUE; } -bool8 sub_8101E3C(struct Task *task) +/*static */bool8 sub_8101E3C(struct Task *task) { s16 i; @@ -1016,7 +1018,7 @@ bool8 sub_8101E3C(struct Task *task) return FALSE; } -bool8 sub_8101F44(struct Task *task) +/*static */bool8 sub_8101F44(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); @@ -1025,7 +1027,7 @@ bool8 sub_8101F44(struct Task *task) return FALSE; } -bool8 sub_8101F60(struct Task *task) +/*static */bool8 sub_8101F60(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1035,14 +1037,14 @@ bool8 sub_8101F60(struct Task *task) return FALSE; } -bool8 sub_8101F88(struct Task *task) +/*static */bool8 sub_8101F88(struct Task *task) { if (sub_8104AEC()) sSlotMachine->state = 5; return FALSE; } -bool8 sub_8101FA4(struct Task *task) +/*static */bool8 sub_8101FA4(struct Task *task) { sub_8102484(); sub_8104DA4(); @@ -1067,7 +1069,7 @@ bool8 sub_8101FA4(struct Task *task) return FALSE; } -bool8 sub_8102008(struct Task *task) +/*static */bool8 sub_8102008(struct Task *task) { if (sub_810432C()) { @@ -1078,7 +1080,7 @@ bool8 sub_8102008(struct Task *task) return FALSE; } -bool8 sub_8102034(struct Task *task) +/*static */bool8 sub_8102034(struct Task *task) { if (++task->data[0] >= 30) { @@ -1088,7 +1090,7 @@ bool8 sub_8102034(struct Task *task) return FALSE; } -bool8 sub_8102058(struct Task *task) +/*static */bool8 sub_8102058(struct Task *task) { if (gMain.newKeys & A_BUTTON) { @@ -1100,7 +1102,7 @@ bool8 sub_8102058(struct Task *task) return FALSE; } -bool8 sub_8102090(struct Task *task) +/*static */bool8 sub_8102090(struct Task *task) { if (!sub_8102E40(sSlotMachine->unk18)) { @@ -1115,7 +1117,7 @@ bool8 sub_8102090(struct Task *task) return FALSE; } -bool8 sub_81020C8(struct Task *task) +/*static */bool8 sub_81020C8(struct Task *task) { sSlotMachine->unk04 &= 0xc0; CheckMatch(); @@ -1177,14 +1179,14 @@ bool8 sub_81020C8(struct Task *task) return FALSE; } -bool8 sub_81021E0(struct Task *task) +/*static */bool8 sub_81021E0(struct Task *task) { if (sub_8102A44()) sSlotMachine->state = 16; return FALSE; } -bool8 sub_81021FC(struct Task *task) +/*static */bool8 sub_81021FC(struct Task *task) { if (sub_8103FA0()) { @@ -1207,7 +1209,7 @@ bool8 sub_81021FC(struct Task *task) return FALSE; } -bool8 sub_8102264(struct Task *task) +/*static */bool8 sub_8102264(struct Task *task) { if (!sub_81040C8()) { @@ -1225,7 +1227,7 @@ bool8 sub_8102264(struct Task *task) return FALSE; } -bool8 sub_81022A0(struct Task *task) +/*static */bool8 sub_81022A0(struct Task *task) { if (sub_8104E18()) { @@ -1238,7 +1240,7 @@ bool8 sub_81022A0(struct Task *task) return FALSE; } -bool8 sub_81022CC(struct Task *task) +/*static */bool8 sub_81022CC(struct Task *task) { sub_8103D8C(0); sub_8103D8C(1); @@ -1247,7 +1249,7 @@ bool8 sub_81022CC(struct Task *task) return FALSE; } -bool8 sub_81022F0(struct Task *task) +/*static */bool8 sub_81022F0(struct Task *task) { if (++task->data[1] > 64) { @@ -1257,7 +1259,7 @@ bool8 sub_81022F0(struct Task *task) return FALSE; } -bool8 sub_8102318(struct Task *task) +/*static */bool8 sub_8102318(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); @@ -1267,7 +1269,7 @@ bool8 sub_8102318(struct Task *task) return FALSE; } -bool8 sub_8102344(struct Task *task) +/*static */bool8 sub_8102344(struct Task *task) { s8 input = Menu_ProcessInputNoWrap_(); if (input == 0) @@ -1287,7 +1289,7 @@ bool8 sub_8102344(struct Task *task) return FALSE; } -bool8 sub_810239C(struct Task *task) +/*static */bool8 sub_810239C(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); @@ -1296,7 +1298,7 @@ bool8 sub_810239C(struct Task *task) return FALSE; } -bool8 sub_81023B8(struct Task *task) +/*static */bool8 sub_81023B8(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1306,7 +1308,7 @@ bool8 sub_81023B8(struct Task *task) return FALSE; } -bool8 sub_81023E0_(struct Task *task) +/*static */bool8 sub_81023E0_(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); @@ -1315,7 +1317,7 @@ bool8 sub_81023E0_(struct Task *task) return FALSE; } -bool8 sub_81023FC(struct Task *task) +/*static */bool8 sub_81023FC(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1325,7 +1327,7 @@ bool8 sub_81023FC(struct Task *task) return FALSE; } -bool8 sub_8102424(struct Task *task) +/*static */bool8 sub_8102424(struct Task *task) { SetCoins(sSlotMachine->coins); sub_80EDD78(GetCoins()); @@ -1334,7 +1336,7 @@ bool8 sub_8102424(struct Task *task) return FALSE; } -bool8 sub_8102460(struct Task *task) +/*static */bool8 sub_8102460(struct Task *task) { if (!gPaletteFade.active) { @@ -1376,7 +1378,7 @@ bool8 sub_8102460(struct Task *task) return FALSE; } -void sub_8102484(void) +/*static */void sub_8102484(void) { u8 r3; @@ -1405,14 +1407,14 @@ void sub_8102484(void) } } -void sub_81024F0(void) +/*static */void sub_81024F0(void) { sSlotMachine->unk06 = 0; if (sSlotMachine->unk04) sSlotMachine->unk06 = 1; } -u8 sub_810250C(u8 a0) +/*static */u8 sub_810250C(u8 a0) { u8 i; @@ -1425,7 +1427,7 @@ u8 sub_810250C(u8 a0) return 0; } -bool8 sub_8102540_(void) +/*static */bool8 sub_8102540_(void) { u8 rval = Random(); if (gUnknown_083ECD04[sSlotMachine->unk01][sSlotMachine->bet - 1] > rval) @@ -1433,7 +1435,7 @@ bool8 sub_8102540_(void) return FALSE; } -u8 sub_8102578(void) +/*static */u8 sub_8102578(void) { s16 i; @@ -1447,7 +1449,7 @@ u8 sub_8102578(void) return i; } -u8 sub_81025BC(void) +/*static */u8 sub_81025BC(void) { s16 i; @@ -1473,7 +1475,7 @@ u8 sub_81025BC(void) return i; } -u8 sub_810264C(u8 a0) +/*static */u8 sub_810264C(u8 a0) { if (sSlotMachine->unk03 == 0) return gUnknown_083ECD46[a0][sSlotMachine->pikaPower]; @@ -1481,7 +1483,7 @@ u8 sub_810264C(u8 a0) return gUnknown_083ECDAC[a0][sSlotMachine->pikaPower]; } -void sub_8102680(void) +/*static */void sub_8102680(void) { u8 rval; s16 i; @@ -1499,7 +1501,7 @@ void sub_8102680(void) sSlotMachine->unk05 = i; } -bool8 sub_81026DC(u16 a0) +/*static */bool8 sub_81026DC(u16 a0) { u16 rval = Random() & 0xff; if (rval < gUnknown_083ECE12[a0]) @@ -1508,7 +1510,7 @@ bool8 sub_81026DC(u16 a0) return FALSE; } -u16 dp15_jump_random_unknown(void) +/*static */u16 dp15_jump_random_unknown(void) { u8 r4 = 0; u8 rval; @@ -1532,7 +1534,7 @@ u16 dp15_jump_random_unknown(void) return 8; } -void CheckMatch(void) +/*static */void CheckMatch(void) { sSlotMachine->matchedSymbols = 0; CheckMatch_CenterRow(); @@ -1542,7 +1544,7 @@ void CheckMatch(void) CheckMatch_Diagonals(); } -void CheckMatch_CenterRow(void) +/*static */void CheckMatch_CenterRow(void) { u8 c1, c2, c3, match; @@ -1558,7 +1560,7 @@ void CheckMatch_CenterRow(void) } } -void CheckMatch_TopAndBottom(void) +/*static */void CheckMatch_TopAndBottom(void) { u8 c1, c2, c3, match; @@ -1588,7 +1590,7 @@ void CheckMatch_TopAndBottom(void) } } -void CheckMatch_Diagonals(void) +/*static */void CheckMatch_Diagonals(void) { u8 c1, c2, c3, match; @@ -1620,7 +1622,7 @@ void CheckMatch_Diagonals(void) } } -u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) +/*static */u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) return sSym2Match[c1]; @@ -1633,12 +1635,12 @@ u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) return SLOT_MACHINE_MATCHED_NONE; } -void sub_8102A24(void) +/*static */void sub_8102A24(void) { sub_8102A64(CreateTask(sub_8102A64, 4)); } -bool8 sub_8102A44(void) +/*static */bool8 sub_8102A44(void) { if (FindTaskIdByFunc(sub_8102A64) == 0xff) return TRUE; @@ -1646,13 +1648,13 @@ bool8 sub_8102A44(void) return FALSE; } -void sub_8102A64(u8 taskId) +/*static */void sub_8102A64(u8 taskId) { while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)) ; } -bool8 sub_8102A9C(struct Task *task) +/*static */bool8 sub_8102A9C(struct Task *task) { if (sub_8103E38()) { @@ -1666,7 +1668,7 @@ bool8 sub_8102A9C(struct Task *task) return FALSE; } -bool8 sub_8102AD0(struct Task *task) +/*static */bool8 sub_8102AD0(struct Task *task) { if (!task->data[1]--) { @@ -1692,14 +1694,14 @@ bool8 sub_8102AD0(struct Task *task) return FALSE; } -bool8 sub_8102B80(struct Task *task) +/*static */bool8 sub_8102B80(struct Task *task) { if (sub_8103E7C()) DestroyTask(FindTaskIdByFunc(sub_8102A64)); return FALSE; } -u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) +/*static */u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) { s16 offset = (sSlotMachine->reelPositions[x] + y) % 21; if (offset < 0) @@ -1707,7 +1709,7 @@ u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) return sReelSymbols[x][offset]; } -u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) +/*static */u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) { s16 r6 = 0; s16 result = sSlotMachine->unk1C[x] % 24; @@ -1716,7 +1718,7 @@ u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) return GetTagOfReelSymbolOnScreenAtPos(x, y + r6); } -u8 sub_8102C48(s16 a0) +/*static */u8 sub_8102C48(s16 a0) { s16 r1 = (sSlotMachine->unk16 + a0) % 6; if (r1 < 0) @@ -1724,7 +1726,7 @@ u8 sub_8102C48(s16 a0) return gUnknown_083ECCF1[r1]; } -void sub_8102C84(u8 a0, s16 a1) +/*static */void sub_8102C84(u8 a0, s16 a1) { sSlotMachine->unk1C[a0] += a1; sSlotMachine->unk1C[a0] %= 504; @@ -1744,7 +1746,7 @@ s16 sub_8102CCC(u8 a0, s16 a1) return r1; } -void sub_8102D28(s16 a0) +/*static */void sub_8102D28(s16 a0) { sSlotMachine->unk14 += a0; sSlotMachine->unk14 %= 120; @@ -1764,7 +1766,7 @@ s16 sub_8102D5C(s16 a0) return r1; } -void sub_8102DA8(void) +/*static */void sub_8102DA8(void) { u8 i; for (i = 0; i < 3; i++) @@ -1776,41 +1778,41 @@ void sub_8102DA8(void) } } -void sub_8102DEC(u8 a0) +/*static */void sub_8102DEC(u8 a0) { gTasks[sSlotMachine->reelTasks[a0]].data[0] = 1; gTasks[sSlotMachine->reelTasks[a0]].data[14] = 1; } -void sub_8102E1C(u8 a0) +/*static */void sub_8102E1C(u8 a0) { gTasks[sSlotMachine->reelTasks[a0]].data[0] = 2; } -bool8 sub_8102E40(u8 a0) +/*static */bool8 sub_8102E40(u8 a0) { return gTasks[sSlotMachine->reelTasks[a0]].data[14]; } -void sub_8102E68(u8 taskId) +/*static */void sub_8102E68(u8 taskId) { while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)) ; } -bool8 sub_8102EA0(struct Task *task) +/*static */bool8 sub_8102EA0(struct Task *task) { return FALSE; } -bool8 sub_8102EA4(struct Task *task) +/*static */bool8 sub_8102EA4(struct Task *task) { sub_8102C84(task->data[15], sSlotMachine->unk1A); return FALSE; } -bool8 sub_8102EC0(struct Task *task) +/*static */bool8 sub_8102EC0(struct Task *task) { task->data[0]++; sSlotMachine->unk34[task->data[15]] = 0; @@ -1824,7 +1826,7 @@ bool8 sub_8102EC0(struct Task *task) return TRUE; } -bool8 sub_8102F4C(struct Task *task) +/*static */bool8 sub_8102F4C(struct Task *task) { u16 sp[ARRAY_COUNT(gUnknown_085A74FC)]; s16 r2; @@ -1848,7 +1850,7 @@ bool8 sub_8102F4C(struct Task *task) return FALSE; } -bool8 sub_8103008(struct Task *task) +/*static */bool8 sub_8103008(struct Task *task) { sSlotMachine->unk22[task->data[15]] = task->data[1]; task->data[1] = -task->data[1]; @@ -1864,7 +1866,7 @@ bool8 sub_8103008(struct Task *task) return FALSE; } -bool8 sub_810305C(void) +/*static */bool8 sub_810305C(void) { u8 r3 = sub_810250C(sSlotMachine->unk04); u8 r5 = r3; @@ -1876,7 +1878,7 @@ bool8 sub_810305C(void) return gUnknown_083ECB64[sSlotMachine->bet - 1](r5, r3); } -bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) +/*static */bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) { u8 tag = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, y); if (tag == tag1 || tag == tag2) @@ -1887,7 +1889,7 @@ bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) return FALSE; } -bool8 sub_81030E0(s16 y) +/*static */bool8 sub_81030E0(s16 y) { if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - y) == 4) return TRUE; @@ -1895,7 +1897,7 @@ bool8 sub_81030E0(s16 y) return FALSE; } -bool8 sub_8103134(void) +/*static */bool8 sub_8103134(void) { if (sSlotMachine->unk04 & 0xc2) return TRUE; @@ -1903,7 +1905,7 @@ bool8 sub_8103134(void) return FALSE; } -bool8 sub_8103154(u8 a0, u8 a1) +/*static */bool8 sub_8103154(u8 a0, u8 a1) { s16 i; @@ -1919,7 +1921,7 @@ bool8 sub_8103154(u8 a0, u8 a1) return FALSE; } -bool8 sub_81031B4(u8 tag1, u8 tag2) +/*static */bool8 sub_81031B4(u8 tag1, u8 tag2) { s16 i; bool8 r6 = sub_8103134(); @@ -1963,12 +1965,12 @@ bool8 sub_81031B4(u8 tag1, u8 tag2) return FALSE; } -bool8 sub_81032C0(void) +/*static */bool8 sub_81032C0(void) { return gUnknown_083ECB70[sSlotMachine->bet - 1](); } -bool8 sub_81032E8(void) +/*static */bool8 sub_81032E8(void) { s16 i; s16 unk34_0 = sSlotMachine->unk34[0]; @@ -1985,7 +1987,7 @@ bool8 sub_81032E8(void) return FALSE; } -bool8 sub_810333C(void) +/*static */bool8 sub_810333C(void) { s16 i; if (sub_81032E8()) @@ -2019,7 +2021,7 @@ bool8 sub_810333C(void) return FALSE; } -bool8 sub_81033DC(void) +/*static */bool8 sub_81033DC(void) { u8 r3 = sSlotMachine->unk07; if (sSlotMachine->unk04 & 0x40) @@ -2033,7 +2035,7 @@ bool8 sub_81033DC(void) return gUnknown_083ECB7C[sSlotMachine->bet - 1](r3); } -bool8 sub_810341C(u8 a0) +/*static */bool8 sub_810341C(u8 a0) { s16 i; s16 unk34_1 = sSlotMachine->unk34[1]; @@ -2050,7 +2052,7 @@ bool8 sub_810341C(u8 a0) return FALSE; } -bool8 sub_810347C(u8 a0) +/*static */bool8 sub_810347C(u8 a0) { s16 i; s16 r8; @@ -2072,7 +2074,7 @@ bool8 sub_810347C(u8 a0) return FALSE; } -void sub_81034F4(void) +/*static */void sub_81034F4(void) { s16 i = 0; @@ -2081,7 +2083,7 @@ void sub_81034F4(void) sSlotMachine->unk2E[0] = i; } -bool8 sub_8103520(u8 *a0) +/*static */bool8 sub_8103520(u8 *a0) { if (*a0 == 0) { @@ -2096,12 +2098,12 @@ bool8 sub_8103520(u8 *a0) return FALSE; } -void sub_8103540(void) +/*static */void sub_8103540(void) { gUnknown_083ECB88[sSlotMachine->bet - 1](); } -void sub_8103564(void) +/*static */void sub_8103564(void) { if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) { @@ -2122,7 +2124,7 @@ void sub_8103564(void) } } -void j5_08111E84(void) +/*static */void j5_08111E84(void) { if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) { @@ -2143,7 +2145,7 @@ void j5_08111E84(void) } } -void sub_8103668(void) +/*static */void sub_8103668(void) { s16 i; s16 j; @@ -2208,7 +2210,7 @@ void sub_8103668(void) } } -bool8 sub_8103764(u8 a0, u8 a1) +/*static */bool8 sub_8103764(u8 a0, u8 a1) { if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0)) return TRUE; @@ -2216,7 +2218,7 @@ bool8 sub_8103764(u8 a0, u8 a1) return FALSE; } -bool8 sub_810378C(u8 a0, u8 a1, u8 a2) +/*static */bool8 sub_810378C(u8 a0, u8 a1, u8 a2) { if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1)) return TRUE; @@ -2224,7 +2226,7 @@ bool8 sub_810378C(u8 a0, u8 a1, u8 a2) return FALSE; } -bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) +/*static */bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) { if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1) || @@ -2237,12 +2239,12 @@ bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) return TRUE; } -void sub_810380C(void) +/*static */void sub_810380C(void) { gUnknown_083ECB94[sSlotMachine->bet - 1](); } -void sub_8103830(void) +/*static */void sub_8103830(void) { s16 i = 0; u8 r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); @@ -2281,7 +2283,7 @@ void sub_8103830(void) sSlotMachine->unk2E[2] = i; } -void sub_8103910(void) +/*static */void sub_8103910(void) { s16 sp0 = 0; s16 i; @@ -2327,7 +2329,7 @@ void sub_8103910(void) sSlotMachine->unk2E[2] = sp0; } -void sub_8103A78(void) +/*static */void sub_8103A78(void) { u8 r6; u8 r5; @@ -2376,61 +2378,61 @@ void sub_8103A78(void) } } -void sub_8103C14(u8 a0) +/*static */void sub_8103C14(u8 a0) { u8 taskId = CreateTask(sub_8103C48, 5); gTasks[taskId].data[15] = a0; sub_8103C48(taskId); } -void sub_8103C48(u8 taskId) +/*static */void sub_8103C48(u8 taskId) { gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); } -void sub_8103C78(struct Task *task, u8 taskId) +/*static */void sub_8103C78(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); task->data[0]++; } -void sub_8103CAC(struct Task *task, u8 taskId) +/*static */void sub_8103CAC(struct Task *task, u8 taskId) { if (++task->data[1] > 11) task->data[0]++; } -void sub_8103CC8(struct Task *task, u8 taskId) +/*static */void sub_8103CC8(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); DestroyTask(taskId); } -void sub_8103D00(u8 a0) +/*static */void sub_8103D00(u8 a0) { LoadPalette(gUnknown_083EDD08[a0], gUnknown_083EDD30[a0], 2); } -void sub_8103D28(u8 a0) +/*static */void sub_8103D28(u8 a0) { LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } -void sub_8103D50(u8 a0) +/*static */void sub_8103D50(u8 a0) { u8 i; for (i = 0; i < gUnknown_083EDD3B[a0]; i++) sub_8103D00(gUnknown_083EDD35[a0][i]); } -void sub_8103D8C(u8 a0) +/*static */void sub_8103D8C(u8 a0) { u8 i; for (i = 0; i < gUnknown_083EDD3B[a0]; i++) sub_8103D28(gUnknown_083EDD35[a0][i]); } -void sub_8103DC8(void) +/*static */void sub_8103DC8(void) { u8 i; for (i = 0; i < 5; i++) @@ -2441,7 +2443,7 @@ void sub_8103DC8(void) } } -void sub_8103E04(u8 a0) +/*static */void sub_8103E04(u8 a0) { struct Sprite *sprite = gSprites + sSlotMachine->unk44[a0]; sprite->data[1] = 1; @@ -2452,7 +2454,7 @@ void sub_8103E04(u8 a0) sprite->data[7] = 0; } -bool8 sub_8103E38(void) +/*static */bool8 sub_8103E38(void) { u8 i; for (i = 0; i < 5; i++) @@ -2464,7 +2466,7 @@ bool8 sub_8103E38(void) return TRUE; } -bool8 sub_8103E7C(void) +/*static */bool8 sub_8103E7C(void) { u8 i; for (i = 0; i < 5; i++) @@ -2475,7 +2477,7 @@ bool8 sub_8103E7C(void) return TRUE; } -bool8 sub_8103EAC(u8 spriteId) +/*static */bool8 sub_8103EAC(u8 spriteId) { struct Sprite *sprite = gSprites + spriteId; if (!sprite->data[1]) @@ -2485,7 +2487,7 @@ bool8 sub_8103EAC(u8 spriteId) return sprite->data[7]; } -void sub_8103EE4(struct Sprite *sprite) +/*static */void sub_8103EE4(struct Sprite *sprite) { s16 r4; if (sprite->data[1]) @@ -2514,14 +2516,14 @@ void sub_8103EE4(struct Sprite *sprite) } } -void sub_8103F70(void) +/*static */void sub_8103F70(void) { u8 taskId = CreateTask(sub_8103FE8_, 6); gTasks[taskId].data[3] = 1; sub_8103FE8_(taskId); } -bool8 sub_8103FA0(void) +/*static */bool8 sub_8103FA0(void) { u8 taskId = FindTaskIdByFunc(sub_8103FE8_); if (!gTasks[taskId].data[2]) @@ -2533,7 +2535,7 @@ bool8 sub_8103FA0(void) return FALSE; } -void sub_8103FE8_(u8 taskId) +/*static */void sub_8103FE8_(u8 taskId) { struct Task *task = gTasks + taskId; if (!task->data[1]--) @@ -2546,12 +2548,12 @@ void sub_8103FE8_(u8 taskId) LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); } -void sub_8104048(void) +/*static */void sub_8104048(void) { sSlotMachine->unk3E = CreateTask(sub_81040E8, 8); } -void sub_8104064(u8 pikaPower) +/*static */void sub_8104064(u8 pikaPower) { struct Task *task = gTasks + sSlotMachine->unk3E; sub_812D394(task); @@ -2560,7 +2562,7 @@ void sub_8104064(u8 pikaPower) task->data[15] = 1; } -void sub_8104098(void) +/*static */void sub_8104098(void) { struct Task *task = gTasks + sSlotMachine->unk3E; sub_812D394(task); @@ -2568,27 +2570,27 @@ void sub_8104098(void) task->data[15] = 1; } -bool8 sub_81040C8(void) +/*static */bool8 sub_81040C8(void) { return gTasks[sSlotMachine->unk3E].data[15]; } -void sub_81040E8(u8 taskId) +/*static */void sub_81040E8(u8 taskId) { gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); } -void nullsub_68(struct Task *task) +/*static */void nullsub_68(struct Task *task) { } -void sub_810411C(struct Task *task) +/*static */void sub_810411C(struct Task *task) { task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); task->data[0]++; } -void sub_8104144(struct Task *task) +/*static */void sub_8104144(struct Task *task) { if (gSprites[task->data[2]].data[7]) { @@ -2607,7 +2609,7 @@ void sub_8104144(struct Task *task) } } -void sub_81041AC(struct Task *task) +/*static */void sub_81041AC(struct Task *task) { s16 r5 = task->data[1] + 2; s16 r3 = 0; @@ -2631,7 +2633,7 @@ void sub_81041AC(struct Task *task) } } -void sub_812D394(struct Task *task) +/*static */void sub_812D394(struct Task *task) { u8 i; @@ -2639,7 +2641,7 @@ void sub_812D394(struct Task *task) task->data[i] = 0; } -void sub_810423C(u8 pikaPower) +/*static */void sub_810423C(u8 pikaPower) { s16 i; s16 r3 = 0, r1 = 0; @@ -2667,25 +2669,25 @@ void sub_810423C(u8 pikaPower) gTasks[sSlotMachine->unk3E].data[1] = pikaPower; } -void sub_810430C(void) +/*static */void sub_810430C(void) { u8 taskId = CreateTask(sub_810434C, 7); sub_810434C(taskId); } -bool8 sub_810432C(void) +/*static */bool8 sub_810432C(void) { if (FindTaskIdByFunc(sub_810434C) == 0xFF) return TRUE; return FALSE; } -void sub_810434C(u8 taskId) +/*static */void sub_810434C(u8 taskId) { gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId); } -void sub_810437C(struct Task *task) +/*static */void sub_810437C(struct Task *task) { sSlotMachine->unk0A = 0; sSlotMachine->unk14 = 0; @@ -2709,7 +2711,7 @@ void sub_810437C(struct Task *task) PlayNewMapMusic(MUS_BD_TIME); } -void sub_81043EC(struct Task *task) +/*static */void sub_81043EC(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; @@ -2730,7 +2732,7 @@ void sub_81043EC(struct Task *task) sub_8102D28(task->data[4] >> 8); } -void sub_8104468(struct Task *task) +/*static */void sub_8104468(struct Task *task) { sub_8102D28(task->data[4] >> 8); if (++task->data[5] >= 60) @@ -2741,7 +2743,7 @@ void sub_8104468(struct Task *task) } } -void sub_8104498(struct Task *task) +/*static */void sub_8104498(struct Task *task) { int r5; u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; @@ -2766,7 +2768,7 @@ void sub_8104498(struct Task *task) } } -void sub_8104548(struct Task *task) +/*static */void sub_8104548(struct Task *task) { sub_8102D28(task->data[4] >> 8); if (++task->data[5] >= 80) @@ -2778,7 +2780,7 @@ void sub_8104548(struct Task *task) } } -void sub_8104598(struct Task *task) +/*static */void sub_8104598(struct Task *task) { sub_8102D28(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; @@ -2789,7 +2791,7 @@ void sub_8104598(struct Task *task) } } -void sub_81045CC(struct Task *task) +/*static */void sub_81045CC(struct Task *task) { sub_8102D28(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; @@ -2813,7 +2815,7 @@ void sub_81045CC(struct Task *task) } } -void sub_810463C(struct Task *task) +/*static */void sub_810463C(struct Task *task) { s16 r5 = sSlotMachine->unk14 % 20; if (r5) @@ -2834,7 +2836,7 @@ void sub_810463C(struct Task *task) } } -void sub_81046C0(struct Task *task) +/*static */void sub_81046C0(struct Task *task) { if (++task->data[4] >= 60) { @@ -2863,13 +2865,13 @@ void sub_81046C0(struct Task *task) } } -void sub_8104764(struct Task *task) +/*static */void sub_8104764(struct Task *task) { if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) task->data[0]++; } -void sub_8104794(struct Task *task) +/*static */void sub_8104794(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2883,7 +2885,7 @@ void sub_8104794(struct Task *task) task->data[0]++; } -void sub_81047EC(struct Task *task) +/*static */void sub_81047EC(struct Task *task) { sSlotMachine->unk0B = 0; sSlotMachine->unk0A = sSlotMachine->unk05; @@ -2908,7 +2910,7 @@ void sub_81047EC(struct Task *task) } } -void sub_8104860(struct Task *task) +/*static */void sub_8104860(struct Task *task) { if (sSlotMachine->unk1A == task->data[1]) task->data[0]++; @@ -2916,13 +2918,13 @@ void sub_8104860(struct Task *task) sSlotMachine->unk1A >>= 1; } -void sub_81048A8(struct Task *task) +/*static */void sub_81048A8(struct Task *task) { if (sub_8104E18()) DestroyTask(FindTaskIdByFunc(sub_810434C)); } -void sub_81048CC(struct Task *task) +/*static */void sub_81048CC(struct Task *task) { sub_81054B8(); sub_81056C0(); @@ -2938,7 +2940,7 @@ void sub_81048CC(struct Task *task) PlaySE(SE_W153); } -void sub_8104940(struct Task *task) +/*static */void sub_8104940(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -2958,7 +2960,7 @@ void sub_8104940(struct Task *task) } } -void sub_81049C8(struct Task *task) +/*static */void sub_81049C8(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); @@ -2969,7 +2971,7 @@ void sub_81049C8(struct Task *task) } } -void sub_81049F8(struct Task *task) +/*static */void sub_81049F8(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -2981,7 +2983,7 @@ void sub_81049F8(struct Task *task) DestroyTask(FindTaskIdByFunc(sub_810434C)); } -void sub_8104A40(s16 a0, s16 a1) +/*static */void sub_8104A40(s16 a0, s16 a1) { s16 i; @@ -2991,7 +2993,7 @@ void sub_8104A40(s16 a0, s16 a1) } } -void sub_8104A88(s16 a0) +/*static */void sub_8104A88(s16 a0) { u8 i; @@ -3001,14 +3003,14 @@ void sub_8104A88(s16 a0) } } -void sub_8104AB8(u8 a0) +/*static */void sub_8104AB8(u8 a0) { u8 taskId = CreateTask(sub_8104B0C, 1); gTasks[taskId].data[1] = a0; sub_8104B0C(taskId); } -bool8 sub_8104AEC(void) +/*static */bool8 sub_8104AEC(void) { if (FindTaskIdByFunc(sub_8104B0C) == 0xFF) return TRUE; @@ -3016,24 +3018,24 @@ bool8 sub_8104AEC(void) return FALSE; } -void sub_8104B0C(u8 taskId) +/*static */void sub_8104B0C(u8 taskId) { gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId); } -void sub_8104B3C(struct Task *task) +/*static */void sub_8104B3C(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); task->data[0]++; } -void sub_8104B60(struct Task *task) +/*static */void sub_8104B60(struct Task *task) { if (!gPaletteFade.active) task->data[0]++; } -void sub_8104B80(struct Task *task) +/*static */void sub_8104B80(struct Task *task) { sub_8104DA4(); sub_81065DC(); @@ -3043,7 +3045,7 @@ void sub_8104B80(struct Task *task) task->data[0]++; } -void sub_812DD78(struct Task *task) +/*static */void sub_812DD78(struct Task *task) { AddTextPrinterParameterized3(1, 1, 2, 5, gUnknown_085A744C, 0, gText_ReelTimeHelp); CopyWindowToVram(1, 3); @@ -3051,7 +3053,7 @@ void sub_812DD78(struct Task *task) task->data[0]++; } -void sub_8104BC8(struct Task *task) +/*static */void sub_8104BC8(struct Task *task) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { @@ -3064,32 +3066,32 @@ void sub_8104BC8(struct Task *task) } } -void sub_812DE14(struct Task *task) +/*static */void sub_812DE14(struct Task *task) { sub_812F968(); ShowBg(3); task->data[0]++; } -void sub_812DE30(struct Task *task) +/*static */void sub_812DE30(struct Task *task) { sub_8104CAC(task->data[1]); task->data[0]++; } -void sub_8104BFC(struct Task *task) +/*static */void sub_8104BFC(struct Task *task) { sub_810423C(sSlotMachine->pikaPower); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -void sub_8104C44(struct Task *task) +/*static */void sub_8104C44(struct Task *task) { DestroyTask(FindTaskIdByFunc(sub_8104B0C)); } -void sub_8104C5C(void) +/*static */void sub_8104C5C(void) { u8 i; struct Task *task; @@ -3101,7 +3103,7 @@ void sub_8104C5C(void) task->data[i] = MAX_SPRITES; } -void sub_8104CAC(u8 arg0) +/*static */void sub_8104CAC(u8 arg0) { u8 i; struct Task *task; @@ -3123,7 +3125,7 @@ void sub_8104CAC(u8 arg0) } } -void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +/*static */void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) { u8 i; struct Task *task = gTasks + sSlotMachine->unk3D; @@ -3137,7 +3139,7 @@ void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) } } -void sub_8104DA4(void) +/*static */void sub_8104DA4(void) { u8 i; struct Task *task = gTasks + sSlotMachine->unk3D; @@ -3153,7 +3155,7 @@ void sub_8104DA4(void) } } -bool8 sub_8104E18(void) +/*static */bool8 sub_8104E18(void) { u8 i; struct Task *task = gTasks + sSlotMachine->unk3D; @@ -3168,16 +3170,16 @@ bool8 sub_8104E18(void) return TRUE; } -void sub_8104E74_(u8 taskId) +/*static */void sub_8104E74_(u8 taskId) { gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId); } -void nullsub_69(struct Task *task) +/*static */void nullsub_69(struct Task *task) { } -void sub_8104EA8(void) +/*static */void sub_8104EA8(void) { s16 i; s16 j; @@ -3195,7 +3197,7 @@ void sub_8104EA8(void) } } -void sub_8104F18(struct Sprite *sprite) +/*static */void sub_8104F18(struct Sprite *sprite) { sprite->data[2] = sSlotMachine->unk1C[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; @@ -3204,7 +3206,7 @@ void sub_8104F18(struct Sprite *sprite) SetSpriteSheetFrameTileNum(sprite); } -void sub_8104F8C(void) +/*static */void sub_8104F8C(void) { s16 i; s16 x; @@ -3215,7 +3217,7 @@ void sub_8104F8C(void) sub_8104FF4(x, 23, 1, i); } -void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +/*static */void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) { struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); sprite->oam.priority = 2; @@ -3225,7 +3227,7 @@ void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) sprite->data[3] = -1; } -void sub_810506C(struct Sprite *sprite) +/*static */void sub_810506C(struct Sprite *sprite) { u16 tag = sSlotMachine->coins; if (sprite->data[0]) @@ -3241,14 +3243,14 @@ void sub_810506C(struct Sprite *sprite) } } -void sub_81050C4(void) +/*static */void sub_81050C4(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); gSprites[spriteId].oam.priority = 3; SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); } -void sub_8105100(void) +/*static */void sub_8105100(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3274,14 +3276,14 @@ void sub_8105100(void) sSlotMachine->unk3F = spriteId; } -void sub_810514C(void) +/*static */void sub_810514C(void) { DestroySprite(gSprites + sSlotMachine->unk3F); if (gUnknown_0203AAE4 != NULL) FREE_AND_SET_NULL(gUnknown_0203AAE4); } -void sub_8105170(struct Sprite *sprite) +/*static */void sub_8105170(struct Sprite *sprite) { sprite->pos2.y = sprite->pos2.x = 0; if (sprite->animNum == 4) @@ -3292,7 +3294,7 @@ void sub_8105170(struct Sprite *sprite) } } -void sub_81051C0(void) +/*static */void sub_81051C0(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3327,7 +3329,7 @@ void sub_81051C0(void) sSlotMachine->unk49[1] = spriteId; } -void sub_8105284_(void) +/*static */void sub_8105284_(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3348,7 +3350,7 @@ void sub_8105284_(void) sSlotMachine->unk42 = spriteId; } -void sub_81052EC(void) +/*static */void sub_81052EC(void) { u8 i; s16 r5; @@ -3363,7 +3365,7 @@ void sub_81052EC(void) } } -void sub_810535C(struct Sprite *sprite) +/*static */void sub_810535C(struct Sprite *sprite) { s16 r0 = (u16)(sSlotMachine->unk14 + sprite->data[7]); r0 %= 40; @@ -3371,7 +3373,7 @@ void sub_810535C(struct Sprite *sprite) StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20)); } -void sub_81053A0(void) +/*static */void sub_81053A0(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); struct Sprite *sprite = &gSprites[spriteId]; @@ -3388,7 +3390,7 @@ void sub_81053A0(void) sSlotMachine->unk4E[1] = spriteId; } -void sub_810545C(void) +/*static */void sub_810545C(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); struct Sprite *sprite = &gSprites[spriteId]; @@ -3398,7 +3400,7 @@ void sub_810545C(void) sSlotMachine->unk40 = spriteId; } -void sub_81054B8(void) +/*static */void sub_81054B8(void) { u8 i; @@ -3415,7 +3417,7 @@ void sub_81054B8(void) DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); } -void sub_8105524(void) +/*static */void sub_8105524(void) { u8 i; @@ -3423,14 +3425,14 @@ void sub_8105524(void) DestroySprite(&gSprites[sSlotMachine->unk4E[i]]); } -void sub_8105554(void) +/*static */void sub_8105554(void) { DestroySprite(&gSprites[sSlotMachine->unk42]); if (gUnknown_0203AAF0 != NULL) FREE_AND_SET_NULL(gUnknown_0203AAF0); } -void sub_8105578(void) +/*static */void sub_8105578(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); struct Sprite *sprite = &gSprites[spriteId]; @@ -3451,7 +3453,7 @@ void sub_8105578(void) sprite->data[7] = 0x20; } -void sub_810562C(struct Sprite *sprite) +/*static */void sub_810562C(struct Sprite *sprite) { if (sprite->data[0] != 0) { @@ -3473,13 +3475,13 @@ void sub_810562C(struct Sprite *sprite) } } -void sub_8105688(s16 a0) +/*static */void sub_8105688(s16 a0) { gSprites[sSlotMachine->unk50[0]].data[7] = a0; gSprites[sSlotMachine->unk50[1]].data[7] = a0; } -void sub_81056C0(void) +/*static */void sub_81056C0(void) { u8 i; @@ -3487,7 +3489,7 @@ void sub_81056C0(void) DestroySprite(&gSprites[sSlotMachine->unk50[i]]); } -void sub_81056F0(void) +/*static */void sub_81056F0(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); gSprites[spriteId].oam.priority = 1; @@ -3503,7 +3505,7 @@ void sub_81056F0(void) sSlotMachine->unk52[1] = spriteId; } -void sub_8105784(struct Sprite *sprite) +/*static */void sub_8105784(struct Sprite *sprite) { u8 sp[] = {16, 0}; if (sprite->data[0] && --sprite->data[6] <= 0) @@ -3515,12 +3517,12 @@ void sub_8105784(struct Sprite *sprite) } } -void sub_81057E8(s16 a0) +/*static */void sub_81057E8(s16 a0) { gSprites[sSlotMachine->unk52[0]].data[7] = a0; } -void sub_8105804(void) +/*static */void sub_8105804(void) { u8 i; MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); @@ -3528,24 +3530,24 @@ void sub_8105804(void) DestroySprite(&gSprites[sSlotMachine->unk52[i]]); } -void sub_8105854(void) +/*static */void sub_8105854(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); gSprites[spriteId].oam.priority = 1; sSlotMachine->unk41 = spriteId; } -void sub_8105894(struct Sprite *sprite) +/*static */void sub_8105894(struct Sprite *sprite) { sprite->pos2.y = gSpriteCoordOffsetY; } -void sub_81058A0(void) +/*static */void sub_81058A0(void) { DestroySprite(&gSprites[sSlotMachine->unk41]); } -void sub_81058C4(void) +/*static */void sub_81058C4(void) { u8 i; u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; @@ -3560,7 +3562,7 @@ void sub_81058C4(void) } } -void sub_810594C(struct Sprite *sprite) +/*static */void sub_810594C(struct Sprite *sprite) { sprite->data[0] -= 2; sprite->data[0] &= 0xff; @@ -3578,7 +3580,7 @@ void sub_810594C(struct Sprite *sprite) } } -void sub_81059B8(void) +/*static */void sub_81059B8(void) { u8 i; for (i = 0; i < 4; i++) @@ -3587,7 +3589,7 @@ void sub_81059B8(void) } } -void sub_81059E8(void) +/*static */void sub_81059E8(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); struct Sprite *sprite = &gSprites[spriteId]; @@ -3597,7 +3599,7 @@ void sub_81059E8(void) sSlotMachine->unk43 = spriteId; } -void sub_8105A38(struct Sprite *sprite) +/*static */void sub_8105A38(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3624,19 +3626,19 @@ void sub_8105A38(struct Sprite *sprite) sprite->pos2.y -= (sprite->data[1] >> 8); } -u8 sub_8105ACC(void) +/*static */u8 sub_8105ACC(void) { return gSprites[sSlotMachine->unk43].data[7]; } -void sub_8105AEC(void) +/*static */void sub_8105AEC(void) { struct Sprite *sprite = &gSprites[sSlotMachine->unk43]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -u8 sub_8105B1C(s16 x, s16 y) +/*static */u8 sub_8105B1C(s16 x, s16 y) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); struct Sprite *sprite = &gSprites[spriteId]; @@ -3646,25 +3648,25 @@ u8 sub_8105B1C(s16 x, s16 y) return spriteId; } -void sub_8105B70(struct Sprite *sprite) +/*static */void sub_8105B70(struct Sprite *sprite) { if (sprite->affineAnimEnded) sprite->data[7] = 1; } -void sub_8105B88(u8 spriteId) +/*static */void sub_8105B88(u8 spriteId) { struct Sprite *sprite = &gSprites[spriteId]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) +/*static */u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) { return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); } -u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +/*static */u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3683,12 +3685,12 @@ u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) return spriteId; } -void sub_8105C64(struct Sprite *sprite) +/*static */void sub_8105C64(struct Sprite *sprite) { sprite->data[7] = 0; } -void sub_8105C6C(struct Sprite *sprite) +/*static */void sub_8105C6C(struct Sprite *sprite) { s16 sp0[] = {4, -4, 4, -4}; s16 sp8[] = {4, 4, -4, -4}; @@ -3707,26 +3709,26 @@ void sub_8105C6C(struct Sprite *sprite) } } -void sub_8105CF0(struct Sprite *sprite) +/*static */void sub_8105CF0(struct Sprite *sprite) { sprite->hFlip = TRUE; sub_8105C6C(sprite); } -void sub_8105D08(struct Sprite *sprite) +/*static */void sub_8105D08(struct Sprite *sprite) { sprite->vFlip = TRUE; sub_8105C6C(sprite); } -void sub_8105D20(struct Sprite *sprite) +/*static */void sub_8105D20(struct Sprite *sprite) { sprite->hFlip = TRUE; sprite->vFlip = TRUE; sub_8105C6C(sprite); } -void sub_8105D3C(struct Sprite *sprite) +/*static */void sub_8105D3C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3753,7 +3755,7 @@ void sub_8105D3C(struct Sprite *sprite) } } -void sub_8105DA4(struct Sprite *sprite) +/*static */void sub_8105DA4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3780,7 +3782,7 @@ void sub_8105DA4(struct Sprite *sprite) } } -void sub_8105E08(struct Sprite *sprite) +/*static */void sub_8105E08(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3818,7 +3820,7 @@ void sub_8105E08(struct Sprite *sprite) } } -void sub_8105EB4(struct Sprite *sprite) +/*static */void sub_8105EB4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3858,7 +3860,7 @@ void sub_8105EB4(struct Sprite *sprite) } } -void sub_8105F54(struct Sprite *sprite) +/*static */void sub_8105F54(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3878,7 +3880,7 @@ void sub_8105F54(struct Sprite *sprite) } } -void sub_8105F9C(struct Sprite *sprite) +/*static */void sub_8105F9C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3912,7 +3914,7 @@ void sub_8105F9C(struct Sprite *sprite) } } -void sub_8106058(struct Sprite *sprite) +/*static */void sub_8106058(struct Sprite *sprite) { if (sprite->data[1] < 3) { @@ -3936,7 +3938,7 @@ void sub_8106058(struct Sprite *sprite) sprite->data[7] = 0; } -void sub_81060FC(struct Sprite *sprite) +/*static */void sub_81060FC(struct Sprite *sprite) { s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; @@ -3971,7 +3973,7 @@ void sub_81060FC(struct Sprite *sprite) } } -void sub_81061C8(struct Sprite *sprite) +/*static */void sub_81061C8(struct Sprite *sprite) { s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; @@ -3986,7 +3988,7 @@ void sub_81061C8(struct Sprite *sprite) sprite->data[1]--; } -void sub_8106230(struct Sprite *sprite) +/*static */void sub_8106230(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4040,21 +4042,21 @@ void sub_8106230(struct Sprite *sprite) } } -void nullsub_70(void) +/*static */void nullsub_70(void) { } -void sub_8106364(void) +/*static */void sub_8106364(void) { SetGpuReg(REG_OFFSET_MOSAIC, 0); } -void sub_8106370(void) +/*static */void sub_8106370(void) { LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); } -void sub_810639C(void) +/*static */void sub_810639C(void) { sSlotMachine->win0h = 0xf0; sSlotMachine->win0v = 0xa0; @@ -4062,7 +4064,7 @@ void sub_810639C(void) sSlotMachine->winOut = 0x3f; } -void sub_81063C0(void) +/*static */void sub_81063C0(void) { u8 i; @@ -4086,7 +4088,7 @@ void sub_81063C0(void) LoadSpritePalettes(gSlotMachineSpritePalettes); } -void sub_8106404(void) +/*static */void sub_8106404(void) { u8 *dest; u8 i, j; @@ -4110,7 +4112,7 @@ extern const u8 gSlotMachineMenu_Tilemap[]; extern const u8 gUnknown_08DCEC70[]; extern const u16 gSlotMachineMenu_Pal[]; -void sub_8106448(void) +/*static */void sub_8106448(void) { gUnknown_0203AAC8 = Alloc(0x2200); LZDecompressWram(gSlotMachineMenu_Gfx, gUnknown_0203AAC8); @@ -4119,18 +4121,18 @@ void sub_8106448(void) LoadPalette(gPalette_83EDE24, 208, 32); } -void sub_81064B8(void) +/*static */void sub_81064B8(void) { sub_812F968(); LoadSlotMachineWheelOverlay(); } -void sub_812F968(void) +/*static */void sub_812F968(void) { LoadBgTilemap(2, gSlotMachineMenu_Tilemap, 0x500, 0); } -void LoadSlotMachineWheelOverlay(void) +/*static */void LoadSlotMachineWheelOverlay(void) { s16 x, y, dx; @@ -4152,7 +4154,7 @@ void LoadSlotMachineWheelOverlay(void) } } -void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) +/*static */void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { gUnknown_0203AADC[0] = arg1; gUnknown_0203AADC[1] = arg2; @@ -4165,13 +4167,13 @@ void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) LoadBgTilemap(2, gUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); } -void sub_81065DC(void) +/*static */void sub_81065DC(void) { LoadBgTilemap(2, gUnknown_08DCEC70, 0x500, 0); HideBg(3); } -void SlotMachineSetup_9_0(void) +/*static */void SlotMachineSetup_9_0(void) { gUnknown_03001188[0] = gUnknown_0203AAF4; gUnknown_03001188[1] = gUnknown_0203AAF8; @@ -4201,7 +4203,7 @@ void SlotMachineSetup_9_0(void) gUnknown_03001188[25] = NULL; } -void SlotMachineSetup_8_0(void) +/*static */void SlotMachineSetup_8_0(void) { gUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; @@ -4489,3 +4491,126 @@ const s16 gUnknown_083ECE7E[][2] = { { 0xe8, 0x48}, { 0x00, 0x00} }; + +const SpriteCallback gUnknown_083ECF0C[] = { + sub_8105C64, + sub_8105F54, + sub_8105F54, + sub_8105F54, + sub_8105F54, + sub_8105F9C, + sub_8105EB4, + sub_8105C64, + sub_8105C64, + sub_8105C6C, + sub_8105CF0, + sub_8105D08, + sub_8105D20, + sub_8105D3C, + sub_8105DA4, + sub_8105E08, + sub_8105C64, + sub_8106058, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81060FC, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_81061C8, + sub_8106230 +}; + +const struct UnkStruct1 Unknown_83ECF98[] = { + {25, 34, 0}, + {2, 0, 0}, + {9, 16, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFA8[] = { + {10, 1, 0}, + {11, 2, 0}, + {12, 3, 0}, + {13, 4, 0}, + {5, 5, 0}, + {8, 6, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFC4[] = { + {3, 7, 0}, + {8, 17, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFD0[] = { + {4, 8, 0}, + {6, 9, 0}, + {6, 10, 1}, + {6, 11, 2}, + {6, 12, 3}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFE8[] = { + {0, 13, 0}, + {1, 14, 0}, + {7, 15, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ECFF8[] = { + {19, 26, 0}, + {20, 27, 1}, + {21, 28, 2}, + {14, 29, 3}, + {15, 30, 4}, + {16, 31, 5}, + {17, 32, 6}, + {18, 33, 7}, + {8, 17, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 Unknown_83ED020[] = { + {22, 18, 0}, + {23, 19, 1}, + {24, 20, 2}, + {14, 21, 3}, + {15, 22, 4}, + {16, 23, 5}, + {17, 24, 6}, + {18, 25, 7}, + {8, 17, 0}, + {255, 0, 0} +}; + +const struct UnkStruct1 *const gUnknown_083ED048[] = { + Unknown_83ECF98, + Unknown_83ECFA8, + Unknown_83ECFC4, + Unknown_83ECFD0, + Unknown_83ECFE8, + Unknown_83ED020, + Unknown_83ECFF8 +}; + +void (*const gUnknown_083ED064[])(void) = { + sub_810639C, + sub_8106364, + sub_8106370, + nullsub_70, + nullsub_70, + sub_8106370, + sub_8106370 +}; -- cgit v1.2.3 From de65ddf4b6507f9d7e436ea36ebe6f83f4b25b1f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 16 Sep 2018 10:17:10 +0200 Subject: Make it easier to edit ability text --- src/data/text/abilities.h | 473 +++++++++++++++++++++++----------------------- 1 file changed, 234 insertions(+), 239 deletions(-) (limited to 'src') diff --git a/src/data/text/abilities.h b/src/data/text/abilities.h index 3a1e989d2..97c29f9ee 100644 --- a/src/data/text/abilities.h +++ b/src/data/text/abilities.h @@ -1,247 +1,242 @@ -#ifndef POKEEMERALD_DATA_TEXT_ABILITIES_H -#define POKEEMERALD_DATA_TEXT_ABILITIES_H - -static const u8 gNoneAbilityDescription[] = _("No special ability."); -static const u8 gStenchAbilityDescription[] = _("Helps repel wild POKéMON."); -static const u8 gDrizzleAbilityDescription[] = _("Summons rain in battle."); -static const u8 gSpeedBoostAbilityDescription[] = _("Gradually boosts SPEED."); -static const u8 gBattleArmorAbilityDescription[] = _("Blocks critical hits."); -static const u8 gSturdyAbilityDescription[] = _("Negates 1-hit KO attacks."); -static const u8 gDampAbilityDescription[] = _("Prevents self-destruction."); -static const u8 gLimberAbilityDescription[] = _("Prevents paralysis."); -static const u8 gSandVeilAbilityDescription[] = _("Ups evasion in a sandstorm."); -static const u8 gStaticAbilityDescription[] = _("Paralyzes on contact."); -static const u8 gVoltAbsorbAbilityDescription[] = _("Turns electricity into HP."); -static const u8 gWaterAbsorbAbilityDescription[] = _("Changes water into HP."); -static const u8 gObliviousAbilityDescription[] = _("Prevents attraction."); -static const u8 gCloudNineAbilityDescription[] = _("Negates weather effects."); -static const u8 gCompoundEyesAbilityDescription[] = _("Raises accuracy."); -static const u8 gInsomniaAbilityDescription[] = _("Prevents sleep."); -static const u8 gColorChangeAbilityDescription[] = _("Changes type to foe’s move."); -static const u8 gImmunityAbilityDescription[] = _("Prevents poisoning."); -static const u8 gFlashFireAbilityDescription[] = _("Powers up if hit by fire."); -static const u8 gShieldDustAbilityDescription[] = _("Prevents added effects."); -static const u8 gOwnTempoAbilityDescription[] = _("Prevents confusion."); -static const u8 gSuctionCupsAbilityDescription[] = _("Firmly anchors the body."); -static const u8 gIntimidateAbilityDescription[] = _("Lowers the foe’s ATTACK."); -static const u8 gShadowTagAbilityDescription[] = _("Prevents the foe’s escape."); -static const u8 gRoughSkinAbilityDescription[] = _("Hurts to touch."); -static const u8 gWonderGuardAbilityDescription[] = _("“Super effective†hits."); -static const u8 gLevitateAbilityDescription[] = _("Not hit by GROUND attacks."); -static const u8 gEffectSporeAbilityDescription[] = _("Leaves spores on contact."); -static const u8 gSynchronizeAbilityDescription[] = _("Passes on status problems."); -static const u8 gClearBodyAbilityDescription[] = _("Prevents ability reduction."); -static const u8 gNaturalCureAbilityDescription[] = _("Heals upon switching out."); -static const u8 gLightningRodAbilityDescription[] = _("Draws electrical moves."); -static const u8 gSereneGraceAbilityDescription[] = _("Promotes added effects."); -static const u8 gSwiftSwimAbilityDescription[] = _("Raises SPEED in rain."); -static const u8 gChlorophyllAbilityDescription[] = _("Raises SPEED in sunshine."); -static const u8 gIlluminateAbilityDescription[] = _("Encounter rate increases."); -static const u8 gTraceAbilityDescription[] = _("Copies special ability."); -static const u8 gHugePowerAbilityDescription[] = _("Raises ATTACK."); -static const u8 gPoisonPointAbilityDescription[] = _("Poisons foe on contact."); -static const u8 gInnerFocusAbilityDescription[] = _("Prevents flinching."); -static const u8 gMagmaArmorAbilityDescription[] = _("Prevents freezing."); -static const u8 gWaterVeilAbilityDescription[] = _("Prevents burns."); -static const u8 gMagnetPullAbilityDescription[] = _("Traps STEEL-type POKéMON."); -static const u8 gSoundproofAbilityDescription[] = _("Avoids sound-based moves."); -static const u8 gRainDishAbilityDescription[] = _("Slight HP recovery in rain."); -static const u8 gSandStreamAbilityDescription[] = _("Summons a sandstorm."); -static const u8 gPressureAbilityDescription[] = _("Raises foe’s PP usage."); -static const u8 gThickFatAbilityDescription[] = _("Heat-and-cold protection."); -static const u8 gEarlyBirdAbilityDescription[] = _("Awakens quickly from sleep."); -static const u8 gFlameBodyAbilityDescription[] = _("Burns the foe on contact."); -static const u8 gRunAwayAbilityDescription[] = _("Makes escaping easier."); -static const u8 gKeenEyeAbilityDescription[] = _("Prevents loss of accuracy."); -static const u8 gHyperCutterAbilityDescription[] = _("Prevents ATTACK reduction."); -static const u8 gPickupAbilityDescription[] = _("May pick up items."); -static const u8 gTruantAbilityDescription[] = _("Moves only every two turns."); -static const u8 gHustleAbilityDescription[] = _("Trades accuracy for power."); -static const u8 gCuteCharmAbilityDescription[] = _("Infatuates on contact."); -static const u8 gPlusAbilityDescription[] = _("Powers up with MINUS."); -static const u8 gMinusAbilityDescription[] = _("Powers up with PLUS."); -static const u8 gForecastAbilityDescription[] = _("Changes with the weather."); -static const u8 gStickyHoldAbilityDescription[] = _("Prevents item theft."); -static const u8 gShedSkinAbilityDescription[] = _("Heals the body by shedding."); -static const u8 gGutsAbilityDescription[] = _("Ups ATTACK if suffering."); -static const u8 gMarvelScaleAbilityDescription[] = _("Ups DEFENSE if suffering."); -static const u8 gLiquidOozeAbilityDescription[] = _("Draining causes injury."); -static const u8 gOvergrowAbilityDescription[] = _("Ups GRASS moves in a pinch."); -static const u8 gBlazeAbilityDescription[] = _("Ups FIRE moves in a pinch."); -static const u8 gTorrentAbilityDescription[] = _("Ups WATER moves in a pinch."); -static const u8 gSwarmAbilityDescription[] = _("Ups BUG moves in a pinch."); -static const u8 gRockHeadAbilityDescription[] = _("Prevents recoil damage."); -static const u8 gDroughtAbilityDescription[] = _("Summons sunlight in battle."); -static const u8 gArenaTrapAbilityDescription[] = _("Prevents fleeing."); -static const u8 gVitalSpiritAbilityDescription[] = _("Prevents sleep."); -static const u8 gWhiteSmokeAbilityDescription[] = _("Prevents ability reduction."); -static const u8 gPurePowerAbilityDescription[] = _("Raises ATTACK."); -static const u8 gShellArmorAbilityDescription[] = _("Blocks critical hits."); -static const u8 gCacophonyAbilityDescription[] = _("Avoids sound-based moves."); -static const u8 gAirLockAbilityDescription[] = _("Negates weather effects."); +static const u8 sNoneDescription[] = _("No special ability."); +static const u8 sStenchDescription[] = _("Helps repel wild POKéMON."); +static const u8 sDrizzleDescription[] = _("Summons rain in battle."); +static const u8 sSpeedBoostDescription[] = _("Gradually boosts SPEED."); +static const u8 sBattleArmorDescription[] = _("Blocks critical hits."); +static const u8 sSturdyDescription[] = _("Negates 1-hit KO attacks."); +static const u8 sDampDescription[] = _("Prevents self-destruction."); +static const u8 sLimberDescription[] = _("Prevents paralysis."); +static const u8 sSandVeilDescription[] = _("Ups evasion in a sandstorm."); +static const u8 sStaticDescription[] = _("Paralyzes on contact."); +static const u8 sVoltAbsorbDescription[] = _("Turns electricity into HP."); +static const u8 sWaterAbsorbDescription[] = _("Changes water into HP."); +static const u8 sObliviousDescription[] = _("Prevents attraction."); +static const u8 sCloudNineDescription[] = _("Negates weather effects."); +static const u8 sCompoundEyesDescription[] = _("Raises accuracy."); +static const u8 sInsomniaDescription[] = _("Prevents sleep."); +static const u8 sColorChangeDescription[] = _("Changes type to foe’s move."); +static const u8 sImmunityDescription[] = _("Prevents poisoning."); +static const u8 sFlashFireDescription[] = _("Powers up if hit by fire."); +static const u8 sShieldDustDescription[] = _("Prevents added effects."); +static const u8 sOwnTempoDescription[] = _("Prevents confusion."); +static const u8 sSuctionCupsDescription[] = _("Firmly anchors the body."); +static const u8 sIntimidateDescription[] = _("Lowers the foe’s ATTACK."); +static const u8 sShadowTagDescription[] = _("Prevents the foe’s escape."); +static const u8 sRoughSkinDescription[] = _("Hurts to touch."); +static const u8 sWonderGuardDescription[] = _("“Super effective†hits."); +static const u8 sLevitateDescription[] = _("Not hit by GROUND attacks."); +static const u8 sEffectSporeDescription[] = _("Leaves spores on contact."); +static const u8 sSynchronizeDescription[] = _("Passes on status problems."); +static const u8 sClearBodyDescription[] = _("Prevents ability reduction."); +static const u8 sNaturalCureDescription[] = _("Heals upon switching out."); +static const u8 sLightningRodDescription[] = _("Draws electrical moves."); +static const u8 sSereneGraceDescription[] = _("Promotes added effects."); +static const u8 sSwiftSwimDescription[] = _("Raises SPEED in rain."); +static const u8 sChlorophyllDescription[] = _("Raises SPEED in sunshine."); +static const u8 sIlluminateDescription[] = _("Encounter rate increases."); +static const u8 sTraceDescription[] = _("Copies special ability."); +static const u8 sHugePowerDescription[] = _("Raises ATTACK."); +static const u8 sPoisonPointDescription[] = _("Poisons foe on contact."); +static const u8 sInnerFocusDescription[] = _("Prevents flinching."); +static const u8 sMagmaArmorDescription[] = _("Prevents freezing."); +static const u8 sWaterVeilDescription[] = _("Prevents burns."); +static const u8 sMagnetPullDescription[] = _("Traps STEEL-type POKéMON."); +static const u8 sSoundproofDescription[] = _("Avoids sound-based moves."); +static const u8 sRainDishDescription[] = _("Slight HP recovery in rain."); +static const u8 sSandStreamDescription[] = _("Summons a sandstorm."); +static const u8 sPressureDescription[] = _("Raises foe’s PP usage."); +static const u8 sThickFatDescription[] = _("Heat-and-cold protection."); +static const u8 sEarlyBirdDescription[] = _("Awakens quickly from sleep."); +static const u8 sFlameBodyDescription[] = _("Burns the foe on contact."); +static const u8 sRunAwayDescription[] = _("Makes escaping easier."); +static const u8 sKeenEyeDescription[] = _("Prevents loss of accuracy."); +static const u8 sHyperCutterDescription[] = _("Prevents ATTACK reduction."); +static const u8 sPickupDescription[] = _("May pick up items."); +static const u8 sTruantDescription[] = _("Moves only every two turns."); +static const u8 sHustleDescription[] = _("Trades accuracy for power."); +static const u8 sCuteCharmDescription[] = _("Infatuates on contact."); +static const u8 sPlusDescription[] = _("Powers up with MINUS."); +static const u8 sMinusDescription[] = _("Powers up with PLUS."); +static const u8 sForecastDescription[] = _("Changes with the weather."); +static const u8 sStickyHoldDescription[] = _("Prevents item theft."); +static const u8 sShedSkinDescription[] = _("Heals the body by shedding."); +static const u8 sGutsDescription[] = _("Ups ATTACK if suffering."); +static const u8 sMarvelScaleDescription[] = _("Ups DEFENSE if suffering."); +static const u8 sLiquidOozeDescription[] = _("Draining causes injury."); +static const u8 sOvergrowDescription[] = _("Ups GRASS moves in a pinch."); +static const u8 sBlazeDescription[] = _("Ups FIRE moves in a pinch."); +static const u8 sTorrentDescription[] = _("Ups WATER moves in a pinch."); +static const u8 sSwarmDescription[] = _("Ups BUG moves in a pinch."); +static const u8 sRockHeadDescription[] = _("Prevents recoil damage."); +static const u8 sDroughtDescription[] = _("Summons sunlight in battle."); +static const u8 sArenaTrapDescription[] = _("Prevents fleeing."); +static const u8 sVitalSpiritDescription[] = _("Prevents sleep."); +static const u8 sWhiteSmokeDescription[] = _("Prevents ability reduction."); +static const u8 sPurePowerDescription[] = _("Raises ATTACK."); +static const u8 sShellArmorDescription[] = _("Blocks critical hits."); +static const u8 sCacophonyDescription[] = _("Avoids sound-based moves."); +static const u8 sAirLockDescription[] = _("Negates weather effects."); const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1] = { - _("-------"), - _("STENCH"), - _("DRIZZLE"), - _("SPEED BOOST"), - _("BATTLE ARMOR"), - _("STURDY"), - _("DAMP"), - _("LIMBER"), - _("SAND VEIL"), - _("STATIC"), - _("VOLT ABSORB"), - _("WATER ABSORB"), - _("OBLIVIOUS"), - _("CLOUD NINE"), - _("COMPOUNDEYES"), - _("INSOMNIA"), - _("COLOR CHANGE"), - _("IMMUNITY"), - _("FLASH FIRE"), - _("SHIELD DUST"), - _("OWN TEMPO"), - _("SUCTION CUPS"), - _("INTIMIDATE"), - _("SHADOW TAG"), - _("ROUGH SKIN"), - _("WONDER GUARD"), - _("LEVITATE"), - _("EFFECT SPORE"), - _("SYNCHRONIZE"), - _("CLEAR BODY"), - _("NATURAL CURE"), - _("LIGHTNINGROD"), - _("SERENE GRACE"), - _("SWIFT SWIM"), - _("CHLOROPHYLL"), - _("ILLUMINATE"), - _("TRACE"), - _("HUGE POWER"), - _("POISON POINT"), - _("INNER FOCUS"), - _("MAGMA ARMOR"), - _("WATER VEIL"), - _("MAGNET PULL"), - _("SOUNDPROOF"), - _("RAIN DISH"), - _("SAND STREAM"), - _("PRESSURE"), - _("THICK FAT"), - _("EARLY BIRD"), - _("FLAME BODY"), - _("RUN AWAY"), - _("KEEN EYE"), - _("HYPER CUTTER"), - _("PICKUP"), - _("TRUANT"), - _("HUSTLE"), - _("CUTE CHARM"), - _("PLUS"), - _("MINUS"), - _("FORECAST"), - _("STICKY HOLD"), - _("SHED SKIN"), - _("GUTS"), - _("MARVEL SCALE"), - _("LIQUID OOZE"), - _("OVERGROW"), - _("BLAZE"), - _("TORRENT"), - _("SWARM"), - _("ROCK HEAD"), - _("DROUGHT"), - _("ARENA TRAP"), - _("VITAL SPIRIT"), - _("WHITE SMOKE"), - _("PURE POWER"), - _("SHELL ARMOR"), - _("CACOPHONY"), - _("AIR LOCK"), + [ABILITY_NONE] = _("-------"), + [ABILITY_STENCH] = _("STENCH"), + [ABILITY_DRIZZLE] = _("DRIZZLE"), + [ABILITY_SPEED_BOOST] = _("SPEED BOOST"), + [ABILITY_BATTLE_ARMOR] = _("BATTLE ARMOR"), + [ABILITY_STURDY] = _("STURDY"), + [ABILITY_DAMP] = _("DAMP"), + [ABILITY_LIMBER] = _("LIMBER"), + [ABILITY_SAND_VEIL] = _("SAND VEIL"), + [ABILITY_STATIC] = _("STATIC"), + [ABILITY_VOLT_ABSORB] = _("VOLT ABSORB"), + [ABILITY_WATER_ABSORB] = _("WATER ABSORB"), + [ABILITY_OBLIVIOUS] = _("OBLIVIOUS"), + [ABILITY_CLOUD_NINE] = _("CLOUD NINE"), + [ABILITY_COMPOUND_EYES] = _("COMPOUNDEYES"), + [ABILITY_INSOMNIA] = _("INSOMNIA"), + [ABILITY_COLOR_CHANGE] = _("COLOR CHANGE"), + [ABILITY_IMMUNITY] = _("IMMUNITY"), + [ABILITY_FLASH_FIRE] = _("FLASH FIRE"), + [ABILITY_SHIELD_DUST] = _("SHIELD DUST"), + [ABILITY_OWN_TEMPO] = _("OWN TEMPO"), + [ABILITY_SUCTION_CUPS] = _("SUCTION CUPS"), + [ABILITY_INTIMIDATE] = _("INTIMIDATE"), + [ABILITY_SHADOW_TAG] = _("SHADOW TAG"), + [ABILITY_ROUGH_SKIN] = _("ROUGH SKIN"), + [ABILITY_WONDER_GUARD] = _("WONDER GUARD"), + [ABILITY_LEVITATE] = _("LEVITATE"), + [ABILITY_EFFECT_SPORE] = _("EFFECT SPORE"), + [ABILITY_SYNCHRONIZE] = _("SYNCHRONIZE"), + [ABILITY_CLEAR_BODY] = _("CLEAR BODY"), + [ABILITY_NATURAL_CURE] = _("NATURAL CURE"), + [ABILITY_LIGHTNING_ROD] = _("LIGHTNINGROD"), + [ABILITY_SERENE_GRACE] = _("SERENE GRACE"), + [ABILITY_SWIFT_SWIM] = _("SWIFT SWIM"), + [ABILITY_CHLOROPHYLL] = _("CHLOROPHYLL"), + [ABILITY_ILLUMINATE] = _("ILLUMINATE"), + [ABILITY_TRACE] = _("TRACE"), + [ABILITY_HUGE_POWER] = _("HUGE POWER"), + [ABILITY_POISON_POINT] = _("POISON POINT"), + [ABILITY_INNER_FOCUS] = _("INNER FOCUS"), + [ABILITY_MAGMA_ARMOR] = _("MAGMA ARMOR"), + [ABILITY_WATER_VEIL] = _("WATER VEIL"), + [ABILITY_MAGNET_PULL] = _("MAGNET PULL"), + [ABILITY_SOUNDPROOF] = _("SOUNDPROOF"), + [ABILITY_RAIN_DISH] = _("RAIN DISH"), + [ABILITY_SAND_STREAM] = _("SAND STREAM"), + [ABILITY_PRESSURE] = _("PRESSURE"), + [ABILITY_THICK_FAT] = _("THICK FAT"), + [ABILITY_EARLY_BIRD] = _("EARLY BIRD"), + [ABILITY_FLAME_BODY] = _("FLAME BODY"), + [ABILITY_RUN_AWAY] = _("RUN AWAY"), + [ABILITY_KEEN_EYE] = _("KEEN EYE"), + [ABILITY_HYPER_CUTTER] = _("HYPER CUTTER"), + [ABILITY_PICKUP] = _("PICKUP"), + [ABILITY_TRUANT] = _("TRUANT"), + [ABILITY_HUSTLE] = _("HUSTLE"), + [ABILITY_CUTE_CHARM] = _("CUTE CHARM"), + [ABILITY_PLUS] = _("PLUS"), + [ABILITY_MINUS] = _("MINUS"), + [ABILITY_FORECAST] = _("FORECAST"), + [ABILITY_STICKY_HOLD] = _("STICKY HOLD"), + [ABILITY_SHED_SKIN] = _("SHED SKIN"), + [ABILITY_GUTS] = _("GUTS"), + [ABILITY_MARVEL_SCALE] = _("MARVEL SCALE"), + [ABILITY_LIQUID_OOZE] = _("LIQUID OOZE"), + [ABILITY_OVERGROW] = _("OVERGROW"), + [ABILITY_BLAZE] = _("BLAZE"), + [ABILITY_TORRENT] = _("TORRENT"), + [ABILITY_SWARM] = _("SWARM"), + [ABILITY_ROCK_HEAD] = _("ROCK HEAD"), + [ABILITY_DROUGHT] = _("DROUGHT"), + [ABILITY_ARENA_TRAP] = _("ARENA TRAP"), + [ABILITY_VITAL_SPIRIT] = _("VITAL SPIRIT"), + [ABILITY_WHITE_SMOKE] = _("WHITE SMOKE"), + [ABILITY_PURE_POWER] = _("PURE POWER"), + [ABILITY_SHELL_ARMOR] = _("SHELL ARMOR"), + [ABILITY_CACOPHONY] = _("CACOPHONY"), + [ABILITY_AIR_LOCK] = _("AIR LOCK"), }; const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT] = { - gNoneAbilityDescription, - gStenchAbilityDescription, - gDrizzleAbilityDescription, - gSpeedBoostAbilityDescription, - gBattleArmorAbilityDescription, - gSturdyAbilityDescription, - gDampAbilityDescription, - gLimberAbilityDescription, - gSandVeilAbilityDescription, - gStaticAbilityDescription, - gVoltAbsorbAbilityDescription, - gWaterAbsorbAbilityDescription, - gObliviousAbilityDescription, - gCloudNineAbilityDescription, - gCompoundEyesAbilityDescription, - gInsomniaAbilityDescription, - gColorChangeAbilityDescription, - gImmunityAbilityDescription, - gFlashFireAbilityDescription, - gShieldDustAbilityDescription, - gOwnTempoAbilityDescription, - gSuctionCupsAbilityDescription, - gIntimidateAbilityDescription, - gShadowTagAbilityDescription, - gRoughSkinAbilityDescription, - gWonderGuardAbilityDescription, - gLevitateAbilityDescription, - gEffectSporeAbilityDescription, - gSynchronizeAbilityDescription, - gClearBodyAbilityDescription, - gNaturalCureAbilityDescription, - gLightningRodAbilityDescription, - gSereneGraceAbilityDescription, - gSwiftSwimAbilityDescription, - gChlorophyllAbilityDescription, - gIlluminateAbilityDescription, - gTraceAbilityDescription, - gHugePowerAbilityDescription, - gPoisonPointAbilityDescription, - gInnerFocusAbilityDescription, - gMagmaArmorAbilityDescription, - gWaterVeilAbilityDescription, - gMagnetPullAbilityDescription, - gSoundproofAbilityDescription, - gRainDishAbilityDescription, - gSandStreamAbilityDescription, - gPressureAbilityDescription, - gThickFatAbilityDescription, - gEarlyBirdAbilityDescription, - gFlameBodyAbilityDescription, - gRunAwayAbilityDescription, - gKeenEyeAbilityDescription, - gHyperCutterAbilityDescription, - gPickupAbilityDescription, - gTruantAbilityDescription, - gHustleAbilityDescription, - gCuteCharmAbilityDescription, - gPlusAbilityDescription, - gMinusAbilityDescription, - gForecastAbilityDescription, - gStickyHoldAbilityDescription, - gShedSkinAbilityDescription, - gGutsAbilityDescription, - gMarvelScaleAbilityDescription, - gLiquidOozeAbilityDescription, - gOvergrowAbilityDescription, - gBlazeAbilityDescription, - gTorrentAbilityDescription, - gSwarmAbilityDescription, - gRockHeadAbilityDescription, - gDroughtAbilityDescription, - gArenaTrapAbilityDescription, - gVitalSpiritAbilityDescription, - gWhiteSmokeAbilityDescription, - gPurePowerAbilityDescription, - gShellArmorAbilityDescription, - gCacophonyAbilityDescription, - gAirLockAbilityDescription, + [ABILITY_NONE] = sNoneDescription, + [ABILITY_STENCH] = sStenchDescription, + [ABILITY_DRIZZLE] = sDrizzleDescription, + [ABILITY_SPEED_BOOST] = sSpeedBoostDescription, + [ABILITY_BATTLE_ARMOR] = sBattleArmorDescription, + [ABILITY_STURDY] = sSturdyDescription, + [ABILITY_DAMP] = sDampDescription, + [ABILITY_LIMBER] = sLimberDescription, + [ABILITY_SAND_VEIL] = sSandVeilDescription, + [ABILITY_STATIC] = sStaticDescription, + [ABILITY_VOLT_ABSORB] = sVoltAbsorbDescription, + [ABILITY_WATER_ABSORB] = sWaterAbsorbDescription, + [ABILITY_OBLIVIOUS] = sObliviousDescription, + [ABILITY_CLOUD_NINE] = sCloudNineDescription, + [ABILITY_COMPOUND_EYES] = sCompoundEyesDescription, + [ABILITY_INSOMNIA] = sInsomniaDescription, + [ABILITY_COLOR_CHANGE] = sColorChangeDescription, + [ABILITY_IMMUNITY] = sImmunityDescription, + [ABILITY_FLASH_FIRE] = sFlashFireDescription, + [ABILITY_SHIELD_DUST] = sShieldDustDescription, + [ABILITY_OWN_TEMPO] = sOwnTempoDescription, + [ABILITY_SUCTION_CUPS] = sSuctionCupsDescription, + [ABILITY_INTIMIDATE] = sIntimidateDescription, + [ABILITY_SHADOW_TAG] = sShadowTagDescription, + [ABILITY_ROUGH_SKIN] = sRoughSkinDescription, + [ABILITY_WONDER_GUARD] = sWonderGuardDescription, + [ABILITY_LEVITATE] = sLevitateDescription, + [ABILITY_EFFECT_SPORE] = sEffectSporeDescription, + [ABILITY_SYNCHRONIZE] = sSynchronizeDescription, + [ABILITY_CLEAR_BODY] = sClearBodyDescription, + [ABILITY_NATURAL_CURE] = sNaturalCureDescription, + [ABILITY_LIGHTNING_ROD] = sLightningRodDescription, + [ABILITY_SERENE_GRACE] = sSereneGraceDescription, + [ABILITY_SWIFT_SWIM] = sSwiftSwimDescription, + [ABILITY_CHLOROPHYLL] = sChlorophyllDescription, + [ABILITY_ILLUMINATE] = sIlluminateDescription, + [ABILITY_TRACE] = sTraceDescription, + [ABILITY_HUGE_POWER] = sHugePowerDescription, + [ABILITY_POISON_POINT] = sPoisonPointDescription, + [ABILITY_INNER_FOCUS] = sInnerFocusDescription, + [ABILITY_MAGMA_ARMOR] = sMagmaArmorDescription, + [ABILITY_WATER_VEIL] = sWaterVeilDescription, + [ABILITY_MAGNET_PULL] = sMagnetPullDescription, + [ABILITY_SOUNDPROOF] = sSoundproofDescription, + [ABILITY_RAIN_DISH] = sRainDishDescription, + [ABILITY_SAND_STREAM] = sSandStreamDescription, + [ABILITY_PRESSURE] = sPressureDescription, + [ABILITY_THICK_FAT] = sThickFatDescription, + [ABILITY_EARLY_BIRD] = sEarlyBirdDescription, + [ABILITY_FLAME_BODY] = sFlameBodyDescription, + [ABILITY_RUN_AWAY] = sRunAwayDescription, + [ABILITY_KEEN_EYE] = sKeenEyeDescription, + [ABILITY_HYPER_CUTTER] = sHyperCutterDescription, + [ABILITY_PICKUP] = sPickupDescription, + [ABILITY_TRUANT] = sTruantDescription, + [ABILITY_HUSTLE] = sHustleDescription, + [ABILITY_CUTE_CHARM] = sCuteCharmDescription, + [ABILITY_PLUS] = sPlusDescription, + [ABILITY_MINUS] = sMinusDescription, + [ABILITY_FORECAST] = sForecastDescription, + [ABILITY_STICKY_HOLD] = sStickyHoldDescription, + [ABILITY_SHED_SKIN] = sShedSkinDescription, + [ABILITY_GUTS] = sGutsDescription, + [ABILITY_MARVEL_SCALE] = sMarvelScaleDescription, + [ABILITY_LIQUID_OOZE] = sLiquidOozeDescription, + [ABILITY_OVERGROW] = sOvergrowDescription, + [ABILITY_BLAZE] = sBlazeDescription, + [ABILITY_TORRENT] = sTorrentDescription, + [ABILITY_SWARM] = sSwarmDescription, + [ABILITY_ROCK_HEAD] = sRockHeadDescription, + [ABILITY_DROUGHT] = sDroughtDescription, + [ABILITY_ARENA_TRAP] = sArenaTrapDescription, + [ABILITY_VITAL_SPIRIT] = sVitalSpiritDescription, + [ABILITY_WHITE_SMOKE] = sWhiteSmokeDescription, + [ABILITY_PURE_POWER] = sPurePowerDescription, + [ABILITY_SHELL_ARMOR] = sShellArmorDescription, + [ABILITY_CACOPHONY] = sCacophonyDescription, + [ABILITY_AIR_LOCK] = sAirLockDescription, }; - -#endif // POKEEMERALD_DATA_TEXT_ABILITIES_H -- cgit v1.2.3 From 94bbfa7fa0ed62b0182d2dfd088876cc93ca99cd Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 16 Sep 2018 15:58:13 +0200 Subject: Use pokeruby's formatting for move descriptions --- src/data/text/move_descriptions.h | 2481 ++++++++++++++++++++++++++----------- 1 file changed, 1772 insertions(+), 709 deletions(-) (limited to 'src') diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h index f8830c593..3642f66b1 100644 --- a/src/data/text/move_descriptions.h +++ b/src/data/text/move_descriptions.h @@ -1,714 +1,1777 @@ -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."); +static const u8 sNullDescription[] = _( + ""); + +static const u8 sPoundDescription[] = _( + "Pounds the foe with\n" + "forelegs or tail."); + +static const u8 sKarateChopDescription[] = _( + "A chopping attack with a\n" + "high critical-hit ratio."); + +static const u8 sDoubleSlapDescription[] = _( + "Repeatedly slaps the foe\n" + "2 to 5 times."); + +static const u8 sCometPunchDescription[] = _( + "Repeatedly punches the foe\n" + "2 to 5 times."); + +static const u8 sMegaPunchDescription[] = _( + "A strong punch thrown with\n" + "incredible power."); + +static const u8 sPayDayDescription[] = _( + "Throws coins at the foe.\n" + "Money is recovered after."); + +static const u8 sFirePunchDescription[] = _( + "A fiery punch that may burn\n" + "the foe."); + +static const u8 sIcePunchDescription[] = _( + "An icy punch that may\n" + "freeze the foe."); + +static const u8 sThunderPunchDescription[] = _( + "An electrified punch that\n" + "may paralyze the foe."); + +static const u8 sScratchDescription[] = _( + "Scratches the foe with\n" + "sharp claws."); + +static const u8 sViceGripDescription[] = _( + "Grips the foe with large and\n" + "powerful pincers."); + +static const u8 sGuillotineDescription[] = _( + "A powerful pincer attack\n" + "that may cause fainting."); + +static const u8 sRazorWindDescription[] = _( + "A 2-turn move that strikes\n" + "the foe on the 2nd turn."); + +static const u8 sSwordsDanceDescription[] = _( + "A fighting dance that\n" + "sharply raises ATTACK."); + +static const u8 sCutDescription[] = _( + "Cuts the foe with sharp\n" + "scythes, claws, etc."); + +static const u8 sGustDescription[] = _( + "Strikes the foe with a gust\n" + "of wind whipped up by wings."); + +static const u8 sWingAttackDescription[] = _( + "Strikes the foe with wings\n" + "spread wide."); + +static const u8 sWhirlwindDescription[] = _( + "Blows away the foe with\n" + "wind and ends the battle."); + +static const u8 sFlyDescription[] = _( + "Flies up on the first turn,\n" + "then strikes the next turn."); + +static const u8 sBindDescription[] = _( + "Binds and squeezes the foe\n" + "for 2 to 5 turns."); + +static const u8 sSlamDescription[] = _( + "Slams the foe with a long\n" + "tail, vine, etc."); + +static const u8 sVineWhipDescription[] = _( + "Strikes the foe with\n" + "slender, whiplike vines."); + +static const u8 sStompDescription[] = _( + "Stomps the enemy with a big\n" + "foot. May cause flinching."); + +static const u8 sDoubleKickDescription[] = _( + "A double-kicking attack\n" + "that strikes the foe twice."); + +static const u8 sMegaKickDescription[] = _( + "An extremely powerful kick\n" + "with intense force."); + +static const u8 sJumpKickDescription[] = _( + "A strong jumping kick. May\n" + "miss and hurt the kicker."); + +static const u8 sRollingKickDescription[] = _( + "A fast kick delivered from\n" + "a rapid spin."); + +static const u8 sSandAttackDescription[] = _( + "Reduces the foe’s accuracy\n" + "by hurling sand in its face."); + +static const u8 sHeadbuttDescription[] = _( + "A ramming attack that may\n" + "cause flinching."); + +static const u8 sHornAttackDescription[] = _( + "Jabs the foe with sharp\n" + "horns."); + +static const u8 sFuryAttackDescription[] = _( + "Jabs the foe 2 to 5 times\n" + "with sharp horns, etc."); + +static const u8 sHornDrillDescription[] = _( + "A one-hit KO attack that\n" + "uses a horn like a drill."); + +static const u8 sTackleDescription[] = _( + "Charges the foe with a full-\n" + "body tackle."); + +static const u8 sBodySlamDescription[] = _( + "A full-body slam that may\n" + "cause paralysis."); + +static const u8 sWrapDescription[] = _( + "Wraps and squeezes the foe\n" + "2 to 5 times with vines, etc."); + +static const u8 sTakeDownDescription[] = _( + "A reckless charge attack\n" + "that also hurts the user."); + +static const u8 sThrashDescription[] = _( + "A rampage of 2 to 3 turns\n" + "that confuses the user."); + +static const u8 sDoubleEdgeDescription[] = _( + "A life-risking tackle that\n" + "also hurts the user."); + +static const u8 sTailWhipDescription[] = _( + "Wags the tail to lower the\n" + "foe’s DEFENSE."); + +static const u8 sPoisonStingDescription[] = _( + "A toxic attack with barbs,\n" + "etc., that may poison."); + +static const u8 sTwineedleDescription[] = _( + "Stingers on the forelegs\n" + "jab the foe twice."); + +static const u8 sPinMissileDescription[] = _( + "Sharp pins are fired to\n" + "strike 2 to 5 times."); + +static const u8 sLeerDescription[] = _( + "Frightens the foe with a\n" + "leer to lower DEFENSE."); + +static const u8 sBiteDescription[] = _( + "Bites with vicious fangs.\n" + "May cause flinching."); + +static const u8 sGrowlDescription[] = _( + "Growls cutely to reduce the\n" + "foe’s ATTACK."); + +static const u8 sRoarDescription[] = _( + "Makes the foe flee to end\n" + "the battle."); + +static const u8 sSingDescription[] = _( + "A soothing song lulls the\n" + "foe into a deep slumber."); + +static const u8 sSupersonicDescription[] = _( + "Emits bizarre sound waves\n" + "that may confuse the foe."); + +static const u8 sSonicBoomDescription[] = _( + "Launches shock waves that\n" + "always inflict 20 HP damage."); + +static const u8 sDisableDescription[] = _( + "Psychically disables one of\n" + "the foe’s moves."); + +static const u8 sAcidDescription[] = _( + "Sprays a hide-melting acid.\n" + "May lower DEFENSE."); + +static const u8 sEmberDescription[] = _( + "A weak fire attack that may\n" + "inflict a burn."); + +static const u8 sFlamethrowerDescription[] = _( + "A powerful fire attack that\n" + "may inflict a burn."); + +static const u8 sMistDescription[] = _( + "Creates a mist that stops\n" + "reduction of abilities."); + +static const u8 sWaterGunDescription[] = _( + "Squirts water to attack\n" + "the foe."); + +static const u8 sHydroPumpDescription[] = _( + "Blasts water at high power\n" + "to strike the foe."); + +static const u8 sSurfDescription[] = _( + "Creates a huge wave, then\n" + "crashes it down on the foe."); + +static const u8 sIceBeamDescription[] = _( + "Blasts the foe with an icy\n" + "beam that may freeze it."); + +static const u8 sBlizzardDescription[] = _( + "Hits the foe with an icy\n" + "storm that may freeze it."); + +static const u8 sPsybeamDescription[] = _( + "Fires a peculiar ray that\n" + "may confuse the foe."); + +static const u8 sBubbleBeamDescription[] = _( + "Forcefully sprays bubbles\n" + "that may lower SPEED."); + +static const u8 sAuroraBeamDescription[] = _( + "Fires a rainbow-colored\n" + "beam that may lower ATTACK."); + +static const u8 sHyperBeamDescription[] = _( + "Powerful, but leaves the\n" + "user immobile the next turn."); + +static const u8 sPeckDescription[] = _( + "Attacks the foe with a\n" + "jabbing beak, etc."); + +static const u8 sDrillPeckDescription[] = _( + "A corkscrewing attack with\n" + "the beak acting as a drill."); + +static const u8 sSubmissionDescription[] = _( + "A reckless body slam that\n" + "also hurts the user."); + +static const u8 sLowKickDescription[] = _( + "A kick that inflicts more\n" + "damage on heavier foes."); + +static const u8 sCounterDescription[] = _( + "Retaliates any physical hit\n" + "with double the power."); + +static const u8 sSeismicTossDescription[] = _( + "Inflicts damage identical\n" + "to the user’s level."); + +static const u8 sStrengthDescription[] = _( + "Builds enormous power,\n" + "then slams the foe."); + +static const u8 sAbsorbDescription[] = _( + "An attack that absorbs\n" + "half the damage inflicted."); + +static const u8 sMegaDrainDescription[] = _( + "An attack that absorbs\n" + "half the damage inflicted."); + +static const u8 sLeechSeedDescription[] = _( + "Plants a seed on the foe to\n" + "steal HP on every turn."); + +static const u8 sGrowthDescription[] = _( + "Forces the body to grow\n" + "and heightens SP. ATK."); + +static const u8 sRazorLeafDescription[] = _( + "Cuts the enemy with leaves.\n" + "High critical-hit ratio."); + +static const u8 sSolarBeamDescription[] = _( + "Absorbs light in one turn,\n" + "then attacks next turn."); + +static const u8 sPoisonPowderDescription[] = _( + "Scatters a toxic powder\n" + "that may poison the foe."); + +static const u8 sStunSporeDescription[] = _( + "Scatters a powder that may\n" + "paralyze the foe."); + +static const u8 sSleepPowderDescription[] = _( + "Scatters a powder that may\n" + "cause the foe to sleep."); + +static const u8 sPetalDanceDescription[] = _( + "A rampage of 2 to 3 turns\n" + "that confuses the user."); + +static const u8 sStringShotDescription[] = _( + "Binds the foe with string\n" + "to reduce its SPEED."); + +static const u8 sDragonRageDescription[] = _( + "Launches shock waves that\n" + "always inflict 40 HP damage."); + +static const u8 sFireSpinDescription[] = _( + "Traps the foe in a ring of\n" + "fire for 2 to 5 turns."); + +static const u8 sThunderShockDescription[] = _( + "An electrical attack that\n" + "may paralyze the foe."); + +static const u8 sThunderboltDescription[] = _( + "A strong electrical attack\n" + "that may paralyze the foe."); + +static const u8 sThunderWaveDescription[] = _( + "A weak jolt of electricity\n" + "that paralyzes the foe."); + +static const u8 sThunderDescription[] = _( + "A lightning attack that may\n" + "cause paralysis."); + +static const u8 sRockThrowDescription[] = _( + "Throws small rocks to\n" + "strike the foe."); + +static const u8 sEarthquakeDescription[] = _( + "A powerful quake, but has\n" + "no effect on flying foes."); + +static const u8 sFissureDescription[] = _( + "A one-hit KO move that\n" + "drops the foe in a fissure."); + +static const u8 sDigDescription[] = _( + "Digs underground the first\n" + "turn and strikes next turn."); + +static const u8 sToxicDescription[] = _( + "Poisons the foe with an\n" + "intensifying toxin."); + +static const u8 sConfusionDescription[] = _( + "A psychic attack that may\n" + "cause confusion."); + +static const u8 sPsychicDescription[] = _( + "A powerful psychic attack\n" + "that may lower SP. DEF."); + +static const u8 sHypnosisDescription[] = _( + "A hypnotizing move that\n" + "may induce sleep."); + +static const u8 sMeditateDescription[] = _( + "Meditates in a peaceful\n" + "fashion to raise ATTACK."); + +static const u8 sAgilityDescription[] = _( + "Relaxes the body to sharply\n" + "boost SPEED."); + +static const u8 sQuickAttackDescription[] = _( + "An extremely fast attack\n" + "that always strikes first."); + +static const u8 sRageDescription[] = _( + "Raises the user’s ATTACK\n" + "every time it is hit."); + +static const u8 sTeleportDescription[] = _( + "A psychic move for fleeing\n" + "from battle instantly."); + +static const u8 sNightShadeDescription[] = _( + "Inflicts damage identical\n" + "to the user’s level."); + +static const u8 sMimicDescription[] = _( + "Copies a move used by the\n" + "foe during one battle."); + +static const u8 sScreechDescription[] = _( + "Emits a screech to sharply\n" + "reduce the foe’s DEFENSE."); + +static const u8 sDoubleTeamDescription[] = _( + "Creates illusory copies to\n" + "raise evasiveness."); + +static const u8 sRecoverDescription[] = _( + "Recovers up to half the\n" + "user’s maximum HP."); + +static const u8 sHardenDescription[] = _( + "Stiffens the body’s \n" + "muscles to raise DEFENSE."); + +static const u8 sMinimizeDescription[] = _( + "Minimizes the user’s size\n" + "to raise evasiveness."); + +static const u8 sSmokescreenDescription[] = _( + "Lowers the foe’s accuracy\n" + "using smoke, ink, etc."); + +static const u8 sConfuseRayDescription[] = _( + "A sinister ray that\n" + "confuses the foe."); + +static const u8 sWithdrawDescription[] = _( + "Withdraws the body into its\n" + "hard shell to raise DEFENSE."); + +static const u8 sDefenseCurlDescription[] = _( + "Curls up to conceal weak\n" + "spots and raise DEFENSE."); + +static const u8 sBarrierDescription[] = _( + "Creates a barrier that\n" + "sharply raises DEFENSE."); + +static const u8 sLightScreenDescription[] = _( + "Creates a wall of light that\n" + "lowers SP. ATK damage."); + +static const u8 sHazeDescription[] = _( + "Creates a black haze that\n" + "eliminates all stat changes."); + +static const u8 sReflectDescription[] = _( + "Creates a wall of light that\n" + "weakens physical attacks."); + +static const u8 sFocusEnergyDescription[] = _( + "Focuses power to raise the\n" + "critical-hit ratio."); + +static const u8 sBideDescription[] = _( + "Endures attack for 2\n" + "turns to retaliate double."); + +static const u8 sMetronomeDescription[] = _( + "Waggles a finger to use any\n" + "POKéMON move at random."); + +static const u8 sMirrorMoveDescription[] = _( + "Counters the foe’s attack\n" + "with the same move."); + +static const u8 sSelfDestructDescription[] = _( + "Inflicts severe damage but\n" + "makes the user faint."); + +static const u8 sEggBombDescription[] = _( + "An egg is forcibly hurled at\n" + "the foe."); + +static const u8 sLickDescription[] = _( + "Licks with a long tongue to\n" + "injure. May also paralyze."); + +static const u8 sSmogDescription[] = _( + "An exhaust-gas attack\n" + "that may also poison."); + +static const u8 sSludgeDescription[] = _( + "Sludge is hurled to inflict\n" + "damage. May also poison."); + +static const u8 sBoneClubDescription[] = _( + "Clubs the foe with a bone.\n" + "May cause flinching."); + +static const u8 sFireBlastDescription[] = _( + "Incinerates everything it\n" + "strikes. May cause a burn."); + +static const u8 sWaterfallDescription[] = _( + "Charges the foe with speed\n" + "to climb waterfalls."); + +static const u8 sClampDescription[] = _( + "Traps and squeezes the\n" + "foe for 2 to 5 turns."); + +static const u8 sSwiftDescription[] = _( + "Sprays star-shaped rays\n" + "that never miss."); + +static const u8 sSkullBashDescription[] = _( + "Tucks in the head, then\n" + "attacks on the next turn."); + +static const u8 sSpikeCannonDescription[] = _( + "Launches sharp spikes that\n" + "strike 2 to 5 times."); + +static const u8 sConstrictDescription[] = _( + "Constricts to inflict pain.\n" + "May lower SPEED."); + +static const u8 sAmnesiaDescription[] = _( + "Forgets about something\n" + "and sharply raises SP. DEF."); + +static const u8 sKinesisDescription[] = _( + "Distracts the foe.\n" + "May lower accuracy."); + +static const u8 sSoftBoiledDescription[] = _( + "Recovers up to half the\n" + "user’s maximum HP."); + +static const u8 sHiJumpKickDescription[] = _( + "A jumping knee kick. If it\n" + "misses, the user is hurt."); + +static const u8 sGlareDescription[] = _( + "Intimidates and frightens\n" + "the foe into paralysis."); + +static const u8 sDreamEaterDescription[] = _( + "Takes one half the damage\n" + "inflicted on a sleeping foe."); + +static const u8 sPoisonGasDescription[] = _( + "Envelops the foe in a toxic\n" + "gas that may poison."); + +static const u8 sBarrageDescription[] = _( + "Hurls round objects at the\n" + "foe 2 to 5 times."); + +static const u8 sLeechLifeDescription[] = _( + "An attack that steals half\n" + "the damage inflicted."); + +static const u8 sLovelyKissDescription[] = _( + "Demands a kiss with a scary\n" + "face that induces sleep."); + +static const u8 sSkyAttackDescription[] = _( + "Searches out weak spots,\n" + "then strikes the next turn."); + +static const u8 sTransformDescription[] = _( + "Alters the user’s cells to\n" + "become a copy of the foe."); + +static const u8 sBubbleDescription[] = _( + "An attack using bubbles.\n" + "May lower the foe’s SPEED."); + +static const u8 sDizzyPunchDescription[] = _( + "A rhythmic punch that may\n" + "confuse the foe."); + +static const u8 sSporeDescription[] = _( + "Scatters a cloud of spores\n" + "that always induce sleep."); + +static const u8 sFlashDescription[] = _( + "Looses a powerful blast of\n" + "light that cuts accuracy."); + +static const u8 sPsywaveDescription[] = _( + "Attacks with a psychic\n" + "wave of varying intensity."); + +static const u8 sSplashDescription[] = _( + "It’s just a splash...\n" + "Has no effect whatsoever."); + +static const u8 sAcidArmorDescription[] = _( + "Liquifies the user’s body\n" + "to sharply raise DEFENSE."); + +static const u8 sCrabhammerDescription[] = _( + "Hammers with a pincer. Has a\n" + "high critical-hit ratio."); + +static const u8 sExplosionDescription[] = _( + "Inflicts severe damage but\n" + "makes the user faint."); + +static const u8 sFurySwipesDescription[] = _( + "Rakes the foe with sharp\n" + "claws, etc., 2 to 5 times."); + +static const u8 sBonemerangDescription[] = _( + "Throws a bone boomerang\n" + "that strikes twice."); + +static const u8 sRestDescription[] = _( + "The user sleeps for 2 turns,\n" + "restoring HP and status."); + +static const u8 sRockSlideDescription[] = _( + "Large boulders are hurled.\n" + "May cause flinching."); + +static const u8 sHyperFangDescription[] = _( + "Attacks with sharp fangs.\n" + "May cause flinching."); + +static const u8 sSharpenDescription[] = _( + "Reduces the polygon count\n" + "and raises ATTACK."); + +static const u8 sConversionDescription[] = _( + "Changes the user’s type\n" + "into a known move’s type."); + +static const u8 sTriAttackDescription[] = _( + "Fires three types of beams\n" + "at the same time."); + +static const u8 sSuperFangDescription[] = _( + "Attacks with sharp fangs\n" + "and cuts half the foe’s HP."); + +static const u8 sSlashDescription[] = _( + "Slashes with claws, etc. Has\n" + "a high critical-hit ratio."); + +static const u8 sSubstituteDescription[] = _( + "Creates a decoy using 1/4\n" + "of the user’s maximum HP."); + +static const u8 sStruggleDescription[] = _( + "Used only if all PP are gone.\n" + "Also hurts the user a little."); + +static const u8 sSketchDescription[] = _( + "Copies the foe’s last move\n" + "permanently."); + +static const u8 sTripleKickDescription[] = _( + "Kicks the foe 3 times in a\n" + "row with rising intensity."); + +static const u8 sThiefDescription[] = _( + "While attacking, it may\n" + "steal the foe’s held item."); + +static const u8 sSpiderWebDescription[] = _( + "Ensnares the foe to stop it\n" + "from fleeing or switching."); + +static const u8 sMindReaderDescription[] = _( + "Senses the foe’s action to\n" + "ensure the next move’s hit."); + +static const u8 sNightmareDescription[] = _( + "Inflicts 1/4 damage on a\n" + "sleeping foe every turn."); + +static const u8 sFlameWheelDescription[] = _( + "A fiery charge attack that\n" + "may inflict a burn."); + +static const u8 sSnoreDescription[] = _( + "A loud attack that can be\n" + "used only while asleep."); + +static const u8 sCurseDescription[] = _( + "A move that functions\n" + "differently for GHOSTS."); + +static const u8 sFlailDescription[] = _( + "Inflicts more damage when\n" + "the user’s HP is down."); + +static const u8 sConversion2Description[] = _( + "Makes the user resistant\n" + "to the last attack’s type."); + +static const u8 sAeroblastDescription[] = _( + "Launches a vacuumed blast.\n" + "High critical-hit ratio."); + +static const u8 sCottonSporeDescription[] = _( + "Spores cling to the foe,\n" + "sharply reducing SPEED."); + +static const u8 sReversalDescription[] = _( + "Inflicts more damage when\n" + "the user’s HP is down."); + +static const u8 sSpiteDescription[] = _( + "Spitefully cuts the PP\n" + "of the foe’s last move."); + +static const u8 sPowderSnowDescription[] = _( + "Blasts the foe with a snowy\n" + "gust. May cause freezing."); + +static const u8 sProtectDescription[] = _( + "Evades attack, but may fail\n" + "if used in succession."); + +static const u8 sMachPunchDescription[] = _( + "A punch is thrown at wicked\n" + "speed to strike first."); + +static const u8 sScaryFaceDescription[] = _( + "Frightens with a scary face\n" + "to sharply reduce SPEED."); + +static const u8 sFaintAttackDescription[] = _( + "Draws the foe close, then\n" + "strikes without fail."); + +static const u8 sSweetKissDescription[] = _( + "Demands a kiss with a cute\n" + "look. May cause confusion."); + +static const u8 sBellyDrumDescription[] = _( + "Maximizes ATTACK while\n" + "sacrificing HP."); + +static const u8 sSludgeBombDescription[] = _( + "Sludge is hurled to inflict\n" + "damage. May also poison."); + +static const u8 sMudSlapDescription[] = _( + "Hurls mud in the foe’s face\n" + "to reduce its accuracy."); + +static const u8 sOctazookaDescription[] = _( + "Fires a lump of ink to\n" + "damage and cut accuracy."); + +static const u8 sSpikesDescription[] = _( + "Sets spikes that hurt a \n" + "foe switching in."); + +static const u8 sZapCannonDescription[] = _( + "Powerful and sure to cause\n" + "paralysis, but inaccurate."); + +static const u8 sForesightDescription[] = _( + "Negates the foe’s efforts\n" + "to heighten evasiveness."); + +static const u8 sDestinyBondDescription[] = _( + "If the user faints, the foe\n" + "is also made to faint."); + +static const u8 sPerishSongDescription[] = _( + "Any POKéMON hearing this\n" + "song faints in 3 turns."); + +static const u8 sIcyWindDescription[] = _( + "A chilling attack that\n" + "lowers the foe’s SPEED."); + +static const u8 sDetectDescription[] = _( + "Evades attack, but may fail\n" + "if used in succession."); + +static const u8 sBoneRushDescription[] = _( + "Strikes the foe with a bone\n" + "in hand 2 to 5 times."); + +static const u8 sLockOnDescription[] = _( + "Locks on to the foe to\n" + "ensure the next move hits."); + +static const u8 sOutrageDescription[] = _( + "A rampage of 2 to 3 turns\n" + "that confuses the user."); + +static const u8 sSandstormDescription[] = _( + "Causes a sandstorm that\n" + "rages for several turns."); + +static const u8 sGigaDrainDescription[] = _( + "An attack that steals half\n" + "the damage inflicted."); + +static const u8 sEndureDescription[] = _( + "Endures any attack for\n" + "1 turn, leaving at least 1HP."); + +static const u8 sCharmDescription[] = _( + "Charms the foe and sharply\n" + "reduces its ATTACK."); + +static const u8 sRolloutDescription[] = _( + "An attack lasting 5 turns\n" + "with rising intensity."); + +static const u8 sFalseSwipeDescription[] = _( + "An attack that leaves the\n" + "foe with at least 1 HP."); + +static const u8 sSwaggerDescription[] = _( + "Confuses the foe, but also\n" + "sharply raises ATTACK."); + +static const u8 sMilkDrinkDescription[] = _( + "Recovers up to half the\n" + "user’s maximum HP."); + +static const u8 sSparkDescription[] = _( + "An electrified tackle that\n" + "may paralyze the foe."); + +static const u8 sFuryCutterDescription[] = _( + "An attack that intensifies\n" + "on each successive hit."); + +static const u8 sSteelWingDescription[] = _( + "Strikes the foe with hard\n" + "wings spread wide."); + +static const u8 sMeanLookDescription[] = _( + "Fixes the foe with a mean\n" + "look that prevents escape."); + +static const u8 sAttractDescription[] = _( + "Makes the opposite gender\n" + "less likely to attack."); + +static const u8 sSleepTalkDescription[] = _( + "Uses an available move\n" + "randomly while asleep."); + +static const u8 sHealBellDescription[] = _( + "Chimes soothingly to heal\n" + "all status abnormalities."); + +static const u8 sReturnDescription[] = _( + "An attack that increases\n" + "in power with friendship."); + +static const u8 sPresentDescription[] = _( + "A gift in the form of a\n" + "bomb. May restore HP."); + +static const u8 sFrustrationDescription[] = _( + "An attack that is stronger\n" + "if the TRAINER is disliked."); + +static const u8 sSafeguardDescription[] = _( + "A mystical force prevents\n" + "all status problems."); + +static const u8 sPainSplitDescription[] = _( + "Adds the user and foe’s HP,\n" + "then shares them equally."); + +static const u8 sSacredFireDescription[] = _( + "A mystical fire attack that\n" + "may inflict a burn."); + +static const u8 sMagnitudeDescription[] = _( + "A ground-shaking attack\n" + "of random intensity."); + +static const u8 sDynamicPunchDescription[] = _( + "Powerful and sure to cause\n" + "confusion, but inaccurate."); + +static const u8 sMegahornDescription[] = _( + "A brutal ramming attack\n" + "using out-thrust horns."); + +static const u8 sDragonBreathDescription[] = _( + "Strikes the foe with an\n" + "incredible blast of breath."); + +static const u8 sBatonPassDescription[] = _( + "Switches out the user while\n" + "keeping effects in play."); + +static const u8 sEncoreDescription[] = _( + "Makes the foe repeat its\n" + "last move over 2 to 6 turns."); + +static const u8 sPursuitDescription[] = _( + "Inflicts bad damage if used\n" + "on a foe switching out."); + +static const u8 sRapidSpinDescription[] = _( + "Spins the body at high\n" + "speed to strike the foe."); + +static const u8 sSweetScentDescription[] = _( + "Allures the foe to reduce\n" + "evasiveness."); + +static const u8 sIronTailDescription[] = _( + "Attacks with a rock-hard\n" + "tail. May lower DEFENSE."); + +static const u8 sMetalClawDescription[] = _( + "A claw attack that may\n" + "raise the user’s ATTACK."); + +static const u8 sVitalThrowDescription[] = _( + "Makes the user’s move last,\n" + "but it never misses."); + +static const u8 sMorningSunDescription[] = _( + "Restores HP. The amount\n" + "varies with the weather."); + +static const u8 sSynthesisDescription[] = _( + "Restores HP. The amount\n" + "varies with the weather."); + +static const u8 sMoonlightDescription[] = _( + "Restores HP. The amount\n" + "varies with the weather."); + +static const u8 sHiddenPowerDescription[] = _( + "The effectiveness varies\n" + "with the user."); + +static const u8 sCrossChopDescription[] = _( + "A double-chopping attack.\n" + "High critical-hit ratio."); + +static const u8 sTwisterDescription[] = _( + "Whips up a vicious twister\n" + "to tear at the foe."); + +static const u8 sRainDanceDescription[] = _( + "Boosts the power of WATER-\n" + "type moves for 5 turns."); + +static const u8 sSunnyDayDescription[] = _( + "Boosts the power of FIRE-\n" + "type moves for 5 turns."); + +static const u8 sCrunchDescription[] = _( + "Crunches with sharp fangs.\n" + "May lower SP. DEF."); + +static const u8 sMirrorCoatDescription[] = _( + "Counters the foe’s special\n" + "attack at double the power."); + +static const u8 sPsychUpDescription[] = _( + "Copies the foe’s effect(s)\n" + "and gives to the user."); + +static const u8 sExtremeSpeedDescription[] = _( + "An extremely fast and\n" + "powerful attack."); + +static const u8 sAncientPowerDescription[] = _( + "An attack that may raise\n" + "all stats."); + +static const u8 sShadowBallDescription[] = _( + "Hurls a black blob that may\n" + "lower the foe’s SP. DEF."); + +static const u8 sFutureSightDescription[] = _( + "Heightens inner power to\n" + "strike 2 turns later."); + +static const u8 sRockSmashDescription[] = _( + "A rock-crushing attack\n" + "that may lower DEFENSE."); + +static const u8 sWhirlpoolDescription[] = _( + "Traps and hurts the foe in\n" + "a whirlpool for 2 to 5 turns."); + +static const u8 sBeatUpDescription[] = _( + "Summons party POKéMON to\n" + "join in the attack."); + +static const u8 sFakeOutDescription[] = _( + "A 1st-turn, 1st-strike move\n" + "that causes flinching."); + +static const u8 sUproarDescription[] = _( + "Causes an uproar for 2 to 5\n" + "turns and prevents sleep."); + +static const u8 sStockpileDescription[] = _( + "Charges up power for up to\n" + "3 turns."); + +static const u8 sSpitUpDescription[] = _( + "Releases stockpiled power\n" + "(the more the better)."); + +static const u8 sSwallowDescription[] = _( + "Absorbs stockpiled power\n" + "and restores HP."); + +static const u8 sHeatWaveDescription[] = _( + "Exhales a hot breath on the\n" + "foe. May inflict a burn."); + +static const u8 sHailDescription[] = _( + "Summons a hailstorm that\n" + "strikes every turn."); + +static const u8 sTormentDescription[] = _( + "Torments the foe and stops\n" + "successive use of a move."); + +static const u8 sFlatterDescription[] = _( + "Confuses the foe, but\n" + "raises its SP. ATK."); + +static const u8 sWillOWispDescription[] = _( + "Inflicts a burn on the foe\n" + "with intense fire."); + +static const u8 sMementoDescription[] = _( + "The user faints and lowers\n" + "the foe’s abilities."); + +static const u8 sFacadeDescription[] = _( + "Boosts ATTACK when burned,\n" + "paralyzed, or poisoned."); + +static const u8 sFocusPunchDescription[] = _( + "A powerful loyalty attack.\n" + "The user flinches if hit."); + +static const u8 sSmellingSaltDescription[] = _( + "Powerful against paralyzed\n" + "foes, but also heals them."); + +static const u8 sFollowMeDescription[] = _( + "Draws attention to make\n" + "foes attack only the user."); + +static const u8 sNaturePowerDescription[] = _( + "The type of attack varies\n" + "depending on the location."); + +static const u8 sChargeDescription[] = _( + "Charges power to boost the\n" + "electric move used next."); + +static const u8 sTauntDescription[] = _( + "Taunts the foe into only\n" + "using attack moves."); + +static const u8 sHelpingHandDescription[] = _( + "Boosts the power of the\n" + "recipient’s moves."); + +static const u8 sTrickDescription[] = _( + "Tricks the foe into trading\n" + "held items."); + +static const u8 sRolePlayDescription[] = _( + "Mimics the target and\n" + "copies its special ability."); + +static const u8 sWishDescription[] = _( + "A wish that restores HP.\n" + "It takes time to work."); + +static const u8 sAssistDescription[] = _( + "Attacks randomly with one\n" + "of the partner’s moves."); + +static const u8 sIngrainDescription[] = _( + "Lays roots that restore HP.\n" + "The user can’t switch out."); + +static const u8 sSuperpowerDescription[] = _( + "Boosts strength sharply,\n" + "but lowers abilities."); + +static const u8 sMagicCoatDescription[] = _( + "Reflects special effects\n" + "back to the attacker."); + +static const u8 sRecycleDescription[] = _( + "Recycles a used item for\n" + "one more use."); + +static const u8 sRevengeDescription[] = _( + "An attack that gains power\n" + "if injured by the foe."); + +static const u8 sBrickBreakDescription[] = _( + "Destroys barriers such as\n" + "REFLECT and causes damage."); + +static const u8 sYawnDescription[] = _( + "Lulls the foe into yawning,\n" + "then sleeping next turn."); + +static const u8 sKnockOffDescription[] = _( + "Knocks down the foe’s held\n" + "item to prevent its use."); + +static const u8 sEndeavorDescription[] = _( + "Gains power if the user’s HP\n" + "is lower than the foe’s HP."); + +static const u8 sEruptionDescription[] = _( + "The higher the user’s HP,\n" + "the more damage caused."); + +static const u8 sSkillSwapDescription[] = _( + "The user swaps special\n" + "abilities with the target."); + +static const u8 sImprisonDescription[] = _( + "Prevents foes from using\n" + "moves known by the user."); + +static const u8 sRefreshDescription[] = _( + "Heals poisoning, paralysis,\n" + "or a burn."); + +static const u8 sGrudgeDescription[] = _( + "If the user faints, deletes\n" + "all PP of foe’s last move."); + +static const u8 sSnatchDescription[] = _( + "Steals the effects of the\n" + "move the target uses next."); + +static const u8 sSecretPowerDescription[] = _( + "An attack with effects\n" + "that vary by location."); + +static const u8 sDiveDescription[] = _( + "Dives underwater the first\n" + "turn and strikes next turn."); + +static const u8 sArmThrustDescription[] = _( + "Straight-arm punches that\n" + "strike the foe 2 to 5 times."); + +static const u8 sCamouflageDescription[] = _( + "Alters the POKéMON’s type\n" + "depending on the location."); + +static const u8 sTailGlowDescription[] = _( + "Flashes a light that sharply\n" + "raises SP. ATK."); + +static const u8 sLusterPurgeDescription[] = _( + "Attacks with a burst of\n" + "light. May lower SP. DEF."); + +static const u8 sMistBallDescription[] = _( + "Attacks with a flurry of\n" + "down. May lower SP. ATK."); + +static const u8 sFeatherDanceDescription[] = _( + "Envelops the foe with down\n" + "to sharply reduce ATTACK."); + +static const u8 sTeeterDanceDescription[] = _( + "Confuses all POKéMON on\n" + "the scene."); + +static const u8 sBlazeKickDescription[] = _( + "A kick with a high critical-\n" + "hit ratio. May cause a burn."); + +static const u8 sMudSportDescription[] = _( + "Covers the user in mud to\n" + "raise electrical resistance."); + +static const u8 sIceBallDescription[] = _( + "A 5-turn attack that gains\n" + "power on successive hits."); + +static const u8 sNeedleArmDescription[] = _( + "Attacks with thorny arms.\n" + "May cause flinching."); + +static const u8 sSlackOffDescription[] = _( + "Slacks off and restores\n" + "half the maximum HP."); + +static const u8 sHyperVoiceDescription[] = _( + "A loud attack that uses\n" + "sound waves to injure."); + +static const u8 sPoisonFangDescription[] = _( + "A sharp-fanged attack.\n" + "May badly poison the foe."); + +static const u8 sCrushClawDescription[] = _( + "Tears at the foe with sharp\n" + "claws. May lower DEFENSE."); + +static const u8 sBlastBurnDescription[] = _( + "Powerful, but leaves the\n" + "user immobile the next turn."); + +static const u8 sHydroCannonDescription[] = _( + "Powerful, but leaves the\n" + "user immobile the next turn."); + +static const u8 sMeteorMashDescription[] = _( + "Fires a meteor-like punch.\n" + "May raise ATTACK."); + +static const u8 sAstonishDescription[] = _( + "An attack that may shock\n" + "the foe into flinching."); + +static const u8 sWeatherBallDescription[] = _( + "The move’s type and power\n" + "change with the weather."); + +static const u8 sAromatherapyDescription[] = _( + "Heals all status problems\n" + "with a soothing scent."); + +static const u8 sFakeTearsDescription[] = _( + "Feigns crying to sharply\n" + "lower the foe’s SP. DEF."); + +static const u8 sAirCutterDescription[] = _( + "Hacks with razorlike wind.\n" + "High critical-hit ratio."); + +static const u8 sOverheatDescription[] = _( + "Allows a full-power attack,\n" + "but sharply lowers SP. ATK."); + +static const u8 sOdorSleuthDescription[] = _( + "Negates the foe’s efforts\n" + "to heighten evasiveness."); + +static const u8 sRockTombDescription[] = _( + "Stops the foe from moving\n" + "with rocks and cuts SPEED."); + +static const u8 sSilverWindDescription[] = _( + "A powdery attack that may\n" + "raise abilities."); + +static const u8 sMetalSoundDescription[] = _( + "Emits a horrible screech\n" + "that sharply lowers SP. DEF."); + +static const u8 sGrassWhistleDescription[] = _( + "Lulls the foe into sleep\n" + "with a pleasant melody."); + +static const u8 sTickleDescription[] = _( + "Makes the foe laugh to\n" + "lower ATTACK and DEFENSE."); + +static const u8 sCosmicPowerDescription[] = _( + "Raises DEFENSE and SP. DEF\n" + "with a mystic power."); + +static const u8 sWaterSpoutDescription[] = _( + "Inflicts more damage if the\n" + "user’s HP is high."); + +static const u8 sSignalBeamDescription[] = _( + "A strange beam attack that\n" + "may confuse the foe."); + +static const u8 sShadowPunchDescription[] = _( + "An unavoidable punch that\n" + "is thrown from shadows."); + +static const u8 sExtrasensoryDescription[] = _( + "Attacks with a peculiar\n" + "power. May cause flinching."); + +static const u8 sSkyUppercutDescription[] = _( + "An uppercut thrown as if\n" + "leaping into the sky."); + +static const u8 sSandTombDescription[] = _( + "Traps and hurts the foe in\n" + "quicksand for 2 to 5 turns."); + +static const u8 sSheerColdDescription[] = _( + "A chilling attack that\n" + "causes fainting if it hits."); + +static const u8 sMuddyWaterDescription[] = _( + "Attacks with muddy water.\n" + "May lower accuracy."); + +static const u8 sBulletSeedDescription[] = _( + "Shoots 2 to 5 seeds in a row\n" + "to strike the foe."); + +static const u8 sAerialAceDescription[] = _( + "An extremely speedy and\n" + "unavoidable attack."); + +static const u8 sIcicleSpearDescription[] = _( + "Attacks the foe by firing\n" + "2 to 5 icicles in a row."); + +static const u8 sIronDefenseDescription[] = _( + "Hardens the body’s surface\n" + "to sharply raise DEFENSE."); + +static const u8 sBlockDescription[] = _( + "Blocks the foe’s way to\n" + "prevent escape."); + +static const u8 sHowlDescription[] = _( + "Howls to raise the spirit\n" + "and boosts ATTACK."); + +static const u8 sDragonClawDescription[] = _( + "Slashes the foe with sharp\n" + "claws."); + +static const u8 sFrenzyPlantDescription[] = _( + "Powerful, but leaves the\n" + "user immobile the next turn."); + +static const u8 sBulkUpDescription[] = _( + "Bulks up the body to boost\n" + "both ATTACK and DEFENSE."); + +static const u8 sBounceDescription[] = _( + "Bounces up, then down the\n" + "next turn. May paralyze."); + +static const u8 sMudShotDescription[] = _( + "Hurls mud at the foe and\n" + "reduces SPEED."); + +static const u8 sPoisonTailDescription[] = _( + "Has a high critical-hit\n" + "ratio. May also poison."); + +static const u8 sCovetDescription[] = _( + "Cutely begs to obtain an\n" + "item held by the foe."); + +static const u8 sVoltTackleDescription[] = _( + "A life-risking tackle that\n" + "slightly hurts the user."); + +static const u8 sMagicalLeafDescription[] = _( + "Attacks with a strange leaf\n" + "that cannot be evaded."); + +static const u8 sWaterSportDescription[] = _( + "The user becomes soaked to\n" + "raise resistance to fire."); + +static const u8 sCalmMindDescription[] = _( + "Raises SP. ATK and SP. DEF\n" + "by focusing the mind."); + +static const u8 sLeafBladeDescription[] = _( + "Slashes with a sharp leaf.\n" + "High critical-hit ratio."); + +static const u8 sDragonDanceDescription[] = _( + "A mystical dance that ups\n" + "ATTACK and SPEED."); + +static const u8 sRockBlastDescription[] = _( + "Hurls boulders at the foe\n" + "2 to 5 times in a row."); + +static const u8 sShockWaveDescription[] = _( + "A fast and unavoidable\n" + "electric attack."); + +static const u8 sWaterPulseDescription[] = _( + "Attacks with ultrasonic\n" + "waves. May confuse the foe."); + +static const u8 sDoomDesireDescription[] = _( + "Summons strong sunlight to\n" + "attack 2 turns later."); + +static const u8 sPsychoBoostDescription[] = _( + "Allows a full-power attack,\n" + "but sharply lowers SP. ATK."); // MOVE_NONE is ignored in this table. Make sure to always subtract 1 before getting the right pointer. const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] = { - [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, + [MOVE_POUND - 1] = sPoundDescription, + [MOVE_KARATE_CHOP - 1] = sKarateChopDescription, + [MOVE_DOUBLE_SLAP - 1] = sDoubleSlapDescription, + [MOVE_COMET_PUNCH - 1] = sCometPunchDescription, + [MOVE_MEGA_PUNCH - 1] = sMegaPunchDescription, + [MOVE_PAY_DAY - 1] = sPayDayDescription, + [MOVE_FIRE_PUNCH - 1] = sFirePunchDescription, + [MOVE_ICE_PUNCH - 1] = sIcePunchDescription, + [MOVE_THUNDER_PUNCH - 1] = sThunderPunchDescription, + [MOVE_SCRATCH - 1] = sScratchDescription, + [MOVE_VICE_GRIP - 1] = sViceGripDescription, + [MOVE_GUILLOTINE - 1] = sGuillotineDescription, + [MOVE_RAZOR_WIND - 1] = sRazorWindDescription, + [MOVE_SWORDS_DANCE - 1] = sSwordsDanceDescription, + [MOVE_CUT - 1] = sCutDescription, + [MOVE_GUST - 1] = sGustDescription, + [MOVE_WING_ATTACK - 1] = sWingAttackDescription, + [MOVE_WHIRLWIND - 1] = sWhirlwindDescription, + [MOVE_FLY - 1] = sFlyDescription, + [MOVE_BIND - 1] = sBindDescription, + [MOVE_SLAM - 1] = sSlamDescription, + [MOVE_VINE_WHIP - 1] = sVineWhipDescription, + [MOVE_STOMP - 1] = sStompDescription, + [MOVE_DOUBLE_KICK - 1] = sDoubleKickDescription, + [MOVE_MEGA_KICK - 1] = sMegaKickDescription, + [MOVE_JUMP_KICK - 1] = sJumpKickDescription, + [MOVE_ROLLING_KICK - 1] = sRollingKickDescription, + [MOVE_SAND_ATTACK - 1] = sSandAttackDescription, + [MOVE_HEADBUTT - 1] = sHeadbuttDescription, + [MOVE_HORN_ATTACK - 1] = sHornAttackDescription, + [MOVE_FURY_ATTACK - 1] = sFuryAttackDescription, + [MOVE_HORN_DRILL - 1] = sHornDrillDescription, + [MOVE_TACKLE - 1] = sTackleDescription, + [MOVE_BODY_SLAM - 1] = sBodySlamDescription, + [MOVE_WRAP - 1] = sWrapDescription, + [MOVE_TAKE_DOWN - 1] = sTakeDownDescription, + [MOVE_THRASH - 1] = sThrashDescription, + [MOVE_DOUBLE_EDGE - 1] = sDoubleEdgeDescription, + [MOVE_TAIL_WHIP - 1] = sTailWhipDescription, + [MOVE_POISON_STING - 1] = sPoisonStingDescription, + [MOVE_TWINEEDLE - 1] = sTwineedleDescription, + [MOVE_PIN_MISSILE - 1] = sPinMissileDescription, + [MOVE_LEER - 1] = sLeerDescription, + [MOVE_BITE - 1] = sBiteDescription, + [MOVE_GROWL - 1] = sGrowlDescription, + [MOVE_ROAR - 1] = sRoarDescription, + [MOVE_SING - 1] = sSingDescription, + [MOVE_SUPERSONIC - 1] = sSupersonicDescription, + [MOVE_SONIC_BOOM - 1] = sSonicBoomDescription, + [MOVE_DISABLE - 1] = sDisableDescription, + [MOVE_ACID - 1] = sAcidDescription, + [MOVE_EMBER - 1] = sEmberDescription, + [MOVE_FLAMETHROWER - 1] = sFlamethrowerDescription, + [MOVE_MIST - 1] = sMistDescription, + [MOVE_WATER_GUN - 1] = sWaterGunDescription, + [MOVE_HYDRO_PUMP - 1] = sHydroPumpDescription, + [MOVE_SURF - 1] = sSurfDescription, + [MOVE_ICE_BEAM - 1] = sIceBeamDescription, + [MOVE_BLIZZARD - 1] = sBlizzardDescription, + [MOVE_PSYBEAM - 1] = sPsybeamDescription, + [MOVE_BUBBLE_BEAM - 1] = sBubbleBeamDescription, + [MOVE_AURORA_BEAM - 1] = sAuroraBeamDescription, + [MOVE_HYPER_BEAM - 1] = sHyperBeamDescription, + [MOVE_PECK - 1] = sPeckDescription, + [MOVE_DRILL_PECK - 1] = sDrillPeckDescription, + [MOVE_SUBMISSION - 1] = sSubmissionDescription, + [MOVE_LOW_KICK - 1] = sLowKickDescription, + [MOVE_COUNTER - 1] = sCounterDescription, + [MOVE_SEISMIC_TOSS - 1] = sSeismicTossDescription, + [MOVE_STRENGTH - 1] = sStrengthDescription, + [MOVE_ABSORB - 1] = sAbsorbDescription, + [MOVE_MEGA_DRAIN - 1] = sMegaDrainDescription, + [MOVE_LEECH_SEED - 1] = sLeechSeedDescription, + [MOVE_GROWTH - 1] = sGrowthDescription, + [MOVE_RAZOR_LEAF - 1] = sRazorLeafDescription, + [MOVE_SOLAR_BEAM - 1] = sSolarBeamDescription, + [MOVE_POISON_POWDER - 1] = sPoisonPowderDescription, + [MOVE_STUN_SPORE - 1] = sStunSporeDescription, + [MOVE_SLEEP_POWDER - 1] = sSleepPowderDescription, + [MOVE_PETAL_DANCE - 1] = sPetalDanceDescription, + [MOVE_STRING_SHOT - 1] = sStringShotDescription, + [MOVE_DRAGON_RAGE - 1] = sDragonRageDescription, + [MOVE_FIRE_SPIN - 1] = sFireSpinDescription, + [MOVE_THUNDER_SHOCK - 1] = sThunderShockDescription, + [MOVE_THUNDERBOLT - 1] = sThunderboltDescription, + [MOVE_THUNDER_WAVE - 1] = sThunderWaveDescription, + [MOVE_THUNDER - 1] = sThunderDescription, + [MOVE_ROCK_THROW - 1] = sRockThrowDescription, + [MOVE_EARTHQUAKE - 1] = sEarthquakeDescription, + [MOVE_FISSURE - 1] = sFissureDescription, + [MOVE_DIG - 1] = sDigDescription, + [MOVE_TOXIC - 1] = sToxicDescription, + [MOVE_CONFUSION - 1] = sConfusionDescription, + [MOVE_PSYCHIC - 1] = sPsychicDescription, + [MOVE_HYPNOSIS - 1] = sHypnosisDescription, + [MOVE_MEDITATE - 1] = sMeditateDescription, + [MOVE_AGILITY - 1] = sAgilityDescription, + [MOVE_QUICK_ATTACK - 1] = sQuickAttackDescription, + [MOVE_RAGE - 1] = sRageDescription, + [MOVE_TELEPORT - 1] = sTeleportDescription, + [MOVE_NIGHT_SHADE - 1] = sNightShadeDescription, + [MOVE_MIMIC - 1] = sMimicDescription, + [MOVE_SCREECH - 1] = sScreechDescription, + [MOVE_DOUBLE_TEAM - 1] = sDoubleTeamDescription, + [MOVE_RECOVER - 1] = sRecoverDescription, + [MOVE_HARDEN - 1] = sHardenDescription, + [MOVE_MINIMIZE - 1] = sMinimizeDescription, + [MOVE_SMOKESCREEN - 1] = sSmokescreenDescription, + [MOVE_CONFUSE_RAY - 1] = sConfuseRayDescription, + [MOVE_WITHDRAW - 1] = sWithdrawDescription, + [MOVE_DEFENSE_CURL - 1] = sDefenseCurlDescription, + [MOVE_BARRIER - 1] = sBarrierDescription, + [MOVE_LIGHT_SCREEN - 1] = sLightScreenDescription, + [MOVE_HAZE - 1] = sHazeDescription, + [MOVE_REFLECT - 1] = sReflectDescription, + [MOVE_FOCUS_ENERGY - 1] = sFocusEnergyDescription, + [MOVE_BIDE - 1] = sBideDescription, + [MOVE_METRONOME - 1] = sMetronomeDescription, + [MOVE_MIRROR_MOVE - 1] = sMirrorMoveDescription, + [MOVE_SELF_DESTRUCT - 1] = sSelfDestructDescription, + [MOVE_EGG_BOMB - 1] = sEggBombDescription, + [MOVE_LICK - 1] = sLickDescription, + [MOVE_SMOG - 1] = sSmogDescription, + [MOVE_SLUDGE - 1] = sSludgeDescription, + [MOVE_BONE_CLUB - 1] = sBoneClubDescription, + [MOVE_FIRE_BLAST - 1] = sFireBlastDescription, + [MOVE_WATERFALL - 1] = sWaterfallDescription, + [MOVE_CLAMP - 1] = sClampDescription, + [MOVE_SWIFT - 1] = sSwiftDescription, + [MOVE_SKULL_BASH - 1] = sSkullBashDescription, + [MOVE_SPIKE_CANNON - 1] = sSpikeCannonDescription, + [MOVE_CONSTRICT - 1] = sConstrictDescription, + [MOVE_AMNESIA - 1] = sAmnesiaDescription, + [MOVE_KINESIS - 1] = sKinesisDescription, + [MOVE_SOFT_BOILED - 1] = sSoftBoiledDescription, + [MOVE_HI_JUMP_KICK - 1] = sHiJumpKickDescription, + [MOVE_GLARE - 1] = sGlareDescription, + [MOVE_DREAM_EATER - 1] = sDreamEaterDescription, + [MOVE_POISON_GAS - 1] = sPoisonGasDescription, + [MOVE_BARRAGE - 1] = sBarrageDescription, + [MOVE_LEECH_LIFE - 1] = sLeechLifeDescription, + [MOVE_LOVELY_KISS - 1] = sLovelyKissDescription, + [MOVE_SKY_ATTACK - 1] = sSkyAttackDescription, + [MOVE_TRANSFORM - 1] = sTransformDescription, + [MOVE_BUBBLE - 1] = sBubbleDescription, + [MOVE_DIZZY_PUNCH - 1] = sDizzyPunchDescription, + [MOVE_SPORE - 1] = sSporeDescription, + [MOVE_FLASH - 1] = sFlashDescription, + [MOVE_PSYWAVE - 1] = sPsywaveDescription, + [MOVE_SPLASH - 1] = sSplashDescription, + [MOVE_ACID_ARMOR - 1] = sAcidArmorDescription, + [MOVE_CRABHAMMER - 1] = sCrabhammerDescription, + [MOVE_EXPLOSION - 1] = sExplosionDescription, + [MOVE_FURY_SWIPES - 1] = sFurySwipesDescription, + [MOVE_BONEMERANG - 1] = sBonemerangDescription, + [MOVE_REST - 1] = sRestDescription, + [MOVE_ROCK_SLIDE - 1] = sRockSlideDescription, + [MOVE_HYPER_FANG - 1] = sHyperFangDescription, + [MOVE_SHARPEN - 1] = sSharpenDescription, + [MOVE_CONVERSION - 1] = sConversionDescription, + [MOVE_TRI_ATTACK - 1] = sTriAttackDescription, + [MOVE_SUPER_FANG - 1] = sSuperFangDescription, + [MOVE_SLASH - 1] = sSlashDescription, + [MOVE_SUBSTITUTE - 1] = sSubstituteDescription, + [MOVE_STRUGGLE - 1] = sStruggleDescription, + [MOVE_SKETCH - 1] = sSketchDescription, + [MOVE_TRIPLE_KICK - 1] = sTripleKickDescription, + [MOVE_THIEF - 1] = sThiefDescription, + [MOVE_SPIDER_WEB - 1] = sSpiderWebDescription, + [MOVE_MIND_READER - 1] = sMindReaderDescription, + [MOVE_NIGHTMARE - 1] = sNightmareDescription, + [MOVE_FLAME_WHEEL - 1] = sFlameWheelDescription, + [MOVE_SNORE - 1] = sSnoreDescription, + [MOVE_CURSE - 1] = sCurseDescription, + [MOVE_FLAIL - 1] = sFlailDescription, + [MOVE_CONVERSION_2 - 1] = sConversion2Description, + [MOVE_AEROBLAST - 1] = sAeroblastDescription, + [MOVE_COTTON_SPORE - 1] = sCottonSporeDescription, + [MOVE_REVERSAL - 1] = sReversalDescription, + [MOVE_SPITE - 1] = sSpiteDescription, + [MOVE_POWDER_SNOW - 1] = sPowderSnowDescription, + [MOVE_PROTECT - 1] = sProtectDescription, + [MOVE_MACH_PUNCH - 1] = sMachPunchDescription, + [MOVE_SCARY_FACE - 1] = sScaryFaceDescription, + [MOVE_FAINT_ATTACK - 1] = sFaintAttackDescription, + [MOVE_SWEET_KISS - 1] = sSweetKissDescription, + [MOVE_BELLY_DRUM - 1] = sBellyDrumDescription, + [MOVE_SLUDGE_BOMB - 1] = sSludgeBombDescription, + [MOVE_MUD_SLAP - 1] = sMudSlapDescription, + [MOVE_OCTAZOOKA - 1] = sOctazookaDescription, + [MOVE_SPIKES - 1] = sSpikesDescription, + [MOVE_ZAP_CANNON - 1] = sZapCannonDescription, + [MOVE_FORESIGHT - 1] = sForesightDescription, + [MOVE_DESTINY_BOND - 1] = sDestinyBondDescription, + [MOVE_PERISH_SONG - 1] = sPerishSongDescription, + [MOVE_ICY_WIND - 1] = sIcyWindDescription, + [MOVE_DETECT - 1] = sDetectDescription, + [MOVE_BONE_RUSH - 1] = sBoneRushDescription, + [MOVE_LOCK_ON - 1] = sLockOnDescription, + [MOVE_OUTRAGE - 1] = sOutrageDescription, + [MOVE_SANDSTORM - 1] = sSandstormDescription, + [MOVE_GIGA_DRAIN - 1] = sGigaDrainDescription, + [MOVE_ENDURE - 1] = sEndureDescription, + [MOVE_CHARM - 1] = sCharmDescription, + [MOVE_ROLLOUT - 1] = sRolloutDescription, + [MOVE_FALSE_SWIPE - 1] = sFalseSwipeDescription, + [MOVE_SWAGGER - 1] = sSwaggerDescription, + [MOVE_MILK_DRINK - 1] = sMilkDrinkDescription, + [MOVE_SPARK - 1] = sSparkDescription, + [MOVE_FURY_CUTTER - 1] = sFuryCutterDescription, + [MOVE_STEEL_WING - 1] = sSteelWingDescription, + [MOVE_MEAN_LOOK - 1] = sMeanLookDescription, + [MOVE_ATTRACT - 1] = sAttractDescription, + [MOVE_SLEEP_TALK - 1] = sSleepTalkDescription, + [MOVE_HEAL_BELL - 1] = sHealBellDescription, + [MOVE_RETURN - 1] = sReturnDescription, + [MOVE_PRESENT - 1] = sPresentDescription, + [MOVE_FRUSTRATION - 1] = sFrustrationDescription, + [MOVE_SAFEGUARD - 1] = sSafeguardDescription, + [MOVE_PAIN_SPLIT - 1] = sPainSplitDescription, + [MOVE_SACRED_FIRE - 1] = sSacredFireDescription, + [MOVE_MAGNITUDE - 1] = sMagnitudeDescription, + [MOVE_DYNAMIC_PUNCH - 1] = sDynamicPunchDescription, + [MOVE_MEGAHORN - 1] = sMegahornDescription, + [MOVE_DRAGON_BREATH - 1] = sDragonBreathDescription, + [MOVE_BATON_PASS - 1] = sBatonPassDescription, + [MOVE_ENCORE - 1] = sEncoreDescription, + [MOVE_PURSUIT - 1] = sPursuitDescription, + [MOVE_RAPID_SPIN - 1] = sRapidSpinDescription, + [MOVE_SWEET_SCENT - 1] = sSweetScentDescription, + [MOVE_IRON_TAIL - 1] = sIronTailDescription, + [MOVE_METAL_CLAW - 1] = sMetalClawDescription, + [MOVE_VITAL_THROW - 1] = sVitalThrowDescription, + [MOVE_MORNING_SUN - 1] = sMorningSunDescription, + [MOVE_SYNTHESIS - 1] = sSynthesisDescription, + [MOVE_MOONLIGHT - 1] = sMoonlightDescription, + [MOVE_HIDDEN_POWER - 1] = sHiddenPowerDescription, + [MOVE_CROSS_CHOP - 1] = sCrossChopDescription, + [MOVE_TWISTER - 1] = sTwisterDescription, + [MOVE_RAIN_DANCE - 1] = sRainDanceDescription, + [MOVE_SUNNY_DAY - 1] = sSunnyDayDescription, + [MOVE_CRUNCH - 1] = sCrunchDescription, + [MOVE_MIRROR_COAT - 1] = sMirrorCoatDescription, + [MOVE_PSYCH_UP - 1] = sPsychUpDescription, + [MOVE_EXTREME_SPEED - 1] = sExtremeSpeedDescription, + [MOVE_ANCIENT_POWER - 1] = sAncientPowerDescription, + [MOVE_SHADOW_BALL - 1] = sShadowBallDescription, + [MOVE_FUTURE_SIGHT - 1] = sFutureSightDescription, + [MOVE_ROCK_SMASH - 1] = sRockSmashDescription, + [MOVE_WHIRLPOOL - 1] = sWhirlpoolDescription, + [MOVE_BEAT_UP - 1] = sBeatUpDescription, + [MOVE_FAKE_OUT - 1] = sFakeOutDescription, + [MOVE_UPROAR - 1] = sUproarDescription, + [MOVE_STOCKPILE - 1] = sStockpileDescription, + [MOVE_SPIT_UP - 1] = sSpitUpDescription, + [MOVE_SWALLOW - 1] = sSwallowDescription, + [MOVE_HEAT_WAVE - 1] = sHeatWaveDescription, + [MOVE_HAIL - 1] = sHailDescription, + [MOVE_TORMENT - 1] = sTormentDescription, + [MOVE_FLATTER - 1] = sFlatterDescription, + [MOVE_WILL_O_WISP - 1] = sWillOWispDescription, + [MOVE_MEMENTO - 1] = sMementoDescription, + [MOVE_FACADE - 1] = sFacadeDescription, + [MOVE_FOCUS_PUNCH - 1] = sFocusPunchDescription, + [MOVE_SMELLING_SALT - 1] = sSmellingSaltDescription, + [MOVE_FOLLOW_ME - 1] = sFollowMeDescription, + [MOVE_NATURE_POWER - 1] = sNaturePowerDescription, + [MOVE_CHARGE - 1] = sChargeDescription, + [MOVE_TAUNT - 1] = sTauntDescription, + [MOVE_HELPING_HAND - 1] = sHelpingHandDescription, + [MOVE_TRICK - 1] = sTrickDescription, + [MOVE_ROLE_PLAY - 1] = sRolePlayDescription, + [MOVE_WISH - 1] = sWishDescription, + [MOVE_ASSIST - 1] = sAssistDescription, + [MOVE_INGRAIN - 1] = sIngrainDescription, + [MOVE_SUPERPOWER - 1] = sSuperpowerDescription, + [MOVE_MAGIC_COAT - 1] = sMagicCoatDescription, + [MOVE_RECYCLE - 1] = sRecycleDescription, + [MOVE_REVENGE - 1] = sRevengeDescription, + [MOVE_BRICK_BREAK - 1] = sBrickBreakDescription, + [MOVE_YAWN - 1] = sYawnDescription, + [MOVE_KNOCK_OFF - 1] = sKnockOffDescription, + [MOVE_ENDEAVOR - 1] = sEndeavorDescription, + [MOVE_ERUPTION - 1] = sEruptionDescription, + [MOVE_SKILL_SWAP - 1] = sSkillSwapDescription, + [MOVE_IMPRISON - 1] = sImprisonDescription, + [MOVE_REFRESH - 1] = sRefreshDescription, + [MOVE_GRUDGE - 1] = sGrudgeDescription, + [MOVE_SNATCH - 1] = sSnatchDescription, + [MOVE_SECRET_POWER - 1] = sSecretPowerDescription, + [MOVE_DIVE - 1] = sDiveDescription, + [MOVE_ARM_THRUST - 1] = sArmThrustDescription, + [MOVE_CAMOUFLAGE - 1] = sCamouflageDescription, + [MOVE_TAIL_GLOW - 1] = sTailGlowDescription, + [MOVE_LUSTER_PURGE - 1] = sLusterPurgeDescription, + [MOVE_MIST_BALL - 1] = sMistBallDescription, + [MOVE_FEATHER_DANCE - 1] = sFeatherDanceDescription, + [MOVE_TEETER_DANCE - 1] = sTeeterDanceDescription, + [MOVE_BLAZE_KICK - 1] = sBlazeKickDescription, + [MOVE_MUD_SPORT - 1] = sMudSportDescription, + [MOVE_ICE_BALL - 1] = sIceBallDescription, + [MOVE_NEEDLE_ARM - 1] = sNeedleArmDescription, + [MOVE_SLACK_OFF - 1] = sSlackOffDescription, + [MOVE_HYPER_VOICE - 1] = sHyperVoiceDescription, + [MOVE_POISON_FANG - 1] = sPoisonFangDescription, + [MOVE_CRUSH_CLAW - 1] = sCrushClawDescription, + [MOVE_BLAST_BURN - 1] = sBlastBurnDescription, + [MOVE_HYDRO_CANNON - 1] = sHydroCannonDescription, + [MOVE_METEOR_MASH - 1] = sMeteorMashDescription, + [MOVE_ASTONISH - 1] = sAstonishDescription, + [MOVE_WEATHER_BALL - 1] = sWeatherBallDescription, + [MOVE_AROMATHERAPY - 1] = sAromatherapyDescription, + [MOVE_FAKE_TEARS - 1] = sFakeTearsDescription, + [MOVE_AIR_CUTTER - 1] = sAirCutterDescription, + [MOVE_OVERHEAT - 1] = sOverheatDescription, + [MOVE_ODOR_SLEUTH - 1] = sOdorSleuthDescription, + [MOVE_ROCK_TOMB - 1] = sRockTombDescription, + [MOVE_SILVER_WIND - 1] = sSilverWindDescription, + [MOVE_METAL_SOUND - 1] = sMetalSoundDescription, + [MOVE_GRASS_WHISTLE - 1] = sGrassWhistleDescription, + [MOVE_TICKLE - 1] = sTickleDescription, + [MOVE_COSMIC_POWER - 1] = sCosmicPowerDescription, + [MOVE_WATER_SPOUT - 1] = sWaterSpoutDescription, + [MOVE_SIGNAL_BEAM - 1] = sSignalBeamDescription, + [MOVE_SHADOW_PUNCH - 1] = sShadowPunchDescription, + [MOVE_EXTRASENSORY - 1] = sExtrasensoryDescription, + [MOVE_SKY_UPPERCUT - 1] = sSkyUppercutDescription, + [MOVE_SAND_TOMB - 1] = sSandTombDescription, + [MOVE_SHEER_COLD - 1] = sSheerColdDescription, + [MOVE_MUDDY_WATER - 1] = sMuddyWaterDescription, + [MOVE_BULLET_SEED - 1] = sBulletSeedDescription, + [MOVE_AERIAL_ACE - 1] = sAerialAceDescription, + [MOVE_ICICLE_SPEAR - 1] = sIcicleSpearDescription, + [MOVE_IRON_DEFENSE - 1] = sIronDefenseDescription, + [MOVE_BLOCK - 1] = sBlockDescription, + [MOVE_HOWL - 1] = sHowlDescription, + [MOVE_DRAGON_CLAW - 1] = sDragonClawDescription, + [MOVE_FRENZY_PLANT - 1] = sFrenzyPlantDescription, + [MOVE_BULK_UP - 1] = sBulkUpDescription, + [MOVE_BOUNCE - 1] = sBounceDescription, + [MOVE_MUD_SHOT - 1] = sMudShotDescription, + [MOVE_POISON_TAIL - 1] = sPoisonTailDescription, + [MOVE_COVET - 1] = sCovetDescription, + [MOVE_VOLT_TACKLE - 1] = sVoltTackleDescription, + [MOVE_MAGICAL_LEAF - 1] = sMagicalLeafDescription, + [MOVE_WATER_SPORT - 1] = sWaterSportDescription, + [MOVE_CALM_MIND - 1] = sCalmMindDescription, + [MOVE_LEAF_BLADE - 1] = sLeafBladeDescription, + [MOVE_DRAGON_DANCE - 1] = sDragonDanceDescription, + [MOVE_ROCK_BLAST - 1] = sRockBlastDescription, + [MOVE_SHOCK_WAVE - 1] = sShockWaveDescription, + [MOVE_WATER_PULSE - 1] = sWaterPulseDescription, + [MOVE_DOOM_DESIRE - 1] = sDoomDesireDescription, + [MOVE_PSYCHO_BOOST - 1] = sPsychoBoostDescription, }; -- cgit v1.2.3 From 5164215c9123824c9c6579a9c6ea0ef859e40a2f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 16 Sep 2018 17:06:35 +0200 Subject: Use defines for BattleAI_ChooseMoveOrAction --- src/battle_controller_opponent.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 3c126aeec..b3179ed3d 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1552,10 +1552,10 @@ static void OpponentHandleChooseMove(void) switch (chosenMoveId) { - case 5: + case AI_CHOICE_WATCH: BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_WATCH_CAREFULLY, 0); break; - case 4: + case AI_CHOICE_FLEE: BtlController_EmitTwoReturnValues(1, B_ACTION_RUN, 0); break; case 6: -- cgit v1.2.3 From 899ae7a59a2335917b3494b2b5c65dfa52faf4ce Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Tue, 18 Sep 2018 10:03:24 -0500 Subject: Add defines for tile, metatile, and palette count --- src/field_camera.c | 6 +++--- src/fieldmap.c | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/field_camera.c b/src/field_camera.c index 8629bec2b..e8900e06a 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -232,14 +232,14 @@ static void DrawMetatileAt(const struct MapLayout *mapLayout, u16 b, int c, int u16 metatileId = MapGridGetMetatileIdAt(c, d); u16 *metatiles; - if (metatileId > 1024) + if (metatileId > NUM_METATILES_TOTAL) metatileId = 0; - if (metatileId < 512) + if (metatileId < NUM_METATILES_IN_PRIMARY) metatiles = mapLayout->primaryTileset->metatiles; else { metatiles = mapLayout->secondaryTileset->metatiles; - metatileId -= 512; + metatileId -= NUM_METATILES_IN_PRIMARY; } DrawMetatile(MapGridGetMetatileLayerTypeAt(c, d), metatiles + metatileId * 8, b); } diff --git a/src/fieldmap.c b/src/fieldmap.c index 019db9d0d..96f5d2b85 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -482,15 +482,15 @@ void MapGridSetMetatileEntryAt(int x, int y, u16 metatile) u16 GetBehaviorByMetatileId(u16 metatile) { u16 *attributes; - if (metatile <= 0x1ff) + if (metatile < NUM_METATILES_IN_PRIMARY) { attributes = gMapHeader.mapLayout->primaryTileset->metatileAttributes; return attributes[metatile]; } - else if (metatile <= 0x3ff) + else if (metatile < NUM_METATILES_TOTAL) { attributes = gMapHeader.mapLayout->secondaryTileset->metatileAttributes; - return attributes[metatile - 0x200]; + return attributes[metatile - NUM_METATILES_IN_PRIMARY]; } else { @@ -979,7 +979,7 @@ void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u1 } else if (tileset->isSecondary == TRUE) { - LoadPalette(((u16*)tileset->palettes) + 0x60, destOffset, size); + LoadPalette(((u16*)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size); nullsub_3(destOffset, size >> 1); } else @@ -992,35 +992,35 @@ void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u1 void copy_map_tileset1_to_vram(struct MapLayout const *mapLayout) { - copy_tileset_patterns_to_vram(mapLayout->primaryTileset, 0x200, 0); + copy_tileset_patterns_to_vram(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); } void copy_map_tileset2_to_vram(struct MapLayout const *mapLayout) { - copy_tileset_patterns_to_vram(mapLayout->secondaryTileset, 0x200, 0x200); + copy_tileset_patterns_to_vram(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); } void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout) { - copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, 0x200, 0x200); + copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); } void apply_map_tileset1_palette(struct MapLayout const *mapLayout) { - apply_map_tileset_palette(mapLayout->primaryTileset, 0, 0xC0); + apply_map_tileset_palette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2); } void apply_map_tileset2_palette(struct MapLayout const *mapLayout) { - apply_map_tileset_palette(mapLayout->secondaryTileset, 0x60, 0xE0); + apply_map_tileset_palette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2); } void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout) { if (mapLayout) { - copy_tileset_patterns_to_vram2(mapLayout->primaryTileset, 0x200, 0); - copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, 0x200, 0x200); + copy_tileset_patterns_to_vram2(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0); + copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY); } } -- cgit v1.2.3 From e4b7ba0977f2029459f08bcfc4d8aa35dbb4fc3c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 20 Sep 2018 11:55:35 +0200 Subject: Document some not labeled battle things --- src/battle_controller_opponent.c | 2 +- src/battle_controller_safari.c | 2 +- src/battle_controller_wally.c | 2 +- src/battle_controllers.c | 40 ++++++++++----------- src/battle_main.c | 20 +++++------ src/battle_message.c | 76 ++++++++++++++++++++-------------------- src/pokemon.c | 2 +- src/recorded_battle.c | 4 +-- 8 files changed, 74 insertions(+), 74 deletions(-) (limited to 'src') diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index b3179ed3d..1cd672260 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1998,7 +1998,7 @@ static void OpponentHandleResetActionMoveSelection(void) static void OpponentHandleCmd55(void) { - if (gBattleTypeFlags & BATTLE_TYPE_LINK && !(gBattleTypeFlags & BATTLE_TYPE_WILD)) + if (gBattleTypeFlags & BATTLE_TYPE_LINK && !(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) { gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index aab804b41..898e18294 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -687,7 +687,7 @@ static void SafariHandleCmd55(void) FadeOutMapMusic(5); BeginFastPaletteFade(3); SafariBufferExecCompleted(); - if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_WILD)) + if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) gBattlerControllerFuncs[gActiveBattler] = sub_81595E4; } diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 747aa2987..80dd6d3bb 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -1560,7 +1560,7 @@ static void WallyHandleCmd55(void) BeginFastPaletteFade(3); WallyBufferExecCompleted(); - if (!(gBattleTypeFlags & BATTLE_TYPE_WILD) && gBattleTypeFlags & BATTLE_TYPE_LINK) + if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) && gBattleTypeFlags & BATTLE_TYPE_LINK) gBattlerControllerFuncs[gActiveBattler] = sub_80587B0; } diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 4d714ca81..63154ae8b 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -330,7 +330,7 @@ static void InitSinglePlayerBtlControllers(void) } } } - else if (gBattleTypeFlags & BATTLE_TYPE_WILD) + else if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) { gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; @@ -391,7 +391,7 @@ static void InitLinkBtlControllers(void) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - if (gBattleTypeFlags & BATTLE_TYPE_WILD) + if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) { gBattleMainFunc = BeginBattleIntro; @@ -416,7 +416,7 @@ static void InitLinkBtlControllers(void) } else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - if (gBattleTypeFlags & BATTLE_TYPE_WILD) + if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) { gBattleMainFunc = BeginBattleIntro; @@ -453,7 +453,7 @@ static void InitLinkBtlControllers(void) } else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) { - if (gBattleTypeFlags & BATTLE_TYPE_WILD) + if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) { gBattleMainFunc = BeginBattleIntro; @@ -501,7 +501,7 @@ static void InitLinkBtlControllers(void) { multiplayerId = GetMultiplayerId(); - if (gBattleTypeFlags & BATTLE_TYPE_WILD) + if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) gBattleMainFunc = BeginBattleIntro; for (i = 0; i < MAX_BATTLERS_COUNT; i++) @@ -700,14 +700,14 @@ static void CreateTasksForSendRecvLinkBuffers(void) enum { LINK_BUFF_BUFFER_ID, - LINK_BUFF_ACTIVE_BANK, + LINK_BUFF_ACTIVE_BATTLER, LINK_BUFF_ATTACKER, LINK_BUFF_TARGET, LINK_BUFF_SIZE_LO, LINK_BUFF_SIZE_HI, - LINK_BUFF_ABSENT_BANK_FLAGS, - LINK_BUFF_EFFECT_BANK, - LINK_BUFF_DATA + LINK_BUFF_ABSENT_BATTLER_FLAGS, + LINK_BUFF_EFFECT_BATTLER, + LINK_BUFF_DATA, }; void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) @@ -722,13 +722,13 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) gTasks[gUnknown_02022D08].data[14] = 0; } gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBattler; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BATTLER] = gActiveBattler; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBattlerAttacker; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBattlerTarget; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize; gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBattlerFlags; - gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_EFFECT_BANK] = gEffectBattler; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BATTLER_FLAGS] = gAbsentBattlerFlags; + gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_EFFECT_BATTLER] = gEffectBattler; for (i = 0; i < size; i++) gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_DATA + i] = data[i]; @@ -877,7 +877,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) gTasks[taskId].data[12] = 0; gTasks[taskId].data[15] = 0; } - battlerId = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ACTIVE_BANK]; + battlerId = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ACTIVE_BATTLER]; blockSize = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8); switch (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 0]) @@ -886,19 +886,19 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) if (gBattleControllerExecFlags & gBitTable[battlerId]) return; - memcpy(gBattleBufferA[battlerId], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 8], blockSize); + memcpy(gBattleBufferA[battlerId], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA], blockSize); sub_803F850(battlerId); - if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) + if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) { - gBattlerAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2]; - gBattlerTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3]; - gAbsentBattlerFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6]; - gEffectBattler = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7]; + gBattlerAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ATTACKER]; + gBattlerTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_TARGET]; + gAbsentBattlerFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ABSENT_BATTLER_FLAGS]; + gEffectBattler = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_EFFECT_BATTLER]; } break; case 1: - memcpy(gBattleBufferB[battlerId], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 8], blockSize); + memcpy(gBattleBufferB[battlerId], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA], blockSize); break; case 2: var = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA]; diff --git a/src/battle_main.c b/src/battle_main.c index 781fbeff4..74325d7bf 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -877,7 +877,7 @@ static void sub_8036EB8(u8 arg0, u8 arg1) if (gBlockRecvBuffer[0][0] == 256) { if (arg1 == 0) - gBattleTypeFlags |= BATTLE_TYPE_WILD | BATTLE_TYPE_TRAINER; + gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; var++; @@ -896,7 +896,7 @@ static void sub_8036EB8(u8 arg0, u8 arg1) if (i == arg0) { if (arg1 == 0) - gBattleTypeFlags |= BATTLE_TYPE_WILD | BATTLE_TYPE_TRAINER; + gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; var++; @@ -916,7 +916,7 @@ static void sub_8036EB8(u8 arg0, u8 arg1) } if (i == arg0) - gBattleTypeFlags |= BATTLE_TYPE_WILD | BATTLE_TYPE_TRAINER; + gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; } @@ -979,7 +979,7 @@ static void CB2_HandleStartBattle(void) else { if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - gBattleTypeFlags |= BATTLE_TYPE_WILD; + gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER; gBattleCommunication[MULTIUSE_STATE] = 15; SetAllPlayersBerryData(); } @@ -1087,7 +1087,7 @@ static void CB2_HandleStartBattle(void) if ((GetBlockReceivedStatus() & 3) == 3) { ResetBlockReceivedFlags(); - if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) + if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) memcpy(&gRecordedBattleRngSeed, gBlockRecvBuffer[enemyMultiplayerId], sizeof(gRecordedBattleRngSeed)); gBattleCommunication[MULTIUSE_STATE]++; } @@ -1181,7 +1181,7 @@ static void CB2_HandleStartMultiPartnerBattle(void) else { if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - gBattleTypeFlags |= BATTLE_TYPE_WILD; + gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER; gBattleCommunication[MULTIUSE_STATE] = 13; SetAllPlayersBerryData(); } @@ -1340,7 +1340,7 @@ static void CB2_HandleStartMultiPartnerBattle(void) if ((GetBlockReceivedStatus() & 3) == 3) { ResetBlockReceivedFlags(); - if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) + if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) memcpy(&gRecordedBattleRngSeed, gBlockRecvBuffer[enemyMultiplayerId], sizeof(gRecordedBattleRngSeed)); gBattleCommunication[MULTIUSE_STATE]++; } @@ -1568,7 +1568,7 @@ static void CB2_HandleStartMultiBattle(void) else { if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) - gBattleTypeFlags |= BATTLE_TYPE_WILD; + gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER; gBattleCommunication[MULTIUSE_STATE] = 7; SetAllPlayersBerryData(); } @@ -3302,7 +3302,7 @@ static void BattleIntroGetMonsData(void) { case 0: gActiveBattler = gBattleCommunication[1]; - BtlController_EmitGetMonData(0, 0, 0); + BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); MarkBattlerForControllerExec(gActiveBattler); gBattleCommunication[MULTIUSE_STATE]++; break; @@ -4597,7 +4597,7 @@ static void sub_803CDF8(void) void SwapTurnOrder(u8 id1, u8 id2) { u32 temp; - + SWAP(gActionsByTurnOrder[id1], gActionsByTurnOrder[id2], temp); SWAP(gBattlerByTurnOrder[id1], gBattlerByTurnOrder[id2], temp); } diff --git a/src/battle_message.c b/src/battle_message.c index 78b9ac53b..f478df4df 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -334,14 +334,14 @@ static const u8 sText_GotAwaySafely[] = _("{PLAY_SE 0x0011}Got away safely!\p"); static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); static const u8 sText_WildPkmnFled[] = _("{PLAY_SE 0x0011}Wild {B_BUFF1} fled!"); -static const u8 sText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_20}!"); -static const u8 sText_TwoLinkTrainersDefeated[] = _("Player beat {B_20}\nand {B_21}!"); -static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_20}!"); -static const u8 sText_PlayerLostToTwo[] = _("Player lost to {B_20}\nand {B_21}!"); -static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_20}!"); -static const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_20} and {B_21}!"); -static const u8 sText_WildFled[] = _("{PLAY_SE 0x0011}{B_20} fled!"); -static const u8 sText_TwoWildFled[] = _("{PLAY_SE 0x0011}{B_20} and\n{B_21} fled!"); +static const u8 sText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_LINK_OPPONENT1_NAME}!"); +static const u8 sText_TwoLinkTrainersDefeated[] = _("Player beat {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); +static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_LINK_OPPONENT1_NAME}!"); +static const u8 sText_PlayerLostToTwo[] = _("Player lost to {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); +static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME}!"); +static const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); +static const u8 sText_WildFled[] = _("{PLAY_SE 0x0011}{B_LINK_OPPONENT1_NAME} fled!"); +static const u8 sText_TwoWildFled[] = _("{PLAY_SE 0x0011}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); static const u8 sText_NoRunningFromTrainers[] = _("No! There’s no running\nfrom a TRAINER battle!\p"); static const u8 sText_CantEscape[] = _("Can’t escape!\p"); static const u8 sText_DontLeaveBirch[] = _("PROF. BIRCH: Don’t leave me like this!\p"); @@ -398,33 +398,33 @@ static const u8 sText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appea static const u8 sText_WildPkmnAppearedPause[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!{PAUSE 127}"); static const u8 sText_TwoWildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} and\n{B_OPPONENT_MON2_NAME} appeared!\p"); static const u8 sText_Trainer1WantsToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwould like to battle!\p"); -static const u8 sText_LinkTrainerWantsToBattle[] = _("{B_20}\nwants to battle!"); -static const u8 sText_TwoLinkTrainersWantToBattle[] = _("{B_20} and {B_21}\nwant to battle!"); +static const u8 sText_LinkTrainerWantsToBattle[] = _("{B_LINK_OPPONENT1_NAME}\nwants to battle!"); +static const u8 sText_TwoLinkTrainersWantToBattle[] = _("{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}\nwant to battle!"); static const u8 sText_Trainer1SentOutPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!"); static const u8 sText_Trainer1SentOutTwoPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); static const u8 sText_Trainer1SentOutPkmn2[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_BUFF1}!"); -static const u8 sText_LinkTrainerSentOutPkmn[] = _("{B_20} sent out\n{B_OPPONENT_MON1_NAME}!"); -static const u8 sText_LinkTrainerSentOutTwoPkmn[] = _("{B_20} sent out\n{B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); -static const u8 sText_TwoLinkTrainersSentOutPkmn[] = _("{B_20} sent out {B_LINK_OPPONENT_MON1_NAME}!\n{B_21} sent out {B_LINK_OPPONENT_MON2_NAME}!"); -static const u8 sText_LinkTrainerSentOutPkmn2[] = _("{B_20} sent out\n{B_BUFF1}!"); -static const u8 sText_LinkTrainerMultiSentOutPkmn[] = _("{B_22} sent out\n{B_BUFF1}!"); +static const u8 sText_LinkTrainerSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_OPPONENT_MON1_NAME}!"); +static const u8 sText_LinkTrainerSentOutTwoPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); +static const u8 sText_TwoLinkTrainersSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out {B_LINK_OPPONENT_MON1_NAME}!\n{B_LINK_OPPONENT2_NAME} sent out {B_LINK_OPPONENT_MON2_NAME}!"); +static const u8 sText_LinkTrainerSentOutPkmn2[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_BUFF1}!"); +static const u8 sText_LinkTrainerMultiSentOutPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} sent out\n{B_BUFF1}!"); static const u8 sText_GoPkmn[] = _("Go! {B_PLAYER_MON1_NAME}!"); static const u8 sText_GoTwoPkmn[] = _("Go! {B_PLAYER_MON1_NAME} and\n{B_PLAYER_MON2_NAME}!"); static const u8 sText_GoPkmn2[] = _("Go! {B_BUFF1}!"); static const u8 sText_DoItPkmn[] = _("Do it! {B_BUFF1}!"); static const u8 sText_GoForItPkmn[] = _("Go for it, {B_BUFF1}!"); static const u8 sText_YourFoesWeakGetEmPkmn[] = _("Your foe’s weak!\nGet ’em, {B_BUFF1}!"); -static const u8 sText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_1F} sent out {B_LINK_PLAYER_MON2_NAME}!\nGo! {B_LINK_PLAYER_MON1_NAME}!"); +static const u8 sText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_LINK_PARTNER_NAME} sent out {B_LINK_PLAYER_MON2_NAME}!\nGo! {B_LINK_PLAYER_MON1_NAME}!"); static const u8 sText_PkmnThatsEnough[] = _("{B_BUFF1}, that’s enough!\nCome back!"); static const u8 sText_PkmnComeBack[] = _("{B_BUFF1}, come back!"); static const u8 sText_PkmnOkComeBack[] = _("{B_BUFF1}, OK!\nCome back!"); static const u8 sText_PkmnGoodComeBack[] = _("{B_BUFF1}, good!\nCome back!"); static const u8 sText_Trainer1WithdrewPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwithdrew {B_BUFF1}!"); -static const u8 sText_LinkTrainer1WithdrewPkmn[] = _("{B_20} withdrew\n{B_BUFF1}!"); -static const u8 sText_LinkTrainer2WithdrewPkmn[] = _("{B_22} withdrew\n{B_BUFF1}!"); +static const u8 sText_LinkTrainer1WithdrewPkmn[] = _("{B_LINK_OPPONENT1_NAME} withdrew\n{B_BUFF1}!"); +static const u8 sText_LinkTrainer2WithdrewPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} withdrew\n{B_BUFF1}!"); static const u8 sText_WildPkmnPrefix[] = _("Wild "); static const u8 sText_FoePkmnPrefix[] = _("Foe "); -static const u8 sText_EmptyString8[] = _( ""); +static const u8 sText_EmptyString8[] = _(""); static const u8 sText_FoePkmnPrefix2[] = _("Foe"); static const u8 sText_AllyPkmnPrefix[] = _("Ally"); static const u8 sText_FoePkmnPrefix3[] = _("Foe"); @@ -1321,8 +1321,8 @@ static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_T static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your FRONTIER PASS?"); const u8 gText_BattleRecordedOnPass[] = _("{B_PLAYER_NAME}’s battle result was recorded\non the FRONTIER PASS."); -static const u8 sText_LinkTrainerWantsToBattlePause[] = _("{B_20}\nwants to battle!{PAUSE 49}"); -static const u8 sText_TwoLinkTrainersWantToBattlePause[] = _("{B_20} and {B_21}\nwant to battle!{PAUSE 49}"); +static const u8 sText_LinkTrainerWantsToBattlePause[] = _("{B_LINK_OPPONENT1_NAME}\nwants to battle!{PAUSE 49}"); +static const u8 sText_TwoLinkTrainersWantToBattlePause[] = _("{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}\nwant to battle!{PAUSE 49}"); // This is four lists of moves which use a different attack string in Japanese // to the default. See the documentation for ChooseTypeOfMoveUsedString for more detail. @@ -2303,13 +2303,13 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) u32 dstID = 0; // if they used dstID, why not use srcID as well? const u8 *toCpy = NULL; u8 text[30]; - u8 multiplayerID; + u8 multiplayerId; s32 i; if (gBattleTypeFlags & BATTLE_TYPE_x2000000) - multiplayerID = gUnknown_0203C7B4; + multiplayerId = gUnknown_0203C7B4; else - multiplayerID = GetMultiplayerId(); + multiplayerId = GetMultiplayerId(); while (*src != EOS) { @@ -2383,25 +2383,25 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = text; break; case B_TXT_LINK_PLAYER_MON1_NAME: // link first player poke name - GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id]], + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON1_NAME: // link first opponent poke name - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 1]], + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 1]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_LINK_PLAYER_MON2_NAME: // link second player poke name - GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 2]], + GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON2_NAME: // link second opponent poke name - GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 3]], + GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 3]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; @@ -2531,7 +2531,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) } else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) { - toCpy = gLinkPlayers[multiplayerID ^ BIT_SIDE].name; + toCpy = gLinkPlayers[multiplayerId ^ BIT_SIDE].name; } else if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) { @@ -2558,19 +2558,19 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = gTrainers[gTrainerBattleOpponent_A].trainerName; } break; - case B_TXT_1E: // link player name? - toCpy = gLinkPlayers[multiplayerID].name; + case B_TXT_LINK_PLAYER_NAME: // link player name + toCpy = gLinkPlayers[multiplayerId].name; break; - case B_TXT_1F: // link partner name? - toCpy = gLinkPlayers[GetBattlerMultiplayerId(2 ^ gLinkPlayers[multiplayerID].id)].name; + case B_TXT_LINK_PARTNER_NAME: // link partner name + toCpy = gLinkPlayers[GetBattlerMultiplayerId(BATTLE_PARTNER(gLinkPlayers[multiplayerId].id))].name; break; - case B_TXT_20: // link opponent 1 name? - toCpy = gLinkPlayers[GetBattlerMultiplayerId(1 ^ gLinkPlayers[multiplayerID].id)].name; + case B_TXT_LINK_OPPONENT1_NAME: // link opponent 1 name + toCpy = gLinkPlayers[GetBattlerMultiplayerId(BATTLE_OPPOSITE(gLinkPlayers[multiplayerId].id))].name; break; - case B_TXT_21: // link opponent 2 name? - toCpy = gLinkPlayers[GetBattlerMultiplayerId(3 ^ gLinkPlayers[multiplayerID].id)].name; + case B_TXT_LINK_OPPONENT2_NAME: // link opponent 2 name + toCpy = gLinkPlayers[GetBattlerMultiplayerId(BATTLE_PARTNER(BATTLE_OPPOSITE(gLinkPlayers[multiplayerId].id)))].name; break; - case B_TXT_22: // link scripting active name + case B_TXT_LINK_SCR_TRAINER_NAME: // link scripting active name toCpy = gLinkPlayers[GetBattlerMultiplayerId(gBattleScripting.battler)].name; break; case B_TXT_PLAYER_NAME: // player name diff --git a/src/pokemon.c b/src/pokemon.c index 78a7a55a5..e2ce24bdb 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5307,7 +5307,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov // I have to re-use this variable to match. r5 = gActiveBattler; gActiveBattler = battlerId; - BtlController_EmitGetMonData(0, 0, 0); + BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, 0); MarkBattlerForControllerExec(gActiveBattler); gActiveBattler = r5; } diff --git a/src/recorded_battle.c b/src/recorded_battle.c index fc3b8b94a..5a12d6114 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -273,7 +273,7 @@ void sub_81851A8(u8 *arg0) return; } - if (!(gBattleTypeFlags & BATTLE_TYPE_WILD)) + if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) { for (var2 = *arg0; var2 != 0;) { @@ -360,7 +360,7 @@ u32 MoveRecordedBattleToSaveData(void) battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20)); battleSave->battleFlags |= BATTLE_TYPE_x2000000; - if (sBattleFlags & BATTLE_TYPE_WILD) + if (sBattleFlags & BATTLE_TYPE_IS_MASTER) { battleSave->battleFlags |= BATTLE_TYPE_x80000000; } -- cgit v1.2.3 From bf64333299130fc750031ea238dbd3e07a76c55d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 20 Sep 2018 21:42:38 +0200 Subject: Give labels to healthbox gfx --- src/battle_gfx_sfx_util.c | 24 ++++++++++++------------ src/battle_message.c | 10 +++++----- src/graphics.c | 10 +++++----- 3 files changed, 22 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 23ed8a19f..b4dcf586d 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -47,11 +47,11 @@ extern const u32 gUnknown_08C093F0[]; extern const u32 gSubstituteDollTilemap[]; extern const u32 gSubstituteDollGfx[]; extern const u16 gSubstituteDollPal[]; -extern const u8 gUnknown_08C1F1C8[]; -extern const u8 gUnknown_08C1F46C[]; -extern const u8 gUnknown_08C1F5E8[]; -extern const u8 gUnknown_08C1F76C[]; -extern const u8 gUnknown_08C1F8E8[]; +extern const u8 gHealthboxSinglesPlayerGfx[]; +extern const u8 gHealthboxSinglesOpponentGfx[]; +extern const u8 gHealthboxDoublesPlayerGfx[]; +extern const u8 gHealthboxDoublesOpponentGfx[]; +extern const u8 gHealthboxSafariGfx[]; extern const u8 gBlankGfxCompressed[]; extern const u16 gBattleInterface_BallStatusBarPal[]; extern const u16 gBattleInterface_BallDisplayPal[]; @@ -72,29 +72,29 @@ static void ClearSpritesBattlerHealthboxAnimData(void); // const rom data static const struct CompressedSpriteSheet sSpriteSheet_SinglesPlayerHealthbox = { - gUnknown_08C1F1C8, 0x1000, TAG_HEALTHBOX_PLAYER1_TILE + gHealthboxSinglesPlayerGfx, 0x1000, TAG_HEALTHBOX_PLAYER1_TILE }; static const struct CompressedSpriteSheet sSpriteSheet_SinglesOpponentHealthbox = { - gUnknown_08C1F46C, 0x1000, TAG_HEALTHBOX_OPPONENT1_TILE + gHealthboxSinglesOpponentGfx, 0x1000, TAG_HEALTHBOX_OPPONENT1_TILE }; static const struct CompressedSpriteSheet sSpriteSheets_DoublesPlayerHealthbox[2] = { - {gUnknown_08C1F5E8, 0x800, TAG_HEALTHBOX_PLAYER1_TILE}, - {gUnknown_08C1F5E8, 0x800, TAG_HEALTHBOX_PLAYER2_TILE} + {gHealthboxDoublesPlayerGfx, 0x800, TAG_HEALTHBOX_PLAYER1_TILE}, + {gHealthboxDoublesPlayerGfx, 0x800, TAG_HEALTHBOX_PLAYER2_TILE} }; static const struct CompressedSpriteSheet sSpriteSheets_DoublesOpponentHealthbox[2] = { - {gUnknown_08C1F76C, 0x800, TAG_HEALTHBOX_OPPONENT1_TILE}, - {gUnknown_08C1F76C, 0x800, TAG_HEALTHBOX_OPPONENT2_TILE} + {gHealthboxDoublesOpponentGfx, 0x800, TAG_HEALTHBOX_OPPONENT1_TILE}, + {gHealthboxDoublesOpponentGfx, 0x800, TAG_HEALTHBOX_OPPONENT2_TILE} }; static const struct CompressedSpriteSheet sSpriteSheet_SafariHealthbox = { - gUnknown_08C1F8E8, 0x1000, TAG_HEALTHBOX_SAFARI_TILE + gHealthboxSafariGfx, 0x1000, TAG_HEALTHBOX_SAFARI_TILE }; static const struct CompressedSpriteSheet sSpriteSheets_HealthBar[MAX_BATTLERS_COUNT] = diff --git a/src/battle_message.c b/src/battle_message.c index f478df4df..47579d4f2 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -17,6 +17,7 @@ #include "menu.h" #include "recorded_battle.h" #include "international_string_util.h" +#include "battle_frontier_2.h" struct BattleWindowText { @@ -51,7 +52,6 @@ extern u8 GetEreaderTrainerClassId(void); // battle_tower extern void CopyFrontierBrainTrainerName(u8 *txtPtr); // battle_frontier_2 extern void sub_81D5554(u8 *txtPtr, u16 trainerId); // pokenav extern void GetEreaderTrainerName(u8 *txtPtr); -extern void sub_81A36D0(u8 arg0, u16 trainerId); // battle_frontier_2 extern void sub_81D572C(u8 arg0, u16 trainerId); // pokenav extern void GetFrontierTrainerName(u8 *dst, u16 trainerId); @@ -2582,7 +2582,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_TRAINER1_LOSE_TEXT: // trainerA lose text if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { - sub_81A36D0(2, gTrainerBattleOpponent_A); + CopyFrontierTrainerText(FRONTIER_LOSE_TEXT, gTrainerBattleOpponent_A); toCpy = gStringVar4; } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) @@ -2598,7 +2598,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_TRAINER1_WIN_TEXT: // trainerA win text if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { - sub_81A36D0(1, gTrainerBattleOpponent_A); + CopyFrontierTrainerText(FRONTIER_WIN_TEXT, gTrainerBattleOpponent_A); toCpy = gStringVar4; } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) @@ -2679,7 +2679,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_TRAINER2_LOSE_TEXT: if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { - sub_81A36D0(2, gTrainerBattleOpponent_B); + CopyFrontierTrainerText(FRONTIER_LOSE_TEXT, gTrainerBattleOpponent_B); toCpy = gStringVar4; } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) @@ -2695,7 +2695,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_TRAINER2_WIN_TEXT: if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { - sub_81A36D0(1, gTrainerBattleOpponent_B); + CopyFrontierTrainerText(FRONTIER_WIN_TEXT, gTrainerBattleOpponent_B); toCpy = gStringVar4; } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) diff --git a/src/graphics.c b/src/graphics.c index 38a79ce3c..5debb721a 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -643,11 +643,11 @@ const u8 gBattleAnimSpritePalette_187[] = INCBIN_U8("graphics/battle_anims/sprit 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 gHealthboxSinglesPlayerGfx[] = INCBIN_U8("graphics/battle_interface/healthbox_singles_player.4bpp.lz"); +const u8 gHealthboxSinglesOpponentGfx[] = INCBIN_U8("graphics/battle_interface/healthbox_singles_opponent.4bpp.lz"); +const u8 gHealthboxDoublesPlayerGfx[] = INCBIN_U8( "graphics/battle_interface/healthbox_doubles_player.4bpp.lz"); +const u8 gHealthboxDoublesOpponentGfx[] = INCBIN_U8("graphics/battle_interface/healthbox_doubles_opponent.4bpp.lz"); +const u8 gHealthboxSafariGfx[] = INCBIN_U8("graphics/battle_interface/healthbox_safari.4bpp.lz"); const u8 gUnusedGfx_Shadow[] = INCBIN_U8("graphics/unused/shadow.4bpp.lz"); const u8 gUnusedPal_Shadow[] = INCBIN_U8("graphics/unused/shadow.gbapal.lz"); -- cgit v1.2.3 From 66fd9b2ddfef147159033271046f62b4f2c8adad Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 20 Sep 2018 22:00:00 +0200 Subject: Label trainer hill battle type --- src/battle_ai_script_commands.c | 2 +- src/battle_controller_opponent.c | 18 +++++++++--------- src/battle_main.c | 16 ++++++++-------- src/battle_message.c | 38 +++++++++++++++++++------------------- src/battle_script_commands.c | 8 ++++---- src/battle_setup.c | 8 ++++---- src/battle_util2.c | 4 ++-- src/pokemon.c | 2 +- src/recorded_battle.c | 2 +- 9 files changed, 49 insertions(+), 49 deletions(-) (limited to 'src') diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 74247f8a2..1201a855a 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -369,7 +369,7 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves) AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_FIRST_BATTLE; else if (gBattleTypeFlags & BATTLE_TYPE_FACTORY) AI_THINKING_STRUCT->aiFlags = GetAiScriptsInBattleFactory(); - else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_SECRET_BASE)) + else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_SECRET_BASE)) AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_CHECK_BAD_MOVE | AI_SCRIPT_CHECK_VIABILITY | AI_SCRIPT_TRY_TO_FAINT; else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent_A].aiFlags | gTrainers[gTrainerBattleOpponent_B].aiFlags; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 1cd672260..c490ad314 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -40,7 +40,7 @@ extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); extern void sub_81A57E4(u8 battlerId, u16 stringId); extern u8 GetFrontierBrainTrainerPicIndex(void); -extern u8 sub_81D5588(u16 trainerId); +extern u8 GetTrainerHillTrainerFrontSpriteId(u16 trainerId); extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); extern u8 GetEreaderTrainerFrontSpriteId(void); @@ -1236,18 +1236,18 @@ static void OpponentHandleDrawTrainerPic(void) { trainerPicId = GetFrontierBrainTrainerPicIndex(); } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { if (gActiveBattler == 1) - trainerPicId = sub_81D5588(gTrainerBattleOpponent_A); + trainerPicId = GetTrainerHillTrainerFrontSpriteId(gTrainerBattleOpponent_A); else - trainerPicId = sub_81D5588(gTrainerBattleOpponent_B); + trainerPicId = GetTrainerHillTrainerFrontSpriteId(gTrainerBattleOpponent_B); } else { - trainerPicId = sub_81D5588(gTrainerBattleOpponent_A); + trainerPicId = GetTrainerHillTrainerFrontSpriteId(gTrainerBattleOpponent_A); } } else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) @@ -1320,18 +1320,18 @@ static void OpponentHandleTrainerSlide(void) { trainerPicId = GetFrontierBrainTrainerPicIndex(); } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { if (gActiveBattler == 1) - trainerPicId = sub_81D5588(gTrainerBattleOpponent_A); + trainerPicId = GetTrainerHillTrainerFrontSpriteId(gTrainerBattleOpponent_A); else - trainerPicId = sub_81D5588(gTrainerBattleOpponent_B); + trainerPicId = GetTrainerHillTrainerFrontSpriteId(gTrainerBattleOpponent_B); } else { - trainerPicId = sub_81D5588(gTrainerBattleOpponent_A); + trainerPicId = GetTrainerHillTrainerFrontSpriteId(gTrainerBattleOpponent_A); } } else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) diff --git a/src/battle_main.c b/src/battle_main.c index 74325d7bf..12e49ee65 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1920,7 +1920,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_x4000000))) + | BATTLE_TYPE_TRAINER_HILL))) { if (firstTrainer == TRUE) ZeroEnemyPartyMons(); @@ -3385,7 +3385,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_x4000000))) + | BATTLE_TYPE_TRAINER_HILL))) { HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); } @@ -3398,7 +3398,7 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_x4000000))) + | BATTLE_TYPE_TRAINER_HILL))) { HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); } @@ -3709,7 +3709,7 @@ static void BattleIntroRecordMonsToDex(void) | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_x4000000))) + | BATTLE_TYPE_TRAINER_HILL))) { HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); } @@ -4326,7 +4326,7 @@ static void HandleTurnActionSelectionState(void) } if (gBattleTypeFlags & BATTLE_TYPE_TRAINER - && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) + && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_TRAINER_HILL) && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN) { gSelectionBattleScripts[gActiveBattler] = BattleScript_AskIfWantsToForfeitMatch; @@ -4978,7 +4978,7 @@ static void HandleEndTurn_BattleWon(void) gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN); } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER - && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_EREADER_TRAINER)) + && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_EREADER_TRAINER)) { BattleStopLowHpSound(); gBattlescriptCurrInstr = BattleScript_FrontierTrainerBattleWon; @@ -5069,7 +5069,7 @@ static void HandleEndTurn_RanFromBattle(void) gBattleOutcome = B_OUTCOME_FORFEITED; gSaveBlock2Ptr->frontier.field_CA9_b = 1; } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; gBattleOutcome = B_OUTCOME_FORFEITED; @@ -5624,7 +5624,7 @@ bool8 TryRunFromBattle(u8 battler) effect++; } } - else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) && gBattleTypeFlags & BATTLE_TYPE_TRAINER) + else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_TRAINER_HILL) && gBattleTypeFlags & BATTLE_TYPE_TRAINER) { effect++; } diff --git a/src/battle_message.c b/src/battle_message.c index 47579d4f2..a5f549733 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -47,12 +47,12 @@ extern const u8 gText_PkmnTransferredLanettesPC[]; extern u8 GetFrontierBrainTrainerClass(void); // battle_frontier_2 extern u8 GetFrontierOpponentClass(u16 trainerId); // battle_tower -extern u8 sub_81D5530(u16 trainerId); // pokenav +extern u8 GetTrainerHillOpponentClass(u16 trainerId); // pokenav extern u8 GetEreaderTrainerClassId(void); // battle_tower extern void CopyFrontierBrainTrainerName(u8 *txtPtr); // battle_frontier_2 -extern void sub_81D5554(u8 *txtPtr, u16 trainerId); // pokenav +extern void GetTrainerHillTrainerName(u8 *txtPtr, u16 trainerId); // pokenav extern void GetEreaderTrainerName(u8 *txtPtr); -extern void sub_81D572C(u8 arg0, u16 trainerId); // pokenav +extern void CopyTrainerHillTrainerText(u8 arg0, u16 trainerId); // pokenav extern void GetFrontierTrainerName(u8 *dst, u16 trainerId); // this file's functions @@ -2513,8 +2513,8 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = gTrainerClassNames[GetFrontierBrainTrainerClass()]; else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) toCpy = gTrainerClassNames[GetFrontierOpponentClass(gTrainerBattleOpponent_A)]; - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) - toCpy = gTrainerClassNames[sub_81D5530(gTrainerBattleOpponent_A)]; + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) + toCpy = gTrainerClassNames[GetTrainerHillOpponentClass(gTrainerBattleOpponent_A)]; else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER) toCpy = gTrainerClassNames[GetEreaderTrainerClassId()]; else @@ -2543,9 +2543,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) GetFrontierTrainerName(text, gTrainerBattleOpponent_A); toCpy = text; } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { - sub_81D5554(text, gTrainerBattleOpponent_A); + GetTrainerHillTrainerName(text, gTrainerBattleOpponent_A); toCpy = text; } else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER) @@ -2585,9 +2585,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) CopyFrontierTrainerText(FRONTIER_LOSE_TEXT, gTrainerBattleOpponent_A); toCpy = gStringVar4; } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { - sub_81D572C(4, gTrainerBattleOpponent_A); + CopyTrainerHillTrainerText(4, gTrainerBattleOpponent_A); toCpy = gStringVar4; } else @@ -2601,9 +2601,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) CopyFrontierTrainerText(FRONTIER_WIN_TEXT, gTrainerBattleOpponent_A); toCpy = gStringVar4; } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { - sub_81D572C(3, gTrainerBattleOpponent_A); + CopyTrainerHillTrainerText(3, gTrainerBattleOpponent_A); toCpy = gStringVar4; } break; @@ -2655,8 +2655,8 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_TRAINER2_CLASS: if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) toCpy = gTrainerClassNames[GetFrontierOpponentClass(gTrainerBattleOpponent_B)]; - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) - toCpy = gTrainerClassNames[sub_81D5530(gTrainerBattleOpponent_B)]; + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) + toCpy = gTrainerClassNames[GetTrainerHillOpponentClass(gTrainerBattleOpponent_B)]; else toCpy = gTrainerClassNames[gTrainers[gTrainerBattleOpponent_B].trainerClass]; break; @@ -2666,9 +2666,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) GetFrontierTrainerName(text, gTrainerBattleOpponent_B); toCpy = text; } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { - sub_81D5554(text, gTrainerBattleOpponent_B); + GetTrainerHillTrainerName(text, gTrainerBattleOpponent_B); toCpy = text; } else @@ -2682,9 +2682,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) CopyFrontierTrainerText(FRONTIER_LOSE_TEXT, gTrainerBattleOpponent_B); toCpy = gStringVar4; } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { - sub_81D572C(4, gTrainerBattleOpponent_B); + CopyTrainerHillTrainerText(4, gTrainerBattleOpponent_B); toCpy = gStringVar4; } else @@ -2698,9 +2698,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) CopyFrontierTrainerText(FRONTIER_WIN_TEXT, gTrainerBattleOpponent_B); toCpy = gStringVar4; } - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { - sub_81D572C(3, gTrainerBattleOpponent_B); + CopyTrainerHillTrainerText(3, gTrainerBattleOpponent_B); toCpy = gStringVar4; } break; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 44194deda..90dacc8cb 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -2739,7 +2739,7 @@ void SetMoveEffect(bool8 primary, u8 certain) break; case MOVE_EFFECT_STEAL_ITEM: { - if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) { gBattlescriptCurrInstr++; break; @@ -3268,7 +3268,7 @@ static void atk23_getexp(void) if (GetBattlerSide(gBattlerFainted) != B_SIDE_OPPONENT || (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_x4000000 + | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER @@ -4987,7 +4987,7 @@ static void atk4E_switchinanim(void) && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 - | BATTLE_TYPE_x4000000 + | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_FRONTIER))) HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); @@ -9405,7 +9405,7 @@ static void atkD1_trysethelpinghand(void) static void atkD2_tryswapitems(void) // trick { // opponent can't swap items with player in regular battles - if (gBattleTypeFlags & BATTLE_TYPE_x4000000 + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL || (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER diff --git a/src/battle_setup.c b/src/battle_setup.c index 17ab20ccd..89a3d9a2c 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -75,7 +75,7 @@ extern void sub_81D6384(void); extern void sub_81D61E8(void); extern void sub_80982B8(void); extern void sub_81A9EDC(u16 a0); -extern void sub_81D572C(u8 a0, u16 arg1); +extern void CopyTrainerHillTrainerText(u8 a0, u16 arg1); // this file's functions static void DoBattlePikeWildBattle(void); @@ -1281,7 +1281,7 @@ void BattleSetup_StartTrainerBattle(void) } else if (sub_81D5C18()) { - gBattleTypeFlags |= BATTLE_TYPE_x4000000; + gBattleTypeFlags |= BATTLE_TYPE_TRAINER_HILL; if (gNoOfApproachingTrainers == 2) sub_81D639C(); @@ -1370,9 +1370,9 @@ void ShowTrainerIntroSpeech(void) else if (sub_81D5C18()) { if (gNoOfApproachingTrainers == 0 || gNoOfApproachingTrainers == 1) - sub_81D572C(2, sub_81D6180(gSpecialVar_LastTalked)); + CopyTrainerHillTrainerText(2, sub_81D6180(gSpecialVar_LastTalked)); else - sub_81D572C(2, sub_81D6180(gEventObjects[gApproachingTrainers[gApproachingTrainerId].eventObjectId].localId)); + CopyTrainerHillTrainerText(2, sub_81D6180(gEventObjects[gApproachingTrainers[gApproachingTrainerId].eventObjectId].localId)); sub_80982B8(); } diff --git a/src/battle_util2.c b/src/battle_util2.c index 1d2f1e95b..5881abf25 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -19,7 +19,7 @@ void AllocateBattleResources(void) { gBattleResources = gBattleResources; // something dumb needed to match - if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) sub_81D55D0(); gBattleStruct = AllocZeroed(sizeof(*gBattleStruct)); @@ -49,7 +49,7 @@ void AllocateBattleResources(void) void FreeBattleResources(void) { - if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) sub_81D5694(); if (gBattleResources != NULL) diff --git a/src/pokemon.c b/src/pokemon.c index e2ce24bdb..8e2e3b764 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6621,7 +6621,7 @@ u16 GetBattleBGM(void) if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) trainerClass = GetFrontierOpponentClass(gTrainerBattleOpponent_A); - else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL) trainerClass = TRAINER_CLASS_EXPERT; else trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass; diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 5a12d6114..355ed5e07 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -19,7 +19,7 @@ #define ILLEGAL_BATTLE_TYPES ((BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_FIRST_BATTLE \ | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_ROAMER | BATTLE_TYPE_EREADER_TRAINER \ | BATTLE_TYPE_KYOGRE_GROUDON | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI \ - | BATTLE_TYPE_RECORDED | BATTLE_TYPE_x4000000 | BATTLE_TYPE_SECRET_BASE \ + | BATTLE_TYPE_RECORDED | BATTLE_TYPE_TRAINER_HILL | BATTLE_TYPE_SECRET_BASE \ | BATTLE_TYPE_GROUDON | BATTLE_TYPE_KYOGRE | BATTLE_TYPE_RAYQUAZA)) extern u8 gUnknown_03001278; -- cgit v1.2.3 From 4d9c513e3e77af3923e056c532b48a008c2d2cfc Mon Sep 17 00:00:00 2001 From: Tetrable Date: Sat, 22 Sep 2018 12:50:24 +0100 Subject: Document and improve tileset_anims.c further --- src/tileset_anims.c | 156 ++++++++++++++++++++++++++-------------------------- 1 file changed, 79 insertions(+), 77 deletions(-) (limited to 'src') diff --git a/src/tileset_anims.c b/src/tileset_anims.c index d05931dba..fb2146bd2 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -1,4 +1,3 @@ - // Includes #include "global.h" #include "palette.h" @@ -7,6 +6,9 @@ #include "task.h" #include "battle_transition.h" +#define SECONDARY_TILESET_VRAM 0x2000 +#define TILE_VRAM(n) (0x20 * (n)) + // Static type declarations // Static RAM declarations @@ -223,25 +225,25 @@ const u16 gTilesetAnims_Mauville1b_Frame1[] = INCBIN_U16("data/tilesets/secondar const u16 tileset_anims_space_1[16] = {}; u16 *const gTilesetAnims_MauvilleVDests0[] = { - (u16 *)(BG_VRAM + 0x4c00), - (u16 *)(BG_VRAM + 0x4c80), - (u16 *)(BG_VRAM + 0x4d00), - (u16 *)(BG_VRAM + 0x4d80), - (u16 *)(BG_VRAM + 0x4e00), - (u16 *)(BG_VRAM + 0x4e80), - (u16 *)(BG_VRAM + 0x4f00), - (u16 *)(BG_VRAM + 0x4f80) + (u16 *)BG_VRAM + TILE_VRAM(0x260)), + (u16 *)BG_VRAM + TILE_VRAM(0x264)), + (u16 *)BG_VRAM + TILE_VRAM(0x268)), + (u16 *)BG_VRAM + TILE_VRAM(0x26C)), + (u16 *)BG_VRAM + TILE_VRAM(0x270)), + (u16 *)BG_VRAM + TILE_VRAM(0x274)), + (u16 *)BG_VRAM + TILE_VRAM(0x278)), + (u16 *)BG_VRAM + TILE_VRAM(0x27C)) }; u16 *const gTilesetAnims_MauvilleVDests1[] = { - (u16 *)(BG_VRAM + 0x5000), - (u16 *)(BG_VRAM + 0x5080), - (u16 *)(BG_VRAM + 0x5100), - (u16 *)(BG_VRAM + 0x5180), - (u16 *)(BG_VRAM + 0x5200), - (u16 *)(BG_VRAM + 0x5280), - (u16 *)(BG_VRAM + 0x5300), - (u16 *)(BG_VRAM + 0x5380) + (u16 *)BG_VRAM + TILE_VRAM(0x280)), + (u16 *)BG_VRAM + TILE_VRAM(0x284)), + (u16 *)BG_VRAM + TILE_VRAM(0x288)), + (u16 *)BG_VRAM + TILE_VRAM(0x28C)), + (u16 *)BG_VRAM + TILE_VRAM(0x290)), + (u16 *)BG_VRAM + TILE_VRAM(0x294)), + (u16 *)BG_VRAM + TILE_VRAM(0x298)), + (u16 *)BG_VRAM + TILE_VRAM(0x29C)) }; const u16 *const gTilesetAnims_Mauville0a[] = { @@ -305,14 +307,14 @@ const u16 gTilesetAnims_Rustboro0_Frame6[] = INCBIN_U16("data/tilesets/secondary const u16 gTilesetAnims_Rustboro0_Frame7[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/7.4bpp"); u16 *const gTilesetAnims_RustboroVDests0[] = { - (u16 *)(BG_VRAM + 0x5000), - (u16 *)(BG_VRAM + 0x5080), - (u16 *)(BG_VRAM + 0x5100), - (u16 *)(BG_VRAM + 0x5180), - (u16 *)(BG_VRAM + 0x5200), - (u16 *)(BG_VRAM + 0x5280), - (u16 *)(BG_VRAM + 0x5300), - (u16 *)(BG_VRAM + 0x5380) + (u16 *)BG_VRAM + TILE_VRAM(0x280)), + (u16 *)BG_VRAM + TILE_VRAM(0x284)), + (u16 *)BG_VRAM + TILE_VRAM(0x288)), + (u16 *)BG_VRAM + TILE_VRAM(0x28C)), + (u16 *)BG_VRAM + TILE_VRAM(0x290)), + (u16 *)BG_VRAM + TILE_VRAM(0x294)), + (u16 *)BG_VRAM + TILE_VRAM(0x298)), + (u16 *)BG_VRAM + TILE_VRAM(0x29C)) }; const u16 *const gTilesetAnims_Rustboro0[] = { @@ -381,14 +383,14 @@ const u16 gTilesetAnims_EverGrande0_Frame7[] = INCBIN_U16("data/tilesets/seconda const u16 tileset_anims_space_4[16] = {}; u16 *const gTilesetAnims_EverGrandeVDests0[] = { - (u16 *)(BG_VRAM + 0x5c00), - (u16 *)(BG_VRAM + 0x5c80), - (u16 *)(BG_VRAM + 0x5d00), - (u16 *)(BG_VRAM + 0x5d80), - (u16 *)(BG_VRAM + 0x5e00), - (u16 *)(BG_VRAM + 0x5e80), - (u16 *)(BG_VRAM + 0x5f00), - (u16 *)(BG_VRAM + 0x5f80) + (u16 *)BG_VRAM + TILE_VRAM(0x2E0)), + (u16 *)BG_VRAM + TILE_VRAM(0x2E4)), + (u16 *)BG_VRAM + TILE_VRAM(0x2E8)), + (u16 *)BG_VRAM + TILE_VRAM(0x2EC)), + (u16 *)BG_VRAM + TILE_VRAM(0x2F0)), + (u16 *)BG_VRAM + TILE_VRAM(0x2F4)), + (u16 *)BG_VRAM + TILE_VRAM(0x2F8)), + (u16 *)BG_VRAM + TILE_VRAM(0x2FC)) }; const u16 *const gTilesetAnims_EverGrande0[] = { @@ -714,27 +716,27 @@ void TilesetCb_InsideBuilding(void) sPrimaryTilesetCBCounter = 0; sPrimaryTilesetCBBufferSize = 0x100; - sPrimaryTilesetCB = sub_80A0BB4; + sPrimaryTilesetCB = sPrimaryTilesetTimer; } -static void sub_80A0B70(u16 timer) +static void sPrimaryTilesetTimer(u16 timer) { - static void sub_80A0BCC(u16); - static void sub_80A0BF4(u16); - static void sub_80A0C1C(u16); - static void sub_80A0C44(u16); - static void sub_80A12AC(u16); + static void gTilesetAnims_GeneralVDests0(u16); + static void gTilesetAnims_GeneralVDests1(u16); + static void gTilesetAnims_GeneralVDests2(u16); + static void gTilesetAnims_GeneralVDests3(u16); + static void gTilesetAnims_GeneralVDests4 (u16); if ((timer & 0x0F) == 0) - sub_80A0BCC(timer >> 4); + gTilesetAnims_GeneralVDests0(timer >> 4); if ((timer & 0x0F) == 1) - sub_80A0BF4(timer >> 4); + gTilesetAnims_GeneralVDests1(timer >> 4); if ((timer & 0x0F) == 2) - sub_80A0C1C(timer >> 4); + gTilesetAnims_GeneralVDests2(timer >> 4); if ((timer & 0x0F) == 3) - sub_80A0C44(timer >> 4); + gTilesetAnims_GeneralVDests3(timer >> 4); if ((timer & 0x0F) == 4) - sub_80A12AC(timer >> 4); + gTilesetAnims_GeneralVDests4 (timer >> 4); } static void sub_80A0BB4(u16 timer) @@ -745,36 +747,36 @@ static void sub_80A0BB4(u16 timer) sub_80A1688(timer >> 3); } -static void sub_80A0BCC(u16 timer) +static void gTilesetAnims_GeneralVDests0(u16 timer) { u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General0[idx], (u16 *)(BG_VRAM + 0x3F80), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_General0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1FC)), 0x80); } -static void sub_80A0BF4(u16 timer) +static void gTilesetAnims_GeneralVDests1(u16 timer) { u8 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General1[idx], (u16 *)(BG_VRAM + 0x3600), 0x3C0); + AppendTilesetAnimToBuffer(gTilesetAnims_General1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1B0)), 0x3C0); } -static void sub_80A0C1C(u16 timer) +static void gTilesetAnims_GeneralVDests2(u16 timer) { u16 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General2[idx], (u16 *)(BG_VRAM + 0x3a00), 0x140); + AppendTilesetAnimToBuffer(gTilesetAnims_General2[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1D0)), 0x140); } -static void sub_80A0C44(u16 timer) +static void gTilesetAnims_GeneralVDests3(u16 timer) { u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General3[idx], (u16 *)(BG_VRAM + 0x3e00), 0xc0); + AppendTilesetAnimToBuffer(gTilesetAnims_General3[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1F0)), 0xc0); } void TilesetCb_Petalburg(void) @@ -1122,12 +1124,12 @@ static void sub_80A1294(u16 timer) sub_80A1570(timer >> 3); } -static void sub_80A12AC(u16 timer) +static void gTilesetAnims_GeneralVDests4 (u16 timer) { u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General4[idx], (u16 *)(BG_VRAM + 0x3c00), 0x140); + AppendTilesetAnimToBuffer(gTilesetAnims_General4[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1E0)), 0x140); } static void sub_80A12D4(u8 timer) @@ -1135,10 +1137,10 @@ static void sub_80A12D4(u8 timer) u8 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + 0x6400), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x320)), 0x80); idx = (timer + 2) % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + 0x6480), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x324)), 0x80); } static void sub_80A131C(u8 timer) @@ -1146,7 +1148,7 @@ static void sub_80A131C(u8 timer) u8 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog0[idx], (u16 *)(BG_VRAM + 0x7a00), 0x3C0); + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3D0)), 0x3C0); } static void sub_80A1344(u8 timer) @@ -1154,7 +1156,7 @@ static void sub_80A1344(u8 timer) u8 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Underwater0[idx], (u16 *)(BG_VRAM + 0x7e00), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Underwater0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3FO)), 0x80); } static void sub_80A136C(u8 timer) @@ -1162,7 +1164,7 @@ static void sub_80A136C(u8 timer) u8 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog1[idx], (u16 *)(BG_VRAM + 0x7e00), 0x100); + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3F0)), 0x100); } static void sub_80A1394(u16 timer_div, u8 timer_mod) @@ -1195,7 +1197,7 @@ static void sub_80A1470(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro1[idx], (u16 *)(BG_VRAM + 0x7800), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3C0)), 0x80); } static void sub_80A1498(u16 timer) @@ -1203,7 +1205,7 @@ static void sub_80A1498(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + 0x5400), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2A0), 0x80); } static void sub_80A14C0(u16 timer_div, u8 timer_mod) @@ -1219,7 +1221,7 @@ static void sub_80A14F8(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + 0x7400), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3A0)), 0x80); } static void sub_80A1520(u16 timer) @@ -1227,7 +1229,7 @@ static void sub_80A1520(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Dewford0[idx], (u16 *)(BG_VRAM + 0x5540), 0xC0); + AppendTilesetAnimToBuffer(gTilesetAnims_Dewford0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2AA)), 0xC0); } static void sub_80A1548(u16 timer) @@ -1235,7 +1237,7 @@ static void sub_80A1548(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest0[idx], (u16 *)(BG_VRAM + 0x5b40), 0xC0); + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2DA)), 0xC0); } static void sub_80A1570(u16 timer) @@ -1243,7 +1245,7 @@ static void sub_80A1570(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast0[idx], (u16 *)(BG_VRAM + 0x5b40), 0xC0); + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2DA)), 0xC0); } static void sub_80A1598(u16 timer) @@ -1251,7 +1253,7 @@ static void sub_80A1598(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Slateport0[idx], (u16 *)(BG_VRAM + 0x5c00), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Slateport0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2E0)), 0x80); } static void sub_80A15C0(u16 timer) @@ -1321,7 +1323,7 @@ static void sub_80A1688(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_InsideBuilding0[idx], (u16 *)(BG_VRAM + 0x3e00), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_InsideBuilding0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x1F0)), 0x80); } static void sub_80A16B0(u16 timer) @@ -1329,8 +1331,8 @@ static void sub_80A16B0(u16 timer) u16 idx; idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym0[idx], (u16 *)(BG_VRAM + 0x7e00), 0x180); - AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym1[idx], (u16 *)(BG_VRAM + 0x7a00), 0x280); + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym0[idx], (u16 *))BG_VRAM + TILE_VRAM(0x3F0)), 0x180); + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym1[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3D0)), 0x280); } static void sub_80A16F8(u16 timer) @@ -1338,7 +1340,7 @@ static void sub_80A16F8(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour1[idx], (u16 *)(BG_VRAM + 0x7f00), 0x20); + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3F8)), 0x20); } static void sub_80A1720(u16 timer) @@ -1346,7 +1348,7 @@ static void sub_80A1720(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour0[idx], (u16 *)(BG_VRAM + 0x7c00), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3E0)), 0x80); } static void sub_80A1748(u16 timer) @@ -1354,7 +1356,7 @@ static void sub_80A1748(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym0[idx], (u16 *)(BG_VRAM + 0x5200), 0x200); + AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x290)), 0x200); } static void sub_80A1770(u16 timer) @@ -1362,7 +1364,7 @@ static void sub_80A1770(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop0[idx], (u16 *)(BG_VRAM + 0x7e00), 0x120); + AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3F0)), 0x120); } static void sub_80A1798(u16 timer) @@ -1370,7 +1372,7 @@ static void sub_80A1798(u16 timer) u16 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis0[idx], (u16 *)(BG_VRAM + 0x5e00), 0xc00); + AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2F0)), 0xc00); } static void sub_80A17C0(u16 timer) @@ -1378,7 +1380,7 @@ static void sub_80A17C0(u16 timer) u16 idx; idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid0[idx], (u16 *)(BG_VRAM + 0x52e0), 0x100); + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x297)), 0x100); } static void sub_80A17EC(u16 timer) @@ -1386,7 +1388,7 @@ static void sub_80A17EC(u16 timer) u16 idx; idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid1[idx], (u16 *)(BG_VRAM + 0x50e0), 0x100); + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x287)), 0x100); } static void sub_80A1818(u16 a1) -- cgit v1.2.3 From 1f767e4c4925f77f1a34c3da124b8be267a0b193 Mon Sep 17 00:00:00 2001 From: Tetrable Date: Sat, 22 Sep 2018 13:27:43 +0100 Subject: Document and make tileset_anims.c easier to use --- src/tileset_anims.c | 118 ++++++++++++++++++++++++++-------------------------- 1 file changed, 59 insertions(+), 59 deletions(-) (limited to 'src') diff --git a/src/tileset_anims.c b/src/tileset_anims.c index fb2146bd2..3430b9e13 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -225,25 +225,25 @@ const u16 gTilesetAnims_Mauville1b_Frame1[] = INCBIN_U16("data/tilesets/secondar const u16 tileset_anims_space_1[16] = {}; u16 *const gTilesetAnims_MauvilleVDests0[] = { - (u16 *)BG_VRAM + TILE_VRAM(0x260)), - (u16 *)BG_VRAM + TILE_VRAM(0x264)), - (u16 *)BG_VRAM + TILE_VRAM(0x268)), - (u16 *)BG_VRAM + TILE_VRAM(0x26C)), - (u16 *)BG_VRAM + TILE_VRAM(0x270)), - (u16 *)BG_VRAM + TILE_VRAM(0x274)), - (u16 *)BG_VRAM + TILE_VRAM(0x278)), - (u16 *)BG_VRAM + TILE_VRAM(0x27C)) + (u16 *)(BG_VRAM + 0x4c00), + (u16 *)(BG_VRAM + 0x4c80), + (u16 *)(BG_VRAM + 0x4d00), + (u16 *)(BG_VRAM + 0x4d80), + (u16 *)(BG_VRAM + 0x4e00), + (u16 *)(BG_VRAM + 0x4e80), + (u16 *)(BG_VRAM + 0x4f00), + (u16 *)(BG_VRAM + 0x4f80) }; u16 *const gTilesetAnims_MauvilleVDests1[] = { - (u16 *)BG_VRAM + TILE_VRAM(0x280)), - (u16 *)BG_VRAM + TILE_VRAM(0x284)), - (u16 *)BG_VRAM + TILE_VRAM(0x288)), - (u16 *)BG_VRAM + TILE_VRAM(0x28C)), - (u16 *)BG_VRAM + TILE_VRAM(0x290)), - (u16 *)BG_VRAM + TILE_VRAM(0x294)), - (u16 *)BG_VRAM + TILE_VRAM(0x298)), - (u16 *)BG_VRAM + TILE_VRAM(0x29C)) + (u16 *)(BG_VRAM + 0x5000), + (u16 *)(BG_VRAM + 0x5080), + (u16 *)(BG_VRAM + 0x5100), + (u16 *)(BG_VRAM + 0x5180), + (u16 *)(BG_VRAM + 0x5200), + (u16 *)(BG_VRAM + 0x5280), + (u16 *)(BG_VRAM + 0x5300), + (u16 *)(BG_VRAM + 0x5380) }; const u16 *const gTilesetAnims_Mauville0a[] = { @@ -307,14 +307,14 @@ const u16 gTilesetAnims_Rustboro0_Frame6[] = INCBIN_U16("data/tilesets/secondary const u16 gTilesetAnims_Rustboro0_Frame7[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/7.4bpp"); u16 *const gTilesetAnims_RustboroVDests0[] = { - (u16 *)BG_VRAM + TILE_VRAM(0x280)), - (u16 *)BG_VRAM + TILE_VRAM(0x284)), - (u16 *)BG_VRAM + TILE_VRAM(0x288)), - (u16 *)BG_VRAM + TILE_VRAM(0x28C)), - (u16 *)BG_VRAM + TILE_VRAM(0x290)), - (u16 *)BG_VRAM + TILE_VRAM(0x294)), - (u16 *)BG_VRAM + TILE_VRAM(0x298)), - (u16 *)BG_VRAM + TILE_VRAM(0x29C)) + (u16 *)(BG_VRAM + 0x5000), + (u16 *)(BG_VRAM + 0x5080), + (u16 *)(BG_VRAM + 0x5100), + (u16 *)(BG_VRAM + 0x5180), + (u16 *)(BG_VRAM + 0x5200), + (u16 *)(BG_VRAM + 0x5280), + (u16 *)(BG_VRAM + 0x5300), + (u16 *)(BG_VRAM + 0x5380) }; const u16 *const gTilesetAnims_Rustboro0[] = { @@ -383,14 +383,14 @@ const u16 gTilesetAnims_EverGrande0_Frame7[] = INCBIN_U16("data/tilesets/seconda const u16 tileset_anims_space_4[16] = {}; u16 *const gTilesetAnims_EverGrandeVDests0[] = { - (u16 *)BG_VRAM + TILE_VRAM(0x2E0)), - (u16 *)BG_VRAM + TILE_VRAM(0x2E4)), - (u16 *)BG_VRAM + TILE_VRAM(0x2E8)), - (u16 *)BG_VRAM + TILE_VRAM(0x2EC)), - (u16 *)BG_VRAM + TILE_VRAM(0x2F0)), - (u16 *)BG_VRAM + TILE_VRAM(0x2F4)), - (u16 *)BG_VRAM + TILE_VRAM(0x2F8)), - (u16 *)BG_VRAM + TILE_VRAM(0x2FC)) + (u16 *)(BG_VRAM + 0x5c00), + (u16 *)(BG_VRAM + 0x5c80), + (u16 *)(BG_VRAM + 0x5d00), + (u16 *)(BG_VRAM + 0x5d80), + (u16 *)(BG_VRAM + 0x5e00), + (u16 *)(BG_VRAM + 0x5e80), + (u16 *)(BG_VRAM + 0x5f00), + (u16 *)(BG_VRAM + 0x5f80) }; const u16 *const gTilesetAnims_EverGrande0[] = { @@ -716,10 +716,10 @@ void TilesetCb_InsideBuilding(void) sPrimaryTilesetCBCounter = 0; sPrimaryTilesetCBBufferSize = 0x100; - sPrimaryTilesetCB = sPrimaryTilesetTimer; + sPrimaryTilesetCB = sub_80A0BB4; } -static void sPrimaryTilesetTimer(u16 timer) +static void sub_80A0B70(u16 timer) { static void gTilesetAnims_GeneralVDests0(u16); static void gTilesetAnims_GeneralVDests1(u16); @@ -752,7 +752,7 @@ static void gTilesetAnims_GeneralVDests0(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1FC)), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_General0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x1FC)), 0x80); } static void gTilesetAnims_GeneralVDests1(u16 timer) @@ -760,7 +760,7 @@ static void gTilesetAnims_GeneralVDests1(u16 timer) u8 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1B0)), 0x3C0); + AppendTilesetAnimToBuffer(gTilesetAnims_General1[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x1B0)), 0x3C0); } static void gTilesetAnims_GeneralVDests2(u16 timer) @@ -768,7 +768,7 @@ static void gTilesetAnims_GeneralVDests2(u16 timer) u16 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General2[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1D0)), 0x140); + AppendTilesetAnimToBuffer(gTilesetAnims_General2[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x1D0)), 0x140); } static void gTilesetAnims_GeneralVDests3(u16 timer) @@ -776,7 +776,7 @@ static void gTilesetAnims_GeneralVDests3(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General3[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1F0)), 0xc0); + AppendTilesetAnimToBuffer(gTilesetAnims_General3[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x1F0)), 0xc0); } void TilesetCb_Petalburg(void) @@ -1129,7 +1129,7 @@ static void gTilesetAnims_GeneralVDests4 (u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General4[idx], (u16 *)BG_VRAM + TILE_VRAM(0x1E0)), 0x140); + AppendTilesetAnimToBuffer(gTilesetAnims_General4[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x1E0)), 0x140); } static void sub_80A12D4(u8 timer) @@ -1137,10 +1137,10 @@ static void sub_80A12D4(u8 timer) u8 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x320)), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x320)), 0x80); idx = (timer + 2) % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x324)), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x324)), 0x80); } static void sub_80A131C(u8 timer) @@ -1148,7 +1148,7 @@ static void sub_80A131C(u8 timer) u8 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3D0)), 0x3C0); + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3D0)), 0x3C0); } static void sub_80A1344(u8 timer) @@ -1156,7 +1156,7 @@ static void sub_80A1344(u8 timer) u8 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Underwater0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3FO)), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Underwater0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3F0)), 0x80); } static void sub_80A136C(u8 timer) @@ -1164,7 +1164,7 @@ static void sub_80A136C(u8 timer) u8 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3F0)), 0x100); + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog1[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3F0)), 0x100); } static void sub_80A1394(u16 timer_div, u8 timer_mod) @@ -1197,7 +1197,7 @@ static void sub_80A1470(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3C0)), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro1[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3C0)), 0x80); } static void sub_80A1498(u16 timer) @@ -1205,7 +1205,7 @@ static void sub_80A1498(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2A0), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x2A0)), 0x80); } static void sub_80A14C0(u16 timer_div, u8 timer_mod) @@ -1221,7 +1221,7 @@ static void sub_80A14F8(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3A0)), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3A0)), 0x80); } static void sub_80A1520(u16 timer) @@ -1229,7 +1229,7 @@ static void sub_80A1520(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Dewford0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2AA)), 0xC0); + AppendTilesetAnimToBuffer(gTilesetAnims_Dewford0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x2AA)), 0xC0); } static void sub_80A1548(u16 timer) @@ -1237,7 +1237,7 @@ static void sub_80A1548(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2DA)), 0xC0); + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x2DA)), 0xC0); } static void sub_80A1570(u16 timer) @@ -1245,7 +1245,7 @@ static void sub_80A1570(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2DA)), 0xC0); + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x2DA)), 0xC0); } static void sub_80A1598(u16 timer) @@ -1253,7 +1253,7 @@ static void sub_80A1598(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Slateport0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2E0)), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Slateport0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x2E0)), 0x80); } static void sub_80A15C0(u16 timer) @@ -1331,7 +1331,7 @@ static void sub_80A16B0(u16 timer) u16 idx; idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym0[idx], (u16 *))BG_VRAM + TILE_VRAM(0x3F0)), 0x180); + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3F0)), 0x180); AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym1[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3D0)), 0x280); } @@ -1340,7 +1340,7 @@ static void sub_80A16F8(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3F8)), 0x20); + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour1[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3F8)), 0x20); } static void sub_80A1720(u16 timer) @@ -1348,7 +1348,7 @@ static void sub_80A1720(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3E0)), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3E0)), 0x80); } static void sub_80A1748(u16 timer) @@ -1356,7 +1356,7 @@ static void sub_80A1748(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x290)), 0x200); + AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x290)), 0x200); } static void sub_80A1770(u16 timer) @@ -1364,7 +1364,7 @@ static void sub_80A1770(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x3F0)), 0x120); + AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x3F0)), 0x120); } static void sub_80A1798(u16 timer) @@ -1372,7 +1372,7 @@ static void sub_80A1798(u16 timer) u16 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x2F0)), 0xc00); + AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x2F0)), 0xc00); } static void sub_80A17C0(u16 timer) @@ -1380,7 +1380,7 @@ static void sub_80A17C0(u16 timer) u16 idx; idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid0[idx], (u16 *)BG_VRAM + TILE_VRAM(0x297)), 0x100); + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid0[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x297)), 0x100); } static void sub_80A17EC(u16 timer) @@ -1388,7 +1388,7 @@ static void sub_80A17EC(u16 timer) u16 idx; idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid1[idx], (u16 *)BG_VRAM + TILE_VRAM(0x287)), 0x100); + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid1[idx], (u16 *)(BG_VRAM + TILE_VRAM(0x287)), 0x100); } static void sub_80A1818(u16 a1) -- cgit v1.2.3 From e362c06aea1ea68b79d23f5147549fb709c50fef Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 22 Sep 2018 18:41:00 +0200 Subject: gRandomMove to gCalledMove --- src/battle_main.c | 2 +- src/battle_script_commands.c | 18 +++++++++--------- src/battle_util.c | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/battle_main.c b/src/battle_main.c index 12e49ee65..8f5d39055 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -219,7 +219,7 @@ EWRAM_DATA u8 gCurrMovePos = 0; EWRAM_DATA u8 gChosenMovePos = 0; EWRAM_DATA u16 gCurrentMove = 0; EWRAM_DATA u16 gChosenMove = 0; -EWRAM_DATA u16 gRandomMove = 0; +EWRAM_DATA u16 gCalledMove = 0; EWRAM_DATA s32 gBattleMoveDamage = 0; EWRAM_DATA s32 gHpDealt = 0; EWRAM_DATA s32 gTakenDmg[MAX_BATTLERS_COUNT] = {0}; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 90dacc8cb..c8f3f1175 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -190,7 +190,7 @@ static void atk5F_swapattackerwithtarget(void); static void atk60_incrementgamestat(void); static void atk61_drawpartystatussummary(void); static void atk62_hidepartystatussummary(void); -static void atk63_jumptorandomattack(void); +static void atk63_jumptocalledattack(void); static void atk64_statusanimation(void); static void atk65_status2animation(void); static void atk66_chosenstatusanimation(void); @@ -442,7 +442,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk60_incrementgamestat, atk61_drawpartystatussummary, atk62_hidepartystatussummary, - atk63_jumptorandomattack, + atk63_jumptocalledattack, atk64_statusanimation, atk65_status2animation, atk66_chosenstatusanimation, @@ -6049,12 +6049,12 @@ static void atk62_hidepartystatussummary(void) gBattlescriptCurrInstr += 2; } -static void atk63_jumptorandomattack(void) +static void atk63_jumptocalledattack(void) { if (gBattlescriptCurrInstr[1]) - gCurrentMove = gRandomMove; + gCurrentMove = gCalledMove; else - gChosenMove = gCurrentMove = gRandomMove; + gChosenMove = gCurrentMove = gCalledMove; gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } @@ -8509,10 +8509,10 @@ static void atkA9_trychoosesleeptalkmove(void) movePosition = Random() & 3; } while ((gBitTable[movePosition] & unusableMovesBits)); - gRandomMove = gBattleMons[gBattlerAttacker].moves[movePosition]; + gCalledMove = gBattleMons[gBattlerAttacker].moves[movePosition]; gCurrMovePos = movePosition; gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); - gBattlerTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gCalledMove, 0); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } } @@ -9737,8 +9737,8 @@ static void atkDE_asistattackselect(void) if (chooseableMovesNo) { gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); - gRandomMove = movesArray[((Random() & 0xFF) * chooseableMovesNo) >> 8]; - gBattlerTarget = GetMoveTarget(gRandomMove, 0); + gCalledMove = movesArray[((Random() & 0xFF) * chooseableMovesNo) >> 8]; + gBattlerTarget = GetMoveTarget(gCalledMove, 0); gBattlescriptCurrInstr += 5; } else diff --git a/src/battle_util.c b/src/battle_util.c index 5096a2f3a..79ce180ee 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -3408,9 +3408,9 @@ u8 IsMonDisobedient(void) gCurrMovePos = gChosenMovePos = Random() & 3; } while (gBitTable[gCurrMovePos] & calc); - gRandomMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; + gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; - gBattlerTarget = GetMoveTarget(gRandomMove, 0); + gBattlerTarget = GetMoveTarget(gCalledMove, 0); gHitMarker |= HITMARKER_x200000; return 2; } -- cgit v1.2.3 From 611360c29e682ee38779b6ba0ee120032903bf3a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 22 Sep 2018 19:08:41 +0200 Subject: calledattack to calledmove --- src/battle_script_commands.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index c8f3f1175..10b432d8e 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -190,7 +190,7 @@ static void atk5F_swapattackerwithtarget(void); static void atk60_incrementgamestat(void); static void atk61_drawpartystatussummary(void); static void atk62_hidepartystatussummary(void); -static void atk63_jumptocalledattack(void); +static void atk63_jumptocalledmove(void); static void atk64_statusanimation(void); static void atk65_status2animation(void); static void atk66_chosenstatusanimation(void); @@ -442,7 +442,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk60_incrementgamestat, atk61_drawpartystatussummary, atk62_hidepartystatussummary, - atk63_jumptocalledattack, + atk63_jumptocalledmove, atk64_statusanimation, atk65_status2animation, atk66_chosenstatusanimation, @@ -6049,7 +6049,7 @@ static void atk62_hidepartystatussummary(void) gBattlescriptCurrInstr += 2; } -static void atk63_jumptocalledattack(void) +static void atk63_jumptocalledmove(void) { if (gBattlescriptCurrInstr[1]) gCurrentMove = gCalledMove; -- cgit v1.2.3 From d50554bb8e90d314ae0131e925224406992a4c97 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sat, 22 Sep 2018 15:02:49 -0500 Subject: Use macros and defines in tileset_anims --- src/tileset_anims.c | 55 +++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/tileset_anims.c b/src/tileset_anims.c index d05931dba..06c5e6852 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -6,6 +6,7 @@ #include "battle_transition.h" #include "task.h" #include "battle_transition.h" +#include "fieldmap.h" // Static type declarations @@ -750,7 +751,7 @@ static void sub_80A0BCC(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General0[idx], (u16 *)(BG_VRAM + 0x3F80), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_General0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 0x80); } static void sub_80A0BF4(u16 timer) @@ -758,7 +759,7 @@ static void sub_80A0BF4(u16 timer) u8 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General1[idx], (u16 *)(BG_VRAM + 0x3600), 0x3C0); + AppendTilesetAnimToBuffer(gTilesetAnims_General1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(432)), 0x3C0); } static void sub_80A0C1C(u16 timer) @@ -766,7 +767,7 @@ static void sub_80A0C1C(u16 timer) u16 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_General2[idx], (u16 *)(BG_VRAM + 0x3a00), 0x140); + AppendTilesetAnimToBuffer(gTilesetAnims_General2[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 0x140); } static void sub_80A0C44(u16 timer) @@ -774,7 +775,7 @@ static void sub_80A0C44(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General3[idx], (u16 *)(BG_VRAM + 0x3e00), 0xc0); + AppendTilesetAnimToBuffer(gTilesetAnims_General3[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 0xc0); } void TilesetCb_Petalburg(void) @@ -1127,7 +1128,7 @@ static void sub_80A12AC(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_General4[idx], (u16 *)(BG_VRAM + 0x3c00), 0x140); + AppendTilesetAnimToBuffer(gTilesetAnims_General4[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(480)), 0x140); } static void sub_80A12D4(u8 timer) @@ -1135,10 +1136,10 @@ static void sub_80A12D4(u8 timer) u8 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + 0x6400), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 288)), 0x80); idx = (timer + 2) % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + 0x6480), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 292)), 0x80); } static void sub_80A131C(u8 timer) @@ -1146,7 +1147,7 @@ static void sub_80A131C(u8 timer) u8 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog0[idx], (u16 *)(BG_VRAM + 0x7a00), 0x3C0); + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 0x3C0); } static void sub_80A1344(u8 timer) @@ -1154,7 +1155,7 @@ static void sub_80A1344(u8 timer) u8 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Underwater0[idx], (u16 *)(BG_VRAM + 0x7e00), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Underwater0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x80); } static void sub_80A136C(u8 timer) @@ -1162,7 +1163,7 @@ static void sub_80A136C(u8 timer) u8 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog1[idx], (u16 *)(BG_VRAM + 0x7e00), 0x100); + AppendTilesetAnimToBuffer(gTilesetAnims_Pacifidlog1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x100); } static void sub_80A1394(u16 timer_div, u8 timer_mod) @@ -1195,7 +1196,7 @@ static void sub_80A1470(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro1[idx], (u16 *)(BG_VRAM + 0x7800), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Rustboro1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 448)), 0x80); } static void sub_80A1498(u16 timer) @@ -1203,7 +1204,7 @@ static void sub_80A1498(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + 0x5400), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 160)), 0x80); } static void sub_80A14C0(u16 timer_div, u8 timer_mod) @@ -1219,7 +1220,7 @@ static void sub_80A14F8(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + 0x7400), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Lavaridge1_Cave0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 416)), 0x80); } static void sub_80A1520(u16 timer) @@ -1227,7 +1228,7 @@ static void sub_80A1520(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Dewford0[idx], (u16 *)(BG_VRAM + 0x5540), 0xC0); + AppendTilesetAnimToBuffer(gTilesetAnims_Dewford0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 170)), 0xC0); } static void sub_80A1548(u16 timer) @@ -1235,7 +1236,7 @@ static void sub_80A1548(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest0[idx], (u16 *)(BG_VRAM + 0x5b40), 0xC0); + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideWest0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 0xC0); } static void sub_80A1570(u16 timer) @@ -1243,7 +1244,7 @@ static void sub_80A1570(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast0[idx], (u16 *)(BG_VRAM + 0x5b40), 0xC0); + AppendTilesetAnimToBuffer(gTilesetAnims_BattleFrontierOutsideEast0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 218)), 0xC0); } static void sub_80A1598(u16 timer) @@ -1251,7 +1252,7 @@ static void sub_80A1598(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_Slateport0[idx], (u16 *)(BG_VRAM + 0x5c00), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_Slateport0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 224)), 0x80); } static void sub_80A15C0(u16 timer) @@ -1321,7 +1322,7 @@ static void sub_80A1688(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_InsideBuilding0[idx], (u16 *)(BG_VRAM + 0x3e00), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_InsideBuilding0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(496)), 0x80); } static void sub_80A16B0(u16 timer) @@ -1329,8 +1330,8 @@ static void sub_80A16B0(u16 timer) u16 idx; idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym0[idx], (u16 *)(BG_VRAM + 0x7e00), 0x180); - AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym1[idx], (u16 *)(BG_VRAM + 0x7a00), 0x280); + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x180); + AppendTilesetAnimToBuffer(gTilesetAnims_SootopolisGym1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 464)), 0x280); } static void sub_80A16F8(u16 timer) @@ -1338,7 +1339,7 @@ static void sub_80A16F8(u16 timer) u16 idx; idx = timer % 4; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour1[idx], (u16 *)(BG_VRAM + 0x7f00), 0x20); + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 504)), 0x20); } static void sub_80A1720(u16 timer) @@ -1346,7 +1347,7 @@ static void sub_80A1720(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour0[idx], (u16 *)(BG_VRAM + 0x7c00), 0x80); + AppendTilesetAnimToBuffer(gTilesetAnims_EliteFour0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 480)), 0x80); } static void sub_80A1748(u16 timer) @@ -1354,7 +1355,7 @@ static void sub_80A1748(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym0[idx], (u16 *)(BG_VRAM + 0x5200), 0x200); + AppendTilesetAnimToBuffer(gTilesetAnims_MauvilleGym0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 144)), 0x200); } static void sub_80A1770(u16 timer) @@ -1362,7 +1363,7 @@ static void sub_80A1770(u16 timer) u16 idx; idx = timer % 2; - AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop0[idx], (u16 *)(BG_VRAM + 0x7e00), 0x120); + AppendTilesetAnimToBuffer(gTilesetAnims_BikeShop0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 496)), 0x120); } static void sub_80A1798(u16 timer) @@ -1370,7 +1371,7 @@ static void sub_80A1798(u16 timer) u16 idx; idx = timer % 8; - AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis0[idx], (u16 *)(BG_VRAM + 0x5e00), 0xc00); + AppendTilesetAnimToBuffer(gTilesetAnims_Sootopolis0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 240)), 0xc00); } static void sub_80A17C0(u16 timer) @@ -1378,7 +1379,7 @@ static void sub_80A17C0(u16 timer) u16 idx; idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid0[idx], (u16 *)(BG_VRAM + 0x52e0), 0x100); + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid0[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 151)), 0x100); } static void sub_80A17EC(u16 timer) @@ -1386,7 +1387,7 @@ static void sub_80A17EC(u16 timer) u16 idx; idx = timer % 3; - AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid1[idx], (u16 *)(BG_VRAM + 0x50e0), 0x100); + AppendTilesetAnimToBuffer(gTilesetAnims_BattlePyramid1[idx], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 135)), 0x100); } static void sub_80A1818(u16 a1) -- cgit v1.2.3 From e93f1182e6b11ee277943808a68c534173f36b60 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 22 Sep 2018 16:42:34 -0400 Subject: Rename voicegroups --- src/m4a_tables.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/m4a_tables.c b/src/m4a_tables.c index 91f00a31d..9a4ea32e6 100644 --- a/src/m4a_tables.c +++ b/src/m4a_tables.c @@ -261,7 +261,7 @@ const struct PokemonCrySong gPokemonCrySongTemplate = 0, // block count 255, // priority 0, // reverb - (struct ToneData *)&voicegroup_pokemon_cry, + (struct ToneData *)&voicegroup000, NULL, NULL, 0, -- cgit v1.2.3 From 25033ef311d116a8205844bb6bd1a4fda8c9f967 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sun, 23 Sep 2018 14:58:36 -0500 Subject: Finish tileset_anims macroization --- src/tileset_anims.c | 67 +++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 35 deletions(-) (limited to 'src') diff --git a/src/tileset_anims.c b/src/tileset_anims.c index 7f7a8a3c4..454a2e435 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -7,9 +7,6 @@ #include "battle_transition.h" #include "fieldmap.h" -#define SECONDARY_TILESET_VRAM 0x2000 -#define TILE_VRAM(n) (0x20 * (n)) - // Static type declarations // Static RAM declarations @@ -226,25 +223,25 @@ const u16 gTilesetAnims_Mauville1b_Frame1[] = INCBIN_U16("data/tilesets/secondar const u16 tileset_anims_space_1[16] = {}; u16 *const gTilesetAnims_MauvilleVDests0[] = { - (u16 *)(BG_VRAM + 0x4c00), - (u16 *)(BG_VRAM + 0x4c80), - (u16 *)(BG_VRAM + 0x4d00), - (u16 *)(BG_VRAM + 0x4d80), - (u16 *)(BG_VRAM + 0x4e00), - (u16 *)(BG_VRAM + 0x4e80), - (u16 *)(BG_VRAM + 0x4f00), - (u16 *)(BG_VRAM + 0x4f80) + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 96)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 100)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 104)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 108)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 112)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 116)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 120)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 124)) }; u16 *const gTilesetAnims_MauvilleVDests1[] = { - (u16 *)(BG_VRAM + 0x5000), - (u16 *)(BG_VRAM + 0x5080), - (u16 *)(BG_VRAM + 0x5100), - (u16 *)(BG_VRAM + 0x5180), - (u16 *)(BG_VRAM + 0x5200), - (u16 *)(BG_VRAM + 0x5280), - (u16 *)(BG_VRAM + 0x5300), - (u16 *)(BG_VRAM + 0x5380) + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 128)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 132)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 136)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 140)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 144)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 148)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 152)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 156)) }; const u16 *const gTilesetAnims_Mauville0a[] = { @@ -308,14 +305,14 @@ const u16 gTilesetAnims_Rustboro0_Frame6[] = INCBIN_U16("data/tilesets/secondary const u16 gTilesetAnims_Rustboro0_Frame7[] = INCBIN_U16("data/tilesets/secondary/rustboro/anim/0/7.4bpp"); u16 *const gTilesetAnims_RustboroVDests0[] = { - (u16 *)(BG_VRAM + 0x5000), - (u16 *)(BG_VRAM + 0x5080), - (u16 *)(BG_VRAM + 0x5100), - (u16 *)(BG_VRAM + 0x5180), - (u16 *)(BG_VRAM + 0x5200), - (u16 *)(BG_VRAM + 0x5280), - (u16 *)(BG_VRAM + 0x5300), - (u16 *)(BG_VRAM + 0x5380) + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 128)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 132)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 136)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 140)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 144)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 148)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 152)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 156)) }; const u16 *const gTilesetAnims_Rustboro0[] = { @@ -384,14 +381,14 @@ const u16 gTilesetAnims_EverGrande0_Frame7[] = INCBIN_U16("data/tilesets/seconda const u16 tileset_anims_space_4[16] = {}; u16 *const gTilesetAnims_EverGrandeVDests0[] = { - (u16 *)(BG_VRAM + 0x5c00), - (u16 *)(BG_VRAM + 0x5c80), - (u16 *)(BG_VRAM + 0x5d00), - (u16 *)(BG_VRAM + 0x5d80), - (u16 *)(BG_VRAM + 0x5e00), - (u16 *)(BG_VRAM + 0x5e80), - (u16 *)(BG_VRAM + 0x5f00), - (u16 *)(BG_VRAM + 0x5f80) + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 224)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 228)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 232)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 236)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 240)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 244)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 248)), + (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(NUM_TILES_IN_PRIMARY + 252)) }; const u16 *const gTilesetAnims_EverGrande0[] = { -- cgit v1.2.3