From 265cdcdc12bcdc4c10529a046c4fc1a36a2cc65f Mon Sep 17 00:00:00 2001 From: Scott Date: Sun, 23 May 2021 16:17:43 -0400 Subject: [PATCH 01/95] Handle GetAbilityBySpecies edge cases --- include/constants/pokemon.h | 4 +++- src/pokemon.c | 22 +++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index dfd1a496f9..cbec5bdb53 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -368,6 +368,8 @@ #define MON_PIC_SIZE (64 * 64 / 2) -#define NUM_ABILITY_SLOTS 3 +#define NUM_ABILITY_SLOTS (NUM_NORMAL_ABILITY_SLOTS + NUM_HIDDEN_ABILITY_SLOTS) +#define NUM_NORMAL_ABILITY_SLOTS 2 +#define NUM_HIDDEN_ABILITY_SLOTS 1 #endif // GUARD_CONSTANTS_POKEMON_H diff --git a/src/pokemon.c b/src/pokemon.c index baf408fcec..e0e4f6b74c 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5369,14 +5369,26 @@ u8 GetMonsStateToDoubles_2(void) u8 GetAbilityBySpecies(u16 species, u8 abilityNum) { + int i; + if (abilityNum < NUM_ABILITY_SLOTS) gLastUsedAbility = gBaseStats[species].abilities[abilityNum]; else - gLastUsedAbility = gBaseStats[species].abilities[0]; - - if (gLastUsedAbility == ABILITY_NONE) - gLastUsedAbility = gBaseStats[species].abilities[0]; - + gLastUsedAbility = ABILITY_NONE; + + if (abilityNum >= NUM_NORMAL_ABILITY_SLOTS) // if abilityNum is empty hidden ability, look for other hidden abilities + { + for (i = NUM_NORMAL_ABILITY_SLOTS; i < NUM_ABILITY_SLOTS && gLastUsedAbility == ABILITY_NONE; i++) + { + gLastUsedAbility = gBaseStats[species].abilities[i]; + } + } + + for (i = 0; i < NUM_ABILITY_SLOTS && gLastUsedAbility == ABILITY_NONE; i++) // look for any non-empty ability + { + gLastUsedAbility = gBaseStats[species].abilities[i]; + } + return gLastUsedAbility; } From fdd284b50bfd40c27803aa7c76eae2a65cc7d56c Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Tue, 28 Sep 2021 23:44:22 -0300 Subject: [PATCH 02/95] Hold Item party menu --- src/data/pokemon/form_change_table_pointers.h | 1 + src/data/pokemon/form_change_tables.h | 1 + src/party_menu.c | 17 +++++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/src/data/pokemon/form_change_table_pointers.h b/src/data/pokemon/form_change_table_pointers.h index 777b174a4e..39fcc7aee2 100644 --- a/src/data/pokemon/form_change_table_pointers.h +++ b/src/data/pokemon/form_change_table_pointers.h @@ -1,6 +1,7 @@ const struct FormChange *const gFormChangeTablePointers[NUM_SPECIES] = { [SPECIES_GIRATINA] = sGiratinaFormChangeTable, + [SPECIES_GIRATINA_ORIGIN] = sGiratinaFormChangeTable, [SPECIES_SHAYMIN] = sShayminFormChangeTable, [SPECIES_SHAYMIN_SKY] = sShayminSkyFormChangeTable, [SPECIES_ARCEUS] = sArceusFormChangeTable, diff --git a/src/data/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index f58b69b547..abd1ff72f6 100644 --- a/src/data/pokemon/form_change_tables.h +++ b/src/data/pokemon/form_change_tables.h @@ -27,6 +27,7 @@ FORM_ITEM_USE_DAY: #define WHEN_FORGOTTEN TRUE static const struct FormChange sGiratinaFormChangeTable[] = { + {FORM_ITEM_HOLD, SPECIES_GIRATINA, ITEM_NONE}, {FORM_ITEM_HOLD, SPECIES_GIRATINA_ORIGIN, ITEM_GRISEOUS_ORB}, {FORM_CHANGE_END}, }; diff --git a/src/party_menu.c b/src/party_menu.c index 46c5283024..d471a92a8d 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -404,6 +404,7 @@ static bool8 SetUpFieldMove_Surf(void); static bool8 SetUpFieldMove_Fly(void); static bool8 SetUpFieldMove_Waterfall(void); static bool8 SetUpFieldMove_Dive(void); +void TryItemHoldFormChange(struct Pokemon *mon); // static const data #include "data/pokemon/tutor_learnsets.h" @@ -1734,6 +1735,7 @@ static void GiveItemToMon(struct Pokemon *mon, u16 item) itemBytes[0] = item; itemBytes[1] = item >> 8; SetMonData(mon, MON_DATA_HELD_ITEM, itemBytes); + TryItemHoldFormChange(&gPlayerParty[gPartyMenu.slotId]); } static u8 TryTakeMonItem(struct Pokemon* mon) @@ -1747,6 +1749,7 @@ static u8 TryTakeMonItem(struct Pokemon* mon) item = ITEM_NONE; SetMonData(mon, MON_DATA_HELD_ITEM, &item); + TryItemHoldFormChange(&gPlayerParty[gPartyMenu.slotId]); return 2; } @@ -5213,6 +5216,20 @@ void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task) RemoveBagItem(gSpecialVar_ItemId, 1); } } +void TryItemHoldFormChange(struct Pokemon *mon) +{ + u16 species = GetMonData(mon, MON_DATA_SPECIES); + u16 targetSpecies = GetFormChangeTargetSpecies(mon, FORM_ITEM_HOLD, 0); + if (targetSpecies != SPECIES_NONE) + { + PlayCry2(targetSpecies, 0, 0x7D, 0xA); + SetMonData(mon, MON_DATA_SPECIES, &targetSpecies); + FreeAndDestroyMonIconSprite(&gSprites[sPartyMenuBoxes[gPartyMenu.slotId].monSpriteId]); + CreatePartyMonIconSpriteParameterized(targetSpecies, GetMonData(mon, MON_DATA_PERSONALITY, NULL), &sPartyMenuBoxes[gPartyMenu.slotId], 1); + CalculateMonStats(mon); + UpdatePartyMonHeldItemSprite(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); + } +} u8 GetItemEffectType(u16 item) { From 55b61313a4cd1c394bb27e83c28c3100a1d9dabb Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 29 Sep 2021 00:48:03 -0300 Subject: [PATCH 03/95] PSS uses form change table for holding items. # Conflicts: # src/pokemon.c --- include/party_menu.h | 1 + include/pokemon.h | 1 + src/party_menu.c | 12 ++++++++++ src/pokemon.c | 15 ++++++++---- src/pokemon_storage_system.c | 46 ++++++++++++++++++++++++++++++++++++ 5 files changed, 70 insertions(+), 5 deletions(-) diff --git a/include/party_menu.h b/include/party_menu.h index 75fe7b9583..23a17d7534 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -55,6 +55,7 @@ void ItemUseCB_PPUp(u8 taskId, TaskFunc task); u16 ItemIdToBattleMoveId(u16 item); bool8 IsMoveHm(u16 move); bool8 MonKnowsMove(struct Pokemon *mon, u16 move); +bool8 BoxMonKnowsMove(struct BoxPokemon *mon, u16 move); void ItemUseCB_TMHM(u8 taskId, TaskFunc task); void ItemUseCB_RareCandy(u8 taskId, TaskFunc task); void ItemUseCB_SacredAsh(u8 taskId, TaskFunc task); diff --git a/include/pokemon.h b/include/pokemon.h index 6a13f7432d..e55e2e7ecb 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -439,4 +439,5 @@ u8 *sub_806F4F8(u8 id, u8 arg1); u16 GetFormSpeciesId(u16 speciesId, u8 formId); u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId); u16 GetFormChangeTargetSpecies(struct Pokemon *mon, u16 method, u32 arg); +u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *mon, u16 method, u32 arg); #endif // GUARD_POKEMON_H diff --git a/src/party_menu.c b/src/party_menu.c index d471a92a8d..86e443f766 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -4640,6 +4640,18 @@ bool8 MonKnowsMove(struct Pokemon *mon, u16 move) return FALSE; } +bool8 BoxMonKnowsMove(struct BoxPokemon *mon, u16 move) +{ + u8 i; + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (GetMonData(mon, MON_DATA_MOVE1 + i) == move) + return TRUE; + } + return FALSE; +} + static void DisplayLearnMoveMessage(const u8 *str) { StringExpandPlaceholders(gStringVar4, str); diff --git a/src/pokemon.c b/src/pokemon.c index bc04c42f9c..021eca1d19 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -8049,12 +8049,17 @@ u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId) return targetFormId; } -// returns SPECIES_NONE if no form change is possible u16 GetFormChangeTargetSpecies(struct Pokemon *mon, u16 method, u32 arg) +{ + return GetFormChangeTargetSpeciesBoxMon(&mon->box, method, arg); +} + +// returns SPECIES_NONE if no form change is possible +u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *mon, u16 method, u32 arg) { u32 i; u16 targetSpecies = SPECIES_NONE; - u16 originalSpecies = GetMonData(mon, MON_DATA_SPECIES, NULL); + u16 originalSpecies = GetBoxMonData(mon, MON_DATA_SPECIES, NULL); const struct FormChange *formChanges = gFormChangeTablePointers[originalSpecies]; if (formChanges == NULL) @@ -8064,11 +8069,11 @@ u16 GetFormChangeTargetSpecies(struct Pokemon *mon, u16 method, u32 arg) { if (method == formChanges[i].method) { - u32 ability = GetAbilityBySpecies(originalSpecies, GetMonData(mon, MON_DATA_ABILITY_NUM, NULL)); + u32 ability = GetAbilityBySpecies(originalSpecies, GetBoxMonData(mon, MON_DATA_ABILITY_NUM, NULL)); switch (method) { case FORM_ITEM_HOLD: - if (GetMonData(mon, MON_DATA_HELD_ITEM, NULL) == formChanges[i].param1 && (ability == formChanges[i].param2 || formChanges[i].param2 == ABILITY_NONE)) + if (GetBoxMonData(mon, MON_DATA_HELD_ITEM, NULL) == formChanges[i].param1 && (ability == formChanges[i].param2 || formChanges[i].param2 == ABILITY_NONE)) targetSpecies = formChanges[i].targetSpecies; break; case FORM_ITEM_USE: @@ -8076,7 +8081,7 @@ u16 GetFormChangeTargetSpecies(struct Pokemon *mon, u16 method, u32 arg) targetSpecies = formChanges[i].targetSpecies; break; case FORM_MOVE: - if (MonKnowsMove(mon, formChanges[i].param1) != formChanges[i].param2) + if (BoxMonKnowsMove(mon, formChanges[i].param1) != formChanges[i].param2) targetSpecies = formChanges[i].targetSpecies; break; case FORM_ITEM_USE_DAY: diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 92f45cb28a..9029fa4257 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -870,6 +870,10 @@ static void UnkUtil_Run(void); static void UnkUtil_CpuRun(struct UnkUtilData *); static void UnkUtil_DmaRun(struct UnkUtilData *); +// Form changing +void SetArceusFormPSS(struct BoxPokemon *boxMon); +void UpdateSpeciesSpritePSS(struct BoxPokemon *boxmon); + struct { const u8 *text; const u8 *desc; @@ -6866,6 +6870,34 @@ static void ReshowDisplayMon(void) TryRefreshDisplayMon(); } +void SetArceusFormPSS(struct BoxPokemon *boxMon) +{ + u16 species = GetMonData(boxMon, MON_DATA_SPECIES); + u16 targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, FORM_ITEM_HOLD, 0); + if (targetSpecies != SPECIES_NONE) + { + //PlayCry2(targetSpecies, 0, 0x7D, 0xA); + SetBoxMonData(boxMon, MON_DATA_SPECIES, &targetSpecies); + UpdateSpeciesSpritePSS(boxMon); + } + /* +#ifdef POKEMON_EXPANSION + u16 species = GetMonData(boxMon, MON_DATA_SPECIES); + u16 forme; + u8 abilityNum = GetMonData(boxMon, MON_DATA_ABILITY_NUM); + u16 ability = GetAbilityBySpecies(species, abilityNum); + + if (GET_BASE_SPECIES_ID(species) == SPECIES_ARCEUS + && ability == ABILITY_MULTITYPE) + { + forme = GetArceusFormPSS(boxMon); + SetBoxMonData(boxMon, MON_DATA_SPECIES, &forme); + UpdateSpeciesSpritePSS(boxMon); + } +#endif +*/ +} + static void SetDisplayMonData(void *pokemon, u8 mode) { u8 *txtPtr; @@ -6952,6 +6984,8 @@ static void SetDisplayMonData(void *pokemon, u8 mode) { if (sStorage->displayMonSpecies == SPECIES_NIDORAN_F || sStorage->displayMonSpecies == SPECIES_NIDORAN_M) gender = MON_GENDERLESS; + + SetArceusFormPSS(pokemon); StringCopyPadded(sStorage->displayMonNameText, sStorage->displayMonName, CHAR_SPACE, 5); @@ -10078,3 +10112,15 @@ static void UnkUtil_DmaRun(struct UnkUtilData *data) data->dest += 64; } } + +void UpdateSpeciesSpritePSS(struct BoxPokemon *boxMon) +{ + u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES); + u32 otId = GetBoxMonData(boxMon, MON_DATA_OT_ID); + u32 pid = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); + + // Update front sprite + sStorage->displayMonSpecies = species; + sStorage->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(species, otId, pid); + LoadDisplayMonGfx(species, pid); +} From 9ad505d7e809a3d472d1348a9c2f7ff981f7be6e Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 29 Sep 2021 00:58:41 -0300 Subject: [PATCH 04/95] Mosaic effect when changing forms --- src/pokemon_storage_system.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 9029fa4257..91f19b8d0e 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -10120,6 +10120,7 @@ void UpdateSpeciesSpritePSS(struct BoxPokemon *boxMon) u32 pid = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); // Update front sprite + StartDisplayMonMosaicEffect(); sStorage->displayMonSpecies = species; sStorage->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(species, otId, pid); LoadDisplayMonGfx(species, pid); From 7c9a3f338a5cf402491c4cac961efd2fa0cf23e4 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 29 Sep 2021 01:49:18 -0300 Subject: [PATCH 05/95] Updates icon in box menu --- src/pokemon_storage_system.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 91f19b8d0e..2fce20a6c0 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -10124,4 +10124,35 @@ void UpdateSpeciesSpritePSS(struct BoxPokemon *boxMon) sStorage->displayMonSpecies = species; sStorage->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(species, otId, pid); LoadDisplayMonGfx(species, pid); + + // Recreate icon sprite + //DestroyPartyMonIcon(sCursorPosition); + if (sInPartyMenu) + { + /* + CreatePartyMonsSprites(TRUE); + if (GetMonData(&boxMon, MON_DATA_HELD_ITEM) == ITEM_NONE) + SetPartyMonIconObjMode(sCursorPosition, 1); + else + SetBoxMonIconObjMode(sCursorPosition, 0); + */ + } + else + { + DestroyBoxMonIcon(sStorage->boxMonsSprites[sCursorPosition]); + CreateBoxMonIconAtPos(sCursorPosition); + SetBoxMonIconObjMode(sCursorPosition, GetMonData(boxMon, MON_DATA_HELD_ITEM) == ITEM_NONE); + + } + // + /* + sStorage->boxMonsSprites[sCursorPosition] = CreateMonIconSprite(sStorage->boxSpecies[sCursorPosition], + sStorage->boxPersonalities[sCursorPosition], + x, y, 2, subpriority + sStorage->boxMonsSprites[sCursorPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (sCursorPosition % IN_BOX_COLUMNS)); + */ + //DestroyBoxMonIcon(sStorage->partySprites[i]) + //sStorage->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12); + //DestroyBoxMonIconAtPosition(boxPosition); + } From 52781969ab773bd40bad5c9e6eb5d8623eb37708 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 29 Sep 2021 01:59:31 -0300 Subject: [PATCH 06/95] Update icon in party menu --- src/pokemon_storage_system.c | 38 ++---------------------------------- 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 2fce20a6c0..827ee7b3eb 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -6880,22 +6880,6 @@ void SetArceusFormPSS(struct BoxPokemon *boxMon) SetBoxMonData(boxMon, MON_DATA_SPECIES, &targetSpecies); UpdateSpeciesSpritePSS(boxMon); } - /* -#ifdef POKEMON_EXPANSION - u16 species = GetMonData(boxMon, MON_DATA_SPECIES); - u16 forme; - u8 abilityNum = GetMonData(boxMon, MON_DATA_ABILITY_NUM); - u16 ability = GetAbilityBySpecies(species, abilityNum); - - if (GET_BASE_SPECIES_ID(species) == SPECIES_ARCEUS - && ability == ABILITY_MULTITYPE) - { - forme = GetArceusFormPSS(boxMon); - SetBoxMonData(boxMon, MON_DATA_SPECIES, &forme); - UpdateSpeciesSpritePSS(boxMon); - } -#endif -*/ } static void SetDisplayMonData(void *pokemon, u8 mode) @@ -8589,7 +8573,7 @@ static void MultiMove_RemoveMonsFromBox(void) u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; for (j = sMultiMove->minColumn; j < columnCount; j++) { - DestroyBoxMonIconAtPosition(boxPosition); + DestroyBoxMonIconAtPosition(boxPosition);//bookmark ZeroBoxMonAt(boxId, boxPosition); boxPosition++; } @@ -10126,33 +10110,15 @@ void UpdateSpeciesSpritePSS(struct BoxPokemon *boxMon) LoadDisplayMonGfx(species, pid); // Recreate icon sprite - //DestroyPartyMonIcon(sCursorPosition); if (sInPartyMenu) { - /* + DestroyAllPartyMonIcons(); CreatePartyMonsSprites(TRUE); - if (GetMonData(&boxMon, MON_DATA_HELD_ITEM) == ITEM_NONE) - SetPartyMonIconObjMode(sCursorPosition, 1); - else - SetBoxMonIconObjMode(sCursorPosition, 0); - */ } else { DestroyBoxMonIcon(sStorage->boxMonsSprites[sCursorPosition]); CreateBoxMonIconAtPos(sCursorPosition); SetBoxMonIconObjMode(sCursorPosition, GetMonData(boxMon, MON_DATA_HELD_ITEM) == ITEM_NONE); - } - // - /* - sStorage->boxMonsSprites[sCursorPosition] = CreateMonIconSprite(sStorage->boxSpecies[sCursorPosition], - sStorage->boxPersonalities[sCursorPosition], - x, y, 2, subpriority - sStorage->boxMonsSprites[sCursorPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (sCursorPosition % IN_BOX_COLUMNS)); - */ - //DestroyBoxMonIcon(sStorage->partySprites[i]) - //sStorage->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12); - //DestroyBoxMonIconAtPosition(boxPosition); - } From 1f559df27d3f313747017fd8dd89e8020a058c49 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 29 Sep 2021 02:01:08 -0300 Subject: [PATCH 07/95] Final function name --- src/pokemon_storage_system.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 827ee7b3eb..e4b529b7ac 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -871,7 +871,7 @@ static void UnkUtil_CpuRun(struct UnkUtilData *); static void UnkUtil_DmaRun(struct UnkUtilData *); // Form changing -void SetArceusFormPSS(struct BoxPokemon *boxMon); +void SetMonFormPSS(struct BoxPokemon *boxMon); void UpdateSpeciesSpritePSS(struct BoxPokemon *boxmon); struct { @@ -6870,7 +6870,7 @@ static void ReshowDisplayMon(void) TryRefreshDisplayMon(); } -void SetArceusFormPSS(struct BoxPokemon *boxMon) +void SetMonFormPSS(struct BoxPokemon *boxMon) { u16 species = GetMonData(boxMon, MON_DATA_SPECIES); u16 targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, FORM_ITEM_HOLD, 0); @@ -6969,7 +6969,7 @@ static void SetDisplayMonData(void *pokemon, u8 mode) if (sStorage->displayMonSpecies == SPECIES_NIDORAN_F || sStorage->displayMonSpecies == SPECIES_NIDORAN_M) gender = MON_GENDERLESS; - SetArceusFormPSS(pokemon); + SetMonFormPSS(pokemon); StringCopyPadded(sStorage->displayMonNameText, sStorage->displayMonName, CHAR_SPACE, 5); From 9114f3d1dc26c75eecc90184834ab7edd402a00a Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 29 Sep 2021 19:40:26 -0300 Subject: [PATCH 08/95] Fixed lag and icons getting stuck when giving an item from the bag --- src/pokemon_storage_system.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index e4b529b7ac..da24f9b9a6 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -569,6 +569,7 @@ EWRAM_DATA static bool8 sIsMonBeingMoved = 0; EWRAM_DATA static u8 sMovingMonOrigBoxId = 0; EWRAM_DATA static u8 sMovingMonOrigBoxPos = 0; EWRAM_DATA static bool8 sAutoActionOn = 0; +EWRAM_DATA static bool8 sJustOpenedBag = 0; // Main tasks static void EnterPokeStorage(u8); @@ -3100,6 +3101,7 @@ static void Task_TakeItemForMoving(u8 taskId) StartCursorAnim(CURSOR_ANIM_OPEN); TakeItemFromMon(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetCursorPosition()); sStorage->state++; + sJustOpenedBag = FALSE; break; case 2: if (!IsItemIconAnimActive()) @@ -3619,6 +3621,7 @@ static void Task_GiveItemFromBag(u8 taskId) sWhichToReshow = SCREEN_CHANGE_ITEM_FROM_BAG - 1; sStorage->screenChangeType = SCREEN_CHANGE_ITEM_FROM_BAG; SetPokeStorageTask(Task_ChangeScreen); + sJustOpenedBag = TRUE; } break; } @@ -6968,8 +6971,6 @@ static void SetDisplayMonData(void *pokemon, u8 mode) { if (sStorage->displayMonSpecies == SPECIES_NIDORAN_F || sStorage->displayMonSpecies == SPECIES_NIDORAN_M) gender = MON_GENDERLESS; - - SetMonFormPSS(pokemon); StringCopyPadded(sStorage->displayMonNameText, sStorage->displayMonName, CHAR_SPACE, 5); @@ -7019,6 +7020,7 @@ static void SetDisplayMonData(void *pokemon, u8 mode) StringCopyPadded(sStorage->displayMonItemName, ItemId_GetName(sStorage->displayMonItemId), CHAR_SPACE, 8); else StringFill(sStorage->displayMonItemName, CHAR_SPACE, 8); + SetMonFormPSS(pokemon); } } @@ -10110,15 +10112,19 @@ void UpdateSpeciesSpritePSS(struct BoxPokemon *boxMon) LoadDisplayMonGfx(species, pid); // Recreate icon sprite - if (sInPartyMenu) + if (!sJustOpenedBag) { - DestroyAllPartyMonIcons(); - CreatePartyMonsSprites(TRUE); - } - else - { - DestroyBoxMonIcon(sStorage->boxMonsSprites[sCursorPosition]); - CreateBoxMonIconAtPos(sCursorPosition); - SetBoxMonIconObjMode(sCursorPosition, GetMonData(boxMon, MON_DATA_HELD_ITEM) == ITEM_NONE); + if (sInPartyMenu) + { + DestroyAllPartyMonIcons(); + CreatePartyMonsSprites(TRUE); + } + else + { + DestroyBoxMonIcon(sStorage->boxMonsSprites[sCursorPosition]); + CreateBoxMonIconAtPos(sCursorPosition); + SetBoxMonIconObjMode(sCursorPosition, GetMonData(boxMon, MON_DATA_HELD_ITEM) == ITEM_NONE); + } } + sJustOpenedBag = FALSE; } From e6c81d2862536d396bb69f5910f2d089384fc319 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 29 Sep 2021 21:30:54 -0300 Subject: [PATCH 09/95] Fixed form change when swapping items --- src/pokemon.c | 3 ++- src/pokemon_storage_system.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index 021eca1d19..0ac67f0cf2 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -8073,7 +8073,8 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *mon, u16 method, u32 arg switch (method) { case FORM_ITEM_HOLD: - if (GetBoxMonData(mon, MON_DATA_HELD_ITEM, NULL) == formChanges[i].param1 && (ability == formChanges[i].param2 || formChanges[i].param2 == ABILITY_NONE)) + if ((GetBoxMonData(mon, MON_DATA_HELD_ITEM, NULL) == formChanges[i].param1 || formChanges[i].param1 == ITEM_NONE) + && (ability == formChanges[i].param2 || formChanges[i].param2 == ABILITY_NONE)) targetSpecies = formChanges[i].targetSpecies; break; case FORM_ITEM_USE: diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index da24f9b9a6..0626fcd0b0 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -8575,7 +8575,7 @@ static void MultiMove_RemoveMonsFromBox(void) u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; for (j = sMultiMove->minColumn; j < columnCount; j++) { - DestroyBoxMonIconAtPosition(boxPosition);//bookmark + DestroyBoxMonIconAtPosition(boxPosition); ZeroBoxMonAt(boxId, boxPosition); boxPosition++; } From b60aab1f6a232ca00fcd925fd27e94e1fa1303c2 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Thu, 30 Sep 2021 20:34:42 -0300 Subject: [PATCH 10/95] Fixed crash --- src/pokemon_storage_system.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 0626fcd0b0..7768f4e32d 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -10106,14 +10106,14 @@ void UpdateSpeciesSpritePSS(struct BoxPokemon *boxMon) u32 pid = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); // Update front sprite - StartDisplayMonMosaicEffect(); sStorage->displayMonSpecies = species; sStorage->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(species, otId, pid); LoadDisplayMonGfx(species, pid); - - // Recreate icon sprite if (!sJustOpenedBag) { + StartDisplayMonMosaicEffect(); + + // Recreate icon sprite if (sInPartyMenu) { DestroyAllPartyMonIcons(); From 0fd9d2c0d5bb5b4bf9ac624eddb965aefa7cbc24 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Thu, 30 Sep 2021 21:55:21 -0300 Subject: [PATCH 11/95] Optimized so it only changes forms when moving items. --- src/pokemon_storage_system.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 7768f4e32d..3c7051e169 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -3799,9 +3799,16 @@ static void GiveChosenBagItem(void) { u8 pos = GetCursorPosition(); if (sInPartyMenu) + { + struct Pokemon *mon = &gPlayerParty[pos]; SetMonData(&gPlayerParty[pos], MON_DATA_HELD_ITEM, &itemId); + SetMonFormPSS(&mon->box); + } else + { SetCurrentBoxMonData(pos, MON_DATA_HELD_ITEM, &itemId); + SetMonFormPSS(&gPokemonStoragePtr->boxes[StorageGetCurrentBox()][pos]); + } RemoveBagItem(itemId, 1); } @@ -7020,7 +7027,6 @@ static void SetDisplayMonData(void *pokemon, u8 mode) StringCopyPadded(sStorage->displayMonItemName, ItemId_GetName(sStorage->displayMonItemId), CHAR_SPACE, 8); else StringFill(sStorage->displayMonItemName, CHAR_SPACE, 8); - SetMonFormPSS(pokemon); } } @@ -8860,11 +8866,14 @@ static void TakeItemFromMon(u8 cursorArea, u8 cursorPos) { SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &itemId); SetBoxMonIconObjMode(cursorPos, 1); + SetMonFormPSS(&gPokemonStoragePtr->boxes[StorageGetCurrentBox()][cursorPos]); } else { + struct Pokemon *mon = &gPlayerParty[cursorPos]; SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &itemId); SetPartyMonIconObjMode(cursorPos, 1); + SetMonFormPSS(&mon->box); } sStorage->movingItemId = sStorage->displayMonItemId; @@ -8899,12 +8908,15 @@ static void SwapItemsWithMon(u8 cursorArea, u8 cursorPos) itemId = GetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM); SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &sStorage->movingItemId); sStorage->movingItemId = itemId; + SetMonFormPSS(&gPokemonStoragePtr->boxes[StorageGetCurrentBox()][cursorPos]); } else { + struct Pokemon *mon = &gPlayerParty[cursorPos]; itemId = GetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM); SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &sStorage->movingItemId); sStorage->movingItemId = itemId; + SetMonFormPSS(&mon->box); } id = GetItemIconIdxByPosition(CURSOR_AREA_IN_HAND, 0); @@ -8926,11 +8938,14 @@ static void GiveItemToMon(u8 cursorArea, u8 cursorPos) { SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &sStorage->movingItemId); SetBoxMonIconObjMode(cursorPos, 0); + SetMonFormPSS(&gPokemonStoragePtr->boxes[StorageGetCurrentBox()][cursorPos]); } else { + struct Pokemon *mon = &gPlayerParty[cursorPos]; SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &sStorage->movingItemId); SetPartyMonIconObjMode(cursorPos, 0); + SetMonFormPSS(&mon->box); } } @@ -8950,11 +8965,14 @@ static void MoveItemFromMonToBag(u8 cursorArea, u8 cursorPos) { SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &itemId); SetBoxMonIconObjMode(cursorPos, 1); + SetMonFormPSS(&gPokemonStoragePtr->boxes[StorageGetCurrentBox()][cursorPos]); } else { + struct Pokemon *mon = &gPlayerParty[cursorPos]; SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &itemId); SetPartyMonIconObjMode(cursorPos, 1); + SetMonFormPSS(&mon->box); } } From 5bf300f97c2f4f1aeefb7f9424fe502c08313404 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Thu, 30 Sep 2021 22:12:02 -0300 Subject: [PATCH 12/95] Fixed issue where by default mon would change into the last form due to the IE items being defined as ITEM_NONE --- include/constants/pokemon_config.h | 278 ++++++++++++++--------------- 1 file changed, 139 insertions(+), 139 deletions(-) diff --git a/include/constants/pokemon_config.h b/include/constants/pokemon_config.h index c6e6a269f7..4bbb9e7de5 100644 --- a/include/constants/pokemon_config.h +++ b/include/constants/pokemon_config.h @@ -20,153 +20,153 @@ #ifndef ITEM_EXPANSION //Item Definitions for gEvolutionTable -//EVO_MEGA_EVOLUTION -#define ITEM_VENUSAURITE ITEM_NONE -#define ITEM_CHARIZARDITE_X ITEM_NONE -#define ITEM_CHARIZARDITE_Y ITEM_NONE -#define ITEM_BLASTOISINITE ITEM_NONE -#define ITEM_BEEDRILLITE ITEM_NONE -#define ITEM_PIDGEOTITE ITEM_NONE -#define ITEM_ALAKAZITE ITEM_NONE -#define ITEM_SLOWBRONITE ITEM_NONE -#define ITEM_GENGARITE ITEM_NONE -#define ITEM_KANGASKHANITE ITEM_NONE -#define ITEM_PINSIRITE ITEM_NONE -#define ITEM_GYARADOSITE ITEM_NONE -#define ITEM_AERODACTYLITE ITEM_NONE -#define ITEM_MEWTWONITE_X ITEM_NONE -#define ITEM_MEWTWONITE_Y ITEM_NONE -#define ITEM_AMPHAROSITE ITEM_NONE -#define ITEM_STEELIXITE ITEM_NONE -#define ITEM_SCIZORITE ITEM_NONE -#define ITEM_HERACRONITE ITEM_NONE -#define ITEM_HOUNDOOMINITE ITEM_NONE -#define ITEM_TYRANITARITE ITEM_NONE -#define ITEM_SCEPTILITE ITEM_NONE -#define ITEM_BLAZIKENITE ITEM_NONE -#define ITEM_SWAMPERTITE ITEM_NONE -#define ITEM_SABLENITE ITEM_NONE -#define ITEM_SHARPEDONITE ITEM_NONE -#define ITEM_MANECTITE ITEM_NONE -#define ITEM_CAMERUPTITE ITEM_NONE -#define ITEM_GLALITITE ITEM_NONE -#define ITEM_MAWILITE ITEM_NONE -#define ITEM_MEDICHAMITE ITEM_NONE -#define ITEM_ALTARIANITE ITEM_NONE -#define ITEM_ABSOLITE ITEM_NONE -#define ITEM_BANETTITE ITEM_NONE -#define ITEM_AGGRONITE ITEM_NONE -#define ITEM_GARDEVOIRITE ITEM_NONE -#define ITEM_SALAMENCITE ITEM_NONE -#define ITEM_METAGROSSITE ITEM_NONE -#define ITEM_LATIASITE ITEM_NONE -#define ITEM_LATIOSITE ITEM_NONE -#define ITEM_LOPUNNITE ITEM_NONE -#define ITEM_GARCHOMPITE ITEM_NONE -#define ITEM_LUCARIONITE ITEM_NONE -#define ITEM_ABOMASITE ITEM_NONE -#define ITEM_GALLADITE ITEM_NONE -#define ITEM_AUDINITE ITEM_NONE -#define ITEM_DIANCITE ITEM_NONE + //EVO_MEGA_EVOLUTION + #define ITEM_VENUSAURITE 10001 + #define ITEM_CHARIZARDITE_X 10002 + #define ITEM_CHARIZARDITE_Y 10003 + #define ITEM_BLASTOISINITE 10004 + #define ITEM_BEEDRILLITE 10005 + #define ITEM_PIDGEOTITE 10006 + #define ITEM_ALAKAZITE 10007 + #define ITEM_SLOWBRONITE 10008 + #define ITEM_GENGARITE 10009 + #define ITEM_KANGASKHANITE 10010 + #define ITEM_PINSIRITE 10011 + #define ITEM_GYARADOSITE 10012 + #define ITEM_AERODACTYLITE 10013 + #define ITEM_MEWTWONITE_X 10014 + #define ITEM_MEWTWONITE_Y 10015 + #define ITEM_AMPHAROSITE 10016 + #define ITEM_STEELIXITE 10017 + #define ITEM_SCIZORITE 10018 + #define ITEM_HERACRONITE 10019 + #define ITEM_HOUNDOOMINITE 10020 + #define ITEM_HOUNDOOMINITE 10021 + #define ITEM_SCEPTILITE 10022 + #define ITEM_BLAZIKENITE 10023 + #define ITEM_SWAMPERTITE 10024 + #define ITEM_SABLENITE 10025 + #define ITEM_SHARPEDONITE 10026 + #define ITEM_MANECTITE 10027 + #define ITEM_CAMERUPTITE 10028 + #define ITEM_GLALITITE 10029 + #define ITEM_MAWILITE 10030 + #define ITEM_MEDICHAMITE 10031 + #define ITEM_ALTARIANITE 10032 + #define ITEM_ABSOLITE 10033 + #define ITEM_BANETTITE 10034 + #define ITEM_AGGRONITE 10035 + #define ITEM_GARDEVOIRITE 10036 + #define ITEM_SALAMENCITE 10037 + #define ITEM_METAGROSSITE 10038 + #define ITEM_LATIASITE 10039 + #define ITEM_LATIOSITE 10040 + #define ITEM_LOPUNNITE 10041 + #define ITEM_GARCHOMPITE 10042 + #define ITEM_LUCARIONITE 10043 + #define ITEM_ABOMASITE 10044 + #define ITEM_GALLADITE 10045 + #define ITEM_AUDINITE 10046 + #define ITEM_DIANCITE 10047 -//EVO_TRADE_ITEM -#define ITEM_PROTECTOR ITEM_NONE -#define ITEM_ELECTIRIZER ITEM_NONE -#define ITEM_MAGMARIZER ITEM_NONE -#define ITEM_DUBIOUS_DISC ITEM_NONE -#define ITEM_PRISM_SCALE ITEM_NONE -#define ITEM_REAPER_CLOTH ITEM_NONE -#define ITEM_SACHET ITEM_NONE -#define ITEM_WHIPPED_DREAM ITEM_NONE + //EVO_TRADE_ITEM + #define ITEM_PROTECTOR 10048 + #define ITEM_ELECTIRIZER 10049 + #define ITEM_MAGMARIZER 10050 + #define ITEM_DUBIOUS_DISC 10051 + #define ITEM_PRISM_SCALE 10052 + #define ITEM_REAPER_CLOTH 10053 + #define ITEM_SACHET 10054 + #define ITEM_WHIPPED_DREAM 10055 -//EVO_ITEM -#define ITEM_ICE_STONE ITEM_NONE -#define ITEM_SHINY_STONE ITEM_NONE -#define ITEM_DUSK_STONE ITEM_NONE -#define ITEM_DAWN_STONE ITEM_NONE -#define ITEM_TART_APPLE ITEM_NONE -#define ITEM_SWEET_APPLE ITEM_NONE -#define ITEM_CRACKED_POT ITEM_NONE -#define ITEM_GALARICA_CUFF ITEM_NONE -#define ITEM_GALARICA_WREATH ITEM_NONE -#define ITEM_CHIPPED_POT ITEM_NONE + //EVO_ITEM + #define ITEM_ICE_STONE 10056 + #define ITEM_SHINY_STONE 10057 + #define ITEM_DUSK_STONE 10058 + #define ITEM_DAWN_STONE 10059 + #define ITEM_TART_APPLE 10060 + #define ITEM_SWEET_APPLE 10061 + #define ITEM_CRACKED_POT 10062 + #define ITEM_GALARICA_CUFF 10063 + #define ITEM_GALARICA_WREATH 10064 + #define ITEM_CHIPPED_POT 10065 -//EVO_ITEM_HOLD -#define ITEM_RAZOR_FANG ITEM_NONE -#define ITEM_RAZOR_CLAW ITEM_NONE -#define ITEM_OVAL_STONE ITEM_NONE + //EVO_ITEM_HOLD + #define ITEM_RAZOR_FANG 10066 + #define ITEM_RAZOR_CLAW 10067 + #define ITEM_OVAL_STONE 10068 -//FORM_ITEM_HOLD -#define ITEM_GRISEOUS_ORB ITEM_NONE -#define ITEM_DRACO_PLATE ITEM_NONE -#define ITEM_DREAD_PLATE ITEM_NONE -#define ITEM_EARTH_PLATE ITEM_NONE -#define ITEM_FIST_PLATE ITEM_NONE -#define ITEM_FLAME_PLATE ITEM_NONE -#define ITEM_ICICLE_PLATE ITEM_NONE -#define ITEM_INSECT_PLATE ITEM_NONE -#define ITEM_IRON_PLATE ITEM_NONE -#define ITEM_MEADOW_PLATE ITEM_NONE -#define ITEM_MIND_PLATE ITEM_NONE -#define ITEM_PIXIE_PLATE ITEM_NONE -#define ITEM_SKY_PLATE ITEM_NONE -#define ITEM_SPLASH_PLATE ITEM_NONE -#define ITEM_SPOOKY_PLATE ITEM_NONE -#define ITEM_STONE_PLATE ITEM_NONE -#define ITEM_TOXIC_PLATE ITEM_NONE -#define ITEM_ZAP_PLATE ITEM_NONE -#define ITEM_FIGHTINIUM_Z ITEM_NONE -#define ITEM_FLYINIUM_Z ITEM_NONE -#define ITEM_POISONIUM_Z ITEM_NONE -#define ITEM_GROUNDIUM_Z ITEM_NONE -#define ITEM_ROCKIUM_Z ITEM_NONE -#define ITEM_BUGINIUM_Z ITEM_NONE -#define ITEM_GHOSTIUM_Z ITEM_NONE -#define ITEM_STEELIUM_Z ITEM_NONE -#define ITEM_FIRIUM_Z ITEM_NONE -#define ITEM_WATERIUM_Z ITEM_NONE -#define ITEM_GRASSIUM_Z ITEM_NONE -#define ITEM_ELECTRIUM_Z ITEM_NONE -#define ITEM_PSYCHIUM_Z ITEM_NONE -#define ITEM_ICIUM_Z ITEM_NONE -#define ITEM_DRAGONIUM_Z ITEM_NONE -#define ITEM_DARKINIUM_Z ITEM_NONE -#define ITEM_FAIRIUM_Z ITEM_NONE -#define ITEM_DOUSE_DRIVE ITEM_NONE -#define ITEM_SHOCK_DRIVE ITEM_NONE -#define ITEM_BURN_DRIVE ITEM_NONE -#define ITEM_CHILL_DRIVE ITEM_NONE -#define ITEM_BUG_MEMORY ITEM_NONE -#define ITEM_DARK_MEMORY ITEM_NONE -#define ITEM_DRAGON_MEMORY ITEM_NONE -#define ITEM_ELECTRIC_MEMORY ITEM_NONE -#define ITEM_FAIRY_MEMORY ITEM_NONE -#define ITEM_FIGHTING_MEMORY ITEM_NONE -#define ITEM_FIRE_MEMORY ITEM_NONE -#define ITEM_FLYING_MEMORY ITEM_NONE -#define ITEM_GHOST_MEMORY ITEM_NONE -#define ITEM_GRASS_MEMORY ITEM_NONE -#define ITEM_GROUND_MEMORY ITEM_NONE -#define ITEM_ICE_MEMORY ITEM_NONE -#define ITEM_POISON_MEMORY ITEM_NONE -#define ITEM_PSYCHIC_MEMORY ITEM_NONE -#define ITEM_ROCK_MEMORY ITEM_NONE -#define ITEM_STEEL_MEMORY ITEM_NONE -#define ITEM_WATER_MEMORY ITEM_NONE + //FORM_ITEM_HOLD + #define ITEM_GRISEOUS_ORB 10069 + #define ITEM_DRACO_PLATE 10070 + #define ITEM_DREAD_PLATE 10071 + #define ITEM_EARTH_PLATE 10072 + #define ITEM_FIST_PLATE 10073 + #define ITEM_FLAME_PLATE 10074 + #define ITEM_ICICLE_PLATE 10075 + #define ITEM_INSECT_PLATE 10076 + #define ITEM_IRON_PLATE 10077 + #define ITEM_MEADOW_PLATE 10078 + #define ITEM_MIND_PLATE 10079 + #define ITEM_PIXIE_PLATE 10080 + #define ITEM_SKY_PLATE 10081 + #define ITEM_SPLASH_PLATE 10082 + #define ITEM_SPOOKY_PLATE 10083 + #define ITEM_STONE_PLATE 10084 + #define ITEM_TOXIC_PLATE 10085 + #define ITEM_ZAP_PLATE 10086 + #define ITEM_FIGHTINIUM_Z 10087 + #define ITEM_FLYINIUM_Z 10088 + #define ITEM_POISONIUM_Z 10089 + #define ITEM_GROUNDIUM_Z 10090 + #define ITEM_ROCKIUM_Z 10091 + #define ITEM_BUGINIUM_Z 10092 + #define ITEM_GHOSTIUM_Z 10093 + #define ITEM_STEELIUM_Z 10094 + #define ITEM_FIRIUM_Z 10095 + #define ITEM_WATERIUM_Z 10096 + #define ITEM_GRASSIUM_Z 10097 + #define ITEM_ELECTRIUM_Z 10098 + #define ITEM_PSYCHIUM_Z 10099 + #define ITEM_ICIUM_Z 10100 + #define ITEM_DRAGONIUM_Z 10101 + #define ITEM_DARKINIUM_Z 10102 + #define ITEM_FAIRIUM_Z 10103 + #define ITEM_DOUSE_DRIVE 10104 + #define ITEM_SHOCK_DRIVE 10105 + #define ITEM_BURN_DRIVE 10106 + #define ITEM_CHILL_DRIVE 10107 + #define ITEM_BUG_MEMORY 10108 + #define ITEM_DARK_MEMORY 10109 + #define ITEM_DRAGON_MEMORY 10110 + #define ITEM_ELECTRIC_MEMORY 10111 + #define ITEM_FAIRY_MEMORY 10112 + #define ITEM_FIGHTING_MEMORY 10113 + #define ITEM_FIRE_MEMORY 10114 + #define ITEM_FLYING_MEMORY 10115 + #define ITEM_GHOST_MEMORY 10116 + #define ITEM_GRASS_MEMORY 10117 + #define ITEM_GROUND_MEMORY 10118 + #define ITEM_ICE_MEMORY 10119 + #define ITEM_POISON_MEMORY 10120 + #define ITEM_PSYCHIC_MEMORY 10121 + #define ITEM_ROCK_MEMORY 10122 + #define ITEM_STEEL_MEMORY 10123 + #define ITEM_WATER_MEMORY 10124 -//FORM_ITEM_USE -#define ITEM_GRACIDEA ITEM_NONE -// #define ITEM_REVEAL_GLASS ITEM_NONE -// #define ITEM_PRISON_BOTTLE ITEM_NONE -#define ITEM_RED_NECTAR ITEM_NONE -#define ITEM_YELLOW_NECTAR ITEM_NONE -#define ITEM_PINK_NECTAR ITEM_NONE -#define ITEM_PURPLE_NECTAR ITEM_NONE + //FORM_ITEM_USE + #define ITEM_GRACIDEA 10125 + // #define ITEM_REVEAL_GLASS 10126 + // #define ITEM_PRISON_BOTTLE 10127 + #define ITEM_RED_NECTAR 10128 + #define ITEM_YELLOW_NECTAR 10129 + #define ITEM_PINK_NECTAR 10130 + #define ITEM_PURPLE_NECTAR 10131 #endif // ITEM_EXPANSION #ifndef BATTLE_ENGINE -#define ABILITY_MULTITYPE ABILITY_NONE -#define ABILITY_RKS_SYSTEM ABILITY_NONE + #define ABILITY_MULTITYPE ABILITY_NONE + #define ABILITY_RKS_SYSTEM ABILITY_NONE #endif // BATTLE_ENGINE #endif // GUARD_CONSTANTS_POKEMON_CONFIG_H From 5593a8378349b11409e9c68c13ca9e6a202ef9a2 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Thu, 30 Sep 2021 22:35:28 -0300 Subject: [PATCH 13/95] Fixed compile --- include/constants/pokemon_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/constants/pokemon_config.h b/include/constants/pokemon_config.h index 4bbb9e7de5..53bc6c526f 100644 --- a/include/constants/pokemon_config.h +++ b/include/constants/pokemon_config.h @@ -41,7 +41,7 @@ #define ITEM_SCIZORITE 10018 #define ITEM_HERACRONITE 10019 #define ITEM_HOUNDOOMINITE 10020 - #define ITEM_HOUNDOOMINITE 10021 + #define ITEM_TYRANITARITE 10021 #define ITEM_SCEPTILITE 10022 #define ITEM_BLAZIKENITE 10023 #define ITEM_SWAMPERTITE 10024 From 4ba03a6d54381378b7bf741b965029b6d3365724 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Thu, 30 Sep 2021 22:47:25 -0300 Subject: [PATCH 14/95] Fixed corruption bug when giving too many items from bag into boxes. --- src/pokemon_storage_system.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 3c7051e169..bf07fb5844 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -10126,9 +10126,9 @@ void UpdateSpeciesSpritePSS(struct BoxPokemon *boxMon) // Update front sprite sStorage->displayMonSpecies = species; sStorage->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(species, otId, pid); - LoadDisplayMonGfx(species, pid); if (!sJustOpenedBag) { + LoadDisplayMonGfx(species, pid); StartDisplayMonMosaicEffect(); // Recreate icon sprite From af5ff0533862d95dd147c69bcaa0eacf727e06ef Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Tue, 5 Oct 2021 21:25:56 -0300 Subject: [PATCH 15/95] Fixed FORM_ITEM_HOLD_ABILITY check --- src/party_menu.c | 4 +++- src/pokemon.c | 5 +++-- src/pokemon_storage_system.c | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/party_menu.c b/src/party_menu.c index 4d472a92e6..6c3d813faa 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -5314,7 +5314,9 @@ void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task) void TryItemHoldFormChange(struct Pokemon *mon) { u16 species = GetMonData(mon, MON_DATA_SPECIES); - u16 targetSpecies = GetFormChangeTargetSpecies(mon, FORM_ITEM_HOLD, 0); + u16 targetSpecies = GetFormChangeTargetSpecies(mon, FORM_ITEM_HOLD_ABILITY, 0); + if (targetSpecies == SPECIES_NONE) + targetSpecies = GetFormChangeTargetSpecies(mon, FORM_ITEM_HOLD, 0); if (targetSpecies != SPECIES_NONE) { PlayCry2(targetSpecies, 0, 0x7D, 0xA); diff --git a/src/pokemon.c b/src/pokemon.c index c88443ccb6..a6b07dbf57 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -8076,7 +8076,7 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *mon, u16 method, u32 arg switch (method) { case FORM_ITEM_HOLD: - if (heldItem == formChanges[i].param1) + if (heldItem == formChanges[i].param1 || formChanges[i].param1 == ITEM_NONE) targetSpecies = formChanges[i].targetSpecies; break; case FORM_ITEM_USE: @@ -8088,7 +8088,8 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *mon, u16 method, u32 arg targetSpecies = formChanges[i].targetSpecies; break; case FORM_ITEM_HOLD_ABILITY: - if (heldItem == formChanges[i].param1 && ability == formChanges[i].param2) + if ((heldItem == formChanges[i].param1 || formChanges[i].param1 == ITEM_NONE) + && ability == formChanges[i].param2) targetSpecies = formChanges[i].targetSpecies; break; case FORM_ITEM_USE_TIME: diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index bf07fb5844..3f358becbd 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -6883,7 +6883,9 @@ static void ReshowDisplayMon(void) void SetMonFormPSS(struct BoxPokemon *boxMon) { u16 species = GetMonData(boxMon, MON_DATA_SPECIES); - u16 targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, FORM_ITEM_HOLD, 0); + u16 targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, FORM_ITEM_HOLD_ABILITY, 0); + if (targetSpecies == SPECIES_NONE) + targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, FORM_ITEM_HOLD, 0); if (targetSpecies != SPECIES_NONE) { //PlayCry2(targetSpecies, 0, 0x7D, 0xA); From aec4d78bd4d9736aa35ffbfd77b1736d1ee26d70 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Thu, 4 Nov 2021 21:22:03 -0300 Subject: [PATCH 16/95] Fixed edge case with givemon --- src/script_pokemon_util.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index 93a7477720..c24255ccdf 100755 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -64,11 +64,23 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u int sentToPc; u8 heldItem[2]; struct Pokemon mon; + u16 targetSpecies; CreateMon(&mon, species, level, USE_RANDOM_IVS, 0, 0, OT_ID_PLAYER_ID, 0); heldItem[0] = item; heldItem[1] = item >> 8; SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem); + + // In case a mon with a form changing item is given. Eg: SPECIES_ARCEUS with ITEM_SPLASH_PLATE will transform into SPECIES_ARCEUS_WATER upon gifted. + targetSpecies = GetFormChangeTargetSpecies(&mon, FORM_ITEM_HOLD_ABILITY, 0); + if (targetSpecies == SPECIES_NONE) + targetSpecies = GetFormChangeTargetSpecies(&mon, FORM_ITEM_HOLD, 0); + if (targetSpecies != SPECIES_NONE) + { + SetMonData(&mon, MON_DATA_SPECIES, &targetSpecies); + CalculateMonStats(&mon); + } + sentToPc = GiveMonToPlayer(&mon); nationalDexNum = SpeciesToNationalPokedexNum(species); From 262569845ae60f2468ede190d05a83bfa730b112 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Fri, 5 Nov 2021 17:01:15 -0300 Subject: [PATCH 17/95] Comment capitalise Co-authored-by: BuffelSaft --- src/pokemon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon.c b/src/pokemon.c index a6b07dbf57..8324041c3e 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -8054,7 +8054,7 @@ u16 GetFormChangeTargetSpecies(struct Pokemon *mon, u16 method, u32 arg) return GetFormChangeTargetSpeciesBoxMon(&mon->box, method, arg); } -// returns SPECIES_NONE if no form change is possible +// Returns SPECIES_NONE if no form change is possible u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *mon, u16 method, u32 arg) { u32 i; From 8373312ed7e7972236f8782a5894b71fbd2f54f5 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Mon, 22 Nov 2021 16:25:25 -0300 Subject: [PATCH 18/95] =?UTF-8?q?Add=20gender=20differences=20for=20some?= =?UTF-8?q?=20Gen.=204=20Pok=C3=A9mon=20Namely:=20Bidoof,=20Kricketot,=20S?= =?UTF-8?q?hinx,=20Starly,=20Staravia=20and=20Staraptor=20Credits=20to=20C?= =?UTF-8?q?yanSMP64/Furret=20and=20Jaizu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- graphics/pokemon/bidoof/anim_frontf.png | Bin 0 -> 852 bytes graphics/pokemon/bidoof/backf.png | Bin 0 -> 570 bytes graphics/pokemon/kricketot/anim_frontf.png | Bin 0 -> 1048 bytes graphics/pokemon/kricketot/backf.png | Bin 0 -> 625 bytes graphics/pokemon/shinx/anim_front.png | Bin 986 -> 984 bytes graphics/pokemon/shinx/anim_frontf.png | Bin 0 -> 981 bytes graphics/pokemon/shinx/back.png | Bin 728 -> 729 bytes graphics/pokemon/shinx/backf.png | Bin 0 -> 728 bytes graphics/pokemon/staraptor/anim_frontf.png | Bin 0 -> 1290 bytes graphics/pokemon/staravia/anim_frontf.png | Bin 0 -> 1012 bytes graphics/pokemon/staravia/backf.png | Bin 0 -> 675 bytes graphics/pokemon/starly/anim_frontf.png | Bin 0 -> 993 bytes graphics/pokemon/starly/backf.png | Bin 0 -> 699 bytes include/graphics.h | 11 +++++++++++ src/data.c | 6 ++++++ src/data/graphics/pokemon.h | 11 +++++++++++ src/data/pokemon_graphics/back_pic_table.h | 6 ++++++ src/data/pokemon_graphics/front_pic_table.h | 6 ++++++ src/data/pokemon_graphics/palette_table.h | 6 ++++++ src/data/pokemon_graphics/shiny_palette_table.h | 6 ++++++ src/pokemon_icon.c | 11 +++++++++++ 21 files changed, 63 insertions(+) create mode 100644 graphics/pokemon/bidoof/anim_frontf.png create mode 100644 graphics/pokemon/bidoof/backf.png create mode 100644 graphics/pokemon/kricketot/anim_frontf.png create mode 100644 graphics/pokemon/kricketot/backf.png create mode 100644 graphics/pokemon/shinx/anim_frontf.png create mode 100644 graphics/pokemon/shinx/backf.png create mode 100644 graphics/pokemon/staraptor/anim_frontf.png create mode 100644 graphics/pokemon/staravia/anim_frontf.png create mode 100644 graphics/pokemon/staravia/backf.png create mode 100644 graphics/pokemon/starly/anim_frontf.png create mode 100644 graphics/pokemon/starly/backf.png diff --git a/graphics/pokemon/bidoof/anim_frontf.png b/graphics/pokemon/bidoof/anim_frontf.png new file mode 100644 index 0000000000000000000000000000000000000000..9585a6015c3b703883e8ed77a6a9ea81c569483a GIT binary patch literal 852 zcmV-a1FQUrP)X?ZD000+sMObuGZ)S9NVRB^vM@&RePDdbiWpW@hE;Mn4q~QPn00?w&PDe*f zL^A*Y002sWDIWj;00d`2O+f$vv5yP`J62En0LhVh3@Jd~ zK151v0R6Th;S6Au!U$mOuTNnwZkW9h0_(GBiy?$u1OR7{w;1rn9>$weK){2{T?794 zWHzHJ8FIt(!5O9>EMY_j-atf;;YN$absrIppip%q|+)Qp^-1i$^7bR+Q zU55nahPaq~CBvtCfVeU^zh?*&LxzvufeF|(;ALNAUw(bY zcp2qeZAT7X7tz43 zvcW~ZKQy_h_UVVQ?wZH)u<>i z=E}1_kk)oCR%ply&;CFi%=Vkmr&o66+aD^&d`^hpZjEn$*qiKjZiH`tcoY)6igS$M eq9b^xzt2lJ4m1 z$iT3%pZiZDE0Avx;1l9H2bfDv{_PKV^|t-iI$0+LMyI+Zb^n5}PdM3oKMSREC#+p7#TT7dSUFvt$Hho` zqg-O*y>Hpqc3&>hU#=(T#9s09%z@2J(Iz{Y8#je-R-A6Usg3?k`BCpAZ`{5f z>rwp4wdd8%jaxH!v^g7m*x~WQ$VIjI^TR9AA=AV^GB>C@yk?v7o9pXE)!tuUU%7ZV zIn@T8+&{g=k}2kX?Vq25jq7CU97B literal 0 HcmV?d00001 diff --git a/graphics/pokemon/kricketot/anim_frontf.png b/graphics/pokemon/kricketot/anim_frontf.png new file mode 100644 index 0000000000000000000000000000000000000000..86b2f773a54acc26f841563afbdfe3aaec81f48c GIT binary patch literal 1048 zcmV+z1n2vSP)?Sh;YA{SWM}hRxcfxJb?d5#{(FK5=BD6ngtTJ(FWOXP#W{@*st~=>aBDhXpYNwyvK+u|L)N zSUsOpz=58@Q0rPNvs3jH z4`azZtRBB6fc-C%Yc2p&01W>+G*lB7cqy*}aARly2cTaKVSC${!9xPDUFaMJWtk2p zl%HivzXE8tOQ~qUQ|bxqwcESF9}XZ>PfS^syFMpNU~x97z9BFdAqjXqm{e7}-9~`U zz=O>S?c+!~ZoiC}MBuX;)BXjt^;nIg8UVjUS?gzb_k&tMica10Vu_!mSlP-}_FIfQ zwZq!Q4qNLs9mLvViTNFuHn`Hgc)M^Ti--)+<^KYlRxtie;ai8-T>LHrLL?Du>=AIdZ_KJP!1sd21-30ejP}b6ji_M}!9Io3UMd6O0g%z&0-LeB#A|NeG%KG{@bIs*a^zN2zb6U;Cp0T1VpS-ZlMc=#$MmQ{bcRzxD2)t?K9$Ca%)^D}aq+t(;g|%H zPTFeab7{363B*kcfVNtX?81{r7MN_b`Jmz^-912A^}0`&!6 zZ^zYQ>{5ondrENsSH)IUjX9?^j`hcZloBPi3qbJ^SvBNL5iGQYv&NPEn*9K#1vv0B Sw_VTx0000f4>YfI{LW zt`Q}{`DrEPiAAXl?mjL+V-(6#ixiCYObT0D5Fjy*Qgm>F@ zh(5VhVJ2y$F1JgRi+3h-*f$+n?o2lO)Y46%U;We;CNDIX{POe5{GO>Q|G)m;b-DW` zr`To(Ps6pRYy6f3ojO#yiT@{0#Ir~~xt=Me3=G?k3pt!R&f)N`k?F)Hovg(B+zg-Q zZ1*UX<>EIIkl}dy>NeAD=jpQ7!o)v2tlzaVYHm}2%#zseHaiZfF+^?TS)F7e9v18Ec$hI?uyNsH<2A|!iq$@XQNLBa_{{`= zT&dXOQ6k*#P{0ZzNP6Tqw)pHc-f>(sL14~gjuqMr|J@!swl2s| zF5r;V)ldq!%kp=}aa+DbzXOdgdbuRedg>*85IgYECEx3J-d^K&gCnL7jO6Z5f5NpQ z_wn49@qZkn7o;_KTc-6KY-XRz&dR!#{VU54)z8acbN8yN{88>Z#SV%$Pgg&ebxsLQ E0C+p>0ssI2 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/shinx/anim_front.png b/graphics/pokemon/shinx/anim_front.png index 33a28bf20ff3b1d1b241d3bc7255104443412efc..16221a2a2110af4ebf44ee32c0d65f01fa098449 100644 GIT binary patch delta 786 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 DFOjD6 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/shinx/back.png b/graphics/pokemon/shinx/back.png index 24108fbf300a5b1d66fbd4db5da647f33cf12d9c..5d693fca8ae48ec10ee909433ba437a99939c2db 100644 GIT binary patch delta 563 zcmV-30?hr`1=$6VDhlNU6a)qrawg0Kku-~c0Eh)0NB{r<{YgYYRCt{2)WMFMFc1Jx zb8t^RBw6JH7?%$KYwuB&Zm%rV>497qeqdGpE0Ryv1HW+M5zp65cQ4wUO9b|58Xo>IBpZdX77f9HT0FeqwD`dEu%&CXwoqakU zMgaD=ab}AV;B|X^X(y0SK8uNp0W@v5ZpHs?I6h{E$@N= zuisQN?zDhX2nfKbuFN#60*WjP0Cq5c1K>rvVO%Mrn-N5bpND7Lx%oZKl80bV&psRV zeX6hz0PT`hoqwQe1!%^@;~FE`48V`wkfeLL2JYKTcCfdvC%df!NR)7Zo7@L}6KVbz zkhmx2y1oX)4&Wdjl!%AtXLEIHn{Y@-{$? zfLF$nUYne&BF60P$`pP^p$w6#Gpf4SV?KvF!^V*4TW7G=Fvc0cB9+lp$6UOV4ur0Z z50-y0mF}JJUdOP+*?2&t%L*m{*}MsEI^#DX7eMtNgK3G2eIZ5i2y_m>w?z-Sx0BKc z)K~cOwk+UArSYuTkK@Y B0>%IU delta 562 zcmV-20?qx|1=t0UDhlKX8U_ame8pYgku-~c|D^}=#Q*>S{7FPXRCt{2l(BBxFc5~R zftfnkGW-BKMh_qo*^RSNO|i+ydc6P?z$_4ncrAn@_P#|x;0d39 zn~ZOSaDIO6JPQDTCL$CQfst6?eFBJ|s0;IThL6oI09eLQ;v0_DL~cCP@8n^>8vwBX zO}I^F09rNsmu3V~qw~a|tOx3*`4~$a3;+R8RrPKFQsV%8;E2Gjktl|g3sc^O0ciCm z>!H&E4vawn9IH}~vnrtAJOI$a1OP98vK66HYE=(Fl=?b6S?BuqI7=D=Tl4OlmOsV} z+W;_KlCt#|Di;7nXt=H+(p3-m5%;2b9+rSxn`sPNcRa7l0Ho3#Pi!;y0pCQHe*vWK zjlL|`fW!efh&w5g{{2Z`T&I@mJ&06InwAQIV)!bw+E4&6asBfUTny_W$_)aowsL-k0? z5-G_E(6v3okfHzc-G6rk3Hcv?7ty-^vAP2sxKpBRS*J`mCB6g1AcRe^$;f)W02IJ1 z5Q%s#gd_I8ML^&QpPP(tgm8X-?K}$rfF>do6M>Of;C%v!pQsD-b%u}4E&y1@P~sbo z)kJPQ)bHeBzZ(Fs|4q0}W&m0>`wChMWo0uGEp0354QkFzSE;5-1(!2|#=vK66HYE=(Fl=?b6S?Buq zI7=D=Tl4OlmOsV}+W;_KlCt#|Di;7nXt=H+(p3-m5%;2b9+rSxn`sPNcRa7l0Ho3# zPi!;y0pCQHe*vWKjlL|`fW!efh&w5g{{2Z`T&c=<%FiEME z$)nHSrUOEi+6U%$RH-^gc*ikJanc^Z=66(I;Rf)j394J|n-DWVcAo=diL*VBEWHP` z4uI#G2i4h0DFozqczl~DaHCSVEAqO3Spc*J3NvQBRi?nd9e)6@5$-$!1*=T}0000< KMNUMnLSTXg8Y6%J literal 0 HcmV?d00001 diff --git a/graphics/pokemon/staraptor/anim_frontf.png b/graphics/pokemon/staraptor/anim_frontf.png new file mode 100644 index 0000000000000000000000000000000000000000..9bfd99e8074d2ae20738890cd21d318e8ff39f29 GIT binary patch literal 1290 zcmV+l1@-!gP)Px#Fi=cXMVQc_FeoT+U|0|k5Ku@!s5mI-SU^B9IFN9FXjoXdu&D6p=x|Ud_^4RG zcsKw60CVl1Hvj+xh)G02RA_S3($b0`1;8g#TF!b8|E5I=J=LkZ0rAGh~LI}|k2ms@* z_l_t=X8^E%-1X#QOp`5uqA#7JcjzqvFhJ!|TAE%2u*+F*dY8k9SulS@82EFZmo<;jXXm{Qz>g9w zXlv#+c`E^W@0Vqs*FvxZ_;G@KehA@m$0hQh%yX{ISHclN?lvr+_f|t_p2x&+594Y9 z8iERVUOeUHpjSYhP#7V_GNx;S0=$laBgVD_0)A9~9fIHcRzM*{;_xE_FpBFn>hrXv zuW%fC#|H@Br6|9#VRRRxfZlI|pDF+YaH0$Wgn&ta{qAC&QZBmk{x*PaP*|ubB?fxP zh-2VXTulV>Dnlm9LlWQUK#+mdY(%>_^QX7KgeYsJneDKg60?3s%sDrfSnL)mqtBLXlWXBuj&3HJx0(`SP5AV2!uC5BY+v} zO7&v4t3^L=m&X2QPC4`%w-LZ!@i-=|DG|qvgQ}= zvrZn|AfkoV84vKiIyrFT{ZO%Kwns_dVfD z|6?;iUK9E+0j~d!u&=D% z0R-0jVxs&c+}SD;!4v|Qr(&Y~DE(2X+*RJgIN+E(hQKBY0O@R^P^sOo^D^*ZA`}xv ztH(VEBCY*zGfRv23l3Ow<3C7^!*Y76-La#|AcsK!yZ_*%cK5-T;{C=wnE2l`9*v+P zBOj36c$-EPD|j%^<1)7nhLoT#K-2<3@F@nlxT(FX|4>FRS8RdQ+B1|AE^zI7kpc$zJ$+LFH2y;c zT-WZCc3iSIod8ezYCyD8D4#44cxN{t-U|2n$L(||KQg@_#d_Z0H()AWU5oKH~;_u07*qoM6N<$g2Gx} ACjbBd literal 0 HcmV?d00001 diff --git a/graphics/pokemon/staravia/anim_frontf.png b/graphics/pokemon/staravia/anim_frontf.png new file mode 100644 index 0000000000000000000000000000000000000000..1d4359a4d2d483e2ed5876fa50d52644eb99f28f GIT binary patch literal 1012 zcmVdC{3`JcMi$VSW-#e06jMG&C;mn(<$y7U? zdk~8SSI60b~!tt)YbDm9?gC zeU~}le}S8<&%&!ks1p5wo)u65D=#-GfbIb2n6RcV0my9o0x6uFCHj^0R081n)+tBr zd;rV?;6H=9XPAJR7@W%tQ2l%n7=RR1A4vMIdIhY6fRvFO69Nm#QI%&+&r1mwGrFr$ zuFY`Bj06^%^-9Qn=#^kQqj;`+=%TgiZw!~6tc#{8gT6CZkFv508{n%^$|@w@gxRc? zJ)IDmb1*9e2)BJ0LW`hP$lxf z2c7MVEqVN?0M!4ihx9dQ{bb)oU%-d@x4rFcM@evxYSv>ty2APn|jrRu>ELz7SRqkFFaKH0LCAVNT#tO?Q`Py%2Fhf;!Aux|no z^G&7X0<9V$gew0v!$|^#>fY79^AkJAVm{RXPBN_K@a&Wj#J-DnybSz2#aDon`6~XI zh6;j|5GK3240G`Rcff*kX(0^$e<(pn{1ZkAA$NVRAk+Zn=UgT9smnN&AePGg^*(SF z5O64AEFHAjxSPyMNm)@vR>; i#_iKvKX}`JZvOy_LN4Nyv}nix0000b}$2t^CXn#BMA!DSH=T9Vqz^r185q0>6K zM;9cJ`}OsQ0suafBO=hg9yPWJq+Vo{yEDqfd;#J^^w@wy<1(BuMoa26#8$0V=^-U^amA!Az)nCxG9ElLdg){Sp8N z@c>r$bp+I)a;D}P9RTWFPHq??rY5SVdYo>6Aq6FbCNu(3>}wd3;J-V)dguVu&!qt% z84rNyLG;+i&r|JRF z`qB5ivk(DP|6gU03dgG%qeyIU8LK|rM8p~^qd`Ty0FNPrm=UY9`gpfo9loMqwVe;44 z>X3xHZ-d?B>GeBrAW%6&*7=pdtH04N3Gref>532jar=*7i*LNo5;pML(^mih002ov JPDHLkV1nj}8}9%B literal 0 HcmV?d00001 diff --git a/graphics/pokemon/starly/anim_frontf.png b/graphics/pokemon/starly/anim_frontf.png new file mode 100644 index 0000000000000000000000000000000000000000..f604a83871d3ab863c24895ee805abd2c435e9ce GIT binary patch literal 993 zcmV<710MW|P)U|<*+Ah@uo z`1ttX*wA=L81R5NuvjRVfPipVSa4uqkYH#40037(y%GQb00Cl4M??UK1szBL00RX{ zL_t(|ob8r7Z`&{s$0@=?#*j+VL5oQ_endb3g-%ewOO*%ObW2^kb6(7lsR0@fT?)f6 zqKrWYdkr$A*=hypz%SIPpP@%7ZGnoE$3EZ#tmXgr-BBdV(uIzBdww@Hg!cZ{JH;t{DG!Sbcu~sZq8fNf8#-;PVYw@1 zM@ng}!9hHLN84toR;8o|OVH>%+J0s*)at{`5SB~w$Y6-#QJ212l5a_c84cUx@#ui} zdV9oQhi3AttdBpEUa$9#5V`?NDgSQpMgQeZPbVO>dYm_4!Ixj}yn+8i@I#S1nwXOX zl7*V^w&CD8kxwWgj08$e7V+jB8uW=EhW&EV3@0kt0^M{uoUrvp%F{$_5isO+gs5meoU~e^39rIS9U_U+eV$J%Ez)b6#HW|%bT=Q+t?`~~|MtphwVP!Wqyu~c|h?nO^qidTEI}X3f z)s@wdx$Hg8Vix~rSg!T2aQ*_chec?|fcCY51lbqL4sOImF}Se{%q>cRH#Bn#3{h7z zx1dG@U;4HlAhf{%-qIeRzpDobs9^vv<^XO9k7F=!19&lcI+XiW291U#VFE9AZ@Za+ zmc)ik^1I4EUFetcpR406~ zZ9o!R9S=Gg*@Kj3{W6N}beq$J_=bL6ko P00000NkvXXu0mjfsQj?o literal 0 HcmV?d00001 diff --git a/graphics/pokemon/starly/backf.png b/graphics/pokemon/starly/backf.png new file mode 100644 index 0000000000000000000000000000000000000000..c65bf27b0e449bbf7648534112cdbd8f8039df47 GIT binary patch literal 699 zcmV;s0!00ZP)P(`N#mP}-c7Xxv!bSY3UbAT2EG8KJ; zqD%V*LB^3*LiXyJ#ScSkYyQccy<)6R2m2HgRX+7lpTcR*i+ z`+(ec1%%z=7(@sMU3UN|CA&rqKq#f!g;tv~ZNi&n;L^185eO;iTn@~qW`v;;g&V0JorO4buhIYvMd<1Lt} zGh;q0o+OWmNXADDu++n=45+u6z;y1u(=rGh00O8r;(5kOD^}s9`4|CD{?aP6PIiGh zTP__q1x*7c?i|;we8*@5&;^jdRSkI3e^{mj+?MFcR#0uy{fy_!i!3240+qMugFnB3 z39fYxR--ClW7@6*@GM5PAF@y3oN}W=@G4;OF}VG$i^n{w0WZ~?>4TO4=3!o$;Pn8; h=4H`v{!;(F{sF?juo`56%3%Ni002ovPDHLkV1h;TB#r<8 literal 0 HcmV?d00001 diff --git a/include/graphics.h b/include/graphics.h index 8d28bef550..67f07a1b17 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -434,13 +434,19 @@ extern const u32 gMonFrontPic_Piplup[]; extern const u32 gMonFrontPic_Prinplup[]; extern const u32 gMonFrontPic_Empoleon[]; extern const u32 gMonFrontPic_Starly[]; +extern const u32 gMonFrontPic_StarlyF[]; extern const u32 gMonFrontPic_Staravia[]; +extern const u32 gMonFrontPic_StaraviaF[]; extern const u32 gMonFrontPic_Staraptor[]; +extern const u32 gMonFrontPic_StaraptorF[]; extern const u32 gMonFrontPic_Bidoof[]; +extern const u32 gMonFrontPic_BidoofF[]; extern const u32 gMonFrontPic_Bibarel[]; extern const u32 gMonFrontPic_Kricketot[]; +extern const u32 gMonFrontPic_KricketotF[]; extern const u32 gMonFrontPic_Kricketune[]; extern const u32 gMonFrontPic_Shinx[]; +extern const u32 gMonFrontPic_ShinxF[]; extern const u32 gMonFrontPic_Luxio[]; extern const u32 gMonFrontPic_Luxray[]; extern const u32 gMonFrontPic_Budew[]; @@ -1580,13 +1586,18 @@ extern const u32 gMonBackPic_Piplup[]; extern const u32 gMonBackPic_Prinplup[]; extern const u32 gMonBackPic_Empoleon[]; extern const u32 gMonBackPic_Starly[]; +extern const u32 gMonBackPic_StarlyF[]; extern const u32 gMonBackPic_Staravia[]; +extern const u32 gMonBackPic_StaraviaF[]; extern const u32 gMonBackPic_Staraptor[]; extern const u32 gMonBackPic_Bidoof[]; +extern const u32 gMonBackPic_BidoofF[]; extern const u32 gMonBackPic_Bibarel[]; extern const u32 gMonBackPic_Kricketot[]; +extern const u32 gMonBackPic_KricketotF[]; extern const u32 gMonBackPic_Kricketune[]; extern const u32 gMonBackPic_Shinx[]; +extern const u32 gMonBackPic_ShinxF[]; extern const u32 gMonBackPic_Luxio[]; extern const u32 gMonBackPic_Luxray[]; extern const u32 gMonBackPic_Budew[]; diff --git a/src/data.c b/src/data.c index e551ddcce6..586f1e63bd 100644 --- a/src/data.c +++ b/src/data.c @@ -305,6 +305,12 @@ const union AnimCmd *const gAnims_MonPic[] = const bool8 SpeciesHasGenderDifference[NUM_SPECIES] = { [SPECIES_EEVEE] = TRUE, + [SPECIES_STARLY] = TRUE, + [SPECIES_STARAVIA] = TRUE, + [SPECIES_STARAPTOR] = TRUE, + [SPECIES_BIDOOF] = TRUE, + [SPECIES_KRICKETOT] = TRUE, + [SPECIES_SHINX] = TRUE, [SPECIES_COMBEE] = TRUE, [SPECIES_HIPPOPOTAS] = TRUE, [SPECIES_HIPPOWDON] = TRUE, diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 7d29936ebe..c698e3a786 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -397,13 +397,19 @@ const u32 gMonFrontPic_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/anim_front const u32 gMonFrontPic_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/anim_front.4bpp.lz"); const u32 gMonFrontPic_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/anim_front.4bpp.lz"); const u32 gMonFrontPic_Starly[] = INCBIN_U32("graphics/pokemon/starly/anim_front.4bpp.lz"); +const u32 gMonFrontPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/anim_frontf.4bpp.lz"); const u32 gMonFrontPic_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/anim_front.4bpp.lz"); +const u32 gMonFrontPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/anim_frontf.4bpp.lz"); const u32 gMonFrontPic_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/anim_front.4bpp.lz"); +const u32 gMonFrontPic_StaraptorF[] = INCBIN_U32("graphics/pokemon/staraptor/anim_frontf.4bpp.lz"); const u32 gMonFrontPic_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/anim_front.4bpp.lz"); +const u32 gMonFrontPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/anim_frontf.4bpp.lz"); const u32 gMonFrontPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/anim_front.4bpp.lz"); const u32 gMonFrontPic_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/anim_front.4bpp.lz"); +const u32 gMonFrontPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/anim_frontf.4bpp.lz"); const u32 gMonFrontPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/anim_front.4bpp.lz"); const u32 gMonFrontPic_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/anim_front.4bpp.lz"); +const u32 gMonFrontPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/anim_frontf.4bpp.lz"); const u32 gMonFrontPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/anim_front.4bpp.lz"); const u32 gMonFrontPic_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/anim_front.4bpp.lz"); const u32 gMonFrontPic_Budew[] = INCBIN_U32("graphics/pokemon/budew/anim_front.4bpp.lz"); @@ -1543,13 +1549,18 @@ const u32 gMonBackPic_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/back.4bpp.l const u32 gMonBackPic_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/back.4bpp.lz"); const u32 gMonBackPic_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/back.4bpp.lz"); const u32 gMonBackPic_Starly[] = INCBIN_U32("graphics/pokemon/starly/back.4bpp.lz"); +const u32 gMonBackPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/backf.4bpp.lz"); const u32 gMonBackPic_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/back.4bpp.lz"); +const u32 gMonBackPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/back.4bpp.lz"); const u32 gMonBackPic_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/back.4bpp.lz"); const u32 gMonBackPic_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/back.4bpp.lz"); +const u32 gMonBackPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/backf.4bpp.lz"); const u32 gMonBackPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/back.4bpp.lz"); const u32 gMonBackPic_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/back.4bpp.lz"); +const u32 gMonBackPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/backf.4bpp.lz"); const u32 gMonBackPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/back.4bpp.lz"); const u32 gMonBackPic_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/back.4bpp.lz"); +const u32 gMonBackPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/backf.4bpp.lz"); const u32 gMonBackPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/back.4bpp.lz"); const u32 gMonBackPic_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/back.4bpp.lz"); const u32 gMonBackPic_Budew[] = INCBIN_U32("graphics/pokemon/budew/back.4bpp.lz"); diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index 9d108ce836..1e6e2839d1 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -1278,6 +1278,12 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = const struct CompressedSpriteSheet gMonBackPicTableFemale[] = { SPECIES_SPRITE(EEVEE, gMonBackPic_EeveeF), + SPECIES_SPRITE(STARLY, gMonBackPic_StarlyF), + SPECIES_SPRITE(STARAVIA, gMonBackPic_StaraviaF), + SPECIES_SPRITE(STARAPTOR, gMonBackPic_Staraptor), + SPECIES_SPRITE(BIDOOF, gMonBackPic_BidoofF), + SPECIES_SPRITE(KRICKETOT, gMonBackPic_KricketotF), + SPECIES_SPRITE(SHINX, gMonBackPic_ShinxF), SPECIES_SPRITE(COMBEE, gMonBackPic_Combee), SPECIES_SPRITE(HIPPOPOTAS, gMonBackPic_HippopotasF), SPECIES_SPRITE(HIPPOWDON, gMonBackPic_HippowdonF), diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index 788afc7447..c925f0a86d 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -1278,6 +1278,12 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = const struct CompressedSpriteSheet gMonFrontPicTableFemale[] = { SPECIES_SPRITE(EEVEE, gMonFrontPic_EeveeF), + SPECIES_SPRITE(STARLY, gMonFrontPic_StarlyF), + SPECIES_SPRITE(STARAVIA, gMonFrontPic_StaraviaF), + SPECIES_SPRITE(STARAPTOR, gMonFrontPic_StaraptorF), + SPECIES_SPRITE(BIDOOF, gMonFrontPic_BidoofF), + SPECIES_SPRITE(KRICKETOT, gMonFrontPic_KricketotF), + SPECIES_SPRITE(SHINX, gMonFrontPic_ShinxF), SPECIES_SPRITE(COMBEE, gMonFrontPic_CombeeF), SPECIES_SPRITE(HIPPOPOTAS, gMonFrontPic_HippopotasF), SPECIES_SPRITE(HIPPOWDON, gMonFrontPic_Hippowdon), diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index cc8717e905..d07a58487f 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -1279,6 +1279,12 @@ const struct CompressedSpritePalette gMonPaletteTableFemale[] = { SPECIES_PAL(EEVEE, gMonPalette_Eevee), SPECIES_PAL(COMBEE, gMonPalette_Combee), + SPECIES_PAL(STARLY, gMonPalette_Starly), + SPECIES_PAL(STARAVIA, gMonPalette_Staravia), + SPECIES_PAL(STARAPTOR, gMonPalette_Staraptor), + SPECIES_PAL(BIDOOF, gMonPalette_Bidoof), + SPECIES_PAL(KRICKETOT, gMonPalette_Kricketot), + SPECIES_PAL(SHINX, gMonPalette_Shinx), SPECIES_PAL(HIPPOPOTAS, gMonPalette_HippopotasF), SPECIES_PAL(HIPPOWDON, gMonPalette_HippowdonF), SPECIES_PAL(UNFEZANT, gMonPalette_UnfezantF), diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index b8324bdd5f..341aecbabc 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -1278,6 +1278,12 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = const struct CompressedSpritePalette gMonShinyPaletteTableFemale[] = { SPECIES_SHINY_PAL(EEVEE, gMonShinyPalette_Eevee), + SPECIES_SHINY_PAL(STARLY, gMonShinyPalette_Starly), + SPECIES_SHINY_PAL(STARAVIA, gMonShinyPalette_Staravia), + SPECIES_SHINY_PAL(STARAPTOR, gMonShinyPalette_Staraptor), + SPECIES_SHINY_PAL(BIDOOF, gMonShinyPalette_Bidoof), + SPECIES_SHINY_PAL(KRICKETOT, gMonShinyPalette_Kricketot), + SPECIES_SHINY_PAL(SHINX, gMonShinyPalette_Shinx), SPECIES_SHINY_PAL(COMBEE, gMonShinyPalette_Combee), SPECIES_SHINY_PAL(HIPPOPOTAS, gMonShinyPalette_HippopotasF), SPECIES_SHINY_PAL(HIPPOWDON, gMonShinyPalette_HippowdonF), diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 2a872a9e45..9cda049ce6 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -1240,6 +1240,12 @@ const u8 *const gMonIconTable[] = const u8 *const gMonIconTableFemale[] = { [SPECIES_EEVEE] = gMonIcon_Eevee, + [SPECIES_STARLY] = gMonIcon_Starly, + [SPECIES_STARAVIA] = gMonIcon_Staravia, + [SPECIES_STARAPTOR] = gMonIcon_Staraptor, + [SPECIES_BIDOOF] = gMonIcon_Bidoof, + [SPECIES_KRICKETOT] = gMonIcon_Kricketot, + [SPECIES_SHINX] = gMonIcon_Shinx, [SPECIES_COMBEE] = gMonIcon_Combee, [SPECIES_HIPPOPOTAS] = gMonIcon_Hippopotas, [SPECIES_HIPPOWDON] = gMonIcon_Hippowdon, @@ -2428,6 +2434,11 @@ const u8 gMonIconPaletteIndices[] = const u8 gMonIconPaletteIndicesFemale[] = { [SPECIES_EEVEE] = 2, + [SPECIES_STARLY] = 0, + [SPECIES_STARAVIA] = 0, + [SPECIES_BIDOOF] = 2, + [SPECIES_KRICKETOT] = 2, + [SPECIES_SHINX] = 0, [SPECIES_COMBEE] = 0, [SPECIES_HIPPOPOTAS] = 1, [SPECIES_HIPPOWDON] = 1, From b7f4658077ef0f75637708e5e4f9625f21e9bbd4 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Mon, 22 Nov 2021 20:29:53 +0100 Subject: [PATCH 19/95] Added Kricketot line gender difference sprites --- graphics/pokemon/kricketune/anim_frontf.png | Bin 0 -> 1261 bytes graphics/pokemon/kricketune/backf.png | Bin 0 -> 721 bytes include/graphics.h | 2 ++ src/data.c | 1 + src/data/graphics/pokemon.h | 2 ++ src/data/pokemon_graphics/back_pic_table.h | 1 + src/data/pokemon_graphics/front_pic_table.h | 1 + src/data/pokemon_graphics/palette_table.h | 1 + src/data/pokemon_graphics/shiny_palette_table.h | 1 + src/pokemon_icon.c | 2 ++ 10 files changed, 11 insertions(+) create mode 100644 graphics/pokemon/kricketune/anim_frontf.png create mode 100644 graphics/pokemon/kricketune/backf.png diff --git a/graphics/pokemon/kricketune/anim_frontf.png b/graphics/pokemon/kricketune/anim_frontf.png new file mode 100644 index 0000000000000000000000000000000000000000..b05954ee68e758ae877d72dd19303b34343c59d4 GIT binary patch literal 1261 zcmVPx#Fi=cXMVQc_U?33aSU{jSC=d`3C@3&EKtTBT_*htIm^c{l(1>U#5V)9Ncwi_1 z0000000-p}Pyhe~Ye_^wRA_1AJV(&CGhWEHlQ=tMjv%WD1NQO( z8!3dc3$Um&0_;6_J=_^1`(_qnLiQhfI|)A=s})U5A_Hzg0WJ#Qk_1YRgc$TF#n=EK zVWc4gL^=RMP#@H#7)ihrcsj63h%rC_i!bve1`-6I+crd&Sp;4d`78E9peYHY5kQ^_ z3$OQe6~Y350DU67mLMC5aR9`SAM5&H`4BOm$ZkS{I1O{~Y%i8U8}x@DQ%I5N1pp`6 zVWr?Rd9gTe``sSu0a1~H+xbH3-Xpvp&#T`7km&%(DN3KeKgTi!a0|%W;5DJfLNd*= zZm{3T_s^UWn#f7;nJk-k0+0X|W(a-ch5yC={(Bcdh&!EUfd1#Qk;NV%MLaqtknX-> z+}Hyk``|?Cp#Ur)4pIYXMI7JRR0ZfRSc-iDGz5Pjp%GyAi@Pt20hT?14ir>?Ju3hl z2DQ(CjFPs74>3s!|e-Ib>6Ow>Epp|fPBpLP^PMaAloCr%i zmrwvgusg-<0f-t@BT!YsF~A!*N91eH}P(Ygw@@+WbFb$Bf_?rQ3iWsKtlYy3P;m`!n05 zLg#taOMt%)pzeR%O<_#vBOe@4(@rTM$E9-zAjqL+3VaoS;xkLI-wX+D@@LD&37OER zDMbUQZ3jv^Y`uzO&HCqSrxfdut)EzhO$llezidmzKY zn-!4lwepp;%KHkKm;>h-Xz~6~!h8pWYc>MF`gm9gT_!o6gRNz1Jcxa?Y}x# zPp;mz>`3kEsf$|6{|Nh3{)@3PCUf4y@;?Ne%BigTto#pQ?v_3)|CtAEsJ(!${AV+t znZi@~&&>IL@H0+q%75LC^>PtZ99Mm9`OmHygfqH~30?Wmskdw=e5!Qbm;YX;aZvuh z5HMN(p98+-e*rY*|2tomssD3eyxu>!)ovNR4e$lPx#Fi=cXMVQc_csLOFxIoBwC=d`3I4CG+P(b+j_=s>&s7L_#*qDeo0JxAyh-e4^ z0000008BPo_5c6^Pf0{UR9J=8m)UZ|FbGA10oVWk#buFXv|4UoT0LYYp4_7g!k~OU ze|Z7G@ASuU+=%xyI&@K%W2Ef?AP@)xZBy?KTtsL9+$TVii|+&w0`3FMF-j1SbAYBf*9A?zD~96Q|_56~+?K>M<_bumD{GA^;x&b+ton zKw^132SBKgumK2R31|$odLhu70M+Z-84&yztpLsYJ_4KsOF-2x#sHcF+J-X(oHRd3 zXd6~f0I@JlLf`R57H|b*F%8GVaA?S> zr95~?lm+63A4JwP9k`KiMV4;XEzI{+$x zJrn>QXNS1Wh)3-mRP;SydDjpPs|n^DK}FE_(Jmk7gy0i^O_%i{3F1BhW)>8{A0x0~ z?9-;LZmxp|_4+isZKM$-01ZJL$fqJ8srBMQR-$VILhux@odu^*4zH)`=F#g7z^MxS zFcaZEx+MUDz5qDNeQ2)?xV}W-7Mhte1bEuB{*J&1VQkI-R)i4r5fBEq-8V)6GXTYQ z1&DrtRuBP+Fv}q{23kO|FiSyW;4=VR1+Wpp z5Rm@_%m7iJ?l`@LRT)))SqzI8Ayje6YI6=Nz`tGJDlZsPSM=@o00000NkvXXu0mjf DT9zaO literal 0 HcmV?d00001 diff --git a/include/graphics.h b/include/graphics.h index 67f07a1b17..4029f69c2d 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -445,6 +445,7 @@ extern const u32 gMonFrontPic_Bibarel[]; extern const u32 gMonFrontPic_Kricketot[]; extern const u32 gMonFrontPic_KricketotF[]; extern const u32 gMonFrontPic_Kricketune[]; +extern const u32 gMonFrontPic_KricketuneF[]; extern const u32 gMonFrontPic_Shinx[]; extern const u32 gMonFrontPic_ShinxF[]; extern const u32 gMonFrontPic_Luxio[]; @@ -1596,6 +1597,7 @@ extern const u32 gMonBackPic_Bibarel[]; extern const u32 gMonBackPic_Kricketot[]; extern const u32 gMonBackPic_KricketotF[]; extern const u32 gMonBackPic_Kricketune[]; +extern const u32 gMonBackPic_KricketuneF[]; extern const u32 gMonBackPic_Shinx[]; extern const u32 gMonBackPic_ShinxF[]; extern const u32 gMonBackPic_Luxio[]; diff --git a/src/data.c b/src/data.c index 586f1e63bd..2ece62412f 100644 --- a/src/data.c +++ b/src/data.c @@ -310,6 +310,7 @@ const bool8 SpeciesHasGenderDifference[NUM_SPECIES] = [SPECIES_STARAPTOR] = TRUE, [SPECIES_BIDOOF] = TRUE, [SPECIES_KRICKETOT] = TRUE, + [SPECIES_KRICKETUNE] = TRUE, [SPECIES_SHINX] = TRUE, [SPECIES_COMBEE] = TRUE, [SPECIES_HIPPOPOTAS] = TRUE, diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index c698e3a786..6a9ea85ee7 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -408,6 +408,7 @@ const u32 gMonFrontPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/anim_fro const u32 gMonFrontPic_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/anim_front.4bpp.lz"); const u32 gMonFrontPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/anim_frontf.4bpp.lz"); const u32 gMonFrontPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/anim_front.4bpp.lz"); +const u32 gMonFrontPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/anim_frontf.4bpp.lz"); const u32 gMonFrontPic_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/anim_front.4bpp.lz"); const u32 gMonFrontPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/anim_frontf.4bpp.lz"); const u32 gMonFrontPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/anim_front.4bpp.lz"); @@ -1559,6 +1560,7 @@ const u32 gMonBackPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/back.4bpp const u32 gMonBackPic_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/back.4bpp.lz"); const u32 gMonBackPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/backf.4bpp.lz"); const u32 gMonBackPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/back.4bpp.lz"); +const u32 gMonBackPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/backf.4bpp.lz"); const u32 gMonBackPic_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/back.4bpp.lz"); const u32 gMonBackPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/backf.4bpp.lz"); const u32 gMonBackPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/back.4bpp.lz"); diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index 1e6e2839d1..80f7aab3b3 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -1283,6 +1283,7 @@ const struct CompressedSpriteSheet gMonBackPicTableFemale[] = SPECIES_SPRITE(STARAPTOR, gMonBackPic_Staraptor), SPECIES_SPRITE(BIDOOF, gMonBackPic_BidoofF), SPECIES_SPRITE(KRICKETOT, gMonBackPic_KricketotF), + SPECIES_SPRITE(KRICKETUNE, gMonBackPic_KricketuneF), SPECIES_SPRITE(SHINX, gMonBackPic_ShinxF), SPECIES_SPRITE(COMBEE, gMonBackPic_Combee), SPECIES_SPRITE(HIPPOPOTAS, gMonBackPic_HippopotasF), diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index c925f0a86d..7640dc23e4 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -1283,6 +1283,7 @@ const struct CompressedSpriteSheet gMonFrontPicTableFemale[] = SPECIES_SPRITE(STARAPTOR, gMonFrontPic_StaraptorF), SPECIES_SPRITE(BIDOOF, gMonFrontPic_BidoofF), SPECIES_SPRITE(KRICKETOT, gMonFrontPic_KricketotF), + SPECIES_SPRITE(KRICKETUNE, gMonFrontPic_KricketuneF), SPECIES_SPRITE(SHINX, gMonFrontPic_ShinxF), SPECIES_SPRITE(COMBEE, gMonFrontPic_CombeeF), SPECIES_SPRITE(HIPPOPOTAS, gMonFrontPic_HippopotasF), diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index d07a58487f..3de4107007 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -1284,6 +1284,7 @@ const struct CompressedSpritePalette gMonPaletteTableFemale[] = SPECIES_PAL(STARAPTOR, gMonPalette_Staraptor), SPECIES_PAL(BIDOOF, gMonPalette_Bidoof), SPECIES_PAL(KRICKETOT, gMonPalette_Kricketot), + SPECIES_PAL(KRICKETUNE, gMonPalette_Kricketune), SPECIES_PAL(SHINX, gMonPalette_Shinx), SPECIES_PAL(HIPPOPOTAS, gMonPalette_HippopotasF), SPECIES_PAL(HIPPOWDON, gMonPalette_HippowdonF), diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index 341aecbabc..aa7c4153e7 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -1283,6 +1283,7 @@ const struct CompressedSpritePalette gMonShinyPaletteTableFemale[] = SPECIES_SHINY_PAL(STARAPTOR, gMonShinyPalette_Staraptor), SPECIES_SHINY_PAL(BIDOOF, gMonShinyPalette_Bidoof), SPECIES_SHINY_PAL(KRICKETOT, gMonShinyPalette_Kricketot), + SPECIES_SHINY_PAL(KRICKETUNE, gMonShinyPalette_Kricketune), SPECIES_SHINY_PAL(SHINX, gMonShinyPalette_Shinx), SPECIES_SHINY_PAL(COMBEE, gMonShinyPalette_Combee), SPECIES_SHINY_PAL(HIPPOPOTAS, gMonShinyPalette_HippopotasF), diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 9cda049ce6..8c9167159f 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -1245,6 +1245,7 @@ const u8 *const gMonIconTableFemale[] = [SPECIES_STARAPTOR] = gMonIcon_Staraptor, [SPECIES_BIDOOF] = gMonIcon_Bidoof, [SPECIES_KRICKETOT] = gMonIcon_Kricketot, + [SPECIES_KRICKETUNE] = gMonIcon_Kricketune, [SPECIES_SHINX] = gMonIcon_Shinx, [SPECIES_COMBEE] = gMonIcon_Combee, [SPECIES_HIPPOPOTAS] = gMonIcon_Hippopotas, @@ -2438,6 +2439,7 @@ const u8 gMonIconPaletteIndicesFemale[] = [SPECIES_STARAVIA] = 0, [SPECIES_BIDOOF] = 2, [SPECIES_KRICKETOT] = 2, + [SPECIES_KRICKETUNE] = 2, [SPECIES_SHINX] = 0, [SPECIES_COMBEE] = 0, [SPECIES_HIPPOPOTAS] = 1, From fa995894b76f4264df48dfa58f425cf12e8a9e7c Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sat, 27 Nov 2021 20:46:19 -0300 Subject: [PATCH 20/95] Added Nature evolution methods --- include/constants/pokemon.h | 2 ++ src/data/pokemon/evolution.h | 4 +-- src/pokemon.c | 50 ++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 9572745175..bfe461c2f1 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -346,6 +346,8 @@ #define EVO_LEVEL_DARK_TYPE_MON_IN_PARTY 30 // Pokémon reaches the specified level with a Dark Type Pokémon in party #define EVO_TRADE_SPECIFIC_MON 31 // Pokémon is traded for a specified Pokémon #define EVO_SPECIFIC_MAP 32 // Pokémon levels up on specified map +#define EVO_LEVEL_NATURE_AMPED 33 // Pokémon reaches the specified level, it has a Hardy, Brave, Adamant, Naughty, Docile, Impish, Lax, Hasty, Jolly, Naive, Rash, Sassy, or Quirky nature. +#define EVO_LEVEL_NATURE_LOW_KEY 34 // Pokémon reaches the specified level, it has a Lonely, Bold, Relaxed, Timid, Serious, Modest, Mild, Quiet, Bashful, Calm, Gentle, or Careful nature. #define EVOS_PER_MON 10 diff --git a/src/data/pokemon/evolution.h b/src/data/pokemon/evolution.h index bc7cce52c3..b431b88a3b 100644 --- a/src/data/pokemon/evolution.h +++ b/src/data/pokemon/evolution.h @@ -471,8 +471,8 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] = {EVO_ITEM, ITEM_NONE, SPECIES_APPLETUN}}, [SPECIES_SILICOBRA] = {{EVO_LEVEL, 36, SPECIES_SANDACONDA}}, [SPECIES_ARROKUDA] = {{EVO_LEVEL, 26, SPECIES_BARRASKEWDA}}, - [SPECIES_TOXEL] = {{EVO_LEVEL, 30, SPECIES_TOXTRICITY}, - {EVO_LEVEL, 30, SPECIES_TOXTRICITY_LOW_KEY}}, + [SPECIES_TOXEL] = {{EVO_LEVEL_NATURE_AMPED, 30, SPECIES_TOXTRICITY}, + {EVO_LEVEL_NATURE_LOW_KEY, 30, SPECIES_TOXTRICITY_LOW_KEY}}, [SPECIES_SIZZLIPEDE] = {{EVO_LEVEL, 28, SPECIES_CENTISKORCH}}, [SPECIES_CLOBBOPUS] = {{EVO_MOVE, MOVE_TAUNT, SPECIES_GRAPPLOCT}}, [SPECIES_SINISTEA] = {{EVO_ITEM, ITEM_NONE, SPECIES_POLTEAGEIST}}, diff --git a/src/pokemon.c b/src/pokemon.c index 189fccdea5..bf9e7a04d8 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6529,6 +6529,56 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u if (currentMap == gEvolutionTable[species][i].param) targetSpecies = gEvolutionTable[species][i].targetSpecies; break; + case EVO_LEVEL_NATURE_AMPED: + if (gEvolutionTable[species][i].param <= level) + { + u8 nature = GetNature(mon); + #ifdef GBA_PRINTF + mgba_printf(MGBA_LOG_DEBUG, "nat = %d", nature); + #endif + switch (nature) + { + case NATURE_HARDY: + case NATURE_BRAVE: + case NATURE_ADAMANT: + case NATURE_NAUGHTY: + case NATURE_DOCILE: + case NATURE_IMPISH: + case NATURE_LAX: + case NATURE_HASTY: + case NATURE_JOLLY: + case NATURE_NAIVE: + case NATURE_RASH: + case NATURE_SASSY: + case NATURE_QUIRKY: + targetSpecies = gEvolutionTable[species][i].targetSpecies; + break; + } + } + break; + case EVO_LEVEL_NATURE_LOW_KEY: + if (gEvolutionTable[species][i].param <= level) + { + u8 nature = GetNature(mon); + switch (nature) + { + case NATURE_LONELY: + case NATURE_BOLD: + case NATURE_RELAXED: + case NATURE_TIMID: + case NATURE_SERIOUS: + case NATURE_MODEST: + case NATURE_MILD: + case NATURE_QUIET: + case NATURE_BASHFUL: + case NATURE_CALM: + case NATURE_GENTLE: + case NATURE_CAREFUL: + targetSpecies = gEvolutionTable[species][i].targetSpecies; + break; + } + } + break; } } break; From b6b74b16566461fc4c0b5eb919f423af579fcf7b Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sun, 28 Nov 2021 11:39:08 -0300 Subject: [PATCH 21/95] Oops Update src/pokemon.c Co-authored-by: LOuroboros --- src/pokemon.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index bf9e7a04d8..c3d7c19f2e 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6533,9 +6533,6 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u if (gEvolutionTable[species][i].param <= level) { u8 nature = GetNature(mon); - #ifdef GBA_PRINTF - mgba_printf(MGBA_LOG_DEBUG, "nat = %d", nature); - #endif switch (nature) { case NATURE_HARDY: From 6c520659aa9c1570a27e36979ca348976f20d1b6 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Mon, 29 Nov 2021 22:52:08 +0100 Subject: [PATCH 22/95] implemented a inital pokemon debug menu based on code from Gamer2020 and AsparagusEduardo --- include/pokemon_debug.h | 9 + include/reset_rtc_screen.h | 3 + ld_script.txt | 2 + src/field_control_avatar.c | 24 ++ src/pokemon_debug.c | 633 +++++++++++++++++++++++++++++++++++++ src/reset_rtc_screen.c | 4 +- 6 files changed, 673 insertions(+), 2 deletions(-) create mode 100644 include/pokemon_debug.h create mode 100644 src/pokemon_debug.c diff --git a/include/pokemon_debug.h b/include/pokemon_debug.h new file mode 100644 index 0000000000..a1aae5e153 --- /dev/null +++ b/include/pokemon_debug.h @@ -0,0 +1,9 @@ +#ifndef GUARD_POKEMON_DEBUG_H +#define GUARD_POKEMON_DEBUG_H + +#define POKEMON_DEBUG + +void CB2_Debug_Pokemon(void); + + +#endif // GUARD_POKEMON_DEBUG_H \ No newline at end of file diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h index 5807dec992..f8904063b7 100644 --- a/include/reset_rtc_screen.h +++ b/include/reset_rtc_screen.h @@ -1,6 +1,9 @@ #ifndef GUARD_RESET_RTC_SCREEN_H #define GUARD_RESET_RTC_SCREEN_H +extern const struct SpritePalette sSpritePalette_Arrow; +extern const struct SpriteTemplate sSpriteTemplate_Arrow; + void CB2_InitResetRtcScreen(void); #endif // GUARD_RESET_RTC_SCREEN_H diff --git a/ld_script.txt b/ld_script.txt index 886bd8f0ff..bfba214eb4 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -327,6 +327,7 @@ SECTIONS { src/gym_leader_rematch.o(.text); src/battle_transition_frontier.o(.text); src/international_string_util.o(.text); + src/pokemon_debug.o(.text); } =0 script_data : @@ -685,6 +686,7 @@ SECTIONS { data/mystery_event.o(.rodata); src/m4a_tables.o(.rodata); data/sound_data.o(.rodata); + src/pokemon_debug.o(.rodata); } =0 song_data : diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 6ec280fd0d..66065681fc 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -20,6 +20,7 @@ #include "metatile_behavior.h" #include "overworld.h" #include "pokemon.h" +#include "pokemon_debug.h" #include "safari_zone.h" #include "script.h" #include "secret_base.h" @@ -130,6 +131,14 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) input->dpadDirection = DIR_WEST; else if (heldKeys & DPAD_RIGHT) input->dpadDirection = DIR_EAST; + + #ifdef POKEMON_DEBUG + if ((heldKeys & R_BUTTON) && input->pressedStartButton) + { + input->input_field_1_2 = TRUE; + input->pressedStartButton = FALSE; + } + #endif } int ProcessPlayerFieldInput(struct FieldInput *input) @@ -189,6 +198,21 @@ int ProcessPlayerFieldInput(struct FieldInput *input) if (input->pressedSelectButton && UseRegisteredKeyItemOnField() == TRUE) return TRUE; + + #ifdef POKEMON_DEBUG + if (input->input_field_1_2) + { + //PlaySE(SE_WIN_OPEN); + //Debug_ShowMainMenu(); + + //PlayRainStoppingSoundEffect(); + CleanupOverworldWindowsAndTilemaps(); + SetMainCallback2(CB2_Debug_Pokemon); + + return TRUE; + } + #endif + return FALSE; } diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c new file mode 100644 index 0000000000..3d3213034a --- /dev/null +++ b/src/pokemon_debug.c @@ -0,0 +1,633 @@ +//Credits: Gamer2020, AsparagusEduardo +#include "global.h" +#include "battle.h" +#include "bg.h" +#include "constants/rgb.h" +#include "constants/songs.h" +#include "data.h" +#include "decompress.h" +#include "field_weather.h" +#include "gpu_regs.h" +#include "item.h" +#include "item_icon.h" +#include "list_menu.h" +#include "m4a.h" +#include "main.h" +#include "malloc.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "pokemon_animation.h" +#include "pokemon_debug.h" +#include "pokemon_icon.h" +#include "reset_rtc_screen.h" +#include "scanline_effect.h" +#include "script.h" +#include "script_pokemon_util.h" +#include "sound.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "trainer_pokemon_sprites.h" + +#include "constants/items.h" + +//Defines +#define DEBUG_MON_X 140 +#define DEBUG_MON_Y 14 +#define DEBUG_MON_BACK_X 32 +#define DEBUG_MON_BACK_Y 50 +#define DEBUG_ICON_X 148 +#define DEBUG_ICON_Y 90 +#define DEBUG_MON_SHINY 0 +#define DEBUG_MON_NORMAL 9 + +#define MODIFY_DIGITS_MAX 4 +#define MODIFY_DIGITS_ARROW_X 22 +#define MODIFY_DIGITS_ARROW1_Y 12 +#define MODIFY_DIGITS_ARROW2_Y 36 + +static const u16 sBgColor[] = {RGB_WHITE}; + +//Structs +struct PokemonDebugModifyArrows +{ + u8 arrowSpriteId[2]; + u16 minValue; + u16 maxValue; + int currValue; + u8 currentDigit; + u8 maxDigits; + u8 charDigits[MODIFY_DIGITS_MAX]; + void *modifiedValPtr; + u8 typeOfVal; +}; + +struct PokemonDebugMenu +{ + u16 currentmonId; + u8 currentmonWindowId; + u8 InstructionsWindowId; + u8 frontspriteId; + u8 backspriteId; + u8 iconspriteId; + u8 isshiny; + struct PokemonDebugModifyArrows modifyArrows; + u8 modifyWindowId; +}; + +//WindowTemplates +static const struct WindowTemplate sCurrentTitleTemplate = +{ + .bg = 0, + .tilemapLeft =1, + .tilemapTop = 0, + .width = 14, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x200 +}; + +static const struct WindowTemplate sDebugPokemonInstructionsTemplate = +{ + .bg = 0, + .tilemapLeft =1, + .tilemapTop = 207, + .width = 14, + .height = 8, + .paletteNum = 0xF, + .baseBlock = 0x300 +}; + +static const struct WindowTemplate sModifyWindowTemplate = +{ + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 2, + .width = 14, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x200 +}; + +//Function declarations +static void PrintDigitChars(struct PokemonDebugMenu *data); +static void SetUpModifyArrows(struct PokemonDebugMenu *data); +static void UpdateBattlerValue(struct PokemonDebugMenu *data); +static void ValueToCharDigits(u8 *charDigits, u32 newValue, u8 maxDigits); +static bool32 TryMoveDigit(struct PokemonDebugModifyArrows *modArrows, bool32 moveUp); +static void CB2_Debug_Runner(void); +static void ResetBGs_Debug_Menu(u16); +static void Handle_Input_Debug_Pokemon(u8); +static void ReloadPokemonSprites(struct PokemonDebugMenu *data); +static void Exit_Debug_Pokemon(u8); + +static struct PokemonDebugMenu *GetStructPtr(u8 taskId) +{ + u8 *taskDataPtr = (u8*)(&gTasks[taskId].data[0]); + + return (struct PokemonDebugMenu*)(T1_READ_PTR(taskDataPtr)); +} + +//Text handling functions +static void PadString(const u8 *src, u8 *dst) +{ + u32 i; + + for (i = 0; i < 17 && src[i] != EOS; i++) + dst[i] = src[i]; + + for (; i < 17; i++) + dst[i] = CHAR_SPACE; + + dst[i] = EOS; +} + +static void PrintOnCurrentMonWindow(u8 windowId, u16 monId) +{ + u8 text[POKEMON_NAME_LENGTH + 10]; + + text[0] = CHAR_0 + monId / 100; + text[1] = CHAR_0 + (monId % 100) / 10; + text[2] = CHAR_0 + (monId % 100) % 10; + text[3] = CHAR_SPACE; + text[4] = CHAR_HYPHEN; + text[5] = CHAR_SPACE; + + StringCopy(&text[6], gSpeciesNames[monId]); + + FillWindowPixelBuffer(windowId, 0x11); + AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); + CopyWindowToVram(windowId, 3); +} + +static void PrintInstructionsOnWindow(u8 windowId) +{ + u8 text[] = _("A - Shiny START - Cry\nL - Back R - Front$"); + + FillWindowPixelBuffer(windowId, 0x11); + AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); + CopyWindowToVram(windowId, 3); +} + +static void VBlankCB(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void SetStructPtr(u8 taskId, void *ptr) +{ + u32 structPtr = (u32)(ptr); + u8 *taskDataPtr = (u8*)(&gTasks[taskId].data[0]); + + taskDataPtr[0] = structPtr >> 0; + taskDataPtr[1] = structPtr >> 8; + taskDataPtr[2] = structPtr >> 16; + taskDataPtr[3] = structPtr >> 24; +} + +//Digit and arrow functions +#define VAL_U16 0 +static void PrintDigitChars(struct PokemonDebugMenu *data) +{ + s32 i; + u8 text[MODIFY_DIGITS_MAX + POKEMON_NAME_LENGTH + 4]; + + for (i = 0; i < data->modifyArrows.maxDigits; i++) + text[i] = data->modifyArrows.charDigits[i]; + + text[i] = CHAR_SPACE; + text[i + 1] = CHAR_HYPHEN; + text[i + 2] = CHAR_SPACE; + + StringCopy(&text[i + 3], gSpeciesNames[data->modifyArrows.currValue]); + + FillWindowPixelBuffer(data->modifyWindowId, 0x11); + AddTextPrinterParameterized(data->modifyWindowId, 1, text, 3, 0, 0, NULL); +} + +static u32 CharDigitsToValue(u8 *charDigits, u8 maxDigits) +{ + s32 i; + u8 id = 0; + u32 newValue = 0; + u8 valueDigits[MODIFY_DIGITS_MAX]; + + for (i = 0; i < MODIFY_DIGITS_MAX; i++) + valueDigits[i] = charDigits[i] - CHAR_0; + + if (maxDigits >= MODIFY_DIGITS_MAX) + newValue += valueDigits[id++] * 1000; + if (maxDigits >= MODIFY_DIGITS_MAX - 1) + newValue += valueDigits[id++] * 100; + if (maxDigits >= MODIFY_DIGITS_MAX - 2) + newValue += valueDigits[id++] * 10; + if (maxDigits >= MODIFY_DIGITS_MAX - 3) + newValue += valueDigits[id++]; + + return newValue; +} + +static void ValueToCharDigits(u8 *charDigits, u32 newValue, u8 maxDigits) +{ + s32 i; + u8 valueDigits[MODIFY_DIGITS_MAX]; + u8 id = 0; + + if (maxDigits >= MODIFY_DIGITS_MAX) + valueDigits[id++] = newValue / 1000; + if (maxDigits >= MODIFY_DIGITS_MAX - 1) + valueDigits[id++] = (newValue % 1000) / 100; + if (maxDigits >= MODIFY_DIGITS_MAX - 2) + valueDigits[id++] = (newValue % 100) / 10; + if (maxDigits >= MODIFY_DIGITS_MAX - 3) + valueDigits[id++] = newValue % 10; + + for (i = 0; i < MODIFY_DIGITS_MAX; i++) + charDigits[i] = valueDigits[i] + CHAR_0; +} + +static void SetUpModifyArrows(struct PokemonDebugMenu *data) +{ + LoadSpritePalette(&sSpritePalette_Arrow); + data->modifyArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X, MODIFY_DIGITS_ARROW1_Y, 0); + data->modifyArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X, MODIFY_DIGITS_ARROW2_Y, 0); + gSprites[data->modifyArrows.arrowSpriteId[1]].animNum = 1; + + data->modifyArrows.minValue = 1; + data->modifyArrows.maxValue = NUM_SPECIES - 1; + data->modifyArrows.maxDigits = 4; + data->modifyArrows.modifiedValPtr = &data->currentmonId; + data->modifyArrows.typeOfVal = VAL_U16; + data->modifyArrows.currValue = data->currentmonId; + + data->modifyArrows.currentDigit = 0; + ValueToCharDigits(data->modifyArrows.charDigits, data->modifyArrows.currValue, data->modifyArrows.maxDigits); +} + +static bool32 TryMoveDigit(struct PokemonDebugModifyArrows *modArrows, bool32 moveUp) +{ + s32 i; + u8 charDigits[MODIFY_DIGITS_MAX]; + u32 newValue; + + for (i = 0; i < MODIFY_DIGITS_MAX; i++) + charDigits[i] = modArrows->charDigits[i]; + + if (moveUp) + { + if (charDigits[modArrows->currentDigit] == CHAR_9) + { + charDigits[modArrows->currentDigit] = CHAR_0; + for (i = modArrows->currentDigit - 1; i >= 0; i--) + { + if (charDigits[i] == CHAR_9) + charDigits[i] = CHAR_0; + else + { + charDigits[i]++; + break; + } + } + } + else + charDigits[modArrows->currentDigit]++; + } + else + { + if (charDigits[modArrows->currentDigit] == CHAR_0) + { + charDigits[modArrows->currentDigit] = CHAR_9; + + for (i = modArrows->currentDigit - 1; i >= 0; i--) + { + if (charDigits[i] == CHAR_0) + charDigits[i] = CHAR_9; + else + { + charDigits[i]--; + break; + } + } + } + + else + charDigits[modArrows->currentDigit]--; + } + + newValue = CharDigitsToValue(charDigits, modArrows->maxDigits); + if (newValue > modArrows->maxValue || newValue < modArrows->minValue) + { + return FALSE; + } + else + { + modArrows->currValue = newValue; + for (i = 0; i < MODIFY_DIGITS_MAX; i++) + modArrows->charDigits[i] = charDigits[i]; + return TRUE; + } +} + +static void UpdateBattlerValue(struct PokemonDebugMenu *data) +{ + u32 i; + switch (data->modifyArrows.typeOfVal) + { + case VAL_U16: + *(u16*)(data->modifyArrows.modifiedValPtr) = data->modifyArrows.currValue; + break; + } +} + +// ******************************* +// Main functions +void CB2_Debug_Pokemon(void) +{ + u8 taskId; + const struct CompressedSpritePalette *palette; + struct PokemonDebugMenu *data; + + switch (gMain.state) + { + case 0: + default: + SetVBlankCallback(NULL); + FreeMonSpritesGfx(); + ResetBGs_Debug_Menu(0); + DmaFillLarge16(3, 0, (u8 *)VRAM, VRAM_SIZE, 0x1000) + DmaClear32(3, OAM, OAM_SIZE); + DmaClear16(3, PLTT, PLTT_SIZE); + gMain.state = 1; + break; + case 1: + ScanlineEffect_Stop(); + ResetTasks(); + ResetSpriteData(); + ResetPaletteFade(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 8; + ResetAllPicSprites(); + gMain.state++; + break; + case 2: + AllocateMonSpritesGfx(); + + LoadPalette(sBgColor, 0, 2); + LoadMonIconPalettes(); + //LoadPalette(GetOverworldTextboxPalettePtr(), 0xf0, 16); + + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ShowBg(0); + ShowBg(1); + + //input task handler + taskId = CreateTask(Handle_Input_Debug_Pokemon, 0); + + data = AllocZeroed(sizeof(struct PokemonDebugMenu)); + SetStructPtr(taskId, data); + + data->currentmonId = 1; + //data->currentmonWindowId = AddWindow(&sCurrentTitleTemplate); + PutWindowTilemap(data->currentmonWindowId); + PrintOnCurrentMonWindow(data->currentmonWindowId, data->currentmonId); + + data->InstructionsWindowId = AddWindow(&sDebugPokemonInstructionsTemplate); + PutWindowTilemap(data->InstructionsWindowId); + PrintInstructionsOnWindow(data->InstructionsWindowId); + + HandleLoadSpecialPokePic(&gMonFrontPicTable[data->currentmonId], gMonSpritesGfxPtr->sprites.ptr[1], data->currentmonId, 0); + data->isshiny = DEBUG_MON_NORMAL; + palette = GetMonSpritePalStructFromOtIdPersonality(data->currentmonId, 0, data->isshiny); + LoadCompressedSpritePalette(palette); + SetMultiuseSpriteTemplateToPokemon(data->currentmonId, 1); + gMultiuseSpriteTemplate.paletteTag = palette->tag; + data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X + 32, DEBUG_MON_Y + 40, 0); + gSprites[data->frontspriteId].callback = SpriteCallbackDummy; + gSprites[data->frontspriteId].oam.priority = 0; + + HandleLoadSpecialPokePic(&gMonBackPicTable[data->currentmonId], gMonSpritesGfxPtr->sprites.ptr[2], data->currentmonId, 0); + palette = GetMonSpritePalStructFromOtIdPersonality(data->currentmonId, 0, data->isshiny); + LoadCompressedSpritePalette(palette); + SetMultiuseSpriteTemplateToPokemon(data->currentmonId, 2); + gMultiuseSpriteTemplate.paletteTag = palette->tag; + data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 40, 0); + gSprites[data->backspriteId].callback = SpriteCallbackDummy; + gSprites[data->backspriteId].oam.priority = 0; + + //Icon Sprite + data->iconspriteId = CreateMonIcon(data->currentmonId, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isshiny); + gSprites[data->iconspriteId].oam.priority = 0; + + //Modify Arrows + data->modifyWindowId = AddWindow(&sModifyWindowTemplate); + PutWindowTilemap(data->modifyWindowId); + CopyWindowToVram(data->modifyWindowId, 3); + SetUpModifyArrows(data); + PrintDigitChars(data); + gMain.state++; + break; + case 3: + EnableInterrupts(1); + SetVBlankCallback(VBlankCB); + SetMainCallback2(CB2_Debug_Runner); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x80); + break; + } +} + +static void CB2_Debug_Runner(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void ResetBGs_Debug_Menu(u16 a) +{ + if (!(a & DISPCNT_BG0_ON)) + { + ClearGpuRegBits(0, DISPCNT_BG0_ON); + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + } + if (!(a & DISPCNT_BG1_ON)) + { + ClearGpuRegBits(0, DISPCNT_BG1_ON); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + } + if (!(a & DISPCNT_BG2_ON)) + { + ClearGpuRegBits(0, DISPCNT_BG2_ON); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + } + if (!(a & DISPCNT_BG3_ON)) + { + ClearGpuRegBits(0, DISPCNT_BG3_ON); + SetGpuReg(REG_OFFSET_BG3CNT, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); + } + if (!(a & DISPCNT_OBJ_ON)) + { + ClearGpuRegBits(0, DISPCNT_OBJ_ON); + ResetSpriteData(); + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 8; + } +} + +static void Handle_Input_Debug_Pokemon(u8 taskId) +{ + struct PokemonDebugMenu *data = GetStructPtr(taskId); + struct Sprite *Frontsprite = &gSprites[data->frontspriteId]; + struct Sprite *Backsprite = &gSprites[data->backspriteId]; + + if (JOY_NEW(L_BUTTON)) + { + LaunchAnimationTaskForBackSprite(Backsprite, GetSpeciesBackAnimSet(data->currentmonId)); + } + else if (JOY_NEW(R_BUTTON)) + { + if (HasTwoFramesAnimation(data->currentmonId)) + StartSpriteAnim(Frontsprite, 1); + BattleAnimateFrontSprite(Frontsprite, data->currentmonId, TRUE, 1); + } + else if (JOY_NEW(A_BUTTON)) + { + if( data->isshiny == 9) + { + data->isshiny = DEBUG_MON_SHINY; + PlaySE(SE_SHINY); + } + else + { + data->isshiny = DEBUG_MON_NORMAL; + } + ReloadPokemonSprites(data); + + } + else if (JOY_NEW(B_BUTTON)) + { + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + gTasks[taskId].func = Exit_Debug_Pokemon; + PlaySE(SE_PC_OFF); + } + else if (JOY_NEW(START_BUTTON)) + { + PlayCryInternal(data->currentmonId, 0, 120, 10, 0); + } + else if (JOY_NEW(DPAD_DOWN)) // || gMain.heldKeys & DPAD_DOWN) + { + if (TryMoveDigit(&data->modifyArrows, FALSE)) + { + PrintDigitChars(data); + UpdateBattlerValue(data); + ReloadPokemonSprites(data); + } + + PlaySE(SE_DEX_SCROLL); + + while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); + } + else if (JOY_NEW(DPAD_UP)) // || gMain.heldKeys & DPAD_UP) + { + if (TryMoveDigit(&data->modifyArrows, TRUE)) + { + PrintDigitChars(data); + UpdateBattlerValue(data); + ReloadPokemonSprites(data); + } + + PlaySE(SE_DEX_SCROLL); + + } + else if (JOY_NEW(DPAD_LEFT)) // || gMain.heldKeys & DPAD_LEFT) + { + if (data->modifyArrows.currentDigit != 0) + { + data->modifyArrows.currentDigit--; + gSprites[data->modifyArrows.arrowSpriteId[0]].x2 -= 6; + gSprites[data->modifyArrows.arrowSpriteId[1]].x2 -= 6; + } + } + else if (JOY_NEW(DPAD_RIGHT)) // || gMain.heldKeys & DPAD_RIGHT) + { + if (data->modifyArrows.currentDigit != (data->modifyArrows.maxDigits - 1)) + { + data->modifyArrows.currentDigit++; + gSprites[data->modifyArrows.arrowSpriteId[0]].x2 += 6; + gSprites[data->modifyArrows.arrowSpriteId[1]].x2 += 6; + } + } +} + +static void ReloadPokemonSprites(struct PokemonDebugMenu *data) +{ + const struct CompressedSpritePalette *palette; + + DestroySprite(&gSprites[data->frontspriteId]); + DestroySprite(&gSprites[data->backspriteId]); + DestroySprite(&gSprites[data->iconspriteId]); + + FreeMonSpritesGfx(); + ResetSpriteData(); + ResetPaletteFade(); + FreeAllSpritePalettes(); + ResetAllPicSprites(); + AllocateMonSpritesGfx(); + + FreeAllSpritePalettes(); + FreeMonIconPalettes(); + + LoadMonIconPalettes(); + + HandleLoadSpecialPokePic(&gMonFrontPicTable[data->currentmonId], gMonSpritesGfxPtr->sprites.ptr[1], data->currentmonId, 0); + palette = GetMonSpritePalStructFromOtIdPersonality(data->currentmonId, 0, data->isshiny); + LoadCompressedSpritePalette(palette); + SetMultiuseSpriteTemplateToPokemon(data->currentmonId, 1); + gMultiuseSpriteTemplate.paletteTag = palette->tag; + data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X + 32, DEBUG_MON_Y + 40, 0); + gSprites[data->frontspriteId].callback = SpriteCallbackDummy; + gSprites[data->frontspriteId].oam.priority = 0; + + HandleLoadSpecialPokePic(&gMonBackPicTable[data->currentmonId], gMonSpritesGfxPtr->sprites.ptr[2], data->currentmonId, 0); + palette = GetMonSpritePalStructFromOtIdPersonality(data->currentmonId, 0, data->isshiny); + LoadCompressedSpritePalette(palette); + SetMultiuseSpriteTemplateToPokemon(data->currentmonId, 2); + gMultiuseSpriteTemplate.paletteTag = palette->tag; + data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 40, 0); + gSprites[data->backspriteId].callback = SpriteCallbackDummy; + gSprites[data->backspriteId].oam.priority = 0; + + //Icon Sprite + data->iconspriteId = CreateMonIcon(data->currentmonId, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isshiny); + gSprites[data->iconspriteId].oam.priority = 0; + + //Modify Arrows + LoadSpritePalette(&sSpritePalette_Arrow); + data->modifyArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW1_Y, 0); + data->modifyArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW2_Y, 0); + gSprites[data->modifyArrows.arrowSpriteId[1]].animNum = 1; +} + +static void Exit_Debug_Pokemon(u8 taskId) +{ + if (!gPaletteFade.active) + { + struct PokemonDebugMenu *data = GetStructPtr(taskId); + Free(data); + FreeMonSpritesGfx(); + DestroyTask(taskId); + SetMainCallback2(CB2_ReturnToField); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); + } +} diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 528a0e52d2..149e93091a 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -181,7 +181,7 @@ static const struct SpriteFrameImage sPicTable_Arrow[] = obj_frame_tiles(sArrowRight_Gfx) }; -static const struct SpritePalette sSpritePalette_Arrow = +const struct SpritePalette sSpritePalette_Arrow = { sArrow_Pal, PALTAG_ARROW }; @@ -217,7 +217,7 @@ static const union AnimCmd *const sAnims_Arrow[] = [ARROW_RIGHT] = sAnim_Arrow_Right, }; -static const struct SpriteTemplate sSpriteTemplate_Arrow = +const struct SpriteTemplate sSpriteTemplate_Arrow = { .tileTag = 0xFFFF, .paletteTag = PALTAG_ARROW, From b0f8408fb6b8689786e6045836232cc8fe63c55e Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 30 Nov 2021 02:29:33 +0100 Subject: [PATCH 23/95] added gender based sprites, added textbox line, adjusted sprite offset to match line --- include/decompress.h | 1 + src/decompress.c | 37 +++++ src/pokemon_debug.c | 333 +++++++++++++++++++++++++++++++++++++++---- 3 files changed, 340 insertions(+), 31 deletions(-) diff --git a/include/decompress.h b/include/decompress.h index 81f1425010..0d5cb3b3d3 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -21,6 +21,7 @@ void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffe void DecompressPicFromTableGender(void* buffer, s32 species, u32 personality); void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); +void HandleLoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFemale); void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); diff --git a/src/decompress.c b/src/decompress.c index 4d917e8d6a..f2a0884a6c 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -113,6 +113,43 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 DrawSpindaSpots(species, personality, dest, isFrontPic); } +static void LoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic, bool8 isFemale) +{ + if (species == SPECIES_UNOWN) + { + u32 id = GetUnownSpeciesId(personality); + + if (!isFrontPic) + LZ77UnCompWram(gMonBackPicTable[id].data, dest); + else + LZ77UnCompWram(gMonFrontPicTable[id].data, dest); + } + else if (species > NUM_SPECIES) // is species unknown? draw the ? icon + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + else if (SpeciesHasGenderDifference[species] && isFemale) + { + if (isFrontPic) + LZ77UnCompWram(gMonFrontPicTableFemale[species].data, dest); + else + LZ77UnCompWram(gMonBackPicTableFemale[species].data, dest); + } + else + LZ77UnCompWram(src->data, dest); + + DrawSpindaSpots(species, personality, dest, isFrontPic); +} +void HandleLoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFemale) +{ + bool8 isFrontPic; + + if (src == &gMonFrontPicTable[species]) + isFrontPic = TRUE; // frontPic + else + isFrontPic = FALSE; // backPic + + LoadSpecialPokePicCustom(src, dest, species, personality, isFrontPic, isFemale); +} + void Unused_LZDecompressWramIndirect(const void **src, void *dest) { LZ77UnCompWram(*src, dest); diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 3d3213034a..d6ca592645 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -1,6 +1,7 @@ //Credits: Gamer2020, AsparagusEduardo #include "global.h" #include "battle.h" +#include "battle_anim.h" #include "bg.h" #include "constants/rgb.h" #include "constants/songs.h" @@ -47,6 +48,11 @@ #define MODIFY_DIGITS_ARROW1_Y 12 #define MODIFY_DIGITS_ARROW2_Y 36 +#define GENDER_MALE 0 +#define GENDER_FEMALE 1 +#define MON_PIC_BACK 0 +#define MON_PIC_FRONT 1 + static const u16 sBgColor[] = {RGB_WHITE}; //Structs @@ -71,12 +77,15 @@ struct PokemonDebugMenu u8 frontspriteId; u8 backspriteId; u8 iconspriteId; - u8 isshiny; + bool8 isShiny; + u8 gender; struct PokemonDebugModifyArrows modifyArrows; u8 modifyWindowId; + u8 messageBoxWindowId; }; //WindowTemplates +/* static const struct WindowTemplate sCurrentTitleTemplate = { .bg = 0, @@ -87,6 +96,7 @@ static const struct WindowTemplate sCurrentTitleTemplate = .paletteNum = 0xF, .baseBlock = 0x200 }; +*/ static const struct WindowTemplate sDebugPokemonInstructionsTemplate = { @@ -110,6 +120,17 @@ static const struct WindowTemplate sModifyWindowTemplate = .baseBlock = 0x200 }; +static const struct WindowTemplate sPokemonDebugMsgBoxWindowTemplate = +{ + .bg = 0, + .tilemapLeft = 3, + .tilemapTop = 14, + .width = 11, + .height = 1, + .paletteNum = 0, + .baseBlock = 0x100 +}; + //Function declarations static void PrintDigitChars(struct PokemonDebugMenu *data); static void SetUpModifyArrows(struct PokemonDebugMenu *data); @@ -143,6 +164,7 @@ static void PadString(const u8 *src, u8 *dst) dst[i] = EOS; } +/* static void PrintOnCurrentMonWindow(u8 windowId, u16 monId) { u8 text[POKEMON_NAME_LENGTH + 10]; @@ -160,6 +182,7 @@ static void PrintOnCurrentMonWindow(u8 windowId, u16 monId) AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); CopyWindowToVram(windowId, 3); } +*/ static void PrintInstructionsOnWindow(u8 windowId) { @@ -193,16 +216,26 @@ static void SetStructPtr(u8 taskId, void *ptr) static void PrintDigitChars(struct PokemonDebugMenu *data) { s32 i; + u16 species = data->modifyArrows.currValue; u8 text[MODIFY_DIGITS_MAX + POKEMON_NAME_LENGTH + 4]; for (i = 0; i < data->modifyArrows.maxDigits; i++) text[i] = data->modifyArrows.charDigits[i]; - text[i] = CHAR_SPACE; - text[i + 1] = CHAR_HYPHEN; - text[i + 2] = CHAR_SPACE; + text[i++] = CHAR_SPACE; + text[i++] = CHAR_HYPHEN; - StringCopy(&text[i + 3], gSpeciesNames[data->modifyArrows.currValue]); + if (SpeciesHasGenderDifference[species]) + { + if (data->gender == GENDER_MALE) + text[i++] = CHAR_MALE; + else + text[i++] = CHAR_FEMALE; + text[i++] = CHAR_HYPHEN; + } + + text[i++] = CHAR_SPACE; + StringCopy(&text[i], gSpeciesNames[species]); FillWindowPixelBuffer(data->modifyWindowId, 0x11); AddTextPrinterParameterized(data->modifyWindowId, 1, text, 3, 0, 0, NULL); @@ -342,6 +375,215 @@ static void UpdateBattlerValue(struct PokemonDebugMenu *data) } } +//Sprite functions +static const struct CompressedSpritePalette *GetMonSpritePalStructCustom(u16 species, u8 gender, bool8 isShiny) +{ + if (isShiny) + { + if (SpeciesHasGenderDifference[species] && gender == GENDER_FEMALE) + return &gMonShinyPaletteTableFemale[species]; + else + return &gMonShinyPaletteTable[species]; + } + else + { + if (SpeciesHasGenderDifference[species] && gender == GENDER_FEMALE) + return &gMonPaletteTableFemale[species]; + else + return &gMonPaletteTable[species]; + } +} + +/* +// One entry for each of the four Castform forms. +extern const struct MonCoords gCastformFrontSpriteCoords[]; +static const u8 sCastformElevations[] = +{ + 13, // NORMAL + 14, // SUN + 13, // RAIN + 13, // HAIL +}; +// Const rom data +static const struct UCoords8 sBattlerCoords[][4] = +{ + { + { 72, 80 }, + { 176, 40 }, + { 48, 40 }, + { 112, 80 }, + }, + { + { 32, 80 }, + { 200, 40 }, + { 90, 88 }, + { 152, 32 }, + }, +}; +static u8 GetBattlerYDeltaCustom(u8 pic_type, u16 species) +{ + u32 personality; + u8 ret; + u16 coordSpecies; + + if (pic_type == MON_PIC_BACK) + { + if (species == SPECIES_UNOWN) + { + //coordSpecies = GetUnownSpeciesId(personality); + //ret = gMonBackPicCoords[coordSpecies].y_offset; + } + else if (species == SPECIES_CASTFORM) + ret = 0; //sCastformBackSpriteYCoords[0]]; //all of them are 0??? + else if (species > NUM_SPECIES) + ret = gMonBackPicCoords[0].y_offset; + else + ret = gMonBackPicCoords[species].y_offset; + } + else + { + if (species == SPECIES_UNOWN) + { + //coordSpecies = GetUnownSpeciesId(personality); + //ret = gMonFrontPicCoords[coordSpecies].y_offset; + } + else if (species == SPECIES_CASTFORM) + ret = gCastformFrontSpriteCoords[0].y_offset; + else if (species > NUM_SPECIES) + ret = gMonFrontPicCoords[0].y_offset; + else + ret = gMonFrontPicCoords[species].y_offset; + } + return ret; +} +static u8 GetBattlerElevationCustom(u8 pic_type, u16 species) +{ + u8 ret = 0; + if (pic_type == MON_PIC_FRONT) + { + if (species == SPECIES_CASTFORM) + ret = sCastformElevations[0]; + else if (species > NUM_SPECIES) + ret = gEnemyMonElevation[0]; + else + ret = gEnemyMonElevation[species]; + } + return ret; +} +u8 GetBattlerSpriteFinal_YCustom(u8 pic_type, u16 species, bool8 a3) +{ + u16 offset; + u8 y; + + if (pic_type == MON_PIC_BACK) + offset = GetBattlerYDeltaCustom(pic_type, species); + else + { + offset = GetBattlerYDeltaCustom(pic_type, species); + offset -= GetBattlerElevationCustom(pic_type, species); + } + y = offset + sBattlerCoords[0][pic_type].y; + if (a3) + { + if (pic_type == MON_PIC_BACK) + y += 8; + if (y > 104) + y = 104; + } + return y; +} +static u8 GetBattlerSpriteCoordCustom(u16 species, u8 pic_type, u8 coordType) +{ + u8 retVal; + + switch (coordType) + { + case BATTLER_COORD_X: + case BATTLER_COORD_X_2: + retVal = sBattlerCoords[0][pic_type].x; + break; + case BATTLER_COORD_Y: + retVal = sBattlerCoords[0][pic_type].y; + break; + case BATTLER_COORD_Y_PIC_OFFSET: + retVal = GetBattlerSpriteFinal_YCustom(pic_type, species, TRUE); + break; + case BATTLER_COORD_Y_PIC_OFFSET_DEFAULT: + retVal = GetBattlerSpriteFinal_YCustom(pic_type, species, FALSE); + break; + } + + return retVal; +} +static s16 GetBattlerSpriteCoordAttrCustom(u16 species, u8 pic_type, u8 attr, bool8 transformSpecies) +{ + u32 personality; + int ret = 0; + const struct MonCoords *coords; + + + if (pic_type == MON_PIC_BACK) + { + if (!transformSpecies) + //personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); + else + //personality = gTransformedPersonalities[battlerId]; + + if (species == SPECIES_UNOWN) + { + //species = GetUnownSpeciesId(personality); + coords = &gMonBackPicCoords[species]; + } + else if (species > NUM_SPECIES) + coords = &gMonBackPicCoords[0]; + else + coords = &gMonBackPicCoords[species]; + } + else + { + if (!transformSpecies) + //personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); + else + //personality = gTransformedPersonalities[battlerId]; + + if (species == SPECIES_UNOWN) + { + //species = GetUnownSpeciesId(personality); + coords = &gMonFrontPicCoords[species]; + } + else if (species == SPECIES_CASTFORM) + coords = &gCastformFrontSpriteCoords[0]; + else if (species > NUM_SPECIES) + coords = &gMonFrontPicCoords[0]; + else + coords = &gMonFrontPicCoords[species]; + } + + + switch (attr) + { + case BATTLER_COORD_ATTR_HEIGHT: + return (coords->size & 0xf) * 8; + case BATTLER_COORD_ATTR_WIDTH: + return (coords->size >> 4) * 8; + case BATTLER_COORD_ATTR_LEFT: + return GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_X_2) - ((coords->size >> 4) * 4); + case BATTLER_COORD_ATTR_RIGHT: + return GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_X_2) + ((coords->size >> 4) * 4); + case BATTLER_COORD_ATTR_TOP: + return GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_Y_PIC_OFFSET) - ((coords->size & 0xf) * 4); + case BATTLER_COORD_ATTR_BOTTOM: + return GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_Y_PIC_OFFSET) + ((coords->size & 0xf) * 4); + case BATTLER_COORD_ATTR_RAW_BOTTOM: + ret = GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_Y) + 31; + return ret - coords->y_offset; + default: + return 0; + } + +} +*/ + // ******************************* // Main functions void CB2_Debug_Pokemon(void) @@ -349,6 +591,8 @@ void CB2_Debug_Pokemon(void) u8 taskId; const struct CompressedSpritePalette *palette; struct PokemonDebugMenu *data; + s16 offset_x, offset_y; + u16 species; switch (gMain.state) { @@ -390,35 +634,41 @@ void CB2_Debug_Pokemon(void) SetStructPtr(taskId, data); data->currentmonId = 1; - //data->currentmonWindowId = AddWindow(&sCurrentTitleTemplate); + species = data->currentmonId; + /* + data->currentmonWindowId = AddWindow(&sCurrentTitleTemplate); PutWindowTilemap(data->currentmonWindowId); PrintOnCurrentMonWindow(data->currentmonWindowId, data->currentmonId); + */ data->InstructionsWindowId = AddWindow(&sDebugPokemonInstructionsTemplate); PutWindowTilemap(data->InstructionsWindowId); PrintInstructionsOnWindow(data->InstructionsWindowId); - HandleLoadSpecialPokePic(&gMonFrontPicTable[data->currentmonId], gMonSpritesGfxPtr->sprites.ptr[1], data->currentmonId, 0); - data->isshiny = DEBUG_MON_NORMAL; - palette = GetMonSpritePalStructFromOtIdPersonality(data->currentmonId, 0, data->isshiny); + HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->gender); + data->isShiny = FALSE; + data->gender = GENDER_MALE; + palette = GetMonSpritePalStructCustom(species, data->gender, data->isShiny); LoadCompressedSpritePalette(palette); - SetMultiuseSpriteTemplateToPokemon(data->currentmonId, 1); + SetMultiuseSpriteTemplateToPokemon(species, 1); gMultiuseSpriteTemplate.paletteTag = palette->tag; data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X + 32, DEBUG_MON_Y + 40, 0); gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; - HandleLoadSpecialPokePic(&gMonBackPicTable[data->currentmonId], gMonSpritesGfxPtr->sprites.ptr[2], data->currentmonId, 0); - palette = GetMonSpritePalStructFromOtIdPersonality(data->currentmonId, 0, data->isshiny); + HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->gender); + palette = GetMonSpritePalStructCustom(species, data->gender, data->isShiny); LoadCompressedSpritePalette(palette); - SetMultiuseSpriteTemplateToPokemon(data->currentmonId, 2); + SetMultiuseSpriteTemplateToPokemon(species, 2); gMultiuseSpriteTemplate.paletteTag = palette->tag; - data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 40, 0); + //offset_y = GetBattlerSpriteCoordAttrCustom(species, MON_PIC_BACK, BATTLER_COORD_ATTR_BOTTOM, FALSE); + offset_y = gMonBackPicCoords[species].y_offset; + data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 30 + offset_y, 0); gSprites[data->backspriteId].callback = SpriteCallbackDummy; gSprites[data->backspriteId].oam.priority = 0; //Icon Sprite - data->iconspriteId = CreateMonIcon(data->currentmonId, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isshiny); + data->iconspriteId = CreateMonIcon(species, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isShiny); gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows @@ -427,6 +677,13 @@ void CB2_Debug_Pokemon(void) CopyWindowToVram(data->modifyWindowId, 3); SetUpModifyArrows(data); PrintDigitChars(data); + + //MessageBox line + data->messageBoxWindowId = AddWindow(&sPokemonDebugMsgBoxWindowTemplate); + PutWindowTilemap(data->messageBoxWindowId); + CopyWindowToVram(data->messageBoxWindowId, 3); + FillWindowPixelRect(data->messageBoxWindowId, PIXEL_FILL(0x1), 0, 0, 90, 4); + gMain.state++; break; case 3: @@ -503,15 +760,11 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) } else if (JOY_NEW(A_BUTTON)) { - if( data->isshiny == 9) - { - data->isshiny = DEBUG_MON_SHINY; + data->isShiny = !data->isShiny; + + if(data->isShiny) PlaySE(SE_SHINY); - } - else - { - data->isshiny = DEBUG_MON_NORMAL; - } + ReloadPokemonSprites(data); } @@ -525,10 +778,22 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) { PlayCryInternal(data->currentmonId, 0, 120, 10, 0); } + else if (JOY_NEW(SELECT_BUTTON) && SpeciesHasGenderDifference[data->currentmonId]) + { + if (data->gender == GENDER_MALE) + data->gender = GENDER_FEMALE; + else + data->gender = GENDER_MALE; + PrintDigitChars(data); + UpdateBattlerValue(data); + ReloadPokemonSprites(data); + while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); + } else if (JOY_NEW(DPAD_DOWN)) // || gMain.heldKeys & DPAD_DOWN) { if (TryMoveDigit(&data->modifyArrows, FALSE)) { + data->gender = GENDER_MALE; PrintDigitChars(data); UpdateBattlerValue(data); ReloadPokemonSprites(data); @@ -542,6 +807,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) { if (TryMoveDigit(&data->modifyArrows, TRUE)) { + data->gender = GENDER_MALE; PrintDigitChars(data); UpdateBattlerValue(data); ReloadPokemonSprites(data); @@ -572,6 +838,9 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) static void ReloadPokemonSprites(struct PokemonDebugMenu *data) { + s16 offset_x = 0; + s16 offset_y = 0; + u16 species = data->currentmonId; const struct CompressedSpritePalette *palette; DestroySprite(&gSprites[data->frontspriteId]); @@ -590,26 +859,28 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) LoadMonIconPalettes(); - HandleLoadSpecialPokePic(&gMonFrontPicTable[data->currentmonId], gMonSpritesGfxPtr->sprites.ptr[1], data->currentmonId, 0); - palette = GetMonSpritePalStructFromOtIdPersonality(data->currentmonId, 0, data->isshiny); + HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->gender); + palette = GetMonSpritePalStructCustom(species, data->gender, data->isShiny); LoadCompressedSpritePalette(palette); - SetMultiuseSpriteTemplateToPokemon(data->currentmonId, 1); + SetMultiuseSpriteTemplateToPokemon(species, 1); gMultiuseSpriteTemplate.paletteTag = palette->tag; data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X + 32, DEBUG_MON_Y + 40, 0); gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; - HandleLoadSpecialPokePic(&gMonBackPicTable[data->currentmonId], gMonSpritesGfxPtr->sprites.ptr[2], data->currentmonId, 0); - palette = GetMonSpritePalStructFromOtIdPersonality(data->currentmonId, 0, data->isshiny); + HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->gender); + palette = GetMonSpritePalStructCustom(species, data->gender, data->isShiny); LoadCompressedSpritePalette(palette); - SetMultiuseSpriteTemplateToPokemon(data->currentmonId, 2); + SetMultiuseSpriteTemplateToPokemon(species, 2); gMultiuseSpriteTemplate.paletteTag = palette->tag; - data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 40, 0); + //offset_y = GetBattlerSpriteCoordAttrCustom(species, MON_PIC_BACK, BATTLER_COORD_ATTR_BOTTOM, FALSE); + offset_y = gMonBackPicCoords[species].y_offset; + data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 30 + offset_y, 0); gSprites[data->backspriteId].callback = SpriteCallbackDummy; gSprites[data->backspriteId].oam.priority = 0; //Icon Sprite - data->iconspriteId = CreateMonIcon(data->currentmonId, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isshiny); + data->iconspriteId = CreateMonIcon(species, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isShiny); gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows From 50e95878e9f580a92af571772f505196066e3d26 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 30 Nov 2021 11:16:30 +0100 Subject: [PATCH 24/95] added Select button text, added gender based icons, imrpoved code --- include/pokemon_icon.h | 1 + src/decompress.c | 3 ++ src/pokemon_debug.c | 67 +++++++++++++++++++++++------------------- src/pokemon_icon.c | 51 ++++++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+), 31 deletions(-) diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 3ca9b741f0..917d0545ff 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -19,6 +19,7 @@ u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s1 void FreeMonIconPalette(u16 species); void FreeAndDestroyMonIconSprite(struct Sprite *sprite); u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); +u8 CreateMonIconCustom(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool8 isFemale, bool8 isShiny); u8 UpdateMonIconFrame(struct Sprite *sprite); void LoadMonIconPalette(u16 species); void sub_80D328C(struct Sprite *sprite); diff --git a/src/decompress.c b/src/decompress.c index f2a0884a6c..722e6574a6 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -3,6 +3,7 @@ #include "data.h" #include "decompress.h" #include "pokemon.h" +#include "pokemon_debug.h" #include "text.h" EWRAM_DATA ALIGNED(4) u8 gDecompressionBuffer[0x4000] = {0}; @@ -113,6 +114,7 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 DrawSpindaSpots(species, personality, dest, isFrontPic); } +#ifdef POKEMON_DEBUG static void LoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic, bool8 isFemale) { if (species == SPECIES_UNOWN) @@ -149,6 +151,7 @@ void HandleLoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, voi LoadSpecialPokePicCustom(src, dest, species, personality, isFrontPic, isFemale); } +#endif void Unused_LZDecompressWramIndirect(const void **src, void *dest) { diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index d6ca592645..32793b32f6 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -38,7 +38,7 @@ #define DEBUG_MON_Y 14 #define DEBUG_MON_BACK_X 32 #define DEBUG_MON_BACK_Y 50 -#define DEBUG_ICON_X 148 +#define DEBUG_ICON_X 158 #define DEBUG_ICON_Y 90 #define DEBUG_MON_SHINY 0 #define DEBUG_MON_NORMAL 9 @@ -78,7 +78,7 @@ struct PokemonDebugMenu u8 backspriteId; u8 iconspriteId; bool8 isShiny; - u8 gender; + bool8 isFemale; struct PokemonDebugModifyArrows modifyArrows; u8 modifyWindowId; u8 messageBoxWindowId; @@ -103,7 +103,7 @@ static const struct WindowTemplate sDebugPokemonInstructionsTemplate = .bg = 0, .tilemapLeft =1, .tilemapTop = 207, - .width = 14, + .width = 22, .height = 8, .paletteNum = 0xF, .baseBlock = 0x300 @@ -184,12 +184,18 @@ static void PrintOnCurrentMonWindow(u8 windowId, u16 monId) } */ -static void PrintInstructionsOnWindow(u8 windowId) +static void PrintInstructionsOnWindow(u8 windowId, struct PokemonDebugMenu *data) { - u8 text[] = _("A - Shiny START - Cry\nL - Back R - Front$"); + u8 text[] = _("A - Shiny START - Cry\nL - Back R - Front$"); + u8 textGender[] = _("A - Shiny START - Cry\nL - Back R - Front SEL - Gender$"); + u16 species = data->modifyArrows.currValue; + FillWindowPixelBuffer(windowId, 0x11); - AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); + if (SpeciesHasGenderDifference[species]) + AddTextPrinterParameterized(windowId, 1, textGender, 0, 0, 0, NULL); + else + AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); CopyWindowToVram(windowId, 3); } @@ -217,7 +223,7 @@ static void PrintDigitChars(struct PokemonDebugMenu *data) { s32 i; u16 species = data->modifyArrows.currValue; - u8 text[MODIFY_DIGITS_MAX + POKEMON_NAME_LENGTH + 4]; + u8 text[MODIFY_DIGITS_MAX + POKEMON_NAME_LENGTH + 8]; for (i = 0; i < data->modifyArrows.maxDigits; i++) text[i] = data->modifyArrows.charDigits[i]; @@ -227,10 +233,10 @@ static void PrintDigitChars(struct PokemonDebugMenu *data) if (SpeciesHasGenderDifference[species]) { - if (data->gender == GENDER_MALE) - text[i++] = CHAR_MALE; + if (data->isFemale) + text[i++] = CHAR_FEMALE; else - text[i++] = CHAR_FEMALE; + text[i++] = CHAR_MALE; text[i++] = CHAR_HYPHEN; } @@ -376,18 +382,18 @@ static void UpdateBattlerValue(struct PokemonDebugMenu *data) } //Sprite functions -static const struct CompressedSpritePalette *GetMonSpritePalStructCustom(u16 species, u8 gender, bool8 isShiny) +static const struct CompressedSpritePalette *GetMonSpritePalStructCustom(u16 species, bool8 isFemale, bool8 isShiny) { if (isShiny) { - if (SpeciesHasGenderDifference[species] && gender == GENDER_FEMALE) + if (SpeciesHasGenderDifference[species] && isFemale) return &gMonShinyPaletteTableFemale[species]; else return &gMonShinyPaletteTable[species]; } else { - if (SpeciesHasGenderDifference[species] && gender == GENDER_FEMALE) + if (SpeciesHasGenderDifference[species] && isFemale) return &gMonPaletteTableFemale[species]; else return &gMonPaletteTable[species]; @@ -643,12 +649,12 @@ void CB2_Debug_Pokemon(void) data->InstructionsWindowId = AddWindow(&sDebugPokemonInstructionsTemplate); PutWindowTilemap(data->InstructionsWindowId); - PrintInstructionsOnWindow(data->InstructionsWindowId); + PrintInstructionsOnWindow(data->InstructionsWindowId, data); - HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->gender); + HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); data->isShiny = FALSE; - data->gender = GENDER_MALE; - palette = GetMonSpritePalStructCustom(species, data->gender, data->isShiny); + data->isFemale = FALSE; + palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); LoadCompressedSpritePalette(palette); SetMultiuseSpriteTemplateToPokemon(species, 1); gMultiuseSpriteTemplate.paletteTag = palette->tag; @@ -656,8 +662,8 @@ void CB2_Debug_Pokemon(void) gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; - HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->gender); - palette = GetMonSpritePalStructCustom(species, data->gender, data->isShiny); + HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); + palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); LoadCompressedSpritePalette(palette); SetMultiuseSpriteTemplateToPokemon(species, 2); gMultiuseSpriteTemplate.paletteTag = palette->tag; @@ -668,7 +674,7 @@ void CB2_Debug_Pokemon(void) gSprites[data->backspriteId].oam.priority = 0; //Icon Sprite - data->iconspriteId = CreateMonIcon(species, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isShiny); + data->iconspriteId = CreateMonIconCustom(species, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isShiny, data->isFemale, data->isShiny); gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows @@ -780,10 +786,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) } else if (JOY_NEW(SELECT_BUTTON) && SpeciesHasGenderDifference[data->currentmonId]) { - if (data->gender == GENDER_MALE) - data->gender = GENDER_FEMALE; - else - data->gender = GENDER_MALE; + data->isFemale = !data->isFemale; PrintDigitChars(data); UpdateBattlerValue(data); ReloadPokemonSprites(data); @@ -793,7 +796,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) { if (TryMoveDigit(&data->modifyArrows, FALSE)) { - data->gender = GENDER_MALE; + data->isFemale = FALSE; PrintDigitChars(data); UpdateBattlerValue(data); ReloadPokemonSprites(data); @@ -807,7 +810,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) { if (TryMoveDigit(&data->modifyArrows, TRUE)) { - data->gender = GENDER_MALE; + data->isFemale = FALSE; PrintDigitChars(data); UpdateBattlerValue(data); ReloadPokemonSprites(data); @@ -859,8 +862,10 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) LoadMonIconPalettes(); - HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->gender); - palette = GetMonSpritePalStructCustom(species, data->gender, data->isShiny); + PrintInstructionsOnWindow(data->InstructionsWindowId, data); + + HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); + palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); LoadCompressedSpritePalette(palette); SetMultiuseSpriteTemplateToPokemon(species, 1); gMultiuseSpriteTemplate.paletteTag = palette->tag; @@ -868,8 +873,8 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; - HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->gender); - palette = GetMonSpritePalStructCustom(species, data->gender, data->isShiny); + HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); + palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); LoadCompressedSpritePalette(palette); SetMultiuseSpriteTemplateToPokemon(species, 2); gMultiuseSpriteTemplate.paletteTag = palette->tag; @@ -880,7 +885,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) gSprites[data->backspriteId].oam.priority = 0; //Icon Sprite - data->iconspriteId = CreateMonIcon(species, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isShiny); + data->iconspriteId = CreateMonIconCustom(species, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isShiny, data->isFemale, data->isShiny); gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 2a872a9e45..ad5820ba13 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -2,6 +2,7 @@ #include "graphics.h" #include "mail.h" #include "palette.h" +#include "pokemon_debug.h" #include "pokemon_icon.h" #include "sprite.h" #include "data.h" @@ -22,6 +23,10 @@ struct MonIconSpriteTemplate // static functions static u8 CreateMonIconSprite(struct MonIconSpriteTemplate *, s16, s16, u8); +#ifdef POKEMON_DEBUG +static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale); +static const u8* GetMonIconTilesCustom(u16 species, bool8 isFemale); +#endif // .rodata @@ -2575,6 +2580,33 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u return spriteId; } +#ifdef POKEMON_DEBUG +u8 CreateMonIconCustom(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool8 isFemale, bool8 isShiny) +{ + u8 spriteId; + struct MonIconSpriteTemplate iconTemplate = + { + .oam = &sMonIconOamData, + .image = GetMonIconPtrCustom(species, personality, isFemale), + .anims = sMonIconAnims, + .affineAnims = sMonIconAffineAnims, + .callback = callback, + .paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndices[species], + }; + + if (species > NUM_SPECIES) + iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG; + else if (SpeciesHasGenderDifference[species] && isFemale) + iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndicesFemale[species]; + + spriteId = CreateMonIconSprite(&iconTemplate, x, y, subpriority); + + UpdateMonIconFrame(&gSprites[spriteId]); + + return spriteId; +} +#endif + u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) { u8 spriteId; @@ -2646,6 +2678,13 @@ const u8 *GetMonIconPtr(u16 species, u32 personality) return GetMonIconTiles(GetIconSpecies(species, personality), personality); } +#ifdef POKEMON_DEBUG +static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale) +{ + return GetMonIconTilesCustom(GetIconSpecies(species, personality), isFemale); +} +#endif + void FreeAndDestroyMonIconSprite(struct Sprite *sprite) { sub_80D328C(sprite); @@ -2715,6 +2754,18 @@ const u8* GetMonIconTiles(u16 species, u32 personality) return iconSprite; } +#ifdef POKEMON_DEBUG +static const u8* GetMonIconTilesCustom(u16 species, bool8 isFemale) +{ + const u8* iconSprite = gMonIconTable[species]; + if (SpeciesHasGenderDifference[species] && isFemale) + { + iconSprite = gMonIconTableFemale[species]; + } + return iconSprite; +} +#endif + void sub_80D304C(u16 offset) { s32 i; From c402a840b1f92e88a14bbdd14831eeb5441d30a6 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 30 Nov 2021 11:20:26 +0100 Subject: [PATCH 25/95] changed to P_ENABLE_DEBUG --- include/pokemon_debug.h | 2 +- src/decompress.c | 2 +- src/field_control_avatar.c | 4 ++-- src/pokemon_icon.c | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/pokemon_debug.h b/include/pokemon_debug.h index a1aae5e153..d70409a6b1 100644 --- a/include/pokemon_debug.h +++ b/include/pokemon_debug.h @@ -1,7 +1,7 @@ #ifndef GUARD_POKEMON_DEBUG_H #define GUARD_POKEMON_DEBUG_H -#define POKEMON_DEBUG +#define P_ENABLE_DEBUG void CB2_Debug_Pokemon(void); diff --git a/src/decompress.c b/src/decompress.c index 722e6574a6..ba5e4b8429 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -114,7 +114,7 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 DrawSpindaSpots(species, personality, dest, isFrontPic); } -#ifdef POKEMON_DEBUG +#ifdef P_ENABLE_DEBUG static void LoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic, bool8 isFemale) { if (species == SPECIES_UNOWN) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 66065681fc..c3fb5edd9d 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -132,7 +132,7 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) else if (heldKeys & DPAD_RIGHT) input->dpadDirection = DIR_EAST; - #ifdef POKEMON_DEBUG + #ifdef P_ENABLE_DEBUG if ((heldKeys & R_BUTTON) && input->pressedStartButton) { input->input_field_1_2 = TRUE; @@ -199,7 +199,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input) return TRUE; - #ifdef POKEMON_DEBUG + #ifdef P_ENABLE_DEBUG if (input->input_field_1_2) { //PlaySE(SE_WIN_OPEN); diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index ad5820ba13..0b7c3203cb 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -23,7 +23,7 @@ struct MonIconSpriteTemplate // static functions static u8 CreateMonIconSprite(struct MonIconSpriteTemplate *, s16, s16, u8); -#ifdef POKEMON_DEBUG +#ifdef P_ENABLE_DEBUG static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale); static const u8* GetMonIconTilesCustom(u16 species, bool8 isFemale); #endif @@ -2580,7 +2580,7 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u return spriteId; } -#ifdef POKEMON_DEBUG +#ifdef P_ENABLE_DEBUG u8 CreateMonIconCustom(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool8 isFemale, bool8 isShiny) { u8 spriteId; @@ -2678,7 +2678,7 @@ const u8 *GetMonIconPtr(u16 species, u32 personality) return GetMonIconTiles(GetIconSpecies(species, personality), personality); } -#ifdef POKEMON_DEBUG +#ifdef P_ENABLE_DEBUG static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale) { return GetMonIconTilesCustom(GetIconSpecies(species, personality), isFemale); @@ -2754,7 +2754,7 @@ const u8* GetMonIconTiles(u16 species, u32 personality) return iconSprite; } -#ifdef POKEMON_DEBUG +#ifdef P_ENABLE_DEBUG static const u8* GetMonIconTilesCustom(u16 species, bool8 isFemale) { const u8* iconSprite = gMonIconTable[species]; From dcf7dd6ce6c393983465c5be1d9b7f31793fa501 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 30 Nov 2021 12:28:13 +0100 Subject: [PATCH 26/95] small fix --- src/pokemon_debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 32793b32f6..d99ba34cc1 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -127,7 +127,7 @@ static const struct WindowTemplate sPokemonDebugMsgBoxWindowTemplate = .tilemapTop = 14, .width = 11, .height = 1, - .paletteNum = 0, + .paletteNum = 0xF, .baseBlock = 0x100 }; @@ -688,7 +688,7 @@ void CB2_Debug_Pokemon(void) data->messageBoxWindowId = AddWindow(&sPokemonDebugMsgBoxWindowTemplate); PutWindowTilemap(data->messageBoxWindowId); CopyWindowToVram(data->messageBoxWindowId, 3); - FillWindowPixelRect(data->messageBoxWindowId, PIXEL_FILL(0x1), 0, 0, 90, 4); + FillWindowPixelRect(data->messageBoxWindowId, PIXEL_FILL(0x2), 0, 0, 90, 4); gMain.state++; break; From cb1c753b637b5cdfcd08ef24c7f8c9cb22bb9b2c Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 30 Nov 2021 13:48:11 +0100 Subject: [PATCH 27/95] removed unused code --- src/pokemon_debug.c | 231 -------------------------------------------- 1 file changed, 231 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index d99ba34cc1..5c632ed610 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -85,19 +85,6 @@ struct PokemonDebugMenu }; //WindowTemplates -/* -static const struct WindowTemplate sCurrentTitleTemplate = -{ - .bg = 0, - .tilemapLeft =1, - .tilemapTop = 0, - .width = 14, - .height = 2, - .paletteNum = 0xF, - .baseBlock = 0x200 -}; -*/ - static const struct WindowTemplate sDebugPokemonInstructionsTemplate = { .bg = 0, @@ -164,26 +151,6 @@ static void PadString(const u8 *src, u8 *dst) dst[i] = EOS; } -/* -static void PrintOnCurrentMonWindow(u8 windowId, u16 monId) -{ - u8 text[POKEMON_NAME_LENGTH + 10]; - - text[0] = CHAR_0 + monId / 100; - text[1] = CHAR_0 + (monId % 100) / 10; - text[2] = CHAR_0 + (monId % 100) % 10; - text[3] = CHAR_SPACE; - text[4] = CHAR_HYPHEN; - text[5] = CHAR_SPACE; - - StringCopy(&text[6], gSpeciesNames[monId]); - - FillWindowPixelBuffer(windowId, 0x11); - AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); - CopyWindowToVram(windowId, 3); -} -*/ - static void PrintInstructionsOnWindow(u8 windowId, struct PokemonDebugMenu *data) { u8 text[] = _("A - Shiny START - Cry\nL - Back R - Front$"); @@ -400,196 +367,6 @@ static const struct CompressedSpritePalette *GetMonSpritePalStructCustom(u16 spe } } -/* -// One entry for each of the four Castform forms. -extern const struct MonCoords gCastformFrontSpriteCoords[]; -static const u8 sCastformElevations[] = -{ - 13, // NORMAL - 14, // SUN - 13, // RAIN - 13, // HAIL -}; -// Const rom data -static const struct UCoords8 sBattlerCoords[][4] = -{ - { - { 72, 80 }, - { 176, 40 }, - { 48, 40 }, - { 112, 80 }, - }, - { - { 32, 80 }, - { 200, 40 }, - { 90, 88 }, - { 152, 32 }, - }, -}; -static u8 GetBattlerYDeltaCustom(u8 pic_type, u16 species) -{ - u32 personality; - u8 ret; - u16 coordSpecies; - - if (pic_type == MON_PIC_BACK) - { - if (species == SPECIES_UNOWN) - { - //coordSpecies = GetUnownSpeciesId(personality); - //ret = gMonBackPicCoords[coordSpecies].y_offset; - } - else if (species == SPECIES_CASTFORM) - ret = 0; //sCastformBackSpriteYCoords[0]]; //all of them are 0??? - else if (species > NUM_SPECIES) - ret = gMonBackPicCoords[0].y_offset; - else - ret = gMonBackPicCoords[species].y_offset; - } - else - { - if (species == SPECIES_UNOWN) - { - //coordSpecies = GetUnownSpeciesId(personality); - //ret = gMonFrontPicCoords[coordSpecies].y_offset; - } - else if (species == SPECIES_CASTFORM) - ret = gCastformFrontSpriteCoords[0].y_offset; - else if (species > NUM_SPECIES) - ret = gMonFrontPicCoords[0].y_offset; - else - ret = gMonFrontPicCoords[species].y_offset; - } - return ret; -} -static u8 GetBattlerElevationCustom(u8 pic_type, u16 species) -{ - u8 ret = 0; - if (pic_type == MON_PIC_FRONT) - { - if (species == SPECIES_CASTFORM) - ret = sCastformElevations[0]; - else if (species > NUM_SPECIES) - ret = gEnemyMonElevation[0]; - else - ret = gEnemyMonElevation[species]; - } - return ret; -} -u8 GetBattlerSpriteFinal_YCustom(u8 pic_type, u16 species, bool8 a3) -{ - u16 offset; - u8 y; - - if (pic_type == MON_PIC_BACK) - offset = GetBattlerYDeltaCustom(pic_type, species); - else - { - offset = GetBattlerYDeltaCustom(pic_type, species); - offset -= GetBattlerElevationCustom(pic_type, species); - } - y = offset + sBattlerCoords[0][pic_type].y; - if (a3) - { - if (pic_type == MON_PIC_BACK) - y += 8; - if (y > 104) - y = 104; - } - return y; -} -static u8 GetBattlerSpriteCoordCustom(u16 species, u8 pic_type, u8 coordType) -{ - u8 retVal; - - switch (coordType) - { - case BATTLER_COORD_X: - case BATTLER_COORD_X_2: - retVal = sBattlerCoords[0][pic_type].x; - break; - case BATTLER_COORD_Y: - retVal = sBattlerCoords[0][pic_type].y; - break; - case BATTLER_COORD_Y_PIC_OFFSET: - retVal = GetBattlerSpriteFinal_YCustom(pic_type, species, TRUE); - break; - case BATTLER_COORD_Y_PIC_OFFSET_DEFAULT: - retVal = GetBattlerSpriteFinal_YCustom(pic_type, species, FALSE); - break; - } - - return retVal; -} -static s16 GetBattlerSpriteCoordAttrCustom(u16 species, u8 pic_type, u8 attr, bool8 transformSpecies) -{ - u32 personality; - int ret = 0; - const struct MonCoords *coords; - - - if (pic_type == MON_PIC_BACK) - { - if (!transformSpecies) - //personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); - else - //personality = gTransformedPersonalities[battlerId]; - - if (species == SPECIES_UNOWN) - { - //species = GetUnownSpeciesId(personality); - coords = &gMonBackPicCoords[species]; - } - else if (species > NUM_SPECIES) - coords = &gMonBackPicCoords[0]; - else - coords = &gMonBackPicCoords[species]; - } - else - { - if (!transformSpecies) - //personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PERSONALITY); - else - //personality = gTransformedPersonalities[battlerId]; - - if (species == SPECIES_UNOWN) - { - //species = GetUnownSpeciesId(personality); - coords = &gMonFrontPicCoords[species]; - } - else if (species == SPECIES_CASTFORM) - coords = &gCastformFrontSpriteCoords[0]; - else if (species > NUM_SPECIES) - coords = &gMonFrontPicCoords[0]; - else - coords = &gMonFrontPicCoords[species]; - } - - - switch (attr) - { - case BATTLER_COORD_ATTR_HEIGHT: - return (coords->size & 0xf) * 8; - case BATTLER_COORD_ATTR_WIDTH: - return (coords->size >> 4) * 8; - case BATTLER_COORD_ATTR_LEFT: - return GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_X_2) - ((coords->size >> 4) * 4); - case BATTLER_COORD_ATTR_RIGHT: - return GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_X_2) + ((coords->size >> 4) * 4); - case BATTLER_COORD_ATTR_TOP: - return GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_Y_PIC_OFFSET) - ((coords->size & 0xf) * 4); - case BATTLER_COORD_ATTR_BOTTOM: - return GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_Y_PIC_OFFSET) + ((coords->size & 0xf) * 4); - case BATTLER_COORD_ATTR_RAW_BOTTOM: - ret = GetBattlerSpriteCoordCustom(species, pic_type, BATTLER_COORD_Y) + 31; - return ret - coords->y_offset; - default: - return 0; - } - -} -*/ - // ******************************* // Main functions void CB2_Debug_Pokemon(void) @@ -627,7 +404,6 @@ void CB2_Debug_Pokemon(void) LoadPalette(sBgColor, 0, 2); LoadMonIconPalettes(); - //LoadPalette(GetOverworldTextboxPalettePtr(), 0xf0, 16); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); ShowBg(0); @@ -641,11 +417,6 @@ void CB2_Debug_Pokemon(void) data->currentmonId = 1; species = data->currentmonId; - /* - data->currentmonWindowId = AddWindow(&sCurrentTitleTemplate); - PutWindowTilemap(data->currentmonWindowId); - PrintOnCurrentMonWindow(data->currentmonWindowId, data->currentmonId); - */ data->InstructionsWindowId = AddWindow(&sDebugPokemonInstructionsTemplate); PutWindowTilemap(data->InstructionsWindowId); @@ -667,7 +438,6 @@ void CB2_Debug_Pokemon(void) LoadCompressedSpritePalette(palette); SetMultiuseSpriteTemplateToPokemon(species, 2); gMultiuseSpriteTemplate.paletteTag = palette->tag; - //offset_y = GetBattlerSpriteCoordAttrCustom(species, MON_PIC_BACK, BATTLER_COORD_ATTR_BOTTOM, FALSE); offset_y = gMonBackPicCoords[species].y_offset; data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 30 + offset_y, 0); gSprites[data->backspriteId].callback = SpriteCallbackDummy; @@ -878,7 +648,6 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) LoadCompressedSpritePalette(palette); SetMultiuseSpriteTemplateToPokemon(species, 2); gMultiuseSpriteTemplate.paletteTag = palette->tag; - //offset_y = GetBattlerSpriteCoordAttrCustom(species, MON_PIC_BACK, BATTLER_COORD_ATTR_BOTTOM, FALSE); offset_y = gMonBackPicCoords[species].y_offset; data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 30 + offset_y, 0); gSprites[data->backspriteId].callback = SpriteCallbackDummy; From a36445ea11cb889dba82fffe1f91699ac3a9e147 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Thu, 2 Dec 2021 18:16:41 +0100 Subject: [PATCH 28/95] Changed opening to summary screen SELECT --- src/field_control_avatar.c | 24 ------------------------ src/pokemon_summary_screen.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index c3fb5edd9d..6ec280fd0d 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -20,7 +20,6 @@ #include "metatile_behavior.h" #include "overworld.h" #include "pokemon.h" -#include "pokemon_debug.h" #include "safari_zone.h" #include "script.h" #include "secret_base.h" @@ -131,14 +130,6 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) input->dpadDirection = DIR_WEST; else if (heldKeys & DPAD_RIGHT) input->dpadDirection = DIR_EAST; - - #ifdef P_ENABLE_DEBUG - if ((heldKeys & R_BUTTON) && input->pressedStartButton) - { - input->input_field_1_2 = TRUE; - input->pressedStartButton = FALSE; - } - #endif } int ProcessPlayerFieldInput(struct FieldInput *input) @@ -198,21 +189,6 @@ int ProcessPlayerFieldInput(struct FieldInput *input) if (input->pressedSelectButton && UseRegisteredKeyItemOnField() == TRUE) return TRUE; - - #ifdef P_ENABLE_DEBUG - if (input->input_field_1_2) - { - //PlaySE(SE_WIN_OPEN); - //Debug_ShowMainMenu(); - - //PlayRainStoppingSoundEffect(); - CleanupOverworldWindowsAndTilemaps(); - SetMainCallback2(CB2_Debug_Pokemon); - - return TRUE; - } - #endif - return FALSE; } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 3ffd612ac0..5545feab96 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -28,6 +28,7 @@ #include "palette.h" #include "pokeball.h" #include "pokemon.h" +#include "pokemon_debug.h" #include "pokemon_storage_system.h" #include "pokemon_summary_screen.h" #include "region_map.h" @@ -1555,6 +1556,15 @@ static void Task_HandleInput(u8 taskId) PlaySE(SE_SELECT); BeginCloseSummaryScreen(taskId); } + #ifdef P_ENABLE_DEBUG + else if (JOY_NEW(SELECT_BUTTON)) + { + sMonSummaryScreen->callback = CB2_Debug_Pokemon; + StopPokemonAnimations(); + PlaySE(SE_SELECT); + CloseSummaryScreen(taskId); + } + #endif } } From bf0d2b83930d692c6320707a14c520c8b3f0bbef Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Thu, 2 Dec 2021 19:29:04 +0100 Subject: [PATCH 29/95] Changed definition of P_ENABLE_DEBUG to pokemon_config.h --- include/constants/pokemon_config.h | 2 ++ include/pokemon_debug.h | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/constants/pokemon_config.h b/include/constants/pokemon_config.h index 6d45eb9be8..bca1d5fb75 100644 --- a/include/constants/pokemon_config.h +++ b/include/constants/pokemon_config.h @@ -18,6 +18,8 @@ #define P_UPDATED_EGG_GROUPS GEN_8 // Since Gen 8, certain Pokémon have gained new egg groups. #define P_SHEDINJA_BALL GEN_8 // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. +#define P_ENABLE_DEBUG // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen. + #ifndef ITEM_EXPANSION //Item Definitions for gEvolutionTable diff --git a/include/pokemon_debug.h b/include/pokemon_debug.h index d70409a6b1..c9bfafc10c 100644 --- a/include/pokemon_debug.h +++ b/include/pokemon_debug.h @@ -1,8 +1,6 @@ #ifndef GUARD_POKEMON_DEBUG_H #define GUARD_POKEMON_DEBUG_H -#define P_ENABLE_DEBUG - void CB2_Debug_Pokemon(void); From 40f7247e119e8a2f7b78c004bdf2d46b27ca16aa Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 3 Dec 2021 11:02:22 +0100 Subject: [PATCH 30/95] changed P_ENABLE_DEBUG to TRUE/FALSE --- include/constants/pokemon_config.h | 2 +- src/decompress.c | 2 +- src/pokemon_debug.c | 5 ++++- src/pokemon_icon.c | 8 ++++---- src/pokemon_summary_screen.c | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/include/constants/pokemon_config.h b/include/constants/pokemon_config.h index bca1d5fb75..597b96f8ec 100644 --- a/include/constants/pokemon_config.h +++ b/include/constants/pokemon_config.h @@ -18,7 +18,7 @@ #define P_UPDATED_EGG_GROUPS GEN_8 // Since Gen 8, certain Pokémon have gained new egg groups. #define P_SHEDINJA_BALL GEN_8 // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. -#define P_ENABLE_DEBUG // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen. +#define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen. #ifndef ITEM_EXPANSION //Item Definitions for gEvolutionTable diff --git a/src/decompress.c b/src/decompress.c index ba5e4b8429..e852561067 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -114,7 +114,7 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 DrawSpindaSpots(species, personality, dest, isFrontPic); } -#ifdef P_ENABLE_DEBUG +#if P_ENABLE_DEBUG static void LoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic, bool8 isFemale) { if (species == SPECIES_UNOWN) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 5c632ed610..8543c1c4b9 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -1,4 +1,4 @@ -//Credits: Gamer2020, AsparagusEduardo +//Credits: Gamer2020, AsparagusEduardo, TheXaman #include "global.h" #include "battle.h" #include "battle_anim.h" @@ -118,6 +118,7 @@ static const struct WindowTemplate sPokemonDebugMsgBoxWindowTemplate = .baseBlock = 0x100 }; +#if P_ENABLE_DEBUG //Function declarations static void PrintDigitChars(struct PokemonDebugMenu *data); static void SetUpModifyArrows(struct PokemonDebugMenu *data); @@ -676,3 +677,5 @@ static void Exit_Debug_Pokemon(u8 taskId) m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } } + +#endif diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 0b7c3203cb..678e193675 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -23,7 +23,7 @@ struct MonIconSpriteTemplate // static functions static u8 CreateMonIconSprite(struct MonIconSpriteTemplate *, s16, s16, u8); -#ifdef P_ENABLE_DEBUG +#if P_ENABLE_DEBUG static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale); static const u8* GetMonIconTilesCustom(u16 species, bool8 isFemale); #endif @@ -2580,7 +2580,7 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u return spriteId; } -#ifdef P_ENABLE_DEBUG +#if P_ENABLE_DEBUG u8 CreateMonIconCustom(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool8 isFemale, bool8 isShiny) { u8 spriteId; @@ -2678,7 +2678,7 @@ const u8 *GetMonIconPtr(u16 species, u32 personality) return GetMonIconTiles(GetIconSpecies(species, personality), personality); } -#ifdef P_ENABLE_DEBUG +#if P_ENABLE_DEBUG static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale) { return GetMonIconTilesCustom(GetIconSpecies(species, personality), isFemale); @@ -2754,7 +2754,7 @@ const u8* GetMonIconTiles(u16 species, u32 personality) return iconSprite; } -#ifdef P_ENABLE_DEBUG +#if P_ENABLE_DEBUG static const u8* GetMonIconTilesCustom(u16 species, bool8 isFemale) { const u8* iconSprite = gMonIconTable[species]; diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 5545feab96..11da5ce171 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1556,7 +1556,7 @@ static void Task_HandleInput(u8 taskId) PlaySE(SE_SELECT); BeginCloseSummaryScreen(taskId); } - #ifdef P_ENABLE_DEBUG + #if P_ENABLE_DEBUG else if (JOY_NEW(SELECT_BUTTON)) { sMonSummaryScreen->callback = CB2_Debug_Pokemon; From 378152c1a3f5c67c3eb3288f367230158db3abc2 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 3 Dec 2021 11:41:54 +0100 Subject: [PATCH 31/95] Update src/decompress.c Co-authored-by: LOuroboros --- src/decompress.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/decompress.c b/src/decompress.c index e852561067..d0ff81a9ed 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -114,7 +114,7 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 DrawSpindaSpots(species, personality, dest, isFrontPic); } -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE static void LoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic, bool8 isFemale) { if (species == SPECIES_UNOWN) From 5a63cbd527bdeb9b4d312889f19a4541f5f64d0c Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 3 Dec 2021 11:41:58 +0100 Subject: [PATCH 32/95] Update src/pokemon_icon.c Co-authored-by: LOuroboros --- src/pokemon_icon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 678e193675..49b93fd511 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -23,7 +23,7 @@ struct MonIconSpriteTemplate // static functions static u8 CreateMonIconSprite(struct MonIconSpriteTemplate *, s16, s16, u8); -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale); static const u8* GetMonIconTilesCustom(u16 species, bool8 isFemale); #endif From 99d03259ff4978eadda3fad2cd98901d1181a2a1 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 3 Dec 2021 11:42:02 +0100 Subject: [PATCH 33/95] Update src/pokemon_icon.c Co-authored-by: LOuroboros --- src/pokemon_icon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 49b93fd511..4754dba512 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -2580,7 +2580,7 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u return spriteId; } -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE u8 CreateMonIconCustom(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool8 isFemale, bool8 isShiny) { u8 spriteId; From 44dab3cc9305521228829f9a8339b12439c0e298 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 3 Dec 2021 11:42:07 +0100 Subject: [PATCH 34/95] Update src/pokemon_icon.c Co-authored-by: LOuroboros --- src/pokemon_icon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 4754dba512..14fe48f730 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -2678,7 +2678,7 @@ const u8 *GetMonIconPtr(u16 species, u32 personality) return GetMonIconTiles(GetIconSpecies(species, personality), personality); } -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale) { return GetMonIconTilesCustom(GetIconSpecies(species, personality), isFemale); From 7ff8c1c9ebb021f2b680b846d6af6ed7cff989fb Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 3 Dec 2021 11:42:11 +0100 Subject: [PATCH 35/95] Update src/pokemon_icon.c Co-authored-by: LOuroboros --- src/pokemon_icon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 14fe48f730..c2d1d5043d 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -2754,7 +2754,7 @@ const u8* GetMonIconTiles(u16 species, u32 personality) return iconSprite; } -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE static const u8* GetMonIconTilesCustom(u16 species, bool8 isFemale) { const u8* iconSprite = gMonIconTable[species]; From 42ed047bc050d4eca97069048d44edbae120a77a Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 3 Dec 2021 11:42:14 +0100 Subject: [PATCH 36/95] Update src/pokemon_summary_screen.c Co-authored-by: LOuroboros --- src/pokemon_summary_screen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 11da5ce171..ce1e280bdf 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1556,7 +1556,7 @@ static void Task_HandleInput(u8 taskId) PlaySE(SE_SELECT); BeginCloseSummaryScreen(taskId); } - #if P_ENABLE_DEBUG + #if P_ENABLE_DEBUG == TRUE else if (JOY_NEW(SELECT_BUTTON)) { sMonSummaryScreen->callback = CB2_Debug_Pokemon; From 4ca9005797127625152eb269bb1b7ad2e37a4724 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Fri, 3 Dec 2021 18:25:28 -0300 Subject: [PATCH 37/95] Removed weird spaces in 7 dex descriptions --- src/data/pokemon/pokedex_text.h | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h index 4403a62927..15d56ee9d5 100644 --- a/src/data/pokemon/pokedex_text.h +++ b/src/data/pokemon/pokedex_text.h @@ -2546,8 +2546,7 @@ const u8 gAmbipomPokedexText[] = _( "They live on large trees. Split into two,\n" "the tails are so adept at handling and\n" "doing things, Ambipom rarely uses\n" - "its hands now.\n" - ""); + "its hands now."); const u8 gDrifloonPokedexText[] = _( "Because of the way it floats aimlessly,\n" @@ -3045,8 +3044,7 @@ const u8 gHerdierPokedexText[] = _( "Its dense black fur grows continuously.\n" "The high cost of keeping its hard fur\n" "properly groomed makes this a\n" - "troublesome Pokémon to train.\n" - ""); + "troublesome Pokémon to train."); const u8 gStoutlandPokedexText[] = _( "Intelligent, good-natured, and valiant,\n" @@ -3190,8 +3188,7 @@ const u8 gAudinoPokedexText[] = _( "Its auditory sense is astounding.\n" "Using the feelers on its ears, it can tell\n" "how someone is feeling or when an egg\n" - "might hatch.\n" - ""); + "might hatch."); const u8 gTimburrPokedexText[] = _( "These Pokémon appear at building\n" @@ -3383,8 +3380,7 @@ const u8 gCofagrigusPokedexText[] = _( "Grave robbers who mistake them for\n" "real coffins and get too close end up\n" "trapped inside their bodies. Their bodies\n" - "are covered in pure gold.\n" - ""); + "are covered in pure gold."); const u8 gTirtougaPokedexText[] = _( "Reputed to be the ancestor of most\n" @@ -4260,15 +4256,13 @@ const u8 gTrevenantPokedexText[] = _( "Through its roots, it exerts control over\n" "other trees. A deadly curse falls upon\n" "anyone cutting down trees in forests\n" - "where Trevenant dwell.\n" - ""); + "where Trevenant dwell."); const u8 gPumpkabooPokedexText[] = _( "It is said to carry wandering spirits to\n" "the place where they belong so they can\n" "move on. As the sun sets, it becomes\n" - "restless and active.\n" - ""); + "restless and active."); const u8 gGourgeistPokedexText[] = _( "Singing in eerie voices, they wander town\n" @@ -4514,8 +4508,7 @@ const u8 gDewpiderPokedexText[] = _( "It crawls onto the land in search of food.\n" "When it comes across enemies or potential\n" "prey, this Pokémon smashes its\n" - "water-bubble-covered head into them.\n" - ""); + "water-bubble-covered head into them."); const u8 gAraquanidPokedexText[] = _( "Despite what its appearance suggests,\n" From 96b8d21b7a9218723c92178980d45951fc903aba Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Fri, 3 Dec 2021 19:32:31 -0300 Subject: [PATCH 38/95] Added form switching + Button icons --- include/pokemon.h | 2 ++ src/data/pokemon/form_species_tables.h | 2 -- src/pokemon_debug.c | 48 +++++++++++++++++++++----- 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/include/pokemon.h b/include/pokemon.h index 6a13f7432d..725665b220 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -8,6 +8,7 @@ #include "constants/map_groups.h" #define GET_BASE_SPECIES_ID(speciesId) (GetFormSpeciesId(speciesId, 0)) +#define FORM_SPECIES_END (0xffff) struct PokemonSubstruct0 { @@ -279,6 +280,7 @@ extern const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2]; extern const u16 gLinkPlayerFacilityClasses[]; extern const struct SpriteTemplate gBattlerSpriteTemplates[]; extern const s8 gNatureStatTable[][5]; +extern const u16 *const gFormSpeciesIdTables[NUM_SPECIES]; void ZeroBoxMonData(struct BoxPokemon *boxMon); void ZeroMonData(struct Pokemon *mon); diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h index 89b3f4eec1..810da64997 100644 --- a/src/data/pokemon/form_species_tables.h +++ b/src/data/pokemon/form_species_tables.h @@ -1,5 +1,3 @@ -#define FORM_SPECIES_END (0xffff) - static const u16 sVenusaurFormSpeciesIdTable[] = { SPECIES_VENUSAUR, SPECIES_VENUSAUR_MEGA, diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 8543c1c4b9..406fe239b2 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -1,4 +1,4 @@ -//Credits: Gamer2020, AsparagusEduardo, TheXaman +//Credits: Gamer2020, AsparagusEduardo, TheXaman, ShinyDragonHunter #include "global.h" #include "battle.h" #include "battle_anim.h" @@ -18,6 +18,7 @@ #include "menu.h" #include "overworld.h" #include "palette.h" +#include "pokemon.h" #include "pokemon_animation.h" #include "pokemon_debug.h" #include "pokemon_icon.h" @@ -154,16 +155,28 @@ static void PadString(const u8 *src, u8 *dst) static void PrintInstructionsOnWindow(u8 windowId, struct PokemonDebugMenu *data) { - u8 text[] = _("A - Shiny START - Cry\nL - Back R - Front$"); - u8 textGender[] = _("A - Shiny START - Cry\nL - Back R - Front SEL - Gender$"); + u8 text[] = _("{A_BUTTON} Shiny\n{L_BUTTON} Back {R_BUTTON} Front$"); + u8 textGender[] = _("{A_BUTTON} Shiny\n{L_BUTTON} Back {R_BUTTON} Front {SELECT_BUTTON} Gender$"); + u8 textForms[] = _("{A_BUTTON} Shiny {START_BUTTON} Forms\n{L_BUTTON} Back {R_BUTTON} Front$"); + u8 textGenderForms[] = _("{A_BUTTON} Shiny {START_BUTTON} Forms\n{L_BUTTON} Back {R_BUTTON} Front {SELECT_BUTTON} Gender$"); u16 species = data->modifyArrows.currValue; FillWindowPixelBuffer(windowId, 0x11); if (SpeciesHasGenderDifference[species]) - AddTextPrinterParameterized(windowId, 1, textGender, 0, 0, 0, NULL); + { + if (gFormSpeciesIdTables[data->currentmonId] != NULL) + AddTextPrinterParameterized(windowId, 1, textGenderForms, 0, 0, 0, NULL); + else + AddTextPrinterParameterized(windowId, 1, textGender, 0, 0, 0, NULL); + } else - AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); + { + if (gFormSpeciesIdTables[data->currentmonId] != NULL) + AddTextPrinterParameterized(windowId, 1, textForms, 0, 0, 0, NULL); + else + AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); + } CopyWindowToVram(windowId, 3); } @@ -416,7 +429,7 @@ void CB2_Debug_Pokemon(void) data = AllocZeroed(sizeof(struct PokemonDebugMenu)); SetStructPtr(taskId, data); - data->currentmonId = 1; + data->currentmonId = SPECIES_BULBASAUR; species = data->currentmonId; data->InstructionsWindowId = AddWindow(&sDebugPokemonInstructionsTemplate); @@ -527,10 +540,12 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) if (JOY_NEW(L_BUTTON)) { + PlayCryInternal(data->currentmonId, 0, 120, 10, 0); LaunchAnimationTaskForBackSprite(Backsprite, GetSpeciesBackAnimSet(data->currentmonId)); } else if (JOY_NEW(R_BUTTON)) { + PlayCryInternal(data->currentmonId, 0, 120, 10, 0); if (HasTwoFramesAnimation(data->currentmonId)) StartSpriteAnim(Frontsprite, 1); BattleAnimateFrontSprite(Frontsprite, data->currentmonId, TRUE, 1); @@ -547,13 +562,27 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) } else if (JOY_NEW(B_BUTTON)) { - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Exit_Debug_Pokemon; PlaySE(SE_PC_OFF); } else if (JOY_NEW(START_BUTTON)) { - PlayCryInternal(data->currentmonId, 0, 120, 10, 0); + if (gFormSpeciesIdTables[data->currentmonId] != NULL) + { + struct PokemonDebugModifyArrows *modArrows = &data->modifyArrows; + u8 formId = GetFormIdFromFormSpeciesId(data->currentmonId); + if (gFormSpeciesIdTables[data->currentmonId][formId + 1] != FORM_SPECIES_END) + modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId + 1); + else + modArrows->currValue = gFormSpeciesIdTables[data->currentmonId][0]; + + PrintDigitChars(data); + UpdateBattlerValue(data); + ReloadPokemonSprites(data); + while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); + PlaySE(SE_DEX_SCROLL); + } } else if (JOY_NEW(SELECT_BUTTON) && SpeciesHasGenderDifference[data->currentmonId]) { @@ -562,6 +591,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) UpdateBattlerValue(data); ReloadPokemonSprites(data); while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); + PlaySE(SE_DEX_SCROLL); } else if (JOY_NEW(DPAD_DOWN)) // || gMain.heldKeys & DPAD_DOWN) { @@ -673,7 +703,7 @@ static void Exit_Debug_Pokemon(u8 taskId) Free(data); FreeMonSpritesGfx(); DestroyTask(taskId); - SetMainCallback2(CB2_ReturnToField); + SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); } } From faca2fbef623b99596c3a77d94cd89fcb5450146 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Fri, 3 Dec 2021 20:24:10 -0300 Subject: [PATCH 39/95] Adjusted Front pic coords so they align to single battle --- src/pokemon_debug.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 406fe239b2..1c5060f920 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -35,8 +35,8 @@ #include "constants/items.h" //Defines -#define DEBUG_MON_X 140 -#define DEBUG_MON_Y 14 +#define DEBUG_MON_X 137 +#define DEBUG_MON_Y 18 #define DEBUG_MON_BACK_X 32 #define DEBUG_MON_BACK_Y 50 #define DEBUG_ICON_X 158 From 1cf482457573789e806fbf749b5ad05138ebe611 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Sat, 4 Dec 2021 10:57:40 +0100 Subject: [PATCH 40/95] Prevents the debug menu beeing opened in battle and breaking the game --- src/pokemon_summary_screen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index ce1e280bdf..350bfa29cb 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -1557,7 +1557,7 @@ static void Task_HandleInput(u8 taskId) BeginCloseSummaryScreen(taskId); } #if P_ENABLE_DEBUG == TRUE - else if (JOY_NEW(SELECT_BUTTON)) + else if (JOY_NEW(SELECT_BUTTON) && !gMain.inBattle) { sMonSummaryScreen->callback = CB2_Debug_Pokemon; StopPokemonAnimations(); From 6a15b938e982c1cd903e736b0e46ab3d07a9f5bb Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Sat, 4 Dec 2021 12:42:22 +0100 Subject: [PATCH 41/95] front and back sprites now used separate palettes --- src/pokemon_debug.c | 55 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 1c5060f920..7a35cad894 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -18,6 +18,7 @@ #include "menu.h" #include "overworld.h" #include "palette.h" +#include "palette_util.h" #include "pokemon.h" #include "pokemon_animation.h" #include "pokemon_debug.h" @@ -381,6 +382,50 @@ static const struct CompressedSpritePalette *GetMonSpritePalStructCustom(u16 spe } } +void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isShiny, u8 battlerId) +{ + u16 paletteOffset; + const void *lzPaletteData; + const struct CompressedSpritePalette *palette; + + paletteOffset = 0x100 + battlerId * 16; + + palette = GetMonSpritePalStructCustom(species, isFemale, isShiny); + + if (isShiny) + { + if (SpeciesHasGenderDifference[species] && isFemale) + lzPaletteData = gMonShinyPaletteTableFemale[species].data; + else + lzPaletteData = gMonShinyPaletteTable[species].data; + } + else + { + if (SpeciesHasGenderDifference[species] && isFemale) + lzPaletteData = gMonPaletteTableFemale[species].data; + else + lzPaletteData = gMonPaletteTable[species].data; + } + + LZDecompressWram(lzPaletteData, gDecompressionBuffer); + LoadPalette(gDecompressionBuffer, paletteOffset, 0x20); + LoadPalette(gDecompressionBuffer, 0x80 + battlerId * 16, 0x20); + + //if (species == SPECIES_CASTFORM) + //{ + // paletteOffset = 0x100 + battlerId * 16; + // LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]); + // LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20); + //} + + // transform's pink color + //if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) + //{ + // BlendPalette(paletteOffset, 16, 6, RGB_WHITE); + // CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); + //} +} + // ******************************* // Main functions void CB2_Debug_Pokemon(void) @@ -439,11 +484,10 @@ void CB2_Debug_Pokemon(void) HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); data->isShiny = FALSE; data->isFemale = FALSE; - palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); - LoadCompressedSpritePalette(palette); + BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); - gMultiuseSpriteTemplate.paletteTag = palette->tag; data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X + 32, DEBUG_MON_Y + 40, 0); + gSprites[data->frontspriteId].oam.paletteNum = 1; gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; @@ -666,11 +710,10 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) PrintInstructionsOnWindow(data->InstructionsWindowId, data); HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); - palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); - LoadCompressedSpritePalette(palette); + BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); - gMultiuseSpriteTemplate.paletteTag = palette->tag; data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X + 32, DEBUG_MON_Y + 40, 0); + gSprites[data->frontspriteId].oam.paletteNum = 1; gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; From fa435b058c40c15247a5a146d5a23e2768f3b2ff Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Sat, 4 Dec 2021 12:51:36 +0100 Subject: [PATCH 42/95] fixed sprite animations overlapping --- src/pokemon_debug.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 7a35cad894..bb3be1ee87 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -410,20 +410,6 @@ void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isS LZDecompressWram(lzPaletteData, gDecompressionBuffer); LoadPalette(gDecompressionBuffer, paletteOffset, 0x20); LoadPalette(gDecompressionBuffer, 0x80 + battlerId * 16, 0x20); - - //if (species == SPECIES_CASTFORM) - //{ - // paletteOffset = 0x100 + battlerId * 16; - // LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]); - // LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20); - //} - - // transform's pink color - //if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE) - //{ - // BlendPalette(paletteOffset, 16, 6, RGB_WHITE); - // CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); - //} } // ******************************* @@ -582,12 +568,12 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) struct Sprite *Frontsprite = &gSprites[data->frontspriteId]; struct Sprite *Backsprite = &gSprites[data->backspriteId]; - if (JOY_NEW(L_BUTTON)) + if (JOY_NEW(L_BUTTON) && (Backsprite->callback == SpriteCallbackDummy)) { PlayCryInternal(data->currentmonId, 0, 120, 10, 0); LaunchAnimationTaskForBackSprite(Backsprite, GetSpeciesBackAnimSet(data->currentmonId)); } - else if (JOY_NEW(R_BUTTON)) + else if (JOY_NEW(R_BUTTON) && (Frontsprite->callback == SpriteCallbackDummy)) { PlayCryInternal(data->currentmonId, 0, 120, 10, 0); if (HasTwoFramesAnimation(data->currentmonId)) From 9306b19cedb056451c251c01b58afb4e34dfb409 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Sat, 4 Dec 2021 19:36:51 +0100 Subject: [PATCH 43/95] fixed wrong icon palettes on some icons --- src/pokemon_debug.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index bb3be1ee87..e9a920104a 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -448,7 +448,7 @@ void CB2_Debug_Pokemon(void) AllocateMonSpritesGfx(); LoadPalette(sBgColor, 0, 2); - LoadMonIconPalettes(); + LoadMonIconPalette(SPECIES_BULBASAUR); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); ShowBg(0); @@ -686,12 +686,10 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) ResetPaletteFade(); FreeAllSpritePalettes(); ResetAllPicSprites(); - AllocateMonSpritesGfx(); - - FreeAllSpritePalettes(); FreeMonIconPalettes(); - LoadMonIconPalettes(); + AllocateMonSpritesGfx(); + LoadMonIconPalette(species); PrintInstructionsOnWindow(data->InstructionsWindowId, data); From f07f31f401e8d14ee2add8c5e1484f16bbe0578a Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Sat, 4 Dec 2021 19:37:35 +0100 Subject: [PATCH 44/95] Update src/pokemon_debug.c Co-authored-by: Eduardo Quezada D'Ottone --- src/pokemon_debug.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index e9a920104a..13971410db 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -36,9 +36,9 @@ #include "constants/items.h" //Defines -#define DEBUG_MON_X 137 -#define DEBUG_MON_Y 18 -#define DEBUG_MON_BACK_X 32 +#define DEBUG_MON_X 144 +#define DEBUG_MON_Y 11 +#define DEBUG_MON_BACK_X 40 #define DEBUG_MON_BACK_Y 50 #define DEBUG_ICON_X 158 #define DEBUG_ICON_Y 90 From be05ff2e3b77dd4ad9c67558d502f49c7bd6ef77 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Sat, 4 Dec 2021 16:32:53 -0300 Subject: [PATCH 45/95] Fixed the palette of Pikachu Partner Cap's back --- graphics/pokemon/pikachu/partner_cap/back.png | Bin 758 -> 759 bytes graphics/pokemon/pikachu/partner_cap/front.png | Bin 735 -> 735 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/pokemon/pikachu/partner_cap/back.png b/graphics/pokemon/pikachu/partner_cap/back.png index a06e273efa571e9e59f26660cc542284e0ca9535..961611d28ab7bec46ccaa24e19457dcc3a946d80 100644 GIT binary patch delta 650 zcmV;50(JfN1@{GzDhlNc1QQ)D{S_uXku*|&rha#i8yo-q>dm^k+fqRg5DL;#2d9Y_EG0vkz0K~#90?UO%l zoj?%AS1Bkg4q+iBQe5T;$qnLASW5AfVkIKDOGNUXM5@M@;n{Q@;ke7JI$fGEF`&51($MH?{?SJ`KGLMn_1Y>%A9h-Q+ z&R^W!v04hu!1d({2-vURXC#97rYH(o=F>aB#3+ymWL`!bd%#x)NRX(ovHxIeghyQi zkf@Wx7fXD%03W0~LIH_$^5%*fl^;8Q1KbNm1g#{Js}j035DGDIxoHr9gk~FH8VwLy^3xM=mEg$(`@y0ac<2(#Jen?23k)9c*?tMxED_Fs77%#& zNqnMTEFkb_1{R{6fuVJQndtS>G3Wpu7}*k)0V)LGNL)hOD|xE`#!-%}LN`!y&J~cU zv8+Ol!U_Cv z8%2-3a_Hn6e-Nc=V$OH#MyME|7+^2GoE0vbs~K~#90?UTQ1 z+&~bfbE@;L$55l#wM7gi9En%tcd*J;w{4Gvr^(LISFh2V;Vl`AVC(5Mfb_MtL= zvwx)3%1P@c(`fg;pT7BKSI5}@dcoSPR;xGv(zi*H+^jzRO@Bo?)+Qu`Fwd*R*4Mdy z@$eujG8lpPmop#|KYpH(h?1M4D5%Z5?_rBxArX;Il_UZ1Q2-KbRk+%Ib3Nj{=>bSo z>F$FgzBoX3l#X#g;+(#|=GNu&+5(S%N)u5{M0#C9GY4X&21$z}0+8~20Svt*s7aG< zI5)t?WgGz16rB3Z^qXy<7g4X1gOehqkRbgf3WKg5a{=Iip&9B0NlDSAs;Q`F#-aAPj@UN z+9?78zeZpp$`R;l9~g<&JQ@KFz>{E0;$VRT0)D5aDd$n~+z zijLzXsp>}D=g?M6_)LuNbQpn%qqx@#<#(YDC!K=;%G@he&4JF{wdDG#AaFQASpJ}x zvDFDZ{TLoZsfQT#WVO_dZv?w05hf;CeZO~YY%oz%F%^7%Q}0Pbk+FfhdRro zKjzW^0eP5!W}&l4`WDXs8TWy{S^zm@UXT9#3~=;;VPSzMnN2M~?L#1%U*ysus%JnO j>fV1;ACz1IFIIm5NCOt-(h3hT00000NkvXXu0mjf&mJcw diff --git a/graphics/pokemon/pikachu/partner_cap/front.png b/graphics/pokemon/pikachu/partner_cap/front.png index 10a4b11584084681762f03bc59e6f911d7f77768..6965900761f47faa1913e5deeec6af2618447b7f 100644 GIT binary patch delta 30 mcmcc5dY^TI7S~fA7GYWQnRR`CCz^D#GIX%YdTcx*%>)3bzzSpl delta 30 mcmcc5dY^TI7S|JYaW(~+-OpWOCz^D#{$I-e>FCBI(o6ufF$`S* From 5bef2d0fb2443ae4449944ad89f7bfc387be7e25 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 10 Dec 2021 11:14:25 +0100 Subject: [PATCH 46/95] moved pokemon icon to the top left --- src/pokemon_debug.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 13971410db..a557f6d7c8 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -40,13 +40,13 @@ #define DEBUG_MON_Y 11 #define DEBUG_MON_BACK_X 40 #define DEBUG_MON_BACK_Y 50 -#define DEBUG_ICON_X 158 -#define DEBUG_ICON_Y 90 +#define DEBUG_ICON_X 19//158 + 32 +#define DEBUG_ICON_Y 19//90 + 40 #define DEBUG_MON_SHINY 0 #define DEBUG_MON_NORMAL 9 #define MODIFY_DIGITS_MAX 4 -#define MODIFY_DIGITS_ARROW_X 22 +#define MODIFY_DIGITS_ARROW_X 38 #define MODIFY_DIGITS_ARROW1_Y 12 #define MODIFY_DIGITS_ARROW2_Y 36 @@ -101,7 +101,7 @@ static const struct WindowTemplate sDebugPokemonInstructionsTemplate = static const struct WindowTemplate sModifyWindowTemplate = { .bg = 0, - .tilemapLeft = 2, + .tilemapLeft = 4, .tilemapTop = 2, .width = 14, .height = 2, @@ -488,7 +488,7 @@ void CB2_Debug_Pokemon(void) gSprites[data->backspriteId].oam.priority = 0; //Icon Sprite - data->iconspriteId = CreateMonIconCustom(species, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isShiny, data->isFemale, data->isShiny); + data->iconspriteId = CreateMonIconCustom(species, SpriteCB_MonIcon, DEBUG_ICON_X, DEBUG_ICON_Y, 4, data->isShiny, data->isFemale, data->isShiny); gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows @@ -712,7 +712,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) gSprites[data->backspriteId].oam.priority = 0; //Icon Sprite - data->iconspriteId = CreateMonIconCustom(species, SpriteCB_MonIcon, DEBUG_ICON_X + 32, DEBUG_ICON_Y + 40, 4, data->isShiny, data->isFemale, data->isShiny); + data->iconspriteId = CreateMonIconCustom(species, SpriteCB_MonIcon, DEBUG_ICON_X, DEBUG_ICON_Y, 4, data->isShiny, data->isFemale, data->isShiny); gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows From 31330bef96932d45b8e64602022a413118268f1d Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 10 Dec 2021 12:29:50 +0100 Subject: [PATCH 47/95] proper Window usage --- src/pokemon_debug.c | 120 +++++++++++++++++++++++++++----------------- 1 file changed, 74 insertions(+), 46 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index a557f6d7c8..44a64afae1 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -82,42 +82,53 @@ struct PokemonDebugMenu bool8 isShiny; bool8 isFemale; struct PokemonDebugModifyArrows modifyArrows; - u8 modifyWindowId; - u8 messageBoxWindowId; }; //WindowTemplates -static const struct WindowTemplate sDebugPokemonInstructionsTemplate = +#define WIN_NAME_NUMBERS 0 +#define WIN_INSTRUCTIONS 1 +#define WIN_BACK_SPRITE_LINE 2 +#define WIN_ANIM_INFORMATION 3 +#define WIN_END 4 +static const struct WindowTemplate sPokemonDebugWindowTemplate[] = { - .bg = 0, - .tilemapLeft =1, - .tilemapTop = 207, - .width = 22, - .height = 8, - .paletteNum = 0xF, - .baseBlock = 0x300 -}; - -static const struct WindowTemplate sModifyWindowTemplate = -{ - .bg = 0, - .tilemapLeft = 4, - .tilemapTop = 2, - .width = 14, - .height = 2, - .paletteNum = 0xF, - .baseBlock = 0x200 -}; - -static const struct WindowTemplate sPokemonDebugMsgBoxWindowTemplate = -{ - .bg = 0, - .tilemapLeft = 3, - .tilemapTop = 14, - .width = 11, - .height = 1, - .paletteNum = 0xF, - .baseBlock = 0x100 + [WIN_NAME_NUMBERS] = { + .bg = 0, + .tilemapLeft = 4, + .tilemapTop = 2, + .width = 14, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 1 + 640 + }, + [WIN_INSTRUCTIONS] = { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 15, + .width = 15, + .height = 5, + .paletteNum = 0xF, + .baseBlock = 1 + 640 + 28 + }, + [WIN_BACK_SPRITE_LINE] = { + .bg = 0, + .tilemapLeft = 3, + .tilemapTop = 14, + .width = 11, + .height = 1, + .paletteNum = 0xF, + .baseBlock = 1 + 640 + 28 + 75 + }, + [WIN_ANIM_INFORMATION] = { + .bg = 0, + .tilemapLeft = 16, + .tilemapTop = 14, + .width = 11, + .height = 1, + .paletteNum = 0xF, + .baseBlock = 1 + 640 + 28 + 75 + 11 + 30 + }, + DUMMY_WIN_TEMPLATE, }; #if P_ENABLE_DEBUG @@ -225,8 +236,8 @@ static void PrintDigitChars(struct PokemonDebugMenu *data) text[i++] = CHAR_SPACE; StringCopy(&text[i], gSpeciesNames[species]); - FillWindowPixelBuffer(data->modifyWindowId, 0x11); - AddTextPrinterParameterized(data->modifyWindowId, 1, text, 3, 0, 0, NULL); + FillWindowPixelBuffer(WIN_NAME_NUMBERS, 0x11); + AddTextPrinterParameterized(WIN_NAME_NUMBERS, 1, text, 3, 0, 0, NULL); } static u32 CharDigitsToValue(u8 *charDigits, u8 maxDigits) @@ -414,6 +425,20 @@ void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isS // ******************************* // Main functions +static void ResetPokemonDebugWindows(void) +{ + u8 i; + + FreeAllWindowBuffers(); + InitWindows(sPokemonDebugWindowTemplate); + + for (i = 0; i < WIN_END + 1; i++) + { + FillWindowPixelBuffer(i, PIXEL_FILL(0)); + PutWindowTilemap(i); + CopyWindowToVram(i, 2); + } +} void CB2_Debug_Pokemon(void) { u8 taskId; @@ -445,6 +470,11 @@ void CB2_Debug_Pokemon(void) gMain.state++; break; case 2: + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 15); + ResetPokemonDebugWindows(); + gMain.state++; + break; + case 3: AllocateMonSpritesGfx(); LoadPalette(sBgColor, 0, 2); @@ -463,10 +493,10 @@ void CB2_Debug_Pokemon(void) data->currentmonId = SPECIES_BULBASAUR; species = data->currentmonId; - data->InstructionsWindowId = AddWindow(&sDebugPokemonInstructionsTemplate); - PutWindowTilemap(data->InstructionsWindowId); - PrintInstructionsOnWindow(data->InstructionsWindowId, data); + //Print instructions + PrintInstructionsOnWindow(WIN_INSTRUCTIONS, data); + //Front HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); data->isShiny = FALSE; data->isFemale = FALSE; @@ -477,6 +507,7 @@ void CB2_Debug_Pokemon(void) gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; + //Back HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); LoadCompressedSpritePalette(palette); @@ -492,21 +523,15 @@ void CB2_Debug_Pokemon(void) gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows - data->modifyWindowId = AddWindow(&sModifyWindowTemplate); - PutWindowTilemap(data->modifyWindowId); - CopyWindowToVram(data->modifyWindowId, 3); SetUpModifyArrows(data); PrintDigitChars(data); //MessageBox line - data->messageBoxWindowId = AddWindow(&sPokemonDebugMsgBoxWindowTemplate); - PutWindowTilemap(data->messageBoxWindowId); - CopyWindowToVram(data->messageBoxWindowId, 3); - FillWindowPixelRect(data->messageBoxWindowId, PIXEL_FILL(0x2), 0, 0, 90, 4); + FillWindowPixelRect(WIN_BACK_SPRITE_LINE, PIXEL_FILL(0x2), 0, 0, 90, 4); gMain.state++; break; - case 3: + case 4: EnableInterrupts(1); SetVBlankCallback(VBlankCB); SetMainCallback2(CB2_Debug_Runner); @@ -691,8 +716,10 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) AllocateMonSpritesGfx(); LoadMonIconPalette(species); - PrintInstructionsOnWindow(data->InstructionsWindowId, data); + //Update instructions + PrintInstructionsOnWindow(WIN_INSTRUCTIONS, data); + //Front HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); @@ -701,6 +728,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; + //Back HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); LoadCompressedSpritePalette(palette); From 963642d3090bc2d0ba529aa5dbee844892f27487 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 10 Dec 2021 16:18:39 +0100 Subject: [PATCH 48/95] added the option to change a sprites animation to check which animation fits the best --- src/pokemon.c | 5 +- src/pokemon_debug.c | 340 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 310 insertions(+), 35 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index 189fccdea5..9c26a8a196 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1854,8 +1854,11 @@ const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = #include "data/pokemon/form_change_table_pointers.h" // SPECIES_NONE are ignored in the following two tables, so decrement before accessing these arrays to get the right result - +#if P_ENABLE_DEBUG +const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = +#else static const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = +#endif { [SPECIES_BULBASAUR - 1] = ANIM_V_JUMPS_H_JUMPS, [SPECIES_IVYSAUR - 1] = ANIM_V_STRETCH, diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 44a64afae1..4ff6b5dc4d 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -38,15 +38,15 @@ //Defines #define DEBUG_MON_X 144 #define DEBUG_MON_Y 11 -#define DEBUG_MON_BACK_X 40 -#define DEBUG_MON_BACK_Y 50 -#define DEBUG_ICON_X 19//158 + 32 -#define DEBUG_ICON_Y 19//90 + 40 +#define DEBUG_MON_BACK_X 62 +#define DEBUG_MON_BACK_Y 80 +#define DEBUG_ICON_X 19 +#define DEBUG_ICON_Y 19 #define DEBUG_MON_SHINY 0 #define DEBUG_MON_NORMAL 9 #define MODIFY_DIGITS_MAX 4 -#define MODIFY_DIGITS_ARROW_X 38 +#define MODIFY_DIGITS_ARROW_X 41 #define MODIFY_DIGITS_ARROW1_Y 12 #define MODIFY_DIGITS_ARROW2_Y 36 @@ -82,14 +82,17 @@ struct PokemonDebugMenu bool8 isShiny; bool8 isFemale; struct PokemonDebugModifyArrows modifyArrows; + u8 animIdBack; + u8 animIdFront; }; //WindowTemplates #define WIN_NAME_NUMBERS 0 #define WIN_INSTRUCTIONS 1 #define WIN_BACK_SPRITE_LINE 2 -#define WIN_ANIM_INFORMATION 3 -#define WIN_END 4 +#define WIN_ANIM_INFORMATION_FRONT 3 +#define WIN_ANIM_INFORMATION_BACK 4 +#define WIN_END 5 static const struct WindowTemplate sPokemonDebugWindowTemplate[] = { [WIN_NAME_NUMBERS] = { @@ -99,7 +102,7 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = .width = 14, .height = 2, .paletteNum = 0xF, - .baseBlock = 1 + 640 + .baseBlock = 1 }, [WIN_INSTRUCTIONS] = { .bg = 0, @@ -108,30 +111,227 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = .width = 15, .height = 5, .paletteNum = 0xF, - .baseBlock = 1 + 640 + 28 + .baseBlock = 1 + 28 }, [WIN_BACK_SPRITE_LINE] = { .bg = 0, - .tilemapLeft = 3, + .tilemapLeft = 2, .tilemapTop = 14, .width = 11, .height = 1, .paletteNum = 0xF, - .baseBlock = 1 + 640 + 28 + 75 + .baseBlock = 1 + 28 + 75 }, - [WIN_ANIM_INFORMATION] = { + [WIN_ANIM_INFORMATION_FRONT] = { .bg = 0, - .tilemapLeft = 16, - .tilemapTop = 14, - .width = 11, - .height = 1, + .tilemapLeft = 14, + .tilemapTop = 12, + .width = 16, + .height = 3, .paletteNum = 0xF, - .baseBlock = 1 + 640 + 28 + 75 + 11 + 30 + .baseBlock = 1 + 28 + 75 + 11 + }, + [WIN_ANIM_INFORMATION_BACK] = { + .bg = 0, + .tilemapLeft = 14, + .tilemapTop = 15, + .width = 16, + .height = 3, + .paletteNum = 0xF, + .baseBlock = 1 + 28 + 75 + 11 + 48 }, DUMMY_WIN_TEMPLATE, }; #if P_ENABLE_DEBUG +extern const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1]; +const u8 gBackAnimNames[][23 + 1] = +{ + [BACK_ANIM_NONE] = _("NONE"), + [BACK_ANIM_H_VIBRATE] = _("H VIBRATE"), + [BACK_ANIM_H_SLIDE] = _("H SLIDE"), + [BACK_ANIM_H_SPRING] = _("H SPRING"), + [BACK_ANIM_H_SPRING_REPEATED] = _("H SPRING REPEATED"), + [BACK_ANIM_SHRINK_GROW] = _("SHRINK GROW"), + [BACK_ANIM_GROW] = _("GROW"), + [BACK_ANIM_CIRCLE_COUNTERCLOCKWISE] = _("CIRCLE COUNTERCLOCKWISE"), + [BACK_ANIM_H_SHAKE] = _("H SHAKE"), + [BACK_ANIM_V_SHAKE] = _("V SHAKE"), + [BACK_ANIM_V_SHAKE_H_SLIDE] = _("V SHAKE H SLIDE"), + [BACK_ANIM_V_STRETCH] = _("V STRETCH"), + [BACK_ANIM_H_STRETCH] = _("H STRETCH"), + [BACK_ANIM_GROW_STUTTER] = _("GROW STUTTER"), + [BACK_ANIM_V_SHAKE_LOW] = _("V SHAKE LOW"), + [BACK_ANIM_TRIANGLE_DOWN] = _("TRIANGLE DOWN"), + [BACK_ANIM_CONCAVE_ARC_LARGE] = _("CONCAVE ARC LARGE"), + [BACK_ANIM_CONVEX_DOUBLE_ARC] = _("CONVEX DOUBLE ARC"), + [BACK_ANIM_CONCAVE_ARC_SMALL] = _("CONCAVE ARC SMALL"), + [BACK_ANIM_DIP_RIGHT_SIDE] = _("DIP RIGHT SIDE"), + [BACK_ANIM_SHRINK_GROW_VIBRATE] = _("SHRINK GROW VIBRATE"), + [BACK_ANIM_JOLT_RIGHT] = _("JOLT RIGHT"), + [BACK_ANIM_SHAKE_FLASH_YELLOW] = _("SHAKE FLASH YELLOW"), + [BACK_ANIM_SHAKE_GLOW_RED] = _("SHAKE GLOW RED"), + [BACK_ANIM_SHAKE_GLOW_GREEN] = _("SHAKE GLOW GREEN"), + [BACK_ANIM_SHAKE_GLOW_BLUE] = _("SHAKE GLOW BLUE"), +}; +const u8 gFrontAnimNames[][34] = +{ + [ANIM_V_SQUISH_AND_BOUNCE] = _("V SQUISH AND BOUNCE"), + [ANIM_CIRCULAR_STRETCH_TWICE] = _("CIRCULAR STRETCH TWICE"), + [ANIM_H_VIBRATE] = _("H VIBRATE"), + [ANIM_H_SLIDE] = _("H SLIDE"), + [ANIM_V_SLIDE] = _("V SLIDE"), + [ANIM_BOUNCE_ROTATE_TO_SIDES] = _("BOUNCE ROTATE TO SIDES"), + [ANIM_V_JUMPS_H_JUMPS] = _("V JUMPS H JUMPS"), + [ANIM_ROTATE_TO_SIDES] = _("ROTATE TO SIDES"), + [ANIM_ROTATE_TO_SIDES_TWICE] = _("ROTATE TO SIDES TWICE"), + [ANIM_GROW_VIBRATE] = _("GROW VIBRATE"), + [ANIM_ZIGZAG_FAST] = _("ZIGZAG FAST"), + [ANIM_SWING_CONCAVE] = _("SWING CONCAVE"), + [ANIM_SWING_CONCAVE_FAST] = _("SWING CONCAVE FAST"), + [ANIM_SWING_CONVEX] = _("SWING CONVEX"), + [ANIM_SWING_CONVEX_FAST] = _("SWING CONVEX FAST"), + [ANIM_H_SHAKE] = _("H SHAKE"), + [ANIM_V_SHAKE] = _("V SHAKE"), + [ANIM_CIRCULAR_VIBRATE] = _("CIRCULAR VIBRATE"), + [ANIM_TWIST] = _("TWIST"), + [ANIM_SHRINK_GROW] = _("SHRINK GROW"), + [ANIM_CIRCLE_C_CLOCKWISE] = _("CIRCLE C CLOCKWISE"), + [ANIM_GLOW_BLACK] = _("GLOW BLACK"), + [ANIM_H_STRETCH] = _("H STRETCH"), + [ANIM_V_STRETCH] = _("V STRETCH"), + [ANIM_RISING_WOBBLE] = _("RISING WOBBLE"), + [ANIM_V_SHAKE_TWICE] = _("V SHAKE TWICE"), + [ANIM_TIP_MOVE_FORWARD] = _("TIP MOVE FORWARD"), + [ANIM_H_PIVOT] = _("H PIVOT"), + [ANIM_V_SLIDE_WOBBLE] = _("V SLIDE WOBBLE"), + [ANIM_H_SLIDE_WOBBLE] = _("H SLIDE WOBBLE"), + [ANIM_V_JUMPS_BIG] = _("V JUMPS BIG"), + [ANIM_SPIN_LONG] = _("SPIN LONG"), + [ANIM_GLOW_ORANGE] = _("GLOW ORANGE"), + [ANIM_GLOW_RED] = _("GLOW RED"), + [ANIM_GLOW_BLUE] = _("GLOW BLUE"), + [ANIM_GLOW_YELLOW] = _("GLOW YELLOW"), + [ANIM_GLOW_PURPLE] = _("GLOW PURPLE"), + [ANIM_BACK_AND_LUNGE] = _("BACK AND LUNGE"), + [ANIM_BACK_FLIP] = _("BACK FLIP"), + [ANIM_FLICKER] = _("FLICKER"), + [ANIM_BACK_FLIP_BIG] = _("BACK FLIP BIG"), + [ANIM_FRONT_FLIP] = _("FRONT FLIP"), + [ANIM_TUMBLING_FRONT_FLIP] = _("TUMBLING FRONT FLIP"), + [ANIM_FIGURE_8] = _("FIGURE 8"), + [ANIM_FLASH_YELLOW] = _("FLASH YELLOW"), + [ANIM_SWING_CONCAVE_FAST_SHORT] = _("SWING CONCAVE FAST SHORT"), + [ANIM_SWING_CONVEX_FAST_SHORT] = _("SWING CONVEX FAST SHORT"), + [ANIM_ROTATE_UP_SLAM_DOWN] = _("ROTATE UP SLAM DOWN"), + [ANIM_DEEP_V_SQUISH_AND_BOUNCE] = _("DEEP V SQUISH AND BOUNCE"), + [ANIM_H_JUMPS] = _("H JUMPS"), + [ANIM_H_JUMPS_V_STRETCH] = _("H JUMPS V STRETCH"), + [ANIM_ROTATE_TO_SIDES_FAST] = _("ROTATE TO SIDES FAST"), + [ANIM_ROTATE_UP_TO_SIDES] = _("ROTATE UP TO SIDES"), + [ANIM_FLICKER_INCREASING] = _("FLICKER INCREASING"), + [ANIM_TIP_HOP_FORWARD] = _("TIP HOP FORWARD"), + [ANIM_PIVOT_SHAKE] = _("PIVOT SHAKE"), + [ANIM_TIP_AND_SHAKE] = _("TIP AND SHAKE"), + [ANIM_VIBRATE_TO_CORNERS] = _("VIBRATE TO CORNERS"), + [ANIM_GROW_IN_STAGES] = _("GROW IN STAGES"), + [ANIM_V_SPRING] = _("V SPRING"), + [ANIM_V_REPEATED_SPRING] = _("V REPEATED SPRING"), + [ANIM_SPRING_RISING] = _("SPRING RISING"), + [ANIM_H_SPRING] = _("H SPRING"), + [ANIM_H_REPEATED_SPRING_SLOW] = _("H REPEATED SPRING SLOW"), + [ANIM_H_SLIDE_SHRINK] = _("H SLIDE SHRINK"), + [ANIM_LUNGE_GROW] = _("LUNGE GROW"), + [ANIM_CIRCLE_INTO_BG] = _("CIRCLE INTO BG"), + [ANIM_RAPID_H_HOPS] = _("RAPID H HOPS"), + [ANIM_FOUR_PETAL] = _("FOUR PETAL"), + [ANIM_V_SQUISH_AND_BOUNCE_SLOW] = _("V SQUISH AND BOUNCE SLOW"), + [ANIM_H_SLIDE_SLOW] = _("H SLIDE SLOW"), + [ANIM_V_SLIDE_SLOW] = _("V SLIDE SLOW"), + [ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL] = _("BOUNCE ROTATE TO SIDES SMALL"), + [ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW] = _("BOUNCE ROTATE TO SIDES SLOW"), + [ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW] = _("BOUNCE ROTATE TO SIDES SMALL SLOW"), + [ANIM_ZIGZAG_SLOW] = _("ZIGZAG SLOW"), + [ANIM_H_SHAKE_SLOW] = _("H SHAKE SLOW"), + [ANIM_V_SHAKE_SLOW] = _("V SHAKE SLOW"), + [ANIM_TWIST_TWICE] = _("TWIST TWICE"), + [ANIM_CIRCLE_C_CLOCKWISE_SLOW] = _("CIRCLE C CLOCKWISE SLOW"), + [ANIM_V_SHAKE_TWICE_SLOW] = _("V SHAKE TWICE SLOW"), + [ANIM_V_SLIDE_WOBBLE_SMALL] = _("V SLIDE WOBBLE SMALL"), + [ANIM_V_JUMPS_SMALL] = _("V JUMPS SMALL"), + [ANIM_SPIN] = _("SPIN"), + [ANIM_TUMBLING_FRONT_FLIP_TWICE] = _("TUMBLING FRONT FLIP TWICE"), + [ANIM_DEEP_V_SQUISH_AND_BOUNCE_TWICE] = _("DEEP V SQUISH AND BOUNCE TWICE"), + [ANIM_H_JUMPS_V_STRETCH_TWICE] = _("H JUMPS V STRETCH TWICE"), + [ANIM_V_SHAKE_BACK] = _("V SHAKE BACK"), + [ANIM_V_SHAKE_BACK_SLOW] = _("V SHAKE BACK SLOW"), + [ANIM_V_SHAKE_H_SLIDE_SLOW] = _("V SHAKE H SLIDE SLOW"), + [ANIM_V_STRETCH_BOTH_ENDS_SLOW] = _("V STRETCH BOTH ENDS SLOW"), + [ANIM_H_STRETCH_FAR_SLOW] = _("H STRETCH FAR SLOW"), + [ANIM_V_SHAKE_LOW_TWICE] = _("V SHAKE LOW TWICE"), + [ANIM_H_SHAKE_FAST] = _("H SHAKE FAST"), + [ANIM_H_SLIDE_FAST] = _("H SLIDE FAST"), + [ANIM_H_VIBRATE_FAST] = _("H VIBRATE FAST"), + [ANIM_H_VIBRATE_FASTEST] = _("H VIBRATE FASTEST"), + [ANIM_V_SHAKE_BACK_FAST] = _("V SHAKE BACK FAST"), + [ANIM_V_SHAKE_LOW_TWICE_SLOW] = _("V SHAKE LOW TWICE SLOW"), + [ANIM_V_SHAKE_LOW_TWICE_FAST] = _("V SHAKE LOW TWICE FAST"), + [ANIM_CIRCLE_C_CLOCKWISE_LONG] = _("CIRCLE C CLOCKWISE LONG"), + [ANIM_GROW_STUTTER_SLOW] = _("GROW STUTTER SLOW"), + [ANIM_V_SHAKE_H_SLIDE] = _("V SHAKE H SLIDE"), + [ANIM_V_SHAKE_H_SLIDE_FAST] = _("V SHAKE H SLIDE FAST"), + [ANIM_TRIANGLE_DOWN_SLOW] = _("TRIANGLE DOWN SLOW"), + [ANIM_TRIANGLE_DOWN] = _("TRIANGLE DOWN"), + [ANIM_TRIANGLE_DOWN_TWICE] = _("TRIANGLE DOWN TWICE"), + [ANIM_GROW] = _("GROW"), + [ANIM_GROW_TWICE] = _("GROW TWICE"), + [ANIM_H_SPRING_FAST] = _("H SPRING FAST"), + [ANIM_H_SPRING_SLOW] = _("H SPRING SLOW"), + [ANIM_H_REPEATED_SPRING_FAST] = _("H REPEATED SPRING FAST"), + [ANIM_H_REPEATED_SPRING] = _("H REPEATED SPRING"), + [ANIM_SHRINK_GROW_FAST] = _("SHRINK GROW FAST"), + [ANIM_SHRINK_GROW_SLOW] = _("SHRINK GROW SLOW"), + [ANIM_V_STRETCH_BOTH_ENDS] = _("V STRETCH BOTH ENDS"), + [ANIM_V_STRETCH_BOTH_ENDS_TWICE] = _("V STRETCH BOTH ENDS TWICE"), + [ANIM_H_STRETCH_FAR_TWICE] = _("H STRETCH FAR TWICE"), + [ANIM_H_STRETCH_FAR] = _("H STRETCH FAR"), + [ANIM_GROW_STUTTER_TWICE] = _("GROW STUTTER TWICE"), + [ANIM_GROW_STUTTER] = _("GROW STUTTER"), + [ANIM_CONCAVE_ARC_LARGE_SLOW] = _("CONCAVE ARC LARGE SLOW"), + [ANIM_CONCAVE_ARC_LARGE] = _("CONCAVE ARC LARGE"), + [ANIM_CONCAVE_ARC_LARGE_TWICE] = _("CONCAVE ARC LARGE TWICE"), + [ANIM_CONVEX_DOUBLE_ARC_SLOW] = _("CONVEX DOUBLE ARC SLOW"), + [ANIM_CONVEX_DOUBLE_ARC] = _("CONVEX DOUBLE ARC"), + [ANIM_CONVEX_DOUBLE_ARC_TWICE] = _("CONVEX DOUBLE ARC TWICE"), + [ANIM_CONCAVE_ARC_SMALL_SLOW] = _("CONCAVE ARC SMALL SLOW"), + [ANIM_CONCAVE_ARC_SMALL] = _("CONCAVE ARC SMALL"), + [ANIM_CONCAVE_ARC_SMALL_TWICE] = _("CONCAVE ARC SMALL TWICE"), + [ANIM_H_DIP] = _("H DIP"), + [ANIM_H_DIP_FAST] = _("H DIP FAST"), + [ANIM_H_DIP_TWICE] = _("H DIP TWICE"), + [ANIM_SHRINK_GROW_VIBRATE_FAST] = _("SHRINK GROW VIBRATE FAST"), + [ANIM_SHRINK_GROW_VIBRATE] = _("SHRINK GROW VIBRATE"), + [ANIM_SHRINK_GROW_VIBRATE_SLOW] = _("SHRINK GROW VIBRATE SLOW"), + [ANIM_JOLT_RIGHT_FAST] = _("JOLT RIGHT FAST"), + [ANIM_JOLT_RIGHT] = _("JOLT RIGHT"), + [ANIM_JOLT_RIGHT_SLOW] = _("JOLT RIGHT SLOW"), + [ANIM_SHAKE_FLASH_YELLOW_FAST] = _("SHAKE FLASH YELLOW FAST"), + [ANIM_SHAKE_FLASH_YELLOW] = _("SHAKE FLASH YELLOW"), + [ANIM_SHAKE_FLASH_YELLOW_SLOW] = _("SHAKE FLASH YELLOW SLOW"), + [ANIM_SHAKE_GLOW_RED_FAST] = _("SHAKE GLOW RED FAST"), + [ANIM_SHAKE_GLOW_RED] = _("SHAKE GLOW RED"), + [ANIM_SHAKE_GLOW_RED_SLOW] = _("SHAKE GLOW RED SLOW"), + [ANIM_SHAKE_GLOW_GREEN_FAST] = _("SHAKE GLOW GREEN FAST"), + [ANIM_SHAKE_GLOW_GREEN] = _("SHAKE GLOW GREEN"), + [ANIM_SHAKE_GLOW_GREEN_SLOW] = _("SHAKE GLOW GREEN SLOW"), + [ANIM_SHAKE_GLOW_BLUE_FAST] = _("SHAKE GLOW BLUE FAST"), + [ANIM_SHAKE_GLOW_BLUE] = _("SHAKE GLOW BLUE"), + [ANIM_SHAKE_GLOW_BLUE_SLOW] = _("SHAKE GLOW BLUE SLOW"), + [ANIM_SHAKE_GLOW_BLACK_SLOW] = _("SHAKE GLOW BLACK SLOW"), + [ANIM_SHAKE_GLOW_WHITE_SLOW] = _("SHAKE GLOW WHITE SLOW"), + [ANIM_SHAKE_GLOW_PURPLE_SLOW] = _("SHAKE GLOW PURPLE SLOW"), +}; + //Function declarations static void PrintDigitChars(struct PokemonDebugMenu *data); static void SetUpModifyArrows(struct PokemonDebugMenu *data); @@ -167,10 +367,10 @@ static void PadString(const u8 *src, u8 *dst) static void PrintInstructionsOnWindow(u8 windowId, struct PokemonDebugMenu *data) { - u8 text[] = _("{A_BUTTON} Shiny\n{L_BUTTON} Back {R_BUTTON} Front$"); - u8 textGender[] = _("{A_BUTTON} Shiny\n{L_BUTTON} Back {R_BUTTON} Front {SELECT_BUTTON} Gender$"); - u8 textForms[] = _("{A_BUTTON} Shiny {START_BUTTON} Forms\n{L_BUTTON} Back {R_BUTTON} Front$"); - u8 textGenderForms[] = _("{A_BUTTON} Shiny {START_BUTTON} Forms\n{L_BUTTON} Back {R_BUTTON} Front {SELECT_BUTTON} Gender$"); + u8 text[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny$"); + u8 textGender[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny\n{SELECT_BUTTON} Gender$"); + u8 textForms[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny\n{START_BUTTON} Forms$"); + u8 textGenderForms[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny\n{START_BUTTON} Forms {SELECT_BUTTON} Gender$"); u16 species = data->modifyArrows.currValue; @@ -178,16 +378,16 @@ static void PrintInstructionsOnWindow(u8 windowId, struct PokemonDebugMenu *data if (SpeciesHasGenderDifference[species]) { if (gFormSpeciesIdTables[data->currentmonId] != NULL) - AddTextPrinterParameterized(windowId, 1, textGenderForms, 0, 0, 0, NULL); + AddTextPrinterParameterized(windowId, 0, textGenderForms, 0, 0, 0, NULL); else - AddTextPrinterParameterized(windowId, 1, textGender, 0, 0, 0, NULL); + AddTextPrinterParameterized(windowId, 0, textGender, 0, 0, 0, NULL); } else { if (gFormSpeciesIdTables[data->currentmonId] != NULL) - AddTextPrinterParameterized(windowId, 1, textForms, 0, 0, 0, NULL); + AddTextPrinterParameterized(windowId, 0, textForms, 0, 0, 0, NULL); else - AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); + AddTextPrinterParameterized(windowId, 0, text, 0, 0, 0, NULL); } CopyWindowToVram(windowId, 3); } @@ -237,7 +437,7 @@ static void PrintDigitChars(struct PokemonDebugMenu *data) StringCopy(&text[i], gSpeciesNames[species]); FillWindowPixelBuffer(WIN_NAME_NUMBERS, 0x11); - AddTextPrinterParameterized(WIN_NAME_NUMBERS, 1, text, 3, 0, 0, NULL); + AddTextPrinterParameterized(WIN_NAME_NUMBERS, 1, text, 6, 0, 0, NULL); } static u32 CharDigitsToValue(u8 *charDigits, u8 maxDigits) @@ -425,6 +625,29 @@ void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isS // ******************************* // Main functions +static void UpdateMonAnimNames(u8 taskId) +{ + struct PokemonDebugMenu *data = GetStructPtr(taskId); + u8 frontAnim = data->animIdFront; + u8 backAnim = data->animIdBack; + u8 textFront[] = _("FRONT {R_BUTTON} + {DPAD_LEFTRIGHT}$"); + u8 textBack[] = _("BACK {L_BUTTON} + {DPAD_LEFTRIGHT}$"); + u8 text[34]; + u8 fontId = 0; + + //Front + FillWindowPixelBuffer(WIN_ANIM_INFORMATION_FRONT, PIXEL_FILL(0)); + AddTextPrinterParameterized(WIN_ANIM_INFORMATION_FRONT, fontId, textFront, 0, 0, 0, NULL); + StringCopy(text, gFrontAnimNames[frontAnim]); + AddTextPrinterParameterized(WIN_ANIM_INFORMATION_FRONT, fontId, text, 4, 12, 0, NULL); + + //Back + FillWindowPixelBuffer(WIN_ANIM_INFORMATION_BACK, PIXEL_FILL(0)); + AddTextPrinterParameterized(WIN_ANIM_INFORMATION_BACK, fontId, textBack, 0, 0, 0, NULL); + StringCopy(text, gBackAnimNames[backAnim]); + AddTextPrinterParameterized(WIN_ANIM_INFORMATION_BACK, fontId, text, 4, 12, 0, NULL); +} + static void ResetPokemonDebugWindows(void) { u8 i; @@ -434,9 +657,11 @@ static void ResetPokemonDebugWindows(void) for (i = 0; i < WIN_END + 1; i++) { + if (i == WIN_BACK_SPRITE_LINE) + continue; FillWindowPixelBuffer(i, PIXEL_FILL(0)); PutWindowTilemap(i); - CopyWindowToVram(i, 2); + CopyWindowToVram(i, 3); } } void CB2_Debug_Pokemon(void) @@ -514,7 +739,7 @@ void CB2_Debug_Pokemon(void) SetMultiuseSpriteTemplateToPokemon(species, 2); gMultiuseSpriteTemplate.paletteTag = palette->tag; offset_y = gMonBackPicCoords[species].y_offset; - data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 30 + offset_y, 0); + data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X, DEBUG_MON_BACK_Y + offset_y, 0); gSprites[data->backspriteId].callback = SpriteCallbackDummy; gSprites[data->backspriteId].oam.priority = 0; @@ -527,7 +752,14 @@ void CB2_Debug_Pokemon(void) PrintDigitChars(data); //MessageBox line + PutWindowTilemap(WIN_BACK_SPRITE_LINE); FillWindowPixelRect(WIN_BACK_SPRITE_LINE, PIXEL_FILL(0x2), 0, 0, 90, 4); + CopyWindowToVram(WIN_BACK_SPRITE_LINE, 3); + + //Anim names + data->animIdBack = GetSpeciesBackAnimSet(species) + 1; + data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; + UpdateMonAnimNames(taskId); gMain.state++; break; @@ -592,19 +824,54 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) struct PokemonDebugMenu *data = GetStructPtr(taskId); struct Sprite *Frontsprite = &gSprites[data->frontspriteId]; struct Sprite *Backsprite = &gSprites[data->backspriteId]; - - if (JOY_NEW(L_BUTTON) && (Backsprite->callback == SpriteCallbackDummy)) + + //Back + if (JOY_HELD(L_BUTTON) && JOY_NEW(DPAD_LEFT)) + { + if (data->animIdBack <= 1) + data->animIdBack = BACK_ANIM_SHAKE_GLOW_BLUE; + else + data->animIdBack -= 1; + UpdateMonAnimNames(taskId); + } + else if (JOY_HELD(L_BUTTON) && JOY_NEW(DPAD_RIGHT)) + { + if (data->animIdBack >= BACK_ANIM_SHAKE_GLOW_BLUE) + data->animIdBack = 1; + else + data->animIdBack += 1; + UpdateMonAnimNames(taskId); + } + else if (JOY_NEW(L_BUTTON) && (Backsprite->callback == SpriteCallbackDummy)) { PlayCryInternal(data->currentmonId, 0, 120, 10, 0); - LaunchAnimationTaskForBackSprite(Backsprite, GetSpeciesBackAnimSet(data->currentmonId)); + LaunchAnimationTaskForBackSprite(Backsprite, data->animIdBack-1); + } + //Front + else if (JOY_HELD(R_BUTTON) && JOY_NEW(DPAD_LEFT)) + { + if (data->animIdFront <= 0) + data->animIdFront = ANIM_SHAKE_GLOW_PURPLE_SLOW; + else + data->animIdFront -= 1; + UpdateMonAnimNames(taskId); + } + else if (JOY_HELD(R_BUTTON) && JOY_NEW(DPAD_RIGHT)) + { + if (data->animIdFront >= ANIM_SHAKE_GLOW_PURPLE_SLOW) + data->animIdFront = 0; + else + data->animIdFront += 1; + UpdateMonAnimNames(taskId); } else if (JOY_NEW(R_BUTTON) && (Frontsprite->callback == SpriteCallbackDummy)) { PlayCryInternal(data->currentmonId, 0, 120, 10, 0); if (HasTwoFramesAnimation(data->currentmonId)) StartSpriteAnim(Frontsprite, 1); - BattleAnimateFrontSprite(Frontsprite, data->currentmonId, TRUE, 1); + LaunchAnimationTaskForFrontSprite(Frontsprite, data->animIdFront); } + //Rest else if (JOY_NEW(A_BUTTON)) { data->isShiny = !data->isShiny; @@ -656,6 +923,9 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) PrintDigitChars(data); UpdateBattlerValue(data); ReloadPokemonSprites(data); + data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; + data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; + UpdateMonAnimNames(taskId); } PlaySE(SE_DEX_SCROLL); @@ -670,10 +940,12 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) PrintDigitChars(data); UpdateBattlerValue(data); ReloadPokemonSprites(data); + data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; + data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; + UpdateMonAnimNames(taskId); } PlaySE(SE_DEX_SCROLL); - } else if (JOY_NEW(DPAD_LEFT)) // || gMain.heldKeys & DPAD_LEFT) { @@ -735,7 +1007,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) SetMultiuseSpriteTemplateToPokemon(species, 2); gMultiuseSpriteTemplate.paletteTag = palette->tag; offset_y = gMonBackPicCoords[species].y_offset; - data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X + 32, DEBUG_MON_BACK_Y + 30 + offset_y, 0); + data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X, DEBUG_MON_BACK_Y + offset_y, 0); gSprites[data->backspriteId].callback = SpriteCallbackDummy; gSprites[data->backspriteId].oam.priority = 0; From ef01c401f7abd17ba09c6e5926fdcdf61b2d7fc5 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 10 Dec 2021 17:50:55 +0100 Subject: [PATCH 49/95] another fix for the shared front and back palette --- src/pokemon_debug.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 4ff6b5dc4d..78ab4f8751 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -36,8 +36,8 @@ #include "constants/items.h" //Defines -#define DEBUG_MON_X 144 -#define DEBUG_MON_Y 11 +#define DEBUG_MON_X 144 + 32 +#define DEBUG_MON_Y 11 + 40 #define DEBUG_MON_BACK_X 62 #define DEBUG_MON_BACK_Y 80 #define DEBUG_ICON_X 19 @@ -369,8 +369,8 @@ static void PrintInstructionsOnWindow(u8 windowId, struct PokemonDebugMenu *data { u8 text[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny$"); u8 textGender[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny\n{SELECT_BUTTON} Gender$"); - u8 textForms[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny\n{START_BUTTON} Forms$"); - u8 textGenderForms[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny\n{START_BUTTON} Forms {SELECT_BUTTON} Gender$"); + u8 textForms[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny {START_BUTTON} Forms$"); + u8 textGenderForms[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny {START_BUTTON} Forms\n{SELECT_BUTTON} Gender$"); u16 species = data->modifyArrows.currValue; @@ -721,25 +721,28 @@ void CB2_Debug_Pokemon(void) //Print instructions PrintInstructionsOnWindow(WIN_INSTRUCTIONS, data); + //Palettes + palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); + LoadCompressedSpritePalette(palette); //Front HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); data->isShiny = FALSE; data->isFemale = FALSE; BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); - data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X + 32, DEBUG_MON_Y + 40, 0); + gMultiuseSpriteTemplate.paletteTag = palette->tag; + data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X, DEBUG_MON_Y, 0); gSprites[data->frontspriteId].oam.paletteNum = 1; gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; //Back HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); - palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); - LoadCompressedSpritePalette(palette); + BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 4); SetMultiuseSpriteTemplateToPokemon(species, 2); - gMultiuseSpriteTemplate.paletteTag = palette->tag; offset_y = gMonBackPicCoords[species].y_offset; data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X, DEBUG_MON_BACK_Y + offset_y, 0); + gSprites[data->backspriteId].oam.paletteNum = 4; gSprites[data->backspriteId].callback = SpriteCallbackDummy; gSprites[data->backspriteId].oam.priority = 0; @@ -991,23 +994,26 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) //Update instructions PrintInstructionsOnWindow(WIN_INSTRUCTIONS, data); + //Palettes + palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); + LoadCompressedSpritePalette(palette); //Front HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); - data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X + 32, DEBUG_MON_Y + 40, 0); + gMultiuseSpriteTemplate.paletteTag = palette->tag; + data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X, DEBUG_MON_Y, 0); gSprites[data->frontspriteId].oam.paletteNum = 1; gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; //Back HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); - palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); - LoadCompressedSpritePalette(palette); + BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 4); SetMultiuseSpriteTemplateToPokemon(species, 2); - gMultiuseSpriteTemplate.paletteTag = palette->tag; offset_y = gMonBackPicCoords[species].y_offset; data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X, DEBUG_MON_BACK_Y + offset_y, 0); + gSprites[data->backspriteId].oam.paletteNum = 4; gSprites[data->backspriteId].callback = SpriteCallbackDummy; gSprites[data->backspriteId].oam.priority = 0; From 44121b041c51cf6892a73295dd0a6051b740b074 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 10 Dec 2021 20:40:34 +0100 Subject: [PATCH 50/95] added battle bg's and platforms and a function LoadBattleBg to change them --- src/battle_bg.c | 4 + src/pokemon_debug.c | 187 ++++++++++++++++++++++++++++++++++++++------ 2 files changed, 167 insertions(+), 24 deletions(-) diff --git a/src/battle_bg.c b/src/battle_bg.c index f739a002f6..65f30243e9 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -598,7 +598,11 @@ const struct WindowTemplate * const gBattleWindowTemplates[] = [B_WIN_TYPE_ARENA] = gBattleArenaWindowTemplates, }; +#if P_ENABLE_DEBUG +const struct BattleBackground sBattleTerrainTable[] = +#else static const struct BattleBackground sBattleTerrainTable[] = +#endif { [BATTLE_TERRAIN_GRASS] = { diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 78ab4f8751..7a9804a048 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -9,6 +9,7 @@ #include "decompress.h" #include "field_weather.h" #include "gpu_regs.h" +#include "graphics.h" #include "item.h" #include "item_icon.h" #include "list_menu.h" @@ -84,15 +85,56 @@ struct PokemonDebugMenu struct PokemonDebugModifyArrows modifyArrows; u8 animIdBack; u8 animIdFront; + u8 battleBgType; + u8 battleTerrain; +}; + +static const struct BgTemplate sBgTemplates[] = +{ + { + .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 + }, }; //WindowTemplates #define WIN_NAME_NUMBERS 0 #define WIN_INSTRUCTIONS 1 -#define WIN_BACK_SPRITE_LINE 2 -#define WIN_ANIM_INFORMATION_FRONT 3 -#define WIN_ANIM_INFORMATION_BACK 4 -#define WIN_END 5 +#define WIN_ANIM_INFORMATION_FRONT 2 +#define WIN_ANIM_INFORMATION_BACK 3 +#define WIN_END 4 static const struct WindowTemplate sPokemonDebugWindowTemplate[] = { [WIN_NAME_NUMBERS] = { @@ -113,15 +155,6 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = .paletteNum = 0xF, .baseBlock = 1 + 28 }, - [WIN_BACK_SPRITE_LINE] = { - .bg = 0, - .tilemapLeft = 2, - .tilemapTop = 14, - .width = 11, - .height = 1, - .paletteNum = 0xF, - .baseBlock = 1 + 28 + 75 - }, [WIN_ANIM_INFORMATION_FRONT] = { .bg = 0, .tilemapLeft = 14, @@ -129,7 +162,7 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = .width = 16, .height = 3, .paletteNum = 0xF, - .baseBlock = 1 + 28 + 75 + 11 + .baseBlock = 1 + 28 + 75 }, [WIN_ANIM_INFORMATION_BACK] = { .bg = 0, @@ -138,7 +171,7 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = .width = 16, .height = 3, .paletteNum = 0xF, - .baseBlock = 1 + 28 + 75 + 11 + 48 + .baseBlock = 1 + 28 + 75 + 48 }, DUMMY_WIN_TEMPLATE, }; @@ -623,6 +656,107 @@ void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isS LoadPalette(gDecompressionBuffer, 0x80 + battlerId * 16, 0x20); } +//Battle background functions +struct BattleBackground +{ + const void *tileset; + const void *tilemap; + const void *entryTileset; + const void *entryTilemap; + const void *palette; +}; +extern const struct BattleBackground sBattleTerrainTable[]; +#define MAP_BATTLE_SCENE_NORMAL 0 +#define MAP_BATTLE_SCENE_GYM 1 +#define MAP_BATTLE_SCENE_MAGMA 2 +#define MAP_BATTLE_SCENE_AQUA 3 +#define MAP_BATTLE_SCENE_SIDNEY 4 +#define MAP_BATTLE_SCENE_PHOEBE 5 +#define MAP_BATTLE_SCENE_GLACIA 6 +#define MAP_BATTLE_SCENE_DRAKE 7 +#define MAP_BATTLE_SCENE_FRONTIER 8 +#define MAP_BATTLE_SCENE_LEADER 9 +#define MAP_BATTLE_SCENE_WALLACE 10 +#define MAP_BATTLE_SCENE_GROUDON 11 +#define MAP_BATTLE_SCENE_KYOGRE 12 +#define MAP_BATTLE_SCENE_RAYQUAZA 13 +static void LoadBattleBg(u8 battleBgType, u8 battleTerrain) +{ + switch (battleBgType) + { + default: + case MAP_BATTLE_SCENE_NORMAL: + LZDecompressVram(sBattleTerrainTable[battleTerrain].tileset, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(sBattleTerrainTable[battleTerrain].tilemap, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(sBattleTerrainTable[battleTerrain].palette, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_GYM: + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_MAGMA: + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_AQUA: + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_SIDNEY: + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_PHOEBE: + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_GLACIA: + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_DRAKE: + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_FRONTIER: + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_Frontier, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_LEADER: + LZDecompressVram(gBattleTerrainTiles_Building, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_WALLACE: + LZDecompressVram(gBattleTerrainTiles_Stadium, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Stadium, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_StadiumWallace, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_GROUDON: + LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); + case MAP_BATTLE_SCENE_KYOGRE: + LZDecompressVram(gBattleTerrainTiles_Water, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60); + break; + case MAP_BATTLE_SCENE_RAYQUAZA: + LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2))); + LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60); + break; + } +} + // ******************************* // Main functions static void UpdateMonAnimNames(u8 taskId) @@ -657,8 +791,6 @@ static void ResetPokemonDebugWindows(void) for (i = 0; i < WIN_END + 1; i++) { - if (i == WIN_BACK_SPRITE_LINE) - continue; FillWindowPixelBuffer(i, PIXEL_FILL(0)); PutWindowTilemap(i); CopyWindowToVram(i, 3); @@ -692,11 +824,18 @@ void CB2_Debug_Pokemon(void) FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; ResetAllPicSprites(); + //BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 15); gMain.state++; break; case 2: - FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 15); - ResetPokemonDebugWindows(); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + data->battleTerrain = 0; + data->battleBgType = 0; + LoadBattleBg(data->battleBgType, data->battleTerrain); + + ResetPokemonDebugWindows(); gMain.state++; break; case 3: @@ -708,6 +847,8 @@ void CB2_Debug_Pokemon(void) SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); ShowBg(0); ShowBg(1); + ShowBg(2); + ShowBg(3); //input task handler taskId = CreateTask(Handle_Input_Debug_Pokemon, 0); @@ -754,11 +895,6 @@ void CB2_Debug_Pokemon(void) SetUpModifyArrows(data); PrintDigitChars(data); - //MessageBox line - PutWindowTilemap(WIN_BACK_SPRITE_LINE); - FillWindowPixelRect(WIN_BACK_SPRITE_LINE, PIXEL_FILL(0x2), 0, 0, 90, 4); - CopyWindowToVram(WIN_BACK_SPRITE_LINE, 3); - //Anim names data->animIdBack = GetSpeciesBackAnimSet(species) + 1; data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; @@ -991,6 +1127,9 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) AllocateMonSpritesGfx(); LoadMonIconPalette(species); + //Battle background + LoadBattleBg(data->battleBgType, data->battleTerrain); + //Update instructions PrintInstructionsOnWindow(WIN_INSTRUCTIONS, data); From 8c23ad34ee21993ff01520f5ac7c40adf5d7ddca Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Fri, 10 Dec 2021 20:59:34 +0100 Subject: [PATCH 51/95] fixed --- src/pokemon_debug.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 7a9804a048..b102b1d86f 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -827,14 +827,14 @@ void CB2_Debug_Pokemon(void) //BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 15); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + data->battleBgType = 0; + data->battleTerrain = 0; + LoadBattleBg(data->battleBgType , data->battleTerrain); + gMain.state++; break; case 2: - InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); - data->battleTerrain = 0; - data->battleBgType = 0; - LoadBattleBg(data->battleBgType, data->battleTerrain); - ResetPokemonDebugWindows(); gMain.state++; break; From bbe918941e2c2b367799c3b4d2afd3d8b9e2df0a Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Sat, 11 Dec 2021 12:13:14 +0100 Subject: [PATCH 52/95] added include/constants/pokemon_debug,h for defines, restructured code order --- include/battle_bg.h | 11 ++++ include/constants/pokemon_debug.h | 47 +++++++++++++++ include/pokemon_debug.h | 33 +++++++++++ src/battle_bg.c | 2 + src/pokemon_debug.c | 99 ++++--------------------------- 5 files changed, 106 insertions(+), 86 deletions(-) create mode 100644 include/constants/pokemon_debug.h diff --git a/include/battle_bg.h b/include/battle_bg.h index 167ea5cf74..cfa69a92ac 100644 --- a/include/battle_bg.h +++ b/include/battle_bg.h @@ -1,6 +1,17 @@ #ifndef GUARD_BATTLE_BG_H #define GUARD_BATTLE_BG_H +#if P_ENABLE_DEBUG +struct BattleBackground +{ + const void *tileset; + const void *tilemap; + const void *entryTileset; + const void *entryTilemap; + const void *palette; +}; +#endif + void BattleInitBgsAndWindows(void); void InitBattleBgsVideo(void); void LoadBattleMenuWindowGfx(void); diff --git a/include/constants/pokemon_debug.h b/include/constants/pokemon_debug.h new file mode 100644 index 0000000000..b8ea284bce --- /dev/null +++ b/include/constants/pokemon_debug.h @@ -0,0 +1,47 @@ +#ifndef GUARD_CONSTANTS_POKEMON_DEBUG_H +#define GUARD_CONSTANTS_POKEMON_DEBUG_H + +//Defines +#define DEBUG_MON_X 144 + 32 +#define DEBUG_MON_Y 11 + 40 +#define DEBUG_MON_BACK_X 62 +#define DEBUG_MON_BACK_Y 80 +#define DEBUG_ICON_X 19 +#define DEBUG_ICON_Y 19 +#define DEBUG_MON_SHINY 0 +#define DEBUG_MON_NORMAL 9 + +#define MODIFY_DIGITS_MAX 4 +#define MODIFY_DIGITS_ARROW_X 41 +#define MODIFY_DIGITS_ARROW1_Y 12 +#define MODIFY_DIGITS_ARROW2_Y 36 + +#define GENDER_MALE 0 +#define GENDER_FEMALE 1 +#define MON_PIC_BACK 0 +#define MON_PIC_FRONT 1 + +//Windows +#define WIN_NAME_NUMBERS 0 +#define WIN_INSTRUCTIONS 1 +#define WIN_ANIM_INFORMATION_FRONT 2 +#define WIN_ANIM_INFORMATION_BACK 3 +#define WIN_END 4 + +//Battle backgrounds +#define MAP_BATTLE_SCENE_NORMAL 0 +#define MAP_BATTLE_SCENE_GYM 1 +#define MAP_BATTLE_SCENE_MAGMA 2 +#define MAP_BATTLE_SCENE_AQUA 3 +#define MAP_BATTLE_SCENE_SIDNEY 4 +#define MAP_BATTLE_SCENE_PHOEBE 5 +#define MAP_BATTLE_SCENE_GLACIA 6 +#define MAP_BATTLE_SCENE_DRAKE 7 +#define MAP_BATTLE_SCENE_FRONTIER 8 +#define MAP_BATTLE_SCENE_LEADER 9 +#define MAP_BATTLE_SCENE_WALLACE 10 +#define MAP_BATTLE_SCENE_GROUDON 11 +#define MAP_BATTLE_SCENE_KYOGRE 12 +#define MAP_BATTLE_SCENE_RAYQUAZA 13 + +#endif // GUARD_CONSTANTS_POKEMON_DEBUG_H \ No newline at end of file diff --git a/include/pokemon_debug.h b/include/pokemon_debug.h index c9bfafc10c..7157ffbe19 100644 --- a/include/pokemon_debug.h +++ b/include/pokemon_debug.h @@ -1,6 +1,39 @@ #ifndef GUARD_POKEMON_DEBUG_H #define GUARD_POKEMON_DEBUG_H +#include "constants/pokemon_debug.h" + +//Structs +struct PokemonDebugModifyArrows +{ + u8 arrowSpriteId[2]; + u16 minValue; + u16 maxValue; + int currValue; + u8 currentDigit; + u8 maxDigits; + u8 charDigits[MODIFY_DIGITS_MAX]; + void *modifiedValPtr; + u8 typeOfVal; +}; + +struct PokemonDebugMenu +{ + u16 currentmonId; + u8 currentmonWindowId; + u8 InstructionsWindowId; + u8 frontspriteId; + u8 backspriteId; + u8 iconspriteId; + bool8 isShiny; + bool8 isFemale; + struct PokemonDebugModifyArrows modifyArrows; + u8 animIdBack; + u8 animIdFront; + u8 battleBgType; + u8 battleTerrain; +}; + void CB2_Debug_Pokemon(void); diff --git a/src/battle_bg.c b/src/battle_bg.c index 65f30243e9..298a3565a8 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -24,6 +24,7 @@ #include "constants/songs.h" #include "constants/trainers.h" +#if !P_ENABLE_DEBUG struct BattleBackground { const void *tileset; @@ -32,6 +33,7 @@ struct BattleBackground const void *entryTilemap; const void *palette; }; +#endif // .rodata static const u16 sUnrefArray[] = {0x0300, 0x0000}; //OamData? diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index b102b1d86f..4a391182e3 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -32,63 +32,24 @@ #include "string_util.h" #include "strings.h" #include "task.h" +#include "text_window.h" #include "trainer_pokemon_sprites.h" #include "constants/items.h" -//Defines -#define DEBUG_MON_X 144 + 32 -#define DEBUG_MON_Y 11 + 40 -#define DEBUG_MON_BACK_X 62 -#define DEBUG_MON_BACK_Y 80 -#define DEBUG_ICON_X 19 -#define DEBUG_ICON_Y 19 -#define DEBUG_MON_SHINY 0 -#define DEBUG_MON_NORMAL 9 - -#define MODIFY_DIGITS_MAX 4 -#define MODIFY_DIGITS_ARROW_X 41 -#define MODIFY_DIGITS_ARROW1_Y 12 -#define MODIFY_DIGITS_ARROW2_Y 36 - -#define GENDER_MALE 0 -#define GENDER_FEMALE 1 -#define MON_PIC_BACK 0 -#define MON_PIC_FRONT 1 - +#if P_ENABLE_DEBUG +extern const struct BattleBackground sBattleTerrainTable[]; +extern const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1]; static const u16 sBgColor[] = {RGB_WHITE}; -//Structs -struct PokemonDebugModifyArrows +static struct PokemonDebugMenu *GetStructPtr(u8 taskId) { - u8 arrowSpriteId[2]; - u16 minValue; - u16 maxValue; - int currValue; - u8 currentDigit; - u8 maxDigits; - u8 charDigits[MODIFY_DIGITS_MAX]; - void *modifiedValPtr; - u8 typeOfVal; -}; + u8 *taskDataPtr = (u8*)(&gTasks[taskId].data[0]); -struct PokemonDebugMenu -{ - u16 currentmonId; - u8 currentmonWindowId; - u8 InstructionsWindowId; - u8 frontspriteId; - u8 backspriteId; - u8 iconspriteId; - bool8 isShiny; - bool8 isFemale; - struct PokemonDebugModifyArrows modifyArrows; - u8 animIdBack; - u8 animIdFront; - u8 battleBgType; - u8 battleTerrain; -}; + return (struct PokemonDebugMenu*)(T1_READ_PTR(taskDataPtr)); +} +//BgTemplates static const struct BgTemplate sBgTemplates[] = { { @@ -130,11 +91,6 @@ static const struct BgTemplate sBgTemplates[] = }; //WindowTemplates -#define WIN_NAME_NUMBERS 0 -#define WIN_INSTRUCTIONS 1 -#define WIN_ANIM_INFORMATION_FRONT 2 -#define WIN_ANIM_INFORMATION_BACK 3 -#define WIN_END 4 static const struct WindowTemplate sPokemonDebugWindowTemplate[] = { [WIN_NAME_NUMBERS] = { @@ -176,8 +132,7 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = DUMMY_WIN_TEMPLATE, }; -#if P_ENABLE_DEBUG -extern const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1]; +//Lookup tables const u8 gBackAnimNames[][23 + 1] = { [BACK_ANIM_NONE] = _("NONE"), @@ -377,13 +332,6 @@ static void Handle_Input_Debug_Pokemon(u8); static void ReloadPokemonSprites(struct PokemonDebugMenu *data); static void Exit_Debug_Pokemon(u8); -static struct PokemonDebugMenu *GetStructPtr(u8 taskId) -{ - u8 *taskDataPtr = (u8*)(&gTasks[taskId].data[0]); - - return (struct PokemonDebugMenu*)(T1_READ_PTR(taskDataPtr)); -} - //Text handling functions static void PadString(const u8 *src, u8 *dst) { @@ -657,29 +605,6 @@ void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isS } //Battle background functions -struct BattleBackground -{ - const void *tileset; - const void *tilemap; - const void *entryTileset; - const void *entryTilemap; - const void *palette; -}; -extern const struct BattleBackground sBattleTerrainTable[]; -#define MAP_BATTLE_SCENE_NORMAL 0 -#define MAP_BATTLE_SCENE_GYM 1 -#define MAP_BATTLE_SCENE_MAGMA 2 -#define MAP_BATTLE_SCENE_AQUA 3 -#define MAP_BATTLE_SCENE_SIDNEY 4 -#define MAP_BATTLE_SCENE_PHOEBE 5 -#define MAP_BATTLE_SCENE_GLACIA 6 -#define MAP_BATTLE_SCENE_DRAKE 7 -#define MAP_BATTLE_SCENE_FRONTIER 8 -#define MAP_BATTLE_SCENE_LEADER 9 -#define MAP_BATTLE_SCENE_WALLACE 10 -#define MAP_BATTLE_SCENE_GROUDON 11 -#define MAP_BATTLE_SCENE_KYOGRE 12 -#define MAP_BATTLE_SCENE_RAYQUAZA 13 static void LoadBattleBg(u8 battleBgType, u8 battleTerrain) { switch (battleBgType) @@ -796,6 +721,7 @@ static void ResetPokemonDebugWindows(void) CopyWindowToVram(i, 3); } } + void CB2_Debug_Pokemon(void) { u8 taskId; @@ -824,7 +750,8 @@ void CB2_Debug_Pokemon(void) FreeAllSpritePalettes(); gReservedSpritePaletteCount = 8; ResetAllPicSprites(); - //BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + LoadPalette(GetTextWindowPalette(0), 15*16, 0x40); FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 15); InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); From 51371661c2aa4bccdc75e436d54e9f8ae215825b Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Sat, 11 Dec 2021 15:03:56 +0100 Subject: [PATCH 53/95] Added new menu naviagtion, now all options can be changed --- include/constants/pokemon_debug.h | 18 +- include/pokemon_debug.h | 10 + src/pokemon_debug.c | 531 +++++++++++++++++++++--------- 3 files changed, 400 insertions(+), 159 deletions(-) diff --git a/include/constants/pokemon_debug.h b/include/constants/pokemon_debug.h index b8ea284bce..326c5d052b 100644 --- a/include/constants/pokemon_debug.h +++ b/include/constants/pokemon_debug.h @@ -6,15 +6,19 @@ #define DEBUG_MON_Y 11 + 40 #define DEBUG_MON_BACK_X 62 #define DEBUG_MON_BACK_Y 80 -#define DEBUG_ICON_X 19 -#define DEBUG_ICON_Y 19 +#define DEBUG_ICON_X 220 +#define DEBUG_ICON_Y 140 #define DEBUG_MON_SHINY 0 #define DEBUG_MON_NORMAL 9 #define MODIFY_DIGITS_MAX 4 -#define MODIFY_DIGITS_ARROW_X 41 -#define MODIFY_DIGITS_ARROW1_Y 12 -#define MODIFY_DIGITS_ARROW2_Y 36 +#define MODIFY_DIGITS_ARROW_X 129 +#define MODIFY_DIGITS_ARROW1_Y 94 +#define MODIFY_DIGITS_ARROW2_Y 113 + +#define OPTIONS_ARROW_1_X 4 +#define OPTIONS_ARROW_2_X 236 +#define OPTIONS_ARROW_Y 119 #define GENDER_MALE 0 #define GENDER_FEMALE 1 @@ -24,8 +28,8 @@ //Windows #define WIN_NAME_NUMBERS 0 #define WIN_INSTRUCTIONS 1 -#define WIN_ANIM_INFORMATION_FRONT 2 -#define WIN_ANIM_INFORMATION_BACK 3 +#define WIN_BOTTOM_LEFT 2 +#define WIN_BOTTOM_RIGHT 3 #define WIN_END 4 //Battle backgrounds diff --git a/include/pokemon_debug.h b/include/pokemon_debug.h index 7157ffbe19..0d550c79ff 100644 --- a/include/pokemon_debug.h +++ b/include/pokemon_debug.h @@ -17,6 +17,13 @@ struct PokemonDebugModifyArrows u8 typeOfVal; }; +struct PokemonDebugOptionArrows +{ + u8 arrowSpriteId[2]; + u8 currentDigit; + void *modifiedValPtr; +}; + struct PokemonDebugMenu { u16 currentmonId; @@ -28,10 +35,13 @@ struct PokemonDebugMenu bool8 isShiny; bool8 isFemale; struct PokemonDebugModifyArrows modifyArrows; + struct PokemonDebugOptionArrows optionArrows; u8 animIdBack; u8 animIdFront; u8 battleBgType; u8 battleTerrain; + bool8 inSubmenu; + u8 submenuYpos; }; void CB2_Debug_Pokemon(void); diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 4a391182e3..df9ebf4d6f 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -95,39 +95,39 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = { [WIN_NAME_NUMBERS] = { .bg = 0, - .tilemapLeft = 4, - .tilemapTop = 2, - .width = 14, + .tilemapLeft = 15, + .tilemapTop = 12, + .width = 15, .height = 2, .paletteNum = 0xF, .baseBlock = 1 }, [WIN_INSTRUCTIONS] = { .bg = 0, - .tilemapLeft = 1, - .tilemapTop = 15, + .tilemapLeft = 0, + .tilemapTop = 0, .width = 15, - .height = 5, + .height = 4, .paletteNum = 0xF, - .baseBlock = 1 + 28 + .baseBlock = 1 + 30 }, - [WIN_ANIM_INFORMATION_FRONT] = { + [WIN_BOTTOM_LEFT] = { .bg = 0, - .tilemapLeft = 14, - .tilemapTop = 12, - .width = 16, - .height = 3, + .tilemapLeft = 1, + .tilemapTop = 14, + .width = 5, + .height = 6, .paletteNum = 0xF, - .baseBlock = 1 + 28 + 75 + .baseBlock = 1 + 30 + 60 }, - [WIN_ANIM_INFORMATION_BACK] = { + [WIN_BOTTOM_RIGHT] = { .bg = 0, - .tilemapLeft = 14, - .tilemapTop = 15, - .width = 16, - .height = 3, + .tilemapLeft = 6, + .tilemapTop = 14, + .width = 25, + .height = 6, .paletteNum = 0xF, - .baseBlock = 1 + 28 + 75 + 48 + .baseBlock = 1 + 30 + 60 + 30 }, DUMMY_WIN_TEMPLATE, }; @@ -319,7 +319,36 @@ const u8 gFrontAnimNames[][34] = [ANIM_SHAKE_GLOW_WHITE_SLOW] = _("SHAKE GLOW WHITE SLOW"), [ANIM_SHAKE_GLOW_PURPLE_SLOW] = _("SHAKE GLOW PURPLE SLOW"), }; - +const u8 gBattleBackgroundNames[][30] = +{ + [MAP_BATTLE_SCENE_NORMAL] = _("NORMAL "), + [MAP_BATTLE_SCENE_GYM] = _("GYM "), + [MAP_BATTLE_SCENE_MAGMA] = _("MAGMA "), + [MAP_BATTLE_SCENE_AQUA] = _("AQUA "), + [MAP_BATTLE_SCENE_SIDNEY] = _("SIDNEY "), + [MAP_BATTLE_SCENE_PHOEBE] = _("PHOEBE "), + [MAP_BATTLE_SCENE_GLACIA] = _("GLACIA "), + [MAP_BATTLE_SCENE_DRAKE] = _("DRAKE "), + [MAP_BATTLE_SCENE_FRONTIER] = _("FRONTIER "), + [MAP_BATTLE_SCENE_LEADER] = _("LEADER "), + [MAP_BATTLE_SCENE_WALLACE] = _("WALLACE "), + [MAP_BATTLE_SCENE_GROUDON] = _("GROUDON "), + [MAP_BATTLE_SCENE_KYOGRE] = _("KYOGRE "), + [MAP_BATTLE_SCENE_RAYQUAZA] = _("RAYQUAZA "), +}; +const u8 gBattleBackgroundTerrainNames[][26] = +{ + [BATTLE_TERRAIN_GRASS] = _("NORMAL - GRASS "), + [BATTLE_TERRAIN_LONG_GRASS] = _("NORMAL - LONG GRASS "), + [BATTLE_TERRAIN_SAND] = _("NORMAL - SAND "), + [BATTLE_TERRAIN_UNDERWATER] = _("NORMAL - UNDERWATER "), + [BATTLE_TERRAIN_WATER] = _("NORMAL - WATER "), + [BATTLE_TERRAIN_POND] = _("NORMAL - POND "), + [BATTLE_TERRAIN_MOUNTAIN] = _("NORMAL - MOUNTAIN "), + [BATTLE_TERRAIN_CAVE] = _("NORMAL - CAVE "), + [BATTLE_TERRAIN_BUILDING] = _("NORMAL - BUILDING "), + [BATTLE_TERRAIN_PLAIN] = _("NORMAL - PLAIN "), +}; //Function declarations static void PrintDigitChars(struct PokemonDebugMenu *data); static void SetUpModifyArrows(struct PokemonDebugMenu *data); @@ -346,31 +375,45 @@ static void PadString(const u8 *src, u8 *dst) dst[i] = EOS; } -static void PrintInstructionsOnWindow(u8 windowId, struct PokemonDebugMenu *data) +static void PrintInstructionsOnWindow(struct PokemonDebugMenu *data) { - u8 text[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny$"); - u8 textGender[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny\n{SELECT_BUTTON} Gender$"); - u8 textForms[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny {START_BUTTON} Forms$"); - u8 textGenderForms[] = _("{L_BUTTON} Back {R_BUTTON} Front\n{A_BUTTON} Shiny {START_BUTTON} Forms\n{SELECT_BUTTON} Gender$"); + u8 fontId = 0; + u8 x = 2; + u8 textInstructions[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Exit {A_BUTTON} Submenu$"); + u8 textInstructionsGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Exit {A_BUTTON} Submenu$"); + u8 textInstructionsInSubmenu[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back$"); + u8 textInstructionsInSubmenuGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back$"); + + u8 textBottom[] = _("BACK:\nFRONT:\nBG:$"); + u8 textBottomForms[] = _("BACK:\nFRONT:\nBG:\nFORMS:$"); u16 species = data->modifyArrows.currValue; - - FillWindowPixelBuffer(windowId, 0x11); - if (SpeciesHasGenderDifference[species]) + //Instruction window + FillWindowPixelBuffer(WIN_INSTRUCTIONS, 0x11); + if (data->inSubmenu) { - if (gFormSpeciesIdTables[data->currentmonId] != NULL) - AddTextPrinterParameterized(windowId, 0, textGenderForms, 0, 0, 0, NULL); + if (SpeciesHasGenderDifference[species]) + AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsInSubmenuGender, x, 0, 0, NULL); else - AddTextPrinterParameterized(windowId, 0, textGender, 0, 0, 0, NULL); + AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsInSubmenu, x, 0, 0, NULL); } else { - if (gFormSpeciesIdTables[data->currentmonId] != NULL) - AddTextPrinterParameterized(windowId, 0, textForms, 0, 0, 0, NULL); + if (SpeciesHasGenderDifference[species]) + AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsGender, x, 0, 0, NULL); else - AddTextPrinterParameterized(windowId, 0, text, 0, 0, 0, NULL); + AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructions, x, 0, 0, NULL); + } + CopyWindowToVram(WIN_INSTRUCTIONS, 3); + + //Bottom left text + if (gFormSpeciesIdTables[data->currentmonId] != NULL) + AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottomForms, 0, 0, 0, NULL); + else + { + FillWindowPixelBuffer(WIN_BOTTOM_LEFT, PIXEL_FILL(0)); + AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottom, 0, 0, 0, NULL); } - CopyWindowToVram(windowId, 3); } static void VBlankCB(void) @@ -462,6 +505,15 @@ static void ValueToCharDigits(u8 *charDigits, u32 newValue, u8 maxDigits) charDigits[i] = valueDigits[i] + CHAR_0; } +static void SetArrowInvisibility(struct PokemonDebugMenu *data) +{ + bool8 invisible = data->inSubmenu; + gSprites[data->modifyArrows.arrowSpriteId[0]].invisible = invisible; + gSprites[data->modifyArrows.arrowSpriteId[1]].invisible = invisible; + gSprites[data->optionArrows.arrowSpriteId[0]].invisible = !invisible; + //gSprites[data->optionArrows.arrowSpriteId[1]].invisible = !invisible; +} + static void SetUpModifyArrows(struct PokemonDebugMenu *data) { LoadSpritePalette(&sSpritePalette_Arrow); @@ -480,6 +532,19 @@ static void SetUpModifyArrows(struct PokemonDebugMenu *data) ValueToCharDigits(data->modifyArrows.charDigits, data->modifyArrows.currValue, data->modifyArrows.maxDigits); } +static void SetUpOptionArrows(struct PokemonDebugMenu *data) +{ + LoadSpritePalette(&sSpritePalette_Arrow); + data->optionArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y, 0); + //data->optionArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_2_X, OPTIONS_ARROW_Y, 0); + gSprites[data->optionArrows.arrowSpriteId[0]].animNum = 2; + + data->optionArrows.currentDigit = 0; + + gSprites[data->optionArrows.arrowSpriteId[0]].invisible = TRUE; + //gSprites[data->optionArrows.arrowSpriteId[1]].invisible = TRUE; +} + static bool32 TryMoveDigit(struct PokemonDebugModifyArrows *modArrows, bool32 moveUp) { s32 i; @@ -681,6 +746,71 @@ static void LoadBattleBg(u8 battleBgType, u8 battleTerrain) break; } } +static void PrintBattleBgName(u8 taskId) +{ + struct PokemonDebugMenu *data = GetStructPtr(taskId); + u8 fontId = 0; + u8 text[30+1]; + + if (data->battleBgType == 0) + StringCopy(text, gBattleBackgroundTerrainNames[data->battleTerrain]); + else + StringCopy(text, gBattleBackgroundNames[data->battleBgType]); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 0, 24, 0, NULL); +} +static void UpdateBattleBg(u8 taskId, bool8 increment) +{ + struct PokemonDebugMenu *data = GetStructPtr(taskId); + + if (data->battleBgType == 0) + { + if (increment) + { + if (data->battleTerrain == BATTLE_TERRAIN_PLAIN) + data->battleBgType += 1; + else + data->battleTerrain += 1; + } + else + { + if (data->battleTerrain == BATTLE_TERRAIN_GRASS) + data->battleBgType = MAP_BATTLE_SCENE_RAYQUAZA; + else + data->battleTerrain -= 1; + } + } + else if (data->battleBgType == MAP_BATTLE_SCENE_GYM) + { + if (increment) + data->battleBgType += 1; + else + { + data->battleBgType = MAP_BATTLE_SCENE_NORMAL; + data->battleTerrain = BATTLE_TERRAIN_PLAIN; + } + } + else if (data->battleBgType == MAP_BATTLE_SCENE_RAYQUAZA) + { + if (increment) + { + data->battleBgType = MAP_BATTLE_SCENE_NORMAL; + data->battleTerrain = BATTLE_TERRAIN_GRASS; + } + else + data->battleBgType -= 1; + } + else + { + if (increment) + data->battleBgType += 1; + else + data->battleBgType -= 1; + } + + PrintBattleBgName(taskId); + + LoadBattleBg(data->battleBgType, data->battleTerrain); +} // ******************************* // Main functions @@ -689,22 +819,23 @@ static void UpdateMonAnimNames(u8 taskId) struct PokemonDebugMenu *data = GetStructPtr(taskId); u8 frontAnim = data->animIdFront; u8 backAnim = data->animIdBack; - u8 textFront[] = _("FRONT {R_BUTTON} + {DPAD_LEFTRIGHT}$"); - u8 textBack[] = _("BACK {L_BUTTON} + {DPAD_LEFTRIGHT}$"); u8 text[34]; u8 fontId = 0; + u8 textL[] = _("{L_BUTTON}"); + u8 textR[] = _("{R_BUTTON}"); - //Front - FillWindowPixelBuffer(WIN_ANIM_INFORMATION_FRONT, PIXEL_FILL(0)); - AddTextPrinterParameterized(WIN_ANIM_INFORMATION_FRONT, fontId, textFront, 0, 0, 0, NULL); - StringCopy(text, gFrontAnimNames[frontAnim]); - AddTextPrinterParameterized(WIN_ANIM_INFORMATION_FRONT, fontId, text, 4, 12, 0, NULL); + FillWindowPixelBuffer(WIN_BOTTOM_RIGHT, PIXEL_FILL(0)); //Back - FillWindowPixelBuffer(WIN_ANIM_INFORMATION_BACK, PIXEL_FILL(0)); - AddTextPrinterParameterized(WIN_ANIM_INFORMATION_BACK, fontId, textBack, 0, 0, 0, NULL); StringCopy(text, gBackAnimNames[backAnim]); - AddTextPrinterParameterized(WIN_ANIM_INFORMATION_BACK, fontId, text, 4, 12, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textL, 0, 0, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 20, 0, 0, NULL); + //Front + StringCopy(text, gFrontAnimNames[frontAnim]); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textR, 0, 12, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 20, 12, 0, NULL); + + PrintBattleBgName(taskId); } static void ResetPokemonDebugWindows(void) @@ -762,7 +893,7 @@ void CB2_Debug_Pokemon(void) gMain.state++; break; case 2: - ResetPokemonDebugWindows(); + ResetPokemonDebugWindows(); gMain.state++; break; case 3: @@ -787,7 +918,7 @@ void CB2_Debug_Pokemon(void) species = data->currentmonId; //Print instructions - PrintInstructionsOnWindow(WIN_INSTRUCTIONS, data); + PrintInstructionsOnWindow(data); //Palettes palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); @@ -822,11 +953,17 @@ void CB2_Debug_Pokemon(void) SetUpModifyArrows(data); PrintDigitChars(data); + //Option Arrows + SetUpOptionArrows(data); + //Anim names data->animIdBack = GetSpeciesBackAnimSet(species) + 1; data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; UpdateMonAnimNames(taskId); + //BattleNg Name + PrintBattleBgName(taskId); + gMain.state++; break; case 4: @@ -885,60 +1022,102 @@ static void ResetBGs_Debug_Menu(u16 a) } } +static void UpdateSubmenuOptionValue(u8 taskId, bool8 increment) +{ + struct PokemonDebugMenu *data = GetStructPtr(taskId); + u8 option = data->submenuYpos; + + switch (option) + { + case 0: + if (increment) + { + if (data->animIdBack >= BACK_ANIM_SHAKE_GLOW_BLUE) + data->animIdBack = 1; + else + data->animIdBack += 1; + } + else + { + if (data->animIdBack <= 1) + data->animIdBack = BACK_ANIM_SHAKE_GLOW_BLUE; + else + data->animIdBack -= 1; + } + UpdateMonAnimNames(taskId); + break; + case 1: + if (increment) + { + if (data->animIdFront >= ANIM_SHAKE_GLOW_PURPLE_SLOW) + data->animIdFront = 0; + else + data->animIdFront += 1; + } + else + { + if (data->animIdFront <= 0) + data->animIdFront = ANIM_SHAKE_GLOW_PURPLE_SLOW; + else + data->animIdFront -= 1; + } + UpdateMonAnimNames(taskId); + break; + case 2: + UpdateBattleBg(taskId, increment); + break; + case 3: + if (gFormSpeciesIdTables[data->currentmonId] != NULL) + { + struct PokemonDebugModifyArrows *modArrows = &data->modifyArrows; + u8 formId = GetFormIdFromFormSpeciesId(data->currentmonId); + if (increment) + { + if (gFormSpeciesIdTables[data->currentmonId][formId + 1] != FORM_SPECIES_END) + modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId + 1); + else + modArrows->currValue = gFormSpeciesIdTables[data->currentmonId][0]; + } + else + { + if (gFormSpeciesIdTables[data->currentmonId][formId] == gFormSpeciesIdTables[data->currentmonId][0]) + modArrows->currValue = gFormSpeciesIdTables[data->currentmonId][0]; + else + modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId - 1); + } + + UpdateBattlerValue(data); + ReloadPokemonSprites(data); + while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); + PlaySE(SE_DEX_SCROLL); + } + break; + default: + break; + } +} + + static void Handle_Input_Debug_Pokemon(u8 taskId) { struct PokemonDebugMenu *data = GetStructPtr(taskId); struct Sprite *Frontsprite = &gSprites[data->frontspriteId]; struct Sprite *Backsprite = &gSprites[data->backspriteId]; - - //Back - if (JOY_HELD(L_BUTTON) && JOY_NEW(DPAD_LEFT)) - { - if (data->animIdBack <= 1) - data->animIdBack = BACK_ANIM_SHAKE_GLOW_BLUE; - else - data->animIdBack -= 1; - UpdateMonAnimNames(taskId); - } - else if (JOY_HELD(L_BUTTON) && JOY_NEW(DPAD_RIGHT)) - { - if (data->animIdBack >= BACK_ANIM_SHAKE_GLOW_BLUE) - data->animIdBack = 1; - else - data->animIdBack += 1; - UpdateMonAnimNames(taskId); - } - else if (JOY_NEW(L_BUTTON) && (Backsprite->callback == SpriteCallbackDummy)) + + if (JOY_NEW(L_BUTTON) && (Backsprite->callback == SpriteCallbackDummy)) { PlayCryInternal(data->currentmonId, 0, 120, 10, 0); LaunchAnimationTaskForBackSprite(Backsprite, data->animIdBack-1); } - //Front - else if (JOY_HELD(R_BUTTON) && JOY_NEW(DPAD_LEFT)) - { - if (data->animIdFront <= 0) - data->animIdFront = ANIM_SHAKE_GLOW_PURPLE_SLOW; - else - data->animIdFront -= 1; - UpdateMonAnimNames(taskId); - } - else if (JOY_HELD(R_BUTTON) && JOY_NEW(DPAD_RIGHT)) - { - if (data->animIdFront >= ANIM_SHAKE_GLOW_PURPLE_SLOW) - data->animIdFront = 0; - else - data->animIdFront += 1; - UpdateMonAnimNames(taskId); - } - else if (JOY_NEW(R_BUTTON) && (Frontsprite->callback == SpriteCallbackDummy)) + + if (JOY_NEW(R_BUTTON) && (Frontsprite->callback == SpriteCallbackDummy)) { PlayCryInternal(data->currentmonId, 0, 120, 10, 0); if (HasTwoFramesAnimation(data->currentmonId)) StartSpriteAnim(Frontsprite, 1); LaunchAnimationTaskForFrontSprite(Frontsprite, data->animIdFront); } - //Rest - else if (JOY_NEW(A_BUTTON)) + if (JOY_NEW(START_BUTTON)) { data->isShiny = !data->isShiny; @@ -948,31 +1127,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) ReloadPokemonSprites(data); } - else if (JOY_NEW(B_BUTTON)) - { - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); - gTasks[taskId].func = Exit_Debug_Pokemon; - PlaySE(SE_PC_OFF); - } - else if (JOY_NEW(START_BUTTON)) - { - if (gFormSpeciesIdTables[data->currentmonId] != NULL) - { - struct PokemonDebugModifyArrows *modArrows = &data->modifyArrows; - u8 formId = GetFormIdFromFormSpeciesId(data->currentmonId); - if (gFormSpeciesIdTables[data->currentmonId][formId + 1] != FORM_SPECIES_END) - modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId + 1); - else - modArrows->currValue = gFormSpeciesIdTables[data->currentmonId][0]; - - PrintDigitChars(data); - UpdateBattlerValue(data); - ReloadPokemonSprites(data); - while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); - PlaySE(SE_DEX_SCROLL); - } - } - else if (JOY_NEW(SELECT_BUTTON) && SpeciesHasGenderDifference[data->currentmonId]) + if (JOY_NEW(SELECT_BUTTON) && SpeciesHasGenderDifference[data->currentmonId]) { data->isFemale = !data->isFemale; PrintDigitChars(data); @@ -981,54 +1136,120 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); PlaySE(SE_DEX_SCROLL); } - else if (JOY_NEW(DPAD_DOWN)) // || gMain.heldKeys & DPAD_DOWN) + + if (!data->inSubmenu) { - if (TryMoveDigit(&data->modifyArrows, FALSE)) + if (JOY_NEW(A_BUTTON)) { - data->isFemale = FALSE; - PrintDigitChars(data); - UpdateBattlerValue(data); - ReloadPokemonSprites(data); - data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; - data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; - UpdateMonAnimNames(taskId); + data->inSubmenu = TRUE; + SetArrowInvisibility(data); + PrintInstructionsOnWindow(data); + } + else if (JOY_NEW(B_BUTTON)) + { + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); + gTasks[taskId].func = Exit_Debug_Pokemon; + PlaySE(SE_PC_OFF); + } + else if (JOY_NEW(DPAD_DOWN)) + { + if (TryMoveDigit(&data->modifyArrows, FALSE)) + { + data->isFemale = FALSE; + PrintDigitChars(data); + UpdateBattlerValue(data); + ReloadPokemonSprites(data); + data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; + data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; + UpdateMonAnimNames(taskId); + } + PlaySE(SE_DEX_SCROLL); + while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); + } + else if (JOY_NEW(DPAD_UP)) + { + if (TryMoveDigit(&data->modifyArrows, TRUE)) + { + data->isFemale = FALSE; + PrintDigitChars(data); + UpdateBattlerValue(data); + ReloadPokemonSprites(data); + data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; + data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; + UpdateMonAnimNames(taskId); + } + + PlaySE(SE_DEX_SCROLL); + } + else if (JOY_NEW(DPAD_LEFT)) + { + if (data->modifyArrows.currentDigit != 0) + { + data->modifyArrows.currentDigit--; + gSprites[data->modifyArrows.arrowSpriteId[0]].x2 -= 6; + gSprites[data->modifyArrows.arrowSpriteId[1]].x2 -= 6; + } + } + else if (JOY_NEW(DPAD_RIGHT)) + { + if (data->modifyArrows.currentDigit != (data->modifyArrows.maxDigits - 1)) + { + data->modifyArrows.currentDigit++; + gSprites[data->modifyArrows.arrowSpriteId[0]].x2 += 6; + gSprites[data->modifyArrows.arrowSpriteId[1]].x2 += 6; + } } - PlaySE(SE_DEX_SCROLL); - - while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); } - else if (JOY_NEW(DPAD_UP)) // || gMain.heldKeys & DPAD_UP) + else //Submenu { - if (TryMoveDigit(&data->modifyArrows, TRUE)) + if (JOY_NEW(B_BUTTON)) { - data->isFemale = FALSE; - PrintDigitChars(data); - UpdateBattlerValue(data); - ReloadPokemonSprites(data); - data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; - data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; - UpdateMonAnimNames(taskId); + data->inSubmenu = FALSE; + if (data->submenuYpos == 3) + { + data->submenuYpos = 2; + data->optionArrows.currentDigit = data->submenuYpos; + gSprites[data->optionArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; + } + SetArrowInvisibility(data); + PrintInstructionsOnWindow(data); } - - PlaySE(SE_DEX_SCROLL); - } - else if (JOY_NEW(DPAD_LEFT)) // || gMain.heldKeys & DPAD_LEFT) - { - if (data->modifyArrows.currentDigit != 0) + else if (JOY_NEW(DPAD_DOWN)) { - data->modifyArrows.currentDigit--; - gSprites[data->modifyArrows.arrowSpriteId[0]].x2 -= 6; - gSprites[data->modifyArrows.arrowSpriteId[1]].x2 -= 6; + data->submenuYpos += 1; + if (data->submenuYpos >= 3) + { + if ((gFormSpeciesIdTables[data->currentmonId] == NULL) || (data->submenuYpos >= 4)) + data->submenuYpos = 0; + } + data->optionArrows.currentDigit = data->submenuYpos; + gSprites[data->optionArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; + //gSprites[data->optionArrows.arrowSpriteId[1]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; } - } - else if (JOY_NEW(DPAD_RIGHT)) // || gMain.heldKeys & DPAD_RIGHT) - { - if (data->modifyArrows.currentDigit != (data->modifyArrows.maxDigits - 1)) + else if (JOY_NEW(DPAD_UP)) { - data->modifyArrows.currentDigit++; - gSprites[data->modifyArrows.arrowSpriteId[0]].x2 += 6; - gSprites[data->modifyArrows.arrowSpriteId[1]].x2 += 6; + if (data->submenuYpos == 0) + { + if (gFormSpeciesIdTables[data->currentmonId] != NULL) + data->submenuYpos = 3; + else + data->submenuYpos = 2; + } + else + data->submenuYpos -= 1; + + data->optionArrows.currentDigit = data->submenuYpos; + gSprites[data->optionArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; + //gSprites[data->optionArrows.arrowSpriteId[1]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; + } + else if (JOY_NEW(DPAD_LEFT)) + { + UpdateSubmenuOptionValue(taskId, FALSE); + } + else if (JOY_NEW(DPAD_RIGHT)) + { + UpdateSubmenuOptionValue(taskId, TRUE); } } } @@ -1054,11 +1275,8 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) AllocateMonSpritesGfx(); LoadMonIconPalette(species); - //Battle background - LoadBattleBg(data->battleBgType, data->battleTerrain); - //Update instructions - PrintInstructionsOnWindow(WIN_INSTRUCTIONS, data); + PrintInstructionsOnWindow(data); //Palettes palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); @@ -1092,6 +1310,15 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) data->modifyArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW1_Y, 0); data->modifyArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW2_Y, 0); gSprites[data->modifyArrows.arrowSpriteId[1]].animNum = 1; + + //Option Arrows + LoadSpritePalette(&sSpritePalette_Arrow); + data->optionArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12, 0); + //data->optionArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_2_X, OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12, 0); + gSprites[data->optionArrows.arrowSpriteId[0]].animNum = 2; + + //Arrow invisibility + SetArrowInvisibility(data); } static void Exit_Debug_Pokemon(u8 taskId) From a249737e0ebd84107b5c40ba55a0fd10918e1f7a Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Sat, 11 Dec 2021 15:06:54 +0100 Subject: [PATCH 54/95] removed dead code (arrows dont have a left animation) --- src/pokemon_debug.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index df9ebf4d6f..6acd566dd1 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -511,7 +511,6 @@ static void SetArrowInvisibility(struct PokemonDebugMenu *data) gSprites[data->modifyArrows.arrowSpriteId[0]].invisible = invisible; gSprites[data->modifyArrows.arrowSpriteId[1]].invisible = invisible; gSprites[data->optionArrows.arrowSpriteId[0]].invisible = !invisible; - //gSprites[data->optionArrows.arrowSpriteId[1]].invisible = !invisible; } static void SetUpModifyArrows(struct PokemonDebugMenu *data) @@ -536,13 +535,11 @@ static void SetUpOptionArrows(struct PokemonDebugMenu *data) { LoadSpritePalette(&sSpritePalette_Arrow); data->optionArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y, 0); - //data->optionArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_2_X, OPTIONS_ARROW_Y, 0); gSprites[data->optionArrows.arrowSpriteId[0]].animNum = 2; data->optionArrows.currentDigit = 0; gSprites[data->optionArrows.arrowSpriteId[0]].invisible = TRUE; - //gSprites[data->optionArrows.arrowSpriteId[1]].invisible = TRUE; } static bool32 TryMoveDigit(struct PokemonDebugModifyArrows *modArrows, bool32 moveUp) @@ -1225,7 +1222,6 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) } data->optionArrows.currentDigit = data->submenuYpos; gSprites[data->optionArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; - //gSprites[data->optionArrows.arrowSpriteId[1]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; } else if (JOY_NEW(DPAD_UP)) { @@ -1241,7 +1237,6 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) data->optionArrows.currentDigit = data->submenuYpos; gSprites[data->optionArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; - //gSprites[data->optionArrows.arrowSpriteId[1]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; } else if (JOY_NEW(DPAD_LEFT)) { @@ -1314,7 +1309,6 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) //Option Arrows LoadSpritePalette(&sSpritePalette_Arrow); data->optionArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12, 0); - //data->optionArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_2_X, OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12, 0); gSprites[data->optionArrows.arrowSpriteId[0]].animNum = 2; //Arrow invisibility From 123969f093907507207135ffc69e673ceac569af Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Mon, 13 Dec 2021 15:05:17 +0100 Subject: [PATCH 55/95] fixed front sprite position including elevation and shadow for flying mon's (shadow palette too dark atm) --- include/constants/pokemon_debug.h | 2 - include/pokemon_debug.h | 1 + src/battle_anim_mons.c | 8 +++ src/pokemon_debug.c | 109 +++++++++++++++++++++++++++--- 4 files changed, 110 insertions(+), 10 deletions(-) diff --git a/include/constants/pokemon_debug.h b/include/constants/pokemon_debug.h index 326c5d052b..e9e1a58a34 100644 --- a/include/constants/pokemon_debug.h +++ b/include/constants/pokemon_debug.h @@ -2,8 +2,6 @@ #define GUARD_CONSTANTS_POKEMON_DEBUG_H //Defines -#define DEBUG_MON_X 144 + 32 -#define DEBUG_MON_Y 11 + 40 #define DEBUG_MON_BACK_X 62 #define DEBUG_MON_BACK_Y 80 #define DEBUG_ICON_X 220 diff --git a/include/pokemon_debug.h b/include/pokemon_debug.h index 0d550c79ff..1b8db76c12 100644 --- a/include/pokemon_debug.h +++ b/include/pokemon_debug.h @@ -32,6 +32,7 @@ struct PokemonDebugMenu u8 frontspriteId; u8 backspriteId; u8 iconspriteId; + u8 frontShadowSpriteId; bool8 isShiny; bool8 isFemale; struct PokemonDebugModifyArrows modifyArrows; diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 3b6cc0e918..86479aac5a 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -35,7 +35,11 @@ static void CreateBattlerTrace(struct Task *task, u8 taskId); EWRAM_DATA static union AffineAnimCmd *sAnimTaskAffineAnim = NULL; +#if P_ENABLE_DEBUG +const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] = +#else static const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] = +#endif { { // Single battle { 72, 80 }, @@ -60,7 +64,11 @@ const struct MonCoords gCastformFrontSpriteCoords[NUM_CASTFORM_FORMS] = [CASTFORM_ICE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, }; +#if P_ENABLE_DEBUG +const u8 sCastformElevations[NUM_CASTFORM_FORMS] = +#else static const u8 sCastformElevations[NUM_CASTFORM_FORMS] = +#endif { [CASTFORM_NORMAL] = 13, [CASTFORM_FIRE] = 14, diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 6acd566dd1..44e1124fc1 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -2,6 +2,7 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" +#include "battle_gfx_sfx_util.h" #include "bg.h" #include "constants/rgb.h" #include "constants/songs.h" @@ -39,6 +40,11 @@ #if P_ENABLE_DEBUG extern const struct BattleBackground sBattleTerrainTable[]; +extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow; +extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; +extern const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] ; +extern const struct MonCoords gCastformFrontSpriteCoords[NUM_CASTFORM_FORMS]; +extern const u8 sCastformElevations[NUM_CASTFORM_FORMS]; extern const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1]; static const u16 sBgColor[] = {RGB_WHITE}; @@ -666,6 +672,84 @@ void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isS LoadPalette(gDecompressionBuffer, 0x80 + battlerId * 16, 0x20); } +static bool8 IsCastformForm(species) +{ + if (species == SPECIES_CASTFORM || species == SPECIES_CASTFORM_SUNNY || species == SPECIES_CASTFORM_RAINY || species == SPECIES_CASTFORM_SNOWY) + return TRUE; + + return FALSE; +} + +static u8 GetCastformYCustom(species) +{ + u8 ret; + switch (species) + { + case SPECIES_CASTFORM: + ret = gCastformFrontSpriteCoords[CASTFORM_NORMAL].y_offset; + break; + case SPECIES_CASTFORM_SUNNY: + ret = gCastformFrontSpriteCoords[CASTFORM_FIRE].y_offset; + break; + case SPECIES_CASTFORM_RAINY: + ret = gCastformFrontSpriteCoords[CASTFORM_WATER].y_offset; + break; + case SPECIES_CASTFORM_SNOWY: + ret = gCastformFrontSpriteCoords[CASTFORM_ICE].y_offset; + break; + } + return ret; +} + +u8 GetBattlerSpriteFinal_YCustom(u16 species) +{ + u16 offset; + u8 y; + + if (IsCastformForm(species)) + offset = GetCastformYCustom(species); + else + offset = gMonFrontPicCoords[species].y_offset; + + + if (IsCastformForm(species)) + offset -= sCastformElevations[species]; + else + offset -= gEnemyMonElevation[species]; + + + y = offset + sBattlerCoords[0][1].y; + + if (y > DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8) + y = DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8; + + return y; +} + +void SpriteCB_EnemyShadowCustom(struct Sprite *shadowSprite) +{ + bool8 invisible = FALSE; + u8 frontSpriteId = shadowSprite->data[0]; + struct Sprite *battlerSprite = &gSprites[frontSpriteId]; + + shadowSprite->x = battlerSprite->x; + shadowSprite->x2 = battlerSprite->x2; + shadowSprite->invisible = invisible; +} +static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, u8 x, u8 y, u16 species) +{ + if (gEnemyMonElevation[species] == 0) + return; + LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadow); + + data->frontShadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, x, y + 29, 0xC8); + gSprites[data->frontShadowSpriteId].data[0] = data->frontspriteId; + + gSprites[data->frontShadowSpriteId].callback = SpriteCB_EnemyShadowCustom; + gSprites[data->frontShadowSpriteId].oam.priority = 0; + gSprites[data->frontShadowSpriteId].invisible = FALSE; +} + //Battle background functions static void LoadBattleBg(u8 battleBgType, u8 battleTerrain) { @@ -855,8 +939,10 @@ void CB2_Debug_Pokemon(void) u8 taskId; const struct CompressedSpritePalette *palette; struct PokemonDebugMenu *data; - s16 offset_x, offset_y; u16 species; + s16 offset_y; + u8 front_x = sBattlerCoords[0][1].x; + u8 front_y; switch (gMain.state) { @@ -927,10 +1013,13 @@ void CB2_Debug_Pokemon(void) BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); gMultiuseSpriteTemplate.paletteTag = palette->tag; - data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X, DEBUG_MON_Y, 0); + front_y = GetBattlerSpriteFinal_YCustom(species); + data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, front_x, front_y, 0); gSprites[data->frontspriteId].oam.paletteNum = 1; gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; + //Front Shadow + LoadAndCreateEnemyShadowSpriteCustom(data, front_x, front_y, species); //Back HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); @@ -1251,10 +1340,11 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) static void ReloadPokemonSprites(struct PokemonDebugMenu *data) { - s16 offset_x = 0; - s16 offset_y = 0; - u16 species = data->currentmonId; const struct CompressedSpritePalette *palette; + u16 species = data->currentmonId; + s16 offset_y; + u8 front_x = sBattlerCoords[0][1].x; + u8 front_y; DestroySprite(&gSprites[data->frontspriteId]); DestroySprite(&gSprites[data->backspriteId]); @@ -1281,18 +1371,21 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); gMultiuseSpriteTemplate.paletteTag = palette->tag; - data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_X, DEBUG_MON_Y, 0); + front_y = GetBattlerSpriteFinal_YCustom(species); + data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, front_x, front_y, 0); gSprites[data->frontspriteId].oam.paletteNum = 1; gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; + //Front Shadow + LoadAndCreateEnemyShadowSpriteCustom(data, front_x, front_y, species); //Back HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); - BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 4); + BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 5); SetMultiuseSpriteTemplateToPokemon(species, 2); offset_y = gMonBackPicCoords[species].y_offset; data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X, DEBUG_MON_BACK_Y + offset_y, 0); - gSprites[data->backspriteId].oam.paletteNum = 4; + gSprites[data->backspriteId].oam.paletteNum = 5; gSprites[data->backspriteId].callback = SpriteCallbackDummy; gSprites[data->backspriteId].oam.priority = 0; From e33abe6213678fca7c60fc2c8865110e9c6651c0 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Mon, 13 Dec 2021 15:13:51 +0100 Subject: [PATCH 56/95] fixed castform elevation calculation --- src/pokemon_debug.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 44e1124fc1..ec493a4a54 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -674,7 +674,7 @@ void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isS static bool8 IsCastformForm(species) { - if (species == SPECIES_CASTFORM || species == SPECIES_CASTFORM_SUNNY || species == SPECIES_CASTFORM_RAINY || species == SPECIES_CASTFORM_SNOWY) + if (species == SPECIES_CASTFORM_SUNNY || species == SPECIES_CASTFORM_RAINY || species == SPECIES_CASTFORM_SNOWY) return TRUE; return FALSE; @@ -706,14 +706,12 @@ u8 GetBattlerSpriteFinal_YCustom(u16 species) u16 offset; u8 y; - if (IsCastformForm(species)) - offset = GetCastformYCustom(species); - else - offset = gMonFrontPicCoords[species].y_offset; + offset = gMonFrontPicCoords[species].y_offset; - - if (IsCastformForm(species)) - offset -= sCastformElevations[species]; + if (species == SPECIES_CASTFORM) + offset -= sCastformElevations[0]; + else if (IsCastformForm(species)) + offset -= sCastformElevations[species - SPECIES_CASTFORM_SUNNY + 1]; else offset -= gEnemyMonElevation[species]; @@ -738,7 +736,7 @@ void SpriteCB_EnemyShadowCustom(struct Sprite *shadowSprite) } static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, u8 x, u8 y, u16 species) { - if (gEnemyMonElevation[species] == 0) + if (gEnemyMonElevation[species] == 0 && !IsCastformForm(species)) return; LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadow); From d300b8f56c63e9ae7796362bc7278e35925a56a7 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Mon, 13 Dec 2021 15:37:06 +0100 Subject: [PATCH 57/95] fixed front sprite shadow palette --- src/battle_gfx_sfx_util.c | 4 ++++ src/pokemon_debug.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 5667731e9e..508e250c15 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -77,7 +77,11 @@ static const struct CompressedSpriteSheet sSpriteSheets_HealthBar[MAX_BATTLERS_C {gBlankGfxCompressed, 0x0120, TAG_HEALTHBAR_OPPONENT2_TILE} }; +#if P_ENABLE_DEBUG +const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2] = +#else static const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2] = +#endif { {gBattleInterface_BallStatusBarPal, TAG_HEALTHBOX_PAL}, {gBattleInterface_BallDisplayPal, TAG_HEALTHBAR_PAL} diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index ec493a4a54..fd442386b4 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -42,6 +42,7 @@ extern const struct BattleBackground sBattleTerrainTable[]; extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow; extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; +extern const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2]; extern const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] ; extern const struct MonCoords gCastformFrontSpriteCoords[NUM_CASTFORM_FORMS]; extern const u8 sCastformElevations[NUM_CASTFORM_FORMS]; @@ -739,6 +740,7 @@ static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, if (gEnemyMonElevation[species] == 0 && !IsCastformForm(species)) return; LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadow); + LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]); data->frontShadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, x, y + 29, 0xC8); gSprites[data->frontShadowSpriteId].data[0] = data->frontspriteId; From 46977b52fad932c3d1417b60882c49476d617593 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Mon, 13 Dec 2021 13:39:12 -0300 Subject: [PATCH 58/95] Added the footprints of all Gen. 7 and 8 species --- include/graphics.h | 177 ++++++++++++++++++++ src/data/graphics/pokemon.h | 177 ++++++++++++++++++++ src/data/pokemon_graphics/footprint_table.h | 177 ++++++++++++++++++++ 3 files changed, 531 insertions(+) diff --git a/include/graphics.h b/include/graphics.h index 8f99b5ecf1..a0e0d6e365 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -6539,6 +6539,183 @@ extern const u8 gMonFootprint_Zygarde[]; extern const u8 gMonFootprint_Diancie[]; extern const u8 gMonFootprint_Hoopa[]; extern const u8 gMonFootprint_Volcanion[]; +extern const u8 gMonFootprint_Rowlet[]; +extern const u8 gMonFootprint_Dartrix[]; +extern const u8 gMonFootprint_Decidueye[]; +extern const u8 gMonFootprint_Litten[]; +extern const u8 gMonFootprint_Torracat[]; +extern const u8 gMonFootprint_Incineroar[]; +extern const u8 gMonFootprint_Popplio[]; +extern const u8 gMonFootprint_Brionne[]; +extern const u8 gMonFootprint_Primarina[]; +extern const u8 gMonFootprint_Pikipek[]; +extern const u8 gMonFootprint_Trumbeak[]; +extern const u8 gMonFootprint_Toucannon[]; +extern const u8 gMonFootprint_Yungoos[]; +extern const u8 gMonFootprint_Gumshoos[]; +extern const u8 gMonFootprint_Grubbin[]; +extern const u8 gMonFootprint_Charjabug[]; +extern const u8 gMonFootprint_Vikavolt[]; +extern const u8 gMonFootprint_Crabrawler[]; +extern const u8 gMonFootprint_Crabominable[]; +extern const u8 gMonFootprint_Oricorio[]; +extern const u8 gMonFootprint_Cutiefly[]; +extern const u8 gMonFootprint_Ribombee[]; +extern const u8 gMonFootprint_Rockruff[]; +extern const u8 gMonFootprint_Lycanroc[]; +extern const u8 gMonFootprint_Wishiwashi[]; +extern const u8 gMonFootprint_Mareanie[]; +extern const u8 gMonFootprint_Toxapex[]; +extern const u8 gMonFootprint_Mudbray[]; +extern const u8 gMonFootprint_Mudsdale[]; +extern const u8 gMonFootprint_Dewpider[]; +extern const u8 gMonFootprint_Araquanid[]; +extern const u8 gMonFootprint_Fomantis[]; +extern const u8 gMonFootprint_Lurantis[]; +extern const u8 gMonFootprint_Morelull[]; +extern const u8 gMonFootprint_Shiinotic[]; +extern const u8 gMonFootprint_Salandit[]; +extern const u8 gMonFootprint_Salazzle[]; +extern const u8 gMonFootprint_Stufful[]; +extern const u8 gMonFootprint_Bewear[]; +extern const u8 gMonFootprint_Bounsweet[]; +extern const u8 gMonFootprint_Steenee[]; +extern const u8 gMonFootprint_Tsareena[]; +extern const u8 gMonFootprint_Comfey[]; +extern const u8 gMonFootprint_Oranguru[]; +extern const u8 gMonFootprint_Passimian[]; +extern const u8 gMonFootprint_Wimpod[]; +extern const u8 gMonFootprint_Golisopod[]; +extern const u8 gMonFootprint_Sandygast[]; +extern const u8 gMonFootprint_Palossand[]; +extern const u8 gMonFootprint_Pyukumuku[]; +extern const u8 gMonFootprint_Type_Null[]; +extern const u8 gMonFootprint_Silvally[]; +extern const u8 gMonFootprint_Minior[]; +extern const u8 gMonFootprint_Komala[]; +extern const u8 gMonFootprint_Turtonator[]; +extern const u8 gMonFootprint_Togedemaru[]; +extern const u8 gMonFootprint_Mimikyu[]; +extern const u8 gMonFootprint_Bruxish[]; +extern const u8 gMonFootprint_Drampa[]; +extern const u8 gMonFootprint_Dhelmise[]; +extern const u8 gMonFootprint_Jangmo_o[]; +extern const u8 gMonFootprint_Hakamo_o[]; +extern const u8 gMonFootprint_Kommo_o[]; +extern const u8 gMonFootprint_Tapu_Koko[]; +extern const u8 gMonFootprint_Tapu_Lele[]; +extern const u8 gMonFootprint_Tapu_Bulu[]; +extern const u8 gMonFootprint_Tapu_Fini[]; +extern const u8 gMonFootprint_Cosmog[]; +extern const u8 gMonFootprint_Cosmoem[]; +extern const u8 gMonFootprint_Solgaleo[]; +extern const u8 gMonFootprint_Lunala[]; +extern const u8 gMonFootprint_Nihilego[]; +extern const u8 gMonFootprint_Buzzwole[]; +extern const u8 gMonFootprint_Pheromosa[]; +extern const u8 gMonFootprint_Xurkitree[]; +extern const u8 gMonFootprint_Celesteela[]; +extern const u8 gMonFootprint_Kartana[]; +extern const u8 gMonFootprint_Guzzlord[]; +extern const u8 gMonFootprint_Necrozma[]; +extern const u8 gMonFootprint_Magearna[]; +extern const u8 gMonFootprint_Marshadow[]; +extern const u8 gMonFootprint_Poipole[]; +extern const u8 gMonFootprint_Naganadel[]; +extern const u8 gMonFootprint_Stakataka[]; +extern const u8 gMonFootprint_Blacephalon[]; +extern const u8 gMonFootprint_Zeraora[]; +extern const u8 gMonFootprint_Meltan[]; +extern const u8 gMonFootprint_Melmetal[]; +extern const u8 gMonFootprint_Grookey[]; +extern const u8 gMonFootprint_Thwackey[]; +extern const u8 gMonFootprint_Rillaboom[]; +extern const u8 gMonFootprint_Scorbunny[]; +extern const u8 gMonFootprint_Raboot[]; +extern const u8 gMonFootprint_Cinderace[]; +extern const u8 gMonFootprint_Sobble[]; +extern const u8 gMonFootprint_Drizzile[]; +extern const u8 gMonFootprint_Inteleon[]; +extern const u8 gMonFootprint_Skwovet[]; +extern const u8 gMonFootprint_Greedent[]; +extern const u8 gMonFootprint_Rookidee[]; +extern const u8 gMonFootprint_Corvisquire[]; +extern const u8 gMonFootprint_Corviknight[]; +extern const u8 gMonFootprint_Blipbug[]; +extern const u8 gMonFootprint_Dottler[]; +extern const u8 gMonFootprint_Orbeetle[]; +extern const u8 gMonFootprint_Nickit[]; +extern const u8 gMonFootprint_Thievul[]; +extern const u8 gMonFootprint_Gossifleur[]; +extern const u8 gMonFootprint_Eldegoss[]; +extern const u8 gMonFootprint_Wooloo[]; +extern const u8 gMonFootprint_Dubwool[]; +extern const u8 gMonFootprint_Chewtle[]; +extern const u8 gMonFootprint_Drednaw[]; +extern const u8 gMonFootprint_Yamper[]; +extern const u8 gMonFootprint_Boltund[]; +extern const u8 gMonFootprint_Rolycoly[]; +extern const u8 gMonFootprint_Carkol[]; +extern const u8 gMonFootprint_Coalossal[]; +extern const u8 gMonFootprint_Applin[]; +extern const u8 gMonFootprint_Flapple[]; +extern const u8 gMonFootprint_Appletun[]; +extern const u8 gMonFootprint_Silicobra[]; +extern const u8 gMonFootprint_Sandaconda[]; +extern const u8 gMonFootprint_Cramorant[]; +extern const u8 gMonFootprint_Arrokuda[]; +extern const u8 gMonFootprint_Barraskewda[]; +extern const u8 gMonFootprint_Toxel[]; +extern const u8 gMonFootprint_Toxtricity[]; +extern const u8 gMonFootprint_Sizzlipede[]; +extern const u8 gMonFootprint_Centiskorch[]; +extern const u8 gMonFootprint_Clobbopus[]; +extern const u8 gMonFootprint_Grapploct[]; +extern const u8 gMonFootprint_Sinistea[]; +extern const u8 gMonFootprint_Polteageist[]; +extern const u8 gMonFootprint_Hatenna[]; +extern const u8 gMonFootprint_Hattrem[]; +extern const u8 gMonFootprint_Hatterene[]; +extern const u8 gMonFootprint_Impidimp[]; +extern const u8 gMonFootprint_Morgrem[]; +extern const u8 gMonFootprint_Grimmsnarl[]; +extern const u8 gMonFootprint_Obstagoon[]; +extern const u8 gMonFootprint_Perrserker[]; +extern const u8 gMonFootprint_Cursola[]; +extern const u8 gMonFootprint_Sirfetchd[]; +extern const u8 gMonFootprint_Mr_Rime[]; +extern const u8 gMonFootprint_Runerigus[]; +extern const u8 gMonFootprint_Milcery[]; +extern const u8 gMonFootprint_Alcremie[]; +extern const u8 gMonFootprint_Falinks[]; +extern const u8 gMonFootprint_Pincurchin[]; +extern const u8 gMonFootprint_Snom[]; +extern const u8 gMonFootprint_Frosmoth[]; +extern const u8 gMonFootprint_Stonjourner[]; +extern const u8 gMonFootprint_Eiscue[]; +extern const u8 gMonFootprint_Indeedee[]; +extern const u8 gMonFootprint_Morpeko[]; +extern const u8 gMonFootprint_Cufant[]; +extern const u8 gMonFootprint_Copperajah[]; +extern const u8 gMonFootprint_Dracozolt[]; +extern const u8 gMonFootprint_Arctozolt[]; +extern const u8 gMonFootprint_Dracovish[]; +extern const u8 gMonFootprint_Arctovish[]; +extern const u8 gMonFootprint_Duraludon[]; +extern const u8 gMonFootprint_Dreepy[]; +extern const u8 gMonFootprint_Drakloak[]; +extern const u8 gMonFootprint_Dragapult[]; +extern const u8 gMonFootprint_Zacian[]; +extern const u8 gMonFootprint_Zamazenta[]; +extern const u8 gMonFootprint_Eternatus[]; +extern const u8 gMonFootprint_Kubfu[]; +extern const u8 gMonFootprint_Urshifu[]; +extern const u8 gMonFootprint_Zarude[]; +extern const u8 gMonFootprint_Regieleki[]; +extern const u8 gMonFootprint_Regidrago[]; +extern const u8 gMonFootprint_Glastrier[]; +extern const u8 gMonFootprint_Spectrier[]; +extern const u8 gMonFootprint_Calyrex[]; // trainer sprites extern const u32 gTrainerFrontPic_Hiker[]; diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 9ae0ad3669..8cee7fc112 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -6501,3 +6501,180 @@ const u8 gMonFootprint_Zygarde[] = INCBIN_U8("graphics/pokemon/zygarde/footprint const u8 gMonFootprint_Diancie[] = INCBIN_U8("graphics/pokemon/diancie/footprint.1bpp"); const u8 gMonFootprint_Hoopa[] = INCBIN_U8("graphics/pokemon/hoopa/footprint.1bpp"); const u8 gMonFootprint_Volcanion[] = INCBIN_U8("graphics/pokemon/volcanion/footprint.1bpp"); +const u8 gMonFootprint_Rowlet[] = INCBIN_U8("graphics/pokemon/rowlet/footprint.1bpp"); +const u8 gMonFootprint_Dartrix[] = INCBIN_U8("graphics/pokemon/dartrix/footprint.1bpp"); +const u8 gMonFootprint_Decidueye[] = INCBIN_U8("graphics/pokemon/decidueye/footprint.1bpp"); +const u8 gMonFootprint_Litten[] = INCBIN_U8("graphics/pokemon/litten/footprint.1bpp"); +const u8 gMonFootprint_Torracat[] = INCBIN_U8("graphics/pokemon/torracat/footprint.1bpp"); +const u8 gMonFootprint_Incineroar[] = INCBIN_U8("graphics/pokemon/incineroar/footprint.1bpp"); +const u8 gMonFootprint_Popplio[] = INCBIN_U8("graphics/pokemon/popplio/footprint.1bpp"); +const u8 gMonFootprint_Brionne[] = INCBIN_U8("graphics/pokemon/brionne/footprint.1bpp"); +const u8 gMonFootprint_Primarina[] = INCBIN_U8("graphics/pokemon/primarina/footprint.1bpp"); +const u8 gMonFootprint_Pikipek[] = INCBIN_U8("graphics/pokemon/pikipek/footprint.1bpp"); +const u8 gMonFootprint_Trumbeak[] = INCBIN_U8("graphics/pokemon/trumbeak/footprint.1bpp"); +const u8 gMonFootprint_Toucannon[] = INCBIN_U8("graphics/pokemon/toucannon/footprint.1bpp"); +const u8 gMonFootprint_Yungoos[] = INCBIN_U8("graphics/pokemon/yungoos/footprint.1bpp"); +const u8 gMonFootprint_Gumshoos[] = INCBIN_U8("graphics/pokemon/gumshoos/footprint.1bpp"); +const u8 gMonFootprint_Grubbin[] = INCBIN_U8("graphics/pokemon/grubbin/footprint.1bpp"); +const u8 gMonFootprint_Charjabug[] = INCBIN_U8("graphics/pokemon/charjabug/footprint.1bpp"); +const u8 gMonFootprint_Vikavolt[] = INCBIN_U8("graphics/pokemon/vikavolt/footprint.1bpp"); +const u8 gMonFootprint_Crabrawler[] = INCBIN_U8("graphics/pokemon/crabrawler/footprint.1bpp"); +const u8 gMonFootprint_Crabominable[] = INCBIN_U8("graphics/pokemon/crabominable/footprint.1bpp"); +const u8 gMonFootprint_Oricorio[] = INCBIN_U8("graphics/pokemon/oricorio/footprint.1bpp"); +const u8 gMonFootprint_Cutiefly[] = INCBIN_U8("graphics/pokemon/cutiefly/footprint.1bpp"); +const u8 gMonFootprint_Ribombee[] = INCBIN_U8("graphics/pokemon/ribombee/footprint.1bpp"); +const u8 gMonFootprint_Rockruff[] = INCBIN_U8("graphics/pokemon/rockruff/footprint.1bpp"); +const u8 gMonFootprint_Lycanroc[] = INCBIN_U8("graphics/pokemon/lycanroc/footprint.1bpp"); +const u8 gMonFootprint_Wishiwashi[] = INCBIN_U8("graphics/pokemon/wishiwashi/footprint.1bpp"); +const u8 gMonFootprint_Mareanie[] = INCBIN_U8("graphics/pokemon/mareanie/footprint.1bpp"); +const u8 gMonFootprint_Toxapex[] = INCBIN_U8("graphics/pokemon/toxapex/footprint.1bpp"); +const u8 gMonFootprint_Mudbray[] = INCBIN_U8("graphics/pokemon/mudbray/footprint.1bpp"); +const u8 gMonFootprint_Mudsdale[] = INCBIN_U8("graphics/pokemon/mudsdale/footprint.1bpp"); +const u8 gMonFootprint_Dewpider[] = INCBIN_U8("graphics/pokemon/dewpider/footprint.1bpp"); +const u8 gMonFootprint_Araquanid[] = INCBIN_U8("graphics/pokemon/araquanid/footprint.1bpp"); +const u8 gMonFootprint_Fomantis[] = INCBIN_U8("graphics/pokemon/fomantis/footprint.1bpp"); +const u8 gMonFootprint_Lurantis[] = INCBIN_U8("graphics/pokemon/lurantis/footprint.1bpp"); +const u8 gMonFootprint_Morelull[] = INCBIN_U8("graphics/pokemon/morelull/footprint.1bpp"); +const u8 gMonFootprint_Shiinotic[] = INCBIN_U8("graphics/pokemon/shiinotic/footprint.1bpp"); +const u8 gMonFootprint_Salandit[] = INCBIN_U8("graphics/pokemon/salandit/footprint.1bpp"); +const u8 gMonFootprint_Salazzle[] = INCBIN_U8("graphics/pokemon/salazzle/footprint.1bpp"); +const u8 gMonFootprint_Stufful[] = INCBIN_U8("graphics/pokemon/stufful/footprint.1bpp"); +const u8 gMonFootprint_Bewear[] = INCBIN_U8("graphics/pokemon/bewear/footprint.1bpp"); +const u8 gMonFootprint_Bounsweet[] = INCBIN_U8("graphics/pokemon/bounsweet/footprint.1bpp"); +const u8 gMonFootprint_Steenee[] = INCBIN_U8("graphics/pokemon/steenee/footprint.1bpp"); +const u8 gMonFootprint_Tsareena[] = INCBIN_U8("graphics/pokemon/tsareena/footprint.1bpp"); +const u8 gMonFootprint_Comfey[] = INCBIN_U8("graphics/pokemon/comfey/footprint.1bpp"); +const u8 gMonFootprint_Oranguru[] = INCBIN_U8("graphics/pokemon/oranguru/footprint.1bpp"); +const u8 gMonFootprint_Passimian[] = INCBIN_U8("graphics/pokemon/passimian/footprint.1bpp"); +const u8 gMonFootprint_Wimpod[] = INCBIN_U8("graphics/pokemon/wimpod/footprint.1bpp"); +const u8 gMonFootprint_Golisopod[] = INCBIN_U8("graphics/pokemon/golisopod/footprint.1bpp"); +const u8 gMonFootprint_Sandygast[] = INCBIN_U8("graphics/pokemon/sandygast/footprint.1bpp"); +const u8 gMonFootprint_Palossand[] = INCBIN_U8("graphics/pokemon/palossand/footprint.1bpp"); +const u8 gMonFootprint_Pyukumuku[] = INCBIN_U8("graphics/pokemon/pyukumuku/footprint.1bpp"); +const u8 gMonFootprint_Type_Null[] = INCBIN_U8("graphics/pokemon/type_null/footprint.1bpp"); +const u8 gMonFootprint_Silvally[] = INCBIN_U8("graphics/pokemon/silvally/footprint.1bpp"); +const u8 gMonFootprint_Minior[] = INCBIN_U8("graphics/pokemon/minior/footprint.1bpp"); +const u8 gMonFootprint_Komala[] = INCBIN_U8("graphics/pokemon/komala/footprint.1bpp"); +const u8 gMonFootprint_Turtonator[] = INCBIN_U8("graphics/pokemon/turtonator/footprint.1bpp"); +const u8 gMonFootprint_Togedemaru[] = INCBIN_U8("graphics/pokemon/togedemaru/footprint.1bpp"); +const u8 gMonFootprint_Mimikyu[] = INCBIN_U8("graphics/pokemon/mimikyu/footprint.1bpp"); +const u8 gMonFootprint_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/footprint.1bpp"); +const u8 gMonFootprint_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/footprint.1bpp"); +const u8 gMonFootprint_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/footprint.1bpp"); +const u8 gMonFootprint_Jangmo_o[] = INCBIN_U8("graphics/pokemon/jangmo_o/footprint.1bpp"); +const u8 gMonFootprint_Hakamo_o[] = INCBIN_U8("graphics/pokemon/hakamo_o/footprint.1bpp"); +const u8 gMonFootprint_Kommo_o[] = INCBIN_U8("graphics/pokemon/kommo_o/footprint.1bpp"); +const u8 gMonFootprint_Tapu_Koko[] = INCBIN_U8("graphics/pokemon/tapu_koko/footprint.1bpp"); +const u8 gMonFootprint_Tapu_Lele[] = INCBIN_U8("graphics/pokemon/tapu_lele/footprint.1bpp"); +const u8 gMonFootprint_Tapu_Bulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/footprint.1bpp"); +const u8 gMonFootprint_Tapu_Fini[] = INCBIN_U8("graphics/pokemon/tapu_fini/footprint.1bpp"); +const u8 gMonFootprint_Cosmog[] = INCBIN_U8("graphics/pokemon/cosmog/footprint.1bpp"); +const u8 gMonFootprint_Cosmoem[] = INCBIN_U8("graphics/pokemon/cosmoem/footprint.1bpp"); +const u8 gMonFootprint_Solgaleo[] = INCBIN_U8("graphics/pokemon/solgaleo/footprint.1bpp"); +const u8 gMonFootprint_Lunala[] = INCBIN_U8("graphics/pokemon/lunala/footprint.1bpp"); +const u8 gMonFootprint_Nihilego[] = INCBIN_U8("graphics/pokemon/nihilego/footprint.1bpp"); +const u8 gMonFootprint_Buzzwole[] = INCBIN_U8("graphics/pokemon/buzzwole/footprint.1bpp"); +const u8 gMonFootprint_Pheromosa[] = INCBIN_U8("graphics/pokemon/pheromosa/footprint.1bpp"); +const u8 gMonFootprint_Xurkitree[] = INCBIN_U8("graphics/pokemon/xurkitree/footprint.1bpp"); +const u8 gMonFootprint_Celesteela[] = INCBIN_U8("graphics/pokemon/celesteela/footprint.1bpp"); +const u8 gMonFootprint_Kartana[] = INCBIN_U8("graphics/pokemon/kartana/footprint.1bpp"); +const u8 gMonFootprint_Guzzlord[] = INCBIN_U8("graphics/pokemon/guzzlord/footprint.1bpp"); +const u8 gMonFootprint_Necrozma[] = INCBIN_U8("graphics/pokemon/necrozma/footprint.1bpp"); +const u8 gMonFootprint_Magearna[] = INCBIN_U8("graphics/pokemon/magearna/footprint.1bpp"); +const u8 gMonFootprint_Marshadow[] = INCBIN_U8("graphics/pokemon/marshadow/footprint.1bpp"); +const u8 gMonFootprint_Poipole[] = INCBIN_U8("graphics/pokemon/poipole/footprint.1bpp"); +const u8 gMonFootprint_Naganadel[] = INCBIN_U8("graphics/pokemon/naganadel/footprint.1bpp"); +const u8 gMonFootprint_Stakataka[] = INCBIN_U8("graphics/pokemon/stakataka/footprint.1bpp"); +const u8 gMonFootprint_Blacephalon[] = INCBIN_U8("graphics/pokemon/blacephalon/footprint.1bpp"); +const u8 gMonFootprint_Zeraora[] = INCBIN_U8("graphics/pokemon/zeraora/footprint.1bpp"); +const u8 gMonFootprint_Meltan[] = INCBIN_U8("graphics/pokemon/meltan/footprint.1bpp"); +const u8 gMonFootprint_Melmetal[] = INCBIN_U8("graphics/pokemon/melmetal/footprint.1bpp"); +const u8 gMonFootprint_Grookey[] = INCBIN_U8("graphics/pokemon/grookey/footprint.1bpp"); +const u8 gMonFootprint_Thwackey[] = INCBIN_U8("graphics/pokemon/thwackey/footprint.1bpp"); +const u8 gMonFootprint_Rillaboom[] = INCBIN_U8("graphics/pokemon/rillaboom/footprint.1bpp"); +const u8 gMonFootprint_Scorbunny[] = INCBIN_U8("graphics/pokemon/scorbunny/footprint.1bpp"); +const u8 gMonFootprint_Raboot[] = INCBIN_U8("graphics/pokemon/raboot/footprint.1bpp"); +const u8 gMonFootprint_Cinderace[] = INCBIN_U8("graphics/pokemon/cinderace/footprint.1bpp"); +const u8 gMonFootprint_Sobble[] = INCBIN_U8("graphics/pokemon/sobble/footprint.1bpp"); +const u8 gMonFootprint_Drizzile[] = INCBIN_U8("graphics/pokemon/drizzile/footprint.1bpp"); +const u8 gMonFootprint_Inteleon[] = INCBIN_U8("graphics/pokemon/inteleon/footprint.1bpp"); +const u8 gMonFootprint_Skwovet[] = INCBIN_U8("graphics/pokemon/skwovet/footprint.1bpp"); +const u8 gMonFootprint_Greedent[] = INCBIN_U8("graphics/pokemon/greedent/footprint.1bpp"); +const u8 gMonFootprint_Rookidee[] = INCBIN_U8("graphics/pokemon/rookidee/footprint.1bpp"); +const u8 gMonFootprint_Corvisquire[] = INCBIN_U8("graphics/pokemon/corvisquire/footprint.1bpp"); +const u8 gMonFootprint_Corviknight[] = INCBIN_U8("graphics/pokemon/corviknight/footprint.1bpp"); +const u8 gMonFootprint_Blipbug[] = INCBIN_U8("graphics/pokemon/blipbug/footprint.1bpp"); +const u8 gMonFootprint_Dottler[] = INCBIN_U8("graphics/pokemon/dottler/footprint.1bpp"); +const u8 gMonFootprint_Orbeetle[] = INCBIN_U8("graphics/pokemon/orbeetle/footprint.1bpp"); +const u8 gMonFootprint_Nickit[] = INCBIN_U8("graphics/pokemon/nickit/footprint.1bpp"); +const u8 gMonFootprint_Thievul[] = INCBIN_U8("graphics/pokemon/thievul/footprint.1bpp"); +const u8 gMonFootprint_Gossifleur[] = INCBIN_U8("graphics/pokemon/gossifleur/footprint.1bpp"); +const u8 gMonFootprint_Eldegoss[] = INCBIN_U8("graphics/pokemon/eldegoss/footprint.1bpp"); +const u8 gMonFootprint_Wooloo[] = INCBIN_U8("graphics/pokemon/wooloo/footprint.1bpp"); +const u8 gMonFootprint_Dubwool[] = INCBIN_U8("graphics/pokemon/dubwool/footprint.1bpp"); +const u8 gMonFootprint_Chewtle[] = INCBIN_U8("graphics/pokemon/chewtle/footprint.1bpp"); +const u8 gMonFootprint_Drednaw[] = INCBIN_U8("graphics/pokemon/drednaw/footprint.1bpp"); +const u8 gMonFootprint_Yamper[] = INCBIN_U8("graphics/pokemon/yamper/footprint.1bpp"); +const u8 gMonFootprint_Boltund[] = INCBIN_U8("graphics/pokemon/boltund/footprint.1bpp"); +const u8 gMonFootprint_Rolycoly[] = INCBIN_U8("graphics/pokemon/rolycoly/footprint.1bpp"); +const u8 gMonFootprint_Carkol[] = INCBIN_U8("graphics/pokemon/carkol/footprint.1bpp"); +const u8 gMonFootprint_Coalossal[] = INCBIN_U8("graphics/pokemon/coalossal/footprint.1bpp"); +const u8 gMonFootprint_Applin[] = INCBIN_U8("graphics/pokemon/applin/footprint.1bpp"); +const u8 gMonFootprint_Flapple[] = INCBIN_U8("graphics/pokemon/flapple/footprint.1bpp"); +const u8 gMonFootprint_Appletun[] = INCBIN_U8("graphics/pokemon/appletun/footprint.1bpp"); +const u8 gMonFootprint_Silicobra[] = INCBIN_U8("graphics/pokemon/silicobra/footprint.1bpp"); +const u8 gMonFootprint_Sandaconda[] = INCBIN_U8("graphics/pokemon/sandaconda/footprint.1bpp"); +const u8 gMonFootprint_Cramorant[] = INCBIN_U8("graphics/pokemon/cramorant/footprint.1bpp"); +const u8 gMonFootprint_Arrokuda[] = INCBIN_U8("graphics/pokemon/arrokuda/footprint.1bpp"); +const u8 gMonFootprint_Barraskewda[] = INCBIN_U8("graphics/pokemon/barraskewda/footprint.1bpp"); +const u8 gMonFootprint_Toxel[] = INCBIN_U8("graphics/pokemon/toxel/footprint.1bpp"); +const u8 gMonFootprint_Toxtricity[] = INCBIN_U8("graphics/pokemon/toxtricity/footprint.1bpp"); +const u8 gMonFootprint_Sizzlipede[] = INCBIN_U8("graphics/pokemon/sizzlipede/footprint.1bpp"); +const u8 gMonFootprint_Centiskorch[] = INCBIN_U8("graphics/pokemon/centiskorch/footprint.1bpp"); +const u8 gMonFootprint_Clobbopus[] = INCBIN_U8("graphics/pokemon/clobbopus/footprint.1bpp"); +const u8 gMonFootprint_Grapploct[] = INCBIN_U8("graphics/pokemon/grapploct/footprint.1bpp"); +const u8 gMonFootprint_Sinistea[] = INCBIN_U8("graphics/pokemon/sinistea/footprint.1bpp"); +const u8 gMonFootprint_Polteageist[] = INCBIN_U8("graphics/pokemon/polteageist/footprint.1bpp"); +const u8 gMonFootprint_Hatenna[] = INCBIN_U8("graphics/pokemon/hatenna/footprint.1bpp"); +const u8 gMonFootprint_Hattrem[] = INCBIN_U8("graphics/pokemon/hattrem/footprint.1bpp"); +const u8 gMonFootprint_Hatterene[] = INCBIN_U8("graphics/pokemon/hatterene/footprint.1bpp"); +const u8 gMonFootprint_Impidimp[] = INCBIN_U8("graphics/pokemon/impidimp/footprint.1bpp"); +const u8 gMonFootprint_Morgrem[] = INCBIN_U8("graphics/pokemon/morgrem/footprint.1bpp"); +const u8 gMonFootprint_Grimmsnarl[] = INCBIN_U8("graphics/pokemon/grimmsnarl/footprint.1bpp"); +const u8 gMonFootprint_Obstagoon[] = INCBIN_U8("graphics/pokemon/obstagoon/footprint.1bpp"); +const u8 gMonFootprint_Perrserker[] = INCBIN_U8("graphics/pokemon/perrserker/footprint.1bpp"); +const u8 gMonFootprint_Cursola[] = INCBIN_U8("graphics/pokemon/cursola/footprint.1bpp"); +const u8 gMonFootprint_Sirfetchd[] = INCBIN_U8("graphics/pokemon/sirfetchd/footprint.1bpp"); +const u8 gMonFootprint_Mr_Rime[] = INCBIN_U8("graphics/pokemon/mr_rime/footprint.1bpp"); +const u8 gMonFootprint_Runerigus[] = INCBIN_U8("graphics/pokemon/runerigus/footprint.1bpp"); +const u8 gMonFootprint_Milcery[] = INCBIN_U8("graphics/pokemon/milcery/footprint.1bpp"); +const u8 gMonFootprint_Alcremie[] = INCBIN_U8("graphics/pokemon/alcremie/footprint.1bpp"); +const u8 gMonFootprint_Falinks[] = INCBIN_U8("graphics/pokemon/falinks/footprint.1bpp"); +const u8 gMonFootprint_Pincurchin[] = INCBIN_U8("graphics/pokemon/pincurchin/footprint.1bpp"); +const u8 gMonFootprint_Snom[] = INCBIN_U8("graphics/pokemon/snom/footprint.1bpp"); +const u8 gMonFootprint_Frosmoth[] = INCBIN_U8("graphics/pokemon/frosmoth/footprint.1bpp"); +const u8 gMonFootprint_Stonjourner[] = INCBIN_U8("graphics/pokemon/stonjourner/footprint.1bpp"); +const u8 gMonFootprint_Eiscue[] = INCBIN_U8("graphics/pokemon/eiscue/footprint.1bpp"); +const u8 gMonFootprint_Indeedee[] = INCBIN_U8("graphics/pokemon/indeedee/footprint.1bpp"); +const u8 gMonFootprint_Morpeko[] = INCBIN_U8("graphics/pokemon/morpeko/footprint.1bpp"); +const u8 gMonFootprint_Cufant[] = INCBIN_U8("graphics/pokemon/cufant/footprint.1bpp"); +const u8 gMonFootprint_Copperajah[] = INCBIN_U8("graphics/pokemon/copperajah/footprint.1bpp"); +const u8 gMonFootprint_Dracozolt[] = INCBIN_U8("graphics/pokemon/dracozolt/footprint.1bpp"); +const u8 gMonFootprint_Arctozolt[] = INCBIN_U8("graphics/pokemon/arctozolt/footprint.1bpp"); +const u8 gMonFootprint_Dracovish[] = INCBIN_U8("graphics/pokemon/dracovish/footprint.1bpp"); +const u8 gMonFootprint_Arctovish[] = INCBIN_U8("graphics/pokemon/arctovish/footprint.1bpp"); +const u8 gMonFootprint_Duraludon[] = INCBIN_U8("graphics/pokemon/duraludon/footprint.1bpp"); +const u8 gMonFootprint_Dreepy[] = INCBIN_U8("graphics/pokemon/dreepy/footprint.1bpp"); +const u8 gMonFootprint_Drakloak[] = INCBIN_U8("graphics/pokemon/drakloak/footprint.1bpp"); +const u8 gMonFootprint_Dragapult[] = INCBIN_U8("graphics/pokemon/dragapult/footprint.1bpp"); +const u8 gMonFootprint_Zacian[] = INCBIN_U8("graphics/pokemon/zacian/footprint.1bpp"); +const u8 gMonFootprint_Zamazenta[] = INCBIN_U8("graphics/pokemon/zamazenta/footprint.1bpp"); +const u8 gMonFootprint_Eternatus[] = INCBIN_U8("graphics/pokemon/eternatus/footprint.1bpp"); +const u8 gMonFootprint_Kubfu[] = INCBIN_U8("graphics/pokemon/kubfu/footprint.1bpp"); +const u8 gMonFootprint_Urshifu[] = INCBIN_U8("graphics/pokemon/urshifu/footprint.1bpp"); +const u8 gMonFootprint_Zarude[] = INCBIN_U8("graphics/pokemon/zarude/footprint.1bpp"); +const u8 gMonFootprint_Regieleki[] = INCBIN_U8("graphics/pokemon/regieleki/footprint.1bpp"); +const u8 gMonFootprint_Regidrago[] = INCBIN_U8("graphics/pokemon/regidrago/footprint.1bpp"); +const u8 gMonFootprint_Glastrier[] = INCBIN_U8("graphics/pokemon/glastrier/footprint.1bpp"); +const u8 gMonFootprint_Spectrier[] = INCBIN_U8("graphics/pokemon/spectrier/footprint.1bpp"); +const u8 gMonFootprint_Calyrex[] = INCBIN_U8("graphics/pokemon/calyrex/footprint.1bpp"); diff --git a/src/data/pokemon_graphics/footprint_table.h b/src/data/pokemon_graphics/footprint_table.h index 6ba0e7fccc..babc6b43c5 100644 --- a/src/data/pokemon_graphics/footprint_table.h +++ b/src/data/pokemon_graphics/footprint_table.h @@ -722,5 +722,182 @@ const u8 *const gMonFootprintTable[] = [SPECIES_DIANCIE] = gMonFootprint_Diancie, [SPECIES_HOOPA] = gMonFootprint_Hoopa, [SPECIES_VOLCANION] = gMonFootprint_Volcanion, + [SPECIES_ROWLET] = gMonFootprint_Rowlet, + [SPECIES_DARTRIX] = gMonFootprint_Dartrix, + [SPECIES_DECIDUEYE] = gMonFootprint_Decidueye, + [SPECIES_LITTEN] = gMonFootprint_Litten, + [SPECIES_TORRACAT] = gMonFootprint_Torracat, + [SPECIES_INCINEROAR] = gMonFootprint_Incineroar, + [SPECIES_POPPLIO] = gMonFootprint_Popplio, + [SPECIES_BRIONNE] = gMonFootprint_Brionne, + [SPECIES_PRIMARINA] = gMonFootprint_Primarina, + [SPECIES_PIKIPEK] = gMonFootprint_Pikipek, + [SPECIES_TRUMBEAK] = gMonFootprint_Trumbeak, + [SPECIES_TOUCANNON] = gMonFootprint_Toucannon, + [SPECIES_YUNGOOS] = gMonFootprint_Yungoos, + [SPECIES_GUMSHOOS] = gMonFootprint_Gumshoos, + [SPECIES_GRUBBIN] = gMonFootprint_Grubbin, + [SPECIES_CHARJABUG] = gMonFootprint_Charjabug, + [SPECIES_VIKAVOLT] = gMonFootprint_Vikavolt, + [SPECIES_CRABRAWLER] = gMonFootprint_Crabrawler, + [SPECIES_CRABOMINABLE] = gMonFootprint_Crabominable, + [SPECIES_ORICORIO] = gMonFootprint_Oricorio, + [SPECIES_CUTIEFLY] = gMonFootprint_Cutiefly, + [SPECIES_RIBOMBEE] = gMonFootprint_Ribombee, + [SPECIES_ROCKRUFF] = gMonFootprint_Rockruff, + [SPECIES_LYCANROC] = gMonFootprint_Lycanroc, + [SPECIES_WISHIWASHI] = gMonFootprint_Wishiwashi, + [SPECIES_MAREANIE] = gMonFootprint_Mareanie, + [SPECIES_TOXAPEX] = gMonFootprint_Toxapex, + [SPECIES_MUDBRAY] = gMonFootprint_Mudbray, + [SPECIES_MUDSDALE] = gMonFootprint_Mudsdale, + [SPECIES_DEWPIDER] = gMonFootprint_Dewpider, + [SPECIES_ARAQUANID] = gMonFootprint_Araquanid, + [SPECIES_FOMANTIS] = gMonFootprint_Fomantis, + [SPECIES_LURANTIS] = gMonFootprint_Lurantis, + [SPECIES_MORELULL] = gMonFootprint_Morelull, + [SPECIES_SHIINOTIC] = gMonFootprint_Shiinotic, + [SPECIES_SALANDIT] = gMonFootprint_Salandit, + [SPECIES_SALAZZLE] = gMonFootprint_Salazzle, + [SPECIES_STUFFUL] = gMonFootprint_Stufful, + [SPECIES_BEWEAR] = gMonFootprint_Bewear, + [SPECIES_BOUNSWEET] = gMonFootprint_Bounsweet, + [SPECIES_STEENEE] = gMonFootprint_Steenee, + [SPECIES_TSAREENA] = gMonFootprint_Tsareena, + [SPECIES_COMFEY] = gMonFootprint_Comfey, + [SPECIES_ORANGURU] = gMonFootprint_Oranguru, + [SPECIES_PASSIMIAN] = gMonFootprint_Passimian, + [SPECIES_WIMPOD] = gMonFootprint_Wimpod, + [SPECIES_GOLISOPOD] = gMonFootprint_Golisopod, + [SPECIES_SANDYGAST] = gMonFootprint_Sandygast, + [SPECIES_PALOSSAND] = gMonFootprint_Palossand, + [SPECIES_PYUKUMUKU] = gMonFootprint_Pyukumuku, + [SPECIES_TYPE_NULL] = gMonFootprint_Type_Null, + [SPECIES_SILVALLY] = gMonFootprint_Silvally, + [SPECIES_MINIOR] = gMonFootprint_Minior, + [SPECIES_KOMALA] = gMonFootprint_Komala, + [SPECIES_TURTONATOR] = gMonFootprint_Turtonator, + [SPECIES_TOGEDEMARU] = gMonFootprint_Togedemaru, + [SPECIES_MIMIKYU] = gMonFootprint_Mimikyu, + [SPECIES_BRUXISH] = gMonFootprint_Bruxish, + [SPECIES_DRAMPA] = gMonFootprint_Drampa, + [SPECIES_DHELMISE] = gMonFootprint_Dhelmise, + [SPECIES_JANGMO_O] = gMonFootprint_Jangmo_o, + [SPECIES_HAKAMO_O] = gMonFootprint_Hakamo_o, + [SPECIES_KOMMO_O] = gMonFootprint_Kommo_o, + [SPECIES_TAPU_KOKO] = gMonFootprint_Tapu_Koko, + [SPECIES_TAPU_LELE] = gMonFootprint_Tapu_Lele, + [SPECIES_TAPU_BULU] = gMonFootprint_Tapu_Bulu, + [SPECIES_TAPU_FINI] = gMonFootprint_Tapu_Fini, + [SPECIES_COSMOG] = gMonFootprint_Cosmog, + [SPECIES_COSMOEM] = gMonFootprint_Cosmoem, + [SPECIES_SOLGALEO] = gMonFootprint_Solgaleo, + [SPECIES_LUNALA] = gMonFootprint_Lunala, + [SPECIES_NIHILEGO] = gMonFootprint_Nihilego, + [SPECIES_BUZZWOLE] = gMonFootprint_Buzzwole, + [SPECIES_PHEROMOSA] = gMonFootprint_Pheromosa, + [SPECIES_XURKITREE] = gMonFootprint_Xurkitree, + [SPECIES_CELESTEELA] = gMonFootprint_Celesteela, + [SPECIES_KARTANA] = gMonFootprint_Kartana, + [SPECIES_GUZZLORD] = gMonFootprint_Guzzlord, + [SPECIES_NECROZMA] = gMonFootprint_Necrozma, + [SPECIES_MAGEARNA] = gMonFootprint_Magearna, + [SPECIES_MARSHADOW] = gMonFootprint_Marshadow, + [SPECIES_POIPOLE] = gMonFootprint_Poipole, + [SPECIES_NAGANADEL] = gMonFootprint_Naganadel, + [SPECIES_STAKATAKA] = gMonFootprint_Stakataka, + [SPECIES_BLACEPHALON] = gMonFootprint_Blacephalon, + [SPECIES_ZERAORA] = gMonFootprint_Zeraora, + [SPECIES_MELTAN] = gMonFootprint_Meltan, + [SPECIES_MELMETAL] = gMonFootprint_Melmetal, + [SPECIES_GROOKEY] = gMonFootprint_Grookey, + [SPECIES_THWACKEY] = gMonFootprint_Thwackey, + [SPECIES_RILLABOOM] = gMonFootprint_Rillaboom, + [SPECIES_SCORBUNNY] = gMonFootprint_Scorbunny, + [SPECIES_RABOOT] = gMonFootprint_Raboot, + [SPECIES_CINDERACE] = gMonFootprint_Cinderace, + [SPECIES_SOBBLE] = gMonFootprint_Sobble, + [SPECIES_DRIZZILE] = gMonFootprint_Drizzile, + [SPECIES_INTELEON] = gMonFootprint_Inteleon, + [SPECIES_SKWOVET] = gMonFootprint_Skwovet, + [SPECIES_GREEDENT] = gMonFootprint_Greedent, + [SPECIES_ROOKIDEE] = gMonFootprint_Rookidee, + [SPECIES_CORVISQUIRE] = gMonFootprint_Corvisquire, + [SPECIES_CORVIKNIGHT] = gMonFootprint_Corviknight, + [SPECIES_BLIPBUG] = gMonFootprint_Blipbug, + [SPECIES_DOTTLER] = gMonFootprint_Dottler, + [SPECIES_ORBEETLE] = gMonFootprint_Orbeetle, + [SPECIES_NICKIT] = gMonFootprint_Nickit, + [SPECIES_THIEVUL] = gMonFootprint_Thievul, + [SPECIES_GOSSIFLEUR] = gMonFootprint_Gossifleur, + [SPECIES_ELDEGOSS] = gMonFootprint_Eldegoss, + [SPECIES_WOOLOO] = gMonFootprint_Wooloo, + [SPECIES_DUBWOOL] = gMonFootprint_Dubwool, + [SPECIES_CHEWTLE] = gMonFootprint_Chewtle, + [SPECIES_DREDNAW] = gMonFootprint_Drednaw, + [SPECIES_YAMPER] = gMonFootprint_Yamper, + [SPECIES_BOLTUND] = gMonFootprint_Boltund, + [SPECIES_ROLYCOLY] = gMonFootprint_Rolycoly, + [SPECIES_CARKOL] = gMonFootprint_Carkol, + [SPECIES_COALOSSAL] = gMonFootprint_Coalossal, + [SPECIES_APPLIN] = gMonFootprint_Applin, + [SPECIES_FLAPPLE] = gMonFootprint_Flapple, + [SPECIES_APPLETUN] = gMonFootprint_Appletun, + [SPECIES_SILICOBRA] = gMonFootprint_Silicobra, + [SPECIES_SANDACONDA] = gMonFootprint_Sandaconda, + [SPECIES_CRAMORANT] = gMonFootprint_Cramorant, + [SPECIES_ARROKUDA] = gMonFootprint_Arrokuda, + [SPECIES_BARRASKEWDA] = gMonFootprint_Barraskewda, + [SPECIES_TOXEL] = gMonFootprint_Toxel, + [SPECIES_TOXTRICITY] = gMonFootprint_Toxtricity, + [SPECIES_SIZZLIPEDE] = gMonFootprint_Sizzlipede, + [SPECIES_CENTISKORCH] = gMonFootprint_Centiskorch, + [SPECIES_CLOBBOPUS] = gMonFootprint_Clobbopus, + [SPECIES_GRAPPLOCT] = gMonFootprint_Grapploct, + [SPECIES_SINISTEA] = gMonFootprint_Sinistea, + [SPECIES_POLTEAGEIST] = gMonFootprint_Polteageist, + [SPECIES_HATENNA] = gMonFootprint_Hatenna, + [SPECIES_HATTREM] = gMonFootprint_Hattrem, + [SPECIES_HATTERENE] = gMonFootprint_Hatterene, + [SPECIES_IMPIDIMP] = gMonFootprint_Impidimp, + [SPECIES_MORGREM] = gMonFootprint_Morgrem, + [SPECIES_GRIMMSNARL] = gMonFootprint_Grimmsnarl, + [SPECIES_OBSTAGOON] = gMonFootprint_Obstagoon, + [SPECIES_PERRSERKER] = gMonFootprint_Perrserker, + [SPECIES_CURSOLA] = gMonFootprint_Cursola, + [SPECIES_SIRFETCHD] = gMonFootprint_Sirfetchd, + [SPECIES_MR_RIME] = gMonFootprint_Mr_Rime, + [SPECIES_RUNERIGUS] = gMonFootprint_Runerigus, + [SPECIES_MILCERY] = gMonFootprint_Milcery, + [SPECIES_ALCREMIE] = gMonFootprint_Alcremie, + [SPECIES_FALINKS] = gMonFootprint_Falinks, + [SPECIES_PINCURCHIN] = gMonFootprint_Pincurchin, + [SPECIES_SNOM] = gMonFootprint_Snom, + [SPECIES_FROSMOTH] = gMonFootprint_Frosmoth, + [SPECIES_STONJOURNER] = gMonFootprint_Stonjourner, + [SPECIES_EISCUE] = gMonFootprint_Eiscue, + [SPECIES_INDEEDEE] = gMonFootprint_Indeedee, + [SPECIES_MORPEKO] = gMonFootprint_Morpeko, + [SPECIES_CUFANT] = gMonFootprint_Cufant, + [SPECIES_COPPERAJAH] = gMonFootprint_Copperajah, + [SPECIES_DRACOZOLT] = gMonFootprint_Dracozolt, + [SPECIES_ARCTOZOLT] = gMonFootprint_Arctozolt, + [SPECIES_DRACOVISH] = gMonFootprint_Dracovish, + [SPECIES_ARCTOVISH] = gMonFootprint_Arctovish, + [SPECIES_DURALUDON] = gMonFootprint_Duraludon, + [SPECIES_DREEPY] = gMonFootprint_Dreepy, + [SPECIES_DRAKLOAK] = gMonFootprint_Drakloak, + [SPECIES_DRAGAPULT] = gMonFootprint_Dragapult, + [SPECIES_ZACIAN] = gMonFootprint_Zacian, + [SPECIES_ZAMAZENTA] = gMonFootprint_Zamazenta, + [SPECIES_ETERNATUS] = gMonFootprint_Eternatus, + [SPECIES_KUBFU] = gMonFootprint_Kubfu, + [SPECIES_URSHIFU] = gMonFootprint_Urshifu, + [SPECIES_ZARUDE] = gMonFootprint_Zarude, + [SPECIES_REGIELEKI] = gMonFootprint_Regieleki, + [SPECIES_REGIDRAGO] = gMonFootprint_Regidrago, + [SPECIES_GLASTRIER] = gMonFootprint_Glastrier, + [SPECIES_SPECTRIER] = gMonFootprint_Spectrier, + [SPECIES_CALYREX] = gMonFootprint_Calyrex, [SPECIES_EGG] = gMonFootprint_Bulbasaur, }; From d113d5efd94867c2aec1cdd5197cfa29ccbad230 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Mon, 13 Dec 2021 18:56:50 +0100 Subject: [PATCH 59/95] Update include/battle_bg.h Co-authored-by: LOuroboros --- include/battle_bg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/battle_bg.h b/include/battle_bg.h index cfa69a92ac..075159148d 100644 --- a/include/battle_bg.h +++ b/include/battle_bg.h @@ -1,7 +1,7 @@ #ifndef GUARD_BATTLE_BG_H #define GUARD_BATTLE_BG_H -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE struct BattleBackground { const void *tileset; From a334f7f5e07ccb785e32eaa7b722b709ca093f2a Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Mon, 13 Dec 2021 18:58:13 +0100 Subject: [PATCH 60/95] changed all missed ones to `#if P_ENABLE_DEBUG == TRUE` @LOuroboros --- src/battle_anim_mons.c | 4 ++-- src/battle_bg.c | 2 +- src/battle_gfx_sfx_util.c | 2 +- src/pokemon.c | 2 +- src/pokemon_debug.c | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 86479aac5a..adc664c3a3 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -35,7 +35,7 @@ static void CreateBattlerTrace(struct Task *task, u8 taskId); EWRAM_DATA static union AffineAnimCmd *sAnimTaskAffineAnim = NULL; -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] = #else static const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] = @@ -64,7 +64,7 @@ const struct MonCoords gCastformFrontSpriteCoords[NUM_CASTFORM_FORMS] = [CASTFORM_ICE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, }; -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE const u8 sCastformElevations[NUM_CASTFORM_FORMS] = #else static const u8 sCastformElevations[NUM_CASTFORM_FORMS] = diff --git a/src/battle_bg.c b/src/battle_bg.c index 298a3565a8..9d9b26627d 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -600,7 +600,7 @@ const struct WindowTemplate * const gBattleWindowTemplates[] = [B_WIN_TYPE_ARENA] = gBattleArenaWindowTemplates, }; -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE const struct BattleBackground sBattleTerrainTable[] = #else static const struct BattleBackground sBattleTerrainTable[] = diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 508e250c15..57e5d87630 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -77,7 +77,7 @@ static const struct CompressedSpriteSheet sSpriteSheets_HealthBar[MAX_BATTLERS_C {gBlankGfxCompressed, 0x0120, TAG_HEALTHBAR_OPPONENT2_TILE} }; -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2] = #else static const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2] = diff --git a/src/pokemon.c b/src/pokemon.c index 59b918f073..3e497cf351 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1856,7 +1856,7 @@ const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = #include "data/pokemon/form_change_table_pointers.h" // SPECIES_NONE are ignored in the following two tables, so decrement before accessing these arrays to get the right result -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = #else static const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index fd442386b4..9f0135be19 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -38,7 +38,7 @@ #include "constants/items.h" -#if P_ENABLE_DEBUG +#if P_ENABLE_DEBUG == TRUE extern const struct BattleBackground sBattleTerrainTable[]; extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow; extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; From f1f4082f62c53196ac1cdb512fe1dafdbf8946a0 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Mon, 13 Dec 2021 19:24:19 +0100 Subject: [PATCH 61/95] added footprints --- include/constants/pokemon_debug.h | 3 ++- include/pokedex.h | 4 +++ src/pokemon_debug.c | 44 +++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/include/constants/pokemon_debug.h b/include/constants/pokemon_debug.h index e9e1a58a34..26d757fe39 100644 --- a/include/constants/pokemon_debug.h +++ b/include/constants/pokemon_debug.h @@ -28,7 +28,8 @@ #define WIN_INSTRUCTIONS 1 #define WIN_BOTTOM_LEFT 2 #define WIN_BOTTOM_RIGHT 3 -#define WIN_END 4 +#define WIN_FOOTPRINT 4 +#define WIN_END 5 //Battle backgrounds #define MAP_BATTLE_SCENE_NORMAL 0 diff --git a/include/pokedex.h b/include/pokedex.h index 49063f6b13..703b9ab8df 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -4,6 +4,10 @@ extern u8 gUnusedPokedexU8; extern void (*gPokedexVBlankCB)(void); +#if P_ENABLE_DEBUG == TRUE +extern const u8 *const gMonFootprintTable[]; +#endif + enum { DEX_MODE_HOENN, diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 9f0135be19..a2438453fa 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -21,6 +21,7 @@ #include "overworld.h" #include "palette.h" #include "palette_util.h" +#include "pokedex.h" #include "pokemon.h" #include "pokemon_animation.h" #include "pokemon_debug.h" @@ -136,6 +137,16 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = .paletteNum = 0xF, .baseBlock = 1 + 30 + 60 + 30 }, + [WIN_FOOTPRINT] = + { + .bg = 0, + .tilemapLeft = 27, + .tilemapTop = 14, + .width = 2, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 1 + 30 + 60 + 30 + 150, + }, DUMMY_WIN_TEMPLATE, }; @@ -750,6 +761,31 @@ static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, gSprites[data->frontShadowSpriteId].invisible = FALSE; } +//Tile functions (footprints) +static void DrawFootprintCustom(u8 windowId, u16 species) +{ + u8 footprint[32 * 4] = {0}; + const u8 * footprintGfx = gMonFootprintTable[species]; + u32 i, j, tileIdx = 0; + + if (footprintGfx != NULL) + { + for (i = 0; i < 32; i++) + { + u8 tile = footprintGfx[i]; + for (j = 0; j < 4; j++) + { + u8 value = ((tile >> (2 * j)) & 1 ? 2 : 0); + if (tile & (2 << (2 * j))) + value |= 0x20; + footprint[tileIdx] = value; + tileIdx++; + } + } + } + CopyToWindowPixelBuffer(windowId, footprint, sizeof(footprint), 0); +} + //Battle background functions static void LoadBattleBg(u8 battleBgType, u8 battleTerrain) { @@ -1050,6 +1086,10 @@ void CB2_Debug_Pokemon(void) //BattleNg Name PrintBattleBgName(taskId); + //Footprint + DrawFootprintCustom(WIN_FOOTPRINT, species); + CopyWindowToVram(WIN_FOOTPRINT, COPYWIN_GFX); + gMain.state++; break; case 4: @@ -1406,6 +1446,10 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) //Arrow invisibility SetArrowInvisibility(data); + + //Footprint + DrawFootprintCustom(WIN_FOOTPRINT, species); + CopyWindowToVram(WIN_FOOTPRINT, COPYWIN_GFX); } static void Exit_Debug_Pokemon(u8 taskId) From fe95e88938158cc579d3cba1c64adf9b8fcc09a6 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Mon, 13 Dec 2021 22:31:37 +0100 Subject: [PATCH 62/95] added option to view changes for front/back sprite picCoords and elevation live --- include/constants/pokemon_debug.h | 3 + include/pokemon_debug.h | 30 ++- src/pokemon_debug.c | 383 ++++++++++++++++++++++++------ 3 files changed, 345 insertions(+), 71 deletions(-) diff --git a/include/constants/pokemon_debug.h b/include/constants/pokemon_debug.h index 26d757fe39..c75392bf22 100644 --- a/include/constants/pokemon_debug.h +++ b/include/constants/pokemon_debug.h @@ -23,6 +23,9 @@ #define MON_PIC_BACK 0 #define MON_PIC_FRONT 1 +//Sprite offset +#define MAX_Y_OFFSET 20 + //Windows #define WIN_NAME_NUMBERS 0 #define WIN_INSTRUCTIONS 1 diff --git a/include/pokemon_debug.h b/include/pokemon_debug.h index 1b8db76c12..e69b4a7c6b 100644 --- a/include/pokemon_debug.h +++ b/include/pokemon_debug.h @@ -19,9 +19,28 @@ struct PokemonDebugModifyArrows struct PokemonDebugOptionArrows { - u8 arrowSpriteId[2]; + u8 arrowSpriteId[1]; u8 currentDigit; - void *modifiedValPtr; +}; + +struct PokemonDebugYPosModifiyArrows +{ + u8 arrowSpriteId[1]; + u8 currentDigit; +}; + +struct PokemonSpriteConstValues +{ + u8 backPicCoords; + u8 frontPicCoords; + u8 frontElevation; +}; + +struct PokemonSpriteOffsets +{ + s8 offset_back_picCoords; + s8 offset_front_picCoords; + s8 offset_front_elevation; }; struct PokemonDebugMenu @@ -37,12 +56,15 @@ struct PokemonDebugMenu bool8 isFemale; struct PokemonDebugModifyArrows modifyArrows; struct PokemonDebugOptionArrows optionArrows; + struct PokemonDebugYPosModifiyArrows yPosModifyArrows; + struct PokemonSpriteConstValues constSpriteValues; + struct PokemonSpriteOffsets offsetsSpriteValues; u8 animIdBack; u8 animIdFront; u8 battleBgType; u8 battleTerrain; - bool8 inSubmenu; - u8 submenuYpos; + u8 currentSubmenu; + u8 submenuYpos[3]; }; void CB2_Debug_Pokemon(void); diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index a2438453fa..5090a5db59 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -123,19 +123,19 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = .bg = 0, .tilemapLeft = 1, .tilemapTop = 14, - .width = 5, + .width = 6, .height = 6, .paletteNum = 0xF, .baseBlock = 1 + 30 + 60 }, [WIN_BOTTOM_RIGHT] = { .bg = 0, - .tilemapLeft = 6, + .tilemapLeft = 7, .tilemapTop = 14, - .width = 25, + .width = 24, .height = 6, .paletteNum = 0xF, - .baseBlock = 1 + 30 + 60 + 30 + .baseBlock = 1 + 30 + 60 + 36 }, [WIN_FOOTPRINT] = { @@ -145,7 +145,7 @@ static const struct WindowTemplate sPokemonDebugWindowTemplate[] = .width = 2, .height = 2, .paletteNum = 0xF, - .baseBlock = 1 + 30 + 60 + 30 + 150, + .baseBlock = 1 + 30 + 60 + 36 + 144, }, DUMMY_WIN_TEMPLATE, }; @@ -397,41 +397,55 @@ static void PrintInstructionsOnWindow(struct PokemonDebugMenu *data) { u8 fontId = 0; u8 x = 2; - u8 textInstructions[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Exit {A_BUTTON} Submenu$"); - u8 textInstructionsGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Exit {A_BUTTON} Submenu$"); - u8 textInstructionsInSubmenu[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back$"); - u8 textInstructionsInSubmenuGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back$"); + u8 textInstructions[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Exit {A_BUTTON} Submenu 1$"); + u8 textInstructionsGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Exit {A_BUTTON} Submenu 1$"); + u8 textInstructionsSubmenuOne[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back {A_BUTTON} Submenu 2$"); + u8 textInstructionsSubmenuOneGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back {A_BUTTON} Submenu 2$"); + u8 textInstructionsSubmenuTwo[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back$"); + u8 textInstructionsSubmenuTwoGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back$"); + u8 textBottom[] = _("BACK:\nFRONT:\nBG:$"); u8 textBottomForms[] = _("BACK:\nFRONT:\nBG:\nFORMS:$"); + u8 textBottomSubmenuTwo[] = _("B coords:\nF coords:\nF elev:"); u16 species = data->modifyArrows.currValue; //Instruction window FillWindowPixelBuffer(WIN_INSTRUCTIONS, 0x11); - if (data->inSubmenu) - { - if (SpeciesHasGenderDifference[species]) - AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsInSubmenuGender, x, 0, 0, NULL); - else - AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsInSubmenu, x, 0, 0, NULL); - } - else + if (data->currentSubmenu == 0) { if (SpeciesHasGenderDifference[species]) AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsGender, x, 0, 0, NULL); else AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructions, x, 0, 0, NULL); } + else if (data->currentSubmenu == 1) + { + if (SpeciesHasGenderDifference[species]) + AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsSubmenuOneGender, x, 0, 0, NULL); + else + AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsSubmenuOne, x, 0, 0, NULL); + } + else if (data->currentSubmenu == 2) + { + if (SpeciesHasGenderDifference[species]) + AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsSubmenuTwoGender, x, 0, 0, NULL); + else + AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsSubmenuTwo, x, 0, 0, NULL); + } CopyWindowToVram(WIN_INSTRUCTIONS, 3); //Bottom left text - if (gFormSpeciesIdTables[data->currentmonId] != NULL) - AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottomForms, 0, 0, 0, NULL); - else + FillWindowPixelBuffer(WIN_BOTTOM_LEFT, PIXEL_FILL(0)); + if (data->currentSubmenu != 2) { - FillWindowPixelBuffer(WIN_BOTTOM_LEFT, PIXEL_FILL(0)); - AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottom, 0, 0, 0, NULL); + if (gFormSpeciesIdTables[data->currentmonId] != NULL) + AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottomForms, 0, 0, 0, NULL); + else + AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottom, 0, 0, 0, NULL); } + else + AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottomSubmenuTwo, 0, 0, 0, NULL); } static void VBlankCB(void) @@ -525,10 +539,28 @@ static void ValueToCharDigits(u8 *charDigits, u32 newValue, u8 maxDigits) static void SetArrowInvisibility(struct PokemonDebugMenu *data) { - bool8 invisible = data->inSubmenu; - gSprites[data->modifyArrows.arrowSpriteId[0]].invisible = invisible; - gSprites[data->modifyArrows.arrowSpriteId[1]].invisible = invisible; - gSprites[data->optionArrows.arrowSpriteId[0]].invisible = !invisible; + bool8 invisible = data->currentSubmenu; + switch (data->currentSubmenu) + { + case 0: + gSprites[data->modifyArrows.arrowSpriteId[0]].invisible = FALSE; + gSprites[data->modifyArrows.arrowSpriteId[1]].invisible = FALSE; + gSprites[data->optionArrows.arrowSpriteId[0]].invisible = TRUE; + gSprites[data->yPosModifyArrows.arrowSpriteId[0]].invisible = TRUE; + break; + case 1: + gSprites[data->modifyArrows.arrowSpriteId[0]].invisible = TRUE; + gSprites[data->modifyArrows.arrowSpriteId[1]].invisible = TRUE; + gSprites[data->optionArrows.arrowSpriteId[0]].invisible = FALSE; + gSprites[data->yPosModifyArrows.arrowSpriteId[0]].invisible = TRUE; + break; + case 2: + gSprites[data->modifyArrows.arrowSpriteId[0]].invisible = TRUE; + gSprites[data->modifyArrows.arrowSpriteId[1]].invisible = TRUE; + gSprites[data->optionArrows.arrowSpriteId[0]].invisible = TRUE; + gSprites[data->yPosModifyArrows.arrowSpriteId[0]].invisible = FALSE; + break; + } } static void SetUpModifyArrows(struct PokemonDebugMenu *data) @@ -560,6 +592,17 @@ static void SetUpOptionArrows(struct PokemonDebugMenu *data) gSprites[data->optionArrows.arrowSpriteId[0]].invisible = TRUE; } +static void SetUpYPosModifyArrows(struct PokemonDebugMenu *data) +{ + LoadSpritePalette(&sSpritePalette_Arrow); + data->yPosModifyArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y, 0); + gSprites[data->yPosModifyArrows.arrowSpriteId[0]].animNum = 2; + + data->yPosModifyArrows.currentDigit = 0; + + gSprites[data->yPosModifyArrows.arrowSpriteId[0]].invisible = TRUE; +} + static bool32 TryMoveDigit(struct PokemonDebugModifyArrows *modArrows, bool32 moveUp) { s32 i; @@ -654,7 +697,7 @@ static const struct CompressedSpritePalette *GetMonSpritePalStructCustom(u16 spe } } -void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isShiny, u8 battlerId) +static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isShiny, u8 battlerId) { u16 paletteOffset; const void *lzPaletteData; @@ -713,21 +756,39 @@ static u8 GetCastformYCustom(species) return ret; } -u8 GetBattlerSpriteFinal_YCustom(u16 species) +static u8 GetElevationValue(u16 species) +{ + u8 val; + if (species == SPECIES_CASTFORM) + val = sCastformElevations[0]; + else if (IsCastformForm(species)) + val = sCastformElevations[species - SPECIES_CASTFORM_SUNNY + 1]; + else + val = gEnemyMonElevation[species]; + + return val; +} + +static void SetConstSpriteValues(struct PokemonDebugMenu *data) +{ + u16 species = data->currentmonId; + data->constSpriteValues.frontPicCoords = gMonFrontPicCoords[species].y_offset; + data->constSpriteValues.frontElevation = GetElevationValue(species); + data->constSpriteValues.backPicCoords = gMonBackPicCoords[species].y_offset; +} + +static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 offset_elevation) { u16 offset; u8 y; - offset = gMonFrontPicCoords[species].y_offset; - - if (species == SPECIES_CASTFORM) - offset -= sCastformElevations[0]; - else if (IsCastformForm(species)) - offset -= sCastformElevations[species - SPECIES_CASTFORM_SUNNY + 1]; - else - offset -= gEnemyMonElevation[species]; - + //FrontPicCoords + offset = gMonFrontPicCoords[species].y_offset + offset_picCoords; + + //Elevation + offset -= GetElevationValue(species) + offset_elevation; + //Main position y = offset + sBattlerCoords[0][1].y; if (y > DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8) @@ -736,7 +797,7 @@ u8 GetBattlerSpriteFinal_YCustom(u16 species) return y; } -void SpriteCB_EnemyShadowCustom(struct Sprite *shadowSprite) +static void SpriteCB_EnemyShadowCustom(struct Sprite *shadowSprite) { bool8 invisible = FALSE; u8 frontSpriteId = shadowSprite->data[0]; @@ -746,12 +807,15 @@ void SpriteCB_EnemyShadowCustom(struct Sprite *shadowSprite) shadowSprite->x2 = battlerSprite->x2; shadowSprite->invisible = invisible; } -static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, u8 x, u8 y, u16 species) +static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, u16 species) { + u8 x, y; if (gEnemyMonElevation[species] == 0 && !IsCastformForm(species)) return; LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadow); LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]); + x = sBattlerCoords[0][1].x; + y = sBattlerCoords[0][1].y; data->frontShadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, x, y + 29, 0xC8); gSprites[data->frontShadowSpriteId].data[0] = data->frontspriteId; @@ -955,6 +1019,57 @@ static void UpdateMonAnimNames(u8 taskId) PrintBattleBgName(taskId); } +static void UpdateYPosOffsetText(struct PokemonDebugMenu *data) +{ + u8 text[34]; + u8 fontId = 0; + u8 textConst[] = _("const val:"); + u8 textNew[] = _("new val:"); + u8 x_const_val = 50; + u8 x_new_text = 70; + u8 x_new_val = 110; + u8 y = 0; + + u8 backPicCoords = data->constSpriteValues.backPicCoords; + u8 frontPicCoords = data->constSpriteValues.frontPicCoords; + u8 frontElevation = data->constSpriteValues.frontElevation; + + s8 offset_back_picCoords = data->offsetsSpriteValues.offset_back_picCoords; + s8 offset_front_picCoords = data->offsetsSpriteValues.offset_front_picCoords; + s8 offset_front_elevation = data->offsetsSpriteValues.offset_front_elevation; + + u8 newBackPicCoords = backPicCoords + offset_back_picCoords; + u8 newFrontPicCoords = frontPicCoords + offset_front_picCoords; + u8 newFrontElevation = frontElevation + offset_front_elevation; + + FillWindowPixelBuffer(WIN_BOTTOM_RIGHT, PIXEL_FILL(0)); + + //Back + y = 0; + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textConst, 0, y, 0, NULL); + ConvertIntToDecimalStringN(text, backPicCoords , STR_CONV_MODE_LEFT_ALIGN, 2); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, x_const_val, y, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textNew, x_new_text, y, 0, NULL); + ConvertIntToDecimalStringN(text, newBackPicCoords , STR_CONV_MODE_LEFT_ALIGN, 2); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, x_new_val, y, 0, NULL); + //Front picCoords + y = 12; + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textConst, 0, y, 0, NULL); + ConvertIntToDecimalStringN(text, frontPicCoords , STR_CONV_MODE_LEFT_ALIGN, 2); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, x_const_val, y, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textNew, x_new_text, y, 0, NULL); + ConvertIntToDecimalStringN(text, newFrontPicCoords , STR_CONV_MODE_LEFT_ALIGN, 2); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, x_new_val, y, 0, NULL); + //Front elevation + y = 24; + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textConst, 0, y, 0, NULL); + ConvertIntToDecimalStringN(text, frontElevation , STR_CONV_MODE_LEFT_ALIGN, 2); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, x_const_val, y, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textNew, x_new_text, y, 0, NULL); + ConvertIntToDecimalStringN(text, newFrontElevation , STR_CONV_MODE_LEFT_ALIGN, 2); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, x_new_val, y, 0, NULL); +} + static void ResetPokemonDebugWindows(void) { u8 i; @@ -1049,13 +1164,13 @@ void CB2_Debug_Pokemon(void) BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); gMultiuseSpriteTemplate.paletteTag = palette->tag; - front_y = GetBattlerSpriteFinal_YCustom(species); + front_y = GetBattlerSpriteFinal_YCustom(species, 0, 0); data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, front_x, front_y, 0); gSprites[data->frontspriteId].oam.paletteNum = 1; gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; //Front Shadow - LoadAndCreateEnemyShadowSpriteCustom(data, front_x, front_y, species); + LoadAndCreateEnemyShadowSpriteCustom(data, species); //Back HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); @@ -1075,9 +1190,12 @@ void CB2_Debug_Pokemon(void) SetUpModifyArrows(data); PrintDigitChars(data); - //Option Arrows + //Option Arrow SetUpOptionArrows(data); + //Modify Y Pos Arrow + SetUpYPosModifyArrows(data); + //Anim names data->animIdBack = GetSpeciesBackAnimSet(species) + 1; data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; @@ -1148,10 +1266,10 @@ static void ResetBGs_Debug_Menu(u16 a) } } -static void UpdateSubmenuOptionValue(u8 taskId, bool8 increment) +static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) { struct PokemonDebugMenu *data = GetStructPtr(taskId); - u8 option = data->submenuYpos; + u8 option = data->submenuYpos[1]; switch (option) { @@ -1223,6 +1341,80 @@ static void UpdateSubmenuOptionValue(u8 taskId, bool8 increment) } } +static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment) +{ + struct PokemonDebugMenu *data = GetStructPtr(taskId); + u16 species = data->currentmonId; + u8 option = data->submenuYpos[2]; + s8 offset; + u8 y; + + switch (option) + { + case 0: //Back picCoords + offset = data->offsetsSpriteValues.offset_back_picCoords; + if (increment) + { + if (offset == MAX_Y_OFFSET) + offset = -data->constSpriteValues.backPicCoords; + else + offset += 1; + } + else + { + if (offset == -data->constSpriteValues.backPicCoords) + offset = MAX_Y_OFFSET; + else + offset -= 1; + } + data->offsetsSpriteValues.offset_back_picCoords = offset; + gSprites[data->backspriteId].y = DEBUG_MON_BACK_Y + gMonBackPicCoords[species].y_offset + offset; + break; + case 1: //Front picCoords + offset = data->offsetsSpriteValues.offset_front_picCoords; + if (increment) + { + if (offset == MAX_Y_OFFSET) + offset = -data->constSpriteValues.frontPicCoords; + else + offset += 1; + } + else + { + if (offset == -data->constSpriteValues.frontPicCoords) + offset = MAX_Y_OFFSET; + else + offset -= 1; + } + data->offsetsSpriteValues.offset_front_picCoords = offset; + y = GetBattlerSpriteFinal_YCustom(species, offset, data->offsetsSpriteValues.offset_front_elevation); + gSprites[data->frontspriteId].y = y; + break; + case 2: //Front elevation + offset = data->offsetsSpriteValues.offset_front_elevation; + if (increment) + { + if (offset == MAX_Y_OFFSET) + offset = -data->constSpriteValues.frontElevation; + else + offset += 1; + } + else + { + if (offset == -data->constSpriteValues.frontElevation) + offset = MAX_Y_OFFSET; + else + offset -= 1; + } + data->offsetsSpriteValues.offset_front_elevation = offset; + y = GetBattlerSpriteFinal_YCustom(species, data->offsetsSpriteValues.offset_front_picCoords, offset); + gSprites[data->frontspriteId].y = y; + break; + } + + UpdateYPosOffsetText(data); +} + static void Handle_Input_Debug_Pokemon(u8 taskId) { @@ -1263,11 +1455,11 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) PlaySE(SE_DEX_SCROLL); } - if (!data->inSubmenu) + if (data->currentSubmenu == 0) { if (JOY_NEW(A_BUTTON)) { - data->inSubmenu = TRUE; + data->currentSubmenu = 1; SetArrowInvisibility(data); PrintInstructionsOnWindow(data); } @@ -1288,6 +1480,9 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; UpdateMonAnimNames(taskId); + data->offsetsSpriteValues.offset_back_picCoords = 0; + data->offsetsSpriteValues.offset_front_picCoords = 0; + data->offsetsSpriteValues.offset_front_elevation = 0; } PlaySE(SE_DEX_SCROLL); while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); @@ -1303,6 +1498,9 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; UpdateMonAnimNames(taskId); + data->offsetsSpriteValues.offset_back_picCoords = 0; + data->offsetsSpriteValues.offset_front_picCoords = 0; + data->offsetsSpriteValues.offset_front_elevation = 0; } PlaySE(SE_DEX_SCROLL); @@ -1327,15 +1525,23 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) } } - else //Submenu + else if (data->currentSubmenu == 1) //Submenu 1 { - if (JOY_NEW(B_BUTTON)) + if (JOY_NEW(A_BUTTON)) { - data->inSubmenu = FALSE; - if (data->submenuYpos == 3) + data->currentSubmenu = 2; + SetConstSpriteValues(data); + PrintInstructionsOnWindow(data); + SetArrowInvisibility(data); + UpdateYPosOffsetText(data); + } + else if (JOY_NEW(B_BUTTON)) + { + data->currentSubmenu = 0; + if (data->submenuYpos[1] == 3) { - data->submenuYpos = 2; - data->optionArrows.currentDigit = data->submenuYpos; + data->submenuYpos[1] = 2; + data->optionArrows.currentDigit = data->submenuYpos[1]; gSprites[data->optionArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; } SetArrowInvisibility(data); @@ -1343,37 +1549,75 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) } else if (JOY_NEW(DPAD_DOWN)) { - data->submenuYpos += 1; - if (data->submenuYpos >= 3) + data->submenuYpos[1] += 1; + if (data->submenuYpos[1] >= 3) { - if ((gFormSpeciesIdTables[data->currentmonId] == NULL) || (data->submenuYpos >= 4)) - data->submenuYpos = 0; + if ((gFormSpeciesIdTables[data->currentmonId] == NULL) || (data->submenuYpos[1] >= 4)) + data->submenuYpos[1] = 0; } - data->optionArrows.currentDigit = data->submenuYpos; + data->optionArrows.currentDigit = data->submenuYpos[1]; gSprites[data->optionArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; } else if (JOY_NEW(DPAD_UP)) { - if (data->submenuYpos == 0) + if (data->submenuYpos[1] == 0) { if (gFormSpeciesIdTables[data->currentmonId] != NULL) - data->submenuYpos = 3; + data->submenuYpos[1] = 3; else - data->submenuYpos = 2; + data->submenuYpos[1] = 2; } else - data->submenuYpos -= 1; + data->submenuYpos[1] -= 1; - data->optionArrows.currentDigit = data->submenuYpos; + data->optionArrows.currentDigit = data->submenuYpos[1]; gSprites[data->optionArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12; } else if (JOY_NEW(DPAD_LEFT)) { - UpdateSubmenuOptionValue(taskId, FALSE); + UpdateSubmenuOneOptionValue(taskId, FALSE); } else if (JOY_NEW(DPAD_RIGHT)) { - UpdateSubmenuOptionValue(taskId, TRUE); + UpdateSubmenuOneOptionValue(taskId, TRUE); + } + } + else if (data->currentSubmenu == 2) //Submenu 2 + { + if (JOY_NEW(B_BUTTON)) + { + data->currentSubmenu = 1; + + SetArrowInvisibility(data); + PrintInstructionsOnWindow(data); + UpdateMonAnimNames(taskId); + } + else if (JOY_NEW(DPAD_DOWN)) + { + data->submenuYpos[2] += 1; + if (data->submenuYpos[2] >= 3) + data->submenuYpos[2] = 0; + + data->yPosModifyArrows.currentDigit = data->submenuYpos[2]; + gSprites[data->yPosModifyArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->yPosModifyArrows.currentDigit * 12; + } + else if (JOY_NEW(DPAD_UP)) + { + if (data->submenuYpos[2] == 0) + data->submenuYpos[2] = 2; + else + data->submenuYpos[2] -= 1; + + data->yPosModifyArrows.currentDigit = data->submenuYpos[2]; + gSprites[data->yPosModifyArrows.arrowSpriteId[0]].y = OPTIONS_ARROW_Y + data->yPosModifyArrows.currentDigit * 12; + } + else if (JOY_NEW(DPAD_LEFT)) + { + UpdateSubmenuTwoOptionValue(taskId, FALSE); + } + else if (JOY_NEW(DPAD_RIGHT)) + { + UpdateSubmenuTwoOptionValue(taskId, TRUE); } } } @@ -1411,13 +1655,13 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); gMultiuseSpriteTemplate.paletteTag = palette->tag; - front_y = GetBattlerSpriteFinal_YCustom(species); + front_y = GetBattlerSpriteFinal_YCustom(species, 0, 0); data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, front_x, front_y, 0); gSprites[data->frontspriteId].oam.paletteNum = 1; gSprites[data->frontspriteId].callback = SpriteCallbackDummy; gSprites[data->frontspriteId].oam.priority = 0; //Front Shadow - LoadAndCreateEnemyShadowSpriteCustom(data, front_x, front_y, species); + LoadAndCreateEnemyShadowSpriteCustom(data, species); //Back HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); @@ -1439,11 +1683,16 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) data->modifyArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW2_Y, 0); gSprites[data->modifyArrows.arrowSpriteId[1]].animNum = 1; - //Option Arrows + //Option Arrow LoadSpritePalette(&sSpritePalette_Arrow); data->optionArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12, 0); gSprites[data->optionArrows.arrowSpriteId[0]].animNum = 2; + //Y Pos Modify Arrow + LoadSpritePalette(&sSpritePalette_Arrow); + data->yPosModifyArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y + data->yPosModifyArrows.currentDigit * 12, 0); + gSprites[data->yPosModifyArrows.arrowSpriteId[0]].animNum = 2; + //Arrow invisibility SetArrowInvisibility(data); From e95020c59afaf55a62a81b7e3aaa2995bdfe981c Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Mon, 13 Dec 2021 22:01:31 -0300 Subject: [PATCH 63/95] Fixed form wrapping to the left. --- src/pokemon_debug.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 5090a5db59..01d9c1253f 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -1325,7 +1325,15 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) else { if (gFormSpeciesIdTables[data->currentmonId][formId] == gFormSpeciesIdTables[data->currentmonId][0]) - modArrows->currValue = gFormSpeciesIdTables[data->currentmonId][0]; + { + u8 lastForm; + for (lastForm = 0; gFormSpeciesIdTables[data->currentmonId][lastForm] != FORM_SPECIES_END; lastForm++) + { + if (gFormSpeciesIdTables[data->currentmonId][lastForm + 1] == FORM_SPECIES_END) + break; + } + modArrows->currValue = gFormSpeciesIdTables[data->currentmonId][lastForm]; + } else modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId - 1); } From 5d7ac2171fde4b7e0dad398e09a817b8e9145349 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Mon, 13 Dec 2021 22:57:39 -0300 Subject: [PATCH 64/95] Animations reload when switching Forms --- src/pokemon_debug.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 01d9c1253f..35db799a99 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -943,7 +943,7 @@ static void UpdateBattleBg(u8 taskId, bool8 increment) { struct PokemonDebugMenu *data = GetStructPtr(taskId); - if (data->battleBgType == 0) + if (data->battleBgType == MAP_BATTLE_SCENE_NORMAL) { if (increment) { @@ -1337,6 +1337,9 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) else modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId - 1); } + data->animIdBack = GetSpeciesBackAnimSet(modArrows->currValue) + 1; + data->animIdFront = sMonFrontAnimIdsTable[modArrows->currValue - 1]; + UpdateMonAnimNames(taskId); UpdateBattlerValue(data); ReloadPokemonSprites(data); From 037370fe19f5d84069ee47072ae898806a8f1d52 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Mon, 13 Dec 2021 23:33:25 -0300 Subject: [PATCH 65/95] Showing animation number --- src/pokemon_debug.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 35db799a99..00fbe1297c 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -1004,17 +1004,22 @@ static void UpdateMonAnimNames(u8 taskId) u8 fontId = 0; u8 textL[] = _("{L_BUTTON}"); u8 textR[] = _("{R_BUTTON}"); + u8 textNum[4]; FillWindowPixelBuffer(WIN_BOTTOM_RIGHT, PIXEL_FILL(0)); //Back StringCopy(text, gBackAnimNames[backAnim]); AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textL, 0, 0, 0, NULL); - AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 20, 0, 0, NULL); + ConvertIntToDecimalStringN(textNum, backAnim, STR_CONV_MODE_LEADING_ZEROS, 3); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textNum, 18, 0, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 36, 0, 0, NULL); //Front StringCopy(text, gFrontAnimNames[frontAnim]); AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textR, 0, 12, 0, NULL); - AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 20, 12, 0, NULL); + ConvertIntToDecimalStringN(textNum, frontAnim, STR_CONV_MODE_LEADING_ZEROS, 3); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textNum, 18, 12, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 36, 12, 0, NULL); PrintBattleBgName(taskId); } From 7738d67314035ee724c2c010d858c7ff1f4c4f4e Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Mon, 13 Dec 2021 23:52:16 -0300 Subject: [PATCH 66/95] Slight documentation --- src/pokemon_debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 00fbe1297c..3b843ccda2 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -1726,7 +1726,7 @@ static void Exit_Debug_Pokemon(u8 taskId) FreeMonSpritesGfx(); DestroyTask(taskId); SetMainCallback2(CB2_ReturnToFieldWithOpenMenu); - m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100); + m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 0x100); } } From c4fea6a18957175f7328141a5336ee7b718b0eb1 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 14 Dec 2021 09:46:26 +0100 Subject: [PATCH 67/95] fixed Groudon terrain (dont forget your breaks...) --- src/pokemon_debug.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 3b843ccda2..c9df999e60 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -915,6 +915,7 @@ static void LoadBattleBg(u8 battleBgType, u8 battleTerrain) LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); + break; case MAP_BATTLE_SCENE_KYOGRE: LZDecompressVram(gBattleTerrainTiles_Water, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); From 9ce83b559e06afbb2655bf842269629cbc742911 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 14 Dec 2021 10:01:04 +0100 Subject: [PATCH 68/95] if elevation is changed to != 0 the shadow is shown --- src/pokemon_debug.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index c9df999e60..029ee1447c 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -797,21 +797,29 @@ static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 off return y; } +static void UpdateShadowSpriteInvisible(struct PokemonDebugMenu *data) +{ + if (data->constSpriteValues.frontElevation + data->offsetsSpriteValues.offset_front_elevation == 0) + gSprites[data->frontShadowSpriteId].invisible = TRUE; + else + gSprites[data->frontShadowSpriteId].invisible = FALSE; +} + static void SpriteCB_EnemyShadowCustom(struct Sprite *shadowSprite) { - bool8 invisible = FALSE; u8 frontSpriteId = shadowSprite->data[0]; struct Sprite *battlerSprite = &gSprites[frontSpriteId]; shadowSprite->x = battlerSprite->x; shadowSprite->x2 = battlerSprite->x2; - shadowSprite->invisible = invisible; } + static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, u16 species) { u8 x, y; + bool8 invisible = FALSE; if (gEnemyMonElevation[species] == 0 && !IsCastformForm(species)) - return; + invisible = TRUE; LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadow); LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]); x = sBattlerCoords[0][1].x; @@ -822,7 +830,7 @@ static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, gSprites[data->frontShadowSpriteId].callback = SpriteCB_EnemyShadowCustom; gSprites[data->frontShadowSpriteId].oam.priority = 0; - gSprites[data->frontShadowSpriteId].invisible = FALSE; + gSprites[data->frontShadowSpriteId].invisible = invisible; } //Tile functions (footprints) @@ -1426,6 +1434,7 @@ static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment) data->offsetsSpriteValues.offset_front_elevation = offset; y = GetBattlerSpriteFinal_YCustom(species, data->offsetsSpriteValues.offset_front_picCoords, offset); gSprites[data->frontspriteId].y = y; + UpdateShadowSpriteInvisible(data); break; } @@ -1478,9 +1487,10 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) { data->currentSubmenu = 1; SetArrowInvisibility(data); + SetConstSpriteValues(data); PrintInstructionsOnWindow(data); } - else if (JOY_NEW(B_BUTTON)) + else if (JOY_HELD(B_BUTTON)) { BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Exit_Debug_Pokemon; @@ -1547,7 +1557,6 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) if (JOY_NEW(A_BUTTON)) { data->currentSubmenu = 2; - SetConstSpriteValues(data); PrintInstructionsOnWindow(data); SetArrowInvisibility(data); UpdateYPosOffsetText(data); From 7a669565ccfed309f515ee6253fe582d19ccb1f1 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 14 Dec 2021 10:04:57 +0100 Subject: [PATCH 69/95] fixed the back button, didnt work as intended --- src/pokemon_debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 029ee1447c..8fdf7003e1 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -1490,7 +1490,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) SetConstSpriteValues(data); PrintInstructionsOnWindow(data); } - else if (JOY_HELD(B_BUTTON)) + else if (JOY_NEW(B_BUTTON)) { BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gTasks[taskId].func = Exit_Debug_Pokemon; From cbd6553c43245929b5f21c21261d9f7e919ba70f Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 14 Dec 2021 10:15:13 +0100 Subject: [PATCH 70/95] changed L/R Button position to account for numbered animations --- src/pokemon_debug.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 8fdf7003e1..ef440611c7 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -410,6 +410,9 @@ static void PrintInstructionsOnWindow(struct PokemonDebugMenu *data) u8 textBottomSubmenuTwo[] = _("B coords:\nF coords:\nF elev:"); u16 species = data->modifyArrows.currValue; + u8 textL[] = _("{L_BUTTON}"); + u8 textR[] = _("{R_BUTTON}"); + //Instruction window FillWindowPixelBuffer(WIN_INSTRUCTIONS, 0x11); if (data->currentSubmenu == 0) @@ -439,6 +442,8 @@ static void PrintInstructionsOnWindow(struct PokemonDebugMenu *data) FillWindowPixelBuffer(WIN_BOTTOM_LEFT, PIXEL_FILL(0)); if (data->currentSubmenu != 2) { + AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textL, 30, 0, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textR, 30, 12, 0, NULL); if (gFormSpeciesIdTables[data->currentmonId] != NULL) AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottomForms, 0, 0, 0, NULL); else @@ -1011,24 +1016,20 @@ static void UpdateMonAnimNames(u8 taskId) u8 backAnim = data->animIdBack; u8 text[34]; u8 fontId = 0; - u8 textL[] = _("{L_BUTTON}"); - u8 textR[] = _("{R_BUTTON}"); u8 textNum[4]; FillWindowPixelBuffer(WIN_BOTTOM_RIGHT, PIXEL_FILL(0)); //Back StringCopy(text, gBackAnimNames[backAnim]); - AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textL, 0, 0, 0, NULL); ConvertIntToDecimalStringN(textNum, backAnim, STR_CONV_MODE_LEADING_ZEROS, 3); - AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textNum, 18, 0, 0, NULL); - AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 36, 0, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textNum, 0, 0, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 18, 0, 0, NULL); //Front StringCopy(text, gFrontAnimNames[frontAnim]); - AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textR, 0, 12, 0, NULL); ConvertIntToDecimalStringN(textNum, frontAnim, STR_CONV_MODE_LEADING_ZEROS, 3); - AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textNum, 18, 12, 0, NULL); - AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 36, 12, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, textNum, 0, 12, 0, NULL); + AddTextPrinterParameterized(WIN_BOTTOM_RIGHT, fontId, text, 18, 12, 0, NULL); PrintBattleBgName(taskId); } From 834ab37b2c57982641ddc3790efe6aeea6cd872b Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Mon, 13 Dec 2021 15:05:28 -0300 Subject: [PATCH 71/95] Added Gen. 7 footprint sprites --- graphics/pokemon/araquanid/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/bewear/footprint.png | Bin 0 -> 303 bytes graphics/pokemon/blacephalon/footprint.png | Bin 0 -> 301 bytes graphics/pokemon/bounsweet/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/brionne/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/bruxish/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/buzzwole/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/celesteela/footprint.png | Bin 0 -> 318 bytes graphics/pokemon/charjabug/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/comfey/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/cosmoem/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/cosmog/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/crabominable/footprint.png | Bin 0 -> 298 bytes graphics/pokemon/crabrawler/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/cutiefly/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/dartrix/footprint.png | Bin 0 -> 305 bytes graphics/pokemon/decidueye/footprint.png | Bin 0 -> 303 bytes graphics/pokemon/dewpider/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/dhelmise/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/drampa/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/fomantis/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/golisopod/footprint.png | Bin 0 -> 301 bytes graphics/pokemon/grubbin/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/gumshoos/footprint.png | Bin 0 -> 307 bytes graphics/pokemon/guzzlord/footprint.png | Bin 0 -> 301 bytes graphics/pokemon/hakamo_o/footprint.png | Bin 0 -> 303 bytes graphics/pokemon/incineroar/footprint.png | Bin 0 -> 306 bytes graphics/pokemon/jangmo_o/footprint.png | Bin 0 -> 302 bytes graphics/pokemon/kartana/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/komala/footprint.png | Bin 0 -> 301 bytes graphics/pokemon/kommo_o/footprint.png | Bin 0 -> 303 bytes graphics/pokemon/litten/footprint.png | Bin 0 -> 302 bytes graphics/pokemon/lunala/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/lurantis/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/lycanroc/footprint.png | Bin 0 -> 314 bytes graphics/pokemon/magearna/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/mareanie/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/marshadow/footprint.png | Bin 0 -> 319 bytes graphics/pokemon/melmetal/footprint.png | Bin 0 -> 306 bytes graphics/pokemon/meltan/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/mimikyu/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/minior/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/morelull/footprint.png | Bin 0 -> 301 bytes graphics/pokemon/mudbray/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/mudsdale/footprint.png | Bin 0 -> 307 bytes graphics/pokemon/naganadel/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/necrozma/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/nihilego/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/oranguru/footprint.png | Bin 0 -> 322 bytes graphics/pokemon/oricorio/footprint.png | Bin 0 -> 312 bytes graphics/pokemon/palossand/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/passimian/footprint.png | Bin 0 -> 319 bytes graphics/pokemon/pheromosa/footprint.png | Bin 0 -> 295 bytes graphics/pokemon/pikipek/footprint.png | Bin 0 -> 307 bytes graphics/pokemon/poipole/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/popplio/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/primarina/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/pyukumuku/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/ribombee/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/rockruff/footprint.png | Bin 0 -> 308 bytes graphics/pokemon/rowlet/footprint.png | Bin 0 -> 306 bytes graphics/pokemon/salandit/footprint.png | Bin 0 -> 311 bytes graphics/pokemon/salazzle/footprint.png | Bin 0 -> 313 bytes graphics/pokemon/sandygast/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/shiinotic/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/silvally/footprint.png | Bin 0 -> 309 bytes graphics/pokemon/solgaleo/footprint.png | Bin 0 -> 320 bytes graphics/pokemon/stakataka/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/steenee/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/stufful/footprint.png | Bin 0 -> 306 bytes graphics/pokemon/tapu_bulu/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/tapu_fini/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/tapu_koko/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/tapu_lele/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/togedemaru/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/torracat/footprint.png | Bin 0 -> 303 bytes graphics/pokemon/toucannon/footprint.png | Bin 0 -> 314 bytes graphics/pokemon/toxapex/footprint.png | Bin 0 -> 301 bytes graphics/pokemon/trumbeak/footprint.png | Bin 0 -> 307 bytes graphics/pokemon/tsareena/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/turtonator/footprint.png | Bin 0 -> 300 bytes graphics/pokemon/type_null/footprint.png | Bin 0 -> 309 bytes graphics/pokemon/vikavolt/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/wimpod/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/wishiwashi/footprint.png | Bin 0 -> 262 bytes graphics/pokemon/xurkitree/footprint.png | Bin 0 -> 312 bytes graphics/pokemon/yungoos/footprint.png | Bin 0 -> 300 bytes graphics/pokemon/zeraora/footprint.png | Bin 0 -> 302 bytes 88 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 graphics/pokemon/araquanid/footprint.png create mode 100644 graphics/pokemon/bewear/footprint.png create mode 100644 graphics/pokemon/blacephalon/footprint.png create mode 100644 graphics/pokemon/bounsweet/footprint.png create mode 100644 graphics/pokemon/brionne/footprint.png create mode 100644 graphics/pokemon/bruxish/footprint.png create mode 100644 graphics/pokemon/buzzwole/footprint.png create mode 100644 graphics/pokemon/celesteela/footprint.png create mode 100644 graphics/pokemon/charjabug/footprint.png create mode 100644 graphics/pokemon/comfey/footprint.png create mode 100644 graphics/pokemon/cosmoem/footprint.png create mode 100644 graphics/pokemon/cosmog/footprint.png create mode 100644 graphics/pokemon/crabominable/footprint.png create mode 100644 graphics/pokemon/crabrawler/footprint.png create mode 100644 graphics/pokemon/cutiefly/footprint.png create mode 100644 graphics/pokemon/dartrix/footprint.png create mode 100644 graphics/pokemon/decidueye/footprint.png create mode 100644 graphics/pokemon/dewpider/footprint.png create mode 100644 graphics/pokemon/dhelmise/footprint.png create mode 100644 graphics/pokemon/drampa/footprint.png create mode 100644 graphics/pokemon/fomantis/footprint.png create mode 100644 graphics/pokemon/golisopod/footprint.png create mode 100644 graphics/pokemon/grubbin/footprint.png create mode 100644 graphics/pokemon/gumshoos/footprint.png create mode 100644 graphics/pokemon/guzzlord/footprint.png create mode 100644 graphics/pokemon/hakamo_o/footprint.png create mode 100644 graphics/pokemon/incineroar/footprint.png create mode 100644 graphics/pokemon/jangmo_o/footprint.png create mode 100644 graphics/pokemon/kartana/footprint.png create mode 100644 graphics/pokemon/komala/footprint.png create mode 100644 graphics/pokemon/kommo_o/footprint.png create mode 100644 graphics/pokemon/litten/footprint.png create mode 100644 graphics/pokemon/lunala/footprint.png create mode 100644 graphics/pokemon/lurantis/footprint.png create mode 100644 graphics/pokemon/lycanroc/footprint.png create mode 100644 graphics/pokemon/magearna/footprint.png create mode 100644 graphics/pokemon/mareanie/footprint.png create mode 100644 graphics/pokemon/marshadow/footprint.png create mode 100644 graphics/pokemon/melmetal/footprint.png create mode 100644 graphics/pokemon/meltan/footprint.png create mode 100644 graphics/pokemon/mimikyu/footprint.png create mode 100644 graphics/pokemon/minior/footprint.png create mode 100644 graphics/pokemon/morelull/footprint.png create mode 100644 graphics/pokemon/mudbray/footprint.png create mode 100644 graphics/pokemon/mudsdale/footprint.png create mode 100644 graphics/pokemon/naganadel/footprint.png create mode 100644 graphics/pokemon/necrozma/footprint.png create mode 100644 graphics/pokemon/nihilego/footprint.png create mode 100644 graphics/pokemon/oranguru/footprint.png create mode 100644 graphics/pokemon/oricorio/footprint.png create mode 100644 graphics/pokemon/palossand/footprint.png create mode 100644 graphics/pokemon/passimian/footprint.png create mode 100644 graphics/pokemon/pheromosa/footprint.png create mode 100644 graphics/pokemon/pikipek/footprint.png create mode 100644 graphics/pokemon/poipole/footprint.png create mode 100644 graphics/pokemon/popplio/footprint.png create mode 100644 graphics/pokemon/primarina/footprint.png create mode 100644 graphics/pokemon/pyukumuku/footprint.png create mode 100644 graphics/pokemon/ribombee/footprint.png create mode 100644 graphics/pokemon/rockruff/footprint.png create mode 100644 graphics/pokemon/rowlet/footprint.png create mode 100644 graphics/pokemon/salandit/footprint.png create mode 100644 graphics/pokemon/salazzle/footprint.png create mode 100644 graphics/pokemon/sandygast/footprint.png create mode 100644 graphics/pokemon/shiinotic/footprint.png create mode 100644 graphics/pokemon/silvally/footprint.png create mode 100644 graphics/pokemon/solgaleo/footprint.png create mode 100644 graphics/pokemon/stakataka/footprint.png create mode 100644 graphics/pokemon/steenee/footprint.png create mode 100644 graphics/pokemon/stufful/footprint.png create mode 100644 graphics/pokemon/tapu_bulu/footprint.png create mode 100644 graphics/pokemon/tapu_fini/footprint.png create mode 100644 graphics/pokemon/tapu_koko/footprint.png create mode 100644 graphics/pokemon/tapu_lele/footprint.png create mode 100644 graphics/pokemon/togedemaru/footprint.png create mode 100644 graphics/pokemon/torracat/footprint.png create mode 100644 graphics/pokemon/toucannon/footprint.png create mode 100644 graphics/pokemon/toxapex/footprint.png create mode 100644 graphics/pokemon/trumbeak/footprint.png create mode 100644 graphics/pokemon/tsareena/footprint.png create mode 100644 graphics/pokemon/turtonator/footprint.png create mode 100644 graphics/pokemon/type_null/footprint.png create mode 100644 graphics/pokemon/vikavolt/footprint.png create mode 100644 graphics/pokemon/wimpod/footprint.png create mode 100644 graphics/pokemon/wishiwashi/footprint.png create mode 100644 graphics/pokemon/xurkitree/footprint.png create mode 100644 graphics/pokemon/yungoos/footprint.png create mode 100644 graphics/pokemon/zeraora/footprint.png diff --git a/graphics/pokemon/araquanid/footprint.png b/graphics/pokemon/araquanid/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..4740af4274ca2ec917164d814b2239de61e78aea GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4zm0Xkxq!^40j0|-RjdTqyLW~To49%!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4;M|7>$;O751quON%Xk=g(?vI5pYrK4P_=4_YeY#(Vo9o1a#1RfVlXl=GSoFR z(lxXQF*LR^G_^7^(l#)#GBD8Ldh!rOLvDUbW?Cg~4YA=du|N$Bp00i_>zopr0BD6$ A8vp!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4dN=3lviDba4#fxSssu|9r-de^-tF zY-Cri)cD2j{w+Xr!L0xP8D-~+9=ovDKn$o>wZt`|BqgyV)hf9t6-Y4{85kMr8XD;u xT7(!HTN#>K8JTMv7+4t?)ES+2L(!0%pOTqYiCY7Ielf^%44$rjF6*2UngG}dP$2*S literal 0 HcmV?d00001 diff --git a/graphics/pokemon/bounsweet/footprint.png b/graphics/pokemon/bounsweet/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad5a272edd7750eaf33483d0e892d034b2c7eae GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2UngH1ULrMSu literal 0 HcmV?d00001 diff --git a/graphics/pokemon/bruxish/footprint.png b/graphics/pokemon/bruxish/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..9f97b57e6e55f3f50f5615021cc3f87b9fcd75d8 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4V6Hn*h|kl-F@)oK@{j-X8%0z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2UngG%{Lp=Zh literal 0 HcmV?d00001 diff --git a/graphics/pokemon/buzzwole/footprint.png b/graphics/pokemon/buzzwole/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..1e3f7c6775fac43124309084aeb6da2aa855dcd0 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4zm0Xkxq!^40j0|-RjdTqyLJWKey=1-so22WQ%mvv4FO#oC!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M?G@tq&U~ zw>@s9nO2Eg!{lEa QmOu>*p00i_>zopr02AU^WdHyG literal 0 HcmV?d00001 diff --git a/graphics/pokemon/charjabug/footprint.png b/graphics/pokemon/charjabug/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea358a430d61992d4acacb471a7c8fa4d03a1c GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4 zRdP`(kYX@0Ff!CNG}1M+2r;y@GBLL@u+TOzure@cU9_wlMMG|WN@iLmZVg}l%b5c; OFnGH9xvX!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4 zRdP`(kYX@0Ff!CNG}1M+2r;y@GBLL@u+TOzure@cU9_wlMMG|WN@iLmZVg}l%b5c; OFnGH9xvX!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2UngA_xL*)Pf literal 0 HcmV?d00001 diff --git a/graphics/pokemon/crabominable/footprint.png b/graphics/pokemon/crabominable/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..d67ceceeeab5e5c26e0875aea0998d2e60373e1f GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4UO_QmvAUQh^kMk%5t+uAz~xp+$(H vv6Z2zm5GtIfq|8Q!K>7_X($?U^HVa@DsgL=Z4r74sDZ)L)z4*}Q$iB}CzwuI literal 0 HcmV?d00001 diff --git a/graphics/pokemon/crabrawler/footprint.png b/graphics/pokemon/crabrawler/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..665b3e97b7e47952d47c3c0ca5c97197a16a99b0 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)FaGBmX^ pG1E3Mure@^(>hs-q9HdwB{QuOw}$-k!jnJ^44$rjF6*2UngE}+N!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e44ES>qMMG|WN@iLmZVd-`U2=gM7(8A5T-G@yGywqo7fS;G literal 0 HcmV?d00001 diff --git a/graphics/pokemon/dartrix/footprint.png b/graphics/pokemon/dartrix/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7eb236dcd7aa05557c3069acddbc32a66f488d GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4bu*}Vx;Tb#Tu=V-e?DVJ-G26k z{l^_&u-l9LotXY3o!|BU>w_=s88S5_l%hAzR0OJ5Epd$~Nl7e8wMs5Z1yT$~21bUu zhDN%E79oblR)(flrY713237_JuJShyp=ij>PsvQH#I3=^DWMLifx*+&&t;ucLK6U; Cg-{3p literal 0 HcmV?d00001 diff --git a/graphics/pokemon/decidueye/footprint.png b/graphics/pokemon/decidueye/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..8061657a7499dd427cf13e91fb11671422b28884 GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!C8<`)MX5lF!N|bKP}k5% z*U%!w(Adh*)XLOC+rYrez@TaWrfn!1a`RI%(<*Um`22_q6f_K;u6{1-oD!M<+X7HF literal 0 HcmV?d00001 diff --git a/graphics/pokemon/dewpider/footprint.png b/graphics/pokemon/dewpider/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..87f972b028215a1fbcb71ee7458c06b214a8a4d4 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)FaGBmR? qFx56Nure@k*q!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4{nV4G{SZEs!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4 zRdP`(kYX@0Ff!CNG}1M+2r;y@GBLL@u+TOzure@cU9_wlMMG|WN@iLmZVg}l%b5c; OFnGH9xvX!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)FaGBmR? qu+%m%ure@cm*+`E(U6;;l9^VCTf;Y}EjNK07(8A5T-G@yGywn}fJ<%w literal 0 HcmV?d00001 diff --git a/graphics/pokemon/golisopod/footprint.png b/graphics/pokemon/golisopod/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..7da39e2aa10ba2c3f38ab4f7e69371cc723906b8 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`qf|E@M) zkgpc_rO5B-?%Dr(hBz(Bgz(?)FK#IZ0z{pV7&`8(N yBE-nC}Q!>*kacj7`;Zh1v1B0ilpUXO@geCy(w^2m^ literal 0 HcmV?d00001 diff --git a/graphics/pokemon/grubbin/footprint.png b/graphics/pokemon/grubbin/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..aeac35bc590620747b14310747b8fbd92d72ce43 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4zm0Xkxq!^40j0|-RjdTqyLJWJ pEVK;_tPBj2eHqrEXvob^$xN%ntwBg&2PhC2JYD@<);T3K0RSRqNI3ui literal 0 HcmV?d00001 diff --git a/graphics/pokemon/gumshoos/footprint.png b/graphics/pokemon/gumshoos/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..abc07274b5ab32506be91c46eb49d16bd54d1f50 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`qvuO#c9 z8`lJ-|2V+sWdFnQMZe8q`)an9S^pVawIw{xSe{x2)S+798c~vxSdwa$T$Bo=7>o>z z40R2SbPX*+42`V}&8&=#v<(cb3=FuZ$Jd}}$jwj5OsmALq3YE013(Q7p00i_>zopr E08q(Oj{pDw literal 0 HcmV?d00001 diff --git a/graphics/pokemon/guzzlord/footprint.png b/graphics/pokemon/guzzlord/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..9184adb9b9024331afd7e71e0b321b9b5c20940a GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4&edH00)|WTsW(*3j2__%cufgQu&X%Q~loCIJ6qOQrw- literal 0 HcmV?d00001 diff --git a/graphics/pokemon/hakamo_o/footprint.png b/graphics/pokemon/hakamo_o/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..137c8c5d7cb6d06be9dddb1c5b7f22093f21833b GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`q9uN+^@ zwmhs}+Q$Fp#S3=(!}66IHvMN1m@lgST52XUP_=4_YeY#(Vo9o1a#1RfVlXl=GSoFR z(lxXQF*LR^G_x`>)HX1%GB7aM!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4m*V*k$K@8WF}O|_+a4#`s0-3i;u=wsl30>zm0Xkxq!^40j0|-R zjdTqyLJW!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4STv3WCh{RcXMLAAs+q9i4;B-JXpC>2OC7#SED>KYp9 z8d`)H8e18fS(#X98yHv_7%Wxd)JD;eo1c=IR*74~mHLg-ff^V*UHx3vIVCg!0Ohk% A7ytkO literal 0 HcmV?d00001 diff --git a/graphics/pokemon/kartana/footprint.png b/graphics/pokemon/kartana/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..9910a09ec6b39523799697cc84e547415e5a4e60 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4{nV4G{SZEs!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e485nTHXOyC7$jwj5OsmALp_1vsNuUM>Pgg&ebxsLQ0107I A1ONa4 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/litten/footprint.png b/graphics/pokemon/litten/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..8c7c5b067192afdfe28f27859047e29f78bdfe4c GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4ZDB%<4eJswJ)wB`Jv|saDBFsX&Us$iT=@*U(7U x&?3ap*vin{%D_O|zyL`8byey>(U6;;l9^VCTSJe;EEAvx22WQ%mvv4FO#qL*PM-h( literal 0 HcmV?d00001 diff --git a/graphics/pokemon/lunala/footprint.png b/graphics/pokemon/lunala/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a4ff1d4d7e0eb73f54a544803f3a41ad4ea338 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4 zRdP`(kYX@0Ff!CNG}1M+2r;y@GBLL@u+TOzure@cU9_wlMMG|WN@iLmZVg}l%b5c; OFnGH9xvX!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4#v^!G=V|F)5S4_<9hOs|MMAn|E^B| zk<9Ppz}BY2aPX9Dq(?yZPM{jq64!{5l*E!$tK_0oAjM#0U}UIkXryas5n^a;WoT|? qV4`hcU}a#y$;CDsMMG|WN@iLmZVeUT`_zFN7(8A5T-G@yGywoQTu8J4 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/lycanroc/footprint.png b/graphics/pokemon/lycanroc/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..7e69bd83eb72e5c61c399633cab1f559f8f1f207 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4%>Eal|aXtCR|M`q9uO#=) zG_DCs|8d~lhX%>ES(0*cX+JLT3H>>E{=<2>6+#TWjG_{s-t5T$YE&(8jVMV;EJ?LW zE=mPb3`Pb!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2Ung9`mL$Lq= literal 0 HcmV?d00001 diff --git a/graphics/pokemon/marshadow/footprint.png b/graphics/pokemon/marshadow/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..6d82d60bbec441a6c8850c8fcfe6ea161dc98b50 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4HHwsq%P!H#eYe)e_f;l9a@f zRIB8oR3OD*WME{dYiOivXc1y)Y-MO}WoW8xU|?lnkbIqYBZ`LH{FKbJO57TRy0-EH PH86O(`njxgN@xNA{|{6b literal 0 HcmV?d00001 diff --git a/graphics/pokemon/melmetal/footprint.png b/graphics/pokemon/melmetal/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..982753a19c5e6ea921672394bc43e40d3d182c9d GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4>Oh z*~b5dhh4&PMI$4tBa6I2v&f(S{0y}-_+DRBZdeJ@P~sX9tqjer3@x<{46F!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4P#CgxTK7TN{|Rt5&GiMdmIdh-} N22WQ%mvv4FO#rZ!Lj3>$ literal 0 HcmV?d00001 diff --git a/graphics/pokemon/mimikyu/footprint.png b/graphics/pokemon/mimikyu/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..00eff81a99a2a9dab214c6cb62effbb5c4776c51 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4{nV4G{SZEs!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2Ung9)=L#zM* literal 0 HcmV?d00001 diff --git a/graphics/pokemon/morelull/footprint.png b/graphics/pokemon/morelull/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..a5658a3197a23c6c30f63b603f86fe9209d7dfa0 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4)PtS1$@~r*W<8>VN;QGYE}tDJy5M`iEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+ y2r)FaGBmd`GSW6Mure^v_-}FtMMG|WN@iLmZVi!(dJ=#d7(8A5T-G@yGywn)drsy6 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/mudbray/footprint.png b/graphics/pokemon/mudbray/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..c334a7facdc56cf9630fa852bc90a34573cc2bab GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e45dl!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4aV5 z1k)>&c%0ZJE?#6#Ym@)WQ~!)Pl!@WIlF**1ovPeG9jYa+5hW>!C8<`)MX5lF!N|bK zP}k5%*U%!w(Adh*+{(yO+rYrez(DIq0?^?|8glbfGSez?YlvQYV-`>YgQu&X%Q~lo FCIDkTPkR6W literal 0 HcmV?d00001 diff --git a/graphics/pokemon/naganadel/footprint.png b/graphics/pokemon/naganadel/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..78250a3d527aa14f4189b70651c55ecdc1e92241 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2UngGezLoNUS literal 0 HcmV?d00001 diff --git a/graphics/pokemon/necrozma/footprint.png b/graphics/pokemon/necrozma/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..baad92198e3c5b753f1a309bb6416281c8d0797c GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4{nV4G{SZEs!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2UngA)1L)`!X literal 0 HcmV?d00001 diff --git a/graphics/pokemon/oranguru/footprint.png b/graphics/pokemon/oranguru/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..294a56389b239f4339971b098d4b92be55bbb00c GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Y3G(fe) zHKHUXu_VTLb_A literal 0 HcmV?d00001 diff --git a/graphics/pokemon/oricorio/footprint.png b/graphics/pokemon/oricorio/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..bb9cc0114ebf473cd05598b60d8f0ad3118fea73 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Veu+OI#yLQW8s2t&)pU zffR$0fsvuEp^>hkMTnuXm7%$niHWv>ft7(luLDOSiiX_$l+3hB+#3GKZnz87z~JfX K=d#Wzp$Pyx!dE%~ literal 0 HcmV?d00001 diff --git a/graphics/pokemon/palossand/footprint.png b/graphics/pokemon/palossand/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..f0c03ad35cb1606d2941452c1c18cc2e895237cb GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4{nV4G{SZEs!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e42OC7#SED>KYp98d`)H8e18f rTbUYa8yHv_7zkfdk3i9oo1c=IR*73fQvduXKn)C@u6{1-oD!M!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4QF6ljVMV;EJ?LWE=mPb3`Pb< zhPsAEx`q}ZhQ?Ng=2oUA+6D$z1_q9=IR2w($jwj5OsmAL!C?CaXP^cKPgg&ebxsLQ E0169IVE_OC literal 0 HcmV?d00001 diff --git a/graphics/pokemon/poipole/footprint.png b/graphics/pokemon/poipole/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..249c47e0882392fe031e3e74f77d6d8b9685b74c GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)FaGBmd` pwa_*&ure@c^GfPQ(U6;;l9^VCTf=wpTjoFw44$rjF6*2UngHXfO4|Sc literal 0 HcmV?d00001 diff --git a/graphics/pokemon/popplio/footprint.png b/graphics/pokemon/popplio/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..3f266693266ef8fa93210d9290d7b0da6662cf39 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4{nV4G{SZEs!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2UngG6WLl*!5 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/pyukumuku/footprint.png b/graphics/pokemon/pyukumuku/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1ffd4ac6b4373790dbd5f4ce4951f852bf43e4 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4P#CgxTK7TN{|Rt5&GiMdmIdh-} N22WQ%mvv4FO#pt~LZbix literal 0 HcmV?d00001 diff --git a/graphics/pokemon/ribombee/footprint.png b/graphics/pokemon/ribombee/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..5f908e97456963ff8b49bb5321b9c60ed95695d8 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4(Mj$A literal 0 HcmV?d00001 diff --git a/graphics/pokemon/rockruff/footprint.png b/graphics/pokemon/rockruff/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..486ec06239326a38dc575275f0132cdb52ac8343 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4jbl(Pag8WRNi0dVN-jzTQVd20 zMuxhEM!JR;A%@0Qh89)^=Gq1ZRt5$qU%GdrXvob^$xN%ntzpNO|K>mq44$rjF6*2U FngC~ZQ?md7 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/rowlet/footprint.png b/graphics/pokemon/rowlet/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..a67af910f46ce4ea48053d12e91ed0eb40621849 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4{mb%t3lviIba4#fxSssu|9r-#y8Y}6 z`;R-mV7KS^J2Cx7I=|EZ*9SS4@Gx}UlDzeM+CgrRh7#9^l9a@fRIB8oR3OD*WME{d zYiOivXc1y)Y-MO+WoV#nU|?lnaNtShY!nT-`6-!cmAEx*+<8zPsDZ)L)z4*}Q$iB} DiS|^H literal 0 HcmV?d00001 diff --git a/graphics/pokemon/salandit/footprint.png b/graphics/pokemon/salandit/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..3490ad768511c73e8b2f35f52b23402f18a96958 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4f7EWCT+x4)8eH|B(E5!g&fKgSw4q{|!$+kjqp{Tq8!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4 zRdP`(kYX@0Ff!CNG}1M+2r;y@GBLL@u+TOzure@cU9_wlMMG|WN@iLmZVg}l%b5c; OFnGH9xvX!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e49tqd)!j7+r+46F!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e48MwZt`| zBqgyV)hf9t6-Y4{85kMr8XD;uT7(!HTNzqd85?RF7+4t?sB9|*c^RQ0H$NpatrE9} U(AQ_*0W~mqy85}Sb4q9e07Q~n$^ZZW literal 0 HcmV?d00001 diff --git a/graphics/pokemon/stakataka/footprint.png b/graphics/pokemon/stakataka/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..70757fc3f098bd416494a21354c8a39265c1ce3c GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2UngHT=Ls!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)FaGPJNV qHqkaPure?x>x=q|q9HdwB{QuOw+8mhk34}I7(8A5T-G@yGywpqkxH@v literal 0 HcmV?d00001 diff --git a/graphics/pokemon/stufful/footprint.png b/graphics/pokemon/stufful/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..1e41dad790b974103afd88ea2e5b2a54f6ec1f3f GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4cq}xep%~3UH<{yEZ&BFlER!kPPQbyIKU&P~sX9tqd)!j4iYc46F!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4z zm0Xkxq!^40j0|-RjdTqyLJTdfOw6qeEVK;_tPBiV7cJ{X(U6;;l9^VCTf>+Ca^^q{ N44$rjF6*2UngG{*Lq-4q literal 0 HcmV?d00001 diff --git a/graphics/pokemon/tapu_fini/footprint.png b/graphics/pokemon/tapu_fini/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..5c9f78a241336ca38948fbee0dc84d222d4637bd GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4|>BlK2I0N5RU7~KmN~e6k%cb>nH!PxO>?epp0sXYeY#(Vo9o1 za#1RfVlXl=GSoFR(lxXQF|@QYF}E_X&^9ozGB9Xew5%INLvDUbW?Cg~4PXAtnFBR2 Nc)I$ztaD0e0sxu5M6Lh; literal 0 HcmV?d00001 diff --git a/graphics/pokemon/tapu_koko/footprint.png b/graphics/pokemon/tapu_koko/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..a3357255cf9b5f1b72fa7177335612f7993666d9 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4h5TB=uV+hCf{nV4G{SZEs!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4 zRdP`(kYX@0Ff!CNG}1M+2r;y@GBLL@u+TOzure@cU9_wlMMG|WN@iLmZVg}l%b5c; OFnGH9xvX!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/torracat/footprint.png b/graphics/pokemon/torracat/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..0849f9a91ee09c32244ac6f2987e2562e1c492e3 GIT binary patch literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`qvuO#b^ z8rOVE|8bz-!TyQki+)?5v-J#i=Hf+P7TN$!Vo)t{jVMV;EJ?LWE=mPb3`Pb9nO2Eg!>rCzopr093_O Aa{vGU literal 0 HcmV?d00001 diff --git a/graphics/pokemon/toucannon/footprint.png b/graphics/pokemon/toucannon/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..d85988dbc1ebc71c299569ee09825c4483c5f255 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4rg_Ws+wt<0_fq~1q@!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4?)FK#IZ0z{pV7&`8(N yBE-!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4T=m`pbpg%*NBpo#FA921GbWnfV5Xvv16AvZrIGp!Q01~!?-T_8t!y85}Sb4q9e E0DpQ=r~m)} literal 0 HcmV?d00001 diff --git a/graphics/pokemon/tsareena/footprint.png b/graphics/pokemon/tsareena/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..4a261826275047595be586aa301a5e303bb3c55d GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)FaGPJZZ pFw!!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e45@$GB9X}Q3v@7p&>UvB{QuOw}y|5^Y;QZFnGH9xvX!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4t&i0#0t#t(x;Tb#Tu=V-fBwVo)otg` zJHB{asPXH-xev|qUH?uP|JlsG@c&l_7KY5-;z<#wgTe~ HDWM4fyxdkX literal 0 HcmV?d00001 diff --git a/graphics/pokemon/vikavolt/footprint.png b/graphics/pokemon/vikavolt/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..bc9bf4168499974cde96a68f7657583b82137d5f GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4|xWS0Q>yEh3LkmdKI;Vst03tO^3IG5A literal 0 HcmV?d00001 diff --git a/graphics/pokemon/wimpod/footprint.png b/graphics/pokemon/wimpod/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..9e61a65303906cad006ab3cd12aab977206b56dc GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4zm0Xkxq!^40j0|-RjdTqyLJWDfYeAl3@O1TaS?83{1ORsFOD_Nb literal 0 HcmV?d00001 diff --git a/graphics/pokemon/wishiwashi/footprint.png b/graphics/pokemon/wishiwashi/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..2d3e0d13406da7ad893b19512f35c510c6e1e83d GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4{nV4G{SZEscSE=U literal 0 HcmV?d00001 diff --git a/graphics/pokemon/xurkitree/footprint.png b/graphics/pokemon/xurkitree/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..09228b878d65d8a0172786053bf7eb10a342d518 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4zm0Xkx zq!^40j0|-RjdTqyLJW!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4)dzMHm!4T^vI=t|$NaKcBJjmE^t` z#x)PpD-Q6v%HMFjBmb?yl)=MDymYB Date: Sat, 18 Dec 2021 18:24:49 -0300 Subject: [PATCH 72/95] Added Gen. 8 footprint sprites --- graphics/pokemon/alcremie/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/appletun/footprint.png | Bin 0 -> 302 bytes graphics/pokemon/applin/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/arctovish/footprint.png | Bin 0 -> 299 bytes graphics/pokemon/arctozolt/footprint.png | Bin 0 -> 299 bytes graphics/pokemon/arrokuda/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/barraskewda/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/blipbug/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/boltund/footprint.png | Bin 0 -> 315 bytes graphics/pokemon/calyrex/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/carkol/footprint.png | Bin 0 -> 299 bytes graphics/pokemon/centiskorch/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/chewtle/footprint.png | Bin 0 -> 297 bytes graphics/pokemon/cinderace/footprint.png | Bin 0 -> 309 bytes graphics/pokemon/clobbopus/footprint.png | Bin 0 -> 298 bytes graphics/pokemon/coalossal/footprint.png | Bin 0 -> 310 bytes graphics/pokemon/copperajah/footprint.png | Bin 0 -> 308 bytes graphics/pokemon/corviknight/footprint.png | Bin 0 -> 312 bytes graphics/pokemon/corvisquire/footprint.png | Bin 0 -> 305 bytes graphics/pokemon/cramorant/footprint.png | Bin 0 -> 307 bytes graphics/pokemon/cufant/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/cursola/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/dottler/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/dracovish/footprint.png | Bin 0 -> 304 bytes graphics/pokemon/dracozolt/footprint.png | Bin 0 -> 304 bytes graphics/pokemon/dragapult/footprint.png | Bin 0 -> 316 bytes graphics/pokemon/drakloak/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/drednaw/footprint.png | Bin 0 -> 308 bytes graphics/pokemon/dreepy/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/drizzile/footprint.png | Bin 0 -> 303 bytes graphics/pokemon/dubwool/footprint.png | Bin 0 -> 300 bytes graphics/pokemon/duraludon/footprint.png | Bin 0 -> 322 bytes graphics/pokemon/eiscue/footprint.png | Bin 0 -> 309 bytes graphics/pokemon/eldegoss/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/eternatus/footprint.png | Bin 0 -> 328 bytes graphics/pokemon/falinks/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/flapple/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/frosmoth/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/glastrier/footprint.png | Bin 0 -> 305 bytes graphics/pokemon/gossifleur/footprint.png | Bin 0 -> 295 bytes graphics/pokemon/grapploct/footprint.png | Bin 0 -> 313 bytes graphics/pokemon/greedent/footprint.png | Bin 0 -> 304 bytes graphics/pokemon/grimmsnarl/footprint.png | Bin 0 -> 304 bytes graphics/pokemon/grookey/footprint.png | Bin 0 -> 304 bytes graphics/pokemon/hatenna/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/hatterene/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/hattrem/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/impidimp/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/indeedee/footprint.png | Bin 0 -> 302 bytes graphics/pokemon/inteleon/footprint.png | Bin 0 -> 311 bytes graphics/pokemon/kubfu/footprint.png | Bin 0 -> 308 bytes graphics/pokemon/milcery/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/morgrem/footprint.png | Bin 0 -> 307 bytes graphics/pokemon/morpeko/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/mr_rime/footprint.png | Bin 0 -> 309 bytes graphics/pokemon/nickit/footprint.png | Bin 0 -> 301 bytes graphics/pokemon/obstagoon/footprint.png | Bin 0 -> 304 bytes graphics/pokemon/orbeetle/footprint.png | Bin 0 -> 296 bytes graphics/pokemon/perrserker/footprint.png | Bin 0 -> 314 bytes graphics/pokemon/pincurchin/footprint.png | Bin 0 -> 288 bytes graphics/pokemon/polteageist/footprint.png | Bin 0 -> 293 bytes graphics/pokemon/raboot/footprint.png | Bin 0 -> 308 bytes graphics/pokemon/regidrago/footprint.png | Bin 0 -> 299 bytes graphics/pokemon/regieleki/footprint.png | Bin 0 -> 288 bytes graphics/pokemon/rillaboom/footprint.png | Bin 0 -> 322 bytes graphics/pokemon/rolycoly/footprint.png | Bin 0 -> 294 bytes graphics/pokemon/rookidee/footprint.png | Bin 0 -> 306 bytes graphics/pokemon/runerigus/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/sandaconda/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/scorbunny/footprint.png | Bin 0 -> 306 bytes graphics/pokemon/silicobra/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/sinistea/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/sirfetchd/footprint.png | Bin 0 -> 311 bytes graphics/pokemon/sizzlipede/footprint.png | Bin 0 -> 288 bytes graphics/pokemon/skwovet/footprint.png | Bin 0 -> 295 bytes graphics/pokemon/snom/footprint.png | Bin 0 -> 283 bytes graphics/pokemon/sobble/footprint.png | Bin 0 -> 297 bytes graphics/pokemon/spectrier/footprint.png | Bin 0 -> 306 bytes graphics/pokemon/stonjourner/footprint.png | Bin 0 -> 295 bytes graphics/pokemon/thievul/footprint.png | Bin 0 -> 306 bytes graphics/pokemon/thwackey/footprint.png | Bin 0 -> 306 bytes graphics/pokemon/toxel/footprint.png | Bin 0 -> 307 bytes graphics/pokemon/toxtricity/footprint.png | Bin 0 -> 313 bytes graphics/pokemon/urshifu/footprint.png | Bin 0 -> 313 bytes graphics/pokemon/wooloo/footprint.png | Bin 0 -> 299 bytes graphics/pokemon/yamper/footprint.png | Bin 0 -> 308 bytes graphics/pokemon/zacian/footprint.png | Bin 0 -> 314 bytes graphics/pokemon/zamazenta/footprint.png | Bin 0 -> 311 bytes graphics/pokemon/zarude/footprint.png | Bin 0 -> 328 bytes 89 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 graphics/pokemon/alcremie/footprint.png create mode 100644 graphics/pokemon/appletun/footprint.png create mode 100644 graphics/pokemon/applin/footprint.png create mode 100644 graphics/pokemon/arctovish/footprint.png create mode 100644 graphics/pokemon/arctozolt/footprint.png create mode 100644 graphics/pokemon/arrokuda/footprint.png create mode 100644 graphics/pokemon/barraskewda/footprint.png create mode 100644 graphics/pokemon/blipbug/footprint.png create mode 100644 graphics/pokemon/boltund/footprint.png create mode 100644 graphics/pokemon/calyrex/footprint.png create mode 100644 graphics/pokemon/carkol/footprint.png create mode 100644 graphics/pokemon/centiskorch/footprint.png create mode 100644 graphics/pokemon/chewtle/footprint.png create mode 100644 graphics/pokemon/cinderace/footprint.png create mode 100644 graphics/pokemon/clobbopus/footprint.png create mode 100644 graphics/pokemon/coalossal/footprint.png create mode 100644 graphics/pokemon/copperajah/footprint.png create mode 100644 graphics/pokemon/corviknight/footprint.png create mode 100644 graphics/pokemon/corvisquire/footprint.png create mode 100644 graphics/pokemon/cramorant/footprint.png create mode 100644 graphics/pokemon/cufant/footprint.png create mode 100644 graphics/pokemon/cursola/footprint.png create mode 100644 graphics/pokemon/dottler/footprint.png create mode 100644 graphics/pokemon/dracovish/footprint.png create mode 100644 graphics/pokemon/dracozolt/footprint.png create mode 100644 graphics/pokemon/dragapult/footprint.png create mode 100644 graphics/pokemon/drakloak/footprint.png create mode 100644 graphics/pokemon/drednaw/footprint.png create mode 100644 graphics/pokemon/dreepy/footprint.png create mode 100644 graphics/pokemon/drizzile/footprint.png create mode 100644 graphics/pokemon/dubwool/footprint.png create mode 100644 graphics/pokemon/duraludon/footprint.png create mode 100644 graphics/pokemon/eiscue/footprint.png create mode 100644 graphics/pokemon/eldegoss/footprint.png create mode 100644 graphics/pokemon/eternatus/footprint.png create mode 100644 graphics/pokemon/falinks/footprint.png create mode 100644 graphics/pokemon/flapple/footprint.png create mode 100644 graphics/pokemon/frosmoth/footprint.png create mode 100644 graphics/pokemon/glastrier/footprint.png create mode 100644 graphics/pokemon/gossifleur/footprint.png create mode 100644 graphics/pokemon/grapploct/footprint.png create mode 100644 graphics/pokemon/greedent/footprint.png create mode 100644 graphics/pokemon/grimmsnarl/footprint.png create mode 100644 graphics/pokemon/grookey/footprint.png create mode 100644 graphics/pokemon/hatenna/footprint.png create mode 100644 graphics/pokemon/hatterene/footprint.png create mode 100644 graphics/pokemon/hattrem/footprint.png create mode 100644 graphics/pokemon/impidimp/footprint.png create mode 100644 graphics/pokemon/indeedee/footprint.png create mode 100644 graphics/pokemon/inteleon/footprint.png create mode 100644 graphics/pokemon/kubfu/footprint.png create mode 100644 graphics/pokemon/milcery/footprint.png create mode 100644 graphics/pokemon/morgrem/footprint.png create mode 100644 graphics/pokemon/morpeko/footprint.png create mode 100644 graphics/pokemon/mr_rime/footprint.png create mode 100644 graphics/pokemon/nickit/footprint.png create mode 100644 graphics/pokemon/obstagoon/footprint.png create mode 100644 graphics/pokemon/orbeetle/footprint.png create mode 100644 graphics/pokemon/perrserker/footprint.png create mode 100644 graphics/pokemon/pincurchin/footprint.png create mode 100644 graphics/pokemon/polteageist/footprint.png create mode 100644 graphics/pokemon/raboot/footprint.png create mode 100644 graphics/pokemon/regidrago/footprint.png create mode 100644 graphics/pokemon/regieleki/footprint.png create mode 100644 graphics/pokemon/rillaboom/footprint.png create mode 100644 graphics/pokemon/rolycoly/footprint.png create mode 100644 graphics/pokemon/rookidee/footprint.png create mode 100644 graphics/pokemon/runerigus/footprint.png create mode 100644 graphics/pokemon/sandaconda/footprint.png create mode 100644 graphics/pokemon/scorbunny/footprint.png create mode 100644 graphics/pokemon/silicobra/footprint.png create mode 100644 graphics/pokemon/sinistea/footprint.png create mode 100644 graphics/pokemon/sirfetchd/footprint.png create mode 100644 graphics/pokemon/sizzlipede/footprint.png create mode 100644 graphics/pokemon/skwovet/footprint.png create mode 100644 graphics/pokemon/snom/footprint.png create mode 100644 graphics/pokemon/sobble/footprint.png create mode 100644 graphics/pokemon/spectrier/footprint.png create mode 100644 graphics/pokemon/stonjourner/footprint.png create mode 100644 graphics/pokemon/thievul/footprint.png create mode 100644 graphics/pokemon/thwackey/footprint.png create mode 100644 graphics/pokemon/toxel/footprint.png create mode 100644 graphics/pokemon/toxtricity/footprint.png create mode 100644 graphics/pokemon/urshifu/footprint.png create mode 100644 graphics/pokemon/wooloo/footprint.png create mode 100644 graphics/pokemon/yamper/footprint.png create mode 100644 graphics/pokemon/zacian/footprint.png create mode 100644 graphics/pokemon/zamazenta/footprint.png create mode 100644 graphics/pokemon/zarude/footprint.png diff --git a/graphics/pokemon/alcremie/footprint.png b/graphics/pokemon/alcremie/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..aeea2e966e0fc7bef279826c43db57ba95a00009 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z pZlh?(%}>cpt3=jdXl!L*W@Tyu(IEGmWiL!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4ZDB%<4eJswJ)wB`Jv|saDBFsX&Us$iT=@*U(7U z&?3ahz{@`6Pptp| literal 0 HcmV?d00001 diff --git a/graphics/pokemon/applin/footprint.png b/graphics/pokemon/applin/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..915b2fc2ae719819e91f66efe8c297c75bacbbf5 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z oZlh?(%}>cpt3=jdXl!L*Vr2r=u(jl&3Qz-sr>mdKI;Vst0Hi-hjsO4v literal 0 HcmV?d00001 diff --git a/graphics/pokemon/arctovish/footprint.png b/graphics/pokemon/arctovish/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba63e72316e0912a6e22b55be5c0d1a3e7dc445 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`p^|85xn znb5w7|BnWT9$(1k|Mm>uCJBG@iLGw~s#Gm;jVMV;EJ?LWE=mPb3`Pb!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`p^|85xn znb5w7|BnWT9$(1k|Mm>uCJBG@iLGw~s#Gm;jVMV;EJ?LWE=mPb3`Pb!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z pZlh?(%}>cpt3=jdXl!L*YGq&s(V(??!DpZb22WQ%mvv4FO#r4#N6`QP literal 0 HcmV?d00001 diff --git a/graphics/pokemon/barraskewda/footprint.png b/graphics/pokemon/barraskewda/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..795e7e445c6ca99f8a33a91b19737ea554afbff2 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z pZlh?(%}>cpt3=jdXl!L*YGr5$(V)C<-eaH!22WQ%mvv4FO#r1iN5237 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/blipbug/footprint.png b/graphics/pokemon/blipbug/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..762f0b03a08388ab68509bcd3a509a6e7f89d7a0 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)9SGO@HW wG}1OOure^zopr0J;20t^fc4 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/boltund/footprint.png b/graphics/pokemon/boltund/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..91e1defe9a9df98b25d03254beeb87ed411daf09 GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r4|E?O> zd`kau;QWV%xepVq4?lj)GylAC&71TeiswHZms`ZfQ21KX{`yv(R-jJR64!{5l*E!$ ztK_0oAjM#0U}UIkXryas5n^OuWnyV%XrygmU}a#y;ri@0iiX_$l+3hBWDSPKRt6?k YMg|ZKPg;I<0W~mqy85}Sb4q9e01aVW2><{9 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/calyrex/footprint.png b/graphics/pokemon/calyrex/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..9b96a7a1eb07e1fef6a4125cde4ea6dc1f9ef110 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)9SGO@HW zG}1OOure^!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`rPe^;je zNId_+ao$5ldk#j)6!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)9SGO@HW zG}1OOure^!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`qf|E?PU z*~q?7{?iK%4US+o2B&cGwbFAXBY^5uOI#yLQW8s2t&)pUffR$0fsvuEp^>hkMTn7s zm5HU5p^>(Mft7&)hwHQ3C>nC}Q!>*kku?|^TN#*G8JIyd94$P37N~*2)78&qol`;+ E07Iut_5c6? literal 0 HcmV?d00001 diff --git a/graphics/pokemon/cinderace/footprint.png b/graphics/pokemon/cinderace/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..18c62da8bd8551fac780e3c93c84a44fba032513 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M?I5Z4dKT zw(!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e42OC7#SED>KYp98d`)H z8CaQES{WK?8yHv_7;v~gyN#kDH$NpatrA&-p|O>Lsg!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4zm0Xkxq!^40 zj0|-RjdTqyLW~ToOf0PojkFC6tPBh|T%X-W(U6;;l9^VCtijOO%D}?Pz!IWClQnu3 PPy>UftDnm{r-UW|cd=4_ literal 0 HcmV?d00001 diff --git a/graphics/pokemon/corviknight/footprint.png b/graphics/pokemon/corviknight/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..3042a0e458b76ba6f32591feb0666c9e020d1433 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e47U~Gg4tT+?}PLo%I80vm+NXc_3uAB!&@1Vn11KFdZ0Gd64!{5l*E!$tK_0o zAjM#0U}UIkXryas5n^OuWnyV%XrygmU}a#y;ri@0iiX_$l+3hBWDSPKRtAPv1{M$v U#p%^ofEpM)UHx3vIVCg!0BzM*l>h($ literal 0 HcmV?d00001 diff --git a/graphics/pokemon/corvisquire/footprint.png b/graphics/pokemon/corvisquire/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..328be429b3b15a60a282455bfbb6f00da37cdf5a GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e46pYeY#(Vo9o1a#1RfVlXl=GSoFR(lxXQF*2|+ zv9vNY(l#)#GBDt9eRdl~LvDUbW?Ch(218>j0}CqyQ;3FlOAYS!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4bP0l+XkK Dr!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4>!01}axAag8WRNi0dVN-jzTQVd20MuxhE zM!JR;Aw~vPCYDx)M%o4jRt5$fuFr0xXvob^$xN$6)?jFCWnf`t1l5qK&Y=s`z~JfX K=d#Wzp$P!V=uj>I literal 0 HcmV?d00001 diff --git a/graphics/pokemon/dracozolt/footprint.png b/graphics/pokemon/dracozolt/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..61e4db30136f8474f9ccb880f75f8a187bc980e6 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4>!01}axAag8WRNi0dVN-jzTQVd20MuxhE zM!JR;Aw~vPCYDx)M%o4jRt5$fuFr0xXvob^$xN$6)?jFCWnf`tXbjQdc%P*TsDZ)L L)z4*}Q$iB})!!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e47ix49ND-%mALnCbi11kdq4%cV5Q8eV{r(~v8B5N=-wlc7= YGO>VY;I@c+0@T3Z>FVdQ&MBb@08|oJb^rhX literal 0 HcmV?d00001 diff --git a/graphics/pokemon/drakloak/footprint.png b/graphics/pokemon/drakloak/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..a73855356a392e0a4a869c289314fa9bafa18b53 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4UftDnm{r-UW|f$vDv literal 0 HcmV?d00001 diff --git a/graphics/pokemon/drednaw/footprint.png b/graphics/pokemon/drednaw/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..f6da8b76b278eee70a504f40c019358729a3b90f GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4?)FK#IZ0 zz{pV7&`8(NBE-nR%EZ#j&`8_Bz{FVdQ&MBb@09GPZ-T(jq literal 0 HcmV?d00001 diff --git a/graphics/pokemon/dreepy/footprint.png b/graphics/pokemon/dreepy/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..ff7379baa94b6f2063466c12ed21c23e9b4ab062 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4h$Mq$fcSU0#}6BTs#Qx|BT7;dOH!?pi&B9UgOP!ep{}8k zuAxPUk%5(orIn$Pwt<0_fdPl>v)d>da`RI%(<+fQ7#aiBSs7bGG;E2L*$dRb;OXk; Jvd$@?2>@?=PTT+h literal 0 HcmV?d00001 diff --git a/graphics/pokemon/dubwool/footprint.png b/graphics/pokemon/dubwool/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..c302e113bccc882c36dc7a0b2b2fa96503ac9f39 GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e40w;*PQ$V`cOr~d!`092}4;u=wsl30>zm0Xkxq!^40j0|-RjdTqy zLW~ToOf0PojkFC6tPBh|T%X-W(U6;;l9^VCtijOO%D}|Rz!0K=;o4Vcpaup{S3j3^ HP6!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Ni1Q0`HW+|K%ChZW7QtpUc+`G(fe) zHKHUXu_V!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4W6wov^L5C06u7tGcoe;=?fwEyHVm4RWN@a0K;8udUuswJ)wB`Jv|saDBFsX&Us z$iT=@*U(7U&?3ahz{!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4^| zoQptXR7+eVN>UO_QmvAUQh^kMk%5t+uAz~xp+$(1ft87+m7$Tgfq|8Q0f+0e+b9}x l^HVa@Dv>o98e17yS{ax?G%Obg3;}9j@O1TaS?83{1OS&oTb2L- literal 0 HcmV?d00001 diff --git a/graphics/pokemon/falinks/footprint.png b/graphics/pokemon/falinks/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..b8befed87c19251414336fad82fc96ba12ef4be6 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4UftDnm{r-UW|9LGrY literal 0 HcmV?d00001 diff --git a/graphics/pokemon/flapple/footprint.png b/graphics/pokemon/flapple/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..c17ef139ae5ab49a7585fb35630628de03d64352 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4@(AMuz|Z literal 0 HcmV?d00001 diff --git a/graphics/pokemon/frosmoth/footprint.png b/graphics/pokemon/frosmoth/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..4b1ebb9b77d153c591d18a56b41e417f31830122 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Ohbrz_B!PC{xWt~$(699C%M;rhE literal 0 HcmV?d00001 diff --git a/graphics/pokemon/glastrier/footprint.png b/graphics/pokemon/glastrier/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..cf32331ce68dafbbce7075e0951f0034a050ce7d GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4hkMTn7sm5HU5p^>(Mft7&)hwHQ3C>nC}Q!>*kku?|^TN#;I8CpOzu-4xE1k}Lb M>FVdQ&MBb@06^4G3;+NC literal 0 HcmV?d00001 diff --git a/graphics/pokemon/gossifleur/footprint.png b/graphics/pokemon/gossifleur/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..0efe7646a4dd5649a0f2cb92589951a603fa9927 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4zopr07r>b;Q#;t literal 0 HcmV?d00001 diff --git a/graphics/pokemon/greedent/footprint.png b/graphics/pokemon/greedent/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..d2e45203a0676180a3a0315393e5bef94e482ce5 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4zm0Xkxq!^40j0|-R zjdTqyLW~ToOf0PojkFC6tPBh|T%X-W(U6;;l9^VCtijM2sLsmN1foIsX$i=G44$rj JF6*2UngBbcQhopc literal 0 HcmV?d00001 diff --git a/graphics/pokemon/grimmsnarl/footprint.png b/graphics/pokemon/grimmsnarl/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..a3776b2382abff93d45b1a13817a967fb164f89a GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4>!01}axAag8WRNi0dVN-jzTQVd20MuxhE zM!JR;Aw~vPCYDx)M%o4jRt5$fuFr0xXvob^$xN$6)?jFCWngAyXb#b^I#S>kPy>Uf LtDnm{r-UW|+E!6n literal 0 HcmV?d00001 diff --git a/graphics/pokemon/grookey/footprint.png b/graphics/pokemon/grookey/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..836738bc0e490e8bea40d4953ba6210853fa407e GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4zm0Xkxq!^40j0|-R zjdTqyLW~ToOf0PojkFC6tPBh|T%X-W(U6;;l9^VCtijO8%GAut)EuIr`BL_Cpaup{ LS3j3^P6!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e49+L literal 0 HcmV?d00001 diff --git a/graphics/pokemon/impidimp/footprint.png b/graphics/pokemon/impidimp/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..8ff5f9113d8e0a9abc1a124af990d1b3eb063a88 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`rPe>bQ9 zP(J^Gxv$|)RSGLZU9gnh<3;wLfXY-$Tq8?Mn ziKUgHk+y+>m4N|=>$BS^8glbfGSe!NH5eLO8JJlaSVAbP0l+XkK D-NQ|n literal 0 HcmV?d00001 diff --git a/graphics/pokemon/indeedee/footprint.png b/graphics/pokemon/indeedee/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..d406d05d9215c4504ddffa01b6baf068efbccaba GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`rPe^;mf zcyj(jgKU@Ghvp0Xl@lx?7#Y$<#D92)?+ybhRxNRjC`m~yNwrEYN(E93Mg~TPx`sx& zh87`42397PR)$8}1_o9J1{|)>Zlh?(%}>cpt3=jdXl!L*Ze?l)(U7*RZWT}igQu&X J%Q~loCICt3P~`vs literal 0 HcmV?d00001 diff --git a/graphics/pokemon/inteleon/footprint.png b/graphics/pokemon/inteleon/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..7ea7d445f806cdd9eabd3132910433586acaa66e GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M?H|?GDG+ zw#|Q~@TFO{=ayuhO!|*%xwd!B7woIs{{Lsx`Ye&f`u2!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`qf|E?PU znUMbD!1)gw=Rf>dD8OXY5VJrbfNL2KLu#mG{zC!Qxj-$dC9V-ADTyViR>?)FK#IZ0 zz{pV7&`8(NBE-nR%EZ#j&`8_Bz{RR910 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/milcery/footprint.png b/graphics/pokemon/milcery/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3ee498d692c4d035d7599ada1f80ffc22b6f63 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z pZlh?(%}>cpt3=jdXl!L*W@Tys(eP@E!aAS^22WQ%mvv4FO#rkPN96zj literal 0 HcmV?d00001 diff --git a/graphics/pokemon/morgrem/footprint.png b/graphics/pokemon/morgrem/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..241717eade90943d840728630fb4fd72acb26e3d GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`q9uO#=) zG_DCs|8aoN)&9rA7yUMe?W@^VZ2Hf@{auWgFRW@GP={)XYeY#(Vo9o1a#1RfVlXl= zGSoFR(lxXQF*2|+v9vNY(l#)#GBDt9eRdl~LvDUbW?Ch(218>j12Zc_V~B=$F_V)( O4Gf;HelF{r5}E)f{!&N) literal 0 HcmV?d00001 diff --git a/graphics/pokemon/morpeko/footprint.png b/graphics/pokemon/morpeko/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..398d437f0cd98b4cab2c171437afb84dcb3c03e8 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`rPe>bQ9 zP(J^Gxv$|)RSGLZU9gnh<3;wLfXY-$Tq8?Mn ziKUgHk+y+>m4N|=>$BS^8glbfGSe!NH5eLO8CX~u7(z5iy%IeO)WG2B>gTe~DWM4f D;h|0N literal 0 HcmV?d00001 diff --git a/graphics/pokemon/mr_rime/footprint.png b/graphics/pokemon/mr_rime/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..5b8cc5c93943bd8dc7f525605f822208f6400e46 GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M?I5Z4dKT z3j8|2?<$}t@V6`d$8PzShOB>AjsN`TXLxp7)X*|_>3N_Y)e_f;l9a@fRIB8oR3OD* zWME{dYiOivXc1y$U}a)yWoV>rU|?lnz~TDrHj0Ma{FKbJN@NX&##RPqRwjlJ4Go#v RKz}kYc)I$ztaD0e0sx#vRJs5F literal 0 HcmV?d00001 diff --git a/graphics/pokemon/nickit/footprint.png b/graphics/pokemon/nickit/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..480c8f2674390132466a065c378c254ad91cfea1 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`r4|E?O> zd`kaufZx^riQ|iYTjohp3<+l>MNgk;<_D@(Epd$~Nl7e8wMs5Z1yT$~21bUuhDN%E z79mCkRwkBKhDO>3237_J9Inr9qiD#@PsvQHMAl$vY-M0mdK II;Vst0M!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M?H=Z4c|$ zw(-AF_|hQRsGub9rCGk^-w9@h17U)y>dTeffXY=%Tq8?MniKUgHk+y+>m4N|=>$BS^8glbfGSe!NH5eLO8JJlaK{b@WvzQ0ez~JfX K=d#Wzp$PyrPEZB_ literal 0 HcmV?d00001 diff --git a/graphics/pokemon/orbeetle/footprint.png b/graphics/pokemon/orbeetle/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..57dc260a97d6b6109fdfbec8ac31d623667dba85 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`rpSB?KL zD^<7IC$OX})?#2-+A1S)yZnj>P?>6pYeY#(Vo9o1a#1RfVlXl=GSoFR(lxXQF*2|+ zv9vNY(l#)#GBDt9eRdl~LvDUbW?Ch(218>j17j;AGl+)Nj_W6Z8W=oX{an^LB{Ts5 DWV%ax literal 0 HcmV?d00001 diff --git a/graphics/pokemon/perrserker/footprint.png b/graphics/pokemon/perrserker/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..c2bce6fde56e60a81ef00b1783ac91bd3be0c1c8 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`p^c0Zdh zu-CQe|5EtWZo~0+&iN1J_J`%G+v>ma2&Df1&&;59RQ!rxNU$qVqiTt3L`h0wNvc(H zQ7VvPFfuSQ)HO8HHM9sZGO#kSv@$f(HZZU!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4~~>Eal|aXtCR|M`r!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4~<>Eal|aXtCR|M`r(e^;mf zNalBPU~AK1ICx4n(jy>yCs2)QiEBhjN@7W>RdP`(kYX@0Ff!CNG}1M+2r)9SGO@HW zG}1OOure^!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`p^|85xn znUMbDK)-{-yYoMJ_P=kIaJX6jl_y~;gV1lW`5S_YP64&3mbgZgq$HN4S|t~y0x1R~ z10zFSLnB>7ix49ND-%mALnCbi11kdq4%cV5Q8eV{r(~v8B5N=-2CB0%GJ|O7+n)on Ofx*+&&t;ucLK6Td+g8H> literal 0 HcmV?d00001 diff --git a/graphics/pokemon/regidrago/footprint.png b/graphics/pokemon/regidrago/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..616bef0ded08447f8092b24d2d54475ad0f0e408 GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4~_>Eal|aXtCR|M`qfc0Y}4 z9!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4~~>Eal|aXtCR|M`r!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR$N3Kr*SEEQ z<7s~*$@jz9!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4~{>Eal|aXtCR|M`r4|E@M) zkgsNG>QGq8$k65{by3qGUmU1NwZt`|BqgyV)hf9t6-Y4{85kMr8XD;uT7(!GSeaN_ z85(ID7+4t?aJW9ZjiMnpKP5A*5?O|m60h#!?r!wbb%TeJYD@<);T3K0RS~~ BOM(CZ literal 0 HcmV?d00001 diff --git a/graphics/pokemon/rookidee/footprint.png b/graphics/pokemon/rookidee/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..82cf54523d40ae68fbeb5d1599409dde10d61ed2 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`qfb^F;D z_8)hA!EVp-cVhaFbbhD*uMcu8;bG{yC3)-jw1eCr4JED-B`Jv|saDBFsX&Us$iT=@ z*U(7U&?3ahz{!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z pZlh?(%}>cpt3=jdXl!L*W@Tau(NLnsKOLxn!PC{xWt~$(69A&8M!f(4 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/sandaconda/footprint.png b/graphics/pokemon/sandaconda/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..9de28722635536595453631b196700d457129c1d GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z pZlh?(%}>cpt3=jdXl!L*Vr6Op(QtR&zAr!x44$rjF6*2UngG9}NW1_5 literal 0 HcmV?d00001 diff --git a/graphics/pokemon/scorbunny/footprint.png b/graphics/pokemon/scorbunny/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..03b76efa17f4dca948acc85d27d4deec704f038c GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`p^|E?PU z*_i%AvEQNod$T}*Ku5zSfz<#1nHg;6OO$O)Y<~pOP~sXsDZ)L L)z4*}Q$iB}I(|}B literal 0 HcmV?d00001 diff --git a/graphics/pokemon/silicobra/footprint.png b/graphics/pokemon/silicobra/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..f16726255964989b33e4e39b46bb6ad35f25acc7 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z pZlh?(%}>cpt3=jdXl!L*Vr6Oq(ICZlr2(jc!PC{xWt~$(69A! literal 0 HcmV?d00001 diff --git a/graphics/pokemon/sinistea/footprint.png b/graphics/pokemon/sinistea/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..dcea8100bd0878d168565d1af11d7189cb8d9d8b GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z pZlh?(%}>cpt3=jdXl!L*YGq;u(Xj64I!>Sl22WQ%mvv4FO#rkVN811Z literal 0 HcmV?d00001 diff --git a/graphics/pokemon/sirfetchd/footprint.png b/graphics/pokemon/sirfetchd/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..78a8ecb4f781d53e43cac42f53f9b18927954d3d GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`p^{~9mO zNoo^IZ)1L=@TEb%#qNahpAG3hg87~PJ7_U#go+jX3v_Y<>QXInjVMV;EJ?LWE=mPb z3`Pb!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4~~>Eal|aXtCR|M`r!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4~@>Eal|aXtCR|M`rPe^;je zV08J$!6M=ablwbkX^W@37gPdOsg}4#l%ynVYka#Z#3I+yGS3j3^P6!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`s~EDV4B z pZlh?(%}>cpt3=jdXl!L*Ze?fy(a>n)ng!Ir;OXk;vd$@?2>_(aM&bYf literal 0 HcmV?d00001 diff --git a/graphics/pokemon/sobble/footprint.png b/graphics/pokemon/sobble/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..7cca4a4c55a457c027d5abf4b199412c14212436 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4~>>Eal|aXtCR|M`r(bAO+| zaQys*b0-Ss%w=>IW0+eky>jaMm6||xswJ)wB`Jv|saDBFsX&Us$iT=@*U(7U&?3ah zz{!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M?I5Z4a~8 zwXwfZC~1&nb!2JWWdGclA@tvWeunwBLgu^IO8x+8C~=J_Nl7e8wMs5Z1yT$~21bUu zhDN%E79mCkRwkBKhDO>3237_J9Inr9qiD#@PsvQHMAl$vY-MC-Wn=--(EaJ2AW#E? Mr>mdKI;Vst0QxymKL7v# literal 0 HcmV?d00001 diff --git a/graphics/pokemon/stonjourner/footprint.png b/graphics/pokemon/stonjourner/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..15adc25514d4bf97dcd7d65370b938a9a58b63e9 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4~@>Eal|aXtCR|M?FYjGdX4 znd=xr7(%}Nw`Z7phOO0Y!>ji|RjMVf5hW>!C8<`)MX5lF!N|bKP}k5%*U%!w$iT|P z(#p_C+rYrez<|T`*=-aJx%nxXX_d$t42`V}%&m-|8fNGOF92#_@O1TaS?83{1OS(` BOQiq+ literal 0 HcmV?d00001 diff --git a/graphics/pokemon/thievul/footprint.png b/graphics/pokemon/thievul/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..530e57b35ead392c122831ad23af01030df4f81b GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`qf|E?O> zd`ho4z~?Ie!|_GC&0+a!wjHzn|7SFD65lqdY365;h7#9^l9a@fRIB8oR3OD*WME{d zYiOivXc1y$U}a)yWoV>rU|?lnz~TDrHj0Ma{FKbJN@NX&##RQ#R>qbP4e?pa_W?C9 Nc)I$ztaD0e0swo6R1p9G literal 0 HcmV?d00001 diff --git a/graphics/pokemon/thwackey/footprint.png b/graphics/pokemon/thwackey/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..a39e31bcf5d5de54b8b72118e37c95a4d3827bc7 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`qfb+?S? z1f*LW;B)2wA!&D_`2v46+m2cP|1%1QiETEm*c%GcP~sXUf LtDnm{r-UW|Dt}PU literal 0 HcmV?d00001 diff --git a/graphics/pokemon/toxel/footprint.png b/graphics/pokemon/toxel/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..e89659880a9b941b9bcd5b74396508837c591d1e GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Eal|aXtCR|M`qfcJtFK zZtywr-;lKXVEku7`y%^qJpW%wCY)jjF_OsIuCie(P={)XYeY#(Vo9o1a#1RfVlXl= zGSoFR(lxXQF*2|+v9vNY(l#)#GBDt9eRdl~LvDUbW?Ch(218>j15+zQGl+&~k_&Qy P8W=oX{an^LB{Ts5`leEx literal 0 HcmV?d00001 diff --git a/graphics/pokemon/toxtricity/footprint.png b/graphics/pokemon/toxtricity/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..f9824a0885e9641d4b6b861e39260e339cfad670 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Mv^J1q$hSx;Tb#Tu=V-fBwUG+rz@u zZOpHD*k?GtU^G6=Ue?C{C*X^-T-U!F#()0vGwiVvN|d>oG9Rczopr0KC;x$^ZZW literal 0 HcmV?d00001 diff --git a/graphics/pokemon/urshifu/footprint.png b/graphics/pokemon/urshifu/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4c5a6f6cfe41162c2cc3bb06f02acdad094247 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Mv^J1q$hSx;Tb#Tu=V-fBwV!^=;-q zdHnxK@@-hWfc+28`SZ;ep8w>Le!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Mv^J1q#V|x;Tb#Tu=V-e?DX1zbnRn zHn1<`{}jNIqOASnzdS?n4k?=xemh-&DpgBdBT7;dOH!?pi&B9UgOP!ep{}8kuAxPU zk%5(orIn$Pwt<0_fdPl>v)d>da`RI%(<+fQ7#dp{7+aZIKs4AFE$szrVDNPHb6Mw< G&;$TYGEMCO literal 0 HcmV?d00001 diff --git a/graphics/pokemon/yamper/footprint.png b/graphics/pokemon/yamper/footprint.png new file mode 100644 index 0000000000000000000000000000000000000000..4324de5e4fb8dc212d79eebf95dd525daa580c00 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx?BpA#)4xIr~Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Mv^J1q!Kqx;Tb#Tu=V-e?Ft+-__|q zo}B;CAlo9h&A7(y{D+P6AGX_g$gE*tXwH<}E6vNo1k|Eh;u=wsl30>zm0Xkxq!^40 zj0|-RjdTqyLW~ToOf0PojkFC6tPBh|T%X-W(U6;;l9^VCtijOO%D}|R&=jJ!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Mv^J1q$hUx;Tb#Tu=V-fBr*%+r#|T z0>2dao%nx9&YPcJap(MpK)IF%B?rv~QVUM~|If%8Ao{CNtmPk2qiTt3L`h0wNvc(H zQ7VvPFfuSQ)HO8HHM9sZGO#kSv@$f(HZZU!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Mv^J1qx|-x;Tb#Tu=V-fBr*%+r#|T z0>2dao%nx9%6&JsdD33g$f3a+!W{DRzdgfeH&G+A;$I*~sFt`!l%yn!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e4Mv^J1qxYvx;Tb#TxT?3IRBsFKM>h7 ze3NH*B+T$gkl}$M!v#i$4rYc1c7_A|4A0*)d_K?c`#!_Z`3!&Tfr^h#5-~_TwlWQ9 zjB1H%L`h0wNvc(HQ7VvPFfuSQ)HO8HHM9sZGO#kSv@$f(HZZU Date: Sat, 18 Dec 2021 18:35:18 -0300 Subject: [PATCH 73/95] Fixed syntax in footprint_table.h --- src/data/pokemon_graphics/footprint_table.h | 354 ++++++++++---------- 1 file changed, 177 insertions(+), 177 deletions(-) diff --git a/src/data/pokemon_graphics/footprint_table.h b/src/data/pokemon_graphics/footprint_table.h index babc6b43c5..da05b7fff8 100644 --- a/src/data/pokemon_graphics/footprint_table.h +++ b/src/data/pokemon_graphics/footprint_table.h @@ -722,182 +722,182 @@ const u8 *const gMonFootprintTable[] = [SPECIES_DIANCIE] = gMonFootprint_Diancie, [SPECIES_HOOPA] = gMonFootprint_Hoopa, [SPECIES_VOLCANION] = gMonFootprint_Volcanion, - [SPECIES_ROWLET] = gMonFootprint_Rowlet, - [SPECIES_DARTRIX] = gMonFootprint_Dartrix, - [SPECIES_DECIDUEYE] = gMonFootprint_Decidueye, - [SPECIES_LITTEN] = gMonFootprint_Litten, - [SPECIES_TORRACAT] = gMonFootprint_Torracat, - [SPECIES_INCINEROAR] = gMonFootprint_Incineroar, - [SPECIES_POPPLIO] = gMonFootprint_Popplio, - [SPECIES_BRIONNE] = gMonFootprint_Brionne, - [SPECIES_PRIMARINA] = gMonFootprint_Primarina, - [SPECIES_PIKIPEK] = gMonFootprint_Pikipek, - [SPECIES_TRUMBEAK] = gMonFootprint_Trumbeak, - [SPECIES_TOUCANNON] = gMonFootprint_Toucannon, - [SPECIES_YUNGOOS] = gMonFootprint_Yungoos, - [SPECIES_GUMSHOOS] = gMonFootprint_Gumshoos, - [SPECIES_GRUBBIN] = gMonFootprint_Grubbin, - [SPECIES_CHARJABUG] = gMonFootprint_Charjabug, - [SPECIES_VIKAVOLT] = gMonFootprint_Vikavolt, - [SPECIES_CRABRAWLER] = gMonFootprint_Crabrawler, - [SPECIES_CRABOMINABLE] = gMonFootprint_Crabominable, - [SPECIES_ORICORIO] = gMonFootprint_Oricorio, - [SPECIES_CUTIEFLY] = gMonFootprint_Cutiefly, - [SPECIES_RIBOMBEE] = gMonFootprint_Ribombee, - [SPECIES_ROCKRUFF] = gMonFootprint_Rockruff, - [SPECIES_LYCANROC] = gMonFootprint_Lycanroc, - [SPECIES_WISHIWASHI] = gMonFootprint_Wishiwashi, - [SPECIES_MAREANIE] = gMonFootprint_Mareanie, - [SPECIES_TOXAPEX] = gMonFootprint_Toxapex, - [SPECIES_MUDBRAY] = gMonFootprint_Mudbray, - [SPECIES_MUDSDALE] = gMonFootprint_Mudsdale, - [SPECIES_DEWPIDER] = gMonFootprint_Dewpider, - [SPECIES_ARAQUANID] = gMonFootprint_Araquanid, - [SPECIES_FOMANTIS] = gMonFootprint_Fomantis, - [SPECIES_LURANTIS] = gMonFootprint_Lurantis, - [SPECIES_MORELULL] = gMonFootprint_Morelull, - [SPECIES_SHIINOTIC] = gMonFootprint_Shiinotic, - [SPECIES_SALANDIT] = gMonFootprint_Salandit, - [SPECIES_SALAZZLE] = gMonFootprint_Salazzle, - [SPECIES_STUFFUL] = gMonFootprint_Stufful, - [SPECIES_BEWEAR] = gMonFootprint_Bewear, - [SPECIES_BOUNSWEET] = gMonFootprint_Bounsweet, - [SPECIES_STEENEE] = gMonFootprint_Steenee, - [SPECIES_TSAREENA] = gMonFootprint_Tsareena, - [SPECIES_COMFEY] = gMonFootprint_Comfey, - [SPECIES_ORANGURU] = gMonFootprint_Oranguru, - [SPECIES_PASSIMIAN] = gMonFootprint_Passimian, - [SPECIES_WIMPOD] = gMonFootprint_Wimpod, - [SPECIES_GOLISOPOD] = gMonFootprint_Golisopod, - [SPECIES_SANDYGAST] = gMonFootprint_Sandygast, - [SPECIES_PALOSSAND] = gMonFootprint_Palossand, - [SPECIES_PYUKUMUKU] = gMonFootprint_Pyukumuku, - [SPECIES_TYPE_NULL] = gMonFootprint_Type_Null, - [SPECIES_SILVALLY] = gMonFootprint_Silvally, - [SPECIES_MINIOR] = gMonFootprint_Minior, - [SPECIES_KOMALA] = gMonFootprint_Komala, - [SPECIES_TURTONATOR] = gMonFootprint_Turtonator, - [SPECIES_TOGEDEMARU] = gMonFootprint_Togedemaru, - [SPECIES_MIMIKYU] = gMonFootprint_Mimikyu, - [SPECIES_BRUXISH] = gMonFootprint_Bruxish, - [SPECIES_DRAMPA] = gMonFootprint_Drampa, - [SPECIES_DHELMISE] = gMonFootprint_Dhelmise, - [SPECIES_JANGMO_O] = gMonFootprint_Jangmo_o, - [SPECIES_HAKAMO_O] = gMonFootprint_Hakamo_o, - [SPECIES_KOMMO_O] = gMonFootprint_Kommo_o, - [SPECIES_TAPU_KOKO] = gMonFootprint_Tapu_Koko, - [SPECIES_TAPU_LELE] = gMonFootprint_Tapu_Lele, - [SPECIES_TAPU_BULU] = gMonFootprint_Tapu_Bulu, - [SPECIES_TAPU_FINI] = gMonFootprint_Tapu_Fini, - [SPECIES_COSMOG] = gMonFootprint_Cosmog, - [SPECIES_COSMOEM] = gMonFootprint_Cosmoem, - [SPECIES_SOLGALEO] = gMonFootprint_Solgaleo, - [SPECIES_LUNALA] = gMonFootprint_Lunala, - [SPECIES_NIHILEGO] = gMonFootprint_Nihilego, - [SPECIES_BUZZWOLE] = gMonFootprint_Buzzwole, - [SPECIES_PHEROMOSA] = gMonFootprint_Pheromosa, - [SPECIES_XURKITREE] = gMonFootprint_Xurkitree, - [SPECIES_CELESTEELA] = gMonFootprint_Celesteela, - [SPECIES_KARTANA] = gMonFootprint_Kartana, - [SPECIES_GUZZLORD] = gMonFootprint_Guzzlord, - [SPECIES_NECROZMA] = gMonFootprint_Necrozma, - [SPECIES_MAGEARNA] = gMonFootprint_Magearna, - [SPECIES_MARSHADOW] = gMonFootprint_Marshadow, - [SPECIES_POIPOLE] = gMonFootprint_Poipole, - [SPECIES_NAGANADEL] = gMonFootprint_Naganadel, - [SPECIES_STAKATAKA] = gMonFootprint_Stakataka, - [SPECIES_BLACEPHALON] = gMonFootprint_Blacephalon, - [SPECIES_ZERAORA] = gMonFootprint_Zeraora, - [SPECIES_MELTAN] = gMonFootprint_Meltan, - [SPECIES_MELMETAL] = gMonFootprint_Melmetal, - [SPECIES_GROOKEY] = gMonFootprint_Grookey, - [SPECIES_THWACKEY] = gMonFootprint_Thwackey, - [SPECIES_RILLABOOM] = gMonFootprint_Rillaboom, - [SPECIES_SCORBUNNY] = gMonFootprint_Scorbunny, - [SPECIES_RABOOT] = gMonFootprint_Raboot, - [SPECIES_CINDERACE] = gMonFootprint_Cinderace, - [SPECIES_SOBBLE] = gMonFootprint_Sobble, - [SPECIES_DRIZZILE] = gMonFootprint_Drizzile, - [SPECIES_INTELEON] = gMonFootprint_Inteleon, - [SPECIES_SKWOVET] = gMonFootprint_Skwovet, - [SPECIES_GREEDENT] = gMonFootprint_Greedent, - [SPECIES_ROOKIDEE] = gMonFootprint_Rookidee, - [SPECIES_CORVISQUIRE] = gMonFootprint_Corvisquire, - [SPECIES_CORVIKNIGHT] = gMonFootprint_Corviknight, - [SPECIES_BLIPBUG] = gMonFootprint_Blipbug, - [SPECIES_DOTTLER] = gMonFootprint_Dottler, - [SPECIES_ORBEETLE] = gMonFootprint_Orbeetle, - [SPECIES_NICKIT] = gMonFootprint_Nickit, - [SPECIES_THIEVUL] = gMonFootprint_Thievul, - [SPECIES_GOSSIFLEUR] = gMonFootprint_Gossifleur, - [SPECIES_ELDEGOSS] = gMonFootprint_Eldegoss, - [SPECIES_WOOLOO] = gMonFootprint_Wooloo, - [SPECIES_DUBWOOL] = gMonFootprint_Dubwool, - [SPECIES_CHEWTLE] = gMonFootprint_Chewtle, - [SPECIES_DREDNAW] = gMonFootprint_Drednaw, - [SPECIES_YAMPER] = gMonFootprint_Yamper, - [SPECIES_BOLTUND] = gMonFootprint_Boltund, - [SPECIES_ROLYCOLY] = gMonFootprint_Rolycoly, - [SPECIES_CARKOL] = gMonFootprint_Carkol, - [SPECIES_COALOSSAL] = gMonFootprint_Coalossal, - [SPECIES_APPLIN] = gMonFootprint_Applin, - [SPECIES_FLAPPLE] = gMonFootprint_Flapple, - [SPECIES_APPLETUN] = gMonFootprint_Appletun, - [SPECIES_SILICOBRA] = gMonFootprint_Silicobra, - [SPECIES_SANDACONDA] = gMonFootprint_Sandaconda, - [SPECIES_CRAMORANT] = gMonFootprint_Cramorant, - [SPECIES_ARROKUDA] = gMonFootprint_Arrokuda, - [SPECIES_BARRASKEWDA] = gMonFootprint_Barraskewda, - [SPECIES_TOXEL] = gMonFootprint_Toxel, - [SPECIES_TOXTRICITY] = gMonFootprint_Toxtricity, - [SPECIES_SIZZLIPEDE] = gMonFootprint_Sizzlipede, - [SPECIES_CENTISKORCH] = gMonFootprint_Centiskorch, - [SPECIES_CLOBBOPUS] = gMonFootprint_Clobbopus, - [SPECIES_GRAPPLOCT] = gMonFootprint_Grapploct, - [SPECIES_SINISTEA] = gMonFootprint_Sinistea, - [SPECIES_POLTEAGEIST] = gMonFootprint_Polteageist, - [SPECIES_HATENNA] = gMonFootprint_Hatenna, - [SPECIES_HATTREM] = gMonFootprint_Hattrem, - [SPECIES_HATTERENE] = gMonFootprint_Hatterene, - [SPECIES_IMPIDIMP] = gMonFootprint_Impidimp, - [SPECIES_MORGREM] = gMonFootprint_Morgrem, - [SPECIES_GRIMMSNARL] = gMonFootprint_Grimmsnarl, - [SPECIES_OBSTAGOON] = gMonFootprint_Obstagoon, - [SPECIES_PERRSERKER] = gMonFootprint_Perrserker, - [SPECIES_CURSOLA] = gMonFootprint_Cursola, - [SPECIES_SIRFETCHD] = gMonFootprint_Sirfetchd, - [SPECIES_MR_RIME] = gMonFootprint_Mr_Rime, - [SPECIES_RUNERIGUS] = gMonFootprint_Runerigus, - [SPECIES_MILCERY] = gMonFootprint_Milcery, - [SPECIES_ALCREMIE] = gMonFootprint_Alcremie, - [SPECIES_FALINKS] = gMonFootprint_Falinks, - [SPECIES_PINCURCHIN] = gMonFootprint_Pincurchin, - [SPECIES_SNOM] = gMonFootprint_Snom, - [SPECIES_FROSMOTH] = gMonFootprint_Frosmoth, - [SPECIES_STONJOURNER] = gMonFootprint_Stonjourner, - [SPECIES_EISCUE] = gMonFootprint_Eiscue, - [SPECIES_INDEEDEE] = gMonFootprint_Indeedee, - [SPECIES_MORPEKO] = gMonFootprint_Morpeko, - [SPECIES_CUFANT] = gMonFootprint_Cufant, - [SPECIES_COPPERAJAH] = gMonFootprint_Copperajah, - [SPECIES_DRACOZOLT] = gMonFootprint_Dracozolt, - [SPECIES_ARCTOZOLT] = gMonFootprint_Arctozolt, - [SPECIES_DRACOVISH] = gMonFootprint_Dracovish, - [SPECIES_ARCTOVISH] = gMonFootprint_Arctovish, - [SPECIES_DURALUDON] = gMonFootprint_Duraludon, - [SPECIES_DREEPY] = gMonFootprint_Dreepy, - [SPECIES_DRAKLOAK] = gMonFootprint_Drakloak, - [SPECIES_DRAGAPULT] = gMonFootprint_Dragapult, - [SPECIES_ZACIAN] = gMonFootprint_Zacian, - [SPECIES_ZAMAZENTA] = gMonFootprint_Zamazenta, - [SPECIES_ETERNATUS] = gMonFootprint_Eternatus, - [SPECIES_KUBFU] = gMonFootprint_Kubfu, - [SPECIES_URSHIFU] = gMonFootprint_Urshifu, - [SPECIES_ZARUDE] = gMonFootprint_Zarude, - [SPECIES_REGIELEKI] = gMonFootprint_Regieleki, - [SPECIES_REGIDRAGO] = gMonFootprint_Regidrago, - [SPECIES_GLASTRIER] = gMonFootprint_Glastrier, - [SPECIES_SPECTRIER] = gMonFootprint_Spectrier, - [SPECIES_CALYREX] = gMonFootprint_Calyrex, + [SPECIES_ROWLET] = gMonFootprint_Rowlet, + [SPECIES_DARTRIX] = gMonFootprint_Dartrix, + [SPECIES_DECIDUEYE] = gMonFootprint_Decidueye, + [SPECIES_LITTEN] = gMonFootprint_Litten, + [SPECIES_TORRACAT] = gMonFootprint_Torracat, + [SPECIES_INCINEROAR] = gMonFootprint_Incineroar, + [SPECIES_POPPLIO] = gMonFootprint_Popplio, + [SPECIES_BRIONNE] = gMonFootprint_Brionne, + [SPECIES_PRIMARINA] = gMonFootprint_Primarina, + [SPECIES_PIKIPEK] = gMonFootprint_Pikipek, + [SPECIES_TRUMBEAK] = gMonFootprint_Trumbeak, + [SPECIES_TOUCANNON] = gMonFootprint_Toucannon, + [SPECIES_YUNGOOS] = gMonFootprint_Yungoos, + [SPECIES_GUMSHOOS] = gMonFootprint_Gumshoos, + [SPECIES_GRUBBIN] = gMonFootprint_Grubbin, + [SPECIES_CHARJABUG] = gMonFootprint_Charjabug, + [SPECIES_VIKAVOLT] = gMonFootprint_Vikavolt, + [SPECIES_CRABRAWLER] = gMonFootprint_Crabrawler, + [SPECIES_CRABOMINABLE] = gMonFootprint_Crabominable, + [SPECIES_ORICORIO] = gMonFootprint_Oricorio, + [SPECIES_CUTIEFLY] = gMonFootprint_Cutiefly, + [SPECIES_RIBOMBEE] = gMonFootprint_Ribombee, + [SPECIES_ROCKRUFF] = gMonFootprint_Rockruff, + [SPECIES_LYCANROC] = gMonFootprint_Lycanroc, + [SPECIES_WISHIWASHI] = gMonFootprint_Wishiwashi, + [SPECIES_MAREANIE] = gMonFootprint_Mareanie, + [SPECIES_TOXAPEX] = gMonFootprint_Toxapex, + [SPECIES_MUDBRAY] = gMonFootprint_Mudbray, + [SPECIES_MUDSDALE] = gMonFootprint_Mudsdale, + [SPECIES_DEWPIDER] = gMonFootprint_Dewpider, + [SPECIES_ARAQUANID] = gMonFootprint_Araquanid, + [SPECIES_FOMANTIS] = gMonFootprint_Fomantis, + [SPECIES_LURANTIS] = gMonFootprint_Lurantis, + [SPECIES_MORELULL] = gMonFootprint_Morelull, + [SPECIES_SHIINOTIC] = gMonFootprint_Shiinotic, + [SPECIES_SALANDIT] = gMonFootprint_Salandit, + [SPECIES_SALAZZLE] = gMonFootprint_Salazzle, + [SPECIES_STUFFUL] = gMonFootprint_Stufful, + [SPECIES_BEWEAR] = gMonFootprint_Bewear, + [SPECIES_BOUNSWEET] = gMonFootprint_Bounsweet, + [SPECIES_STEENEE] = gMonFootprint_Steenee, + [SPECIES_TSAREENA] = gMonFootprint_Tsareena, + [SPECIES_COMFEY] = gMonFootprint_Comfey, + [SPECIES_ORANGURU] = gMonFootprint_Oranguru, + [SPECIES_PASSIMIAN] = gMonFootprint_Passimian, + [SPECIES_WIMPOD] = gMonFootprint_Wimpod, + [SPECIES_GOLISOPOD] = gMonFootprint_Golisopod, + [SPECIES_SANDYGAST] = gMonFootprint_Sandygast, + [SPECIES_PALOSSAND] = gMonFootprint_Palossand, + [SPECIES_PYUKUMUKU] = gMonFootprint_Pyukumuku, + [SPECIES_TYPE_NULL] = gMonFootprint_Type_Null, + [SPECIES_SILVALLY] = gMonFootprint_Silvally, + [SPECIES_MINIOR] = gMonFootprint_Minior, + [SPECIES_KOMALA] = gMonFootprint_Komala, + [SPECIES_TURTONATOR] = gMonFootprint_Turtonator, + [SPECIES_TOGEDEMARU] = gMonFootprint_Togedemaru, + [SPECIES_MIMIKYU] = gMonFootprint_Mimikyu, + [SPECIES_BRUXISH] = gMonFootprint_Bruxish, + [SPECIES_DRAMPA] = gMonFootprint_Drampa, + [SPECIES_DHELMISE] = gMonFootprint_Dhelmise, + [SPECIES_JANGMO_O] = gMonFootprint_Jangmo_o, + [SPECIES_HAKAMO_O] = gMonFootprint_Hakamo_o, + [SPECIES_KOMMO_O] = gMonFootprint_Kommo_o, + [SPECIES_TAPU_KOKO] = gMonFootprint_Tapu_Koko, + [SPECIES_TAPU_LELE] = gMonFootprint_Tapu_Lele, + [SPECIES_TAPU_BULU] = gMonFootprint_Tapu_Bulu, + [SPECIES_TAPU_FINI] = gMonFootprint_Tapu_Fini, + [SPECIES_COSMOG] = gMonFootprint_Cosmog, + [SPECIES_COSMOEM] = gMonFootprint_Cosmoem, + [SPECIES_SOLGALEO] = gMonFootprint_Solgaleo, + [SPECIES_LUNALA] = gMonFootprint_Lunala, + [SPECIES_NIHILEGO] = gMonFootprint_Nihilego, + [SPECIES_BUZZWOLE] = gMonFootprint_Buzzwole, + [SPECIES_PHEROMOSA] = gMonFootprint_Pheromosa, + [SPECIES_XURKITREE] = gMonFootprint_Xurkitree, + [SPECIES_CELESTEELA] = gMonFootprint_Celesteela, + [SPECIES_KARTANA] = gMonFootprint_Kartana, + [SPECIES_GUZZLORD] = gMonFootprint_Guzzlord, + [SPECIES_NECROZMA] = gMonFootprint_Necrozma, + [SPECIES_MAGEARNA] = gMonFootprint_Magearna, + [SPECIES_MARSHADOW] = gMonFootprint_Marshadow, + [SPECIES_POIPOLE] = gMonFootprint_Poipole, + [SPECIES_NAGANADEL] = gMonFootprint_Naganadel, + [SPECIES_STAKATAKA] = gMonFootprint_Stakataka, + [SPECIES_BLACEPHALON] = gMonFootprint_Blacephalon, + [SPECIES_ZERAORA] = gMonFootprint_Zeraora, + [SPECIES_MELTAN] = gMonFootprint_Meltan, + [SPECIES_MELMETAL] = gMonFootprint_Melmetal, + [SPECIES_GROOKEY] = gMonFootprint_Grookey, + [SPECIES_THWACKEY] = gMonFootprint_Thwackey, + [SPECIES_RILLABOOM] = gMonFootprint_Rillaboom, + [SPECIES_SCORBUNNY] = gMonFootprint_Scorbunny, + [SPECIES_RABOOT] = gMonFootprint_Raboot, + [SPECIES_CINDERACE] = gMonFootprint_Cinderace, + [SPECIES_SOBBLE] = gMonFootprint_Sobble, + [SPECIES_DRIZZILE] = gMonFootprint_Drizzile, + [SPECIES_INTELEON] = gMonFootprint_Inteleon, + [SPECIES_SKWOVET] = gMonFootprint_Skwovet, + [SPECIES_GREEDENT] = gMonFootprint_Greedent, + [SPECIES_ROOKIDEE] = gMonFootprint_Rookidee, + [SPECIES_CORVISQUIRE] = gMonFootprint_Corvisquire, + [SPECIES_CORVIKNIGHT] = gMonFootprint_Corviknight, + [SPECIES_BLIPBUG] = gMonFootprint_Blipbug, + [SPECIES_DOTTLER] = gMonFootprint_Dottler, + [SPECIES_ORBEETLE] = gMonFootprint_Orbeetle, + [SPECIES_NICKIT] = gMonFootprint_Nickit, + [SPECIES_THIEVUL] = gMonFootprint_Thievul, + [SPECIES_GOSSIFLEUR] = gMonFootprint_Gossifleur, + [SPECIES_ELDEGOSS] = gMonFootprint_Eldegoss, + [SPECIES_WOOLOO] = gMonFootprint_Wooloo, + [SPECIES_DUBWOOL] = gMonFootprint_Dubwool, + [SPECIES_CHEWTLE] = gMonFootprint_Chewtle, + [SPECIES_DREDNAW] = gMonFootprint_Drednaw, + [SPECIES_YAMPER] = gMonFootprint_Yamper, + [SPECIES_BOLTUND] = gMonFootprint_Boltund, + [SPECIES_ROLYCOLY] = gMonFootprint_Rolycoly, + [SPECIES_CARKOL] = gMonFootprint_Carkol, + [SPECIES_COALOSSAL] = gMonFootprint_Coalossal, + [SPECIES_APPLIN] = gMonFootprint_Applin, + [SPECIES_FLAPPLE] = gMonFootprint_Flapple, + [SPECIES_APPLETUN] = gMonFootprint_Appletun, + [SPECIES_SILICOBRA] = gMonFootprint_Silicobra, + [SPECIES_SANDACONDA] = gMonFootprint_Sandaconda, + [SPECIES_CRAMORANT] = gMonFootprint_Cramorant, + [SPECIES_ARROKUDA] = gMonFootprint_Arrokuda, + [SPECIES_BARRASKEWDA] = gMonFootprint_Barraskewda, + [SPECIES_TOXEL] = gMonFootprint_Toxel, + [SPECIES_TOXTRICITY] = gMonFootprint_Toxtricity, + [SPECIES_SIZZLIPEDE] = gMonFootprint_Sizzlipede, + [SPECIES_CENTISKORCH] = gMonFootprint_Centiskorch, + [SPECIES_CLOBBOPUS] = gMonFootprint_Clobbopus, + [SPECIES_GRAPPLOCT] = gMonFootprint_Grapploct, + [SPECIES_SINISTEA] = gMonFootprint_Sinistea, + [SPECIES_POLTEAGEIST] = gMonFootprint_Polteageist, + [SPECIES_HATENNA] = gMonFootprint_Hatenna, + [SPECIES_HATTREM] = gMonFootprint_Hattrem, + [SPECIES_HATTERENE] = gMonFootprint_Hatterene, + [SPECIES_IMPIDIMP] = gMonFootprint_Impidimp, + [SPECIES_MORGREM] = gMonFootprint_Morgrem, + [SPECIES_GRIMMSNARL] = gMonFootprint_Grimmsnarl, + [SPECIES_OBSTAGOON] = gMonFootprint_Obstagoon, + [SPECIES_PERRSERKER] = gMonFootprint_Perrserker, + [SPECIES_CURSOLA] = gMonFootprint_Cursola, + [SPECIES_SIRFETCHD] = gMonFootprint_Sirfetchd, + [SPECIES_MR_RIME] = gMonFootprint_Mr_Rime, + [SPECIES_RUNERIGUS] = gMonFootprint_Runerigus, + [SPECIES_MILCERY] = gMonFootprint_Milcery, + [SPECIES_ALCREMIE] = gMonFootprint_Alcremie, + [SPECIES_FALINKS] = gMonFootprint_Falinks, + [SPECIES_PINCURCHIN] = gMonFootprint_Pincurchin, + [SPECIES_SNOM] = gMonFootprint_Snom, + [SPECIES_FROSMOTH] = gMonFootprint_Frosmoth, + [SPECIES_STONJOURNER] = gMonFootprint_Stonjourner, + [SPECIES_EISCUE] = gMonFootprint_Eiscue, + [SPECIES_INDEEDEE] = gMonFootprint_Indeedee, + [SPECIES_MORPEKO] = gMonFootprint_Morpeko, + [SPECIES_CUFANT] = gMonFootprint_Cufant, + [SPECIES_COPPERAJAH] = gMonFootprint_Copperajah, + [SPECIES_DRACOZOLT] = gMonFootprint_Dracozolt, + [SPECIES_ARCTOZOLT] = gMonFootprint_Arctozolt, + [SPECIES_DRACOVISH] = gMonFootprint_Dracovish, + [SPECIES_ARCTOVISH] = gMonFootprint_Arctovish, + [SPECIES_DURALUDON] = gMonFootprint_Duraludon, + [SPECIES_DREEPY] = gMonFootprint_Dreepy, + [SPECIES_DRAKLOAK] = gMonFootprint_Drakloak, + [SPECIES_DRAGAPULT] = gMonFootprint_Dragapult, + [SPECIES_ZACIAN] = gMonFootprint_Zacian, + [SPECIES_ZAMAZENTA] = gMonFootprint_Zamazenta, + [SPECIES_ETERNATUS] = gMonFootprint_Eternatus, + [SPECIES_KUBFU] = gMonFootprint_Kubfu, + [SPECIES_URSHIFU] = gMonFootprint_Urshifu, + [SPECIES_ZARUDE] = gMonFootprint_Zarude, + [SPECIES_REGIELEKI] = gMonFootprint_Regieleki, + [SPECIES_REGIDRAGO] = gMonFootprint_Regidrago, + [SPECIES_GLASTRIER] = gMonFootprint_Glastrier, + [SPECIES_SPECTRIER] = gMonFootprint_Spectrier, + [SPECIES_CALYREX] = gMonFootprint_Calyrex, [SPECIES_EGG] = gMonFootprint_Bulbasaur, }; From 793de700683454343e1b4e18f41681746511386c Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sun, 19 Dec 2021 13:09:01 -0300 Subject: [PATCH 74/95] Fixed reference to PlayCry2 --- src/party_menu.c | 2 +- src/pokemon_storage_system.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/party_menu.c b/src/party_menu.c index 1e071a081c..7c24eeb7a7 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -5317,7 +5317,7 @@ void TryItemHoldFormChange(struct Pokemon *mon) targetSpecies = GetFormChangeTargetSpecies(mon, FORM_ITEM_HOLD, 0); if (targetSpecies != SPECIES_NONE) { - PlayCry2(targetSpecies, 0, 0x7D, 0xA); + PlayCry_NormalNoDucking(targetSpecies, 0, CRY_VOLUME_RS, CRY_VOLUME_RS); SetMonData(mon, MON_DATA_SPECIES, &targetSpecies); FreeAndDestroyMonIconSprite(&gSprites[sPartyMenuBoxes[gPartyMenu.slotId].monSpriteId]); CreatePartyMonIconSpriteParameterized(targetSpecies, GetMonData(mon, MON_DATA_PERSONALITY, NULL), &sPartyMenuBoxes[gPartyMenu.slotId], 1); diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 639c4f7fc0..1a3e8f0fea 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -6911,7 +6911,6 @@ void SetMonFormPSS(struct BoxPokemon *boxMon) targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, FORM_ITEM_HOLD, 0); if (targetSpecies != SPECIES_NONE) { - //PlayCry2(targetSpecies, 0, 0x7D, 0xA); SetBoxMonData(boxMon, MON_DATA_SPECIES, &targetSpecies); UpdateSpeciesSpritePSS(boxMon); } From d6a78f386f8151136badb2619e5c87ca0ef2302d Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Thu, 16 Jul 2020 10:02:06 -0300 Subject: [PATCH 75/95] Implemented evolution moves Thanks to UltimaSoul and Sagiri/Zeturic --- include/pokemon.h | 1 + src/evolution_scene.c | 4 ++-- src/pokemon.c | 26 ++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/include/pokemon.h b/include/pokemon.h index af36217739..1dc3ed461b 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -456,5 +456,6 @@ u16 GetFormSpeciesId(u16 speciesId, u8 formId); u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId); u16 GetFormChangeTargetSpecies(struct Pokemon *mon, u16 method, u32 arg); u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *mon, u16 method, u32 arg); +u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove); #endif // GUARD_POKEMON_H diff --git a/src/evolution_scene.c b/src/evolution_scene.c index e5d628140e..a0adb4b465 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -780,7 +780,7 @@ static void Task_EvolutionScene(u8 taskId) case EVOSTATE_TRY_LEARN_MOVE: if (!IsTextPrinterActive(0)) { - var = MonTryLearningNewMove(mon, gTasks[taskId].tLearnsFirstMove); + var = MonTryLearningNewMoveEvolution(mon, gTasks[taskId].tLearnsFirstMove); if (var != MOVE_NONE && !gTasks[taskId].tEvoWasStopped) { u8 text[20]; @@ -1201,7 +1201,7 @@ static void Task_TradeEvolutionScene(u8 taskId) case T_EVOSTATE_TRY_LEARN_MOVE: if (!IsTextPrinterActive(0) && IsFanfareTaskInactive() == TRUE) { - var = MonTryLearningNewMove(mon, gTasks[taskId].tLearnsFirstMove); + var = MonTryLearningNewMoveEvolution(mon, gTasks[taskId].tLearnsFirstMove); if (var != MOVE_NONE && !gTasks[taskId].tEvoWasStopped) { u8 text[20]; diff --git a/src/pokemon.c b/src/pokemon.c index 0a0b837eac..7108c3d235 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -8259,3 +8259,29 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *mon, u16 method, u32 arg return species != targetSpecies ? targetSpecies : SPECIES_NONE; } + +u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove) +{ + u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL); + + // since you can learn more than one move per level + // the game needs to know whether you decided to + // learn it or keep the old set to avoid asking + // you to learn the same move over and over again + if (firstMove) + { + sLearningMoveTableID = 0; + } + while(gLevelUpLearnsets[species][sLearningMoveTableID].move != LEVEL_UP_END) + { + while (!gLevelUpLearnsets[species][sLearningMoveTableID].level || gLevelUpLearnsets[species][sLearningMoveTableID].level == level) + { + gMoveToLearn = gLevelUpLearnsets[species][sLearningMoveTableID].move; + sLearningMoveTableID++; + return GiveMoveToMon(mon, gMoveToLearn); + } + sLearningMoveTableID++; + } + return 0; +} From 96012ba06581cb3acaa8a06f367f2e2d924e6ea1 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Sun, 26 Dec 2021 12:39:45 -0300 Subject: [PATCH 76/95] Update src/pokemon.c Co-authored-by: Eduardo Quezada D'Ottone --- src/pokemon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index 7108c3d235..0c41026395 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -8265,10 +8265,10 @@ u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove) u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL); - // since you can learn more than one move per level + // Since you can learn more than one move per level, // the game needs to know whether you decided to // learn it or keep the old set to avoid asking - // you to learn the same move over and over again + // you to learn the same move over and over again. if (firstMove) { sLearningMoveTableID = 0; From 86ed53997b351817e45e741c03999f6b9981014b Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Sun, 26 Dec 2021 12:39:56 -0300 Subject: [PATCH 77/95] Update src/pokemon.c Co-authored-by: Eduardo Quezada D'Ottone --- src/pokemon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokemon.c b/src/pokemon.c index 0c41026395..a176db3116 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -8275,7 +8275,7 @@ u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove) } while(gLevelUpLearnsets[species][sLearningMoveTableID].move != LEVEL_UP_END) { - while (!gLevelUpLearnsets[species][sLearningMoveTableID].level || gLevelUpLearnsets[species][sLearningMoveTableID].level == level) + while (gLevelUpLearnsets[species][sLearningMoveTableID].level == 0 || gLevelUpLearnsets[species][sLearningMoveTableID].level == level) { gMoveToLearn = gLevelUpLearnsets[species][sLearningMoveTableID].move; sLearningMoveTableID++; From 3f010d9aa8ea40c6481e4e90120db48c2ec8766c Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Sun, 26 Dec 2021 17:11:51 -0300 Subject: [PATCH 78/95] =?UTF-8?q?Tweaked=20GiveBoxMonInitialMoveset=20Othe?= =?UTF-8?q?rwise,=20Pok=C3=A9mon=20would=20be=20generated=20with=20their?= =?UTF-8?q?=20evo=20moves=20learned.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pokemon.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pokemon.c b/src/pokemon.c index a176db3116..96ea4798bb 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -3940,6 +3940,8 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) { if (gLevelUpLearnsets[species][i].level > level) break; + if (gLevelUpLearnsets[species][i].level == 0) + continue; if (GiveMoveToBoxMon(boxMon, gLevelUpLearnsets[species][i].move) == MON_HAS_MAX_MOVES) DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, gLevelUpLearnsets[species][i].move); } From 677da7b5e7540b49850a52340ea20ad079d1f1cd Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Tue, 28 Dec 2021 14:48:57 -0300 Subject: [PATCH 79/95] Fixed struct names --- include/reset_rtc_screen.h | 4 ++-- src/pokemon_debug.c | 28 ++++++++++++++-------------- src/reset_rtc_screen.c | 12 ++++++------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h index f8904063b7..5896164005 100644 --- a/include/reset_rtc_screen.h +++ b/include/reset_rtc_screen.h @@ -1,8 +1,8 @@ #ifndef GUARD_RESET_RTC_SCREEN_H #define GUARD_RESET_RTC_SCREEN_H -extern const struct SpritePalette sSpritePalette_Arrow; -extern const struct SpriteTemplate sSpriteTemplate_Arrow; +extern const struct SpritePalette gSpritePalette_Arrow; +extern const struct SpriteTemplate gSpriteTemplate_Arrow; void CB2_InitResetRtcScreen(void); diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index ef440611c7..d43120e6a5 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -570,9 +570,9 @@ static void SetArrowInvisibility(struct PokemonDebugMenu *data) static void SetUpModifyArrows(struct PokemonDebugMenu *data) { - LoadSpritePalette(&sSpritePalette_Arrow); - data->modifyArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X, MODIFY_DIGITS_ARROW1_Y, 0); - data->modifyArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X, MODIFY_DIGITS_ARROW2_Y, 0); + LoadSpritePalette(&gSpritePalette_Arrow); + data->modifyArrows.arrowSpriteId[0] = CreateSprite(&gSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X, MODIFY_DIGITS_ARROW1_Y, 0); + data->modifyArrows.arrowSpriteId[1] = CreateSprite(&gSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X, MODIFY_DIGITS_ARROW2_Y, 0); gSprites[data->modifyArrows.arrowSpriteId[1]].animNum = 1; data->modifyArrows.minValue = 1; @@ -588,8 +588,8 @@ static void SetUpModifyArrows(struct PokemonDebugMenu *data) static void SetUpOptionArrows(struct PokemonDebugMenu *data) { - LoadSpritePalette(&sSpritePalette_Arrow); - data->optionArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y, 0); + LoadSpritePalette(&gSpritePalette_Arrow); + data->optionArrows.arrowSpriteId[0] = CreateSprite(&gSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y, 0); gSprites[data->optionArrows.arrowSpriteId[0]].animNum = 2; data->optionArrows.currentDigit = 0; @@ -599,8 +599,8 @@ static void SetUpOptionArrows(struct PokemonDebugMenu *data) static void SetUpYPosModifyArrows(struct PokemonDebugMenu *data) { - LoadSpritePalette(&sSpritePalette_Arrow); - data->yPosModifyArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y, 0); + LoadSpritePalette(&gSpritePalette_Arrow); + data->yPosModifyArrows.arrowSpriteId[0] = CreateSprite(&gSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y, 0); gSprites[data->yPosModifyArrows.arrowSpriteId[0]].animNum = 2; data->yPosModifyArrows.currentDigit = 0; @@ -1705,19 +1705,19 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows - LoadSpritePalette(&sSpritePalette_Arrow); - data->modifyArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW1_Y, 0); - data->modifyArrows.arrowSpriteId[1] = CreateSprite(&sSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW2_Y, 0); + LoadSpritePalette(&gSpritePalette_Arrow); + data->modifyArrows.arrowSpriteId[0] = CreateSprite(&gSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW1_Y, 0); + data->modifyArrows.arrowSpriteId[1] = CreateSprite(&gSpriteTemplate_Arrow, MODIFY_DIGITS_ARROW_X + (data->modifyArrows.currentDigit * 6), MODIFY_DIGITS_ARROW2_Y, 0); gSprites[data->modifyArrows.arrowSpriteId[1]].animNum = 1; //Option Arrow - LoadSpritePalette(&sSpritePalette_Arrow); - data->optionArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12, 0); + LoadSpritePalette(&gSpritePalette_Arrow); + data->optionArrows.arrowSpriteId[0] = CreateSprite(&gSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y + data->optionArrows.currentDigit * 12, 0); gSprites[data->optionArrows.arrowSpriteId[0]].animNum = 2; //Y Pos Modify Arrow - LoadSpritePalette(&sSpritePalette_Arrow); - data->yPosModifyArrows.arrowSpriteId[0] = CreateSprite(&sSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y + data->yPosModifyArrows.currentDigit * 12, 0); + LoadSpritePalette(&gSpritePalette_Arrow); + data->yPosModifyArrows.arrowSpriteId[0] = CreateSprite(&gSpriteTemplate_Arrow, OPTIONS_ARROW_1_X, OPTIONS_ARROW_Y + data->yPosModifyArrows.currentDigit * 12, 0); gSprites[data->yPosModifyArrows.arrowSpriteId[0]].animNum = 2; //Arrow invisibility diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 34c388969d..e817fdd143 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -181,7 +181,7 @@ static const struct SpriteFrameImage sPicTable_Arrow[] = obj_frame_tiles(sArrowRight_Gfx) }; -const struct SpritePalette sSpritePalette_Arrow = +const struct SpritePalette gSpritePalette_Arrow = { sArrow_Pal, PALTAG_ARROW }; @@ -217,7 +217,7 @@ static const union AnimCmd *const sAnims_Arrow[] = [ARROW_RIGHT] = sAnim_Arrow_Right, }; -const struct SpriteTemplate sSpriteTemplate_Arrow = +const struct SpriteTemplate gSpriteTemplate_Arrow = { .tileTag = TAG_NONE, .paletteTag = PALTAG_ARROW, @@ -333,14 +333,14 @@ static void CreateCursor(u8 taskId) { u32 spriteId; - LoadSpritePalette(&sSpritePalette_Arrow); + LoadSpritePalette(&gSpritePalette_Arrow); - spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Arrow, 53, 68, 0); + spriteId = CreateSpriteAtEnd(&gSpriteTemplate_Arrow, 53, 68, 0); gSprites[spriteId].callback = SpriteCB_Cursor_UpOrRight; gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].sState = -1; - spriteId = CreateSpriteAtEnd(&sSpriteTemplate_Arrow, 53, 68, 0); + spriteId = CreateSpriteAtEnd(&gSpriteTemplate_Arrow, 53, 68, 0); gSprites[spriteId].callback = SpriteCB_Cursor_Down; gSprites[spriteId].sTaskId = taskId; gSprites[spriteId].sState = -1; @@ -348,7 +348,7 @@ static void CreateCursor(u8 taskId) static void FreeCursorPalette(void) { - FreeSpritePaletteByTag(sSpritePalette_Arrow.tag); + FreeSpritePaletteByTag(gSpritePalette_Arrow.tag); } static void HideChooseTimeWindow(u8 windowId) From 3bbaf5a15d0bfaa5a002e834f6da9750a1d494a4 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sat, 1 Jan 2022 19:24:34 -0300 Subject: [PATCH 80/95] Optimized SpeciesHasGenderDifference into Base Stat flag --- include/constants/species.h | 7 ++- include/data.h | 1 - src/data.c | 19 ------ src/data/pokemon/base_stats.h | 113 +++++++++++++++++++--------------- src/decompress.c | 4 +- src/pokemon.c | 8 +-- src/pokemon_icon.c | 4 +- src/pokemon_storage_system.c | 4 +- 8 files changed, 77 insertions(+), 83 deletions(-) diff --git a/include/constants/species.h b/include/constants/species.h index 5a410aa5b0..9f79b83d98 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -2472,8 +2472,9 @@ #define HOENN_DEX_COUNT 212 // species flags -#define F_ULTRA_BEAST (1 << 0) -#define F_ALOLAN_FORM (1 << 1) -#define F_GALARIAN_FORM (1 << 2) +#define FLAG_ULTRA_BEAST (1 << 0) +#define FLAG_ALOLAN_FORM (1 << 1) +#define FLAG_GALARIAN_FORM (1 << 2) +#define FLAG_GENDER_DIFFERENCE (1 << 3) #endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/data.h b/include/data.h index 14de14bae6..8a6d7cef73 100644 --- a/include/data.h +++ b/include/data.h @@ -124,7 +124,6 @@ extern const u8 gEnemyMonElevation[NUM_SPECIES]; extern const union AnimCmd *const *const gMonFrontAnimsPtrTable[]; extern const struct CompressedSpriteSheet gMonFrontPicTable[]; extern const struct CompressedSpriteSheet gMonFrontPicTableFemale[]; -extern const bool8 SpeciesHasGenderDifference[NUM_SPECIES]; extern const struct Trainer gTrainers[]; extern const u8 gTrainerClassNames[][13]; diff --git a/src/data.c b/src/data.c index 2ece62412f..4b216cfd25 100644 --- a/src/data.c +++ b/src/data.c @@ -302,25 +302,6 @@ const union AnimCmd *const gAnims_MonPic[] = #define SPECIES_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species} #define SPECIES_SHINY_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species + SPECIES_SHINY_TAG} -const bool8 SpeciesHasGenderDifference[NUM_SPECIES] = -{ - [SPECIES_EEVEE] = TRUE, - [SPECIES_STARLY] = TRUE, - [SPECIES_STARAVIA] = TRUE, - [SPECIES_STARAPTOR] = TRUE, - [SPECIES_BIDOOF] = TRUE, - [SPECIES_KRICKETOT] = TRUE, - [SPECIES_KRICKETUNE] = TRUE, - [SPECIES_SHINX] = TRUE, - [SPECIES_COMBEE] = TRUE, - [SPECIES_HIPPOPOTAS] = TRUE, - [SPECIES_HIPPOWDON] = TRUE, - [SPECIES_UNFEZANT] = TRUE, - [SPECIES_FRILLISH] = TRUE, - [SPECIES_JELLICENT] = TRUE, - [SPECIES_PYROAR] = TRUE, -}; - #include "data/pokemon_graphics/front_pic_coordinates.h" #include "data/pokemon_graphics/back_pic_coordinates.h" diff --git a/src/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h index 15e406ae21..8295f12ee1 100644 --- a/src/data/pokemon/base_stats.h +++ b/src/data/pokemon/base_stats.h @@ -3790,6 +3790,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_VAPOREON] = @@ -11194,6 +11195,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_STARAVIA] = @@ -11222,6 +11224,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_STARAPTOR] = @@ -11282,6 +11285,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_BIBAREL] = @@ -11337,6 +11341,7 @@ const struct BaseStats gBaseStats[] = .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_RUN_AWAY}, .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_KRICKETUNE] = @@ -11368,6 +11373,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_SHINX] = @@ -11396,6 +11402,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_LUXIO] = @@ -11736,6 +11743,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_VESPIQUEN] = @@ -12672,6 +12680,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_HIPPOWDON] = @@ -12700,6 +12709,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_SKORUPI] = @@ -14676,6 +14686,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_BLITZLE] = @@ -16767,6 +16778,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_JELLICENT] = @@ -16795,6 +16807,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_ALOMOMOLA] = @@ -18879,6 +18892,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, }, [SPECIES_FLABEBE] = @@ -22437,7 +22451,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_BUZZWOLE] = @@ -22467,7 +22481,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_PHEROMOSA] = @@ -22496,7 +22510,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_XURKITREE] = @@ -22525,7 +22539,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_CELESTEELA] = @@ -22556,7 +22570,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_KARTANA] = @@ -22585,7 +22599,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_GUZZLORD] = @@ -22614,7 +22628,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_NECROZMA] = @@ -22729,7 +22743,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_NAGANADEL] = @@ -22758,7 +22772,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_STAKATAKA] = @@ -22787,7 +22801,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GRAY, .noFlip = TRUE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_BLACEPHALON] = @@ -22816,7 +22830,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = TRUE, - .flags = F_ULTRA_BEAST, + .flags = FLAG_ULTRA_BEAST, }, [SPECIES_ZERAORA] = @@ -26779,7 +26793,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_RATICATE_ALOLAN] = @@ -26809,7 +26823,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_RAICHU_ALOLAN] = @@ -26838,7 +26852,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_SANDSHREW_ALOLAN] = @@ -26870,7 +26884,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_SANDSLASH_ALOLAN] = @@ -26899,7 +26913,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_VULPIX_ALOLAN] = @@ -26931,7 +26945,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_NINETALES_ALOLAN] = @@ -26961,7 +26975,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_DIGLETT_ALOLAN] = @@ -26991,7 +27005,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_DUGTRIO_ALOLAN] = @@ -27021,7 +27035,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = TRUE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_MEOWTH_ALOLAN] = @@ -27051,7 +27065,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_PERSIAN_ALOLAN] = @@ -27081,7 +27095,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_GEODUDE_ALOLAN] = @@ -27113,7 +27127,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_GRAVELER_ALOLAN] = @@ -27145,7 +27159,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_GOLEM_ALOLAN] = @@ -27174,7 +27188,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_GRIMER_ALOLAN] = @@ -27206,7 +27220,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_MUK_ALOLAN] = @@ -27236,7 +27250,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_EXEGGUTOR_ALOLAN] = @@ -27265,7 +27279,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_MAROWAK_ALOLAN] = @@ -27294,7 +27308,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = F_ALOLAN_FORM, + .flags = FLAG_ALOLAN_FORM, }, [SPECIES_MEOWTH_GALARIAN] = @@ -27323,7 +27337,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_PONYTA_GALARIAN] = @@ -27352,7 +27366,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_RAPIDASH_GALARIAN] = @@ -27381,7 +27395,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_SLOWPOKE_GALARIAN] = @@ -27410,10 +27424,9 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, - [SPECIES_SLOWBRO_GALARIAN] = { .baseHP = 95, @@ -27440,7 +27453,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_FARFETCHD_GALARIAN] = @@ -27470,7 +27483,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_WEEZING_GALARIAN] = @@ -27502,7 +27515,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_MR_MIME_GALARIAN] = @@ -27531,7 +27544,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_ARTICUNO_GALARIAN] = @@ -27560,7 +27573,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_ZAPDOS_GALARIAN] = @@ -27589,7 +27602,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_MOLTRES_GALARIAN] = @@ -27618,7 +27631,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_SLOWKING_GALARIAN] = @@ -27647,7 +27660,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_CORSOLA_GALARIAN] = @@ -27676,7 +27689,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_ZIGZAGOON_GALARIAN] = @@ -27705,7 +27718,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_LINOONE_GALARIAN] = @@ -27734,7 +27747,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_DARUMAKA_GALARIAN] = @@ -27759,7 +27772,7 @@ const struct BaseStats gBaseStats[] = .abilities = {ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS}, .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_DARMANITAN_GALARIAN] = @@ -27788,7 +27801,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_YAMASK_GALARIAN] = @@ -27817,7 +27830,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_STUNFISK_GALARIAN] = @@ -27846,7 +27859,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_PIKACHU_COSPLAY] = @@ -29976,7 +29989,7 @@ const struct BaseStats gBaseStats[] = #endif .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = F_GALARIAN_FORM, + .flags = FLAG_GALARIAN_FORM, }, [SPECIES_DEERLING_SUMMER] = diff --git a/src/decompress.c b/src/decompress.c index c20b6404cf..028679a5b4 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -70,7 +70,7 @@ void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffe void DecompressPicFromTableGender(void* buffer, s32 species, u32 personality) { - if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) DecompressPicFromTable(&gMonFrontPicTableFemale[species], buffer, species); else DecompressPicFromTable(&gMonFrontPicTable[species], buffer, species); @@ -101,7 +101,7 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 } else if (species > NUM_SPECIES) // is species unknown? draw the ? icon LZ77UnCompWram(gMonFrontPicTable[0].data, dest); - else if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + else if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) { if (isFrontPic) LZ77UnCompWram(gMonFrontPicTableFemale[species].data, dest); diff --git a/src/pokemon.c b/src/pokemon.c index 96ea4798bb..372c2ac6f9 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -7513,14 +7513,14 @@ const u32 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 p shinyValue = GET_SHINY_VALUE(otId, personality); if (shinyValue < SHINY_ODDS) { - if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) return gMonShinyPaletteTableFemale[species].data; else return gMonShinyPaletteTable[species].data; } else { - if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) return gMonPaletteTableFemale[species].data; else return gMonPaletteTable[species].data; @@ -7542,14 +7542,14 @@ const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u shinyValue = GET_SHINY_VALUE(otId, personality); if (shinyValue < SHINY_ODDS) { - if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) return &gMonShinyPaletteTableFemale[species]; else return &gMonShinyPaletteTable[species]; } else { - if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) return &gMonPaletteTableFemale[species]; else return &gMonPaletteTable[species]; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index b4f1d03a26..7161e64ded 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -2581,7 +2581,7 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u if (species > NUM_SPECIES) iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG; - else if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + else if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndicesFemale[species]; spriteId = CreateMonIconSprite(&iconTemplate, x, y, subpriority); @@ -2758,7 +2758,7 @@ void SpriteCB_MonIcon(struct Sprite *sprite) const u8* GetMonIconTiles(u16 species, u32 personality) { const u8* iconSprite = gMonIconTable[species]; - if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) { iconSprite = gMonIconTableFemale[species]; } diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 1a3e8f0fea..cb64c2254e 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -5120,7 +5120,7 @@ static u16 TryLoadMonIconTiles(u16 species, u32 personality) u16 i, offset; // Treat female mons as a seperate species as they may have a different icon than males - if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) species |= 0x8000; // 1 << 15 // Search icon list for this species @@ -5187,7 +5187,7 @@ static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s struct SpriteTemplate template = sSpriteTemplate_MonIcon; species = GetIconSpecies(species, personality); - if (SpeciesHasGenderDifference[species] && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) { template.paletteTag = PALTAG_MON_ICON_0 + gMonIconPaletteIndicesFemale[species]; } From d328c2e006d0c31905384173eb48a53eeeb58fd7 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sat, 1 Jan 2022 21:07:49 -0300 Subject: [PATCH 81/95] Fixed references by debug menu. --- src/decompress.c | 2 +- src/pokemon_debug.c | 18 +++++++++--------- src/pokemon_icon.c | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/decompress.c b/src/decompress.c index 028679a5b4..a1f92da2c1 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -128,7 +128,7 @@ static void LoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, vo } else if (species > NUM_SPECIES) // is species unknown? draw the ? icon LZ77UnCompWram(gMonFrontPicTable[0].data, dest); - else if (SpeciesHasGenderDifference[species] && isFemale) + else if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) { if (isFrontPic) LZ77UnCompWram(gMonFrontPicTableFemale[species].data, dest); diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index d43120e6a5..5c1cf94908 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -417,21 +417,21 @@ static void PrintInstructionsOnWindow(struct PokemonDebugMenu *data) FillWindowPixelBuffer(WIN_INSTRUCTIONS, 0x11); if (data->currentSubmenu == 0) { - if (SpeciesHasGenderDifference[species]) + if (gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsGender, x, 0, 0, NULL); else AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructions, x, 0, 0, NULL); } else if (data->currentSubmenu == 1) { - if (SpeciesHasGenderDifference[species]) + if (gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsSubmenuOneGender, x, 0, 0, NULL); else AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsSubmenuOne, x, 0, 0, NULL); } else if (data->currentSubmenu == 2) { - if (SpeciesHasGenderDifference[species]) + if (gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsSubmenuTwoGender, x, 0, 0, NULL); else AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsSubmenuTwo, x, 0, 0, NULL); @@ -485,7 +485,7 @@ static void PrintDigitChars(struct PokemonDebugMenu *data) text[i++] = CHAR_SPACE; text[i++] = CHAR_HYPHEN; - if (SpeciesHasGenderDifference[species]) + if (gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) { if (data->isFemale) text[i++] = CHAR_FEMALE; @@ -688,14 +688,14 @@ static const struct CompressedSpritePalette *GetMonSpritePalStructCustom(u16 spe { if (isShiny) { - if (SpeciesHasGenderDifference[species] && isFemale) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) return &gMonShinyPaletteTableFemale[species]; else return &gMonShinyPaletteTable[species]; } else { - if (SpeciesHasGenderDifference[species] && isFemale) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) return &gMonPaletteTableFemale[species]; else return &gMonPaletteTable[species]; @@ -714,14 +714,14 @@ static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bo if (isShiny) { - if (SpeciesHasGenderDifference[species] && isFemale) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) lzPaletteData = gMonShinyPaletteTableFemale[species].data; else lzPaletteData = gMonShinyPaletteTable[species].data; } else { - if (SpeciesHasGenderDifference[species] && isFemale) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) lzPaletteData = gMonPaletteTableFemale[species].data; else lzPaletteData = gMonPaletteTable[species].data; @@ -1472,7 +1472,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) ReloadPokemonSprites(data); } - if (JOY_NEW(SELECT_BUTTON) && SpeciesHasGenderDifference[data->currentmonId]) + if (JOY_NEW(SELECT_BUTTON) && (gBaseStats[data->currentmonId].flags & FLAG_GENDER_DIFFERENCE)) { data->isFemale = !data->isFemale; PrintDigitChars(data); diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 7161e64ded..666330975e 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -2607,7 +2607,7 @@ u8 CreateMonIconCustom(u16 species, void (*callback)(struct Sprite *), s16 x, s1 if (species > NUM_SPECIES) iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG; - else if (SpeciesHasGenderDifference[species] && isFemale) + else if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndicesFemale[species]; spriteId = CreateMonIconSprite(&iconTemplate, x, y, subpriority); @@ -2768,7 +2768,7 @@ const u8* GetMonIconTiles(u16 species, u32 personality) static const u8* GetMonIconTilesCustom(u16 species, bool8 isFemale) { const u8* iconSprite = gMonIconTable[species]; - if (SpeciesHasGenderDifference[species] && isFemale) + if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) { iconSprite = gMonIconTableFemale[species]; } From 7f34b03309c205a47f5a03b9339f5363486b9d78 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Sun, 2 Jan 2022 14:34:57 -0300 Subject: [PATCH 82/95] The cries from Chespin to Calyrex are now inserted as compressed cries --- sound/cry_tables.inc | 1688 ++++++++--------- sound/direct_sound_data.inc | 650 +++---- .../{uncomp_aegislash.aif => aegislash.aif} | Bin .../{uncomp_alcremie.aif => alcremie.aif} | Bin .../cries/{uncomp_amaura.aif => amaura.aif} | Bin .../{uncomp_appletun.aif => appletun.aif} | Bin .../cries/{uncomp_applin.aif => applin.aif} | Bin .../{uncomp_araquanid.aif => araquanid.aif} | Bin .../{uncomp_arctovish.aif => arctovish.aif} | Bin .../{uncomp_arctozolt.aif => arctozolt.aif} | Bin .../{uncomp_aromatisse.aif => aromatisse.aif} | Bin .../{uncomp_arrokuda.aif => arrokuda.aif} | Bin .../cries/{uncomp_aurorus.aif => aurorus.aif} | Bin .../cries/{uncomp_avalugg.aif => avalugg.aif} | Bin .../{uncomp_barbaracle.aif => barbaracle.aif} | Bin ...uncomp_barraskewda.aif => barraskewda.aif} | Bin .../{uncomp_bergmite.aif => bergmite.aif} | Bin .../cries/{uncomp_bewear.aif => bewear.aif} | Bin .../cries/{uncomp_binacle.aif => binacle.aif} | Bin ...uncomp_blacephalon.aif => blacephalon.aif} | Bin .../cries/{uncomp_blipbug.aif => blipbug.aif} | Bin .../cries/{uncomp_boltund.aif => boltund.aif} | Bin .../{uncomp_bounsweet.aif => bounsweet.aif} | Bin .../cries/{uncomp_braixen.aif => braixen.aif} | Bin .../cries/{uncomp_brionne.aif => brionne.aif} | Bin .../cries/{uncomp_bruxish.aif => bruxish.aif} | Bin .../{uncomp_bunnelby.aif => bunnelby.aif} | Bin .../{uncomp_buzzwole.aif => buzzwole.aif} | Bin .../cries/{uncomp_calyrex.aif => calyrex.aif} | Bin ...ex_ice_rider.aif => calyrex_ice_rider.aif} | Bin ...dow_rider.aif => calyrex_shadow_rider.aif} | Bin .../cries/{uncomp_carbink.aif => carbink.aif} | Bin .../cries/{uncomp_carkol.aif => carkol.aif} | Bin .../{uncomp_celesteela.aif => celesteela.aif} | Bin ...uncomp_centiskorch.aif => centiskorch.aif} | Bin .../{uncomp_charjabug.aif => charjabug.aif} | Bin .../{uncomp_chesnaught.aif => chesnaught.aif} | Bin .../cries/{uncomp_chespin.aif => chespin.aif} | Bin .../cries/{uncomp_chewtle.aif => chewtle.aif} | Bin .../{uncomp_cinderace.aif => cinderace.aif} | Bin .../{uncomp_clauncher.aif => clauncher.aif} | Bin .../{uncomp_clawitzer.aif => clawitzer.aif} | Bin .../{uncomp_clobbopus.aif => clobbopus.aif} | Bin .../{uncomp_coalossal.aif => coalossal.aif} | Bin .../cries/{uncomp_comfey.aif => comfey.aif} | Bin .../{uncomp_copperajah.aif => copperajah.aif} | Bin ...uncomp_corviknight.aif => corviknight.aif} | Bin ...uncomp_corvisquire.aif => corvisquire.aif} | Bin .../cries/{uncomp_cosmoem.aif => cosmoem.aif} | Bin .../cries/{uncomp_cosmog.aif => cosmog.aif} | Bin sound/direct_sound_samples/cries/cottonee.aif | Bin 11132 -> 9330 bytes ...comp_crabominable.aif => crabominable.aif} | Bin .../{uncomp_crabrawler.aif => crabrawler.aif} | Bin .../{uncomp_cramorant.aif => cramorant.aif} | Bin .../cries/{uncomp_cufant.aif => cufant.aif} | Bin .../cries/{uncomp_cursola.aif => cursola.aif} | Bin .../{uncomp_cutiefly.aif => cutiefly.aif} | Bin .../cries/{uncomp_dartrix.aif => dartrix.aif} | Bin .../{uncomp_decidueye.aif => decidueye.aif} | Bin .../cries/{uncomp_dedenne.aif => dedenne.aif} | Bin .../cries/{uncomp_delphox.aif => delphox.aif} | Bin .../{uncomp_dewpider.aif => dewpider.aif} | Bin .../{uncomp_dhelmise.aif => dhelmise.aif} | Bin .../cries/{uncomp_diancie.aif => diancie.aif} | Bin .../{uncomp_diggersby.aif => diggersby.aif} | Bin .../cries/{uncomp_dottler.aif => dottler.aif} | Bin .../{uncomp_doublade.aif => doublade.aif} | Bin .../{uncomp_dracovish.aif => dracovish.aif} | Bin .../{uncomp_dracozolt.aif => dracozolt.aif} | Bin .../{uncomp_dragalge.aif => dragalge.aif} | Bin .../{uncomp_dragapult.aif => dragapult.aif} | Bin .../{uncomp_drakloak.aif => drakloak.aif} | Bin .../cries/{uncomp_drampa.aif => drampa.aif} | Bin .../cries/{uncomp_drednaw.aif => drednaw.aif} | Bin .../cries/{uncomp_dreepy.aif => dreepy.aif} | Bin .../{uncomp_drizzile.aif => drizzile.aif} | Bin .../cries/{uncomp_dubwool.aif => dubwool.aif} | Bin .../{uncomp_duraludon.aif => duraludon.aif} | Bin .../cries/{uncomp_eiscue.aif => eiscue.aif} | Bin ...e_noice_face.aif => eiscue_noice_face.aif} | Bin .../{uncomp_eldegoss.aif => eldegoss.aif} | Bin sound/direct_sound_samples/cries/elgyem.aif | Bin 17924 -> 10922 bytes .../cries/{uncomp_espurr.aif => espurr.aif} | Bin .../{uncomp_eternatus.aif => eternatus.aif} | Bin ..._eternamax.aif => eternatus_eternamax.aif} | Bin .../cries/{uncomp_falinks.aif => falinks.aif} | Bin .../{uncomp_fennekin.aif => fennekin.aif} | Bin .../cries/{uncomp_flabebe.aif => flabebe.aif} | Bin .../cries/{uncomp_flapple.aif => flapple.aif} | Bin ...uncomp_fletchinder.aif => fletchinder.aif} | Bin .../{uncomp_fletchling.aif => fletchling.aif} | Bin .../cries/{uncomp_floette.aif => floette.aif} | Bin ..._flower.aif => floette_eternal_flower.aif} | Bin .../cries/{uncomp_florges.aif => florges.aif} | Bin .../{uncomp_fomantis.aif => fomantis.aif} | Bin sound/direct_sound_samples/cries/foongus.aif | Bin 12460 -> 7608 bytes .../cries/{uncomp_froakie.aif => froakie.aif} | Bin .../{uncomp_frogadier.aif => frogadier.aif} | Bin .../{uncomp_frosmoth.aif => frosmoth.aif} | Bin .../cries/{uncomp_furfrou.aif => furfrou.aif} | Bin .../{uncomp_glastrier.aif => glastrier.aif} | Bin .../cries/{uncomp_gogoat.aif => gogoat.aif} | Bin .../{uncomp_golisopod.aif => golisopod.aif} | Bin .../cries/{uncomp_goodra.aif => goodra.aif} | Bin .../cries/{uncomp_goomy.aif => goomy.aif} | Bin .../{uncomp_gossifleur.aif => gossifleur.aif} | Bin .../{uncomp_gourgeist.aif => gourgeist.aif} | Bin ...ourgeist_super.aif => gourgeist_super.aif} | Bin .../{uncomp_grapploct.aif => grapploct.aif} | Bin .../{uncomp_greedent.aif => greedent.aif} | Bin .../{uncomp_greninja.aif => greninja.aif} | Bin .../{uncomp_grimmsnarl.aif => grimmsnarl.aif} | Bin .../cries/{uncomp_grookey.aif => grookey.aif} | Bin .../cries/{uncomp_grubbin.aif => grubbin.aif} | Bin .../{uncomp_gumshoos.aif => gumshoos.aif} | Bin .../{uncomp_guzzlord.aif => guzzlord.aif} | Bin .../{uncomp_hakamo_o.aif => hakamo_o.aif} | Bin .../cries/{uncomp_hatenna.aif => hatenna.aif} | Bin .../{uncomp_hatterene.aif => hatterene.aif} | Bin .../cries/{uncomp_hattrem.aif => hattrem.aif} | Bin .../{uncomp_hawlucha.aif => hawlucha.aif} | Bin .../{uncomp_heliolisk.aif => heliolisk.aif} | Bin .../{uncomp_helioptile.aif => helioptile.aif} | Bin .../cries/{uncomp_honedge.aif => honedge.aif} | Bin .../cries/{uncomp_hoopa.aif => hoopa.aif} | Bin ...mp_hoopa_unbound.aif => hoopa_unbound.aif} | Bin .../{uncomp_impidimp.aif => impidimp.aif} | Bin .../{uncomp_incineroar.aif => incineroar.aif} | Bin .../{uncomp_indeedee.aif => indeedee.aif} | Bin ...ndeedee_female.aif => indeedee_female.aif} | Bin .../cries/{uncomp_inkay.aif => inkay.aif} | Bin .../{uncomp_inteleon.aif => inteleon.aif} | Bin .../{uncomp_jangmo_o.aif => jangmo_o.aif} | Bin .../cries/{uncomp_kartana.aif => kartana.aif} | Bin sound/direct_sound_samples/cries/keldeo.aif | Bin 21584 -> 13144 bytes .../cries/{uncomp_klefki.aif => klefki.aif} | Bin .../cries/{uncomp_komala.aif => komala.aif} | Bin .../cries/{uncomp_kommo_o.aif => kommo_o.aif} | Bin .../cries/{uncomp_kubfu.aif => kubfu.aif} | Bin .../cries/{uncomp_litleo.aif => litleo.aif} | Bin .../cries/{uncomp_litten.aif => litten.aif} | Bin .../cries/{uncomp_lunala.aif => lunala.aif} | Bin .../{uncomp_lurantis.aif => lurantis.aif} | Bin .../{uncomp_lycanroc.aif => lycanroc.aif} | Bin ...mp_lycanroc_dusk.aif => lycanroc_dusk.aif} | Bin ...roc_midnight.aif => lycanroc_midnight.aif} | Bin .../{uncomp_magearna.aif => magearna.aif} | Bin .../cries/{uncomp_malamar.aif => malamar.aif} | Bin .../{uncomp_mareanie.aif => mareanie.aif} | Bin .../{uncomp_marshadow.aif => marshadow.aif} | Bin ..._mega_abomasnow.aif => mega_abomasnow.aif} | Bin .../{uncomp_mega_absol.aif => mega_absol.aif} | Bin ...ega_aerodactyl.aif => mega_aerodactyl.aif} | Bin ...uncomp_mega_aggron.aif => mega_aggron.aif} | Bin ...mp_mega_alakazam.aif => mega_alakazam.aif} | Bin ...comp_mega_altaria.aif => mega_altaria.aif} | Bin ...mp_mega_ampharos.aif => mega_ampharos.aif} | Bin ...uncomp_mega_audino.aif => mega_audino.aif} | Bin ...comp_mega_banette.aif => mega_banette.aif} | Bin ...mp_mega_beedrill.aif => mega_beedrill.aif} | Bin ..._mega_blastoise.aif => mega_blastoise.aif} | Bin ...mp_mega_blaziken.aif => mega_blaziken.aif} | Bin ...mp_mega_camerupt.aif => mega_camerupt.aif} | Bin ...a_charizard_x.aif => mega_charizard_x.aif} | Bin ...a_charizard_y.aif => mega_charizard_y.aif} | Bin ...comp_mega_diancie.aif => mega_diancie.aif} | Bin ...comp_mega_gallade.aif => mega_gallade.aif} | Bin ...mp_mega_garchomp.aif => mega_garchomp.aif} | Bin ..._mega_gardevoir.aif => mega_gardevoir.aif} | Bin ...uncomp_mega_gengar.aif => mega_gengar.aif} | Bin ...uncomp_mega_glalie.aif => mega_glalie.aif} | Bin ...mp_mega_gyarados.aif => mega_gyarados.aif} | Bin ..._mega_heracross.aif => mega_heracross.aif} | Bin ...mp_mega_houndoom.aif => mega_houndoom.aif} | Bin ...ega_kangaskhan.aif => mega_kangaskhan.aif} | Bin ...uncomp_mega_latias.aif => mega_latias.aif} | Bin ...uncomp_mega_latios.aif => mega_latios.aif} | Bin ...comp_mega_lopunny.aif => mega_lopunny.aif} | Bin ...comp_mega_lucario.aif => mega_lucario.aif} | Bin ..._mega_manectric.aif => mega_manectric.aif} | Bin ...uncomp_mega_mawile.aif => mega_mawile.aif} | Bin ...mp_mega_medicham.aif => mega_medicham.aif} | Bin ..._mega_metagross.aif => mega_metagross.aif} | Bin ...mp_mega_mewtwo_x.aif => mega_mewtwo_x.aif} | Bin ...mp_mega_mewtwo_y.aif => mega_mewtwo_y.aif} | Bin ...comp_mega_pidgeot.aif => mega_pidgeot.aif} | Bin ...uncomp_mega_pinsir.aif => mega_pinsir.aif} | Bin ...mp_mega_rayquaza.aif => mega_rayquaza.aif} | Bin ...comp_mega_sableye.aif => mega_sableye.aif} | Bin ..._mega_salamence.aif => mega_salamence.aif} | Bin ...mp_mega_sceptile.aif => mega_sceptile.aif} | Bin ...uncomp_mega_scizor.aif => mega_scizor.aif} | Bin ...mp_mega_sharpedo.aif => mega_sharpedo.aif} | Bin ...comp_mega_slowbro.aif => mega_slowbro.aif} | Bin ...comp_mega_steelix.aif => mega_steelix.aif} | Bin ...mp_mega_swampert.aif => mega_swampert.aif} | Bin ..._mega_tyranitar.aif => mega_tyranitar.aif} | Bin ...mp_mega_venusaur.aif => mega_venusaur.aif} | Bin .../{uncomp_melmetal.aif => melmetal.aif} | Bin .../cries/{uncomp_meltan.aif => meltan.aif} | Bin .../{uncomp_meowstic.aif => meowstic.aif} | Bin .../cries/{uncomp_milcery.aif => milcery.aif} | Bin .../cries/{uncomp_mimikyu.aif => mimikyu.aif} | Bin .../cries/{uncomp_minior.aif => minior.aif} | Bin .../{uncomp_morelull.aif => morelull.aif} | Bin .../cries/{uncomp_morgrem.aif => morgrem.aif} | Bin .../cries/{uncomp_morpeko.aif => morpeko.aif} | Bin ..._morpeko_hangry.aif => morpeko_hangry.aif} | Bin .../cries/{uncomp_mr_rime.aif => mr_rime.aif} | Bin .../cries/{uncomp_mudbray.aif => mudbray.aif} | Bin .../{uncomp_mudsdale.aif => mudsdale.aif} | Bin .../{uncomp_naganadel.aif => naganadel.aif} | Bin .../{uncomp_necrozma.aif => necrozma.aif} | Bin ...dawn_wings.aif => necrozma_dawn_wings.aif} | Bin ...a_dusk_mane.aif => necrozma_dusk_mane.aif} | Bin ..._necrozma_ultra.aif => necrozma_ultra.aif} | Bin .../cries/{uncomp_nickit.aif => nickit.aif} | Bin .../{uncomp_nihilego.aif => nihilego.aif} | Bin .../cries/{uncomp_noibat.aif => noibat.aif} | Bin .../cries/{uncomp_noivern.aif => noivern.aif} | Bin .../{uncomp_obstagoon.aif => obstagoon.aif} | Bin .../{uncomp_oranguru.aif => oranguru.aif} | Bin .../{uncomp_orbeetle.aif => orbeetle.aif} | Bin .../{uncomp_oricorio.aif => oricorio.aif} | Bin ...comp_oricorio_pau.aif => oricorio_pau.aif} | Bin ...corio_pom_pom.aif => oricorio_pom_pom.aif} | Bin ..._oricorio_sensu.aif => oricorio_sensu.aif} | Bin .../{uncomp_palossand.aif => palossand.aif} | Bin .../cries/{uncomp_pancham.aif => pancham.aif} | Bin .../cries/{uncomp_pangoro.aif => pangoro.aif} | Bin .../{uncomp_passimian.aif => passimian.aif} | Bin .../{uncomp_perrserker.aif => perrserker.aif} | Bin .../{uncomp_phantump.aif => phantump.aif} | Bin .../{uncomp_pheromosa.aif => pheromosa.aif} | Bin .../cries/{uncomp_pikipek.aif => pikipek.aif} | Bin .../{uncomp_pincurchin.aif => pincurchin.aif} | Bin .../cries/{uncomp_poipole.aif => poipole.aif} | Bin ...uncomp_polteageist.aif => polteageist.aif} | Bin .../cries/{uncomp_popplio.aif => popplio.aif} | Bin ..._primal_groudon.aif => primal_groudon.aif} | Bin ...mp_primal_kyogre.aif => primal_kyogre.aif} | Bin .../{uncomp_primarina.aif => primarina.aif} | Bin .../{uncomp_pumpkaboo.aif => pumpkaboo.aif} | Bin ...umpkaboo_super.aif => pumpkaboo_super.aif} | Bin .../cries/{uncomp_pyroar.aif => pyroar.aif} | Bin .../{uncomp_pyukumuku.aif => pyukumuku.aif} | Bin .../{uncomp_quilladin.aif => quilladin.aif} | Bin .../cries/{uncomp_raboot.aif => raboot.aif} | Bin .../{uncomp_regidrago.aif => regidrago.aif} | Bin .../{uncomp_regieleki.aif => regieleki.aif} | Bin .../{uncomp_ribombee.aif => ribombee.aif} | Bin .../{uncomp_rillaboom.aif => rillaboom.aif} | Bin .../{uncomp_rockruff.aif => rockruff.aif} | Bin .../{uncomp_rolycoly.aif => rolycoly.aif} | Bin .../{uncomp_rookidee.aif => rookidee.aif} | Bin .../cries/{uncomp_rowlet.aif => rowlet.aif} | Bin .../{uncomp_runerigus.aif => runerigus.aif} | Bin .../{uncomp_salandit.aif => salandit.aif} | Bin .../{uncomp_salazzle.aif => salazzle.aif} | Bin .../{uncomp_sandaconda.aif => sandaconda.aif} | Bin .../{uncomp_sandygast.aif => sandygast.aif} | Bin .../{uncomp_scatterbug.aif => scatterbug.aif} | Bin .../{uncomp_scorbunny.aif => scorbunny.aif} | Bin sound/direct_sound_samples/cries/shelmet.aif | Bin 22812 -> 13888 bytes .../{uncomp_shiinotic.aif => shiinotic.aif} | Bin .../{uncomp_silicobra.aif => silicobra.aif} | Bin .../{uncomp_silvally.aif => silvally.aif} | Bin .../{uncomp_sinistea.aif => sinistea.aif} | Bin .../{uncomp_sirfetchd.aif => sirfetchd.aif} | Bin .../{uncomp_sizzlipede.aif => sizzlipede.aif} | Bin .../cries/{uncomp_skiddo.aif => skiddo.aif} | Bin .../cries/{uncomp_skrelp.aif => skrelp.aif} | Bin .../cries/{uncomp_skwovet.aif => skwovet.aif} | Bin .../cries/{uncomp_sliggoo.aif => sliggoo.aif} | Bin ...oke_galarian.aif => slowpoke_galarian.aif} | Bin .../{uncomp_slurpuff.aif => slurpuff.aif} | Bin .../cries/{uncomp_snom.aif => snom.aif} | Bin .../cries/{uncomp_sobble.aif => sobble.aif} | Bin .../{uncomp_solgaleo.aif => solgaleo.aif} | Bin .../{uncomp_spectrier.aif => spectrier.aif} | Bin .../cries/{uncomp_spewpa.aif => spewpa.aif} | Bin .../{uncomp_spritzee.aif => spritzee.aif} | Bin .../{uncomp_stakataka.aif => stakataka.aif} | Bin .../cries/{uncomp_steenee.aif => steenee.aif} | Bin ...uncomp_stonjourner.aif => stonjourner.aif} | Bin .../cries/{uncomp_stufful.aif => stufful.aif} | Bin .../cries/{uncomp_swirlix.aif => swirlix.aif} | Bin sound/direct_sound_samples/cries/swoobat.aif | Bin 21628 -> 18108 bytes .../cries/{uncomp_sylveon.aif => sylveon.aif} | Bin .../{uncomp_talonflame.aif => talonflame.aif} | Bin .../{uncomp_tapu_bulu.aif => tapu_bulu.aif} | Bin .../{uncomp_tapu_fini.aif => tapu_fini.aif} | Bin .../{uncomp_tapu_koko.aif => tapu_koko.aif} | Bin .../{uncomp_tapu_lele.aif => tapu_lele.aif} | Bin .../cries/{uncomp_thievul.aif => thievul.aif} | Bin .../{uncomp_thwackey.aif => thwackey.aif} | Bin .../{uncomp_togedemaru.aif => togedemaru.aif} | Bin .../{uncomp_torracat.aif => torracat.aif} | Bin .../{uncomp_toucannon.aif => toucannon.aif} | Bin .../cries/{uncomp_toxapex.aif => toxapex.aif} | Bin .../cries/{uncomp_toxel.aif => toxel.aif} | Bin .../{uncomp_toxtricity.aif => toxtricity.aif} | Bin ...ity_low_key.aif => toxtricity_low_key.aif} | Bin .../{uncomp_trevenant.aif => trevenant.aif} | Bin .../{uncomp_trumbeak.aif => trumbeak.aif} | Bin .../{uncomp_tsareena.aif => tsareena.aif} | Bin .../{uncomp_turtonator.aif => turtonator.aif} | Bin .../{uncomp_type_null.aif => type_null.aif} | Bin .../{uncomp_tyrantrum.aif => tyrantrum.aif} | Bin .../cries/{uncomp_tyrunt.aif => tyrunt.aif} | Bin .../cries/uncomp_cottonee.aif | Bin 9330 -> 0 bytes .../cries/uncomp_elgyem.aif | Bin 10922 -> 0 bytes .../cries/uncomp_foongus.aif | Bin 7608 -> 0 bytes .../cries/uncomp_keldeo.aif | Bin 13144 -> 0 bytes .../cries/uncomp_shelmet.aif | Bin 13888 -> 0 bytes .../cries/uncomp_swoobat.aif | Bin 18108 -> 0 bytes .../cries/uncomp_yamask.aif | Bin 13782 -> 0 bytes .../cries/{uncomp_urshifu.aif => urshifu.aif} | Bin ...yle.aif => urshifu_rapid_strike_style.aif} | Bin .../{uncomp_vikavolt.aif => vikavolt.aif} | Bin .../{uncomp_vivillon.aif => vivillon.aif} | Bin .../{uncomp_volcanion.aif => volcanion.aif} | Bin .../cries/{uncomp_wimpod.aif => wimpod.aif} | Bin .../{uncomp_wishiwashi.aif => wishiwashi.aif} | Bin ...washi_school.aif => wishiwashi_school.aif} | Bin .../cries/{uncomp_wooloo.aif => wooloo.aif} | Bin .../cries/{uncomp_xerneas.aif => xerneas.aif} | Bin .../{uncomp_xurkitree.aif => xurkitree.aif} | Bin sound/direct_sound_samples/cries/yamask.aif | Bin 16456 -> 13782 bytes .../cries/{uncomp_yamper.aif => yamper.aif} | Bin .../cries/{uncomp_yungoos.aif => yungoos.aif} | Bin .../cries/{uncomp_yveltal.aif => yveltal.aif} | Bin .../cries/{uncomp_zacian.aif => zacian.aif} | Bin ...ned_sword.aif => zacian_crowned_sword.aif} | Bin .../{uncomp_zamazenta.aif => zamazenta.aif} | Bin ...hield.aif => zamazenta_crowned_shield.aif} | Bin .../cries/{uncomp_zarude.aif => zarude.aif} | Bin .../cries/{uncomp_zeraora.aif => zeraora.aif} | Bin .../cries/{uncomp_zygarde.aif => zygarde.aif} | Bin .../{uncomp_zygarde_10.aif => zygarde_10.aif} | Bin ...arde_complete.aif => zygarde_complete.aif} | Bin 341 files changed, 1169 insertions(+), 1169 deletions(-) rename sound/direct_sound_samples/cries/{uncomp_aegislash.aif => aegislash.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_alcremie.aif => alcremie.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_amaura.aif => amaura.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_appletun.aif => appletun.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_applin.aif => applin.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_araquanid.aif => araquanid.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_arctovish.aif => arctovish.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_arctozolt.aif => arctozolt.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_aromatisse.aif => aromatisse.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_arrokuda.aif => arrokuda.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_aurorus.aif => aurorus.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_avalugg.aif => avalugg.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_barbaracle.aif => barbaracle.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_barraskewda.aif => barraskewda.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_bergmite.aif => bergmite.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_bewear.aif => bewear.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_binacle.aif => binacle.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_blacephalon.aif => blacephalon.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_blipbug.aif => blipbug.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_boltund.aif => boltund.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_bounsweet.aif => bounsweet.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_braixen.aif => braixen.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_brionne.aif => brionne.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_bruxish.aif => bruxish.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_bunnelby.aif => bunnelby.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_buzzwole.aif => buzzwole.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_calyrex.aif => calyrex.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_calyrex_ice_rider.aif => calyrex_ice_rider.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_calyrex_shadow_rider.aif => calyrex_shadow_rider.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_carbink.aif => carbink.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_carkol.aif => carkol.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_celesteela.aif => celesteela.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_centiskorch.aif => centiskorch.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_charjabug.aif => charjabug.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_chesnaught.aif => chesnaught.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_chespin.aif => chespin.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_chewtle.aif => chewtle.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_cinderace.aif => cinderace.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_clauncher.aif => clauncher.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_clawitzer.aif => clawitzer.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_clobbopus.aif => clobbopus.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_coalossal.aif => coalossal.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_comfey.aif => comfey.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_copperajah.aif => copperajah.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_corviknight.aif => corviknight.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_corvisquire.aif => corvisquire.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_cosmoem.aif => cosmoem.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_cosmog.aif => cosmog.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_crabominable.aif => crabominable.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_crabrawler.aif => crabrawler.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_cramorant.aif => cramorant.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_cufant.aif => cufant.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_cursola.aif => cursola.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_cutiefly.aif => cutiefly.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dartrix.aif => dartrix.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_decidueye.aif => decidueye.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dedenne.aif => dedenne.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_delphox.aif => delphox.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dewpider.aif => dewpider.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dhelmise.aif => dhelmise.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_diancie.aif => diancie.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_diggersby.aif => diggersby.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dottler.aif => dottler.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_doublade.aif => doublade.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dracovish.aif => dracovish.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dracozolt.aif => dracozolt.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dragalge.aif => dragalge.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dragapult.aif => dragapult.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_drakloak.aif => drakloak.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_drampa.aif => drampa.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_drednaw.aif => drednaw.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dreepy.aif => dreepy.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_drizzile.aif => drizzile.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_dubwool.aif => dubwool.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_duraludon.aif => duraludon.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_eiscue.aif => eiscue.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_eiscue_noice_face.aif => eiscue_noice_face.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_eldegoss.aif => eldegoss.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_espurr.aif => espurr.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_eternatus.aif => eternatus.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_eternatus_eternamax.aif => eternatus_eternamax.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_falinks.aif => falinks.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_fennekin.aif => fennekin.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_flabebe.aif => flabebe.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_flapple.aif => flapple.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_fletchinder.aif => fletchinder.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_fletchling.aif => fletchling.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_floette.aif => floette.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_floette_eternal_flower.aif => floette_eternal_flower.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_florges.aif => florges.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_fomantis.aif => fomantis.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_froakie.aif => froakie.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_frogadier.aif => frogadier.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_frosmoth.aif => frosmoth.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_furfrou.aif => furfrou.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_glastrier.aif => glastrier.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_gogoat.aif => gogoat.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_golisopod.aif => golisopod.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_goodra.aif => goodra.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_goomy.aif => goomy.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_gossifleur.aif => gossifleur.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_gourgeist.aif => gourgeist.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_gourgeist_super.aif => gourgeist_super.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_grapploct.aif => grapploct.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_greedent.aif => greedent.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_greninja.aif => greninja.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_grimmsnarl.aif => grimmsnarl.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_grookey.aif => grookey.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_grubbin.aif => grubbin.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_gumshoos.aif => gumshoos.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_guzzlord.aif => guzzlord.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_hakamo_o.aif => hakamo_o.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_hatenna.aif => hatenna.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_hatterene.aif => hatterene.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_hattrem.aif => hattrem.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_hawlucha.aif => hawlucha.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_heliolisk.aif => heliolisk.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_helioptile.aif => helioptile.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_honedge.aif => honedge.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_hoopa.aif => hoopa.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_hoopa_unbound.aif => hoopa_unbound.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_impidimp.aif => impidimp.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_incineroar.aif => incineroar.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_indeedee.aif => indeedee.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_indeedee_female.aif => indeedee_female.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_inkay.aif => inkay.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_inteleon.aif => inteleon.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_jangmo_o.aif => jangmo_o.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_kartana.aif => kartana.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_klefki.aif => klefki.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_komala.aif => komala.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_kommo_o.aif => kommo_o.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_kubfu.aif => kubfu.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_litleo.aif => litleo.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_litten.aif => litten.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_lunala.aif => lunala.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_lurantis.aif => lurantis.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_lycanroc.aif => lycanroc.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_lycanroc_dusk.aif => lycanroc_dusk.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_lycanroc_midnight.aif => lycanroc_midnight.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_magearna.aif => magearna.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_malamar.aif => malamar.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mareanie.aif => mareanie.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_marshadow.aif => marshadow.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_abomasnow.aif => mega_abomasnow.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_absol.aif => mega_absol.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_aerodactyl.aif => mega_aerodactyl.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_aggron.aif => mega_aggron.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_alakazam.aif => mega_alakazam.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_altaria.aif => mega_altaria.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_ampharos.aif => mega_ampharos.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_audino.aif => mega_audino.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_banette.aif => mega_banette.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_beedrill.aif => mega_beedrill.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_blastoise.aif => mega_blastoise.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_blaziken.aif => mega_blaziken.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_camerupt.aif => mega_camerupt.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_charizard_x.aif => mega_charizard_x.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_charizard_y.aif => mega_charizard_y.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_diancie.aif => mega_diancie.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_gallade.aif => mega_gallade.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_garchomp.aif => mega_garchomp.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_gardevoir.aif => mega_gardevoir.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_gengar.aif => mega_gengar.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_glalie.aif => mega_glalie.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_gyarados.aif => mega_gyarados.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_heracross.aif => mega_heracross.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_houndoom.aif => mega_houndoom.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_kangaskhan.aif => mega_kangaskhan.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_latias.aif => mega_latias.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_latios.aif => mega_latios.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_lopunny.aif => mega_lopunny.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_lucario.aif => mega_lucario.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_manectric.aif => mega_manectric.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_mawile.aif => mega_mawile.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_medicham.aif => mega_medicham.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_metagross.aif => mega_metagross.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_mewtwo_x.aif => mega_mewtwo_x.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_mewtwo_y.aif => mega_mewtwo_y.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_pidgeot.aif => mega_pidgeot.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_pinsir.aif => mega_pinsir.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_rayquaza.aif => mega_rayquaza.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_sableye.aif => mega_sableye.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_salamence.aif => mega_salamence.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_sceptile.aif => mega_sceptile.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_scizor.aif => mega_scizor.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_sharpedo.aif => mega_sharpedo.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_slowbro.aif => mega_slowbro.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_steelix.aif => mega_steelix.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_swampert.aif => mega_swampert.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_tyranitar.aif => mega_tyranitar.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mega_venusaur.aif => mega_venusaur.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_melmetal.aif => melmetal.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_meltan.aif => meltan.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_meowstic.aif => meowstic.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_milcery.aif => milcery.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mimikyu.aif => mimikyu.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_minior.aif => minior.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_morelull.aif => morelull.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_morgrem.aif => morgrem.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_morpeko.aif => morpeko.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_morpeko_hangry.aif => morpeko_hangry.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mr_rime.aif => mr_rime.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mudbray.aif => mudbray.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_mudsdale.aif => mudsdale.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_naganadel.aif => naganadel.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_necrozma.aif => necrozma.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_necrozma_dawn_wings.aif => necrozma_dawn_wings.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_necrozma_dusk_mane.aif => necrozma_dusk_mane.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_necrozma_ultra.aif => necrozma_ultra.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_nickit.aif => nickit.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_nihilego.aif => nihilego.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_noibat.aif => noibat.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_noivern.aif => noivern.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_obstagoon.aif => obstagoon.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_oranguru.aif => oranguru.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_orbeetle.aif => orbeetle.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_oricorio.aif => oricorio.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_oricorio_pau.aif => oricorio_pau.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_oricorio_pom_pom.aif => oricorio_pom_pom.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_oricorio_sensu.aif => oricorio_sensu.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_palossand.aif => palossand.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_pancham.aif => pancham.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_pangoro.aif => pangoro.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_passimian.aif => passimian.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_perrserker.aif => perrserker.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_phantump.aif => phantump.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_pheromosa.aif => pheromosa.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_pikipek.aif => pikipek.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_pincurchin.aif => pincurchin.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_poipole.aif => poipole.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_polteageist.aif => polteageist.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_popplio.aif => popplio.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_primal_groudon.aif => primal_groudon.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_primal_kyogre.aif => primal_kyogre.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_primarina.aif => primarina.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_pumpkaboo.aif => pumpkaboo.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_pumpkaboo_super.aif => pumpkaboo_super.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_pyroar.aif => pyroar.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_pyukumuku.aif => pyukumuku.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_quilladin.aif => quilladin.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_raboot.aif => raboot.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_regidrago.aif => regidrago.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_regieleki.aif => regieleki.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_ribombee.aif => ribombee.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_rillaboom.aif => rillaboom.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_rockruff.aif => rockruff.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_rolycoly.aif => rolycoly.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_rookidee.aif => rookidee.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_rowlet.aif => rowlet.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_runerigus.aif => runerigus.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_salandit.aif => salandit.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_salazzle.aif => salazzle.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_sandaconda.aif => sandaconda.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_sandygast.aif => sandygast.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_scatterbug.aif => scatterbug.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_scorbunny.aif => scorbunny.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_shiinotic.aif => shiinotic.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_silicobra.aif => silicobra.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_silvally.aif => silvally.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_sinistea.aif => sinistea.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_sirfetchd.aif => sirfetchd.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_sizzlipede.aif => sizzlipede.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_skiddo.aif => skiddo.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_skrelp.aif => skrelp.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_skwovet.aif => skwovet.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_sliggoo.aif => sliggoo.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_slowpoke_galarian.aif => slowpoke_galarian.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_slurpuff.aif => slurpuff.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_snom.aif => snom.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_sobble.aif => sobble.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_solgaleo.aif => solgaleo.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_spectrier.aif => spectrier.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_spewpa.aif => spewpa.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_spritzee.aif => spritzee.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_stakataka.aif => stakataka.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_steenee.aif => steenee.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_stonjourner.aif => stonjourner.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_stufful.aif => stufful.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_swirlix.aif => swirlix.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_sylveon.aif => sylveon.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_talonflame.aif => talonflame.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_tapu_bulu.aif => tapu_bulu.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_tapu_fini.aif => tapu_fini.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_tapu_koko.aif => tapu_koko.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_tapu_lele.aif => tapu_lele.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_thievul.aif => thievul.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_thwackey.aif => thwackey.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_togedemaru.aif => togedemaru.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_torracat.aif => torracat.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_toucannon.aif => toucannon.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_toxapex.aif => toxapex.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_toxel.aif => toxel.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_toxtricity.aif => toxtricity.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_toxtricity_low_key.aif => toxtricity_low_key.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_trevenant.aif => trevenant.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_trumbeak.aif => trumbeak.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_tsareena.aif => tsareena.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_turtonator.aif => turtonator.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_type_null.aif => type_null.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_tyrantrum.aif => tyrantrum.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_tyrunt.aif => tyrunt.aif} (100%) delete mode 100644 sound/direct_sound_samples/cries/uncomp_cottonee.aif delete mode 100644 sound/direct_sound_samples/cries/uncomp_elgyem.aif delete mode 100644 sound/direct_sound_samples/cries/uncomp_foongus.aif delete mode 100644 sound/direct_sound_samples/cries/uncomp_keldeo.aif delete mode 100644 sound/direct_sound_samples/cries/uncomp_shelmet.aif delete mode 100644 sound/direct_sound_samples/cries/uncomp_swoobat.aif delete mode 100644 sound/direct_sound_samples/cries/uncomp_yamask.aif rename sound/direct_sound_samples/cries/{uncomp_urshifu.aif => urshifu.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_urshifu_rapid_strike_style.aif => urshifu_rapid_strike_style.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_vikavolt.aif => vikavolt.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_vivillon.aif => vivillon.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_volcanion.aif => volcanion.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_wimpod.aif => wimpod.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_wishiwashi.aif => wishiwashi.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_wishiwashi_school.aif => wishiwashi_school.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_wooloo.aif => wooloo.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_xerneas.aif => xerneas.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_xurkitree.aif => xurkitree.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_yamper.aif => yamper.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_yungoos.aif => yungoos.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_yveltal.aif => yveltal.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_zacian.aif => zacian.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_zacian_crowned_sword.aif => zacian_crowned_sword.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_zamazenta.aif => zamazenta.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_zamazenta_crowned_shield.aif => zamazenta_crowned_shield.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_zarude.aif => zarude.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_zeraora.aif => zeraora.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_zygarde.aif => zygarde.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_zygarde_10.aif => zygarde_10.aif} (100%) rename sound/direct_sound_samples/cries/{uncomp_zygarde_complete.aif => zygarde_complete.aif} (100%) diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index 4a50d6aa67..de81150f03 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -649,307 +649,307 @@ gCryTable:: cry Cry_Keldeo cry Cry_Meloetta cry Cry_Genesect - cry_uncomp Cry_Chespin - cry_uncomp Cry_Quilladin - cry_uncomp Cry_Chesnaught - cry_uncomp Cry_Fennekin - cry_uncomp Cry_Braixen - cry_uncomp Cry_Delphox - cry_uncomp Cry_Froakie - cry_uncomp Cry_Frogadier - cry_uncomp Cry_Greninja - cry_uncomp Cry_Bunnelby - cry_uncomp Cry_Diggersby - cry_uncomp Cry_Fletchling - cry_uncomp Cry_Fletchinder - cry_uncomp Cry_Talonflame - cry_uncomp Cry_Scatterbug - cry_uncomp Cry_Spewpa - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Litleo - cry_uncomp Cry_Pyroar - cry_uncomp Cry_Flabebe - cry_uncomp Cry_Floette - cry_uncomp Cry_Florges - cry_uncomp Cry_Skiddo - cry_uncomp Cry_Gogoat - cry_uncomp Cry_Pancham - cry_uncomp Cry_Pangoro - cry_uncomp Cry_Furfrou - cry_uncomp Cry_Espurr - cry_uncomp Cry_Meowstic - cry_uncomp Cry_Honedge - cry_uncomp Cry_Doublade - cry_uncomp Cry_Aegislash - cry_uncomp Cry_Spritzee - cry_uncomp Cry_Aromatisse - cry_uncomp Cry_Swirlix - cry_uncomp Cry_Slurpuff - cry_uncomp Cry_Inkay - cry_uncomp Cry_Malamar - cry_uncomp Cry_Binacle - cry_uncomp Cry_Barbaracle - cry_uncomp Cry_Skrelp - cry_uncomp Cry_Dragalge - cry_uncomp Cry_Clauncher - cry_uncomp Cry_Clawitzer - cry_uncomp Cry_Helioptile - cry_uncomp Cry_Heliolisk - cry_uncomp Cry_Tyrunt - cry_uncomp Cry_Tyrantrum - cry_uncomp Cry_Amaura - cry_uncomp Cry_Aurorus - cry_uncomp Cry_Sylveon - cry_uncomp Cry_Hawlucha - cry_uncomp Cry_Dedenne - cry_uncomp Cry_Carbink - cry_uncomp Cry_Goomy - cry_uncomp Cry_Sliggoo - cry_uncomp Cry_Goodra - cry_uncomp Cry_Klefki - cry_uncomp Cry_Phantump - cry_uncomp Cry_Trevenant - cry_uncomp Cry_Pumpkaboo - cry_uncomp Cry_Gourgeist - cry_uncomp Cry_Bergmite - cry_uncomp Cry_Avalugg - cry_uncomp Cry_Noibat - cry_uncomp Cry_Noivern - cry_uncomp Cry_Xerneas - cry_uncomp Cry_Yveltal - cry_uncomp Cry_Zygarde - cry_uncomp Cry_Diancie - cry_uncomp Cry_Hoopa - cry_uncomp Cry_Volcanion - cry_uncomp Cry_Rowlet - cry_uncomp Cry_Dartrix - cry_uncomp Cry_Decidueye - cry_uncomp Cry_Litten - cry_uncomp Cry_Torracat - cry_uncomp Cry_Incineroar - cry_uncomp Cry_Popplio - cry_uncomp Cry_Brionne - cry_uncomp Cry_Primarina - cry_uncomp Cry_Pikipek - cry_uncomp Cry_Trumbeak - cry_uncomp Cry_Toucannon - cry_uncomp Cry_Yungoos - cry_uncomp Cry_Gumshoos - cry_uncomp Cry_Grubbin - cry_uncomp Cry_Charjabug - cry_uncomp Cry_Vikavolt - cry_uncomp Cry_Crabrawler - cry_uncomp Cry_Crabominable - cry_uncomp Cry_Oricorio - cry_uncomp Cry_Cutiefly - cry_uncomp Cry_Ribombee - cry_uncomp Cry_Rockruff - cry_uncomp Cry_Lycanroc - cry_uncomp Cry_Wishiwashi - cry_uncomp Cry_Mareanie - cry_uncomp Cry_Toxapex - cry_uncomp Cry_Mudbray - cry_uncomp Cry_Mudsdale - cry_uncomp Cry_Dewpider - cry_uncomp Cry_Araquanid - cry_uncomp Cry_Fomantis - cry_uncomp Cry_Lurantis - cry_uncomp Cry_Morelull - cry_uncomp Cry_Shiinotic - cry_uncomp Cry_Salandit - cry_uncomp Cry_Salazzle - cry_uncomp Cry_Stufful - cry_uncomp Cry_Bewear - cry_uncomp Cry_Bounsweet - cry_uncomp Cry_Steenee - cry_uncomp Cry_Tsareena - cry_uncomp Cry_Comfey - cry_uncomp Cry_Oranguru - cry_uncomp Cry_Passimian - cry_uncomp Cry_Wimpod - cry_uncomp Cry_Golisopod - cry_uncomp Cry_Sandygast - cry_uncomp Cry_Palossand - cry_uncomp Cry_Pyukumuku - cry_uncomp Cry_TypeNull - cry_uncomp Cry_Silvally - cry_uncomp Cry_Minior - cry_uncomp Cry_Komala - cry_uncomp Cry_Turtonator - cry_uncomp Cry_Togedemaru - cry_uncomp Cry_Mimikyu - cry_uncomp Cry_Bruxish - cry_uncomp Cry_Drampa - cry_uncomp Cry_Dhelmise - cry_uncomp Cry_Jangmoo - cry_uncomp Cry_Hakamoo - cry_uncomp Cry_Kommoo - cry_uncomp Cry_TapuKoko - cry_uncomp Cry_TapuLele - cry_uncomp Cry_TapuBulu - cry_uncomp Cry_TapuFini - cry_uncomp Cry_Cosmog - cry_uncomp Cry_Cosmoem - cry_uncomp Cry_Solgaleo - cry_uncomp Cry_Lunala - cry_uncomp Cry_Nihilego - cry_uncomp Cry_Buzzwole - cry_uncomp Cry_Pheromosa - cry_uncomp Cry_Xurkitree - cry_uncomp Cry_Celesteela - cry_uncomp Cry_Kartana - cry_uncomp Cry_Guzzlord - cry_uncomp Cry_Necrozma - cry_uncomp Cry_Magearna - cry_uncomp Cry_Marshadow - cry_uncomp Cry_Poipole - cry_uncomp Cry_Naganadel - cry_uncomp Cry_Stakataka - cry_uncomp Cry_Blacephalon - cry_uncomp Cry_Zeraora - cry_uncomp Cry_Meltan - cry_uncomp Cry_Melmetal - cry_uncomp Cry_Grookey - cry_uncomp Cry_Thwackey - cry_uncomp Cry_Rillaboom - cry_uncomp Cry_Scorbunny - cry_uncomp Cry_Raboot - cry_uncomp Cry_Cinderace - cry_uncomp Cry_Sobble - cry_uncomp Cry_Drizzile - cry_uncomp Cry_Inteleon - cry_uncomp Cry_Skwovet - cry_uncomp Cry_Greedent - cry_uncomp Cry_Rookidee - cry_uncomp Cry_Corvisquire - cry_uncomp Cry_Corviknight - cry_uncomp Cry_Blipbug - cry_uncomp Cry_Dottler - cry_uncomp Cry_Orbeetle - cry_uncomp Cry_Nickit - cry_uncomp Cry_Thievul - cry_uncomp Cry_Gossifleur - cry_uncomp Cry_Eldegoss - cry_uncomp Cry_Wooloo - cry_uncomp Cry_Dubwool - cry_uncomp Cry_Chewtle - cry_uncomp Cry_Drednaw - cry_uncomp Cry_Yamper - cry_uncomp Cry_Boltund - cry_uncomp Cry_Rolycoly - cry_uncomp Cry_Carkol - cry_uncomp Cry_Coalossal - cry_uncomp Cry_Applin - cry_uncomp Cry_Flapple - cry_uncomp Cry_Appletun - cry_uncomp Cry_Silicobra - cry_uncomp Cry_Sandaconda - cry_uncomp Cry_Cramorant - cry_uncomp Cry_Arrokuda - cry_uncomp Cry_Barraskewda - cry_uncomp Cry_Toxel - cry_uncomp Cry_Toxtricity - cry_uncomp Cry_Sizzlipede - cry_uncomp Cry_Centiskorch - cry_uncomp Cry_Clobbopus - cry_uncomp Cry_Grapploct - cry_uncomp Cry_Sinistea - cry_uncomp Cry_Polteageist - cry_uncomp Cry_Hatenna - cry_uncomp Cry_Hattrem - cry_uncomp Cry_Hatterene - cry_uncomp Cry_Impidimp - cry_uncomp Cry_Morgrem - cry_uncomp Cry_Grimmsnarl - cry_uncomp Cry_Obstagoon - cry_uncomp Cry_Perrserker - cry_uncomp Cry_Cursola - cry_uncomp Cry_Sirfetchd - cry_uncomp Cry_MrRime - cry_uncomp Cry_Runerigus - cry_uncomp Cry_Milcery - cry_uncomp Cry_Alcremie - cry_uncomp Cry_Falinks - cry_uncomp Cry_Pincurchin - cry_uncomp Cry_Snom - cry_uncomp Cry_Frosmoth - cry_uncomp Cry_Stonjourner - cry_uncomp Cry_Eiscue - cry_uncomp Cry_Indeedee - cry_uncomp Cry_Morpeko - cry_uncomp Cry_Cufant - cry_uncomp Cry_Copperajah - cry_uncomp Cry_Dracozolt - cry_uncomp Cry_Arctozolt - cry_uncomp Cry_Dracovish - cry_uncomp Cry_Arctovish - cry_uncomp Cry_Duraludon - cry_uncomp Cry_Dreepy - cry_uncomp Cry_Drakloak - cry_uncomp Cry_Dragapult - cry_uncomp Cry_Zacian - cry_uncomp Cry_Zamazenta - cry_uncomp Cry_Eternatus - cry_uncomp Cry_Kubfu - cry_uncomp Cry_Urshifu - cry_uncomp Cry_Zarude - cry_uncomp Cry_Regieleki - cry_uncomp Cry_Regidrago - cry_uncomp Cry_Glastrier - cry_uncomp Cry_Spectrier - cry_uncomp Cry_Calyrex + cry Cry_Chespin + cry Cry_Quilladin + cry Cry_Chesnaught + cry Cry_Fennekin + cry Cry_Braixen + cry Cry_Delphox + cry Cry_Froakie + cry Cry_Frogadier + cry Cry_Greninja + cry Cry_Bunnelby + cry Cry_Diggersby + cry Cry_Fletchling + cry Cry_Fletchinder + cry Cry_Talonflame + cry Cry_Scatterbug + cry Cry_Spewpa + cry Cry_Vivillon + cry Cry_Litleo + cry Cry_Pyroar + cry Cry_Flabebe + cry Cry_Floette + cry Cry_Florges + cry Cry_Skiddo + cry Cry_Gogoat + cry Cry_Pancham + cry Cry_Pangoro + cry Cry_Furfrou + cry Cry_Espurr + cry Cry_Meowstic + cry Cry_Honedge + cry Cry_Doublade + cry Cry_Aegislash + cry Cry_Spritzee + cry Cry_Aromatisse + cry Cry_Swirlix + cry Cry_Slurpuff + cry Cry_Inkay + cry Cry_Malamar + cry Cry_Binacle + cry Cry_Barbaracle + cry Cry_Skrelp + cry Cry_Dragalge + cry Cry_Clauncher + cry Cry_Clawitzer + cry Cry_Helioptile + cry Cry_Heliolisk + cry Cry_Tyrunt + cry Cry_Tyrantrum + cry Cry_Amaura + cry Cry_Aurorus + cry Cry_Sylveon + cry Cry_Hawlucha + cry Cry_Dedenne + cry Cry_Carbink + cry Cry_Goomy + cry Cry_Sliggoo + cry Cry_Goodra + cry Cry_Klefki + cry Cry_Phantump + cry Cry_Trevenant + cry Cry_Pumpkaboo + cry Cry_Gourgeist + cry Cry_Bergmite + cry Cry_Avalugg + cry Cry_Noibat + cry Cry_Noivern + cry Cry_Xerneas + cry Cry_Yveltal + cry Cry_Zygarde + cry Cry_Diancie + cry Cry_Hoopa + cry Cry_Volcanion + cry Cry_Rowlet + cry Cry_Dartrix + cry Cry_Decidueye + cry Cry_Litten + cry Cry_Torracat + cry Cry_Incineroar + cry Cry_Popplio + cry Cry_Brionne + cry Cry_Primarina + cry Cry_Pikipek + cry Cry_Trumbeak + cry Cry_Toucannon + cry Cry_Yungoos + cry Cry_Gumshoos + cry Cry_Grubbin + cry Cry_Charjabug + cry Cry_Vikavolt + cry Cry_Crabrawler + cry Cry_Crabominable + cry Cry_Oricorio + cry Cry_Cutiefly + cry Cry_Ribombee + cry Cry_Rockruff + cry Cry_Lycanroc + cry Cry_Wishiwashi + cry Cry_Mareanie + cry Cry_Toxapex + cry Cry_Mudbray + cry Cry_Mudsdale + cry Cry_Dewpider + cry Cry_Araquanid + cry Cry_Fomantis + cry Cry_Lurantis + cry Cry_Morelull + cry Cry_Shiinotic + cry Cry_Salandit + cry Cry_Salazzle + cry Cry_Stufful + cry Cry_Bewear + cry Cry_Bounsweet + cry Cry_Steenee + cry Cry_Tsareena + cry Cry_Comfey + cry Cry_Oranguru + cry Cry_Passimian + cry Cry_Wimpod + cry Cry_Golisopod + cry Cry_Sandygast + cry Cry_Palossand + cry Cry_Pyukumuku + cry Cry_TypeNull + cry Cry_Silvally + cry Cry_Minior + cry Cry_Komala + cry Cry_Turtonator + cry Cry_Togedemaru + cry Cry_Mimikyu + cry Cry_Bruxish + cry Cry_Drampa + cry Cry_Dhelmise + cry Cry_Jangmoo + cry Cry_Hakamoo + cry Cry_Kommoo + cry Cry_TapuKoko + cry Cry_TapuLele + cry Cry_TapuBulu + cry Cry_TapuFini + cry Cry_Cosmog + cry Cry_Cosmoem + cry Cry_Solgaleo + cry Cry_Lunala + cry Cry_Nihilego + cry Cry_Buzzwole + cry Cry_Pheromosa + cry Cry_Xurkitree + cry Cry_Celesteela + cry Cry_Kartana + cry Cry_Guzzlord + cry Cry_Necrozma + cry Cry_Magearna + cry Cry_Marshadow + cry Cry_Poipole + cry Cry_Naganadel + cry Cry_Stakataka + cry Cry_Blacephalon + cry Cry_Zeraora + cry Cry_Meltan + cry Cry_Melmetal + cry Cry_Grookey + cry Cry_Thwackey + cry Cry_Rillaboom + cry Cry_Scorbunny + cry Cry_Raboot + cry Cry_Cinderace + cry Cry_Sobble + cry Cry_Drizzile + cry Cry_Inteleon + cry Cry_Skwovet + cry Cry_Greedent + cry Cry_Rookidee + cry Cry_Corvisquire + cry Cry_Corviknight + cry Cry_Blipbug + cry Cry_Dottler + cry Cry_Orbeetle + cry Cry_Nickit + cry Cry_Thievul + cry Cry_Gossifleur + cry Cry_Eldegoss + cry Cry_Wooloo + cry Cry_Dubwool + cry Cry_Chewtle + cry Cry_Drednaw + cry Cry_Yamper + cry Cry_Boltund + cry Cry_Rolycoly + cry Cry_Carkol + cry Cry_Coalossal + cry Cry_Applin + cry Cry_Flapple + cry Cry_Appletun + cry Cry_Silicobra + cry Cry_Sandaconda + cry Cry_Cramorant + cry Cry_Arrokuda + cry Cry_Barraskewda + cry Cry_Toxel + cry Cry_Toxtricity + cry Cry_Sizzlipede + cry Cry_Centiskorch + cry Cry_Clobbopus + cry Cry_Grapploct + cry Cry_Sinistea + cry Cry_Polteageist + cry Cry_Hatenna + cry Cry_Hattrem + cry Cry_Hatterene + cry Cry_Impidimp + cry Cry_Morgrem + cry Cry_Grimmsnarl + cry Cry_Obstagoon + cry Cry_Perrserker + cry Cry_Cursola + cry Cry_Sirfetchd + cry Cry_MrRime + cry Cry_Runerigus + cry Cry_Milcery + cry Cry_Alcremie + cry Cry_Falinks + cry Cry_Pincurchin + cry Cry_Snom + cry Cry_Frosmoth + cry Cry_Stonjourner + cry Cry_Eiscue + cry Cry_Indeedee + cry Cry_Morpeko + cry Cry_Cufant + cry Cry_Copperajah + cry Cry_Dracozolt + cry Cry_Arctozolt + cry Cry_Dracovish + cry Cry_Arctovish + cry Cry_Duraludon + cry Cry_Dreepy + cry Cry_Drakloak + cry Cry_Dragapult + cry Cry_Zacian + cry Cry_Zamazenta + cry Cry_Eternatus + cry Cry_Kubfu + cry Cry_Urshifu + cry Cry_Zarude + cry Cry_Regieleki + cry Cry_Regidrago + cry Cry_Glastrier + cry Cry_Spectrier + cry Cry_Calyrex @ Megas - cry_uncomp Cry_VenusaurMega - cry_uncomp Cry_CharizardMegaX - cry_uncomp Cry_CharizardMegaY - cry_uncomp Cry_BlastoiseMega - cry_uncomp Cry_BeedrillMega - cry_uncomp Cry_PidgeotMega - cry_uncomp Cry_AlakazamMega - cry_uncomp Cry_SlowbroMega - cry_uncomp Cry_GengarMega - cry_uncomp Cry_KangaskhanMega - cry_uncomp Cry_PinsirMega - cry_uncomp Cry_GyaradosMega - cry_uncomp Cry_AerodactylMega - cry_uncomp Cry_MewtwoMegaX - cry_uncomp Cry_MewtwoMegaY - cry_uncomp Cry_AmpharosMega - cry_uncomp Cry_SteelixMega - cry_uncomp Cry_ScizorMega - cry_uncomp Cry_HeracrossMega - cry_uncomp Cry_HoundoomMega - cry_uncomp Cry_TyranitarMega - cry_uncomp Cry_SceptileMega - cry_uncomp Cry_BlazikenMega - cry_uncomp Cry_SwampertMega - cry_uncomp Cry_GardevoirMega - cry_uncomp Cry_SableyeMega - cry_uncomp Cry_MawileMega - cry_uncomp Cry_AggronMega - cry_uncomp Cry_MedichamMega - cry_uncomp Cry_ManectricMega - cry_uncomp Cry_SharpedoMega - cry_uncomp Cry_CameruptMega - cry_uncomp Cry_AltariaMega - cry_uncomp Cry_BanetteMega - cry_uncomp Cry_AbsolMega - cry_uncomp Cry_GlalieMega - cry_uncomp Cry_SalamenceMega - cry_uncomp Cry_MetagrossMega - cry_uncomp Cry_LatiasMega - cry_uncomp Cry_LatiosMega - cry_uncomp Cry_LopunnyMega - cry_uncomp Cry_GarchompMega - cry_uncomp Cry_LucarioMega - cry_uncomp Cry_AbomasnowMega - cry_uncomp Cry_GalladeMega - cry_uncomp Cry_AudinoMega - cry_uncomp Cry_DiancieMega + cry Cry_VenusaurMega + cry Cry_CharizardMegaX + cry Cry_CharizardMegaY + cry Cry_BlastoiseMega + cry Cry_BeedrillMega + cry Cry_PidgeotMega + cry Cry_AlakazamMega + cry Cry_SlowbroMega + cry Cry_GengarMega + cry Cry_KangaskhanMega + cry Cry_PinsirMega + cry Cry_GyaradosMega + cry Cry_AerodactylMega + cry Cry_MewtwoMegaX + cry Cry_MewtwoMegaY + cry Cry_AmpharosMega + cry Cry_SteelixMega + cry Cry_ScizorMega + cry Cry_HeracrossMega + cry Cry_HoundoomMega + cry Cry_TyranitarMega + cry Cry_SceptileMega + cry Cry_BlazikenMega + cry Cry_SwampertMega + cry Cry_GardevoirMega + cry Cry_SableyeMega + cry Cry_MawileMega + cry Cry_AggronMega + cry Cry_MedichamMega + cry Cry_ManectricMega + cry Cry_SharpedoMega + cry Cry_CameruptMega + cry Cry_AltariaMega + cry Cry_BanetteMega + cry Cry_AbsolMega + cry Cry_GlalieMega + cry Cry_SalamenceMega + cry Cry_MetagrossMega + cry Cry_LatiasMega + cry Cry_LatiosMega + cry Cry_LopunnyMega + cry Cry_GarchompMega + cry Cry_LucarioMega + cry Cry_AbomasnowMega + cry Cry_GalladeMega + cry Cry_AudinoMega + cry Cry_DiancieMega @ Special Mega + Primals - cry_uncomp Cry_RayquazaMega - cry_uncomp Cry_KyogrePrimal - cry_uncomp Cry_GroudonPrimal + cry Cry_RayquazaMega + cry Cry_KyogrePrimal + cry Cry_GroudonPrimal @ Alolan Forms cry Cry_Rattata cry Cry_Raticate @@ -973,7 +973,7 @@ gCryTable:: cry Cry_Meowth cry Cry_Ponyta cry Cry_Rapidash - cry_uncomp Cry_SlowpokeGalarian + cry Cry_SlowpokeGalarian cry Cry_Slowbro cry Cry_Farfetchd cry Cry_Weezing @@ -1114,163 +1114,163 @@ gCryTable:: cry Cry_Genesect cry Cry_Genesect @ Greninja - cry_uncomp Cry_Greninja - cry_uncomp Cry_Greninja + cry Cry_Greninja + cry Cry_Greninja @ Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon - cry_uncomp Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon + cry Cry_Vivillon @ Flabébé - cry_uncomp Cry_Flabebe - cry_uncomp Cry_Flabebe - cry_uncomp Cry_Flabebe - cry_uncomp Cry_Flabebe + cry Cry_Flabebe + cry Cry_Flabebe + cry Cry_Flabebe + cry Cry_Flabebe @ Floette - cry_uncomp Cry_Floette - cry_uncomp Cry_Floette - cry_uncomp Cry_Floette - cry_uncomp Cry_Floette - cry_uncomp Cry_FloetteEternalFlower + cry Cry_Floette + cry Cry_Floette + cry Cry_Floette + cry Cry_Floette + cry Cry_FloetteEternalFlower @ Florges - cry_uncomp Cry_Florges - cry_uncomp Cry_Florges - cry_uncomp Cry_Florges - cry_uncomp Cry_Florges + cry Cry_Florges + cry Cry_Florges + cry Cry_Florges + cry Cry_Florges @ Furfrou - cry_uncomp Cry_Furfrou - cry_uncomp Cry_Furfrou - cry_uncomp Cry_Furfrou - cry_uncomp Cry_Furfrou - cry_uncomp Cry_Furfrou - cry_uncomp Cry_Furfrou - cry_uncomp Cry_Furfrou - cry_uncomp Cry_Furfrou - cry_uncomp Cry_Furfrou + cry Cry_Furfrou + cry Cry_Furfrou + cry Cry_Furfrou + cry Cry_Furfrou + cry Cry_Furfrou + cry Cry_Furfrou + cry Cry_Furfrou + cry Cry_Furfrou + cry Cry_Furfrou @ Meowstic - cry_uncomp Cry_Meowstic + cry Cry_Meowstic @ Aegislash - cry_uncomp Cry_Aegislash + cry Cry_Aegislash @ Pumpkaboo - cry_uncomp Cry_Pumpkaboo - cry_uncomp Cry_Pumpkaboo - cry_uncomp Cry_PumpkabooSuper + cry Cry_Pumpkaboo + cry Cry_Pumpkaboo + cry Cry_PumpkabooSuper @ Gourgeist - cry_uncomp Cry_Gourgeist - cry_uncomp Cry_Gourgeist - cry_uncomp Cry_GourgeistSuper + cry Cry_Gourgeist + cry Cry_Gourgeist + cry Cry_GourgeistSuper @ Xerneas - cry_uncomp Cry_Xerneas + cry Cry_Xerneas @ Zygarde - cry_uncomp Cry_Zygarde10 - cry_uncomp Cry_Zygarde10 - cry_uncomp Cry_Zygarde - cry_uncomp Cry_ZygardeComplete + cry Cry_Zygarde10 + cry Cry_Zygarde10 + cry Cry_Zygarde + cry Cry_ZygardeComplete @ Hoopa - cry_uncomp Cry_HoopaUnbound + cry Cry_HoopaUnbound @ Oricorio - cry_uncomp Cry_OricorioPomPom - cry_uncomp Cry_OricorioPau - cry_uncomp Cry_OricorioSensu + cry Cry_OricorioPomPom + cry Cry_OricorioPau + cry Cry_OricorioSensu @ Rockruff - cry_uncomp Cry_Rockruff + cry Cry_Rockruff @ Lycanroc - cry_uncomp Cry_LycanrocMidnight - cry_uncomp Cry_LycanrocDusk + cry Cry_LycanrocMidnight + cry Cry_LycanrocDusk @ Wishiwashi - cry_uncomp Cry_WishiwashiSchool + cry Cry_WishiwashiSchool @ Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally - cry_uncomp Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally + cry Cry_Silvally @ Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior - cry_uncomp Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior + cry Cry_Minior @ Mimikyu - cry_uncomp Cry_Mimikyu + cry Cry_Mimikyu @ Necrozma - cry_uncomp Cry_NecrozmaDuskMane - cry_uncomp Cry_NecrozmaDawnWings - cry_uncomp Cry_NecrozmaUltra + cry Cry_NecrozmaDuskMane + cry Cry_NecrozmaDawnWings + cry Cry_NecrozmaUltra @ Magearna - cry_uncomp Cry_Magearna + cry Cry_Magearna @ Cramorant - cry_uncomp Cry_Cramorant - cry_uncomp Cry_Cramorant + cry Cry_Cramorant + cry Cry_Cramorant @ Toxtricity - cry_uncomp Cry_ToxtricityLowKey + cry Cry_ToxtricityLowKey @ Sinistea - cry_uncomp Cry_Sinistea + cry Cry_Sinistea @ Polteageist - cry_uncomp Cry_Polteageist + cry Cry_Polteageist @ Alcremie - cry_uncomp Cry_Alcremie - cry_uncomp Cry_Alcremie - cry_uncomp Cry_Alcremie - cry_uncomp Cry_Alcremie - cry_uncomp Cry_Alcremie - cry_uncomp Cry_Alcremie - cry_uncomp Cry_Alcremie - cry_uncomp Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie + cry Cry_Alcremie @ Eiscue - cry_uncomp Cry_EiscueNoiceFace + cry Cry_EiscueNoiceFace @ Indeedee - cry_uncomp Cry_IndeedeeFemale + cry Cry_IndeedeeFemale @ Morpeko - cry_uncomp Cry_MorpekoHangry + cry Cry_MorpekoHangry @ Zacian - cry_uncomp Cry_ZacianCrownedSword + cry Cry_ZacianCrownedSword @ Zamazenta - cry_uncomp Cry_ZamazentaCrownedShield + cry Cry_ZamazentaCrownedShield @ Eternatus - cry_uncomp Cry_EternatusEternamax + cry Cry_EternatusEternamax @ Urshifu - cry_uncomp Cry_UrshifuRapidStrikeStyle + cry Cry_UrshifuRapidStrikeStyle @ Zarude - cry_uncomp Cry_Zarude + cry Cry_Zarude @ Calyrex - cry_uncomp Cry_CalyrexIceRider - cry_uncomp Cry_CalyrexShadowRider + cry Cry_CalyrexIceRider + cry Cry_CalyrexShadowRider .align 2 gCryTable_Reverse:: @@ -1923,307 +1923,307 @@ gCryTable_Reverse:: cry_reverse Cry_Keldeo cry_reverse Cry_Meloetta cry_reverse Cry_Genesect - cry_reverse_uncomp Cry_Chespin - cry_reverse_uncomp Cry_Quilladin - cry_reverse_uncomp Cry_Chesnaught - cry_reverse_uncomp Cry_Fennekin - cry_reverse_uncomp Cry_Braixen - cry_reverse_uncomp Cry_Delphox - cry_reverse_uncomp Cry_Froakie - cry_reverse_uncomp Cry_Frogadier - cry_reverse_uncomp Cry_Greninja - cry_reverse_uncomp Cry_Bunnelby - cry_reverse_uncomp Cry_Diggersby - cry_reverse_uncomp Cry_Fletchling - cry_reverse_uncomp Cry_Fletchinder - cry_reverse_uncomp Cry_Talonflame - cry_reverse_uncomp Cry_Scatterbug - cry_reverse_uncomp Cry_Spewpa - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Litleo - cry_reverse_uncomp Cry_Pyroar - cry_reverse_uncomp Cry_Flabebe - cry_reverse_uncomp Cry_Floette - cry_reverse_uncomp Cry_Florges - cry_reverse_uncomp Cry_Skiddo - cry_reverse_uncomp Cry_Gogoat - cry_reverse_uncomp Cry_Pancham - cry_reverse_uncomp Cry_Pangoro - cry_reverse_uncomp Cry_Furfrou - cry_reverse_uncomp Cry_Espurr - cry_reverse_uncomp Cry_Meowstic - cry_reverse_uncomp Cry_Honedge - cry_reverse_uncomp Cry_Doublade - cry_reverse_uncomp Cry_Aegislash - cry_reverse_uncomp Cry_Spritzee - cry_reverse_uncomp Cry_Aromatisse - cry_reverse_uncomp Cry_Swirlix - cry_reverse_uncomp Cry_Slurpuff - cry_reverse_uncomp Cry_Inkay - cry_reverse_uncomp Cry_Malamar - cry_reverse_uncomp Cry_Binacle - cry_reverse_uncomp Cry_Barbaracle - cry_reverse_uncomp Cry_Skrelp - cry_reverse_uncomp Cry_Dragalge - cry_reverse_uncomp Cry_Clauncher - cry_reverse_uncomp Cry_Clawitzer - cry_reverse_uncomp Cry_Helioptile - cry_reverse_uncomp Cry_Heliolisk - cry_reverse_uncomp Cry_Tyrunt - cry_reverse_uncomp Cry_Tyrantrum - cry_reverse_uncomp Cry_Amaura - cry_reverse_uncomp Cry_Aurorus - cry_reverse_uncomp Cry_Sylveon - cry_reverse_uncomp Cry_Hawlucha - cry_reverse_uncomp Cry_Dedenne - cry_reverse_uncomp Cry_Carbink - cry_reverse_uncomp Cry_Goomy - cry_reverse_uncomp Cry_Sliggoo - cry_reverse_uncomp Cry_Goodra - cry_reverse_uncomp Cry_Klefki - cry_reverse_uncomp Cry_Phantump - cry_reverse_uncomp Cry_Trevenant - cry_reverse_uncomp Cry_Pumpkaboo - cry_reverse_uncomp Cry_Gourgeist - cry_reverse_uncomp Cry_Bergmite - cry_reverse_uncomp Cry_Avalugg - cry_reverse_uncomp Cry_Noibat - cry_reverse_uncomp Cry_Noivern - cry_reverse_uncomp Cry_Xerneas - cry_reverse_uncomp Cry_Yveltal - cry_reverse_uncomp Cry_Zygarde - cry_reverse_uncomp Cry_Diancie - cry_reverse_uncomp Cry_Hoopa - cry_reverse_uncomp Cry_Volcanion - cry_reverse_uncomp Cry_Rowlet - cry_reverse_uncomp Cry_Dartrix - cry_reverse_uncomp Cry_Decidueye - cry_reverse_uncomp Cry_Litten - cry_reverse_uncomp Cry_Torracat - cry_reverse_uncomp Cry_Incineroar - cry_reverse_uncomp Cry_Popplio - cry_reverse_uncomp Cry_Brionne - cry_reverse_uncomp Cry_Primarina - cry_reverse_uncomp Cry_Pikipek - cry_reverse_uncomp Cry_Trumbeak - cry_reverse_uncomp Cry_Toucannon - cry_reverse_uncomp Cry_Yungoos - cry_reverse_uncomp Cry_Gumshoos - cry_reverse_uncomp Cry_Grubbin - cry_reverse_uncomp Cry_Charjabug - cry_reverse_uncomp Cry_Vikavolt - cry_reverse_uncomp Cry_Crabrawler - cry_reverse_uncomp Cry_Crabominable - cry_reverse_uncomp Cry_Oricorio - cry_reverse_uncomp Cry_Cutiefly - cry_reverse_uncomp Cry_Ribombee - cry_reverse_uncomp Cry_Rockruff - cry_reverse_uncomp Cry_Lycanroc - cry_reverse_uncomp Cry_Wishiwashi - cry_reverse_uncomp Cry_Mareanie - cry_reverse_uncomp Cry_Toxapex - cry_reverse_uncomp Cry_Mudbray - cry_reverse_uncomp Cry_Mudsdale - cry_reverse_uncomp Cry_Dewpider - cry_reverse_uncomp Cry_Araquanid - cry_reverse_uncomp Cry_Fomantis - cry_reverse_uncomp Cry_Lurantis - cry_reverse_uncomp Cry_Morelull - cry_reverse_uncomp Cry_Shiinotic - cry_reverse_uncomp Cry_Salandit - cry_reverse_uncomp Cry_Salazzle - cry_reverse_uncomp Cry_Stufful - cry_reverse_uncomp Cry_Bewear - cry_reverse_uncomp Cry_Bounsweet - cry_reverse_uncomp Cry_Steenee - cry_reverse_uncomp Cry_Tsareena - cry_reverse_uncomp Cry_Comfey - cry_reverse_uncomp Cry_Oranguru - cry_reverse_uncomp Cry_Passimian - cry_reverse_uncomp Cry_Wimpod - cry_reverse_uncomp Cry_Golisopod - cry_reverse_uncomp Cry_Sandygast - cry_reverse_uncomp Cry_Palossand - cry_reverse_uncomp Cry_Pyukumuku - cry_reverse_uncomp Cry_TypeNull - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Komala - cry_reverse_uncomp Cry_Turtonator - cry_reverse_uncomp Cry_Togedemaru - cry_reverse_uncomp Cry_Mimikyu - cry_reverse_uncomp Cry_Bruxish - cry_reverse_uncomp Cry_Drampa - cry_reverse_uncomp Cry_Dhelmise - cry_reverse_uncomp Cry_Jangmoo - cry_reverse_uncomp Cry_Hakamoo - cry_reverse_uncomp Cry_Kommoo - cry_reverse_uncomp Cry_TapuKoko - cry_reverse_uncomp Cry_TapuLele - cry_reverse_uncomp Cry_TapuBulu - cry_reverse_uncomp Cry_TapuFini - cry_reverse_uncomp Cry_Cosmog - cry_reverse_uncomp Cry_Cosmoem - cry_reverse_uncomp Cry_Solgaleo - cry_reverse_uncomp Cry_Lunala - cry_reverse_uncomp Cry_Nihilego - cry_reverse_uncomp Cry_Buzzwole - cry_reverse_uncomp Cry_Pheromosa - cry_reverse_uncomp Cry_Xurkitree - cry_reverse_uncomp Cry_Celesteela - cry_reverse_uncomp Cry_Kartana - cry_reverse_uncomp Cry_Guzzlord - cry_reverse_uncomp Cry_Necrozma - cry_reverse_uncomp Cry_Magearna - cry_reverse_uncomp Cry_Marshadow - cry_reverse_uncomp Cry_Poipole - cry_reverse_uncomp Cry_Naganadel - cry_reverse_uncomp Cry_Stakataka - cry_reverse_uncomp Cry_Blacephalon - cry_reverse_uncomp Cry_Zeraora - cry_reverse_uncomp Cry_Meltan - cry_reverse_uncomp Cry_Melmetal - cry_reverse_uncomp Cry_Grookey - cry_reverse_uncomp Cry_Thwackey - cry_reverse_uncomp Cry_Rillaboom - cry_reverse_uncomp Cry_Scorbunny - cry_reverse_uncomp Cry_Raboot - cry_reverse_uncomp Cry_Cinderace - cry_reverse_uncomp Cry_Sobble - cry_reverse_uncomp Cry_Drizzile - cry_reverse_uncomp Cry_Inteleon - cry_reverse_uncomp Cry_Skwovet - cry_reverse_uncomp Cry_Greedent - cry_reverse_uncomp Cry_Rookidee - cry_reverse_uncomp Cry_Corvisquire - cry_reverse_uncomp Cry_Corviknight - cry_reverse_uncomp Cry_Blipbug - cry_reverse_uncomp Cry_Dottler - cry_reverse_uncomp Cry_Orbeetle - cry_reverse_uncomp Cry_Nickit - cry_reverse_uncomp Cry_Thievul - cry_reverse_uncomp Cry_Gossifleur - cry_reverse_uncomp Cry_Eldegoss - cry_reverse_uncomp Cry_Wooloo - cry_reverse_uncomp Cry_Dubwool - cry_reverse_uncomp Cry_Chewtle - cry_reverse_uncomp Cry_Drednaw - cry_reverse_uncomp Cry_Yamper - cry_reverse_uncomp Cry_Boltund - cry_reverse_uncomp Cry_Rolycoly - cry_reverse_uncomp Cry_Carkol - cry_reverse_uncomp Cry_Coalossal - cry_reverse_uncomp Cry_Applin - cry_reverse_uncomp Cry_Flapple - cry_reverse_uncomp Cry_Appletun - cry_reverse_uncomp Cry_Silicobra - cry_reverse_uncomp Cry_Sandaconda - cry_reverse_uncomp Cry_Cramorant - cry_reverse_uncomp Cry_Arrokuda - cry_reverse_uncomp Cry_Barraskewda - cry_reverse_uncomp Cry_Toxel - cry_reverse_uncomp Cry_Toxtricity - cry_reverse_uncomp Cry_Sizzlipede - cry_reverse_uncomp Cry_Centiskorch - cry_reverse_uncomp Cry_Clobbopus - cry_reverse_uncomp Cry_Grapploct - cry_reverse_uncomp Cry_Sinistea - cry_reverse_uncomp Cry_Polteageist - cry_reverse_uncomp Cry_Hatenna - cry_reverse_uncomp Cry_Hattrem - cry_reverse_uncomp Cry_Hatterene - cry_reverse_uncomp Cry_Impidimp - cry_reverse_uncomp Cry_Morgrem - cry_reverse_uncomp Cry_Grimmsnarl - cry_reverse_uncomp Cry_Obstagoon - cry_reverse_uncomp Cry_Perrserker - cry_reverse_uncomp Cry_Cursola - cry_reverse_uncomp Cry_Sirfetchd - cry_reverse_uncomp Cry_MrRime - cry_reverse_uncomp Cry_Runerigus - cry_reverse_uncomp Cry_Milcery - cry_reverse_uncomp Cry_Alcremie - cry_reverse_uncomp Cry_Falinks - cry_reverse_uncomp Cry_Pincurchin - cry_reverse_uncomp Cry_Snom - cry_reverse_uncomp Cry_Frosmoth - cry_reverse_uncomp Cry_Stonjourner - cry_reverse_uncomp Cry_Eiscue - cry_reverse_uncomp Cry_Indeedee - cry_reverse_uncomp Cry_Morpeko - cry_reverse_uncomp Cry_Cufant - cry_reverse_uncomp Cry_Copperajah - cry_reverse_uncomp Cry_Dracozolt - cry_reverse_uncomp Cry_Arctozolt - cry_reverse_uncomp Cry_Dracovish - cry_reverse_uncomp Cry_Arctovish - cry_reverse_uncomp Cry_Duraludon - cry_reverse_uncomp Cry_Dreepy - cry_reverse_uncomp Cry_Drakloak - cry_reverse_uncomp Cry_Dragapult - cry_reverse_uncomp Cry_Zacian - cry_reverse_uncomp Cry_Zamazenta - cry_reverse_uncomp Cry_Eternatus - cry_reverse_uncomp Cry_Kubfu - cry_reverse_uncomp Cry_Urshifu - cry_reverse_uncomp Cry_Zarude - cry_reverse_uncomp Cry_Regieleki - cry_reverse_uncomp Cry_Regidrago - cry_reverse_uncomp Cry_Glastrier - cry_reverse_uncomp Cry_Spectrier - cry_reverse_uncomp Cry_Calyrex + cry_reverse Cry_Chespin + cry_reverse Cry_Quilladin + cry_reverse Cry_Chesnaught + cry_reverse Cry_Fennekin + cry_reverse Cry_Braixen + cry_reverse Cry_Delphox + cry_reverse Cry_Froakie + cry_reverse Cry_Frogadier + cry_reverse Cry_Greninja + cry_reverse Cry_Bunnelby + cry_reverse Cry_Diggersby + cry_reverse Cry_Fletchling + cry_reverse Cry_Fletchinder + cry_reverse Cry_Talonflame + cry_reverse Cry_Scatterbug + cry_reverse Cry_Spewpa + cry_reverse Cry_Vivillon + cry_reverse Cry_Litleo + cry_reverse Cry_Pyroar + cry_reverse Cry_Flabebe + cry_reverse Cry_Floette + cry_reverse Cry_Florges + cry_reverse Cry_Skiddo + cry_reverse Cry_Gogoat + cry_reverse Cry_Pancham + cry_reverse Cry_Pangoro + cry_reverse Cry_Furfrou + cry_reverse Cry_Espurr + cry_reverse Cry_Meowstic + cry_reverse Cry_Honedge + cry_reverse Cry_Doublade + cry_reverse Cry_Aegislash + cry_reverse Cry_Spritzee + cry_reverse Cry_Aromatisse + cry_reverse Cry_Swirlix + cry_reverse Cry_Slurpuff + cry_reverse Cry_Inkay + cry_reverse Cry_Malamar + cry_reverse Cry_Binacle + cry_reverse Cry_Barbaracle + cry_reverse Cry_Skrelp + cry_reverse Cry_Dragalge + cry_reverse Cry_Clauncher + cry_reverse Cry_Clawitzer + cry_reverse Cry_Helioptile + cry_reverse Cry_Heliolisk + cry_reverse Cry_Tyrunt + cry_reverse Cry_Tyrantrum + cry_reverse Cry_Amaura + cry_reverse Cry_Aurorus + cry_reverse Cry_Sylveon + cry_reverse Cry_Hawlucha + cry_reverse Cry_Dedenne + cry_reverse Cry_Carbink + cry_reverse Cry_Goomy + cry_reverse Cry_Sliggoo + cry_reverse Cry_Goodra + cry_reverse Cry_Klefki + cry_reverse Cry_Phantump + cry_reverse Cry_Trevenant + cry_reverse Cry_Pumpkaboo + cry_reverse Cry_Gourgeist + cry_reverse Cry_Bergmite + cry_reverse Cry_Avalugg + cry_reverse Cry_Noibat + cry_reverse Cry_Noivern + cry_reverse Cry_Xerneas + cry_reverse Cry_Yveltal + cry_reverse Cry_Zygarde + cry_reverse Cry_Diancie + cry_reverse Cry_Hoopa + cry_reverse Cry_Volcanion + cry_reverse Cry_Rowlet + cry_reverse Cry_Dartrix + cry_reverse Cry_Decidueye + cry_reverse Cry_Litten + cry_reverse Cry_Torracat + cry_reverse Cry_Incineroar + cry_reverse Cry_Popplio + cry_reverse Cry_Brionne + cry_reverse Cry_Primarina + cry_reverse Cry_Pikipek + cry_reverse Cry_Trumbeak + cry_reverse Cry_Toucannon + cry_reverse Cry_Yungoos + cry_reverse Cry_Gumshoos + cry_reverse Cry_Grubbin + cry_reverse Cry_Charjabug + cry_reverse Cry_Vikavolt + cry_reverse Cry_Crabrawler + cry_reverse Cry_Crabominable + cry_reverse Cry_Oricorio + cry_reverse Cry_Cutiefly + cry_reverse Cry_Ribombee + cry_reverse Cry_Rockruff + cry_reverse Cry_Lycanroc + cry_reverse Cry_Wishiwashi + cry_reverse Cry_Mareanie + cry_reverse Cry_Toxapex + cry_reverse Cry_Mudbray + cry_reverse Cry_Mudsdale + cry_reverse Cry_Dewpider + cry_reverse Cry_Araquanid + cry_reverse Cry_Fomantis + cry_reverse Cry_Lurantis + cry_reverse Cry_Morelull + cry_reverse Cry_Shiinotic + cry_reverse Cry_Salandit + cry_reverse Cry_Salazzle + cry_reverse Cry_Stufful + cry_reverse Cry_Bewear + cry_reverse Cry_Bounsweet + cry_reverse Cry_Steenee + cry_reverse Cry_Tsareena + cry_reverse Cry_Comfey + cry_reverse Cry_Oranguru + cry_reverse Cry_Passimian + cry_reverse Cry_Wimpod + cry_reverse Cry_Golisopod + cry_reverse Cry_Sandygast + cry_reverse Cry_Palossand + cry_reverse Cry_Pyukumuku + cry_reverse Cry_TypeNull + cry_reverse Cry_Silvally + cry_reverse Cry_Minior + cry_reverse Cry_Komala + cry_reverse Cry_Turtonator + cry_reverse Cry_Togedemaru + cry_reverse Cry_Mimikyu + cry_reverse Cry_Bruxish + cry_reverse Cry_Drampa + cry_reverse Cry_Dhelmise + cry_reverse Cry_Jangmoo + cry_reverse Cry_Hakamoo + cry_reverse Cry_Kommoo + cry_reverse Cry_TapuKoko + cry_reverse Cry_TapuLele + cry_reverse Cry_TapuBulu + cry_reverse Cry_TapuFini + cry_reverse Cry_Cosmog + cry_reverse Cry_Cosmoem + cry_reverse Cry_Solgaleo + cry_reverse Cry_Lunala + cry_reverse Cry_Nihilego + cry_reverse Cry_Buzzwole + cry_reverse Cry_Pheromosa + cry_reverse Cry_Xurkitree + cry_reverse Cry_Celesteela + cry_reverse Cry_Kartana + cry_reverse Cry_Guzzlord + cry_reverse Cry_Necrozma + cry_reverse Cry_Magearna + cry_reverse Cry_Marshadow + cry_reverse Cry_Poipole + cry_reverse Cry_Naganadel + cry_reverse Cry_Stakataka + cry_reverse Cry_Blacephalon + cry_reverse Cry_Zeraora + cry_reverse Cry_Meltan + cry_reverse Cry_Melmetal + cry_reverse Cry_Grookey + cry_reverse Cry_Thwackey + cry_reverse Cry_Rillaboom + cry_reverse Cry_Scorbunny + cry_reverse Cry_Raboot + cry_reverse Cry_Cinderace + cry_reverse Cry_Sobble + cry_reverse Cry_Drizzile + cry_reverse Cry_Inteleon + cry_reverse Cry_Skwovet + cry_reverse Cry_Greedent + cry_reverse Cry_Rookidee + cry_reverse Cry_Corvisquire + cry_reverse Cry_Corviknight + cry_reverse Cry_Blipbug + cry_reverse Cry_Dottler + cry_reverse Cry_Orbeetle + cry_reverse Cry_Nickit + cry_reverse Cry_Thievul + cry_reverse Cry_Gossifleur + cry_reverse Cry_Eldegoss + cry_reverse Cry_Wooloo + cry_reverse Cry_Dubwool + cry_reverse Cry_Chewtle + cry_reverse Cry_Drednaw + cry_reverse Cry_Yamper + cry_reverse Cry_Boltund + cry_reverse Cry_Rolycoly + cry_reverse Cry_Carkol + cry_reverse Cry_Coalossal + cry_reverse Cry_Applin + cry_reverse Cry_Flapple + cry_reverse Cry_Appletun + cry_reverse Cry_Silicobra + cry_reverse Cry_Sandaconda + cry_reverse Cry_Cramorant + cry_reverse Cry_Arrokuda + cry_reverse Cry_Barraskewda + cry_reverse Cry_Toxel + cry_reverse Cry_Toxtricity + cry_reverse Cry_Sizzlipede + cry_reverse Cry_Centiskorch + cry_reverse Cry_Clobbopus + cry_reverse Cry_Grapploct + cry_reverse Cry_Sinistea + cry_reverse Cry_Polteageist + cry_reverse Cry_Hatenna + cry_reverse Cry_Hattrem + cry_reverse Cry_Hatterene + cry_reverse Cry_Impidimp + cry_reverse Cry_Morgrem + cry_reverse Cry_Grimmsnarl + cry_reverse Cry_Obstagoon + cry_reverse Cry_Perrserker + cry_reverse Cry_Cursola + cry_reverse Cry_Sirfetchd + cry_reverse Cry_MrRime + cry_reverse Cry_Runerigus + cry_reverse Cry_Milcery + cry_reverse Cry_Alcremie + cry_reverse Cry_Falinks + cry_reverse Cry_Pincurchin + cry_reverse Cry_Snom + cry_reverse Cry_Frosmoth + cry_reverse Cry_Stonjourner + cry_reverse Cry_Eiscue + cry_reverse Cry_Indeedee + cry_reverse Cry_Morpeko + cry_reverse Cry_Cufant + cry_reverse Cry_Copperajah + cry_reverse Cry_Dracozolt + cry_reverse Cry_Arctozolt + cry_reverse Cry_Dracovish + cry_reverse Cry_Arctovish + cry_reverse Cry_Duraludon + cry_reverse Cry_Dreepy + cry_reverse Cry_Drakloak + cry_reverse Cry_Dragapult + cry_reverse Cry_Zacian + cry_reverse Cry_Zamazenta + cry_reverse Cry_Eternatus + cry_reverse Cry_Kubfu + cry_reverse Cry_Urshifu + cry_reverse Cry_Zarude + cry_reverse Cry_Regieleki + cry_reverse Cry_Regidrago + cry_reverse Cry_Glastrier + cry_reverse Cry_Spectrier + cry_reverse Cry_Calyrex @ Megas - cry_reverse_uncomp Cry_VenusaurMega - cry_reverse_uncomp Cry_CharizardMegaX - cry_reverse_uncomp Cry_CharizardMegaY - cry_reverse_uncomp Cry_BlastoiseMega - cry_reverse_uncomp Cry_BeedrillMega - cry_reverse_uncomp Cry_PidgeotMega - cry_reverse_uncomp Cry_AlakazamMega - cry_reverse_uncomp Cry_SlowbroMega - cry_reverse_uncomp Cry_GengarMega - cry_reverse_uncomp Cry_KangaskhanMega - cry_reverse_uncomp Cry_PinsirMega - cry_reverse_uncomp Cry_GyaradosMega - cry_reverse_uncomp Cry_AerodactylMega - cry_reverse_uncomp Cry_MewtwoMegaX - cry_reverse_uncomp Cry_MewtwoMegaY - cry_reverse_uncomp Cry_AmpharosMega - cry_reverse_uncomp Cry_SteelixMega - cry_reverse_uncomp Cry_ScizorMega - cry_reverse_uncomp Cry_HeracrossMega - cry_reverse_uncomp Cry_HoundoomMega - cry_reverse_uncomp Cry_TyranitarMega - cry_reverse_uncomp Cry_SceptileMega - cry_reverse_uncomp Cry_BlazikenMega - cry_reverse_uncomp Cry_SwampertMega - cry_reverse_uncomp Cry_GardevoirMega - cry_reverse_uncomp Cry_SableyeMega - cry_reverse_uncomp Cry_MawileMega - cry_reverse_uncomp Cry_AggronMega - cry_reverse_uncomp Cry_MedichamMega - cry_reverse_uncomp Cry_ManectricMega - cry_reverse_uncomp Cry_SharpedoMega - cry_reverse_uncomp Cry_CameruptMega - cry_reverse_uncomp Cry_AltariaMega - cry_reverse_uncomp Cry_BanetteMega - cry_reverse_uncomp Cry_AbsolMega - cry_reverse_uncomp Cry_GlalieMega - cry_reverse_uncomp Cry_SalamenceMega - cry_reverse_uncomp Cry_MetagrossMega - cry_reverse_uncomp Cry_LatiasMega - cry_reverse_uncomp Cry_LatiosMega - cry_reverse_uncomp Cry_LopunnyMega - cry_reverse_uncomp Cry_GarchompMega - cry_reverse_uncomp Cry_LucarioMega - cry_reverse_uncomp Cry_AbomasnowMega - cry_reverse_uncomp Cry_GalladeMega - cry_reverse_uncomp Cry_AudinoMega - cry_reverse_uncomp Cry_DiancieMega + cry_reverse Cry_VenusaurMega + cry_reverse Cry_CharizardMegaX + cry_reverse Cry_CharizardMegaY + cry_reverse Cry_BlastoiseMega + cry_reverse Cry_BeedrillMega + cry_reverse Cry_PidgeotMega + cry_reverse Cry_AlakazamMega + cry_reverse Cry_SlowbroMega + cry_reverse Cry_GengarMega + cry_reverse Cry_KangaskhanMega + cry_reverse Cry_PinsirMega + cry_reverse Cry_GyaradosMega + cry_reverse Cry_AerodactylMega + cry_reverse Cry_MewtwoMegaX + cry_reverse Cry_MewtwoMegaY + cry_reverse Cry_AmpharosMega + cry_reverse Cry_SteelixMega + cry_reverse Cry_ScizorMega + cry_reverse Cry_HeracrossMega + cry_reverse Cry_HoundoomMega + cry_reverse Cry_TyranitarMega + cry_reverse Cry_SceptileMega + cry_reverse Cry_BlazikenMega + cry_reverse Cry_SwampertMega + cry_reverse Cry_GardevoirMega + cry_reverse Cry_SableyeMega + cry_reverse Cry_MawileMega + cry_reverse Cry_AggronMega + cry_reverse Cry_MedichamMega + cry_reverse Cry_ManectricMega + cry_reverse Cry_SharpedoMega + cry_reverse Cry_CameruptMega + cry_reverse Cry_AltariaMega + cry_reverse Cry_BanetteMega + cry_reverse Cry_AbsolMega + cry_reverse Cry_GlalieMega + cry_reverse Cry_SalamenceMega + cry_reverse Cry_MetagrossMega + cry_reverse Cry_LatiasMega + cry_reverse Cry_LatiosMega + cry_reverse Cry_LopunnyMega + cry_reverse Cry_GarchompMega + cry_reverse Cry_LucarioMega + cry_reverse Cry_AbomasnowMega + cry_reverse Cry_GalladeMega + cry_reverse Cry_AudinoMega + cry_reverse Cry_DiancieMega @ Special Mega + Primals - cry_reverse_uncomp Cry_RayquazaMega - cry_reverse_uncomp Cry_KyogrePrimal - cry_reverse_uncomp Cry_GroudonPrimal + cry_reverse Cry_RayquazaMega + cry_reverse Cry_KyogrePrimal + cry_reverse Cry_GroudonPrimal @ Alolan Forms cry_reverse Cry_Rattata cry_reverse Cry_Raticate @@ -2247,7 +2247,7 @@ gCryTable_Reverse:: cry_reverse Cry_Meowth cry_reverse Cry_Ponyta cry_reverse Cry_Rapidash - cry_reverse_uncomp Cry_SlowpokeGalarian + cry_reverse Cry_SlowpokeGalarian cry_reverse Cry_Slowbro cry_reverse Cry_Farfetchd cry_reverse Cry_Weezing @@ -2388,160 +2388,160 @@ gCryTable_Reverse:: cry_reverse Cry_Genesect cry_reverse Cry_Genesect @ Greninja - cry_reverse_uncomp Cry_Greninja - cry_reverse_uncomp Cry_Greninja + cry_reverse Cry_Greninja + cry_reverse Cry_Greninja @ Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon - cry_reverse_uncomp Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon + cry_reverse Cry_Vivillon @ Flabébé - cry_reverse_uncomp Cry_Flabebe - cry_reverse_uncomp Cry_Flabebe - cry_reverse_uncomp Cry_Flabebe - cry_reverse_uncomp Cry_Flabebe + cry_reverse Cry_Flabebe + cry_reverse Cry_Flabebe + cry_reverse Cry_Flabebe + cry_reverse Cry_Flabebe @ Floette - cry_reverse_uncomp Cry_Floette - cry_reverse_uncomp Cry_Floette - cry_reverse_uncomp Cry_Floette - cry_reverse_uncomp Cry_Floette - cry_reverse_uncomp Cry_FloetteEternalFlower + cry_reverse Cry_Floette + cry_reverse Cry_Floette + cry_reverse Cry_Floette + cry_reverse Cry_Floette + cry_reverse Cry_FloetteEternalFlower @ Florges - cry_reverse_uncomp Cry_Florges - cry_reverse_uncomp Cry_Florges - cry_reverse_uncomp Cry_Florges - cry_reverse_uncomp Cry_Florges + cry_reverse Cry_Florges + cry_reverse Cry_Florges + cry_reverse Cry_Florges + cry_reverse Cry_Florges @ Furfrou - cry_reverse_uncomp Cry_Furfrou - cry_reverse_uncomp Cry_Furfrou - cry_reverse_uncomp Cry_Furfrou - cry_reverse_uncomp Cry_Furfrou - cry_reverse_uncomp Cry_Furfrou - cry_reverse_uncomp Cry_Furfrou - cry_reverse_uncomp Cry_Furfrou - cry_reverse_uncomp Cry_Furfrou - cry_reverse_uncomp Cry_Furfrou + cry_reverse Cry_Furfrou + cry_reverse Cry_Furfrou + cry_reverse Cry_Furfrou + cry_reverse Cry_Furfrou + cry_reverse Cry_Furfrou + cry_reverse Cry_Furfrou + cry_reverse Cry_Furfrou + cry_reverse Cry_Furfrou + cry_reverse Cry_Furfrou @ Meowstic - cry_reverse_uncomp Cry_Meowstic + cry_reverse Cry_Meowstic @ Aegislash - cry_reverse_uncomp Cry_Aegislash + cry_reverse Cry_Aegislash @ Pumpkaboo - cry_reverse_uncomp Cry_Pumpkaboo - cry_reverse_uncomp Cry_Pumpkaboo - cry_reverse_uncomp Cry_PumpkabooSuper + cry_reverse Cry_Pumpkaboo + cry_reverse Cry_Pumpkaboo + cry_reverse Cry_PumpkabooSuper @ Gourgeist - cry_reverse_uncomp Cry_Gourgeist - cry_reverse_uncomp Cry_Gourgeist - cry_reverse_uncomp Cry_GourgeistSuper + cry_reverse Cry_Gourgeist + cry_reverse Cry_Gourgeist + cry_reverse Cry_GourgeistSuper @ Xerneas - cry_reverse_uncomp Cry_Xerneas + cry_reverse Cry_Xerneas @ Zygarde - cry_reverse_uncomp Cry_Zygarde10 - cry_reverse_uncomp Cry_Zygarde10 - cry_reverse_uncomp Cry_Zygarde - cry_reverse_uncomp Cry_ZygardeComplete + cry_reverse Cry_Zygarde10 + cry_reverse Cry_Zygarde10 + cry_reverse Cry_Zygarde + cry_reverse Cry_ZygardeComplete @ Hoopa - cry_reverse_uncomp Cry_HoopaUnbound + cry_reverse Cry_HoopaUnbound @ Oricorio - cry_reverse_uncomp Cry_OricorioPomPom - cry_reverse_uncomp Cry_OricorioPau - cry_reverse_uncomp Cry_OricorioSensu + cry_reverse Cry_OricorioPomPom + cry_reverse Cry_OricorioPau + cry_reverse Cry_OricorioSensu @ Rockruff - cry_reverse_uncomp Cry_Rockruff + cry_reverse Cry_Rockruff @ Lycanroc - cry_reverse_uncomp Cry_LycanrocMidnight - cry_reverse_uncomp Cry_LycanrocDusk + cry_reverse Cry_LycanrocMidnight + cry_reverse Cry_LycanrocDusk @ Wishiwashi - cry_reverse_uncomp Cry_WishiwashiSchool + cry_reverse Cry_WishiwashiSchool @ Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally - cry_reverse_uncomp Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally + cry_reverse Cry_Silvally @ Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior - cry_reverse_uncomp Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior + cry_reverse Cry_Minior @ Mimikyu - cry_reverse_uncomp Cry_Mimikyu + cry_reverse Cry_Mimikyu @ Necrozma - cry_reverse_uncomp Cry_NecrozmaDuskMane - cry_reverse_uncomp Cry_NecrozmaDawnWings - cry_reverse_uncomp Cry_NecrozmaUltra + cry_reverse Cry_NecrozmaDuskMane + cry_reverse Cry_NecrozmaDawnWings + cry_reverse Cry_NecrozmaUltra @ Magearna - cry_reverse_uncomp Cry_Magearna + cry_reverse Cry_Magearna @ Cramorant - cry_reverse_uncomp Cry_Cramorant - cry_reverse_uncomp Cry_Cramorant + cry_reverse Cry_Cramorant + cry_reverse Cry_Cramorant @ Toxtricity - cry_reverse_uncomp Cry_ToxtricityLowKey + cry_reverse Cry_ToxtricityLowKey @ Sinistea - cry_reverse_uncomp Cry_Sinistea + cry_reverse Cry_Sinistea @ Polteageist - cry_reverse_uncomp Cry_Polteageist + cry_reverse Cry_Polteageist @ Alcremie - cry_reverse_uncomp Cry_Alcremie - cry_reverse_uncomp Cry_Alcremie - cry_reverse_uncomp Cry_Alcremie - cry_reverse_uncomp Cry_Alcremie - cry_reverse_uncomp Cry_Alcremie - cry_reverse_uncomp Cry_Alcremie - cry_reverse_uncomp Cry_Alcremie - cry_reverse_uncomp Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie + cry_reverse Cry_Alcremie @ Eiscue - cry_reverse_uncomp Cry_EiscueNoiceFace + cry_reverse Cry_EiscueNoiceFace @ Indeedee - cry_reverse_uncomp Cry_IndeedeeFemale + cry_reverse Cry_IndeedeeFemale @ Morpeko - cry_reverse_uncomp Cry_MorpekoHangry + cry_reverse Cry_MorpekoHangry @ Zacian - cry_reverse_uncomp Cry_ZacianCrownedSword + cry_reverse Cry_ZacianCrownedSword @ Zamazenta - cry_reverse_uncomp Cry_ZamazentaCrownedShield + cry_reverse Cry_ZamazentaCrownedShield @ Eternatus - cry_reverse_uncomp Cry_EternatusEternamax + cry_reverse Cry_EternatusEternamax @ Urshifu - cry_reverse_uncomp Cry_UrshifuRapidStrikeStyle + cry_reverse Cry_UrshifuRapidStrikeStyle @ Zarude - cry_reverse_uncomp Cry_Zarude + cry_reverse Cry_Zarude @ Calyrex - cry_reverse_uncomp Cry_CalyrexIceRider - cry_reverse_uncomp Cry_CalyrexShadowRider + cry_reverse Cry_CalyrexIceRider + cry_reverse Cry_CalyrexShadowRider diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index ede43d5c5a..472c6d37bb 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -2984,1203 +2984,1203 @@ Cry_Genesect:: .align 2 Cry_Chespin:: - .incbin "sound/direct_sound_samples/cries/uncomp_chespin.bin" + .incbin "sound/direct_sound_samples/cries/chespin.bin" .align 2 Cry_Quilladin:: - .incbin "sound/direct_sound_samples/cries/uncomp_quilladin.bin" + .incbin "sound/direct_sound_samples/cries/quilladin.bin" .align 2 Cry_Chesnaught:: - .incbin "sound/direct_sound_samples/cries/uncomp_chesnaught.bin" + .incbin "sound/direct_sound_samples/cries/chesnaught.bin" .align 2 Cry_Fennekin:: - .incbin "sound/direct_sound_samples/cries/uncomp_fennekin.bin" + .incbin "sound/direct_sound_samples/cries/fennekin.bin" .align 2 Cry_Braixen:: - .incbin "sound/direct_sound_samples/cries/uncomp_braixen.bin" + .incbin "sound/direct_sound_samples/cries/braixen.bin" .align 2 Cry_Delphox:: - .incbin "sound/direct_sound_samples/cries/uncomp_delphox.bin" + .incbin "sound/direct_sound_samples/cries/delphox.bin" .align 2 Cry_Froakie:: - .incbin "sound/direct_sound_samples/cries/uncomp_froakie.bin" + .incbin "sound/direct_sound_samples/cries/froakie.bin" .align 2 Cry_Frogadier:: - .incbin "sound/direct_sound_samples/cries/uncomp_frogadier.bin" + .incbin "sound/direct_sound_samples/cries/frogadier.bin" .align 2 Cry_Greninja:: - .incbin "sound/direct_sound_samples/cries/uncomp_greninja.bin" + .incbin "sound/direct_sound_samples/cries/greninja.bin" .align 2 Cry_Bunnelby:: - .incbin "sound/direct_sound_samples/cries/uncomp_bunnelby.bin" + .incbin "sound/direct_sound_samples/cries/bunnelby.bin" .align 2 Cry_Diggersby:: - .incbin "sound/direct_sound_samples/cries/uncomp_diggersby.bin" + .incbin "sound/direct_sound_samples/cries/diggersby.bin" .align 2 Cry_Fletchling:: - .incbin "sound/direct_sound_samples/cries/uncomp_fletchling.bin" + .incbin "sound/direct_sound_samples/cries/fletchling.bin" .align 2 Cry_Fletchinder:: - .incbin "sound/direct_sound_samples/cries/uncomp_fletchinder.bin" + .incbin "sound/direct_sound_samples/cries/fletchinder.bin" .align 2 Cry_Talonflame:: - .incbin "sound/direct_sound_samples/cries/uncomp_talonflame.bin" + .incbin "sound/direct_sound_samples/cries/talonflame.bin" .align 2 Cry_Scatterbug:: - .incbin "sound/direct_sound_samples/cries/uncomp_scatterbug.bin" + .incbin "sound/direct_sound_samples/cries/scatterbug.bin" .align 2 Cry_Spewpa:: - .incbin "sound/direct_sound_samples/cries/uncomp_spewpa.bin" + .incbin "sound/direct_sound_samples/cries/spewpa.bin" .align 2 Cry_Vivillon:: - .incbin "sound/direct_sound_samples/cries/uncomp_vivillon.bin" + .incbin "sound/direct_sound_samples/cries/vivillon.bin" .align 2 Cry_Litleo:: - .incbin "sound/direct_sound_samples/cries/uncomp_litleo.bin" + .incbin "sound/direct_sound_samples/cries/litleo.bin" .align 2 Cry_Pyroar:: - .incbin "sound/direct_sound_samples/cries/uncomp_pyroar.bin" + .incbin "sound/direct_sound_samples/cries/pyroar.bin" .align 2 Cry_Flabebe:: - .incbin "sound/direct_sound_samples/cries/uncomp_flabebe.bin" + .incbin "sound/direct_sound_samples/cries/flabebe.bin" .align 2 Cry_Floette:: - .incbin "sound/direct_sound_samples/cries/uncomp_floette.bin" + .incbin "sound/direct_sound_samples/cries/floette.bin" .align 2 Cry_Florges:: - .incbin "sound/direct_sound_samples/cries/uncomp_florges.bin" + .incbin "sound/direct_sound_samples/cries/florges.bin" .align 2 Cry_Skiddo:: - .incbin "sound/direct_sound_samples/cries/uncomp_skiddo.bin" + .incbin "sound/direct_sound_samples/cries/skiddo.bin" .align 2 Cry_Gogoat:: - .incbin "sound/direct_sound_samples/cries/uncomp_gogoat.bin" + .incbin "sound/direct_sound_samples/cries/gogoat.bin" .align 2 Cry_Pancham:: - .incbin "sound/direct_sound_samples/cries/uncomp_pancham.bin" + .incbin "sound/direct_sound_samples/cries/pancham.bin" .align 2 Cry_Pangoro:: - .incbin "sound/direct_sound_samples/cries/uncomp_pangoro.bin" + .incbin "sound/direct_sound_samples/cries/pangoro.bin" .align 2 Cry_Furfrou:: - .incbin "sound/direct_sound_samples/cries/uncomp_furfrou.bin" + .incbin "sound/direct_sound_samples/cries/furfrou.bin" .align 2 Cry_Espurr:: - .incbin "sound/direct_sound_samples/cries/uncomp_espurr.bin" + .incbin "sound/direct_sound_samples/cries/espurr.bin" .align 2 Cry_Meowstic:: - .incbin "sound/direct_sound_samples/cries/uncomp_meowstic.bin" + .incbin "sound/direct_sound_samples/cries/meowstic.bin" .align 2 Cry_Honedge:: - .incbin "sound/direct_sound_samples/cries/uncomp_honedge.bin" + .incbin "sound/direct_sound_samples/cries/honedge.bin" .align 2 Cry_Doublade:: - .incbin "sound/direct_sound_samples/cries/uncomp_doublade.bin" + .incbin "sound/direct_sound_samples/cries/doublade.bin" .align 2 Cry_Aegislash:: - .incbin "sound/direct_sound_samples/cries/uncomp_aegislash.bin" + .incbin "sound/direct_sound_samples/cries/aegislash.bin" .align 2 Cry_Spritzee:: - .incbin "sound/direct_sound_samples/cries/uncomp_spritzee.bin" + .incbin "sound/direct_sound_samples/cries/spritzee.bin" .align 2 Cry_Aromatisse:: - .incbin "sound/direct_sound_samples/cries/uncomp_aromatisse.bin" + .incbin "sound/direct_sound_samples/cries/aromatisse.bin" .align 2 Cry_Swirlix:: - .incbin "sound/direct_sound_samples/cries/uncomp_swirlix.bin" + .incbin "sound/direct_sound_samples/cries/swirlix.bin" .align 2 Cry_Slurpuff:: - .incbin "sound/direct_sound_samples/cries/uncomp_slurpuff.bin" + .incbin "sound/direct_sound_samples/cries/slurpuff.bin" .align 2 Cry_Inkay:: - .incbin "sound/direct_sound_samples/cries/uncomp_inkay.bin" + .incbin "sound/direct_sound_samples/cries/inkay.bin" .align 2 Cry_Malamar:: - .incbin "sound/direct_sound_samples/cries/uncomp_malamar.bin" + .incbin "sound/direct_sound_samples/cries/malamar.bin" .align 2 Cry_Binacle:: - .incbin "sound/direct_sound_samples/cries/uncomp_binacle.bin" + .incbin "sound/direct_sound_samples/cries/binacle.bin" .align 2 Cry_Barbaracle:: - .incbin "sound/direct_sound_samples/cries/uncomp_barbaracle.bin" + .incbin "sound/direct_sound_samples/cries/barbaracle.bin" .align 2 Cry_Skrelp:: - .incbin "sound/direct_sound_samples/cries/uncomp_skrelp.bin" + .incbin "sound/direct_sound_samples/cries/skrelp.bin" .align 2 Cry_Dragalge:: - .incbin "sound/direct_sound_samples/cries/uncomp_dragalge.bin" + .incbin "sound/direct_sound_samples/cries/dragalge.bin" .align 2 Cry_Clauncher:: - .incbin "sound/direct_sound_samples/cries/uncomp_clauncher.bin" + .incbin "sound/direct_sound_samples/cries/clauncher.bin" .align 2 Cry_Clawitzer:: - .incbin "sound/direct_sound_samples/cries/uncomp_clawitzer.bin" + .incbin "sound/direct_sound_samples/cries/clawitzer.bin" .align 2 Cry_Helioptile:: - .incbin "sound/direct_sound_samples/cries/uncomp_helioptile.bin" + .incbin "sound/direct_sound_samples/cries/helioptile.bin" .align 2 Cry_Heliolisk:: - .incbin "sound/direct_sound_samples/cries/uncomp_heliolisk.bin" + .incbin "sound/direct_sound_samples/cries/heliolisk.bin" .align 2 Cry_Tyrunt:: - .incbin "sound/direct_sound_samples/cries/uncomp_tyrunt.bin" + .incbin "sound/direct_sound_samples/cries/tyrunt.bin" .align 2 Cry_Tyrantrum:: - .incbin "sound/direct_sound_samples/cries/uncomp_tyrantrum.bin" + .incbin "sound/direct_sound_samples/cries/tyrantrum.bin" .align 2 Cry_Amaura:: - .incbin "sound/direct_sound_samples/cries/uncomp_amaura.bin" + .incbin "sound/direct_sound_samples/cries/amaura.bin" .align 2 Cry_Aurorus:: - .incbin "sound/direct_sound_samples/cries/uncomp_aurorus.bin" + .incbin "sound/direct_sound_samples/cries/aurorus.bin" .align 2 Cry_Sylveon:: - .incbin "sound/direct_sound_samples/cries/uncomp_sylveon.bin" + .incbin "sound/direct_sound_samples/cries/sylveon.bin" .align 2 Cry_Hawlucha:: - .incbin "sound/direct_sound_samples/cries/uncomp_hawlucha.bin" + .incbin "sound/direct_sound_samples/cries/hawlucha.bin" .align 2 Cry_Dedenne:: - .incbin "sound/direct_sound_samples/cries/uncomp_dedenne.bin" + .incbin "sound/direct_sound_samples/cries/dedenne.bin" .align 2 Cry_Carbink:: - .incbin "sound/direct_sound_samples/cries/uncomp_carbink.bin" + .incbin "sound/direct_sound_samples/cries/carbink.bin" .align 2 Cry_Goomy:: - .incbin "sound/direct_sound_samples/cries/uncomp_goomy.bin" + .incbin "sound/direct_sound_samples/cries/goomy.bin" .align 2 Cry_Sliggoo:: - .incbin "sound/direct_sound_samples/cries/uncomp_sliggoo.bin" + .incbin "sound/direct_sound_samples/cries/sliggoo.bin" .align 2 Cry_Goodra:: - .incbin "sound/direct_sound_samples/cries/uncomp_goodra.bin" + .incbin "sound/direct_sound_samples/cries/goodra.bin" .align 2 Cry_Klefki:: - .incbin "sound/direct_sound_samples/cries/uncomp_klefki.bin" + .incbin "sound/direct_sound_samples/cries/klefki.bin" .align 2 Cry_Phantump:: - .incbin "sound/direct_sound_samples/cries/uncomp_phantump.bin" + .incbin "sound/direct_sound_samples/cries/phantump.bin" .align 2 Cry_Trevenant:: - .incbin "sound/direct_sound_samples/cries/uncomp_trevenant.bin" + .incbin "sound/direct_sound_samples/cries/trevenant.bin" .align 2 Cry_Pumpkaboo:: - .incbin "sound/direct_sound_samples/cries/uncomp_pumpkaboo.bin" + .incbin "sound/direct_sound_samples/cries/pumpkaboo.bin" .align 2 Cry_Gourgeist:: - .incbin "sound/direct_sound_samples/cries/uncomp_gourgeist.bin" + .incbin "sound/direct_sound_samples/cries/gourgeist.bin" .align 2 Cry_Bergmite:: - .incbin "sound/direct_sound_samples/cries/uncomp_bergmite.bin" + .incbin "sound/direct_sound_samples/cries/bergmite.bin" .align 2 Cry_Avalugg:: - .incbin "sound/direct_sound_samples/cries/uncomp_avalugg.bin" + .incbin "sound/direct_sound_samples/cries/avalugg.bin" .align 2 Cry_Noibat:: - .incbin "sound/direct_sound_samples/cries/uncomp_noibat.bin" + .incbin "sound/direct_sound_samples/cries/noibat.bin" .align 2 Cry_Noivern:: - .incbin "sound/direct_sound_samples/cries/uncomp_noivern.bin" + .incbin "sound/direct_sound_samples/cries/noivern.bin" .align 2 Cry_Xerneas:: - .incbin "sound/direct_sound_samples/cries/uncomp_xerneas.bin" + .incbin "sound/direct_sound_samples/cries/xerneas.bin" .align 2 Cry_Yveltal:: - .incbin "sound/direct_sound_samples/cries/uncomp_yveltal.bin" + .incbin "sound/direct_sound_samples/cries/yveltal.bin" .align 2 Cry_Zygarde:: - .incbin "sound/direct_sound_samples/cries/uncomp_zygarde.bin" + .incbin "sound/direct_sound_samples/cries/zygarde.bin" .align 2 Cry_Diancie:: - .incbin "sound/direct_sound_samples/cries/uncomp_diancie.bin" + .incbin "sound/direct_sound_samples/cries/diancie.bin" .align 2 Cry_Hoopa:: - .incbin "sound/direct_sound_samples/cries/uncomp_hoopa.bin" + .incbin "sound/direct_sound_samples/cries/hoopa.bin" .align 2 Cry_Volcanion:: - .incbin "sound/direct_sound_samples/cries/uncomp_volcanion.bin" + .incbin "sound/direct_sound_samples/cries/volcanion.bin" .align 2 Cry_Rowlet:: - .incbin "sound/direct_sound_samples/cries/uncomp_rowlet.bin" + .incbin "sound/direct_sound_samples/cries/rowlet.bin" .align 2 Cry_Dartrix:: - .incbin "sound/direct_sound_samples/cries/uncomp_dartrix.bin" + .incbin "sound/direct_sound_samples/cries/dartrix.bin" .align 2 Cry_Decidueye:: - .incbin "sound/direct_sound_samples/cries/uncomp_decidueye.bin" + .incbin "sound/direct_sound_samples/cries/decidueye.bin" .align 2 Cry_Litten:: - .incbin "sound/direct_sound_samples/cries/uncomp_litten.bin" + .incbin "sound/direct_sound_samples/cries/litten.bin" .align 2 Cry_Torracat:: - .incbin "sound/direct_sound_samples/cries/uncomp_torracat.bin" + .incbin "sound/direct_sound_samples/cries/torracat.bin" .align 2 Cry_Incineroar:: - .incbin "sound/direct_sound_samples/cries/uncomp_incineroar.bin" + .incbin "sound/direct_sound_samples/cries/incineroar.bin" .align 2 Cry_Popplio:: - .incbin "sound/direct_sound_samples/cries/uncomp_popplio.bin" + .incbin "sound/direct_sound_samples/cries/popplio.bin" .align 2 Cry_Brionne:: - .incbin "sound/direct_sound_samples/cries/uncomp_brionne.bin" + .incbin "sound/direct_sound_samples/cries/brionne.bin" .align 2 Cry_Primarina:: - .incbin "sound/direct_sound_samples/cries/uncomp_primarina.bin" + .incbin "sound/direct_sound_samples/cries/primarina.bin" .align 2 Cry_Pikipek:: - .incbin "sound/direct_sound_samples/cries/uncomp_pikipek.bin" + .incbin "sound/direct_sound_samples/cries/pikipek.bin" .align 2 Cry_Trumbeak:: - .incbin "sound/direct_sound_samples/cries/uncomp_trumbeak.bin" + .incbin "sound/direct_sound_samples/cries/trumbeak.bin" .align 2 Cry_Toucannon:: - .incbin "sound/direct_sound_samples/cries/uncomp_toucannon.bin" + .incbin "sound/direct_sound_samples/cries/toucannon.bin" .align 2 Cry_Yungoos:: - .incbin "sound/direct_sound_samples/cries/uncomp_yungoos.bin" + .incbin "sound/direct_sound_samples/cries/yungoos.bin" .align 2 Cry_Gumshoos:: - .incbin "sound/direct_sound_samples/cries/uncomp_gumshoos.bin" + .incbin "sound/direct_sound_samples/cries/gumshoos.bin" .align 2 Cry_Grubbin:: - .incbin "sound/direct_sound_samples/cries/uncomp_grubbin.bin" + .incbin "sound/direct_sound_samples/cries/grubbin.bin" .align 2 Cry_Charjabug:: - .incbin "sound/direct_sound_samples/cries/uncomp_charjabug.bin" + .incbin "sound/direct_sound_samples/cries/charjabug.bin" .align 2 Cry_Vikavolt:: - .incbin "sound/direct_sound_samples/cries/uncomp_vikavolt.bin" + .incbin "sound/direct_sound_samples/cries/vikavolt.bin" .align 2 Cry_Crabrawler:: - .incbin "sound/direct_sound_samples/cries/uncomp_crabrawler.bin" + .incbin "sound/direct_sound_samples/cries/crabrawler.bin" .align 2 Cry_Crabominable:: - .incbin "sound/direct_sound_samples/cries/uncomp_crabominable.bin" + .incbin "sound/direct_sound_samples/cries/crabominable.bin" .align 2 Cry_Oricorio:: - .incbin "sound/direct_sound_samples/cries/uncomp_oricorio.bin" + .incbin "sound/direct_sound_samples/cries/oricorio.bin" .align 2 Cry_Cutiefly:: - .incbin "sound/direct_sound_samples/cries/uncomp_cutiefly.bin" + .incbin "sound/direct_sound_samples/cries/cutiefly.bin" .align 2 Cry_Ribombee:: - .incbin "sound/direct_sound_samples/cries/uncomp_ribombee.bin" + .incbin "sound/direct_sound_samples/cries/ribombee.bin" .align 2 Cry_Rockruff:: - .incbin "sound/direct_sound_samples/cries/uncomp_rockruff.bin" + .incbin "sound/direct_sound_samples/cries/rockruff.bin" .align 2 Cry_Lycanroc:: - .incbin "sound/direct_sound_samples/cries/uncomp_lycanroc.bin" + .incbin "sound/direct_sound_samples/cries/lycanroc.bin" .align 2 Cry_Wishiwashi:: - .incbin "sound/direct_sound_samples/cries/uncomp_wishiwashi.bin" + .incbin "sound/direct_sound_samples/cries/wishiwashi.bin" .align 2 Cry_Mareanie:: - .incbin "sound/direct_sound_samples/cries/uncomp_mareanie.bin" + .incbin "sound/direct_sound_samples/cries/mareanie.bin" .align 2 Cry_Toxapex:: - .incbin "sound/direct_sound_samples/cries/uncomp_toxapex.bin" + .incbin "sound/direct_sound_samples/cries/toxapex.bin" .align 2 Cry_Mudbray:: - .incbin "sound/direct_sound_samples/cries/uncomp_mudbray.bin" + .incbin "sound/direct_sound_samples/cries/mudbray.bin" .align 2 Cry_Mudsdale:: - .incbin "sound/direct_sound_samples/cries/uncomp_mudsdale.bin" + .incbin "sound/direct_sound_samples/cries/mudsdale.bin" .align 2 Cry_Dewpider:: - .incbin "sound/direct_sound_samples/cries/uncomp_dewpider.bin" + .incbin "sound/direct_sound_samples/cries/dewpider.bin" .align 2 Cry_Araquanid:: - .incbin "sound/direct_sound_samples/cries/uncomp_araquanid.bin" + .incbin "sound/direct_sound_samples/cries/araquanid.bin" .align 2 Cry_Fomantis:: - .incbin "sound/direct_sound_samples/cries/uncomp_fomantis.bin" + .incbin "sound/direct_sound_samples/cries/fomantis.bin" .align 2 Cry_Lurantis:: - .incbin "sound/direct_sound_samples/cries/uncomp_lurantis.bin" + .incbin "sound/direct_sound_samples/cries/lurantis.bin" .align 2 Cry_Morelull:: - .incbin "sound/direct_sound_samples/cries/uncomp_morelull.bin" + .incbin "sound/direct_sound_samples/cries/morelull.bin" .align 2 Cry_Shiinotic:: - .incbin "sound/direct_sound_samples/cries/uncomp_shiinotic.bin" + .incbin "sound/direct_sound_samples/cries/shiinotic.bin" .align 2 Cry_Salandit:: - .incbin "sound/direct_sound_samples/cries/uncomp_salandit.bin" + .incbin "sound/direct_sound_samples/cries/salandit.bin" .align 2 Cry_Salazzle:: - .incbin "sound/direct_sound_samples/cries/uncomp_salazzle.bin" + .incbin "sound/direct_sound_samples/cries/salazzle.bin" .align 2 Cry_Stufful:: - .incbin "sound/direct_sound_samples/cries/uncomp_stufful.bin" + .incbin "sound/direct_sound_samples/cries/stufful.bin" .align 2 Cry_Bewear:: - .incbin "sound/direct_sound_samples/cries/uncomp_bewear.bin" + .incbin "sound/direct_sound_samples/cries/bewear.bin" .align 2 Cry_Bounsweet:: - .incbin "sound/direct_sound_samples/cries/uncomp_bounsweet.bin" + .incbin "sound/direct_sound_samples/cries/bounsweet.bin" .align 2 Cry_Steenee:: - .incbin "sound/direct_sound_samples/cries/uncomp_steenee.bin" + .incbin "sound/direct_sound_samples/cries/steenee.bin" .align 2 Cry_Tsareena:: - .incbin "sound/direct_sound_samples/cries/uncomp_tsareena.bin" + .incbin "sound/direct_sound_samples/cries/tsareena.bin" .align 2 Cry_Comfey:: - .incbin "sound/direct_sound_samples/cries/uncomp_comfey.bin" + .incbin "sound/direct_sound_samples/cries/comfey.bin" .align 2 Cry_Oranguru:: - .incbin "sound/direct_sound_samples/cries/uncomp_oranguru.bin" + .incbin "sound/direct_sound_samples/cries/oranguru.bin" .align 2 Cry_Passimian:: - .incbin "sound/direct_sound_samples/cries/uncomp_passimian.bin" + .incbin "sound/direct_sound_samples/cries/passimian.bin" .align 2 Cry_Wimpod:: - .incbin "sound/direct_sound_samples/cries/uncomp_wimpod.bin" + .incbin "sound/direct_sound_samples/cries/wimpod.bin" .align 2 Cry_Golisopod:: - .incbin "sound/direct_sound_samples/cries/uncomp_golisopod.bin" + .incbin "sound/direct_sound_samples/cries/golisopod.bin" .align 2 Cry_Sandygast:: - .incbin "sound/direct_sound_samples/cries/uncomp_sandygast.bin" + .incbin "sound/direct_sound_samples/cries/sandygast.bin" .align 2 Cry_Palossand:: - .incbin "sound/direct_sound_samples/cries/uncomp_palossand.bin" + .incbin "sound/direct_sound_samples/cries/palossand.bin" .align 2 Cry_Pyukumuku:: - .incbin "sound/direct_sound_samples/cries/uncomp_pyukumuku.bin" + .incbin "sound/direct_sound_samples/cries/pyukumuku.bin" .align 2 Cry_TypeNull:: - .incbin "sound/direct_sound_samples/cries/uncomp_type_null.bin" + .incbin "sound/direct_sound_samples/cries/type_null.bin" .align 2 Cry_Silvally:: - .incbin "sound/direct_sound_samples/cries/uncomp_silvally.bin" + .incbin "sound/direct_sound_samples/cries/silvally.bin" .align 2 Cry_Minior:: - .incbin "sound/direct_sound_samples/cries/uncomp_minior.bin" + .incbin "sound/direct_sound_samples/cries/minior.bin" .align 2 Cry_Komala:: - .incbin "sound/direct_sound_samples/cries/uncomp_komala.bin" + .incbin "sound/direct_sound_samples/cries/komala.bin" .align 2 Cry_Turtonator:: - .incbin "sound/direct_sound_samples/cries/uncomp_turtonator.bin" + .incbin "sound/direct_sound_samples/cries/turtonator.bin" .align 2 Cry_Togedemaru:: - .incbin "sound/direct_sound_samples/cries/uncomp_togedemaru.bin" + .incbin "sound/direct_sound_samples/cries/togedemaru.bin" .align 2 Cry_Mimikyu:: - .incbin "sound/direct_sound_samples/cries/uncomp_mimikyu.bin" + .incbin "sound/direct_sound_samples/cries/mimikyu.bin" .align 2 Cry_Bruxish:: - .incbin "sound/direct_sound_samples/cries/uncomp_bruxish.bin" + .incbin "sound/direct_sound_samples/cries/bruxish.bin" .align 2 Cry_Drampa:: - .incbin "sound/direct_sound_samples/cries/uncomp_drampa.bin" + .incbin "sound/direct_sound_samples/cries/drampa.bin" .align 2 Cry_Dhelmise:: - .incbin "sound/direct_sound_samples/cries/uncomp_dhelmise.bin" + .incbin "sound/direct_sound_samples/cries/dhelmise.bin" .align 2 Cry_Jangmoo:: - .incbin "sound/direct_sound_samples/cries/uncomp_jangmo_o.bin" + .incbin "sound/direct_sound_samples/cries/jangmo_o.bin" .align 2 Cry_Hakamoo:: - .incbin "sound/direct_sound_samples/cries/uncomp_hakamo_o.bin" + .incbin "sound/direct_sound_samples/cries/hakamo_o.bin" .align 2 Cry_Kommoo:: - .incbin "sound/direct_sound_samples/cries/uncomp_kommo_o.bin" + .incbin "sound/direct_sound_samples/cries/kommo_o.bin" .align 2 Cry_TapuKoko:: - .incbin "sound/direct_sound_samples/cries/uncomp_tapu_koko.bin" + .incbin "sound/direct_sound_samples/cries/tapu_koko.bin" .align 2 Cry_TapuLele:: - .incbin "sound/direct_sound_samples/cries/uncomp_tapu_lele.bin" + .incbin "sound/direct_sound_samples/cries/tapu_lele.bin" .align 2 Cry_TapuBulu:: - .incbin "sound/direct_sound_samples/cries/uncomp_tapu_bulu.bin" + .incbin "sound/direct_sound_samples/cries/tapu_bulu.bin" .align 2 Cry_TapuFini:: - .incbin "sound/direct_sound_samples/cries/uncomp_tapu_fini.bin" + .incbin "sound/direct_sound_samples/cries/tapu_fini.bin" .align 2 Cry_Cosmog:: - .incbin "sound/direct_sound_samples/cries/uncomp_cosmog.bin" + .incbin "sound/direct_sound_samples/cries/cosmog.bin" .align 2 Cry_Cosmoem:: - .incbin "sound/direct_sound_samples/cries/uncomp_cosmoem.bin" + .incbin "sound/direct_sound_samples/cries/cosmoem.bin" .align 2 Cry_Solgaleo:: - .incbin "sound/direct_sound_samples/cries/uncomp_solgaleo.bin" + .incbin "sound/direct_sound_samples/cries/solgaleo.bin" .align 2 Cry_Lunala:: - .incbin "sound/direct_sound_samples/cries/uncomp_lunala.bin" + .incbin "sound/direct_sound_samples/cries/lunala.bin" .align 2 Cry_Nihilego:: - .incbin "sound/direct_sound_samples/cries/uncomp_nihilego.bin" + .incbin "sound/direct_sound_samples/cries/nihilego.bin" .align 2 Cry_Buzzwole:: - .incbin "sound/direct_sound_samples/cries/uncomp_buzzwole.bin" + .incbin "sound/direct_sound_samples/cries/buzzwole.bin" .align 2 Cry_Pheromosa:: - .incbin "sound/direct_sound_samples/cries/uncomp_pheromosa.bin" + .incbin "sound/direct_sound_samples/cries/pheromosa.bin" .align 2 Cry_Xurkitree:: - .incbin "sound/direct_sound_samples/cries/uncomp_xurkitree.bin" + .incbin "sound/direct_sound_samples/cries/xurkitree.bin" .align 2 Cry_Celesteela:: - .incbin "sound/direct_sound_samples/cries/uncomp_celesteela.bin" + .incbin "sound/direct_sound_samples/cries/celesteela.bin" .align 2 Cry_Kartana:: - .incbin "sound/direct_sound_samples/cries/uncomp_kartana.bin" + .incbin "sound/direct_sound_samples/cries/kartana.bin" .align 2 Cry_Guzzlord:: - .incbin "sound/direct_sound_samples/cries/uncomp_guzzlord.bin" + .incbin "sound/direct_sound_samples/cries/guzzlord.bin" .align 2 Cry_Necrozma:: - .incbin "sound/direct_sound_samples/cries/uncomp_necrozma.bin" + .incbin "sound/direct_sound_samples/cries/necrozma.bin" .align 2 Cry_Magearna:: - .incbin "sound/direct_sound_samples/cries/uncomp_magearna.bin" + .incbin "sound/direct_sound_samples/cries/magearna.bin" .align 2 Cry_Marshadow:: - .incbin "sound/direct_sound_samples/cries/uncomp_marshadow.bin" + .incbin "sound/direct_sound_samples/cries/marshadow.bin" .align 2 Cry_Poipole:: - .incbin "sound/direct_sound_samples/cries/uncomp_poipole.bin" + .incbin "sound/direct_sound_samples/cries/poipole.bin" .align 2 Cry_Naganadel:: - .incbin "sound/direct_sound_samples/cries/uncomp_naganadel.bin" + .incbin "sound/direct_sound_samples/cries/naganadel.bin" .align 2 Cry_Stakataka:: - .incbin "sound/direct_sound_samples/cries/uncomp_stakataka.bin" + .incbin "sound/direct_sound_samples/cries/stakataka.bin" .align 2 Cry_Blacephalon:: - .incbin "sound/direct_sound_samples/cries/uncomp_blacephalon.bin" + .incbin "sound/direct_sound_samples/cries/blacephalon.bin" .align 2 Cry_Zeraora:: - .incbin "sound/direct_sound_samples/cries/uncomp_zeraora.bin" + .incbin "sound/direct_sound_samples/cries/zeraora.bin" .align 2 Cry_Meltan:: - .incbin "sound/direct_sound_samples/cries/uncomp_meltan.bin" + .incbin "sound/direct_sound_samples/cries/meltan.bin" .align 2 Cry_Melmetal:: - .incbin "sound/direct_sound_samples/cries/uncomp_melmetal.bin" + .incbin "sound/direct_sound_samples/cries/melmetal.bin" .align 2 Cry_Grookey:: - .incbin "sound/direct_sound_samples/cries/uncomp_grookey.bin" + .incbin "sound/direct_sound_samples/cries/grookey.bin" .align 2 Cry_Thwackey:: - .incbin "sound/direct_sound_samples/cries/uncomp_thwackey.bin" + .incbin "sound/direct_sound_samples/cries/thwackey.bin" .align 2 Cry_Rillaboom:: - .incbin "sound/direct_sound_samples/cries/uncomp_rillaboom.bin" + .incbin "sound/direct_sound_samples/cries/rillaboom.bin" .align 2 Cry_Scorbunny:: - .incbin "sound/direct_sound_samples/cries/uncomp_scorbunny.bin" + .incbin "sound/direct_sound_samples/cries/scorbunny.bin" .align 2 Cry_Raboot:: - .incbin "sound/direct_sound_samples/cries/uncomp_raboot.bin" + .incbin "sound/direct_sound_samples/cries/raboot.bin" .align 2 Cry_Cinderace:: - .incbin "sound/direct_sound_samples/cries/uncomp_cinderace.bin" + .incbin "sound/direct_sound_samples/cries/cinderace.bin" .align 2 Cry_Sobble:: - .incbin "sound/direct_sound_samples/cries/uncomp_sobble.bin" + .incbin "sound/direct_sound_samples/cries/sobble.bin" .align 2 Cry_Drizzile:: - .incbin "sound/direct_sound_samples/cries/uncomp_drizzile.bin" + .incbin "sound/direct_sound_samples/cries/drizzile.bin" .align 2 Cry_Inteleon:: - .incbin "sound/direct_sound_samples/cries/uncomp_inteleon.bin" + .incbin "sound/direct_sound_samples/cries/inteleon.bin" .align 2 Cry_Skwovet:: - .incbin "sound/direct_sound_samples/cries/uncomp_skwovet.bin" + .incbin "sound/direct_sound_samples/cries/skwovet.bin" .align 2 Cry_Greedent:: - .incbin "sound/direct_sound_samples/cries/uncomp_greedent.bin" + .incbin "sound/direct_sound_samples/cries/greedent.bin" .align 2 Cry_Rookidee:: - .incbin "sound/direct_sound_samples/cries/uncomp_rookidee.bin" + .incbin "sound/direct_sound_samples/cries/rookidee.bin" .align 2 Cry_Corvisquire:: - .incbin "sound/direct_sound_samples/cries/uncomp_corvisquire.bin" + .incbin "sound/direct_sound_samples/cries/corvisquire.bin" .align 2 Cry_Corviknight:: - .incbin "sound/direct_sound_samples/cries/uncomp_corviknight.bin" + .incbin "sound/direct_sound_samples/cries/corviknight.bin" .align 2 Cry_Blipbug:: - .incbin "sound/direct_sound_samples/cries/uncomp_blipbug.bin" + .incbin "sound/direct_sound_samples/cries/blipbug.bin" .align 2 Cry_Dottler:: - .incbin "sound/direct_sound_samples/cries/uncomp_dottler.bin" + .incbin "sound/direct_sound_samples/cries/dottler.bin" .align 2 Cry_Orbeetle:: - .incbin "sound/direct_sound_samples/cries/uncomp_orbeetle.bin" + .incbin "sound/direct_sound_samples/cries/orbeetle.bin" .align 2 Cry_Nickit:: - .incbin "sound/direct_sound_samples/cries/uncomp_nickit.bin" + .incbin "sound/direct_sound_samples/cries/nickit.bin" .align 2 Cry_Thievul:: - .incbin "sound/direct_sound_samples/cries/uncomp_thievul.bin" + .incbin "sound/direct_sound_samples/cries/thievul.bin" .align 2 Cry_Gossifleur:: - .incbin "sound/direct_sound_samples/cries/uncomp_gossifleur.bin" + .incbin "sound/direct_sound_samples/cries/gossifleur.bin" .align 2 Cry_Eldegoss:: - .incbin "sound/direct_sound_samples/cries/uncomp_eldegoss.bin" + .incbin "sound/direct_sound_samples/cries/eldegoss.bin" .align 2 Cry_Wooloo:: - .incbin "sound/direct_sound_samples/cries/uncomp_wooloo.bin" + .incbin "sound/direct_sound_samples/cries/wooloo.bin" .align 2 Cry_Dubwool:: - .incbin "sound/direct_sound_samples/cries/uncomp_dubwool.bin" + .incbin "sound/direct_sound_samples/cries/dubwool.bin" .align 2 Cry_Chewtle:: - .incbin "sound/direct_sound_samples/cries/uncomp_chewtle.bin" + .incbin "sound/direct_sound_samples/cries/chewtle.bin" .align 2 Cry_Drednaw:: - .incbin "sound/direct_sound_samples/cries/uncomp_drednaw.bin" + .incbin "sound/direct_sound_samples/cries/drednaw.bin" .align 2 Cry_Yamper:: - .incbin "sound/direct_sound_samples/cries/uncomp_yamper.bin" + .incbin "sound/direct_sound_samples/cries/yamper.bin" .align 2 Cry_Boltund:: - .incbin "sound/direct_sound_samples/cries/uncomp_boltund.bin" + .incbin "sound/direct_sound_samples/cries/boltund.bin" .align 2 Cry_Rolycoly:: - .incbin "sound/direct_sound_samples/cries/uncomp_rolycoly.bin" + .incbin "sound/direct_sound_samples/cries/rolycoly.bin" .align 2 Cry_Carkol:: - .incbin "sound/direct_sound_samples/cries/uncomp_carkol.bin" + .incbin "sound/direct_sound_samples/cries/carkol.bin" .align 2 Cry_Coalossal:: - .incbin "sound/direct_sound_samples/cries/uncomp_coalossal.bin" + .incbin "sound/direct_sound_samples/cries/coalossal.bin" .align 2 Cry_Applin:: - .incbin "sound/direct_sound_samples/cries/uncomp_applin.bin" + .incbin "sound/direct_sound_samples/cries/applin.bin" .align 2 Cry_Flapple:: - .incbin "sound/direct_sound_samples/cries/uncomp_flapple.bin" + .incbin "sound/direct_sound_samples/cries/flapple.bin" .align 2 Cry_Appletun:: - .incbin "sound/direct_sound_samples/cries/uncomp_appletun.bin" + .incbin "sound/direct_sound_samples/cries/appletun.bin" .align 2 Cry_Silicobra:: - .incbin "sound/direct_sound_samples/cries/uncomp_silicobra.bin" + .incbin "sound/direct_sound_samples/cries/silicobra.bin" .align 2 Cry_Sandaconda:: - .incbin "sound/direct_sound_samples/cries/uncomp_sandaconda.bin" + .incbin "sound/direct_sound_samples/cries/sandaconda.bin" .align 2 Cry_Cramorant:: - .incbin "sound/direct_sound_samples/cries/uncomp_cramorant.bin" + .incbin "sound/direct_sound_samples/cries/cramorant.bin" .align 2 Cry_Arrokuda:: - .incbin "sound/direct_sound_samples/cries/uncomp_arrokuda.bin" + .incbin "sound/direct_sound_samples/cries/arrokuda.bin" .align 2 Cry_Barraskewda:: - .incbin "sound/direct_sound_samples/cries/uncomp_barraskewda.bin" + .incbin "sound/direct_sound_samples/cries/barraskewda.bin" .align 2 Cry_Toxel:: - .incbin "sound/direct_sound_samples/cries/uncomp_toxel.bin" + .incbin "sound/direct_sound_samples/cries/toxel.bin" .align 2 Cry_Toxtricity:: - .incbin "sound/direct_sound_samples/cries/uncomp_toxtricity.bin" + .incbin "sound/direct_sound_samples/cries/toxtricity.bin" .align 2 Cry_Sizzlipede:: - .incbin "sound/direct_sound_samples/cries/uncomp_sizzlipede.bin" + .incbin "sound/direct_sound_samples/cries/sizzlipede.bin" .align 2 Cry_Centiskorch:: - .incbin "sound/direct_sound_samples/cries/uncomp_centiskorch.bin" + .incbin "sound/direct_sound_samples/cries/centiskorch.bin" .align 2 Cry_Clobbopus:: - .incbin "sound/direct_sound_samples/cries/uncomp_clobbopus.bin" + .incbin "sound/direct_sound_samples/cries/clobbopus.bin" .align 2 Cry_Grapploct:: - .incbin "sound/direct_sound_samples/cries/uncomp_grapploct.bin" + .incbin "sound/direct_sound_samples/cries/grapploct.bin" .align 2 Cry_Sinistea:: - .incbin "sound/direct_sound_samples/cries/uncomp_sinistea.bin" + .incbin "sound/direct_sound_samples/cries/sinistea.bin" .align 2 Cry_Polteageist:: - .incbin "sound/direct_sound_samples/cries/uncomp_polteageist.bin" + .incbin "sound/direct_sound_samples/cries/polteageist.bin" .align 2 Cry_Hatenna:: - .incbin "sound/direct_sound_samples/cries/uncomp_hatenna.bin" + .incbin "sound/direct_sound_samples/cries/hatenna.bin" .align 2 Cry_Hattrem:: - .incbin "sound/direct_sound_samples/cries/uncomp_hattrem.bin" + .incbin "sound/direct_sound_samples/cries/hattrem.bin" .align 2 Cry_Hatterene:: - .incbin "sound/direct_sound_samples/cries/uncomp_hatterene.bin" + .incbin "sound/direct_sound_samples/cries/hatterene.bin" .align 2 Cry_Impidimp:: - .incbin "sound/direct_sound_samples/cries/uncomp_impidimp.bin" + .incbin "sound/direct_sound_samples/cries/impidimp.bin" .align 2 Cry_Morgrem:: - .incbin "sound/direct_sound_samples/cries/uncomp_morgrem.bin" + .incbin "sound/direct_sound_samples/cries/morgrem.bin" .align 2 Cry_Grimmsnarl:: - .incbin "sound/direct_sound_samples/cries/uncomp_grimmsnarl.bin" + .incbin "sound/direct_sound_samples/cries/grimmsnarl.bin" .align 2 Cry_Obstagoon:: - .incbin "sound/direct_sound_samples/cries/uncomp_obstagoon.bin" + .incbin "sound/direct_sound_samples/cries/obstagoon.bin" .align 2 Cry_Perrserker:: - .incbin "sound/direct_sound_samples/cries/uncomp_perrserker.bin" + .incbin "sound/direct_sound_samples/cries/perrserker.bin" .align 2 Cry_Cursola:: - .incbin "sound/direct_sound_samples/cries/uncomp_cursola.bin" + .incbin "sound/direct_sound_samples/cries/cursola.bin" .align 2 Cry_Sirfetchd:: - .incbin "sound/direct_sound_samples/cries/uncomp_sirfetchd.bin" + .incbin "sound/direct_sound_samples/cries/sirfetchd.bin" .align 2 Cry_MrRime:: - .incbin "sound/direct_sound_samples/cries/uncomp_mr_rime.bin" + .incbin "sound/direct_sound_samples/cries/mr_rime.bin" .align 2 Cry_Runerigus:: - .incbin "sound/direct_sound_samples/cries/uncomp_runerigus.bin" + .incbin "sound/direct_sound_samples/cries/runerigus.bin" .align 2 Cry_Milcery:: - .incbin "sound/direct_sound_samples/cries/uncomp_milcery.bin" + .incbin "sound/direct_sound_samples/cries/milcery.bin" .align 2 Cry_Alcremie:: - .incbin "sound/direct_sound_samples/cries/uncomp_alcremie.bin" + .incbin "sound/direct_sound_samples/cries/alcremie.bin" .align 2 Cry_Falinks:: - .incbin "sound/direct_sound_samples/cries/uncomp_falinks.bin" + .incbin "sound/direct_sound_samples/cries/falinks.bin" .align 2 Cry_Pincurchin:: - .incbin "sound/direct_sound_samples/cries/uncomp_pincurchin.bin" + .incbin "sound/direct_sound_samples/cries/pincurchin.bin" .align 2 Cry_Snom:: - .incbin "sound/direct_sound_samples/cries/uncomp_snom.bin" + .incbin "sound/direct_sound_samples/cries/snom.bin" .align 2 Cry_Frosmoth:: - .incbin "sound/direct_sound_samples/cries/uncomp_frosmoth.bin" + .incbin "sound/direct_sound_samples/cries/frosmoth.bin" .align 2 Cry_Stonjourner:: - .incbin "sound/direct_sound_samples/cries/uncomp_stonjourner.bin" + .incbin "sound/direct_sound_samples/cries/stonjourner.bin" .align 2 Cry_Eiscue:: - .incbin "sound/direct_sound_samples/cries/uncomp_eiscue.bin" + .incbin "sound/direct_sound_samples/cries/eiscue.bin" .align 2 Cry_Indeedee:: - .incbin "sound/direct_sound_samples/cries/uncomp_indeedee.bin" + .incbin "sound/direct_sound_samples/cries/indeedee.bin" .align 2 Cry_Morpeko:: - .incbin "sound/direct_sound_samples/cries/uncomp_morpeko.bin" + .incbin "sound/direct_sound_samples/cries/morpeko.bin" .align 2 Cry_Cufant:: - .incbin "sound/direct_sound_samples/cries/uncomp_cufant.bin" + .incbin "sound/direct_sound_samples/cries/cufant.bin" .align 2 Cry_Copperajah:: - .incbin "sound/direct_sound_samples/cries/uncomp_copperajah.bin" + .incbin "sound/direct_sound_samples/cries/copperajah.bin" .align 2 Cry_Dracozolt:: - .incbin "sound/direct_sound_samples/cries/uncomp_dracozolt.bin" + .incbin "sound/direct_sound_samples/cries/dracozolt.bin" .align 2 Cry_Arctozolt:: - .incbin "sound/direct_sound_samples/cries/uncomp_arctozolt.bin" + .incbin "sound/direct_sound_samples/cries/arctozolt.bin" .align 2 Cry_Dracovish:: - .incbin "sound/direct_sound_samples/cries/uncomp_dracovish.bin" + .incbin "sound/direct_sound_samples/cries/dracovish.bin" .align 2 Cry_Arctovish:: - .incbin "sound/direct_sound_samples/cries/uncomp_arctovish.bin" + .incbin "sound/direct_sound_samples/cries/arctovish.bin" .align 2 Cry_Duraludon:: - .incbin "sound/direct_sound_samples/cries/uncomp_duraludon.bin" + .incbin "sound/direct_sound_samples/cries/duraludon.bin" .align 2 Cry_Dreepy:: - .incbin "sound/direct_sound_samples/cries/uncomp_dreepy.bin" + .incbin "sound/direct_sound_samples/cries/dreepy.bin" .align 2 Cry_Drakloak:: - .incbin "sound/direct_sound_samples/cries/uncomp_drakloak.bin" + .incbin "sound/direct_sound_samples/cries/drakloak.bin" .align 2 Cry_Dragapult:: - .incbin "sound/direct_sound_samples/cries/uncomp_dragapult.bin" + .incbin "sound/direct_sound_samples/cries/dragapult.bin" .align 2 Cry_Zacian:: - .incbin "sound/direct_sound_samples/cries/uncomp_zacian.bin" + .incbin "sound/direct_sound_samples/cries/zacian.bin" .align 2 Cry_Zamazenta:: - .incbin "sound/direct_sound_samples/cries/uncomp_zamazenta.bin" + .incbin "sound/direct_sound_samples/cries/zamazenta.bin" .align 2 Cry_Eternatus:: - .incbin "sound/direct_sound_samples/cries/uncomp_eternatus.bin" + .incbin "sound/direct_sound_samples/cries/eternatus.bin" .align 2 Cry_Kubfu:: - .incbin "sound/direct_sound_samples/cries/uncomp_kubfu.bin" + .incbin "sound/direct_sound_samples/cries/kubfu.bin" .align 2 Cry_Urshifu:: - .incbin "sound/direct_sound_samples/cries/uncomp_urshifu.bin" + .incbin "sound/direct_sound_samples/cries/urshifu.bin" .align 2 Cry_Zarude:: - .incbin "sound/direct_sound_samples/cries/uncomp_zarude.bin" + .incbin "sound/direct_sound_samples/cries/zarude.bin" .align 2 Cry_Regieleki:: - .incbin "sound/direct_sound_samples/cries/uncomp_regieleki.bin" + .incbin "sound/direct_sound_samples/cries/regieleki.bin" .align 2 Cry_Regidrago:: - .incbin "sound/direct_sound_samples/cries/uncomp_regidrago.bin" + .incbin "sound/direct_sound_samples/cries/regidrago.bin" .align 2 Cry_Glastrier:: - .incbin "sound/direct_sound_samples/cries/uncomp_glastrier.bin" + .incbin "sound/direct_sound_samples/cries/glastrier.bin" .align 2 Cry_Spectrier:: - .incbin "sound/direct_sound_samples/cries/uncomp_spectrier.bin" + .incbin "sound/direct_sound_samples/cries/spectrier.bin" .align 2 Cry_Calyrex:: - .incbin "sound/direct_sound_samples/cries/uncomp_calyrex.bin" + .incbin "sound/direct_sound_samples/cries/calyrex.bin" .align 2 Cry_VenusaurMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_venusaur.bin" + .incbin "sound/direct_sound_samples/cries/mega_venusaur.bin" .align 2 Cry_CharizardMegaX:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_charizard_x.bin" + .incbin "sound/direct_sound_samples/cries/mega_charizard_x.bin" .align 2 Cry_CharizardMegaY:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_charizard_y.bin" + .incbin "sound/direct_sound_samples/cries/mega_charizard_y.bin" .align 2 Cry_BlastoiseMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_blastoise.bin" + .incbin "sound/direct_sound_samples/cries/mega_blastoise.bin" .align 2 Cry_BeedrillMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_beedrill.bin" + .incbin "sound/direct_sound_samples/cries/mega_beedrill.bin" .align 2 Cry_PidgeotMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_pidgeot.bin" + .incbin "sound/direct_sound_samples/cries/mega_pidgeot.bin" .align 2 Cry_AlakazamMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_alakazam.bin" + .incbin "sound/direct_sound_samples/cries/mega_alakazam.bin" .align 2 Cry_SlowbroMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_slowbro.bin" + .incbin "sound/direct_sound_samples/cries/mega_slowbro.bin" .align 2 Cry_GengarMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_gengar.bin" + .incbin "sound/direct_sound_samples/cries/mega_gengar.bin" .align 2 Cry_KangaskhanMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_kangaskhan.bin" + .incbin "sound/direct_sound_samples/cries/mega_kangaskhan.bin" .align 2 Cry_PinsirMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_pinsir.bin" + .incbin "sound/direct_sound_samples/cries/mega_pinsir.bin" .align 2 Cry_GyaradosMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_gyarados.bin" + .incbin "sound/direct_sound_samples/cries/mega_gyarados.bin" .align 2 Cry_AerodactylMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_aerodactyl.bin" + .incbin "sound/direct_sound_samples/cries/mega_aerodactyl.bin" .align 2 Cry_MewtwoMegaX:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_mewtwo_x.bin" + .incbin "sound/direct_sound_samples/cries/mega_mewtwo_x.bin" .align 2 Cry_MewtwoMegaY:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_mewtwo_y.bin" + .incbin "sound/direct_sound_samples/cries/mega_mewtwo_y.bin" .align 2 Cry_AmpharosMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_ampharos.bin" + .incbin "sound/direct_sound_samples/cries/mega_ampharos.bin" .align 2 Cry_SteelixMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_steelix.bin" + .incbin "sound/direct_sound_samples/cries/mega_steelix.bin" .align 2 Cry_ScizorMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_scizor.bin" + .incbin "sound/direct_sound_samples/cries/mega_scizor.bin" .align 2 Cry_HeracrossMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_heracross.bin" + .incbin "sound/direct_sound_samples/cries/mega_heracross.bin" .align 2 Cry_HoundoomMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_houndoom.bin" + .incbin "sound/direct_sound_samples/cries/mega_houndoom.bin" .align 2 Cry_TyranitarMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_tyranitar.bin" + .incbin "sound/direct_sound_samples/cries/mega_tyranitar.bin" .align 2 Cry_SceptileMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_sceptile.bin" + .incbin "sound/direct_sound_samples/cries/mega_sceptile.bin" .align 2 Cry_BlazikenMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_blaziken.bin" + .incbin "sound/direct_sound_samples/cries/mega_blaziken.bin" .align 2 Cry_SwampertMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_swampert.bin" + .incbin "sound/direct_sound_samples/cries/mega_swampert.bin" .align 2 Cry_GardevoirMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_gardevoir.bin" + .incbin "sound/direct_sound_samples/cries/mega_gardevoir.bin" .align 2 Cry_SableyeMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_sableye.bin" + .incbin "sound/direct_sound_samples/cries/mega_sableye.bin" .align 2 Cry_MawileMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_mawile.bin" + .incbin "sound/direct_sound_samples/cries/mega_mawile.bin" .align 2 Cry_AggronMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_aggron.bin" + .incbin "sound/direct_sound_samples/cries/mega_aggron.bin" .align 2 Cry_MedichamMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_medicham.bin" + .incbin "sound/direct_sound_samples/cries/mega_medicham.bin" .align 2 Cry_ManectricMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_manectric.bin" + .incbin "sound/direct_sound_samples/cries/mega_manectric.bin" .align 2 Cry_SharpedoMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_sharpedo.bin" + .incbin "sound/direct_sound_samples/cries/mega_sharpedo.bin" .align 2 Cry_CameruptMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_camerupt.bin" + .incbin "sound/direct_sound_samples/cries/mega_camerupt.bin" .align 2 Cry_AltariaMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_altaria.bin" + .incbin "sound/direct_sound_samples/cries/mega_altaria.bin" .align 2 Cry_BanetteMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_banette.bin" + .incbin "sound/direct_sound_samples/cries/mega_banette.bin" .align 2 Cry_AbsolMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_absol.bin" + .incbin "sound/direct_sound_samples/cries/mega_absol.bin" .align 2 Cry_GlalieMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_glalie.bin" + .incbin "sound/direct_sound_samples/cries/mega_glalie.bin" .align 2 Cry_SalamenceMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_salamence.bin" + .incbin "sound/direct_sound_samples/cries/mega_salamence.bin" .align 2 Cry_MetagrossMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_metagross.bin" + .incbin "sound/direct_sound_samples/cries/mega_metagross.bin" .align 2 Cry_LatiasMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_latias.bin" + .incbin "sound/direct_sound_samples/cries/mega_latias.bin" .align 2 Cry_LatiosMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_latios.bin" + .incbin "sound/direct_sound_samples/cries/mega_latios.bin" .align 2 Cry_LopunnyMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_lopunny.bin" + .incbin "sound/direct_sound_samples/cries/mega_lopunny.bin" .align 2 Cry_GarchompMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_garchomp.bin" + .incbin "sound/direct_sound_samples/cries/mega_garchomp.bin" .align 2 Cry_LucarioMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_lucario.bin" + .incbin "sound/direct_sound_samples/cries/mega_lucario.bin" .align 2 Cry_AbomasnowMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_abomasnow.bin" + .incbin "sound/direct_sound_samples/cries/mega_abomasnow.bin" .align 2 Cry_GalladeMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_gallade.bin" + .incbin "sound/direct_sound_samples/cries/mega_gallade.bin" .align 2 Cry_AudinoMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_audino.bin" + .incbin "sound/direct_sound_samples/cries/mega_audino.bin" .align 2 Cry_DiancieMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_diancie.bin" + .incbin "sound/direct_sound_samples/cries/mega_diancie.bin" .align 2 Cry_RayquazaMega:: - .incbin "sound/direct_sound_samples/cries/uncomp_mega_rayquaza.bin" + .incbin "sound/direct_sound_samples/cries/mega_rayquaza.bin" .align 2 Cry_KyogrePrimal:: - .incbin "sound/direct_sound_samples/cries/uncomp_primal_kyogre.bin" + .incbin "sound/direct_sound_samples/cries/primal_kyogre.bin" .align 2 Cry_GroudonPrimal:: - .incbin "sound/direct_sound_samples/cries/uncomp_primal_groudon.bin" + .incbin "sound/direct_sound_samples/cries/primal_groudon.bin" .align 2 Cry_SlowpokeGalarian:: - .incbin "sound/direct_sound_samples/cries/uncomp_slowpoke_galarian.bin" + .incbin "sound/direct_sound_samples/cries/slowpoke_galarian.bin" .align 2 Cry_ShayminSky:: @@ -4208,103 +4208,103 @@ Cry_KyuremBlack:: .align 2 Cry_FloetteEternalFlower:: - .incbin "sound/direct_sound_samples/cries/uncomp_floette_eternal_flower.bin" + .incbin "sound/direct_sound_samples/cries/floette_eternal_flower.bin" .align 2 Cry_PumpkabooSuper:: - .incbin "sound/direct_sound_samples/cries/uncomp_pumpkaboo_super.bin" + .incbin "sound/direct_sound_samples/cries/pumpkaboo_super.bin" .align 2 Cry_GourgeistSuper:: - .incbin "sound/direct_sound_samples/cries/uncomp_gourgeist_super.bin" + .incbin "sound/direct_sound_samples/cries/gourgeist_super.bin" .align 2 Cry_Zygarde10:: - .incbin "sound/direct_sound_samples/cries/uncomp_zygarde_10.bin" + .incbin "sound/direct_sound_samples/cries/zygarde_10.bin" .align 2 Cry_ZygardeComplete:: - .incbin "sound/direct_sound_samples/cries/uncomp_zygarde_complete.bin" + .incbin "sound/direct_sound_samples/cries/zygarde_complete.bin" .align 2 Cry_HoopaUnbound:: - .incbin "sound/direct_sound_samples/cries/uncomp_hoopa_unbound.bin" + .incbin "sound/direct_sound_samples/cries/hoopa_unbound.bin" .align 2 Cry_OricorioPomPom:: - .incbin "sound/direct_sound_samples/cries/uncomp_oricorio_pom_pom.bin" + .incbin "sound/direct_sound_samples/cries/oricorio_pom_pom.bin" .align 2 Cry_OricorioPau:: - .incbin "sound/direct_sound_samples/cries/uncomp_oricorio_pau.bin" + .incbin "sound/direct_sound_samples/cries/oricorio_pau.bin" .align 2 Cry_OricorioSensu:: - .incbin "sound/direct_sound_samples/cries/uncomp_oricorio_sensu.bin" + .incbin "sound/direct_sound_samples/cries/oricorio_sensu.bin" .align 2 Cry_LycanrocMidnight:: - .incbin "sound/direct_sound_samples/cries/uncomp_lycanroc_midnight.bin" + .incbin "sound/direct_sound_samples/cries/lycanroc_midnight.bin" .align 2 Cry_LycanrocDusk:: - .incbin "sound/direct_sound_samples/cries/uncomp_lycanroc_dusk.bin" + .incbin "sound/direct_sound_samples/cries/lycanroc_dusk.bin" .align 2 Cry_WishiwashiSchool:: - .incbin "sound/direct_sound_samples/cries/uncomp_wishiwashi_school.bin" + .incbin "sound/direct_sound_samples/cries/wishiwashi_school.bin" .align 2 Cry_NecrozmaDuskMane:: - .incbin "sound/direct_sound_samples/cries/uncomp_necrozma_dusk_mane.bin" + .incbin "sound/direct_sound_samples/cries/necrozma_dusk_mane.bin" .align 2 Cry_NecrozmaDawnWings:: - .incbin "sound/direct_sound_samples/cries/uncomp_necrozma_dawn_wings.bin" + .incbin "sound/direct_sound_samples/cries/necrozma_dawn_wings.bin" .align 2 Cry_NecrozmaUltra:: - .incbin "sound/direct_sound_samples/cries/uncomp_necrozma_ultra.bin" + .incbin "sound/direct_sound_samples/cries/necrozma_ultra.bin" .align 2 Cry_ToxtricityLowKey:: - .incbin "sound/direct_sound_samples/cries/uncomp_toxtricity_low_key.bin" + .incbin "sound/direct_sound_samples/cries/toxtricity_low_key.bin" .align 2 Cry_EiscueNoiceFace:: - .incbin "sound/direct_sound_samples/cries/uncomp_eiscue_noice_face.bin" + .incbin "sound/direct_sound_samples/cries/eiscue_noice_face.bin" .align 2 Cry_IndeedeeFemale:: - .incbin "sound/direct_sound_samples/cries/uncomp_indeedee_female.bin" + .incbin "sound/direct_sound_samples/cries/indeedee_female.bin" .align 2 Cry_MorpekoHangry:: - .incbin "sound/direct_sound_samples/cries/uncomp_morpeko_hangry.bin" + .incbin "sound/direct_sound_samples/cries/morpeko_hangry.bin" .align 2 Cry_ZacianCrownedSword:: - .incbin "sound/direct_sound_samples/cries/uncomp_zacian_crowned_sword.bin" + .incbin "sound/direct_sound_samples/cries/zacian_crowned_sword.bin" .align 2 Cry_ZamazentaCrownedShield:: - .incbin "sound/direct_sound_samples/cries/uncomp_zamazenta_crowned_shield.bin" + .incbin "sound/direct_sound_samples/cries/zamazenta_crowned_shield.bin" .align 2 Cry_EternatusEternamax:: - .incbin "sound/direct_sound_samples/cries/uncomp_eternatus_eternamax.bin" + .incbin "sound/direct_sound_samples/cries/eternatus_eternamax.bin" .align 2 Cry_UrshifuRapidStrikeStyle:: - .incbin "sound/direct_sound_samples/cries/uncomp_urshifu_rapid_strike_style.bin" + .incbin "sound/direct_sound_samples/cries/urshifu_rapid_strike_style.bin" .align 2 Cry_CalyrexIceRider:: - .incbin "sound/direct_sound_samples/cries/uncomp_calyrex_ice_rider.bin" + .incbin "sound/direct_sound_samples/cries/calyrex_ice_rider.bin" .align 2 Cry_CalyrexShadowRider:: - .incbin "sound/direct_sound_samples/cries/uncomp_calyrex_shadow_rider.bin" + .incbin "sound/direct_sound_samples/cries/calyrex_shadow_rider.bin" .align 2 DirectSoundWaveData_register_noise:: diff --git a/sound/direct_sound_samples/cries/uncomp_aegislash.aif b/sound/direct_sound_samples/cries/aegislash.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_aegislash.aif rename to sound/direct_sound_samples/cries/aegislash.aif diff --git a/sound/direct_sound_samples/cries/uncomp_alcremie.aif b/sound/direct_sound_samples/cries/alcremie.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_alcremie.aif rename to sound/direct_sound_samples/cries/alcremie.aif diff --git a/sound/direct_sound_samples/cries/uncomp_amaura.aif b/sound/direct_sound_samples/cries/amaura.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_amaura.aif rename to sound/direct_sound_samples/cries/amaura.aif diff --git a/sound/direct_sound_samples/cries/uncomp_appletun.aif b/sound/direct_sound_samples/cries/appletun.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_appletun.aif rename to sound/direct_sound_samples/cries/appletun.aif diff --git a/sound/direct_sound_samples/cries/uncomp_applin.aif b/sound/direct_sound_samples/cries/applin.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_applin.aif rename to sound/direct_sound_samples/cries/applin.aif diff --git a/sound/direct_sound_samples/cries/uncomp_araquanid.aif b/sound/direct_sound_samples/cries/araquanid.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_araquanid.aif rename to sound/direct_sound_samples/cries/araquanid.aif diff --git a/sound/direct_sound_samples/cries/uncomp_arctovish.aif b/sound/direct_sound_samples/cries/arctovish.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_arctovish.aif rename to sound/direct_sound_samples/cries/arctovish.aif diff --git a/sound/direct_sound_samples/cries/uncomp_arctozolt.aif b/sound/direct_sound_samples/cries/arctozolt.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_arctozolt.aif rename to sound/direct_sound_samples/cries/arctozolt.aif diff --git a/sound/direct_sound_samples/cries/uncomp_aromatisse.aif b/sound/direct_sound_samples/cries/aromatisse.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_aromatisse.aif rename to sound/direct_sound_samples/cries/aromatisse.aif diff --git a/sound/direct_sound_samples/cries/uncomp_arrokuda.aif b/sound/direct_sound_samples/cries/arrokuda.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_arrokuda.aif rename to sound/direct_sound_samples/cries/arrokuda.aif diff --git a/sound/direct_sound_samples/cries/uncomp_aurorus.aif b/sound/direct_sound_samples/cries/aurorus.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_aurorus.aif rename to sound/direct_sound_samples/cries/aurorus.aif diff --git a/sound/direct_sound_samples/cries/uncomp_avalugg.aif b/sound/direct_sound_samples/cries/avalugg.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_avalugg.aif rename to sound/direct_sound_samples/cries/avalugg.aif diff --git a/sound/direct_sound_samples/cries/uncomp_barbaracle.aif b/sound/direct_sound_samples/cries/barbaracle.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_barbaracle.aif rename to sound/direct_sound_samples/cries/barbaracle.aif diff --git a/sound/direct_sound_samples/cries/uncomp_barraskewda.aif b/sound/direct_sound_samples/cries/barraskewda.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_barraskewda.aif rename to sound/direct_sound_samples/cries/barraskewda.aif diff --git a/sound/direct_sound_samples/cries/uncomp_bergmite.aif b/sound/direct_sound_samples/cries/bergmite.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_bergmite.aif rename to sound/direct_sound_samples/cries/bergmite.aif diff --git a/sound/direct_sound_samples/cries/uncomp_bewear.aif b/sound/direct_sound_samples/cries/bewear.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_bewear.aif rename to sound/direct_sound_samples/cries/bewear.aif diff --git a/sound/direct_sound_samples/cries/uncomp_binacle.aif b/sound/direct_sound_samples/cries/binacle.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_binacle.aif rename to sound/direct_sound_samples/cries/binacle.aif diff --git a/sound/direct_sound_samples/cries/uncomp_blacephalon.aif b/sound/direct_sound_samples/cries/blacephalon.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_blacephalon.aif rename to sound/direct_sound_samples/cries/blacephalon.aif diff --git a/sound/direct_sound_samples/cries/uncomp_blipbug.aif b/sound/direct_sound_samples/cries/blipbug.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_blipbug.aif rename to sound/direct_sound_samples/cries/blipbug.aif diff --git a/sound/direct_sound_samples/cries/uncomp_boltund.aif b/sound/direct_sound_samples/cries/boltund.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_boltund.aif rename to sound/direct_sound_samples/cries/boltund.aif diff --git a/sound/direct_sound_samples/cries/uncomp_bounsweet.aif b/sound/direct_sound_samples/cries/bounsweet.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_bounsweet.aif rename to sound/direct_sound_samples/cries/bounsweet.aif diff --git a/sound/direct_sound_samples/cries/uncomp_braixen.aif b/sound/direct_sound_samples/cries/braixen.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_braixen.aif rename to sound/direct_sound_samples/cries/braixen.aif diff --git a/sound/direct_sound_samples/cries/uncomp_brionne.aif b/sound/direct_sound_samples/cries/brionne.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_brionne.aif rename to sound/direct_sound_samples/cries/brionne.aif diff --git a/sound/direct_sound_samples/cries/uncomp_bruxish.aif b/sound/direct_sound_samples/cries/bruxish.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_bruxish.aif rename to sound/direct_sound_samples/cries/bruxish.aif diff --git a/sound/direct_sound_samples/cries/uncomp_bunnelby.aif b/sound/direct_sound_samples/cries/bunnelby.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_bunnelby.aif rename to sound/direct_sound_samples/cries/bunnelby.aif diff --git a/sound/direct_sound_samples/cries/uncomp_buzzwole.aif b/sound/direct_sound_samples/cries/buzzwole.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_buzzwole.aif rename to sound/direct_sound_samples/cries/buzzwole.aif diff --git a/sound/direct_sound_samples/cries/uncomp_calyrex.aif b/sound/direct_sound_samples/cries/calyrex.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_calyrex.aif rename to sound/direct_sound_samples/cries/calyrex.aif diff --git a/sound/direct_sound_samples/cries/uncomp_calyrex_ice_rider.aif b/sound/direct_sound_samples/cries/calyrex_ice_rider.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_calyrex_ice_rider.aif rename to sound/direct_sound_samples/cries/calyrex_ice_rider.aif diff --git a/sound/direct_sound_samples/cries/uncomp_calyrex_shadow_rider.aif b/sound/direct_sound_samples/cries/calyrex_shadow_rider.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_calyrex_shadow_rider.aif rename to sound/direct_sound_samples/cries/calyrex_shadow_rider.aif diff --git a/sound/direct_sound_samples/cries/uncomp_carbink.aif b/sound/direct_sound_samples/cries/carbink.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_carbink.aif rename to sound/direct_sound_samples/cries/carbink.aif diff --git a/sound/direct_sound_samples/cries/uncomp_carkol.aif b/sound/direct_sound_samples/cries/carkol.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_carkol.aif rename to sound/direct_sound_samples/cries/carkol.aif diff --git a/sound/direct_sound_samples/cries/uncomp_celesteela.aif b/sound/direct_sound_samples/cries/celesteela.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_celesteela.aif rename to sound/direct_sound_samples/cries/celesteela.aif diff --git a/sound/direct_sound_samples/cries/uncomp_centiskorch.aif b/sound/direct_sound_samples/cries/centiskorch.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_centiskorch.aif rename to sound/direct_sound_samples/cries/centiskorch.aif diff --git a/sound/direct_sound_samples/cries/uncomp_charjabug.aif b/sound/direct_sound_samples/cries/charjabug.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_charjabug.aif rename to sound/direct_sound_samples/cries/charjabug.aif diff --git a/sound/direct_sound_samples/cries/uncomp_chesnaught.aif b/sound/direct_sound_samples/cries/chesnaught.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_chesnaught.aif rename to sound/direct_sound_samples/cries/chesnaught.aif diff --git a/sound/direct_sound_samples/cries/uncomp_chespin.aif b/sound/direct_sound_samples/cries/chespin.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_chespin.aif rename to sound/direct_sound_samples/cries/chespin.aif diff --git a/sound/direct_sound_samples/cries/uncomp_chewtle.aif b/sound/direct_sound_samples/cries/chewtle.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_chewtle.aif rename to sound/direct_sound_samples/cries/chewtle.aif diff --git a/sound/direct_sound_samples/cries/uncomp_cinderace.aif b/sound/direct_sound_samples/cries/cinderace.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_cinderace.aif rename to sound/direct_sound_samples/cries/cinderace.aif diff --git a/sound/direct_sound_samples/cries/uncomp_clauncher.aif b/sound/direct_sound_samples/cries/clauncher.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_clauncher.aif rename to sound/direct_sound_samples/cries/clauncher.aif diff --git a/sound/direct_sound_samples/cries/uncomp_clawitzer.aif b/sound/direct_sound_samples/cries/clawitzer.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_clawitzer.aif rename to sound/direct_sound_samples/cries/clawitzer.aif diff --git a/sound/direct_sound_samples/cries/uncomp_clobbopus.aif b/sound/direct_sound_samples/cries/clobbopus.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_clobbopus.aif rename to sound/direct_sound_samples/cries/clobbopus.aif diff --git a/sound/direct_sound_samples/cries/uncomp_coalossal.aif b/sound/direct_sound_samples/cries/coalossal.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_coalossal.aif rename to sound/direct_sound_samples/cries/coalossal.aif diff --git a/sound/direct_sound_samples/cries/uncomp_comfey.aif b/sound/direct_sound_samples/cries/comfey.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_comfey.aif rename to sound/direct_sound_samples/cries/comfey.aif diff --git a/sound/direct_sound_samples/cries/uncomp_copperajah.aif b/sound/direct_sound_samples/cries/copperajah.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_copperajah.aif rename to sound/direct_sound_samples/cries/copperajah.aif diff --git a/sound/direct_sound_samples/cries/uncomp_corviknight.aif b/sound/direct_sound_samples/cries/corviknight.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_corviknight.aif rename to sound/direct_sound_samples/cries/corviknight.aif diff --git a/sound/direct_sound_samples/cries/uncomp_corvisquire.aif b/sound/direct_sound_samples/cries/corvisquire.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_corvisquire.aif rename to sound/direct_sound_samples/cries/corvisquire.aif diff --git a/sound/direct_sound_samples/cries/uncomp_cosmoem.aif b/sound/direct_sound_samples/cries/cosmoem.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_cosmoem.aif rename to sound/direct_sound_samples/cries/cosmoem.aif diff --git a/sound/direct_sound_samples/cries/uncomp_cosmog.aif b/sound/direct_sound_samples/cries/cosmog.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_cosmog.aif rename to sound/direct_sound_samples/cries/cosmog.aif diff --git a/sound/direct_sound_samples/cries/cottonee.aif b/sound/direct_sound_samples/cries/cottonee.aif index 526dc5f79a242aa821ad353c660616dd97c42349..a459a62f726aacc83689b3ccc89e70a1fd2d8175 100644 GIT binary patch literal 9330 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 j>;HebrDk&-ctYD|cE8@v*_od1+Uc$? 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 L{ePUlf586+Ygr;_ literal 17924 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 literal 12460 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

69jWkEe+We9pZcf1Bi?T13;I-UxgN;N*r<`jL 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 literal 21584 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 gKK2m)@qFXx^AEjz^y%X-Kl#`V!Z diff --git a/sound/direct_sound_samples/cries/uncomp_klefki.aif b/sound/direct_sound_samples/cries/klefki.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_klefki.aif rename to sound/direct_sound_samples/cries/klefki.aif diff --git a/sound/direct_sound_samples/cries/uncomp_komala.aif b/sound/direct_sound_samples/cries/komala.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_komala.aif rename to sound/direct_sound_samples/cries/komala.aif diff --git a/sound/direct_sound_samples/cries/uncomp_kommo_o.aif b/sound/direct_sound_samples/cries/kommo_o.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_kommo_o.aif rename to sound/direct_sound_samples/cries/kommo_o.aif diff --git a/sound/direct_sound_samples/cries/uncomp_kubfu.aif b/sound/direct_sound_samples/cries/kubfu.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_kubfu.aif rename to sound/direct_sound_samples/cries/kubfu.aif diff --git a/sound/direct_sound_samples/cries/uncomp_litleo.aif b/sound/direct_sound_samples/cries/litleo.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_litleo.aif rename to sound/direct_sound_samples/cries/litleo.aif diff --git a/sound/direct_sound_samples/cries/uncomp_litten.aif b/sound/direct_sound_samples/cries/litten.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_litten.aif rename to sound/direct_sound_samples/cries/litten.aif diff --git a/sound/direct_sound_samples/cries/uncomp_lunala.aif b/sound/direct_sound_samples/cries/lunala.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_lunala.aif rename to sound/direct_sound_samples/cries/lunala.aif diff --git a/sound/direct_sound_samples/cries/uncomp_lurantis.aif b/sound/direct_sound_samples/cries/lurantis.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_lurantis.aif rename to sound/direct_sound_samples/cries/lurantis.aif diff --git a/sound/direct_sound_samples/cries/uncomp_lycanroc.aif b/sound/direct_sound_samples/cries/lycanroc.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_lycanroc.aif rename to sound/direct_sound_samples/cries/lycanroc.aif diff --git a/sound/direct_sound_samples/cries/uncomp_lycanroc_dusk.aif b/sound/direct_sound_samples/cries/lycanroc_dusk.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_lycanroc_dusk.aif rename to sound/direct_sound_samples/cries/lycanroc_dusk.aif diff --git a/sound/direct_sound_samples/cries/uncomp_lycanroc_midnight.aif b/sound/direct_sound_samples/cries/lycanroc_midnight.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_lycanroc_midnight.aif rename to sound/direct_sound_samples/cries/lycanroc_midnight.aif diff --git a/sound/direct_sound_samples/cries/uncomp_magearna.aif b/sound/direct_sound_samples/cries/magearna.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_magearna.aif rename to sound/direct_sound_samples/cries/magearna.aif diff --git a/sound/direct_sound_samples/cries/uncomp_malamar.aif b/sound/direct_sound_samples/cries/malamar.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_malamar.aif rename to sound/direct_sound_samples/cries/malamar.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mareanie.aif b/sound/direct_sound_samples/cries/mareanie.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mareanie.aif rename to sound/direct_sound_samples/cries/mareanie.aif diff --git a/sound/direct_sound_samples/cries/uncomp_marshadow.aif b/sound/direct_sound_samples/cries/marshadow.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_marshadow.aif rename to sound/direct_sound_samples/cries/marshadow.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_abomasnow.aif b/sound/direct_sound_samples/cries/mega_abomasnow.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_abomasnow.aif rename to sound/direct_sound_samples/cries/mega_abomasnow.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_absol.aif b/sound/direct_sound_samples/cries/mega_absol.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_absol.aif rename to sound/direct_sound_samples/cries/mega_absol.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_aerodactyl.aif b/sound/direct_sound_samples/cries/mega_aerodactyl.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_aerodactyl.aif rename to sound/direct_sound_samples/cries/mega_aerodactyl.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_aggron.aif b/sound/direct_sound_samples/cries/mega_aggron.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_aggron.aif rename to sound/direct_sound_samples/cries/mega_aggron.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_alakazam.aif b/sound/direct_sound_samples/cries/mega_alakazam.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_alakazam.aif rename to sound/direct_sound_samples/cries/mega_alakazam.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_altaria.aif b/sound/direct_sound_samples/cries/mega_altaria.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_altaria.aif rename to sound/direct_sound_samples/cries/mega_altaria.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_ampharos.aif b/sound/direct_sound_samples/cries/mega_ampharos.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_ampharos.aif rename to sound/direct_sound_samples/cries/mega_ampharos.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_audino.aif b/sound/direct_sound_samples/cries/mega_audino.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_audino.aif rename to sound/direct_sound_samples/cries/mega_audino.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_banette.aif b/sound/direct_sound_samples/cries/mega_banette.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_banette.aif rename to sound/direct_sound_samples/cries/mega_banette.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_beedrill.aif b/sound/direct_sound_samples/cries/mega_beedrill.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_beedrill.aif rename to sound/direct_sound_samples/cries/mega_beedrill.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_blastoise.aif b/sound/direct_sound_samples/cries/mega_blastoise.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_blastoise.aif rename to sound/direct_sound_samples/cries/mega_blastoise.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_blaziken.aif b/sound/direct_sound_samples/cries/mega_blaziken.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_blaziken.aif rename to sound/direct_sound_samples/cries/mega_blaziken.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_camerupt.aif b/sound/direct_sound_samples/cries/mega_camerupt.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_camerupt.aif rename to sound/direct_sound_samples/cries/mega_camerupt.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_charizard_x.aif b/sound/direct_sound_samples/cries/mega_charizard_x.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_charizard_x.aif rename to sound/direct_sound_samples/cries/mega_charizard_x.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_charizard_y.aif b/sound/direct_sound_samples/cries/mega_charizard_y.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_charizard_y.aif rename to sound/direct_sound_samples/cries/mega_charizard_y.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_diancie.aif b/sound/direct_sound_samples/cries/mega_diancie.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_diancie.aif rename to sound/direct_sound_samples/cries/mega_diancie.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_gallade.aif b/sound/direct_sound_samples/cries/mega_gallade.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_gallade.aif rename to sound/direct_sound_samples/cries/mega_gallade.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_garchomp.aif b/sound/direct_sound_samples/cries/mega_garchomp.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_garchomp.aif rename to sound/direct_sound_samples/cries/mega_garchomp.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_gardevoir.aif b/sound/direct_sound_samples/cries/mega_gardevoir.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_gardevoir.aif rename to sound/direct_sound_samples/cries/mega_gardevoir.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_gengar.aif b/sound/direct_sound_samples/cries/mega_gengar.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_gengar.aif rename to sound/direct_sound_samples/cries/mega_gengar.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_glalie.aif b/sound/direct_sound_samples/cries/mega_glalie.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_glalie.aif rename to sound/direct_sound_samples/cries/mega_glalie.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_gyarados.aif b/sound/direct_sound_samples/cries/mega_gyarados.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_gyarados.aif rename to sound/direct_sound_samples/cries/mega_gyarados.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_heracross.aif b/sound/direct_sound_samples/cries/mega_heracross.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_heracross.aif rename to sound/direct_sound_samples/cries/mega_heracross.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_houndoom.aif b/sound/direct_sound_samples/cries/mega_houndoom.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_houndoom.aif rename to sound/direct_sound_samples/cries/mega_houndoom.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_kangaskhan.aif b/sound/direct_sound_samples/cries/mega_kangaskhan.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_kangaskhan.aif rename to sound/direct_sound_samples/cries/mega_kangaskhan.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_latias.aif b/sound/direct_sound_samples/cries/mega_latias.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_latias.aif rename to sound/direct_sound_samples/cries/mega_latias.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_latios.aif b/sound/direct_sound_samples/cries/mega_latios.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_latios.aif rename to sound/direct_sound_samples/cries/mega_latios.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_lopunny.aif b/sound/direct_sound_samples/cries/mega_lopunny.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_lopunny.aif rename to sound/direct_sound_samples/cries/mega_lopunny.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_lucario.aif b/sound/direct_sound_samples/cries/mega_lucario.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_lucario.aif rename to sound/direct_sound_samples/cries/mega_lucario.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_manectric.aif b/sound/direct_sound_samples/cries/mega_manectric.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_manectric.aif rename to sound/direct_sound_samples/cries/mega_manectric.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_mawile.aif b/sound/direct_sound_samples/cries/mega_mawile.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_mawile.aif rename to sound/direct_sound_samples/cries/mega_mawile.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_medicham.aif b/sound/direct_sound_samples/cries/mega_medicham.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_medicham.aif rename to sound/direct_sound_samples/cries/mega_medicham.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_metagross.aif b/sound/direct_sound_samples/cries/mega_metagross.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_metagross.aif rename to sound/direct_sound_samples/cries/mega_metagross.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_mewtwo_x.aif b/sound/direct_sound_samples/cries/mega_mewtwo_x.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_mewtwo_x.aif rename to sound/direct_sound_samples/cries/mega_mewtwo_x.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_mewtwo_y.aif b/sound/direct_sound_samples/cries/mega_mewtwo_y.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_mewtwo_y.aif rename to sound/direct_sound_samples/cries/mega_mewtwo_y.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_pidgeot.aif b/sound/direct_sound_samples/cries/mega_pidgeot.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_pidgeot.aif rename to sound/direct_sound_samples/cries/mega_pidgeot.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_pinsir.aif b/sound/direct_sound_samples/cries/mega_pinsir.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_pinsir.aif rename to sound/direct_sound_samples/cries/mega_pinsir.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_rayquaza.aif b/sound/direct_sound_samples/cries/mega_rayquaza.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_rayquaza.aif rename to sound/direct_sound_samples/cries/mega_rayquaza.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_sableye.aif b/sound/direct_sound_samples/cries/mega_sableye.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_sableye.aif rename to sound/direct_sound_samples/cries/mega_sableye.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_salamence.aif b/sound/direct_sound_samples/cries/mega_salamence.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_salamence.aif rename to sound/direct_sound_samples/cries/mega_salamence.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_sceptile.aif b/sound/direct_sound_samples/cries/mega_sceptile.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_sceptile.aif rename to sound/direct_sound_samples/cries/mega_sceptile.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_scizor.aif b/sound/direct_sound_samples/cries/mega_scizor.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_scizor.aif rename to sound/direct_sound_samples/cries/mega_scizor.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_sharpedo.aif b/sound/direct_sound_samples/cries/mega_sharpedo.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_sharpedo.aif rename to sound/direct_sound_samples/cries/mega_sharpedo.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_slowbro.aif b/sound/direct_sound_samples/cries/mega_slowbro.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_slowbro.aif rename to sound/direct_sound_samples/cries/mega_slowbro.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_steelix.aif b/sound/direct_sound_samples/cries/mega_steelix.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_steelix.aif rename to sound/direct_sound_samples/cries/mega_steelix.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_swampert.aif b/sound/direct_sound_samples/cries/mega_swampert.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_swampert.aif rename to sound/direct_sound_samples/cries/mega_swampert.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_tyranitar.aif b/sound/direct_sound_samples/cries/mega_tyranitar.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_tyranitar.aif rename to sound/direct_sound_samples/cries/mega_tyranitar.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mega_venusaur.aif b/sound/direct_sound_samples/cries/mega_venusaur.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mega_venusaur.aif rename to sound/direct_sound_samples/cries/mega_venusaur.aif diff --git a/sound/direct_sound_samples/cries/uncomp_melmetal.aif b/sound/direct_sound_samples/cries/melmetal.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_melmetal.aif rename to sound/direct_sound_samples/cries/melmetal.aif diff --git a/sound/direct_sound_samples/cries/uncomp_meltan.aif b/sound/direct_sound_samples/cries/meltan.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_meltan.aif rename to sound/direct_sound_samples/cries/meltan.aif diff --git a/sound/direct_sound_samples/cries/uncomp_meowstic.aif b/sound/direct_sound_samples/cries/meowstic.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_meowstic.aif rename to sound/direct_sound_samples/cries/meowstic.aif diff --git a/sound/direct_sound_samples/cries/uncomp_milcery.aif b/sound/direct_sound_samples/cries/milcery.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_milcery.aif rename to sound/direct_sound_samples/cries/milcery.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mimikyu.aif b/sound/direct_sound_samples/cries/mimikyu.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mimikyu.aif rename to sound/direct_sound_samples/cries/mimikyu.aif diff --git a/sound/direct_sound_samples/cries/uncomp_minior.aif b/sound/direct_sound_samples/cries/minior.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_minior.aif rename to sound/direct_sound_samples/cries/minior.aif diff --git a/sound/direct_sound_samples/cries/uncomp_morelull.aif b/sound/direct_sound_samples/cries/morelull.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_morelull.aif rename to sound/direct_sound_samples/cries/morelull.aif diff --git a/sound/direct_sound_samples/cries/uncomp_morgrem.aif b/sound/direct_sound_samples/cries/morgrem.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_morgrem.aif rename to sound/direct_sound_samples/cries/morgrem.aif diff --git a/sound/direct_sound_samples/cries/uncomp_morpeko.aif b/sound/direct_sound_samples/cries/morpeko.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_morpeko.aif rename to sound/direct_sound_samples/cries/morpeko.aif diff --git a/sound/direct_sound_samples/cries/uncomp_morpeko_hangry.aif b/sound/direct_sound_samples/cries/morpeko_hangry.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_morpeko_hangry.aif rename to sound/direct_sound_samples/cries/morpeko_hangry.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mr_rime.aif b/sound/direct_sound_samples/cries/mr_rime.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mr_rime.aif rename to sound/direct_sound_samples/cries/mr_rime.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mudbray.aif b/sound/direct_sound_samples/cries/mudbray.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mudbray.aif rename to sound/direct_sound_samples/cries/mudbray.aif diff --git a/sound/direct_sound_samples/cries/uncomp_mudsdale.aif b/sound/direct_sound_samples/cries/mudsdale.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_mudsdale.aif rename to sound/direct_sound_samples/cries/mudsdale.aif diff --git a/sound/direct_sound_samples/cries/uncomp_naganadel.aif b/sound/direct_sound_samples/cries/naganadel.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_naganadel.aif rename to sound/direct_sound_samples/cries/naganadel.aif diff --git a/sound/direct_sound_samples/cries/uncomp_necrozma.aif b/sound/direct_sound_samples/cries/necrozma.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_necrozma.aif rename to sound/direct_sound_samples/cries/necrozma.aif diff --git a/sound/direct_sound_samples/cries/uncomp_necrozma_dawn_wings.aif b/sound/direct_sound_samples/cries/necrozma_dawn_wings.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_necrozma_dawn_wings.aif rename to sound/direct_sound_samples/cries/necrozma_dawn_wings.aif diff --git a/sound/direct_sound_samples/cries/uncomp_necrozma_dusk_mane.aif b/sound/direct_sound_samples/cries/necrozma_dusk_mane.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_necrozma_dusk_mane.aif rename to sound/direct_sound_samples/cries/necrozma_dusk_mane.aif diff --git a/sound/direct_sound_samples/cries/uncomp_necrozma_ultra.aif b/sound/direct_sound_samples/cries/necrozma_ultra.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_necrozma_ultra.aif rename to sound/direct_sound_samples/cries/necrozma_ultra.aif diff --git a/sound/direct_sound_samples/cries/uncomp_nickit.aif b/sound/direct_sound_samples/cries/nickit.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_nickit.aif rename to sound/direct_sound_samples/cries/nickit.aif diff --git a/sound/direct_sound_samples/cries/uncomp_nihilego.aif b/sound/direct_sound_samples/cries/nihilego.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_nihilego.aif rename to sound/direct_sound_samples/cries/nihilego.aif diff --git a/sound/direct_sound_samples/cries/uncomp_noibat.aif b/sound/direct_sound_samples/cries/noibat.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_noibat.aif rename to sound/direct_sound_samples/cries/noibat.aif diff --git a/sound/direct_sound_samples/cries/uncomp_noivern.aif b/sound/direct_sound_samples/cries/noivern.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_noivern.aif rename to sound/direct_sound_samples/cries/noivern.aif diff --git a/sound/direct_sound_samples/cries/uncomp_obstagoon.aif b/sound/direct_sound_samples/cries/obstagoon.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_obstagoon.aif rename to sound/direct_sound_samples/cries/obstagoon.aif diff --git a/sound/direct_sound_samples/cries/uncomp_oranguru.aif b/sound/direct_sound_samples/cries/oranguru.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_oranguru.aif rename to sound/direct_sound_samples/cries/oranguru.aif diff --git a/sound/direct_sound_samples/cries/uncomp_orbeetle.aif b/sound/direct_sound_samples/cries/orbeetle.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_orbeetle.aif rename to sound/direct_sound_samples/cries/orbeetle.aif diff --git a/sound/direct_sound_samples/cries/uncomp_oricorio.aif b/sound/direct_sound_samples/cries/oricorio.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_oricorio.aif rename to sound/direct_sound_samples/cries/oricorio.aif diff --git a/sound/direct_sound_samples/cries/uncomp_oricorio_pau.aif b/sound/direct_sound_samples/cries/oricorio_pau.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_oricorio_pau.aif rename to sound/direct_sound_samples/cries/oricorio_pau.aif diff --git a/sound/direct_sound_samples/cries/uncomp_oricorio_pom_pom.aif b/sound/direct_sound_samples/cries/oricorio_pom_pom.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_oricorio_pom_pom.aif rename to sound/direct_sound_samples/cries/oricorio_pom_pom.aif diff --git a/sound/direct_sound_samples/cries/uncomp_oricorio_sensu.aif b/sound/direct_sound_samples/cries/oricorio_sensu.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_oricorio_sensu.aif rename to sound/direct_sound_samples/cries/oricorio_sensu.aif diff --git a/sound/direct_sound_samples/cries/uncomp_palossand.aif b/sound/direct_sound_samples/cries/palossand.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_palossand.aif rename to sound/direct_sound_samples/cries/palossand.aif diff --git a/sound/direct_sound_samples/cries/uncomp_pancham.aif b/sound/direct_sound_samples/cries/pancham.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_pancham.aif rename to sound/direct_sound_samples/cries/pancham.aif diff --git a/sound/direct_sound_samples/cries/uncomp_pangoro.aif b/sound/direct_sound_samples/cries/pangoro.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_pangoro.aif rename to sound/direct_sound_samples/cries/pangoro.aif diff --git a/sound/direct_sound_samples/cries/uncomp_passimian.aif b/sound/direct_sound_samples/cries/passimian.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_passimian.aif rename to sound/direct_sound_samples/cries/passimian.aif diff --git a/sound/direct_sound_samples/cries/uncomp_perrserker.aif b/sound/direct_sound_samples/cries/perrserker.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_perrserker.aif rename to sound/direct_sound_samples/cries/perrserker.aif diff --git a/sound/direct_sound_samples/cries/uncomp_phantump.aif b/sound/direct_sound_samples/cries/phantump.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_phantump.aif rename to sound/direct_sound_samples/cries/phantump.aif diff --git a/sound/direct_sound_samples/cries/uncomp_pheromosa.aif b/sound/direct_sound_samples/cries/pheromosa.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_pheromosa.aif rename to sound/direct_sound_samples/cries/pheromosa.aif diff --git a/sound/direct_sound_samples/cries/uncomp_pikipek.aif b/sound/direct_sound_samples/cries/pikipek.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_pikipek.aif rename to sound/direct_sound_samples/cries/pikipek.aif diff --git a/sound/direct_sound_samples/cries/uncomp_pincurchin.aif b/sound/direct_sound_samples/cries/pincurchin.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_pincurchin.aif rename to sound/direct_sound_samples/cries/pincurchin.aif diff --git a/sound/direct_sound_samples/cries/uncomp_poipole.aif b/sound/direct_sound_samples/cries/poipole.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_poipole.aif rename to sound/direct_sound_samples/cries/poipole.aif diff --git a/sound/direct_sound_samples/cries/uncomp_polteageist.aif b/sound/direct_sound_samples/cries/polteageist.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_polteageist.aif rename to sound/direct_sound_samples/cries/polteageist.aif diff --git a/sound/direct_sound_samples/cries/uncomp_popplio.aif b/sound/direct_sound_samples/cries/popplio.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_popplio.aif rename to sound/direct_sound_samples/cries/popplio.aif diff --git a/sound/direct_sound_samples/cries/uncomp_primal_groudon.aif b/sound/direct_sound_samples/cries/primal_groudon.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_primal_groudon.aif rename to sound/direct_sound_samples/cries/primal_groudon.aif diff --git a/sound/direct_sound_samples/cries/uncomp_primal_kyogre.aif b/sound/direct_sound_samples/cries/primal_kyogre.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_primal_kyogre.aif rename to sound/direct_sound_samples/cries/primal_kyogre.aif diff --git a/sound/direct_sound_samples/cries/uncomp_primarina.aif b/sound/direct_sound_samples/cries/primarina.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_primarina.aif rename to sound/direct_sound_samples/cries/primarina.aif diff --git a/sound/direct_sound_samples/cries/uncomp_pumpkaboo.aif b/sound/direct_sound_samples/cries/pumpkaboo.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_pumpkaboo.aif rename to sound/direct_sound_samples/cries/pumpkaboo.aif diff --git a/sound/direct_sound_samples/cries/uncomp_pumpkaboo_super.aif b/sound/direct_sound_samples/cries/pumpkaboo_super.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_pumpkaboo_super.aif rename to sound/direct_sound_samples/cries/pumpkaboo_super.aif diff --git a/sound/direct_sound_samples/cries/uncomp_pyroar.aif b/sound/direct_sound_samples/cries/pyroar.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_pyroar.aif rename to sound/direct_sound_samples/cries/pyroar.aif diff --git a/sound/direct_sound_samples/cries/uncomp_pyukumuku.aif b/sound/direct_sound_samples/cries/pyukumuku.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_pyukumuku.aif rename to sound/direct_sound_samples/cries/pyukumuku.aif diff --git a/sound/direct_sound_samples/cries/uncomp_quilladin.aif b/sound/direct_sound_samples/cries/quilladin.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_quilladin.aif rename to sound/direct_sound_samples/cries/quilladin.aif diff --git a/sound/direct_sound_samples/cries/uncomp_raboot.aif b/sound/direct_sound_samples/cries/raboot.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_raboot.aif rename to sound/direct_sound_samples/cries/raboot.aif diff --git a/sound/direct_sound_samples/cries/uncomp_regidrago.aif b/sound/direct_sound_samples/cries/regidrago.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_regidrago.aif rename to sound/direct_sound_samples/cries/regidrago.aif diff --git a/sound/direct_sound_samples/cries/uncomp_regieleki.aif b/sound/direct_sound_samples/cries/regieleki.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_regieleki.aif rename to sound/direct_sound_samples/cries/regieleki.aif diff --git a/sound/direct_sound_samples/cries/uncomp_ribombee.aif b/sound/direct_sound_samples/cries/ribombee.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_ribombee.aif rename to sound/direct_sound_samples/cries/ribombee.aif diff --git a/sound/direct_sound_samples/cries/uncomp_rillaboom.aif b/sound/direct_sound_samples/cries/rillaboom.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_rillaboom.aif rename to sound/direct_sound_samples/cries/rillaboom.aif diff --git a/sound/direct_sound_samples/cries/uncomp_rockruff.aif b/sound/direct_sound_samples/cries/rockruff.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_rockruff.aif rename to sound/direct_sound_samples/cries/rockruff.aif diff --git a/sound/direct_sound_samples/cries/uncomp_rolycoly.aif b/sound/direct_sound_samples/cries/rolycoly.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_rolycoly.aif rename to sound/direct_sound_samples/cries/rolycoly.aif diff --git a/sound/direct_sound_samples/cries/uncomp_rookidee.aif b/sound/direct_sound_samples/cries/rookidee.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_rookidee.aif rename to sound/direct_sound_samples/cries/rookidee.aif diff --git a/sound/direct_sound_samples/cries/uncomp_rowlet.aif b/sound/direct_sound_samples/cries/rowlet.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_rowlet.aif rename to sound/direct_sound_samples/cries/rowlet.aif diff --git a/sound/direct_sound_samples/cries/uncomp_runerigus.aif b/sound/direct_sound_samples/cries/runerigus.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_runerigus.aif rename to sound/direct_sound_samples/cries/runerigus.aif diff --git a/sound/direct_sound_samples/cries/uncomp_salandit.aif b/sound/direct_sound_samples/cries/salandit.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_salandit.aif rename to sound/direct_sound_samples/cries/salandit.aif diff --git a/sound/direct_sound_samples/cries/uncomp_salazzle.aif b/sound/direct_sound_samples/cries/salazzle.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_salazzle.aif rename to sound/direct_sound_samples/cries/salazzle.aif diff --git a/sound/direct_sound_samples/cries/uncomp_sandaconda.aif b/sound/direct_sound_samples/cries/sandaconda.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_sandaconda.aif rename to sound/direct_sound_samples/cries/sandaconda.aif diff --git a/sound/direct_sound_samples/cries/uncomp_sandygast.aif b/sound/direct_sound_samples/cries/sandygast.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_sandygast.aif rename to sound/direct_sound_samples/cries/sandygast.aif diff --git a/sound/direct_sound_samples/cries/uncomp_scatterbug.aif b/sound/direct_sound_samples/cries/scatterbug.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_scatterbug.aif rename to sound/direct_sound_samples/cries/scatterbug.aif diff --git a/sound/direct_sound_samples/cries/uncomp_scorbunny.aif b/sound/direct_sound_samples/cries/scorbunny.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_scorbunny.aif rename to sound/direct_sound_samples/cries/scorbunny.aif diff --git a/sound/direct_sound_samples/cries/shelmet.aif b/sound/direct_sound_samples/cries/shelmet.aif index 13bf69e3ea135effe80f5a05b09747ed3ae118a4..b65d435f532cac99cb3e9415114cbebbf37a2eb0 100644 GIT binary patch literal 13888 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 diff --git a/sound/direct_sound_samples/cries/uncomp_shiinotic.aif b/sound/direct_sound_samples/cries/shiinotic.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_shiinotic.aif rename to sound/direct_sound_samples/cries/shiinotic.aif diff --git a/sound/direct_sound_samples/cries/uncomp_silicobra.aif b/sound/direct_sound_samples/cries/silicobra.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_silicobra.aif rename to sound/direct_sound_samples/cries/silicobra.aif diff --git a/sound/direct_sound_samples/cries/uncomp_silvally.aif b/sound/direct_sound_samples/cries/silvally.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_silvally.aif rename to sound/direct_sound_samples/cries/silvally.aif diff --git a/sound/direct_sound_samples/cries/uncomp_sinistea.aif b/sound/direct_sound_samples/cries/sinistea.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_sinistea.aif rename to sound/direct_sound_samples/cries/sinistea.aif diff --git a/sound/direct_sound_samples/cries/uncomp_sirfetchd.aif b/sound/direct_sound_samples/cries/sirfetchd.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_sirfetchd.aif rename to sound/direct_sound_samples/cries/sirfetchd.aif diff --git a/sound/direct_sound_samples/cries/uncomp_sizzlipede.aif b/sound/direct_sound_samples/cries/sizzlipede.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_sizzlipede.aif rename to sound/direct_sound_samples/cries/sizzlipede.aif diff --git a/sound/direct_sound_samples/cries/uncomp_skiddo.aif b/sound/direct_sound_samples/cries/skiddo.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_skiddo.aif rename to sound/direct_sound_samples/cries/skiddo.aif diff --git a/sound/direct_sound_samples/cries/uncomp_skrelp.aif b/sound/direct_sound_samples/cries/skrelp.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_skrelp.aif rename to sound/direct_sound_samples/cries/skrelp.aif diff --git a/sound/direct_sound_samples/cries/uncomp_skwovet.aif b/sound/direct_sound_samples/cries/skwovet.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_skwovet.aif rename to sound/direct_sound_samples/cries/skwovet.aif diff --git a/sound/direct_sound_samples/cries/uncomp_sliggoo.aif b/sound/direct_sound_samples/cries/sliggoo.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_sliggoo.aif rename to sound/direct_sound_samples/cries/sliggoo.aif diff --git a/sound/direct_sound_samples/cries/uncomp_slowpoke_galarian.aif b/sound/direct_sound_samples/cries/slowpoke_galarian.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_slowpoke_galarian.aif rename to sound/direct_sound_samples/cries/slowpoke_galarian.aif diff --git a/sound/direct_sound_samples/cries/uncomp_slurpuff.aif b/sound/direct_sound_samples/cries/slurpuff.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_slurpuff.aif rename to sound/direct_sound_samples/cries/slurpuff.aif diff --git a/sound/direct_sound_samples/cries/uncomp_snom.aif b/sound/direct_sound_samples/cries/snom.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_snom.aif rename to sound/direct_sound_samples/cries/snom.aif diff --git a/sound/direct_sound_samples/cries/uncomp_sobble.aif b/sound/direct_sound_samples/cries/sobble.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_sobble.aif rename to sound/direct_sound_samples/cries/sobble.aif diff --git a/sound/direct_sound_samples/cries/uncomp_solgaleo.aif b/sound/direct_sound_samples/cries/solgaleo.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_solgaleo.aif rename to sound/direct_sound_samples/cries/solgaleo.aif diff --git a/sound/direct_sound_samples/cries/uncomp_spectrier.aif b/sound/direct_sound_samples/cries/spectrier.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_spectrier.aif rename to sound/direct_sound_samples/cries/spectrier.aif diff --git a/sound/direct_sound_samples/cries/uncomp_spewpa.aif b/sound/direct_sound_samples/cries/spewpa.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_spewpa.aif rename to sound/direct_sound_samples/cries/spewpa.aif diff --git a/sound/direct_sound_samples/cries/uncomp_spritzee.aif b/sound/direct_sound_samples/cries/spritzee.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_spritzee.aif rename to sound/direct_sound_samples/cries/spritzee.aif diff --git a/sound/direct_sound_samples/cries/uncomp_stakataka.aif b/sound/direct_sound_samples/cries/stakataka.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_stakataka.aif rename to sound/direct_sound_samples/cries/stakataka.aif diff --git a/sound/direct_sound_samples/cries/uncomp_steenee.aif b/sound/direct_sound_samples/cries/steenee.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_steenee.aif rename to sound/direct_sound_samples/cries/steenee.aif diff --git a/sound/direct_sound_samples/cries/uncomp_stonjourner.aif b/sound/direct_sound_samples/cries/stonjourner.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_stonjourner.aif rename to sound/direct_sound_samples/cries/stonjourner.aif diff --git a/sound/direct_sound_samples/cries/uncomp_stufful.aif b/sound/direct_sound_samples/cries/stufful.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_stufful.aif rename to sound/direct_sound_samples/cries/stufful.aif diff --git a/sound/direct_sound_samples/cries/uncomp_swirlix.aif b/sound/direct_sound_samples/cries/swirlix.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_swirlix.aif rename to sound/direct_sound_samples/cries/swirlix.aif diff --git a/sound/direct_sound_samples/cries/swoobat.aif b/sound/direct_sound_samples/cries/swoobat.aif index 4b15334b5a68b85ba612d90da691bbf966d0f0ff..c5b530b7144e7c9155387276accc5b85f63ba9ef 100644 GIT binary patch literal 18108 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 literal 21628 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

p^k%G^?3>Z$snrc0AXA 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 A;{X5v diff --git a/sound/direct_sound_samples/cries/uncomp_sylveon.aif b/sound/direct_sound_samples/cries/sylveon.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_sylveon.aif rename to sound/direct_sound_samples/cries/sylveon.aif diff --git a/sound/direct_sound_samples/cries/uncomp_talonflame.aif b/sound/direct_sound_samples/cries/talonflame.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_talonflame.aif rename to sound/direct_sound_samples/cries/talonflame.aif diff --git a/sound/direct_sound_samples/cries/uncomp_tapu_bulu.aif b/sound/direct_sound_samples/cries/tapu_bulu.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_tapu_bulu.aif rename to sound/direct_sound_samples/cries/tapu_bulu.aif diff --git a/sound/direct_sound_samples/cries/uncomp_tapu_fini.aif b/sound/direct_sound_samples/cries/tapu_fini.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_tapu_fini.aif rename to sound/direct_sound_samples/cries/tapu_fini.aif diff --git a/sound/direct_sound_samples/cries/uncomp_tapu_koko.aif b/sound/direct_sound_samples/cries/tapu_koko.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_tapu_koko.aif rename to sound/direct_sound_samples/cries/tapu_koko.aif diff --git a/sound/direct_sound_samples/cries/uncomp_tapu_lele.aif b/sound/direct_sound_samples/cries/tapu_lele.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_tapu_lele.aif rename to sound/direct_sound_samples/cries/tapu_lele.aif diff --git a/sound/direct_sound_samples/cries/uncomp_thievul.aif b/sound/direct_sound_samples/cries/thievul.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_thievul.aif rename to sound/direct_sound_samples/cries/thievul.aif diff --git a/sound/direct_sound_samples/cries/uncomp_thwackey.aif b/sound/direct_sound_samples/cries/thwackey.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_thwackey.aif rename to sound/direct_sound_samples/cries/thwackey.aif diff --git a/sound/direct_sound_samples/cries/uncomp_togedemaru.aif b/sound/direct_sound_samples/cries/togedemaru.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_togedemaru.aif rename to sound/direct_sound_samples/cries/togedemaru.aif diff --git a/sound/direct_sound_samples/cries/uncomp_torracat.aif b/sound/direct_sound_samples/cries/torracat.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_torracat.aif rename to sound/direct_sound_samples/cries/torracat.aif diff --git a/sound/direct_sound_samples/cries/uncomp_toucannon.aif b/sound/direct_sound_samples/cries/toucannon.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_toucannon.aif rename to sound/direct_sound_samples/cries/toucannon.aif diff --git a/sound/direct_sound_samples/cries/uncomp_toxapex.aif b/sound/direct_sound_samples/cries/toxapex.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_toxapex.aif rename to sound/direct_sound_samples/cries/toxapex.aif diff --git a/sound/direct_sound_samples/cries/uncomp_toxel.aif b/sound/direct_sound_samples/cries/toxel.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_toxel.aif rename to sound/direct_sound_samples/cries/toxel.aif diff --git a/sound/direct_sound_samples/cries/uncomp_toxtricity.aif b/sound/direct_sound_samples/cries/toxtricity.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_toxtricity.aif rename to sound/direct_sound_samples/cries/toxtricity.aif diff --git a/sound/direct_sound_samples/cries/uncomp_toxtricity_low_key.aif b/sound/direct_sound_samples/cries/toxtricity_low_key.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_toxtricity_low_key.aif rename to sound/direct_sound_samples/cries/toxtricity_low_key.aif diff --git a/sound/direct_sound_samples/cries/uncomp_trevenant.aif b/sound/direct_sound_samples/cries/trevenant.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_trevenant.aif rename to sound/direct_sound_samples/cries/trevenant.aif diff --git a/sound/direct_sound_samples/cries/uncomp_trumbeak.aif b/sound/direct_sound_samples/cries/trumbeak.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_trumbeak.aif rename to sound/direct_sound_samples/cries/trumbeak.aif diff --git a/sound/direct_sound_samples/cries/uncomp_tsareena.aif b/sound/direct_sound_samples/cries/tsareena.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_tsareena.aif rename to sound/direct_sound_samples/cries/tsareena.aif diff --git a/sound/direct_sound_samples/cries/uncomp_turtonator.aif b/sound/direct_sound_samples/cries/turtonator.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_turtonator.aif rename to sound/direct_sound_samples/cries/turtonator.aif diff --git a/sound/direct_sound_samples/cries/uncomp_type_null.aif b/sound/direct_sound_samples/cries/type_null.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_type_null.aif rename to sound/direct_sound_samples/cries/type_null.aif diff --git a/sound/direct_sound_samples/cries/uncomp_tyrantrum.aif b/sound/direct_sound_samples/cries/tyrantrum.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_tyrantrum.aif rename to sound/direct_sound_samples/cries/tyrantrum.aif diff --git a/sound/direct_sound_samples/cries/uncomp_tyrunt.aif b/sound/direct_sound_samples/cries/tyrunt.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_tyrunt.aif rename to sound/direct_sound_samples/cries/tyrunt.aif diff --git a/sound/direct_sound_samples/cries/uncomp_cottonee.aif b/sound/direct_sound_samples/cries/uncomp_cottonee.aif deleted file mode 100644 index a459a62f726aacc83689b3ccc89e70a1fd2d8175..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9330 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 L{ePUlf586+Ygr;_ diff --git a/sound/direct_sound_samples/cries/uncomp_foongus.aif b/sound/direct_sound_samples/cries/uncomp_foongus.aif deleted file mode 100644 index dbd6f9c5cd7965630582620eebf54f230a5dca24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7608 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 diff --git a/sound/direct_sound_samples/cries/uncomp_keldeo.aif b/sound/direct_sound_samples/cries/uncomp_keldeo.aif deleted file mode 100644 index 4f73fc22da4ad6cfa83907f06449dec3e294a7d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13144 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 diff --git a/sound/direct_sound_samples/cries/uncomp_shelmet.aif b/sound/direct_sound_samples/cries/uncomp_shelmet.aif deleted file mode 100644 index b65d435f532cac99cb3e9415114cbebbf37a2eb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13888 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 diff --git a/sound/direct_sound_samples/cries/uncomp_yamask.aif b/sound/direct_sound_samples/cries/uncomp_yamask.aif deleted file mode 100644 index 8d44817f7b1a7bd3fd8338a544562c82ced47d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13782 zcmZvD1wd3;`}cGg3@~(ecZUdwf*^{4je)tYvFhr&yYIX0>Y8g|7b0SzfQkr+bPI^| z&BkQmzz1ChCNI1)hRe@C6zQ z6(i?Mkz}Gqz)|B#2;r<8OC@Lo5+s$R<#SayGF&vPB+*G)p$thSDA_Y|EJ4fXDF`Mc zwMd4dVCB;+8JeII2{cp&MJth`sTkSRj2wg4iUfKZgQ5{D&?K~YlB>d#;c^+;#M($F zQ(}lH@f1fzAR`qDoT&vxEsRNES|Y;)E}qq(P_k)`f=t7yRX7s{TE>$i zkgAz!5yprJm&2&0L^+46(#xlZr&L5TQVpY7GcY2d5~1S`Get;(PAE_la5^qWfhOz3 zd<}_;;!SbXD4m3_#v5bh9KIf@Wsk6QbTbMPOEV)1hkM7lT;`_{y_K7*jf0oBg=VO; zr>D81qDN=%9~c^!67Qh+RR5vs<&*MJT5x>g;^iyn88fS1K7aD?S+mwNIb&JYhNV98 znu6PR?-ab9WW;2yUbAj>oN?c?tGTxxlyt$o)3esETb=4IuDW&c`oq#@fo1&a4eM8@ z2jf0IIDhH>>!wL^=*pa&wHZ;S<3)d;zE#pVg7jIIvu#~^1cUYJ(%IXkE#oM!jIG;N zCkL3!yuEheURfs#yardt+*l9ZCA>_2c6DVFAWDX;o&l zBNeTjXeqB~9TA{x!WYi>py>5**~G`zo(T!U#3RU)CYx0fD9G9I$ypVGXlhQ8kB`Yr z-JOl}Dm?L*m(c!-}xVgB($Ja z2M%qHHJPcpb3XTJ^SHt|c=e$po5JuzuWw(vRop(MF$rCL@X%U6U3badYxhdprgRoj z>ksZQrqaUu1*PqLl1I{-ZR_Tla@yV&J$_QwEo1m4 zWUNXLq47H3mp*&;Za{Az7&||4p0A0dud%%Jbv=vd78Ky?=kLkTj<(fQ)b`35o?iB5 z7ET^E81|=@);=!U*2w~;K$y8X5rrd6j-1G_rYlDJxg;kino5Q+ad5ICi@Pf;2avWd z=0?_j^JBeeyw>Np3hHI%ZoVNY8#kpnNIQzIpS}K$ZR{7Hxnu99Skh?KqwD8ylua_C zR_*>~|8jR_=i7%@&*#43*rn|_d~ox82CwyX{^c`QD`f%e4<6mUJODS?D=lj(r|m+Wc9tXXKuXX zJFfV8@4ERuW~!c|%V)2Z^rHh-Y}=d`=743_KFGaM+##d~rmtR+=t+}wzj^SWw0%ZP z_fA@t7G|kpHohsT>YNg3$jcRgE33b!`)9 z&*Y7}vg1kpB@Z7xDty_h^;x-V*Vbhrgx;rrpS}{M&MSKu)*d&xK~1q z3vPB|iYHghe0k-TLwc*A#XGMIQxZ*O*mbf4kY2{q*FC8?W0Zl(c~K9S66^ zqw6mJez~-3f~U1i*m-P!s%c;0`3sL4MtE|9_o_qRuCiy9<=rWK*D)c(yDZ50W>bi| z<@uu*Z|k~QNT+!#vscHOvTBNo%4$29O3Ubs3=hXJw5e3S*!6g|WUiWX*JQ z$+M~vq^*~?hl``F89_Su{&`s+&NIk`1jAW*I^ia2%W5a^ZhqG4(J8c7gp0hntW{?1 z4# zTRCIm9TE~gKPlXtTleBgQCTyK7O{HkhEyNIL|sYAyPD=6sq?CDze%^`^?dAXt1W-q zE^*5`d?=kU*3dFI-t+cJg&=U-v0bsG$?l$!@t*fDD>$B8j^zaFm;=-NiRO}`da3uC zJsU&O<3lVFyX{3`ohoqUhBR-AoX=q~+upry7CWb`O!lIobTU?V?fd3oxsgXyT)2yo zUNqU;-ujuP#851~qGG-96YX82Ldh(PB_+5-C50NZn%lT!OWbH(1K(-k;sDfe#|XmC z!+7dl@h4jH$}nwf1IIQljM7(H(t{65@Y40P@*Pu>8K0g!>81Gi84H;#lxuW^1^fN$ zk6H&O;tX?^<`?2d6b$tZb2S)@PNBqFxHy~WxD%6X-mDl#F*QQNP{y_l{YX>G7~I^J zrWQ)jRvxZ2err{`)F!}D)zikeUyx)yR{Zia&fCYB)7>j`nwQ`#c>laX=^AJ{RnsW- zTb61!QBgjOwlY(Wbd4cgW20SET{Rs-0!h)|F-{CjjI@+bj85}7lcVFaTC$B-fV-)B zvj6iSb7YK%Fm?6zaJDr;Of|fz_$iXT?6 z2sAj4i}FZL3BnFmzwhRwuzK;V+AK6N+-S7AW(;jXl`w}D76F0Qa5l8hpivPL){KH| z%|OqxBt%;WQ@DW3mq;X16^3eJVq$Ju^BQK*R)LGNbC&y| z`rbUab-$!bY7w51y=g@_dE{+Deo=YDkk(`6f&G~ty0MNAjS@Qu4NtfuQ4m5E)I`ws;?DJl z)icJSY0H-+1UnKr_4!wBRm{)>=fy_`2Y6cP`bzITs2nG_hlct%+uPYtC0(UY-VWp3 zLwqcWIAa@Y>~wuuJ&Ww-ZG%(D;bb~VH8n6IAv?NSz*qxJ0fJ0MsnmEIFArmW+q(~+ z`7k2g+A};Z(gnq=eERTt^?=5H{+g{D7I|Tq@9tf?oL|c`Ps}-daD4=6tg7(N?FX-W z-~sEtJ+e8!{6^tancP{KfZDK*6UGv((dmMuMH+nHy7W%cqzXH z7P{rwcR2~R>i&0k&z`*cZq{|#-Xr@~htatW56_+W`&ln0IBV~rT}yoseZ^PL{+(CL zF^yTj@4)5+3x0jU)hqYjeAYN7W$)R(%nvhE{^0h5k~TKpGkM+S)$!Jn_L9P(zs}^}{QcmOVN$#S_U?dMt%b zr{Q#Rkpyf4sZ=~%G0T}@^96FGk)vOTzavrD*I4ncu8W0ojLTfNV!jK!|JC)g7YbSx zP7BuMWM{_M$eQy`{&wljq*3US^_w>=4Kp4uIrr~B^E=e`F`1jTZA$afG~N3B*Nd-5 zuwKafOa%UpCviFHl=uB#;Xgi=02?9 zm`1JGv~F<_LpfCa^lskkUY$$AvdjfRwm9)ned*KUX0DO{{G=#v8yZqN)?QiOFaopn z5B9P(CgM?Q?!d>+5jn-y&J3^9An_!uR?HV^uw=Z3Gdjl8QLXH(%}wc4w1nAGS=Bm; zunkE{O^NX!vm2k>xc0Dmf*hK)_u!6HM@e&G?xmZ6&ena6APl^^b@^IB)iBC; z#s2U2WjG1z3UYJrylmky;}9(UEcio>gAh{Ka61m zS0DWGz)~l1^-I^Ew}~v{ z*6!T7I?hVk@#5B%+a*0}``FBNtHGW{(NhYN>irnnF(P?!%KRWpbzj-T{E`kn(ZM$~ zGBVVQp&t5BTw2FekgXhDJ-j>|jJ4w(bxr-V2nyYVPB&wiQQ*Rfktq?3NXF_FQiT?c z$74_!0?pJIubBAM*2xs1O&vY`0t3CQ5Mv*n+%K#iML0w+S+g#4p1q*FPTF7(tz`EzCW4;eIvW zE`9I6j&6!$h&qaLPaeNiI%S#i^^eDPq`1NRO0WF(@3YT`jpDX```zAEA>{G0++Y8F z=1DI$Fl*m;-)@O#%v4cXw6=Ww%w#JFcK#9JUZy(k2y=9r%NI)Z6e~vu239GUm1t2Y zxJIecBM~|&A3TZE?VM~G6pUUrGtgSs%2b>C#l%GhdDsvI?a!{|KIzmt#icLJNR9V5 z<-foB%P-gKBvz5>tJkl~jI|Zl-u&&COK-*qo(ooQ*|s6YL)-q~#Ls6QcdBfomTlg# zb$J+t`QqG9P?{MBrmWk(W5WVFK~?V0KV2vpM!L?=+VS;{OkaKL-Qz!<%5N5$g|FCk z=)i_3QvcJlzaGE-W*F_AzVpbD?MaO3va2Wly!fks{KV1=i;wcz|;f9F*)k?v``zW-rolG((Y zYp2d!D{AE%hpj#MC=>^ydCN0Qm}yIW^ZUwPcfrAMv%=GeZK ze#qVzxqqFy@v0x`xp>?Dy&LD-N?Qvr{Pp+41|cJI#nv6!X@L}0&4Y`7-!2=1yUbg* zZq3qIX9Tk{|Jv;r9RiwX^uood^MkCkgB6eNKdT+no4EysN5@9^FjNCoFJ8X?%tsno zIr{{M1-sGY!!0#+ADKKQie~NV7vN<_(Qrrldi#bacnXw}rGvARojC=m;7u}znPV)0 z0#0JsyL)>&njl5vechd(dWWVYIQxjyr70l{#c*3~<=Z!9bxf4+ssl%NE_BcgH@+#n zbv^IhglW>w@4w4g;HV$1dzyRt-2Fzm`||zYAKEz2M%nxN)|nF*pZDS-Hh%l#H)|un z(p7N&_Y*fNIaUjH9Qkg~GCv&ib?$FJoqpU6^I5j%yCXYNU6rl*fBp3P)$&PN#JYn& z9@!FaGF6uQ$FFA|Hj8Z%bB_LSV3i-Nv+(S1e_netg!W#t>*!ICquk2te;&W|v`u6Z zwqp0;eOUpBuBTVdUwu+DqPL4%3r-Uvsgoa`JSZrx{=@?rur_-|q`9=Ww!EyOzI$3{ z?jOG}F~|lrJKWjY`f-4zz%iV?yq(SQ8X;KQIQ&@=U>AWxA)w(fQ0K{bgi^p}O--}d zLJi58hK@e?D6@fDc@fy=}{yh2FT~;`2ZKa|emJ%*!JGqFcJ@+1Eyrx$rh|vJ zF0fbizALzSJ^$S>+HYyjjy3U4=$X!{;wR55KFcj5(w3*ixR9h{-Ay&M&3$}~T|iWX zpB+UjWKWF_509{F8`r)AL9BKKBicapV|F z@5p)4zUF#XS50~O`}T1SsEKJyQ=^!-@P{{)k*X|_m^KT zz3h?E0~Y6ilAS>7e{|~CzwW&KEM-KlJM^zZt2`Brd1p_YyZd$!>9zE$BL}nRSqK{P z&;EYuZr!X^{JNdHHm3TKCaZ3p`s;f6ILUue*80_H5jLt%#Wyb8dex`34O@`1C?VXH zD(ZTjpZB7bM|KVh3k4fZI}r7%;@6F1YLcmiwY|HqpPPw#q_wW4Z%QOr!-(c?fua76 zWcfr-N886wgHtlBjbB{yf^bLFOncSqH&gVXOKY|O$`sT-P*M(yGi?5$Pd#$)r<+S*# zAC7?<&Z)Y029%^)p4q%DM}ORx>80x^JoDQh*WXM~BiHW#cHi1aqw%s!zy5UL#Sq3X zee2g>Z%TF$ez^YI&lidZ5w7!AY~HzbsjnU!s{DGnWKe4zxNyz3oD~6xjtA$?+NC)VPOEG#XkSOsV3Q)e$rW$Y9j8R2V36b)3r zEG%i_83it0y)Glp0WtLU`iT=a>*XFxz+$#M%2Eov`suF+pRi$ByY_5a5^Or#aPP!V zXI_k&#;)JBd&A-Y+Vs2JpMSadj%$;&are%Ri+nIcMd$u~{9dchGkw$UoUB+YVcp%6 z$FG!)(?T-0?8r{_K@Y#W363b+Bo5v=7T^zVp+P0~zY+zMjsmuKr1lsdsdguNi!n!{)NbnM@wc z+|A2@sulmp4y#4#nf4>|=doSAb71&3cj=end(;v5M_$FbQ+xPEY;jOB@{_`)FUNJE~ zi?&9w}pO%AEb`K2l zb9XSqiG~{A*Y`^)4&V^pj7mT#xI?}DY%Sg1!IA>D0aB@WmM75Q&F$<=FcQ}I1XrZg zAnXGaE_*Wcbb#MfeJbPIcTH#@>?PhEZIjD}=HH?wy4@ibNT*S&8YQ{ads62sZw z-wrX}(bO}og2Oc$EW^Xwi69zdvgI(1gf%U~S~=TMbYcaPNF*LI(Jy_=zP%eFv7L91|9YilKx-Gb`s@9hqwrmYmo7bc*DE#&UcP-NNXYKD z&x>Bybo0mo%Qj|3(D^;h4NVO#JtDK%RjcNiO9nsn^!0oMCok?PnMuyD>A_*+<8JLzJtwI*1M={v7FJ4rBoB&6HDeE_++VQLIU%gw> z&ZmZC?)o}An%MXF!ih^opW*JQ;E8{kFRbIinZNGVi!6eZ)0d`1T8o<>-F@0BGy==C zm$$3AZltlgV+L#KWNStv;qQ3wtRE+YanZ^MLi2UORo^`H)G{?qlDq zbXU}a5^=3s=DqgFk2_=W;K}s#)z@S6#GOBUv&5WPbou-E8?&u^X z`5B2vK7;L=P)jzqHpQxD*)!0?f`g|kLq823vjFO7OTXB-08{x;Yh%mjNd?*7)6JTK z(rMK)kw}dpVMIgiJsiAKKv-y4fFt~4-pRAih6uik)^5*P>dGrV`R}vEOuT=_u5Y%* z;o9$C$SvxSSk2q8Jv!KxnI~p%PV<_WlotqsG})Rc zr@|&QHpG#l5l%6g9E@XVprxe!O>tF^&?q!(_qJry(b5}N?!M|nhi&=(yEX2!RkzPy zc+jNuU3+lvQfFy<@q_$V1NgA4%^9BBPvy^Ed>Fw7WNuj>M;j`>b~(R6;<9A-{_H4h z*TZw?9=7Ye7H4N?_`tfJ-vOspwBVGb$)1Q$#lUxsV{~d-ygR(>@zr}ZLd(d-%N9p6 zIPdfGE5=bap1yuw_C(>p$3C`>Xhb7pv|=_#hO=<6B7--xGpwm80m9tNA8h%@`Ub{l zRcMNtC4;09u=xrkfrvwBB<%4~F2W`_Ce#5t(^m4}(FcJ`=2yFx2NFhJU;O#xbDrPU zACGPb#r40ua_)YU)_d`)bm&m+&FfaNbflm)z zwrN9x#Y|OU!7GsL{>h7@ETsMIpT@!d(bmz5AYpcOkIE@d0l{A8fV!<6!vchnrL~nA z4G)t`BnpjEI6cl*5-l8ETBK;BIx4Dql-A+N zsfj-5j@!SVek1kE+P!0$kEY?qiHl{kZp(J>Ug|Vc{P)>{&!p%LyElaCKV1CnN*yw8 z=i!`iUHzT&*UDJ7%MKme=sI5T$In;lQSBXJ9#eIaxHS6O|S&eTi+PKDH zOBVaVdtN<$Q8#0jxP8xZS3ym|t^D#)YQ*xDN$yzg=jNs!9?FzKMXF>n4U%T<>_AhD zcD8nb_pUZRfnGKwtzdF+0F+)F2By(tD5h36)->gCV@>;nh6YYrf}PM)ADcTz#8`0h zf2WF^J$CNTx<&5R$R(j($GD zBROkDBxR`hdhWwIvD=EhyHYG>YG1ziFi!M~4KkVStZN!nJ1)##8v$>;bM8vA}XcowZHFaw46AR?H0bPh))2*QR-ZBZN!2rIVHm)~|`TmiE*(4C!nGd>Nv) z(xU1qvxR$(<^%~rtvy#J@W|S?Gm+d|`m}P46qK6ct8Ki0^>G&_ddH6k7h>yjPh2b+ zHIB{7iZd7Wv~-N9%)I^W^n-QPojig|cyyo@d}g4he_RA78AD}IuEEkRt&HG;(f)x6 zG0Mn{PQqewSTr0CQ;Vj@Cip58g<)-NjF1QvC^8AHU;)zhDQ)AHtxWO5etLN7Y|#ik zX65Q6J4tu*XA#BG-4;DoS@5_);j`xO;k9n8XMg^5u}a~yeA6-?`nB_MBTrT4 z=U4HZRvr0alQ;L}>0d9uSNgBYPIFcDRM+%roZ=Gwa08|HAJ$3Tmu^`b%b0B~d0sJu zu=8@az(_efCE3o^jw~DLXlNRcGyEe%U5&vB+2ANo2}i(S2rQ98A>k2fiC|WwgyTpA zgq+WlB8_eA7&tj=u#d@ugH5m#Su)hsGYz*13Uen;HI`L=Ry)O~Cx8>E4`uIrm9|j} zqO8Ro<>g%pr-bx43vTW6;uf(@Y}x`3M1Mu;`yrH9@{(B7$@0RIPcV<9^!bj`re{y; zW^EEyX87xy@~*!arp2t?oZ-T+%70WniFXSN_n?TzMtCr~oh=m{FI0C5O#_n_McHZk zKa|&kJ*%y=Egh#*X;B0+PA8a}n4ICu;8bfTHy7}pZSqrl$EQKI-YPU4>UIRiKuQN0XDj!`kF2QJ#c=s zGkgRToJqK)yQe)x%^e@->5Ob`jkK)(o?#)$IlvDbh))g;jBwNhGYc~+R<8ubSdW0~ zR0@Ss1H+IgM6_O`Q7a^~0;wKv%rK>*uW6dSn;MBe5b-cCen>0o0;Z;uPbR~+_4ds+Qc&=I?!4_^uD;P zgHLu13h^@4vL`tT6p@70aEH44I2ik&=rDJR@N<1_`fnp_Pk4 zf=PI6jzFeGk*HK63Z~I$by}5NCY7tngp;gFaN}vpfP>Fb4p&DasX=7=Gl1>c`j0>S5CPpN*7MLfMD^+Se0)<2%kZ9l^ za84Fean567JL#TMW5Dp&3yKNR?D5nB{|`W-QHwPQfF!N|{8eP-`?Q zrAmjyk!eO$JWRr!p5{vQcp9BXg#1;?Rceh&E>-AI1n|^@MQUXtp-hX!;?QulTqaW^ z2s9cA1=3R>l&N7TEP;qe>s1P18(gQ9$rKtG5{*G)AVU#wy+X+4fi%XFj7%9OB)Eh% zIyxm#qliXk<_se&c-O>Zv)BR^hGu4NO2O*oqS;w7Bm#;bLZ?=1;lNoW;39xkB$C4^ z=C+nbXmGMQKFI+!+r-j>j?;(*Vuc<&IV+_SnF=u0$b?QtDFriAEWQFkq|qn@U=B>H z1aOJvDjfoA@C>2Xs#V~rQX&SgFHj_7GczM1LcyOJ8)J!dL{m#khA|PP7K6v`X&?p! zlx|Fe&Ig5T)(j6Y1WPruFsBni;5gG$GqVafo@QcZMyFu4A{Kb1##dvFEp4snSe1}H z!xO8)=^_E8Qz_Lj@Tvrh0)zlhBWeT&hr>X01{GVcQAnjSl@5g?l8IP=wnVDb!jTA= zR;|{-QCK`4hXjbt3LviHDMm&VJX|fA<#PC94FJ%>l!8(Uxg79R498QbB#d6IP=K!r zLIMDTRa!^{0f&YuB|`8V1V^D!Xbc8q2|z)mR4RZj90@2!fK(R=#Sj6=6u=2UQK<~j zMyrRTaUj|#J+Mq9k}CBWkT4{04_uMRRiGbw9cJdz1#XQ3KG069hjQBv?(fJAZ_j%I3ZZbE`dxhxi-5J*B21(Xg5V~J1z;;KWF zs5A-=p;gM|3N^q9#73<{0`eJ=Ame7(vvN2I7)L>Cq$06Y37iCOfU{VrDqtXz%Onz+ zQVX4BL!nX0A$o)4MC0%{5DG1XfeNHJT2muSAhe0UU6-fHx~u!;qk6z=22%2CxEfP$UJ(Or%2Vk5UTi-<$ykyRkSN zO0NKc5JgvU#tWQAdkU(4af!qnkc|C$N)oF^*SIK z$OTaWK~YFSAa!UwD9RWRRwyMwA7mr~qOu_w0Am0Xpr}HIgNOk;A=4mk02j4NkcLV_ zO~vD|NI+CTGsrH04FRwNG7J)ngt7~W01_bIVIYryl^QMN7XtDZ>VV*av_t4Z;~+}` zkSM?>jS3{D2IL*I6V<7ebGZnx0$mXEkQg*rEfo+X2n^7SfGgi9C!OUVIZ7f8w0`sJjA16 zD!?iUU=@Kx1X?u)ICQ`dBuE226gMciY7MAJz-bf`$b~B#sDHL>O2rA#3MI0RabM4QK#b)p`^TtN;f14P^>a1%v@AfkFwe z0;&v}Ksf}{0gn_w2`H8zgF#{#DuWIRGTgZb%vw1W59n$>18w zJ!rt3Ca4EoLP-r>8O#Gi04QH(fa(moAkZM|fLsG4kg>onL#Y6E8TlA zl7C_{rxpq=MDjVCA;iBJVDKIYnL`x$PsxOo8q^qa)u039m;o!u`#Cs)>xOmeOVu%e z^94)@LC72^8x3RTB4miILGynFVGa{$fB{;F#n3E}_Xbi!>mO9{p*x@nf)wh8Pz65* z_kgW)1pvYm^nl;cClp6R_#uf<`y3G_68KMGW))yZy@yL*VC(oD%^d zF^4)tE{GO$w_oIc@f5-YqMjBA2IC>{AW4Qc0|Wmd3*?m{ZvW^oXfZU-;rGAnhQ!R7 z0h;GD&)pk52c5t*$YU@D=!S+sHPTRO<|y(X$RT}mfP7IucLSMeF!i7Ofjls{IENWz znc=TtkU_$i8DHiZJ|OE1hCuoJUqC~s|6}2t0LTdF3aA6l{WIF2e9pfAX#0K4(*8ep23Y@}8UK;+|LOYDWcYyM0{#5+`OieqFxT|IJLbmz zqjPSq;qHIteGzAn`9If?0z=E(jJex?8vke1|8)Tw1&uNMnd|#9;)^io4*dP{>&x&( ni9z;YhAa3)8fIE8U$i_BT%o`}@ZYkQFH1-TS5RMQ1nmC+I+5v_ diff --git a/sound/direct_sound_samples/cries/uncomp_urshifu.aif b/sound/direct_sound_samples/cries/urshifu.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_urshifu.aif rename to sound/direct_sound_samples/cries/urshifu.aif diff --git a/sound/direct_sound_samples/cries/uncomp_urshifu_rapid_strike_style.aif b/sound/direct_sound_samples/cries/urshifu_rapid_strike_style.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_urshifu_rapid_strike_style.aif rename to sound/direct_sound_samples/cries/urshifu_rapid_strike_style.aif diff --git a/sound/direct_sound_samples/cries/uncomp_vikavolt.aif b/sound/direct_sound_samples/cries/vikavolt.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_vikavolt.aif rename to sound/direct_sound_samples/cries/vikavolt.aif diff --git a/sound/direct_sound_samples/cries/uncomp_vivillon.aif b/sound/direct_sound_samples/cries/vivillon.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_vivillon.aif rename to sound/direct_sound_samples/cries/vivillon.aif diff --git a/sound/direct_sound_samples/cries/uncomp_volcanion.aif b/sound/direct_sound_samples/cries/volcanion.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_volcanion.aif rename to sound/direct_sound_samples/cries/volcanion.aif diff --git a/sound/direct_sound_samples/cries/uncomp_wimpod.aif b/sound/direct_sound_samples/cries/wimpod.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_wimpod.aif rename to sound/direct_sound_samples/cries/wimpod.aif diff --git a/sound/direct_sound_samples/cries/uncomp_wishiwashi.aif b/sound/direct_sound_samples/cries/wishiwashi.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_wishiwashi.aif rename to sound/direct_sound_samples/cries/wishiwashi.aif diff --git a/sound/direct_sound_samples/cries/uncomp_wishiwashi_school.aif b/sound/direct_sound_samples/cries/wishiwashi_school.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_wishiwashi_school.aif rename to sound/direct_sound_samples/cries/wishiwashi_school.aif diff --git a/sound/direct_sound_samples/cries/uncomp_wooloo.aif b/sound/direct_sound_samples/cries/wooloo.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_wooloo.aif rename to sound/direct_sound_samples/cries/wooloo.aif diff --git a/sound/direct_sound_samples/cries/uncomp_xerneas.aif b/sound/direct_sound_samples/cries/xerneas.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_xerneas.aif rename to sound/direct_sound_samples/cries/xerneas.aif diff --git a/sound/direct_sound_samples/cries/uncomp_xurkitree.aif b/sound/direct_sound_samples/cries/xurkitree.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_xurkitree.aif rename to sound/direct_sound_samples/cries/xurkitree.aif diff --git a/sound/direct_sound_samples/cries/yamask.aif b/sound/direct_sound_samples/cries/yamask.aif index 519952d07635691e5081f3b9ea26e3356168764a..8d44817f7b1a7bd3fd8338a544562c82ced47d85 100644 GIT binary patch literal 13782 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 literal 16456 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

0VfeP zSwaILC?RPWWiEC=umQb6UVzd#WF!2XCm~7zM%08C8j8p{glfzTEw2GE6n%4C42=d0 zLr8!a1>$Cn<$zfsLWdFu)BvqOAJh=qH2#Ky3Se&z%m8QK;5e@@0K`AA)6{qKI95SA zg3JNVyFm!Z6%b%G@PXV8YGNp0K(Yhggl5!~R=|Xs#i5`9T4=%^QWk`UCMQDa4k7}; zu#k5l$V1@_2?rXK^B^&yIUtchC}>y^s0WDv@}OoV$PJoN8fE9vtO**3X(2p7^bf2C zxlhwHOaQU6CT<`DLeUQ)90;kgKV)jiUUQZP{lG2Xf)-d55=VmyjhGNLAXjNbgye_B zpCcK~Hvq(%obZpG=Yj=r#=Jv-((`kGT=8wFhLSZt0*2AJOd}IC`J7QTwwlvQ;|9$r zjc32n9AruevER(95mO^Pz^{f2Ah|)uKe}jaJ}(vs2WS`+CUZ~(YCt`ZS?0kA9@TIM z#1nIa=1ijzcg}U1;F?FA; z1kz#NB^v8%T&ID~JZ>O*h6J1+2&oG~8VUobL4tyTbHV?Qx{z*=ESja~F$OIQ8B6md zY-Vp!RTGKHvyJq-5K$!2Gdkm6szG-Z(kqR;q6zQ5m z4hjWL$2T&bw=JaioZ@q?f=r>YwFaSJPRJBcn_p;NLX9#&HK;)g&y9f?Wxfx>;J4g6 z=acyT2-^P&I$`Tx}d@!&6` bz%$ybLz5ylhbD$^UKY1HY_pH2FYJE-qBUiN diff --git a/sound/direct_sound_samples/cries/uncomp_yamper.aif b/sound/direct_sound_samples/cries/yamper.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_yamper.aif rename to sound/direct_sound_samples/cries/yamper.aif diff --git a/sound/direct_sound_samples/cries/uncomp_yungoos.aif b/sound/direct_sound_samples/cries/yungoos.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_yungoos.aif rename to sound/direct_sound_samples/cries/yungoos.aif diff --git a/sound/direct_sound_samples/cries/uncomp_yveltal.aif b/sound/direct_sound_samples/cries/yveltal.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_yveltal.aif rename to sound/direct_sound_samples/cries/yveltal.aif diff --git a/sound/direct_sound_samples/cries/uncomp_zacian.aif b/sound/direct_sound_samples/cries/zacian.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_zacian.aif rename to sound/direct_sound_samples/cries/zacian.aif diff --git a/sound/direct_sound_samples/cries/uncomp_zacian_crowned_sword.aif b/sound/direct_sound_samples/cries/zacian_crowned_sword.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_zacian_crowned_sword.aif rename to sound/direct_sound_samples/cries/zacian_crowned_sword.aif diff --git a/sound/direct_sound_samples/cries/uncomp_zamazenta.aif b/sound/direct_sound_samples/cries/zamazenta.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_zamazenta.aif rename to sound/direct_sound_samples/cries/zamazenta.aif diff --git a/sound/direct_sound_samples/cries/uncomp_zamazenta_crowned_shield.aif b/sound/direct_sound_samples/cries/zamazenta_crowned_shield.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_zamazenta_crowned_shield.aif rename to sound/direct_sound_samples/cries/zamazenta_crowned_shield.aif diff --git a/sound/direct_sound_samples/cries/uncomp_zarude.aif b/sound/direct_sound_samples/cries/zarude.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_zarude.aif rename to sound/direct_sound_samples/cries/zarude.aif diff --git a/sound/direct_sound_samples/cries/uncomp_zeraora.aif b/sound/direct_sound_samples/cries/zeraora.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_zeraora.aif rename to sound/direct_sound_samples/cries/zeraora.aif diff --git a/sound/direct_sound_samples/cries/uncomp_zygarde.aif b/sound/direct_sound_samples/cries/zygarde.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_zygarde.aif rename to sound/direct_sound_samples/cries/zygarde.aif diff --git a/sound/direct_sound_samples/cries/uncomp_zygarde_10.aif b/sound/direct_sound_samples/cries/zygarde_10.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_zygarde_10.aif rename to sound/direct_sound_samples/cries/zygarde_10.aif diff --git a/sound/direct_sound_samples/cries/uncomp_zygarde_complete.aif b/sound/direct_sound_samples/cries/zygarde_complete.aif similarity index 100% rename from sound/direct_sound_samples/cries/uncomp_zygarde_complete.aif rename to sound/direct_sound_samples/cries/zygarde_complete.aif From 44a6c4c0ecedd4b8575ed87775676943b019e3e7 Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Tue, 4 Jan 2022 00:23:24 +0100 Subject: [PATCH 83/95] changed `EGG_MOVES_ARRAY_COUN` to 19 to include all the added egg moves (19 is max value (Buneary)) --- include/constants/daycare.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/constants/daycare.h b/include/constants/daycare.h index e412d2ab77..9af7e6f79c 100644 --- a/include/constants/daycare.h +++ b/include/constants/daycare.h @@ -21,7 +21,7 @@ #define DAYCARE_EXITED_LEVEL_MENU 2 // would be redundant with above if GF had used the same value // Array buffers -#define EGG_MOVES_ARRAY_COUNT 10 +#define EGG_MOVES_ARRAY_COUNT 19 #define EGG_LVL_UP_MOVES_ARRAY_COUNT (MAX_LEVEL_UP_MOVES > 50 ? MAX_LEVEL_UP_MOVES : 50) #endif //GUARD_DAYCARE_CONSTANTS_H From 3779396d74408132f11525da9713671568eba40b Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Mon, 3 Jan 2022 20:30:05 -0300 Subject: [PATCH 84/95] Adjusted sample rate for Noibat and Oricorio + slightly fixed Klefki --- sound/cry_tables.inc | 4 ++-- sound/direct_sound_data.inc | 2 +- sound/direct_sound_samples/cries/klefki.aif | Bin 15616 -> 0 bytes sound/direct_sound_samples/cries/noibat.aif | Bin 14362 -> 23848 bytes .../cries/oricorio_pom_pom.aif | Bin 22762 -> 37500 bytes .../cries/uncomp_klefki.aif | Bin 0 -> 25880 bytes 6 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 sound/direct_sound_samples/cries/klefki.aif create mode 100644 sound/direct_sound_samples/cries/uncomp_klefki.aif diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index de81150f03..d1b33a637e 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -706,7 +706,7 @@ gCryTable:: cry Cry_Goomy cry Cry_Sliggoo cry Cry_Goodra - cry Cry_Klefki + cry_uncomp Cry_Klefki cry Cry_Phantump cry Cry_Trevenant cry Cry_Pumpkaboo @@ -1980,7 +1980,7 @@ gCryTable_Reverse:: cry_reverse Cry_Goomy cry_reverse Cry_Sliggoo cry_reverse Cry_Goodra - cry_reverse Cry_Klefki + cry_reverse_uncomp Cry_Klefki cry_reverse Cry_Phantump cry_reverse Cry_Trevenant cry_reverse Cry_Pumpkaboo diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index 472c6d37bb..bddd27423d 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -3212,7 +3212,7 @@ Cry_Goodra:: .align 2 Cry_Klefki:: - .incbin "sound/direct_sound_samples/cries/klefki.bin" + .incbin "sound/direct_sound_samples/cries/uncomp_klefki.bin" .align 2 Cry_Phantump:: diff --git a/sound/direct_sound_samples/cries/klefki.aif b/sound/direct_sound_samples/cries/klefki.aif deleted file mode 100644 index f07f78dd9a22b96720bc664ae10c1556a89d0785..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15616 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

    (p$-u=<5>cx(K%`xz>BzF$z!QLAl8Bl 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 literal 14362 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 diff --git a/sound/direct_sound_samples/cries/oricorio_pom_pom.aif b/sound/direct_sound_samples/cries/oricorio_pom_pom.aif index e4685dc530691e1e4a9c2470f0acd131099fdcdd..bb4c1f27a0768ad9e5965ab8c25a7cf2e620c656 100644 GIT binary patch literal 37500 zcmbrmb#!A%nlC7}WXsIVjIu4smYJDlW=Mvr>h9T{d3$!>AG_zwd)-}KRaup2JI&0@ zY>{nQW@cu#YzwTtlI^U_?$s}J4ZjCyFiC+2JTyGie{Z?# z|9Z@qmItE$yx|Mmdy+2{{~+gqCs5uG`bQET2n>9H0k^HwN<{ef>}dZ4 zgqD^SgK@4ekI#89FP+YKHcBnJ>kK{RON2Zw&zbIRdsZQwpSNcE`_BO z)TCJ_r|UaVw4Ax>@ygWbv6QN|wj^`sV0#~eLhI{uw-%|Z5-R!_<*SY5g*}9XgoYMx zZ<{eCB&}_4#914qt)W!ZbX2%oJB#yRDR~<#bYrw_0;XYRrOjGem|KM@$Qhf1H|IKs zz^WFmrkurL>VlBAfr%b#d7eB5S2OXza29B7vq*ict=7r-2yIDH+r&lxY=PQ5kJh($ z(L5L?QMMJ$tO!b*ljQatc~fU+#jWA)z9V&<10Fp)*hA&$Vw~}ag~5(NuAZ%n`3=3l zdrrc_#!2^pLGD_UGIg+5+oJT4&UEljIOI6BYZz{5ZEwyUr*utAVjLY+*C;*Yb8SmJ zR&;KtcMxP`<6v}2@9$YrwkF`^R;eV~l_3^q44E3}nGm-k*s5;Q`pFlDcxxm0)L{Q4 z8biPNsJ73^(|Mdrw~DHPV$T;-5TrXCnL;q|#g zH1QYaZPv5wRowK#B#^)@yfSq6j}t@hT}UDy)Cb>`a|ny+v{ zp*qXmwRJ3;h)A{R)~Z&peR!DSWOq#mj1U$qHP%tyE9w&MCp6qqH6-gu^n@}x%g2;F zV(rf9ZnkF_TEL>uwy@W33nBaL%X{gxK3r^IZ?J4OLCM1S}XpP0os@^G< z>m)w=C?aCGy>w2=J=t=LT-(mWM1(*FTdGzxe3Hyp`>MO4*w}zuYGdWLeqgfhY-cGI zZ5!`#L9MI1Fbs~C8E-3@ly^(SZIG(EAm-7*;KAC;T^+v|jk%tR5pmmCyTgInPL6R% z0Aj48eplU+GSJL;_LrQcbZpDo z`s-{AHcv@e1!8tbS_fc80nRt09Ua$tUVf-qQr)(qQ?SbVVAGt0Wq`^4Oe-C(?`Lzl z&`aiMx;S!|2D>j*?c7jHBb|HFI3M{%dfSSug^&LBMC&lp$Pa%$(Mg8rxVf_D``Rv5 zoqU9shdT}wao!ROBOM#^mj3E%<88B&=Kcm7<1M4&CIQxmGhHO8wwD8QzQ32N){FKOnhwmsFpAZ`|*zBSdgC~EAjvNqGZB5CF$w?5Io zE@|N{vohJYD{JW?vM@>6m&JPu&oQXyDmZ7*)bIdD)4_!^Nu{z?oE@&F1{e@c7wgkG z`V?HSLDG7VPi+D z6%uV--P}c%K0v=Vv~#`gB8`b*+_0;?1!N-ySm$Kmo_b%dwa{b)sPWRo`luft{tqaGqkQ{M$N-bx39E^p#Ic+p%j~7xlbcRXa<`LcV?utNHb7)_%U|nrga&kFUu=S5pTBNrK^NRB(0;A3amOma8(LK{qT%PS*;CL9_YAaM z%&p$D4e^0g77uF%1!|Fsy5Md>xW&?zGh2VBv$E=CvoJrgx?GA}P^38{tM1x`=(1m0 zwSfunfYg=F=m!PJHfQ(C2FGBAGb*oKW4-o^N>(wU{?OXuG5wH0iRN6YQfQQZ@246> zaH`{Mdftw6O4xNt)~F#d0^M3PsOldq(_Tzf435(7`q(HEl8hh8D86t_^4TdY+_s7E zIw~$+#m5C*<)x3Cr6h?}yy;YreWca?sYx_2*@TqYgz`@^r=?fJ0#a;7)63ajY0fhl z1?OIA9?O||2To~$dpX(bgp{CzysTBbl;E@cj73~(B(vbt6ec;6Rh~O%5)ph;S+tCe z3p&inS+h?IKgs$qgMXTEllN}YJU$ZWTgOEDY!wupc&2&Jz5Q_P|EKVk-+o?odKtN& zld)@`>@k;H#`Q`i41FwthrPo0|5AVmeQnkEz8n?w)UZ3FT`?q4s`}HASyD1M>*oR7 zcdvPw|4y}h_Lx)rVb(e+cs)D+(&x1Y^~ZEj_`kW){+7uL`WHO;U8Q*NW7U=q{kjQ{ zU`0OksJju~vfkom%Zrotg=+M2deJGD=Ik%6+$re-W~ho^kH= zN7un$a>0TBV%7JqPAv3=bi?~$gQT>poVRnh*NJ=Szi!&R3|z`9<2t4pc7E(qjd?9o z`tLn@Pyc`{{2z4Vr)if3?>7lA{H8zTaQy$99qG?`!o>f>xbtsy(osK1)&D}%PD^7K zzg@F8GI3c`p8vj@(?DJZ?=WVBQ)Jt^rUk40QAKw)Jykz;DxRsm9B)qg^e5jBJ z{9dE$udQlvKZsWS`;g(|C)fFZTf_Z((jL&J-_y;M?c|J{J4bu zK4$a7pHE%?FQ4f*pST|XW+VvK#%aM8f|Mik*L>=*B&{ zDfwy3`jy{8MmECjkNSPTw5vwFgw*`FX#OmGJu98-@&^mb&-Du7KZw-+&oQH?@dt(P znYOPmLm!)z!(YM6|K~LR`^3$Rzn;7On;qj#rBv`MRMXG%*yq6uAKroj{<~H8|6Qh> z^xs6Q{-1G^@4~mTKHa+hNtg1s9+jAs>)QAGm}fSVne|G+&!AO5&Rc&MwVLr8$Nhgd z8T_?NF*4zzHl1nz(vtpbwL;VnsMFrV=JHtE5Aop_|^#nkBn0xCk_DJrCNibibAP4%Z;+%v-5=Q@#qWC>Env}Tn1QC%I_E<$=Be@>6+ zwp&$p>kzL#lucI)_dlsCxUzp_IQ*eQB`Wc@_SZG+3)khW61dM}IcoZtcC_1mbv4u} zUYe9Ou9x7qS6aYvN>d-q8dM|tpVk1C6iwPEie_y1W!2|1yQjuu>7B~ND0Xw!AvW1$ zGOtG|IOM7!_rf7fe=xmUJua46`RT~#7e&POr@e-!!QtrrcKiwo7GT?z$Ru#x+ilwynDLA@`KTynP1c3OQ{AETLCyGp zy^>Op$0MnZ4>M+|Zu6fj#E6d()xWOdzjq$}wMsVT3B3Bv7XGEp#K#ty@F-SY&b582 z1|^-LALqMMQUr5Pe#`MCj`6NmIT1)mzwEgGt1bO66*5UL z5mmoz;9p{9GP>m>!+6Sxf@ckoXvCO@~!hsSXmKkeE)vY5_kl?jTzZO%TxrkYRYw#pM@c}<_Ttx|Cd z1r1`pQPAFkEwd<#g^~_gzerG9&W=@r^=whIxKAvsD|^E#9yecDD;ba?()n@PEX{qr zq!i|nBtyv>*N^qwDK7!Lr7BXg7@Cp3do@J>7*q!`hcu&uPHOV5?H=h2r}wKz6EAAB z&K;haj(uvBk4lC#zgxvT!ms4lq5b1fy_w6VskSSH^&&up^m)-R$#$*00qGfo=+9j< zNw8TesT1*!7wOKJHBNC_FRB*uOBC%*pEXKx+yp%4ogmVewP>7Zvs%_5>K6lR&sxVl z!cAn?%EY9AfM7cQ(SGzzp+wSm!ZrV62LG?_3-61N5zj@Me_62p!G8XI89MrzaPzxm z%NJIQ*{$M{(cFeC0CYwZ86^4Gfb*I{rsHF!!OT(hM6bQlYOq(LSYPIfNh*FRw^=MC z3fz)=fJ-$P&7i2p2cDJZ-nc(iqJ3oOrFv}Vm%@V6&>ioVFt2RqKGjRbCh_V%?b*FD z7}iXB442S`Tb9J3%}HgB_%;?K5XM(8%=(s$fo$6 zR+O+jQ>4l1bB0fC*0Y<0!=vGCS=-nrI@6gn`2?Ty%F-*>6nT2)q?94h=ai(NK zF`Tg9&{NOg-Ltx4ahOohSkT+%N^Z z3JeY=aytt4ty6U;b4f}ufhYCF*Upa>27qjz>b_T60&o`X|2S*>!hSiYN{E<-YX7)o z`U3d!%SyBi>-E zoGuz{chTO?atweE)gGBd%Fa~JDTbMC)l-mO9_-%6OKT!}qGnw)Tx+F%R5Flo*xCVd z3;_>R9~ed|F4W8`gqm)*(1cw*nf)y+ObBYCaZe*uWwB{i&ev+YqaW?;bKcj;v5piS zF5l3NFr2TV$pv`swKO1{W1zkHJC^4c<1L0%nSXAEUHqH&wg1Y z&o>3xm9=5=TyG|KP(I%6pu7R%9S7|$*fo2iKAk%v7vpqP(*p901oxI4nWv~uP$UtvacipK)yzETbtZbz9VSO*yEf6wLv#%GWyjVFQ z5oCMX(SBnSDm-4jt{$zoRW~5y>2^(Oy)-3?&s49I0tky#LsBDoeQFjf zKVH6|8fmd!PeXgSGkaRt_)yev&7Lk%bFpqh#@}|oy$9~#%^^2knGq$&Ygg4mO;;KQ z#63LDx|%_FB9aEcBvOB&YFN(S`LMMW>Oh2&D-TVgG^Q%X6^V{}O>HnIe$&25w8nJh zn0%PSesd?-F$_Yh+1HO$pQ)LW3AEd5>4p+QAk>;8gGi0pnhDtehr`x(9)Tz{P`RZY zrN2@)jP`cD>}$Wa2os;EUsnt^-f9^_I=Qnctrx~2va^i~a(Ezx49toa4b<~cD8Ad_;mfUqCaN8gA611g6R$W+M()8&Epat_UHW_Y)l|}qH$F@z-+UHf^_uZ zQku?8!jxxfClvx5kJ?&pZNky?$`y@Bi`CkGq-PMjzvjdwMs2)eQX$l3zo`Y}5Q`+2 zZR*BZELQf5_y=FLSDjfUDlv+u6eAsWYFl6~QSjcfUDJ5|nPR$ZnD-F?Hpe(IO8&Az zg5_Lsj~H;DX(~U%rzj2OO=!e9ua~wWeWM|5g@+c8bVdv43eg^W)eTUOI7D~hwsDH_ zRPlgxxYto_1K2qhO)A9?Hm^h`8l3A4~+x5zBVc&qO z_S$QkIPt-fRoys~rE;1?pvOr|>#ZG8h*Gt07^ON{IVT^2-D)HwoqcY)n{TX%62R=x zA{s1KjY|7D9W{4C2q92P&5==r%2d^yVhC=dfgaFD6D~PgzNQvw zzE(pM_4c~%X}GqGlo+d6RgW;@*Ic+#GMnZC4h-qSJM2O2PVjtwTsxw;Njfg-Ni~Y~6}tu-QQi73$>8p|zYE z66F_a=cI$MhwZ&!2R|si@j#ELx?Ddl5ny-L*}=hwh>ldPtA`tI)X+qHyx2XpXP8*U z>9Q&L2>f9~JIE~rF;KB>7_YNbHYgG1aoJpVNr;tZ6wRt9SZ`Hyzyrd-T_wAi6phLJ zA=w!Ble!v~Yn&*lU`am(vsBoFB8IYCi;oD8R7Ueg6%(8eD;jvdG4SrZO`|k}`Fx6G ztnXP}HPbakVjy=;JJo8nr~?@u#%eA*w0Wd7k~5~7V!u_<1P+LSbQNt|KGvSh8CYBWCE~q~YwB69iD**ps^MefxqOm%Y`{fr<&{ga1T}w2FV%dh zpieZ?|Ei&i>69!*D_GJ=FPBlXRsrNLr|lg)LMUvoW=}6td9fDA;Wmfu-B9~L-ax~NL4^EV&752i zZojP`>fnDn&~U0xRGhC{kPXD{wUVHAzM#RzQyrqpeC>>M0PeWGn`avUXVmX&5;a%q z#>IW?E_&M7*btG4+I7`1qwR(Pq`N1J(r{`LAwOF^EggzKYU#SQ4?!?$w>6`5*QTKx88aZ z5wy~Ey=0@cQZg#kpWRw{hD}tQEF6=Kb2zMNWP8M-27m~rny!`fAcI2K9VJKBsTxzc z!?H0RC-qe~E-B*F+&T3$>}FXDEFcEdnZIlHSZ@|UTa4dDW7(Bmnmi+WQZ>nOr>qX* zlZfca-7t7!x=_#~78-WlQhbU}Q(@$fD#p9+Rn_xc;!)K6RlOt(u#^`K2)}MGKCwL~MR5c?!qCkD6hh~X-Qzb+4VO~cKb+?Z3BDCUFgIM#$%5I6k zpv$&$CO$!SsAyU<#(u4;S;RY>-BogeNm3sx9aWBU-L7kdyT`yuC40t6debEXa-m+p zwhYJ-cr+;5GDoY6&)JKYfqMr$_Kk2H8w!)ViB~m9ldDdxk{Q;fX`W5EgKgjIb6J~5rti^ z=@#(_W%pH{o5d+lluycsIqfvIA?zby1LgaA5&H8r0}|eT7oD|i%V?RA$_3?M+wJB~ zlwBBvQgx^st~*~#m-O^G?`gO(i;$V9Sx^kL+ih)wVnY%1>Miw9v(**~${~O|P!k-jWpe;BS9TQA+(A;%~<2LIuhI?1WYd9)sHh;E+?UU!fty? z_6$-C=Znd}t&!bPd}5KRH4CJZh>**ck~7?6^^x2mxfo#Yri5wxNQIs=svP5cSX<6^ ze563j9@mI>->R+xxui%@vS)PToz|;r;conNwyYOxzf{#I;t>z)E?6^)v01Ea5%Y+G z^p#Aa!N2yL!j4B0r?6uW{Y@#F>WeXbNb{mbYLXJ@|YSEs4 zwCQ41kAzpqO;5>%MS|vZ@vvf$=W$yF*A`gb3%{rNkJ<&{&Dk?cHJi!nl@ANKY|g*7O;#Ds z8qtjQ+^#BzyCjH`fVFC(?NUjDxK9G8Gv@%4Y%)>MB_9%T(O7VWPgSSq($ypU_i9SP zj;X+g$gEzB%X&qPuzM1+7g)$7;OC25q`hOgU3o_qi58QEz4CtH%(jAaY@Gf`Aw|_c z=&YrLWfQA8Tr#8?=y%*w#>K^`&`U=({5+3at9aOOWk$uQy0^z+M?DV{sxn?Prta>3 z+*`*p2~wSD7*TR`yP(!z8waQ_w9;h=9vphZnYOq7dIwq5${RLTzoX`Dx!cnVGYb@- zsb5rZcR1^7Ve5w|E!B-nyLhsICklO{?rJSX)FB8qRJ@}dZn;y_Dr6raHk`k#7GZx- zUkAp;D2^A5D~0)-x0GL7C23C=P-XptINgOurg3JA#hv1AL^vsLO)nC^QB#kwkChrO zn9&S%JqFezma%G6#dJAuUrui+ur4rJt?ouUhM@*ZRy0HG4w@Qx*l5Lx;!$~jpR0~? zU@>5@RN61*83yYw*w&51ZdEkHoD;+ca%R$e_#GqDx$g{#aJO zd}su#A?MI46*HC9DH#w4Y0lg-OC!wXG>Q8p3Ad*&nk9wKVB~YZDlz<`KKt4xO?NDvq)Lpqtj}WN9_f!~ zkkmp#nT=VO_!Rxg%wCnyP-aWkIUsZm=v`8^uENGGR zi-z=OZX2iK77OdefJd4Bj8(%VyVa6vq(_=4C4Eji$!({i6zud=mi}=>BQD^mCXeIr zTx~R+q7*~CX!v}Adu}+B*&#!Wzis)rZTjwWqXCfWgmyNw`Pv5b4f?v(67WRE4O8YdandrL@?EKk2*PhJkks-$3c4clD zJhtB~DTlc{mK#YQRE!C|YR)_`e~wwnsYUswh!4CU(M<6_t*UST%d{Ref%uN|@pDWImGRxp2XSk5ej_?$F@Cz90nqv{C(XVtkEgr|BlnO#yLF_7+0 z>qaSd+r^a-msA->#)x7}z-3eJDdw@kVs4j60I)s!c||+fZojPR)*)44JcF(f7sPDN zJ;ppUTKwE15}W|*{j{wAjIdo)0rGqzMgKUgk{WPUm2+YHT5IwHphFy|_1(6`E33t< z8sVTvB7JXX4W7E~6cm8nUdYqm)70XL=XDvEw$BYFGuvcC5#>(_VLo=xg*LUz+OkeiD{zAYFVqWYn<>< z_Oxo0$7xgHrDdwld|tP>Zw!o*xulcqvR7HmAv{r^O7E4Ah~c$=+A?`c*vv16dOQVG zp{OQAGwVO>V_)LtvdcyMo=Nuq%Fsz7p45Cgvw4A;%mFs1p8#87WBLifht=7aw!n^e zLA``evS|P3ab052Dd0AXIP6kIt%zN`+;GvLvR5dZQm~;*blz>P;9z3)7AiYM9il}? zizgI)18&F#d)g6%{l*F|CQf^?xCiYVBQ}yVt{4({-I2R*kYKxAU3m+bJ(JfZ?iGik zeV$g02xKj?B{VYo+A~`$wu{S=}-K6)Am2JIepGCHKrc1;0{W3AayG8_nvI^#Nj@ zIj$0DAZNGP(`s?S`GzxXUc=`dKG~z*70UWCy{tw`R>^IxzlQP4#erD;mG?ssi0?4eQ&55(MjCKUzbhN zg7->3UE-b+7IRDB&d+oi87(qisZx}W18PArz^q%*B?ex$W*-Ckr)f_{xGke7| z{@N-R{7SU@ry=e56n5R4HPh7K-HK1Z>s_aX!UDKmn(;(Vy_7?WG9$N7-X$JAlsBgC z83v{nEU9|=vHJ@5G(ud@IttJAB5n2?%Q?oeW}8*DFv|q(#lj8|hXmQl>;Y+y801jq zjC^Pqw<}{qJ>L7gA^XJO5n-pa?AGe3(Q;NJ-07+E*axy?V2UvL?UZ6n6sYO#hTc=( z!=j8!%kOMgK9@qBU+av&X_W|iF4_Ofh)P`IZS$KoqsRV-r5Q}?7dFeEi{UP>w8q}G zNd-O;BmF$89v8!E`gPm*kF@PBd;1h0DGSv zyTv&m>{GLa&z0iNPk>zAuMn6lMEZ4FGdAL~@wX%6C$8Hi*|*r2CJPzWBA(9`8Sh96 z!O8IM-)6KEh?lh=56qsp?iA;8@XyTVGOEQqUMLT~@0a&WLH7MNsSy=*)%bA}7-aj(VESXdnAdZu!M9|&kYrTf8{ifRJTCmUY5dgZpgjG;>XqGcPCm%- zd*g{uwIbfHl?Hz6lns53?)ha{GcMt_?YDXTl<#~JqhPeGY1P0m4moF0Eii~p%3o6r47lmd-c%3w zzUt1|(uncA>B!#JO!7Q$$lTXUb33WYIW&6Wa#);xYWdP>EB7-K|2<(NJBvm57u?dv zJdpDrE#}@8L)`vkI{8}(%;OJ+lkdt=-rwttzpq4j{9rKlwo=&hwcZ3!bAM$p^{EQs z^4er7y#nF%(ror~G1%d?)k0PQ&-Oc;<=lK0{*~QoZswKsOXsbE^b5-u9(zR}j?JI> z9hLvKYn&EzS@YY5eoEvG@Ip*0A)eRv)1-QIGNSWugQ^jaMf-p1R|tD9Lw?gH8~9Rr z;I~EzpI4fU_tm2AuYk99rAWsYmh(BqVBBNET4@dwljgEhlXYwm?{nIazM~rzeBF_; zq#hOt>iIOK91tT+%@~sN29jYmNzyq~ZmXmNu%4}GMp;LhEZ5b7Ov14{tyS0Bq0YzMrF*J@zFbPd zlAJeDXfS(R$}?VOG?RpONmHH4XhzyUGg!_j=u@f!D=<8C8pYCQACTO~(IwjnNOKNT=tv%f*?O7D@hR z?H?92g5yPoKlexyQuLS0%2>c#>$9$mC8fYPG$XT1#O|rVdU4@}{$t;(=HKR&qn=6* z{@jf6{G-WyR{E9YcY#M$f1L-iIEwtHRm$@_!}Bl zjWF}XC^CXW%j%cHCmC(F6dkJvh9V}iyAYO-ut)Wo>#8xyqQk#7A{_o`yIJ&ZTQ@lc zLHey-%K4eqMs>!HR!9tbG`kgUlH_#R^zVdSZuY7EvuJSFU%DlH{x{2&&u_Mk zpFTo#{a7pI`3L*8;@?*FBGV)WvdUrB$=;{kABW}alZ@8u^Y@f}LcpXC zy-26;?e+?Pp4UkJPHy0DgKY%h#w7uxenig|@ zYPeRCxvPljPnzVwaU+% z>cPoC#x7%-CWdhPKJ|;)rV(}l1Z*ZMRkQ zW7Fhxt<#0(Yq#;dXow?+UUWmpo4$`nY#8Z!JDk_eGmH;~)6yGw76~CRN?tS6G&lf0R@=r_bMlv4>uTJU zunyNd=`WcTv5vu=_Y{tbSVY=gP|Amq`T>r-sd_S3+09#OwWaw;%7Li9-CDjbX&-KI z*jct9h6%R3q?L~f83j7>#wzR4^|0%b`^!&;xcIJ^K?($j(LE-kXf<=g$aHLkd(uE@#K+=YmuuFTaIKq{%C0zcbaV`Q;NB>dV~;@lZ9Ly?Oj6i-o`mkT3epCH^0S`(o%;UtZs0{WE4cM&h}4k zA>s;RywkN^wupwh(8==3ji{oU$oc;EIYLBC0?xiXyx>42c)m6?w?{<~9o< ztt`$x+1%qG6;wrTc2V|LbH2OJhDj<*aF14ZdE%<7@Wb^DmV}%f z>f+$!Mo1V2gYqDpOD2;iAur0^T|0%yYD(Ym)s~WzxIH;NzZHTBA)z4l`2`CkCL_W< z**ycJWhFt(qhk&fDTaoy&X2BmNLfkf<<33}DJ?I2b+~^C6A?v&ubJo9ASg-<$-Owd z0HGu$Am_)&T$G3ioW;Chg8{(^DCCxTbhE7n2lbpPn$`qG&khg2{uSVC-u)7>NX3 zoiia~5=hqJ@r{tQ6zuZw{+s1_6?8Z?4!7BnryDWCH#~@m&TM2F$oPXTbnwEPxqI80cnR0isbbzM?QR8qPXB zVRvYQR$vD1=WdIC{qAd!2X76`Wn;pHSlh9dHQXLcS`X>q{0`SQyGW zXY!B&YuSLyz|8Y2u&@XM;0z#K2*SBxalvpn1PD7DAclcBESA7`{Gh`4N8R{}0&oL9 zKzzXv5RU`E513dS{%JTEn8V`o$8lL4pphR-ptxlNkwrjnZ*G8az;CaaY?v?-d<~!n z1>gWc4O|2T22A7$2_tT=m@J6Uou?oOfC$hY3W-2y-Z z1Bw9V^6UKbc|a?m9Z=%|E`UG<$^qa7vv1fuH~@s38xG${E`T^dJupBiINc|3KOc2~ z)c|4u>-km#b-r;Rz-<2EzuQ~jN&sts7H|k)n?OGn-$DG4@?{7C2LP{FAOs42D*yxv zh&Lg4o^b14!V*3<5-g&379d4B(U>NdQt@2;wf1Krfg-7rqjE zC-qJ({ygJ@h#xe-Ph7ys{F3kNdmH)2@ofiS!v{B@$vwINyxr?BKpPN$zAGQVCK$zs z1)q?QB;c4RkR}Cg;&TT4#77i=4)7IcvG{ouh&xd7<9&~7z=M2>d!2wp%ZDH^0Re-7 znIu5K9X|LB0S^Otm9MKHQ35vK2TCwQ_<;kQz{l#nOM!3zlR^LxelivS=nm&>eo*<= z@h1&{Z~mkP?7oAFU>fmx@H_6?1sHnp#}|%#=r(n%`BL{5B2*%2|Dfr_eBVw6W`#! zkMDy&?qegE&kysLU*6eq7sW5Z;|K8z!Pj=)#a!S*U^ehQ$rF&?`QYo3clz+{xwHMj zYJu_hRzH}{A0f!?{Au?v@Sm1I=)NBIrOM|a@W2-yUu5(1&Yche*L&0MbJ{&zA7CrM z@m>7yL;Sn6hX4pn`j(?0JA9Q(1OR%_k|xPB?W;`AU;fRTF#e5(_G#9hljxBe@_yTK16zkA`q8~;!O zuH)kpknwxT7x_gC0dv4#|EmD}ZZ$s}JxsFS%Lh0Av-0nx{4Vudi}<>IJLB)G0?qGl zboWmBiseIYx(mcZKz=Xpxqh)!aB&x$Z`%a!_}x7MZ~+?rgO`5S{|o&;8TNJm-}AX+ zd(ZqE8GrAEdxQ$?xU>5UuP+yOcfNZ{VB}q_@6`Ir%lz^8)!$YAM)-a6w>bGKuwQAx zr+eV`_ocvX-w6JKJ$_^W^}gcCuYb$x@2dZW?yqG1C&Yix?2D>`jxUD%Q_}<^{(;GV zBJ}UNf$F`&-xd$8U&=2RU)lE`%Kk#|<>G%u`5&_QR;6!i4_v=u`ju&4welr=RsH9K z1f%}H>+?^TKQsfP?-ck-@I&9X68|I7Ul}0a_rT%n_Wz2V|4fPhf9-dY|0_Jc3B?zK zzg+wi7XPIA8&CYs`N20|$}blW-n!HG8>x5X53%}|^8*>b6c7m*enb9E&)4emhd$K5 z(B8|x>)`i(!|?ZpFI*q``3(RSf7t;v3GSqK#CL7L1EydFAz174^CLgE0jpyEZUC^- z0~Qa!+J(Q209H`IDiiHXhn5-)XnkH;o&tzNJ>fM=4@l_Rz^unnX|pV3T#SB$}6F-&Q3Rv5hC)& zGDjP;GZ#{d>S|(F`^Wo-5TuB<_U--}V+}2@VWh;~U0>dXh>Iy{z>W@Pr*EYcFedQb zdB!47R!LO_aj>_!a49NofR{R4q7GilX`AQ^@2#vXT}aC)o5>$fz&56+@3tjrYm#~4Egs#cc9VoSqAW4A`uW*XPy4912W#?n}FgE2J1)U`6# zh0M^0m&7eC4W+k7=wnwpR;Jppx#6KX5sa0Q^bUhDd97zfo((V6!yp zjIgx>MsABj9buW+T58-dXhW;Ac!HVaGKDe%u^?Ef91acA548z61K1>mJSA%FU@fyw z8yLPZvBhd#&?!{lH-8*0QIjO|8#>Wu@4jOv{z1=(7 z&K{OrMqlT&B;LhVdWlA&uuNUtbPfl4yEe5PJ*>c^N2&nuy@pa0nu>M*8Zf6&%9s zIgI|s2{}T53w(mwKo`gRyP>8?O+(`NKu_TbYU7}=rLU*>9HoJR#0UF|j`cOtM63dQ zBxcCo``m57k+vHBq6azFxu;q^5ZpTqyo@ zxUKz6%RNYAiP|zKWCr}2+jvjwmb^o#+4fLtKhMzH7d=I4n3u(e*c{P2JDIv}!3y(~ zhB35Nh%HdyAdAzUo_DI(VOxN8BJV)w2ki&Uv?u>Vh z!u32{!84@p9a)^O{{Beo5Jca@6}m)g+mf{Q*FBi(90cjOIYCz$om)~?-kJw9J>w8f z2OH2Dqwh!x!bG?f~x~}Gz3xfk}MJrc{?dhIXVSRU_ z)5U?|TNRumVq={DQp-*EXt8eutZql(Ei-x#WGuWi_80rcAZku{*7``_g`Byw%-%9- z0jcI_e7VIKW-D0RKsOc#_9gTjly_F?b3&T-=I4v!Lrg_$XNlEm(z=9!o6+73nE_UF zw1+H?^dC!Fc*$){_b!U)xfq`=4UX`XZE-iNV}n=HmQEt;Gn9Q911Gt)1=6yZo}0nJ z+yEfl&gybybdaTpwTG-t44z1uIf$;$4(&@BIm)cf(bq-woVB)Q>5C#db_P4MjCqun zqv_%F@FYUR26H??pAgcv!!sv`fFInka{|vZ$V?@iGi+&W;9Lgd0AHPAT*;c^d2>@^ z95o9(XL@p+rG~X(O^lD-s$+rr!~|Q}!j?HTF$q=0TAhrH&5P*Z%(q5H7bWx@jaG&k zYf^^xT1(?2Te1cYigObar-}x)BI6@dEG;t}Z)9QyqHTpc9~hfQ>*36{2glc>^$FT@ zgX2f)#&+_f0~1Vbb6eEl@B~lK5`Rq_T@=?bH`<_0?WtQ>DGl|HU76tQ(S6-?o`s$B zZFldm5XPQxL>X9+HN@*J42+%XTG*mU)EPJik3a1s&&lJQOy)bt+uBz4azoS!u$iUR zX$N^(jX=;HYo?x<+q+11w+z7WE_P?F-LonRW z_t*V*w71h;)dgl|u_fEG%*@PGrZO|LeUWmxx@UIwZm;TdhB7lU;>C;iB0`yZzoa$H z>G=8?3{V;m?EL)%*|kGrP9C<)^!z-5QmyPUF?Uz9uawqp>i}W zr>=PKEi!r23gvgkpsbjN2i?;vXH76j7^9$H10AK`h zx;_!P!(X^f=arwjMtiPQR$Y4FKxy>*pm^u$oRTxY)PSY@qFvVnzcnKD#390Qp}hLR zKhAzAgY+2u!fh<8l_T@w?_N6DSBAz%;k(pNox!mnjz?6{@{E))@Oy$B}V1J3BGg1WUhcDAo_k2s)^PMz>(eI?Dxm_%{n zhaS`9%$*57mzUHa?*JazE z{pT{P!~zp}t8-2qUfJ}1U@1qxxFdf&uzO=Zl-a2r9l2MWb?5UJ{q|pawF&SIB3Z;g zNvJk`-S(C1cxIgvI`))OaPRp-z2W_clE|8jBb+z>{?cqK=^-F zVEuL4@}<{g4qF8qxmTLcAN)?X_LoJw*Ir{^*edv_V`4FnU#e)$r!D6;PgH0rT(^of7%UnyigcSRX;49-_bV!4!HGi5 z>|M7My^hQ=vm~$Cyn00>@{mjy^20v@K#XUSQcKRFd5raB`G^kIZKk+I4TxJ(c2_Qvow zRGvCSYxNh+o8qh{%LcSi0h{G?klw|@K78;bJuoq=TcYg8mZAI&5kvc=A zb4HQQb9r@&k+^G8$)#7KVr%}2d5qa~$&f12ZG+k(6%>5Ipz-?QMd}N;odNeJy+@A_ zvRP6k7>wnrBj32<#TtvC6aDF(I)sp&GP+1u zmqg&M=zx9{Bid4QXcwc>TeJp#&OVqwY7*}?m&;O#LLF3Aih^2c1$Tj|5)B!f&S^Tm zS+i#G=Hq#T24FnQYSK)EujdlQqT+7L^KRjZf;IVv9sog^>tfD5ke)Cj~9%u;rtIH;bC&B7-*z>SSY32YF=S82n9P z1y@8Ae`V!u7*2pxc>|9UCKnzB$1BzpY}7totPDHfK&cC7bo;j9Dex zfM^|~1m~Ij9<3Oc<&thdGT9*YDU)uO#O^Xuf}LJo=g)}l6wRiLdFN!K-rOlmg869Pm}#8VSni;4 zyd%JlXvX`k<+J6ZgLjK+rEu`$Qi>1;cU4-#9g!qR%svWEQ>e{cb4k|f%3ZQ2==SGL zS|wYJW%cXEIe#tdRlzuYEdyK}-?ai@UWmO?su(u%s=Vj{l_EsT+y@w$=ImAH6kXuK zR;d=FIRm7{>+7`yPmD@Ca( zW63eiWFTY6G|6Tnw^u*G?Q0HOi4d|^UM-9WKC7-13JyAFF!@4J_tn&Ue>86`@h&)0 zfRTR~oTA7|U-Wow-1T|b`j!1?cBfvF`$9o8P~Nw)CV8CqR%N3M)_~=*9v_;jmGh$05NtL7JZil7F(erjg<0a`u2Y@ofs5}pi;HJ~L zFo^RCh9Exdq?9R)4LYo7kiogFm3L|qoTqa;4N{!Ov${;v>;^NtEnnLYX7pI3Sq~Kq zTgDsqmCifHsk*F;{42l%4CZ31mc_|f_=tw>~=?WhHP|e~B4?LsQ z3x@j~Rkw+SIc(MpDI+cB$Rj$D7URTmBfRlY`HWSJUQf}KO@dKx@sxFpPG7}>eY9F< z<%)B(a%=fF&uE3F%5Uy?xn|;~7f!N;y6cG+ZDE{v!FlUyuY$wx88x?X#crHfe}87^6)a zVReS97R@3whp0v#I$-6yY3oiXnJ(t0GeWeTb?6$**HVA! z6ZBA5cOMjZQQgQF>VHCO5W<3{utXw54vBRFxPT*igD~22r>a{DZnIuDq7-U4!(KE% zs0}igZLmt6)Kv$ZY%68k11s4;IrPU0*3eFa(Yy@CEgW&fsO1e0IHfg-X+3f{hgtHlPK@ag zaoQ|Sx2t@?E>^XbvgL*rt!JM5p&mg;B7#rIP2v&W8xbe-8jsRujj>uiv{m~^`4;My zN2Ej@b>BNeu(tX#DD<|ffd?LVNNE<0@Y^A`N=LY@QTr7!wlkD5J-pdCdCDYGZYBNO1J9X_FnGW*y;UgOdxzdGfp*=Xb<1O&mS_V? z80$I8h$hx@k~XD>(;ubJn_{*5=%ByVI;bo5Q7UcZ6$iX>J7pc{vx&Lm8X?xqJaESf z*E0`2QG$)NM;>APElua{fe(!>x1RpDjU8ORUgr&6{Qe$?Yyd%UJ7o0<2fFUC1|>rs zzSR!O!0lI=!*U3#m6}myq~!u*LJe&)1I!X*JXSRWjB}haV}LUlrp_5*4Mu1)#u%+( z=7KRwqo1{67Ov1+yI~V9-O1jy3m0#zKXQc&G_o%};5_y9S3V(+^$mC4f!DRIJb}LF zwQaBvufystkr3Cdnn78l?N{2cD$Z`2JPNQWljJeoXp51`34=)EVakjNPIrL*)dH*9 z%~-cZOSRP=x`Ycgvrj!kx!4W2eu07=GZHom&LmEhu>7!^S}d+s+vW^J+^@*MK~-`ht(rYCuuXlv-%+& zD|Rq;og>5=s?UAk+_k`Kg3lSv!f>y>sxE1S!*bQAI?8yGHfN00?58hVVH7%;J5J#u zke&M9vY}QU)pUx6xqPb{R*tZorA=yMjG!JwtM%7xSi_~->yDg5_*$B8JpHa4xM zLuyDm$a;k}sS;!`Q@5laqB_Xhu?my!V4XOH2sG5+`2^n7w8BEXk7ykdNcRm=k8*^= zLgla)-g2yR$~fAvw_?FAMytJI#W_l`fwb+36=P9P0WtT|r0hXhPZwUxN$5~a{Y+VqH$Ws~=Oa3Xc| z6W<6}4f8Sp#Z^;x7mT>6V)MX5&!`PBWZ)jTMJ&R9m)IhK@!cSG%3!@$D|;32?#t!9 ziczi$C)(~SbNd0OQp*=ub zw!mrh&{ixk>Rr?|8;oi@b;Aau)=68l!K$^>H*C>L9aUR)Ncncgz7tZWnQ`cZkZfWe zyCFo`Rj2M~VHWcocmS*V!Vd*wFs{MO&0t&wMDPMuNkBMPRn2{H*d2|<6N0#**71ag zT~O-zks-&VCK06n0l8HY?Y&vqDTno3E$;%2_*&kpf_Gl198iz88?PACjj|l6oHC3u z9w5$HM(OmBmM!rbZIpF~NZE#}eK)LV9plUw&Cg_j1=Az7hATAeiqZf>1RRoEBqF>v zDmoQ#u8U>;8Zi!&B|`==R>P&^<}rr7VDySsYpvLH#mljYhrW0bCgmas%}uT0L57|Z z>qRkv+h9o(?XgtStr6=qRWxKoumCf-b&P&z*|KwtQbYNcFZd>0c^rc0r;~5O(YIs< zFD~?`f(^hb>!q!L0kcrjqeZYEFC8|GH|Z~*vy0VeEn9PomTw^K_~3+UsxE_&4^`D% zh_F)M>v#AJU5k6VilftbT9BqJ6YV3-Oy4D^~}ki59OW9r#C!Rg;bbar_MGc?gb&!MF^?KGGOBh=^Ny z^?f+D`h@mvvgN48moN(kqJwe2*Skl-C}>OpIX4)+ z;K(<6w-nN2tEx*JY#BY`2zO`;cim=mi@-g$p#jZpx4K(2%zdZ2M>NcBx3)_R+IEYC zxq>4iq2O$fXsA0UkK0alw|KZ4xJnG}zFX5P8tS@L+b02c+NvFt4t3h79*_xlTB{nA z4R=^!3<7Y{5^YEUWw%r{s2E|tNF7p+u$iR{tKq0t~IKV}#+Iw(DW0x?2q z4OcIlqEz~sYc?p^F4m4cT)cyI=n^K>&OY-9;%#oZ_VK%IXa{r98M|8`$YrmtPdwCN zy>?J8%zCMILK$v6S39E_t~XJ=U;tMisaY~bC=b-ES%fR}u(oZ&B)aPNokK<2*vBqG zd~J;v?g0-?EjQl2_f2hFKAz_doxHy8XZ2lz0d9xve&ImJz50I9K)X%$uyla+X8ova zpxH|Oq*AcSQvEa-Vi(v`8X@{Kb#q#wIy0;V9k}*n&7wYBd%SK@AE`NB3w<7AEgK@V zM{5=hQJTZmiv}pIq3Q)Aq}FiNk}>#PwP1qL9-_?~V|0h0i9m0dHU%ceVd}IY9&D%d z@y4T+2}8W;7-d`sYc>fjSgoc>!x}i7ISL?c*ewwIm9dUriG4~~rxkLK9L9Bn+9`>0 z-==g(qdoVits+R@Lt3*SD)6MLju#$sL9cs+hutu1??Mm{wKbOj0#U~}_lXc@QxCnc zq7C#N53F<(b<;IczLm1(7^TudT(*hS=poKqMQQhwX3eAYhe(q~QO3ihalJ^hapH&; z4p_{PI?isE(yt0cq4g_9IIcj8QddCwlSH^})4RmOpgB(@)awxN%tC#R80~^VzF-js z3kbNbY2xw^xUOw^044+83*Z-g$7;Iu34UNV-gt#_)i+%Egz?qaUwVi0*0ayOfr-^! zc!cw_>rTB9u*TX`uW*6-+A}Yt0GoB{je>!#7mANnbK!&HtF5^J&8uZz1R%Iswb%X# z?rP?BAmWi(cN+x1XR>ZX!tWS0kD>4@dL2(#=q0V52N7}x$YhAXQ+mAsGU$-nC>#-R z07yDuEFiatVtlvBEm9Gl8{|%DoacHan55iSD|!^7+?Oi46>#p0;M-=D%VI^3GR}Fv zyk9-iX|{YoJ<5Kza!@1EZl+>bJKA=-d{`&idZKbvFWPFXVoWdEdZc1pKhg?pjiRka z%Ek?2EQia%0v>F~jbhA(DuA}lhRY_5BF&()(H3JBqXu}(3Fs<|iOO+3yd{`>HStz6 zq!D$T^#W;F1!Mb_Jfw(rTBQuiAb>&iN`$-Z(z}G=9*4{>SdjM_tA*PiEHRqEa_X_M z;lcwh&{lKegb?bg-m^nV^)c2hF-pVqC9p6Vqb}%S4QI&X8W@W?(vT9?afRF^jq%td zwTdGH4k&Da@bHT&CT}q2jzPWyB*d3l}Wn4F?ORP2#M^ zi-)wMoaV|p)g!!@iA@T~z%3d}GC2ICrV8eRx~r!@x<>G~QZMYWQr(n2iwKn=+L{5v zV1hBD8D_OmJ*pJoyiwmJ?csIM+$!Sa4^V1c)`8qZtP8VH@p0C!ez4MP?W#tI&N6#W zA;9um!?3iE-9dAYkf-NGYa6$7z+-3qjZLV)0P`5&)`l57`Y4qt`l=R6e~vb*iZENI zjmd}EuUGX;g}LulwTcG%ozyhI{6ntm0KgH&T~ELEh!AcjAG=_s+K4+2c!dt)hIOPy zU-^XP?%QD9f|;R(tRL`pFzL!M+sNc&V5l5b(ABo2pKkI-#r2>qIO)+D(%E?4j8Sj z%2gY*P9Jg65~Dv-F>eZ%kd;#gXsemZ3GD~~vKmoG*sqZWln_o^q+WTr>j9-xGR*TB zj07Q`myBkCAm7{S25z4qo|@VR?-0R;>MPeUvF551C%9Bc)xIrKp_jU4iP9V-t(c&6 z$BFa$NRwI8xF%R&lZKQLPV1B&8MwzTtxYV%@08vs;17_uEN*WkFRSXt9V6UGIdQ0&K}BoU>2o0SiEe2 zwVW**RRv~FYLg2Bh^8805A0(@<*h@McxTC;89{qAZ(c9PYQAVd1@E&}RxciozMv9$ z{o?rQ@-JMHWjnLJS*98crH|_;Ixl2*0J76g30)i&bxkhj4onncXCAwxsds((YLRL- zp3$!t@3CB1Cyx(5B3B58#5~sKgPXN7U4RywqCcE9W|-)-nBSrj8?;?Y6GKK`Gm7th zl7t&F_gr46^kgoWzO&M&FkilUG)g z8NGn`yPO9yq4vtkg%AmMwA@?&RMCbnyUwpPIzKL00>Jal~Bnf=f z8L5CfG?lj|>%`}+Z1d+;ho5wNKTevwv77kZrTfxnF{?&78L^#D5{rtxD9`6brE<~J z&ja6x*ZsER{Z^&@9hu8EF91Se%qYcrGOt@B-gBwAUMVtYr;;v;!~%8@PjKvGUEzgil4xteu0yI) zch0g!vi?}^s9vHSxVxkg=eb&1FO3V^CDKHZfEQlQ6BN(GE;x5jmTb%2c6_1Qlf7u3 zVmy{Tq?hP8TiB`^D;>MoB~n02uQ5Me;P2oH!=P z4deq1jQ(`NkZP>Ux6(!#G{D4Ac>SVz8VXOGljVD}mdsL(Cv*EW>9Im&NrxaW z>na{y;sB6y(>zXZvSdUJ?Y2Q@O9Y{=8!PS{qojulSB;}h=gNAN(LQ_3Y5`x&Lu=`o zeZ108!MuL7&DXLvMMU6HHHqH`Ae2GN2!PNyt%rA5sce!93q7eJ^0`L|cNFhg#Oh2G zk85E7td1=i6n@Dj-Z@8!^%k$2MH$Xk45~s4(OPlfg)NoW4pB1w0Gfz5nIjFT!hN=D z*up;O`xerLO{Cm##fol(DYVvrd+*iMig=*7+DR9dkqRRf%X(PzC1RgK2>7yE1M|Re zw^g3o#>x$qF6qZuE|m5uMfmPen1Vr=dv@uy3qh(gZ{0l6cp`ULo8Ylj*dT{R9Fd3u z{sf-d+*8+N#g446mMIovIRkpJKFdWcSv2ODTm~M=@U!yHoD$VKvjGL(Vxpi|3+MZ- zyjl*9K4Vt$dBq7e7aZ9W)cf-1jG_R;y+a)xv_WP_2H~z*<#(=ek{yLxmI?a9c@w(P z&I_e2%IMHt3PmI!=8;u&?UDe-fHkW`qwzdYE3jdf5(arpt$+n4@YMmKl9YS07R?i^ zr}I0tq65EGR7rye0nFk@?*#FtoNe1ggMsW(!x;DZLbehLbwsV;_l*&#&p&id)ac2Z zHYPaF7PqOQ;rk?_a9|V9PS0gx?;W0rQFyY%V;q zj58Q39MwSkZjqUy{&>EI;!_)f&T#&?HqK|goFN(%#l_CQa7a)e$eYlQ^x7z|mJSA> z`XWHT(j3YGt2xiLiW$fT+}~<+ei%1S^I6EQl19fr z(lajHUu$%I88?adUn!(Zhl24l_ry6#2i#27#Rq1^&@-^q}S`kbq3cJ-%AqR8{ zuWOt{SKfwEob^IsyF3B`hKUE4c)70ZCBt~f#eybT1oo0vdhe2;1dPLw;JldMAdif= zqLnIM`pUrPkLZQ!TWse^5(p@>LCJDB);Hfeienchly2p#QL|(6Wk+!@Yvt*OWoFR3*?@mRPP(UniecqXEipD_Bv`(!1x8i!KFzgMp_|7Rw zt~YblfMC0r+opg*p3utq+~TFWGB=Eq%%=1DlrSNOWFpLmAl#a>YnE& zF$oX!jAO^Q#>1aF)BruJGWXu|wMx&IG2O(Vo$?C)z!b^$^hKjY&($Kja9{$U6s=jL zH~^U>!(w?@8M`(wttK;@6|j-l%p3r=G8*{=?lfZ#%ku8POxXQl#PDV4MsBfC*jowq z`>z&1dCh*NN#j$wsqYV5{$w@up+P-9?yM;N*8iP)>#svbX`ySmrNSYvBv|iPZC<#| z5yt#XQX!P}tU3Sz&wh&Sk!Z1ekhiDBUB;BHyxu5a{uJ`U(5z&8uZ1w+A$7d~#OuUCzVJT1$8@Oq)t_Ho)I z$!95-E(MS0VrCsXrWlW8^=RS{dllvUK1ouo*{h}m=lSAB*--pl4S-@0bVhPV)gyxT zsWg~NlvHQIx?!aKN?D6^02(;Nxn+zVxQ(QU3O=r)ayt@adkPk{q5!<2PQ*V3)=;o- zl4v$p(4~MxURIUfIwYwLW=?5D`R|s|1^g1k+tXK#L7(IU{802`P42O6s?kJNj|v`f zOfGtGPf_YipVo`>+bSao1|*5KW~>>;IWHI2hzG~;Hs=9cs?}mqgG3OXry+0OG}#O+ zyCmUJ-0Z9ai&vI2nJrT2n8&J&Lz{PIlb@OuVq$MepU>TXHXi<^MKv+zqU_71*FPEb z{qGL#l*r@KFL%B_Yj^z>Jbwc}6Ue;v{}?&PR%@bdTBbA)vS()ys61LvQD;{DrCzA#BjIdY#YToFIQBHd4L%{dr2?S zXNN}OaZFSk$p&B0;3rjp=mB8J*~(e4q4i6%+3W@xL>zcm$EL+AhlO0GczBXv z>@xgnvaxRB>t)apJ<#6bY z6Q>pg^SSaCDFC7c*dqN%@G!hu&^2DRFLxG~Y)@0&(CERfiM94FCPyr>24Bv(-$ zY-4oCiu+`Pu#fdcdxp_YE9JF9UIb~-esyg4DW&+*J{7#}rco-4AXxup$tWRUtEi02 z&jRxiE2=7B}P8|Ak5Jvy<`=fw1V$5(Dsxg@dBG=MfsF3l6zzDcjS*x$n`**8m&&wWyBYJ5{asBe+?R$jkh7 z(e!QjR&Lgf=U;3`-qWSf@8sCO_UpyP-H?CVv`GzKEh@ZsO17QIV~Tl!`MR)E!9P~A zBY#X4j^}ACSkl3SpVt)Z8prr-j~DJKm{Nped726q zH899)M&71=Y|sICLT?V<{!&_TYx~N2KDP=W#SBK$K{YRwx;}R)B9et0f1A+3Mcvh8 ztQf~2j%c}uptenN>9u8?^EVRt(GtLy%Naa2iKcVKHT=%0`r|olQJ{)J;G&_a(j6bc z3K1ClrwNVdn7i69OZssrfI{3diVHiW7VewG`EJpQPfZfMwuq${=74QkT6Sgo%IRxv z1-IKftLbzSzwbMvp$}DJ;eXcX{H0L={Z^*wmu|JFG+6D25#8AM`|8iLhOv=n^z>zu zI6yJX-Y|}VAArZuhJ>&^O5TAnApj(Yrl|qj#JppRm%iVM^DpiGE(__! zTpmB$O@1op_5Imm_&1_Zz|Y40A82Ahf6?vvl_3uQC-u%>SkmyHmD_${%cFi)X!)g4 z3H?^O`9q5;_O)cohYlt5E6JAk?W&kpVomQmlpE(^uFd;xF?C3CR!De;v@ozLjkH(5w*fMt2~WChVN- zxIiqqG>#5Gt;<J(7WMG)F&@`Cb3n`D=E@ne|VoqsqT77{;dXHN5Xs3VN$O zoJ-<$O!L~HW^EZoLwv11`M}p2BN-H4$G0Aja(O*soP) z?->Dk8{YRRBi^YEeXf8xzx7@%`Lu0Dh~;Vc)TJ8uLT9Y7lFOP9a8Q>61`LAKXkjhP zCfQ}LI%icA7c1DE(Io2q&T76e_sHxefZ4tuR*m>cvF|e(=Jv*OjhMBehlvAR(q?g& z6uV_|!JZB_MxgU^tGM?&>&5(xQ|naR72{tAw2`k=`?D$qofF(QS@|nkzBuU_YAu&u zg!fHv;i#DR3;nMJg=gk((3jQ!dr&p<&&qwjmGis4@!6!O&ubwQWk!oAkLD>s=S}HD z((s>jrgL)6Y~BHY?*Hml#r%`z(5Jk6=hxv!HJ^sn0#bBlD@ra5Bd|P!xeY=93b$MR zWkDVDLSZbujLYs#*b(!u;NH|b&9SV4Te}q0c~eH0l2?k!LRHbOW(ZzJyhqdX`@}X~Z=L@nA zjR*vR?ku{14Z;7UyRcWnBFgEww`5evGRgY1C3{@l|BdN-<)>BE=vRv4nT408$&q}0 zpBcQ?FX2~hA6rCR-g@p=e;AevdS|{``DIxh@j`8;BzsRcDoJ`YtK`ZwEtO?5Fp`@kSEQFP!#IgkBo_+``k zCMl0Jw;guIu!2X54im0&60^{S_r(vOeyioFct$F%w=+$CxqX2Wj2f0 zr}&(-WOPe7ra136f)4h2X}wkZWk%lrmGLSmb5#ZYQtNAJ_Le3lMParWuqC4t#7FYV zuT5g31qSno_oj&vk3C-){MJc`>yGStQJXlwlkWU3QL|{T>%oE!m~p({P4DMsn8Qo| z^QMn&(rzzYcbhVY<(=Z~4q9>t#cdLtPC9b>#O+g@4qLMUkS)n+uO)j}$~NBNsH<>5 z%skfRysw~F*aRvszn#}G*8hGuuYubr5zaG`S$%I5kKr52q;nZ2pm|5~=+}BNQNmNj z<)_+_@lsQTrAOKkiSn}*#rtX@2`Wp>l5cVz@kZN?xwGO9sgB2OS^Yvbsos~JnQi=L ziD6uWd9~bzkr6QPOXw>NWVFmOwR9Ko*>tzrx$|OfFKmyRzx0XPr+J-srZ)>%#)ol@ z6fo~~(KxY1D(OhhJ5uYQy=Yp{g5dEuoZWb5lzYfo6U}q8&PWynadIOGOuo!#p6O% z|Gk=@x4>#k(}}#5ufoAp>za_FtvS!$@W82nuABP(*OsY!1$PI5t+tL+X-jW~qlxBK zAx&4~+qItII~h|4@x$q!Z4nhaoty39nR{_POVRU{kv(1+3thhBvGFsQo`dYweD^x9 zii6(W=FrT&sJ?~R)#~UDm$aoW?09ti6lUlkcRSy;3IZt%c{h7TFQu#;C630rc0~1@ zHO`iL0a(n!@Ns8m>PAASwGP`glsADE` zu{5#`Q#Mt*+n!r~5LeO=zBu}J@W>~pBEoaDw0SA0qbGi~FtNw4W}$q$F|qn6rK2No zx;}TnC#9{%bF#8Ufy@a9!-`V=k6-+@z zOw$9sVNBqavuQm41Pd;&s%-g0(!^C&DS{CEjqXfQ!x zzWaLs&$@eni2`KU;n6j(gskxW>E7{!kc1TM>g4d8UrbE!;S7-41YvjAcU*#i!F77} zC?+NRc)WKG3KxC2I6VU;0q)l|AR6&;gNRQaK7g6Jyx|uW5x6}%y5g0P7P>zJP%Qy5 zF}|B~4o(ZiZJu4+3y1*J6@YL7;?ec>BQFfbb#o12wFLPA`0MgPSW<-R>;Mqjq(tsc zPC$7=k5`v>d=NY8@*XB6z;k_mbqDBKymyyp0Qd!%YL}OQss-s60Lr)kqlX&+jUYG@ zAoKu~0|a4!B2c*jI_DO`b^%5efMp3oOt+J3P&^Mnxq<5eMhb!sJwmGGhXIPz4a6-2 zv8fP?1|l`_!2tj3`T<~`0LSYNqNagZRS1Xm0IK4|vvQ~kfD-eAq69I0pgo`)0G)aO z)Fue>1o42L2rN&5{m)dD?+}jfF}IvJT8Nne8U!L^AvhEy7C?;g!az_g)L4kf1bA7T zcv%oR3$A~L9dT$L96$@C3J%K(LbU-#5yYtCq<|m>S_%W;G@xF<<^uY>gt%$|Lk7rg zpshDgC@T<$3lssNjyUKx05=2jaNtTnr5t1u6vYeiU^p7*R0q+lo*+HYaflZK(R!dO zA*vI^$bx}jUeFYXnFJjNUBv+gfdhP;44{oXw^uh0fVss5f_{PWAp#xe0tkHuY)$|W z{jMNl9YiMsz$b9w!xME20HAi&KIf3j0J(`nKLZdk03qX0x;TiWCz2L0I1W(aDf$_T zgNFJV)chSi1Wb{GM}ba&@My?zp7x;=--EX~!PHQYHAi?(3eG&mRdb5t;E_P2^mob} z7l#7|MOK3@fnZ!u0I?_X62v(J`T&$I$Syfehaf)?QvxzIP%01-5`hzo&576s;58@! z8)`UE#MM2YkO21$!0rK(8`t&4H6RB96517@k$uPSL3(_$503Fa!KVPt39?53wBqIj zc0(*DU=^Ic28DCbP8@C+r&qpn-#8)TkRTkTK$1Q2be?+?+J$rmSsT>oCyp5e9D}S6 zs_usyaF|S-Mu86CxW<#e0yx)`9yp2uCmr6BCW2_UD>8ZuW$JgUlK-ZwLto3<|gvfCFA$-h&iE#Q}p8fRJ(^181axMjXz8 zTZj_K@f^ruIMQ(X>q$Du(m>6SKR;p4IJ*!o4z&E)%AT=I92(b?UY_*+gQ*2I5MtB( zfYWdeKx%$sL_xaXAnTr(fe%oFpHXETsh|-RSPvBE5B=v@=?~+1>dYUz;4JhHbn8>K zkWoN`$qn#aU^IWkpg~G~Y70lXPnHTH!JtuwBkq&SJjo4u2&&|ni~>3KceyxD1PKRa z=ePtk262XHNI4wYL7t~!meY#oLO3q*<2XlbPBu>F@0Q51z26~O&!s&z@<|!L7Y&{L z?%kkl2)gzC^6x3w2Xa4St-#eF*LTUj`#wjVPp0^z5uBDo8A0)!R&(48vI5S0#bF!% zFd|_49EJVp@gF+j=!;_sPs2A<3m6xly8v<)XrlV=8c#$&NTc612x$@$@(-9kMEp$~e8s*@JdDdmwoN zUpiHzcX1?3}58LP1()Y`LWP~n%?ukEs zeD0O!^hciO10dyG_~RnTIGIt_CDp{IUt%O6Ym z-7deM|Dk|q%|eR(-pBtR>3`&k|GPxMB7RrTvoM_WAKAtqj)7u1-UFroK;nOgTKJE$ zKHJcb!hd{tI>T`&NJwC|9FKl#HK$%E$3GU}`NWSLe?0Ji6XQAG_eMdbKOg#!mi0aV zKTQ6nu>Xi0f2{oP^8elL4~;w@|9>BN&IzP~dhGv4xF453UG~TAAM5@1#Q#y%j}QM| z&gbJlGXD7R$1{H?&L0}{J=fnR|E7%Rvi_L&`jZS$nOy=KRgyoNMo$Fc&h7hy#Hr+wmAAGBFJYv_VE7 zFwm0<(umWU(gDtaS86;C0eo16hXf`#_&TKh>4)M!{^^H5I(Xp!__HtY_H-bTQj>sL z8A|b&gB%3>Q@(%(NcR1oq66p#x?~{bF!1@i93TdaD9#nqFHMEG@=SRITHh5YKVHP- zN?D~!xePdY(f1;#Fah)dN`RNLr39z!RhWC}lPM-EG%5s@|9{s50RKK)@u|=W2H26y zl%QomQznthz$zfQ6c~{|KZBsEVA<2NOa&}`l&fp1Jl@=cH8tc94^SP|yW?9;GadQe z<)fydZ0|tF#pvPaSgdZTd$IoP=qz8^cr>!ny*@bCbT!+Wys~oDKi|6qTRMoxw+#L4 zu9l8eEo|f~OCT?Q>FB(=lbvj9kC<0dA9U4Ug*o5+Fg6m?#GFpYJgYvAI4x$MH4&1jB4{_FxKA=ql95NO(V#3% zfj}$EZ>Di46?@1S_RG<4Z`R238*e;LK_7BP12Uk3cH?|IQPX{D)GB);DeZ(a>Ybq_ zY&FSo=;AzO!e;0@nA8K>WMs}WqsO7ZSST>abL!D$Yel7q*ZZc-y=xaS!7Qu9etXxffLY&We(BafQb!;r^n18-z2ht|ZA!C&G=!9t^bY#Ik?q0O+7IWUW z?+@GSIf)Ee6p%=Ai=oF_z3l-b~j0ajZyX&WySExN~EiMIVhc7`q@-IqqBah6k) zx(Sf6MeBsyfnA@_?V;O9pShvuIIFQ4-2~OKbxYX!_@$rs(wIEfW_Z#7q1LzT5Pvzi z=i|3JC5<#2ThWht9y)dnT^pB%S`ROoBuF}ryx{9y_tEadle&o-?Yr)gTYb;b?p>3n zXsB@8J!V}bhuQY6+Q2W{?jrn$hjbG(+jczQE4`|*)@{p9iN^wQq|d;tS@doDW0Yst zm|e28;Se4((XO4SEjaNDp6)S4YO?l&;j==$Bt70iNa$FbWvWKqW^DW8=?47_gf(OO0#0=hsy$=iUBmSqt^ZH(FfUEyHB&^L`G9&?#x%yKgfPLdF5F(hD>Y~ zgl3Ia*!+0^x642Hd>l$e3)({QL-pQow*R93pQiuMbU`AuB`K|)6`VKy#pd5{|8n;29B|2X?UpZ{$BVY9%kbhaq=GnZ7<`qB62_1}!&-F$%lr13wG ze)jrhq#&WXDK)dDDx_ex#G!cSv(ZoDzdrui^smc*2rlW*j;C>PgqDV=qQTE@Kkxii z_m8r_J^W<+&&{7beiIcW(web29xFb(tJMGBR{yI1^V3&pk^JN1znTBn!cS43gp?Ex z6HRKZg8wl3SEoOp{RR3*=-)4Yvixo1wRh=YW;C@e4b5XFW_6eNzhC;*;-|~sRNsMq zef-JjADcgUe;6!^tKyT1teT{vzR!NI7fKx8ZvA5M=j;Cq^q+eFwezFP=j9^z@|i;a z@`0SVS|Jg`;$R6a_3>G~)#3T0rT(wyKD)kO|6u*Y{y&ZW?dq?pf0Y0F{0{t4`m@Sk z#Q(d|f9?E--LLC!>^^V(X!DPSKl%M-y>G zJLwnbtDACz+?{I2oY`u>tckiXVm~JiEfiwo*nMds^|R@2ZpO4Q3%SM_K6)h*>%m!B5ue7h?IS3q;_Dok>AtL-Q&G*7}9Ga{w0 z8IJ7eK*2b}q(Hz2|BBgs*UI&L>n}%dO+TN$*8g%_tXcwkCHbOObW^UIds=CcvkmyM zQstbrT_kU$hf@Mrb0pW=jeM(b2k#7jz5Jujf8YK|^S>Ye4E_h`r~6+F zemMTs^8HSUW9~w|Z~71umeS2niskjDgfb_{p7m>4mQ@$|8s(CL$4c$IgDQvYr7GXd z5qc!9qZysZ?k2&iC-S_?SBosZUcG~Sfc$v00+KRCRdEeR+TRYj+FFcFC6?zCXq zOr~S?UV&k$xDZ^XntxVpnY~u$L7HR*qx;+9BL&0BKI{dOBXvJrzu`VZUaygHK{F$7 zGMsU9yugIPUU+Eh6xxHePOzdLQ*^7J^JEp8MVDnJh1(U5+4BJOVRi(jw<95(H!Z{*BaKj|Uy>g?#s^s{!{@1%= z=oe`5%{Rlsy-K_6)p{@TI6D;8D@=@S?n@16oXT*oUCXtuIL_BCzb^olLG!MwOes6{ zj>LJ6A9|n_9@Ei>4C2jUT$no~!-kto)mljUEzKCe!*<5Z3PNK0`{RQ7(>Pc9R)z`n zilSPpnsrrgp0Po7!%sDZ#r6)w`8BVkTGB4bYPHbJ3#t`yi5r0G=|n}+hcmq^*NV(a z?p{kj>lg2pIpvU14GElPDMF0a?37 zmU9av?^>N7agZCAz!MSt>sN9tE3a}@sRs>?P2q{{{m6jkMS=zGDiczto_R{M z!_PGbCG>SCgb1cmTpIVuh7IBjDNQ%^kn4z^69z|%`s4gt<}nVO1H2ydo*-jtq@J;@ z(Q7T9F{AyVLA_IP?!ry91@|1Q+6=V%t4Le!Ax@X|kS1qn z;4e6q*foJi{A5=|WcNs-4}U4yo^eFfr9YCMX*z^Mrfu>9&nIcHJ1Rmri2-tlWKnlP zQLh7K-cgN-+e~-Vcx!lE=K#`=w~%Jra7NawQ^~k$Fea|Ez0kw$kS zk~L@%j<|NH`HrCQzNvU;-T_*-Ns=ONGC^*%yGMtZif8i3=igk&H&^6PJ zc=m~NJ;9;9vk8uZBa9XojJe`jCoXsTMGTC^c(iO|4VYrQl&OQ;Z+1dXbcIKBjUzpp zH*u!)JA#a^i9hDrpcmVGqXtLdK5ffLtEO|DIvbRF$1+OZZgxV;@Dsp z1pe_OUGRvuafDCPVww&8n5xm8LkEgmeZl;^nU1h1%sAiwl z+mKi2e#t|E=$O{w6fedq*|PpBL#0kL4mh>7+Hc-K&(KW{G8fxe$^Q2RiU)@Ws()msx6S-vSl0(g8| zA2yghgLi7!&C;oU$dXj+W*^o&kmgx|=zd{h6mJCQO2SsP0ZgXwxjgiF%Z-T_?}FuCpMlvi&dv?eP)( z$y68meug#>iyN8+ewFQy8t91&;m_mjXy;^gsv7Z>VVg4776|VdOY&^qN-<(Q62weH z+?K#Aenb?dVAzU#kp^OGC7(3eBj!3n!+NI@+<5!Rx-1#)o@1Q6F7${S8H@;QTSQwo zo!~UtVB8JI47Jwb6+Jct^X*(tvf`a#HMuX>knMK2=qXW1K>uuvbL$SukavRx@l>%F zd~?KRn|tiEC^$qk746Zsh5(c$YqOql&s@!vGma%{UEm%+)fEEk9ZK*KDz00*cq95P z3DTgNe$!x#-(xx97I=P0Q5QV2eF)*lUPyDG?_?O%-(`Sn)UvK>P11L%E`%9YAZAb) z9V-~X1hHp{F4Ub&v+ApCC~#}Ktuo5mt#>5Nu>!GxNKBgu8PGJF=G?fGVO)1hfz&`L z*R|&4twvY;RC5rbuQMT{Wi;7~u|~3@o@c7p$g{+ChUDEw$F!NIz$8&Gkn)qs?yL=x zDeWd5Qm+c!NGu2|Y%lDH5FXh!jPc>F5G@-nGSwPXGH-x|vcdMmjJCm}+eXmd>~(^9 z!$k(9UY&eKwN6{+_#*~8W5Ze|Qe0TO=|)s>y0k%ud`NdlofQCA`M&rd!F-B6>yQZC ze$ww74e#uv-GB#JO(&sFD8gz@DiXkM@;ByOuqqaq}gx7M{_dW>xf^Ko5B$ zFiYBNwM$s(^oXAA^$#B(3Jn&GNBMP6C%6fh5suB_Mjq~hf@O>Gh`RqTBdEyVU|Jdb&guKj3TMg%)Y2I zA|Ewa6E|4SslcNfYDy3kFY1bj>K=>@X`e{)5-g$|d7C&(_EDN1^9HZRkl>$L>S>p3 z1Kc6k2D8R@Nm^+0iyi5Wfb|W>1hvkh+?v*st=WeJJ-V0xp@Yd{x*p+(VS`)exTB|9 zLJ~yXF=6c^Xy4`qU?K0O0~wG3tpR7=*BEB*QyoYPEZ^i&epFI>PhuEb#VwkMJAoGZR-l8t=ILWDIEL6$u5t1S+Z?ygw8HH&?NZm- zj<|KUOWG30BXyqRg`MU4Bu_N^qQ-gt$T5B(Vhr$ov^6Mkq&+xpv@DiPCDQ8cT${?hJd29s0+aHSB7@SiV!e{NZSp-;HC@^$ONZ9qWolC|(v9klv&`yt zDK@nmnNHO!SuQn;6pxy@Y@eE$Y`^NsEWg@uN7F2^<%<${U{i}4+#_WBBF%d7`UJt6~pU9#WZ(g;mzHc=%((J7;bk; zG_yA~n%RSgG5Yb5bP+M4VUQF?8zP3&Mo7U8qog3l7%8A}j1a(>zy&fUQUf{Tm_W`L zHjp=h3Thcn3T+o9!rJ>{;T>J@xUROS#9m<}VxTz!JHQQ28)k%(#%O`*6Lr3sv(;XC zbCvG-OXZG*>!r3uyCoJyN8gN#&r5V)iNC1<-z;SX(2BcUo$9j;3+gV(p1Fea;7uWd z+J@pHdwaqY##?>RiyTMX4&9V^M$;xg*GVbR+G~mdbwAU-VVUU3oJbC7?nT753*qQN zZcy4(qbqr{&MND)N;gMRDbIseU1gcoY*U=-7f3$Lp=6k#GcmrWB_d^%?M<3*u+P}3 zHKANps^>_nA9J*-&M21DO|mn62JgomK}WWAB_#Cn!mtx8AHpKdF@2}jEa$9BBmb#P zmakfRTVPmrSYTbgn&(nGl^s|&oEb&!A|$W{$rv6Bf$wOD$>^&I&YLLpEu8=C{ATN; z)w{zF#_z9xRsVzZ7wONczux?$|I6`@7Qb!%VE<|9z2~Rt*FhztMX<6S;OCsSOca%e zPvNkzX+l~&xtkh68L9Ehny+@v*{U$lJ*&{my{!c0s8-)nbg3sK8~O^tl|7XlBt(}>n6z|jlIbUExdSKA1x$ny280& z=Zop<+Yc&lp`R|^nwP8=dQ^>NL^gC_&}|$TX_)Gky;*6Tds_hp9)pg^j|#kMh{GRCUC3)V_4UR`~LzJYwXdS(7? zGvA|nB0ZeZfkg%x;#%~znWPx(gQ_Hvx+X3~S1J(#4H=IFE`sxM`^ z+@|pKn^v*3L|kn6Z9mVodYT+c?@dMsc#&zN^3E{x@m#Avt_o$=U<_(G{2nWIakgRVcd>b z^Z?U~yj5pFk=Nd)ThN!$A#MFZ=xMec>7ovtsb9ZE@}UnVA-g#~Su5X+-#mS|du{i1 zHY=u1h{))!_ISJfo5p+XUk?g>D?}-&!iIptwJ*AF)W00$1XhcXxE`wetE0~C`m`d<%Ug_iVT$Q^Z_MJFF2z)xwbY2o~iK>R9Qm!v^E zKnAo8d1F^OS_Ey{9wMZr*PpmrubZn`zDo*aw8msiR++t(emE=it?WY*`sy4D#9!_x zZjHmym`R2y@KAY(4(jN3BOEt8r90Aw6L2H-7O&+W_VU83TH^9%KIy;L{j{1M&u97O zT$GA4yjlGrgbmNaJY}|CJI}CY7Ma{%Z~0d3<634ShvxnE;vZMVfz%dQ-qzRW z0ykXwz8d5AdS9keNQ0FIg;upgFv3oaI4!u9W0$X9I+H>kEYbdh!`F_4 z;+20sz73{we2N}RHgSky;I|wHPM=%mQ_UJ8WwIJl>{Zni_QToV4vLVh8ppTVpXU-% zSL+^=LwmVK8J6|^A$faOTdmMPPhPnQOF5(ML}Rw9Pt&p8Uo`*Z^O*tr)8k*3@u`ay z4@lSo?;#F0M}H*1J8BKzxRmq#iy&oFF#HX5BNThpupUV`EZs{bjDMEo#_;QmbKIMR z=Bf6=ZlhEue!E$YbzPTdo@&i>Na`bV-3Rd`SawItIEw+Px74jL%pvPIJnn#h5*&Bj zbQqer$2g6STVvlu!&aN_V_-|%$M~>0o;1OKrcEC0z1SrQ_g(9J3=dxEcz^}0c1c2f zw)^gUgO0mS{i991}R7tgWt=uI;>ThR;0xj|LvR zT@GiYHn!r`O9NNv!lr2;bZpx;@Ok{$##OR>W@M|neXMGuceE|Hw>VyVbh1BMd~&rp zT$0&ZT&zEt*gS2X89IZP4~^Zx3&)1ekc~qvN8PP$btj|kO{k;c;U?J1^m_Zj*!pqv z(%4?Uer{w3-n`T{S3SFw>l;4pU+LRR*Un8GBpWvdW-6ywas%W0-5WF8`?Wg@^N0O= z9X-|C%V%Aa=Yt!4E7|^~rls1+G04*Ja$90qM-QUU$b#6{&#=3Xs5=|YI>ub4@?#+?ZME~|! zs-q*h6@xXk9xk4A^&ifjbu=YnsR|ehc@#@@wZs<^10CR?qy2pKq^1eE7lYK)CE{ll z;4k-LnYxzb`awfaeks<}k=;J4LZv_nz>{24MSKg-owcaKo891M~?tEkKFrBH}e0+LE0YLYvdj{4mVR9EHZQB@t# z36TS31i+A7Rpt2+1OT~%>VWSapjz_#N2n_3Q38g_B{CJzvm63`e1d97Z=_o4;#;UT z=;l#NZVR2^a#rRpb&m1SFFJ z#TQ_yM6L>ce1@t&i^1C9+b1o}`x_Nq@b#01#*!a6a;)i09w?afKUS}H8daYK-!So2USg}SfZ{f zd626CdI7r<01tow1P03_02ZKZ0|b^yfzl0`6rdmY1fl~N2SMczQm87xof_!rSp@=; zNI@zpGKmbZtFQ$O0Afr2>)xGr$rB@aJbm2p>S|kjDprhxaJ@ zn6ml=C^-QNQ53Z=ipmuk7z`v2fD`afE&&o;rXXA@1*-ti6g^-d^<)r5H&B`)1u{u- z09*%(SAZY_nxEtIeN*|>_Mm?%1q7MNA3m5_t z7l0%ILBI+l0C1>^6ku9Ggu+b#j)HDwfecVBBYP1BR)h>7UM2_LK;8rOG(bS43T=Q& zz$8EcP)wr&1@Z)<$bR7T3D7QA=mQ7>tI7b%Ad*J~;ZID*6ps4Oq3Fp7o}4d4;LCiqzbB*L>q$veP=6quo;41f>l zRwf0IQE~`iRpCFdNR^Z*6H1{=NuvT7P$BfJU`Ig_z=y&UKv)qi;2;G81VjqRKLvz; z%~SBBpan20SLCSzq9R!pwMD?H1B?K10m27x4?qLbSD6sMd!f*!n6JzbMT#iYDD(mP zzjrE!00tCk^dg~5CB-Qq3>?2RqbPcM36u0?-6)a=@CXPY5GqCW6Ob~>1qB9jK!Hq= zS<0}!;8g}&K_1|M3cxc6SZPWl3PXyvB0H4ElmLL4FTqe;E);cDzZ(b66yO!I3T?l; zq^!mQ+15s3@=I?7k!Id%*6$c<^0FA&K zkXBk!x&?G8;t!~j04WOirNsL^WfTULs+AG_T?sHjL9en;;fTV|7heHsB{JnS021&Y z82Q~OP~rCCwgRj&5K6`YBMPz zjqfxA=9S*P$SbkDaIHk8@bP#1FU%=I0i>a#S7}`d={p%O6f50OOnNb-fU0Qy?&WvA zFH?YCB^ZS=Wt5fq4|KhVD`fwL2GIVm_DfzW=ux<=U_gmODWGWm4(NARzjrCRUx2+B zQ0n_muyT%aP-*A8xBrUp%ehj4!WTeL$>9rr1x}?=;8f}Ccf~JOzWbM~Jp8X{0WGDL7jG4`Dm?%F@VhxcgA$Pv&Ho3f!v2dvB_zc>h2-z1 zen+F6{I71s9A%FZBrxH-6E9Q0pDM=`2Zad*7r+$Yr5OFL{d>Q{-uIab>3>=IZu4ab z(DLGzQsVa%`2TVKFUG&yR7_D=dNBj2RRB@g`hNI6{4X@Wd#;4~-Q0IDFEd_<`L0Ik znG*T${3&FWn3alw){AB({ukrlnNh${lJcTZIZdHSX-uI(p&KAVIjoqjRHV2c11|-7 z;s{H;Lstvt8z1K3)kcqFKHT0y1 z$2xX~4`-+MYNon3JNK3jknL@;u7%$H$vMQ<>SFFl-_hjZ=v<=jptiCMc6L(P+<7*z z(mh_jwD2+AoVqf%(>vchQFnK}7+N#&vAS3WzHc~5rl%o6K9A!o8Xk_)g_&pX5Vi3U znV+wGW=7@~s5K|L^@-4&9DDW((wrAvdBgN)Mc00znv(X6TH^x`e&Je^ zqFc`hopI4qV7Th&fYdicV{GU-BvjTnrW)igA0C5-`9Jhc=!Sb;_sJdZzU#A_3gr3rz|7>Du$gGN zK*XQ7j@qPIP4KUV`HkuZL2$0SmJ)-Nl;2afqAeeP0XmodJ6Wu5Ir}0Tg{AmxedPlbw*?WqA zn2>NJnDNG|cJyndI!$zllfu?pHbW7&?K2KIoz6Zzoa0#AJtBOKzZ;Ic7S6b&K|6n1VvwTt$D;r`sS_C zTKyw>NbAvFFv5MY`wAYk+r1YWan---5&JZ-WF4(KK4TcCH#MaZZN4x9j&fWZxsCAL z8oUY&JRjWkjJO`&bcRVr06~q>X~P)Z$qCJP>xGdgxWoF;eVE(f$eFLt>BNz@&&AY% zOW^h7u5;MU__}?RY;?sc20Aon6sJ2jqZMa3IjIq2GC!#rX)-qpjWnB^QHwN~ozaLj znx0aF8_rFuM;pw}YDDVHF6l?APOTckA!F+nk&oj$c9A#3`!2!9gBO0myMyP!fjfg& zVVDZ1f?0odtGiYz}(#L&eMjmQ0x~dli8QQUhUk;pm1aFVs z2fEBHsfX$fZJUSR51qS)Y>h|)T_)!>BX#@stfOvvuRVj-hCv|?BP)g>kiHAIkj)+y zn8%>V0AboTXPflgdFm0kHmVLY?OwBwy%$`DgfDce!mayP>|s}e#|XdSUK4~VchL)Z z+H@c3IW%aQ1mWz5!B<*T6C66Go#L)rCE?EfW6p?2+G%XmI9n&xnmgl>c*c`OIdx3A zBwjJ@V*~oSY|v_~!?5t_4$~wp`X(%Xfv%No(=_FaK4i-hoP-m;sKa_G)}P z2dJ1%jy*-Kd>auX656Id(!^*lt|)}KTPDwPp$=yVF=4&lqJ^yz0%CDjynbO5~CoIt{imrZpc65+caGRUXCrU$o!Jfa*PqZ>!lsH3I}RlNnbq^x5%;laE@jC7&PP8U3>QL+H28 zG>o7*D!HE(LYypjd$a$G?vK!4ZeJOf?ibpATX_}utvxrDQy)Vd<@jSqSmD{jpWS~v z_(kXKZK=i^@js#eq5hZSf4BQ}<+Vq}T)un7bU{!>Z(c$zACGPlpivxlDzT|5DZjfc zykMv_tZ3|m{~s1UIKEl^==|f_->iQ={#F0|=_m6a_y1z@zg_>|kUz=)uKEY@FKYks z{9mAdSNXg22l=lmKg<57{EyII9^ZpMsr?}SyXK#t{)haJvQMhTXJ5>JI{Y6d|9SD> zIzL^0F)rNs=JLE&DtYvwpLlGMdUCU8XQ0cA7qT|aERGx>V|>ZZi{?fgf-w?h?C z#MYLy@S5q@P9G2cp#7W5>&tKUIpcM)1U@eYh8sfkn11kWI_)i=V#f=dRNOk)8cGpZe`wol?lF<5E}3Fe4tx9wfNd zpJmC)jdNG){4k<^tb5%-vCao+vAD_>Kh_!-$(~NPt-8y-FEh_ytPf1?>BD+bcXRa1 zRB{e!ZiGHwQXF%L;#hZ{Eh)1qnlBB^5wT*UdGiDl>O(njuD1w>qYsob_wcK?es0WFSfTcCAe-W-?H?+;I`75G}9av$y*>BS4dx7 zesjtm<0QaoGx=5}55<=i&iKI=Y*6*aYn|WJ-tLwJ5ZgOby=qQ?Kcd;?57U$4nUh(j z6_Bi5dO)IJBEzfaflFe@-hm~*V%d70t`}nD0l^ey-uV#7UG(=*@0T%A2FXWBGGLy&BD&wR#w)c_7QFUv*p{u5(4Vk7b#as29vPAY!Uk-$Fjw zX7va%y}sPOKQ0Txu}88^%5*cPTd+RWSA}OaK4{@IS*yl8QzS_9{dV={s5FSg?aQ?+ zQ_r5~B?eM2axZH9vHbB&;|iUeX%;e~VJGXk(HYr2nqtaO#V+^3U70r-=X9Sq;cSLZ zg?9ELJ0^s+m-STdgzN1i*w;Q&_UXaVEsI30Mx*5MUX)A2ZT2PAE2(2D)woWRyxas2 zXYXdpYi)=F?O3n6%iOD4Z*0d9!KMa8*=2>qHZKx&>-C9qZLz-WOUTa+K?ko-)u#SQnN z92k$p<7RJI`x+L?Hbsq#lI-cvq4pMV!M}dYIIA~&&*Bx^AYurvL!PCyCR9zQUoWiL&_woMRCWAquiDYHHCE{q5AAvXxd z+rrD~c1Y0#){w5F@YI#{NIYl?4Q<{fKGB^MduLK~SVowML4*xmj^7l9`wGr+7d#(W z+a?aga!3?SVU6h8$%}o_j!jR=2WS}Fyv@r7W!fUDEI?j z2*5U3(%^{h9!oQ=*3OvYC-~FOvd(F~h?eOL-D(rUWCzNXCeA$MghcY!ND!(Gc4!D= zLsiLG=R`)ZH?lyrHmL*s7ze5}eGib~t&^d3mbjr_j0;tqdBO;YZ<#0S)#;|swZ!=| z4>KPc?NOp3tW~3oyvGTOY+Fgyq8VW4y5l|B=Oi)1C8=)|YfXP9A2j(#wlCwf8Tz={ zF1R=6j3lNzBl|}&)(xPHZFWdBZ;`B1ZGfL?jq_!kQtqiP*q)&@t2&kRjb>OFXFEfI zYp@67-0(=*X9D6YWc50W)Uh6fEA2jGj~fgi%}}YgOdaUM+Skj{x0+y~?48V~dgqkR zA);lKI%TOD$kDT`OR9eoeU`!KWuGSXUJD6rwr4B5@gdo}(<+i~a zA)HOutT85zbYR`<@3Rk>p>Xbc2Dr`^C+fx9)yODYELb>mGh13?m)a-7+tkQ&HW|^8 z%+)MNl@(Fcne0)0mwiMHOcYFK7*y(I&hz4f8V|FcY8}!+En>T_9d(HllZOb@ahF0oYTSOp#i=aw30+JK% z%{@(hVp=1|2jZMKw`o_+&at9tgauoky5Hg(-nE>p$J9z*>xl4g*-3-2Oc67KvCjNk z+)XpEJZ4a)Oek)vB{;No4X@T{m@?fJ@69?T-!Yw&L?g*obQy7%9~>rJOM@~@Fq8dp z&g?tlDc1|$y^x~A)Jq1;do*9-ueolqJqu`khBj`o6Xwx;o_5D|jqaPp8Zxyp%Uw|( z{PWa1j$2IM0!p8yja})EbQfGD-w0e`{mW<#pt5*wFxs*C5pyE+4(Z&$Ksd&TslgbB zrU&4<;2qw%j#6tfN}3sncI1nb&syBW`d5)UO}a^|{b8=H7wCJT9c*MF&X^BP-0AlB z?c7I$c%}){!_kg{+mtJTBYb!kVaAo?_FMeIJ65ndKvn#5J1l?)(9vj`Jkt^D%|0PL z(QPoJy+~K)1?iUVgdQ9~In(dbFX=AG-eHVA?LPgI<(kwxnqo_PAfGcmk=;YdcGQQ= zGrA|TXBg`UWbGx*9k>f)9I4`rt43FJuL$Ezy9Jsq=spp~5olgEIwSgrP>zjv=~pb5 zr2b*F9Z)@e$#zW`7(-gKp75t!kJ!E`loj(i?U?5o-7||dWkPU!0zX*iQi=gXGj&54 z8rHIzrbaiw&3D3mxkp49-5NV8N^))#rvs=Eof9~-1}JHh6CS}^C#h162~%xJUi5RI z`Wd+Rj;2`EgEF?bVUhf0vU_Gqqhw)Z*(#&mEIGn#g)~q!kPXl)W;F9o2 zbxaoZr8rO@fmHQR5Y7;cYBV!en&1)a^-R?oGr~k$l279?<)O|2H_(fAq1{j}86F7W zLSajLCY`W7f2!oZ^Q@xv8ztmD;zJq~Nl!EnJG!L$xUIiUNZfM*@YT5-;Gy=!V;H^z&)pDV4hB2V(;LRqVs zS~Xh06)z;Vbqd(4`Aj-zJ0V9!@ov166cx4}cC9lYxPLLx1gLPo7Fxq+M?*cj4ihy5 z8i@TK*RYYfXsgy+)T6*Weo++a)wzk*YEsASw|YkQ%^)ne52;r`;rFm8&YgQgl+evm zXWF6zn>I+AR9)f{KO%y^NY<~@$k=2D#kNe7On@q*U1mUnZ~|{xC(k@&_$GCXrCHZX zC`U9OWY{fzE`=o!TTS(SdlbW0Qsqa7Gx(lyf=F+7NHVqKHO zEPM2@D8Yq$PIzEhU?zIvJb6cHAciq!t{dhr*h$rB)Wxj|gTvbwaE6U4gafWmY|l8x zmVQsXW;mgS`w*VYW3r5Dk~ZHG6~bF4>DQ`dY%~26I){PF&t0at!4@~x85hXeAZgcY zkat)C3EiU@XZi(j-!V;_7lcQ)&MLkGWZcqhk^$F4`Ac}S`segZnnT)nOMEDI38=@H z=3LY`6NmW7F#3G1QK`J>sM>=l;$g$7OZkQ+Dz6SJy+}O*Y#4Pp$EX}!a9rh18f-yD zG%n3xq26z}I_waF{wd+N?Uo?ug zDuW2ZHllCk_G`#zgTjS67`C~O;{NU8&BIsg{4qKri8fYX_4)bj$v2VTKnO&7Z{E z0ym+@TGRAJPIz4FV5)QdSvIIrKXZ*1gz4x?^{Ly+*Dlj2*sbv*_O_rSX!F3Agr|b* zD%;E{c4Q)NnBY!5%!XELWE|35Q^s3kBKT7&cJwn~Ba|ljsL>^5Oc)g@oJ@8E7O7gT zTIMm;1vf5;ifWlmb)+3l7wR*MmL%LJ)WGf8TI+^0gI3cT1 zHAsgnXY^!eWVmn!YsWexfE%>&2OKxVL^mu%xR7i^zaoGdb%;A`AH-l!VlZcwWK#Q( zeOGHuoZ&cIogDD=g{cJU0pY#sZFS(}^9o)DEY?+qloz^&$2YCoM zdzxZfepm2NZb4a~N1z2FyjSgho_eWfF2Gz`p8yGC%%)pa-4;Alm}M<7LNRUKDSot# zEQ2aZ_AL;bIc{)LXFtl9wN5mvd&qdIHzaPcJkUd((c!|WWM}$bhE5$g7UZqngHjG5%CKld9iW4;WSU$2F0-YDd(ZuG;@RDl`^V6H>uR6u2B{oH?<=#1?_2I-Wb|Q-30hDnMkpt@Hvz)6pa?Q)n3bo7c zfepy2udYi>3ic{&3zjPVDMR&9gmw-F!)i^3*AD0Tl`Oom`*8FJonIe+l>S5ahog_S z#fzmrc|&z@d?y!$;CAA}X`>X+s^vV}veQ@E-yVx4Uo?x4zF8M8RrqENHo#L`_$djr zeo9c~Vu4-BF;IjkeJB28^m@D0HFvT)g4oGHA=q8yklN`2=dVY_`X43l?min9ZI`*_ zOi;tp+6Bls?f|eUaw*#e*wU?8CC$69HlQ5V*%O!8KA7Rw$k+}MBDi@b#f`Z^Hlv@l1#eU9u*U8C4m?dO}6UKVNtw1PgXzQ6ro@_zr5&Aa6i&sXDR zp?Uo^ap`RhC>*aT8N(D36B@eGBkP8;f~zL;yeb#+T*}r9Y%BKiO)HM_4J*%cbgHj% zv}*3MG^!qRRBIk`R4S$U@(OUSq)fFy3~ZaeD$_4G`)X2nSZY3jQsI)nQ0bLB zTj`fIUKdCit`8#*(qQ;rW=v`~J36_&DIVP_NI(eN5D9`VWQ?!}6(#6Lg$o8yVJ*X` zQ2rEBiVDE^1e&li6;`tk5LtM@w}?Ott^Ip(iax@0fc zx@0U-T}jIg?)W9TbJ{Ay8Nb4CN?W5lrEN6Ylh$drq^$mu>0OT|DepQ z;N+X(tIIDsZ>~ORzq$XU`u^!xmG|-wlJ{yK@89Try(~1U*w3;~L8`o~7do_;ZqIvBxI8md2_ENQV!D)$lA@tjIo>k=r$)7%gjO`KzrOYv`GR}d$ zTlB?6FwpR709k_LW&+!+HL9*#e;VHUe9uBzlA5FN|x;=Za(ywUozr6F}OEX1b zS6^oxYHCf8KCKQd94}o1^|q8BSot<(U+aSy>0q6YOkHL?y-q%IBDTKka7IVtFXu)| zod2-?sX7-}{5JbwUE6-yv+|$|GZ*<6B!5j5Y%hD3lGffBUHJKL$?w$Vg~BamFMmsE zZHX!PQ0jJ`b4i&OR`x16wXHd_V5CHRUT|?PKT6(xH2r=<*x4BXy*;jsWF$1U#hw}} zb3I32p38}?>5P~5ReKh3t}JB7)OGI68K`tCawwk2j<0KvD;z9w`eV(-vD}2Z_L%%H z*Mu^!is6Lh?iR0n&filYaxb=U_=;1JTgjK?0}tE$vy631iLo6I0&>;z<(%lsNAU&y zB`z0S{`!=ebmvA$k-9{gz5T|67}>bo0RO}9*_+cZcRIWF>ie|h`wjkQEX6Zf`&#Zq z6wVbh`C-*hXRnni4aZeud@0I_k3Ztq!c4d!N^0I@PdbUfy zUgH+}mAy!kc9(hm)8X=H#-aPofqAB~nUwg4cLMSaWz!k^+HP(xQeRP=+S$+=T{wB! zP!L|zxhwlCBs%zd_x8;1HAZPz%af?w@oT#L@S2CQr$3$;9kAoIbrco z+VK~qk~8aTyW>twS1Etp*?U_o^=WysEnitYBRkku>vz^s{$}5?@fvkXT+a>3N#DlK zn3Kz;6UUEq*NOA}8y|;DnVOOPzkaRLq{ltJ?q29A?~Xq?_4m^8_~*BUX~B;=)@8Zh z=#I`)T^-F#eGaFv!kX>|opCJh+asI0I-8aFv`U!2<;LycGmi4!{ii01=W`D}sgaxv zxcw+NL)6?KnYmg!l5}jSlqrb2RUcF&DeaBVo|jK0A9-7Al14vh_AKzKeH2r;dgarx z^nqgY*_fv5!RN%~eeqd}ikYNC!;Sj1e{?rF%lw-p^R^(i_(ML)k0bLom;-A-Kx5xPch}65>md`FC9KG+@$?&=d*gpywDqW zgY(5TuVXUwbsyu>6g88HiNkf;wB6m!f{d+C+Fa88+aG&pdfa*zc*5a&Uu2HC^4)H! zqHH`V^;7ji+Tl0V+N`}@_59rEd$%Ono7(TYW%;)~T$i){=EIFL_r|UenYf`hT*|NS z-pmVlclWqeBk&()!5$Dh3ns9lUAGI3uaU8+t{4dYeRd}l{I5= zN7Q#ehbGbwUiqiGv_9LIvG(p$-*k`mF7GtoM_sN-{ym+dBO!widHW-VJ50N`eS4yb zj-2ma+#F?mIp!HB=^Jo8;MLRXdf2n~rE|R3yEk-rz~sP6NQC^af|utX{H?o}HqC+$TQsLf1`wHV1mD zMpxEtuzs79_=_f|==H9P6GnGW26%BF2gS5?!`h`WlefEi*5K$&>y|VwzLrsiN08;q zg3AVKR>60dXy&wH4{Bk7=jEcBV7xuG-?eMq&5Bil*nv@Lg)X#G$#Icr6&hy`%gl<{ zjk~Pl3LGe{%IqT1D0GswocTqE^`hw+M<04#EfN9KV%AtCBK0D|A&M@PV=%{&LbL1PjEldQ2iIqH`TPEMv3hUY+AG&;V7R;#&= zd^2M(3B(-bs?d#6swh_nwUXnE5Vyc!pauFB%9X#Y5;*hJ8p@F}Fo?8KT)m!l;wm*l zSMKsE{3(*Y*f0PM8dAQk~~zlN(d3%N+#0@6)e84K{)0DuCZD=-6D z&C?^IZ6uI4{1P4jJb;A)+H5fb6lw%)ngKio>HGoLnrTR0W%HUn>r{I^Mm95=%O_?qGJc|fMq z6tLYi56EMRLc*B~vWSu+r9{A23?T5pAc;i0z^XIR0;A3>L`a5yQ#FkArs8F*lZw6eK{Qx=Gp zLq$OY$T;%$20Tn)z_S$?Z)8+W5IOJ@jfBc2P&|QcNx?$>5~lz`GXdQW=s7fisapUj zw|Rt68}Mr^o@(b_5rspv4f^Exf`Ln04MvKBtwfAK)*s<~EL8&dvYQApgyF=vLC)X~ ztAp$o!j!Ydk_|*4KomkYlx6AIaolF;5}sACLE?ztkqhlaq|{z#pan#c<;NVd>TqGu zira^v-gds1H3X{3&dB4L22vw11}aJRAx&27vK5U`IAj+XK6||zG1kNa3=g_T3Y!EF zl(L_s)M1?1gy1q83={=hahwe{_zs?+H@F>OL9#tCBA@{;+)qdr!XNYrVN7(}GLE%| zGO#MXp-`9=!_9?cB9e#rs)W}FdrE@cpjgLPIrvJ038;^~zyNY%3n6*+;RwN`$=+id z6vtf+HbRTjF%I@Vu131pkYO;N%@~@BGl{!sxh=6MZwnXhGIELo4`<*D5Vk+=OfrpZ zPl9NZXxKCn%_L43IgEkLTM`!b?S$j_`hX#Ph(%`Wfj9{s5rBZ8r6fTZ1+WX9#UQ|+ z&BGsd+v7yMV1qy;?Q&!R@EJ6)IU*?r)$o7~9veICf(8;zR09uLpU4e1wi&iy6G^m; zUBuS4&0#}|TLdTmkU@8U^l>72VwWLqvMbt`feAPTL{S>spN(CHn9u64g^Kmzr`8{S z;RCWB-e9`f&|(s7%56hL9Xp7A+myouy#47ASq2B~R@?7T_s>aqM=p#nDbt^}v3-oT zeT-NFeVYx$OxA4>fpJpUsK|biiMAC`0lOCb@bA$>G5#RE2R0rw?5J S_eY5{(+?)YbDXgwj`KgJNPJlU diff --git a/sound/direct_sound_samples/cries/uncomp_klefki.aif b/sound/direct_sound_samples/cries/uncomp_klefki.aif new file mode 100644 index 0000000000000000000000000000000000000000..4ffa19b5759941c6bf7c21ad2698a8801bdb3382 GIT binary patch literal 25880 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 +I9QXQ7S}5(&w$I#4uG2?uHt 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 literal 0 HcmV?d00001 From 3a93e50a983bed3ad3161105f353f227bb428e4b Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Tue, 4 Jan 2022 20:47:32 -0300 Subject: [PATCH 85/95] Voltorb --- src/data/pokemon_graphics/enemy_mon_elevation.h | 1 - src/data/pokemon_graphics/front_pic_coordinates.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h index c0896e3feb..46f1414613 100644 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ b/src/data/pokemon_graphics/enemy_mon_elevation.h @@ -14,7 +14,6 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_MAGNETON] = 9, [SPECIES_GASTLY] = 10, [SPECIES_HAUNTER] = 11, - [SPECIES_VOLTORB] = 11, [SPECIES_ELECTRODE] = 12, [SPECIES_KOFFING] = 14, [SPECIES_WEEZING] = 6, diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index 62bb697257..e4dff6784f 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -507,7 +507,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_VOLTORB] = { .size = MON_COORDS_SIZE(32, 40), - .y_offset = 15, + .y_offset = 11, }, [SPECIES_ELECTRODE] = { From db9a59b67c1cb5e3f9d0e0076ec67eadd9494036 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Tue, 4 Jan 2022 22:13:22 -0300 Subject: [PATCH 86/95] More adjustments --- .../pokemon_graphics/enemy_mon_elevation.h | 38 +++++++++++++++++-- .../pokemon_graphics/front_pic_coordinates.h | 18 ++++----- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h index 46f1414613..fcc2e2bc44 100644 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ b/src/data/pokemon_graphics/enemy_mon_elevation.h @@ -14,7 +14,6 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_MAGNETON] = 9, [SPECIES_GASTLY] = 10, [SPECIES_HAUNTER] = 11, - [SPECIES_ELECTRODE] = 12, [SPECIES_KOFFING] = 14, [SPECIES_WEEZING] = 6, [SPECIES_AERODACTYL] = 9, @@ -30,6 +29,8 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_MISDREAVUS] = 12, [SPECIES_UNOWN] = 8, [SPECIES_GLIGAR] = 8, + [SPECIES_MANTINE] = 6, + [SPECIES_PORYGON2] = 9, [SPECIES_LUGIA] = 6, [SPECIES_HO_OH] = 6, [SPECIES_CELEBI] = 15, @@ -40,13 +41,12 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_WINGULL] = 15, [SPECIES_PELIPPER] = 8, [SPECIES_MASQUERAIN] = 10, - [SPECIES_BALTOY] = 1, + [SPECIES_BALTOY] = 5, [SPECIES_CLAYDOL] = 10, [SPECIES_FLYGON] = 7, [SPECIES_GLALIE] = 12, [SPECIES_LUNATONE] = 13, [SPECIES_SOLROCK] = 4, - [SPECIES_SWABLU] = 12, [SPECIES_ALTARIA] = 8, [SPECIES_DUSKULL] = 13, [SPECIES_SHUPPET] = 14, @@ -65,11 +65,14 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_DRIFLOON] = 5, [SPECIES_DRIFBLIM] = 7, [SPECIES_MISMAGIUS] = 3, + [SPECIES_CHINGLING] = 5, [SPECIES_BRONZONG] = 4, [SPECIES_MAGNEZONE] = 4, [SPECIES_TOGEKISS] = 14, [SPECIES_YANMEGA] = 6, - [SPECIES_GLISCOR] = 6, + [SPECIES_GLISCOR] = 9, + [SPECIES_PORYGON_Z] = 12, + [SPECIES_PROBOPASS] = 6, [SPECIES_ROTOM] = 10, [SPECIES_UXIE] = 6, [SPECIES_MESPRIT] = 6, @@ -127,6 +130,33 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = // Galarian Forms [SPECIES_WEEZING_GALARIAN] = 3, [SPECIES_YAMASK_GALARIAN] = 4, + [SPECIES_UNOWN_B] = 8, + [SPECIES_UNOWN_C] = 8, + [SPECIES_UNOWN_D] = 8, + [SPECIES_UNOWN_E] = 8, + [SPECIES_UNOWN_F] = 8, + [SPECIES_UNOWN_G] = 8, + [SPECIES_UNOWN_H] = 8, + [SPECIES_UNOWN_I] = 8, + [SPECIES_UNOWN_J] = 8, + [SPECIES_UNOWN_K] = 8, + [SPECIES_UNOWN_L] = 8, + [SPECIES_UNOWN_M] = 8, + [SPECIES_UNOWN_N] = 8, + [SPECIES_UNOWN_O] = 8, + [SPECIES_UNOWN_P] = 8, + [SPECIES_UNOWN_Q] = 8, + [SPECIES_UNOWN_R] = 8, + [SPECIES_UNOWN_S] = 8, + [SPECIES_UNOWN_T] = 8, + [SPECIES_UNOWN_U] = 8, + [SPECIES_UNOWN_V] = 8, + [SPECIES_UNOWN_W] = 8, + [SPECIES_UNOWN_X] = 8, + [SPECIES_UNOWN_Y] = 8, + [SPECIES_UNOWN_Z] = 8, + [SPECIES_UNOWN_QMARK] = 8, + [SPECIES_UNOWN_EMARK] = 8, // Misc Forms [SPECIES_GIRATINA_ORIGIN] = 7, [SPECIES_THUNDURUS_THERIAN] = 7, diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index e4dff6784f..22aa6f71aa 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -512,7 +512,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_ELECTRODE] = { .size = MON_COORDS_SIZE(48, 48), - .y_offset = 11, + .y_offset = 8, }, [SPECIES_EXEGGCUTE] = { @@ -1137,7 +1137,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_MANTINE] = { .size = MON_COORDS_SIZE(64, 56), - .y_offset = 10, + .y_offset = 9, }, [SPECIES_SKARMORY] = { @@ -1242,7 +1242,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_PUPITAR] = { .size = MON_COORDS_SIZE(40, 48), - .y_offset = 11, + .y_offset = 9, }, [SPECIES_TYRANITAR] = { @@ -1472,7 +1472,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_BALTOY] = { .size = MON_COORDS_SIZE(40, 40), - .y_offset = 14, + .y_offset = 11, }, [SPECIES_CLAYDOL] = { @@ -1497,7 +1497,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_BARBOACH] = { .size = MON_COORDS_SIZE(48, 40), - .y_offset = 15, + .y_offset = 11, }, [SPECIES_WHISCASH] = { @@ -1507,7 +1507,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_LUVDISC] = { .size = MON_COORDS_SIZE(32, 40), - .y_offset = 14, + .y_offset = 11, }, [SPECIES_CORPHISH] = { @@ -1672,7 +1672,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_SWABLU] = { .size = MON_COORDS_SIZE(48, 40), - .y_offset = 14, + .y_offset = 12, }, [SPECIES_ALTARIA] = { @@ -2172,7 +2172,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_CHINGLING] = { .size = MON_COORDS_SIZE(40, 40), - .y_offset = 15, + .y_offset = 12, }, [SPECIES_STUNKY] = { @@ -2392,7 +2392,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_DUSKNOIR] = { .size = MON_COORDS_SIZE(64, 64), - .y_offset = 4, + .y_offset = 2, }, [SPECIES_FROSLASS] = { From 813fc6d726840eb5868caa4b9680b302db9c95de Mon Sep 17 00:00:00 2001 From: TheXaman <48356183+TheXaman@users.noreply.github.com> Date: Wed, 5 Jan 2022 12:34:54 +0100 Subject: [PATCH 87/95] fixes: -const and offset data not beeing reset on form change -new offset values not beeing applied on normal/shiny change --- src/pokemon_debug.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index d43120e6a5..5223a31918 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -782,6 +782,13 @@ static void SetConstSpriteValues(struct PokemonDebugMenu *data) data->constSpriteValues.backPicCoords = gMonBackPicCoords[species].y_offset; } +static void ResetOffsetSpriteValues(struct PokemonDebugMenu *data) +{ + data->offsetsSpriteValues.offset_back_picCoords = 0; + data->offsetsSpriteValues.offset_front_picCoords = 0; + data->offsetsSpriteValues.offset_front_elevation = 0; +} + static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 offset_elevation) { u16 offset; @@ -1281,6 +1288,17 @@ static void ResetBGs_Debug_Menu(u16 a) } } +static void ApplyOffsetSpriteValues(struct PokemonDebugMenu *data) +{ + u16 species = data->currentmonId; + //Back + gSprites[data->backspriteId].y = DEBUG_MON_BACK_Y + gMonBackPicCoords[species].y_offset + data->offsetsSpriteValues.offset_back_picCoords; + //Front + gSprites[data->frontspriteId].y = GetBattlerSpriteFinal_YCustom(species, data->offsetsSpriteValues.offset_front_picCoords, data->offsetsSpriteValues.offset_front_elevation); + //Shadow if one was added + UpdateShadowSpriteInvisible(data); +} + static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) { struct PokemonDebugMenu *data = GetStructPtr(taskId); @@ -1355,6 +1373,7 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) data->animIdBack = GetSpeciesBackAnimSet(modArrows->currValue) + 1; data->animIdFront = sMonFrontAnimIdsTable[modArrows->currValue - 1]; UpdateMonAnimNames(taskId); + ResetOffsetSpriteValues(data); UpdateBattlerValue(data); ReloadPokemonSprites(data); @@ -1442,7 +1461,6 @@ static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment) UpdateYPosOffsetText(data); } - static void Handle_Input_Debug_Pokemon(u8 taskId) { struct PokemonDebugMenu *data = GetStructPtr(taskId); @@ -1454,7 +1472,6 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) PlayCryInternal(data->currentmonId, 0, 120, 10, 0); LaunchAnimationTaskForBackSprite(Backsprite, data->animIdBack-1); } - if (JOY_NEW(R_BUTTON) && (Frontsprite->callback == SpriteCallbackDummy)) { PlayCryInternal(data->currentmonId, 0, 120, 10, 0); @@ -1462,6 +1479,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) StartSpriteAnim(Frontsprite, 1); LaunchAnimationTaskForFrontSprite(Frontsprite, data->animIdFront); } + if (JOY_NEW(START_BUTTON)) { data->isShiny = !data->isShiny; @@ -1470,7 +1488,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) PlaySE(SE_SHINY); ReloadPokemonSprites(data); - + ApplyOffsetSpriteValues(data); } if (JOY_NEW(SELECT_BUTTON) && SpeciesHasGenderDifference[data->currentmonId]) { @@ -1488,7 +1506,6 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) { data->currentSubmenu = 1; SetArrowInvisibility(data); - SetConstSpriteValues(data); PrintInstructionsOnWindow(data); } else if (JOY_NEW(B_BUTTON)) @@ -1508,9 +1525,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; UpdateMonAnimNames(taskId); - data->offsetsSpriteValues.offset_back_picCoords = 0; - data->offsetsSpriteValues.offset_front_picCoords = 0; - data->offsetsSpriteValues.offset_front_elevation = 0; + ResetOffsetSpriteValues(data); } PlaySE(SE_DEX_SCROLL); while (!(gMain.intrCheck & INTR_FLAG_VBLANK)); @@ -1526,9 +1541,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; UpdateMonAnimNames(taskId); - data->offsetsSpriteValues.offset_back_picCoords = 0; - data->offsetsSpriteValues.offset_front_picCoords = 0; - data->offsetsSpriteValues.offset_front_elevation = 0; + ResetOffsetSpriteValues(data); } PlaySE(SE_DEX_SCROLL); @@ -1560,6 +1573,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) data->currentSubmenu = 2; PrintInstructionsOnWindow(data); SetArrowInvisibility(data); + SetConstSpriteValues(data); UpdateYPosOffsetText(data); } else if (JOY_NEW(B_BUTTON)) From 051ec7951d5de785102902082272ac29debded75 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 5 Jan 2022 22:26:14 -0300 Subject: [PATCH 88/95] Gen V and VI --- .../pokemon_graphics/enemy_mon_elevation.h | 49 ++++++++++++++++++- .../pokemon_graphics/front_pic_coordinates.h | 6 +-- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h index fcc2e2bc44..6971482d6b 100644 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ b/src/data/pokemon_graphics/enemy_mon_elevation.h @@ -80,6 +80,8 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_CRESSELIA] = 3, [SPECIES_DARKRAI] = 4, // Gen 5 + [SPECIES_MUNNA] = 7, + [SPECIES_MUSHARNA] = 5, [SPECIES_WOOBAT] = 19, [SPECIES_SWOOBAT] = 12, [SPECIES_PETILIL] = 7, @@ -88,21 +90,35 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_ARCHEOPS] = 8, [SPECIES_SOLOSIS] = 14, [SPECIES_DUOSION] = 7, - [SPECIES_REUNICLUS] = 3, + [SPECIES_REUNICLUS] = 8, [SPECIES_EMOLGA] = 19, [SPECIES_TYNAMO] = 16, [SPECIES_EELEKTRIK] = 8, [SPECIES_EELEKTROSS] = 8, + [SPECIES_CRYOGONAL] = 3, [SPECIES_BRAVIARY] = 8, [SPECIES_HYDREIGON] = 3, + [SPECIES_VOLCARONA] = 6, [SPECIES_TORNADUS] = 7, [SPECIES_THUNDURUS] = 7, [SPECIES_LANDORUS] = 7, + [SPECIES_MELOETTA] = 8, // Gen 6 [SPECIES_FLETCHINDER] = 9, [SPECIES_TALONFLAME] = 7, [SPECIES_VIVILLON] = 9, + [SPECIES_FLABEBE] = 6, + [SPECIES_FLOETTE] = 4, + [SPECIES_HONEDGE] = 4, + [SPECIES_DOUBLADE] = 5, + [SPECIES_AEGISLASH] = 3, + [SPECIES_SPRITZEE] = 14, + [SPECIES_INKAY] = 14, + [SPECIES_CARBINK] = 4, + [SPECIES_KLEFKI] = 5, + [SPECIES_PHANTUMP] = 5, [SPECIES_NOIBAT] = 8, + [SPECIES_YVELTAL] = 5, [SPECIES_HOOPA] = 13, // Gen 7 [SPECIES_VIKAVOLT] = 8, @@ -157,8 +173,37 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_UNOWN_Z] = 8, [SPECIES_UNOWN_QMARK] = 8, [SPECIES_UNOWN_EMARK] = 8, - // Misc Forms + // Forms [SPECIES_GIRATINA_ORIGIN] = 7, [SPECIES_THUNDURUS_THERIAN] = 7, + [SPECIES_VIVILLON_POLAR] = 9, + [SPECIES_VIVILLON_TUNDRA] = 9, + [SPECIES_VIVILLON_CONTINENTAL] = 9, + [SPECIES_VIVILLON_GARDEN] = 9, + [SPECIES_VIVILLON_ELEGANT] = 9, + [SPECIES_VIVILLON_MEADOW] = 9, + [SPECIES_VIVILLON_MODERN] = 9, + [SPECIES_VIVILLON_MARINE] = 9, + [SPECIES_VIVILLON_ARCHIPELAGO] = 9, + [SPECIES_VIVILLON_HIGH_PLAINS] = 9, + [SPECIES_VIVILLON_SANDSTORM] = 9, + [SPECIES_VIVILLON_RIVER] = 9, + [SPECIES_VIVILLON_MONSOON] = 9, + [SPECIES_VIVILLON_SAVANNA] = 9, + [SPECIES_VIVILLON_SUN] = 9, + [SPECIES_VIVILLON_OCEAN] = 9, + [SPECIES_VIVILLON_JUNGLE] = 9, + [SPECIES_VIVILLON_FANCY] = 9, + [SPECIES_VIVILLON_POKE_BALL] = 9, + [SPECIES_FLABEBE_YELLOW_FLOWER] = 6, + [SPECIES_FLABEBE_ORANGE_FLOWER] = 6, + [SPECIES_FLABEBE_BLUE_FLOWER] = 6, + [SPECIES_FLABEBE_WHITE_FLOWER] = 6, + [SPECIES_FLOETTE_YELLOW_FLOWER] = 4, + [SPECIES_FLOETTE_ORANGE_FLOWER] = 4, + [SPECIES_FLOETTE_BLUE_FLOWER] = 4, + [SPECIES_FLOETTE_WHITE_FLOWER] = 4, + [SPECIES_FLOETTE_ETERNAL_FLOWER] = 4, + [SPECIES_AEGISLASH_BLADE] = 3, [SPECIES_ETERNATUS_ETERNAMAX] = 4, }; diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index 22aa6f71aa..f0ea8d81a3 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -2452,12 +2452,12 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_PHIONE] = { .size = MON_COORDS_SIZE(56, 40), - .y_offset = 12, + .y_offset = 8, }, [SPECIES_MANAPHY] = { .size = MON_COORDS_SIZE(64, 40), - .y_offset = 13, + .y_offset = 10, }, [SPECIES_DARKRAI] = { @@ -2592,7 +2592,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_MUNNA] = { .size = MON_COORDS_SIZE(32, 32), - .y_offset = 16, + .y_offset = 14, }, [SPECIES_MUSHARNA] = { From fa2657bb614c4de51407a708db20a364484fe609 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Fri, 7 Jan 2022 21:36:50 -0300 Subject: [PATCH 89/95] Gen VII --- .../pokemon_graphics/enemy_mon_elevation.h | 30 +++++++++++++++++++ .../pokemon_graphics/front_pic_coordinates.h | 16 +++++----- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h index 6971482d6b..7204ab40d4 100644 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ b/src/data/pokemon_graphics/enemy_mon_elevation.h @@ -123,7 +123,22 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = // Gen 7 [SPECIES_VIKAVOLT] = 8, [SPECIES_CUTIEFLY] = 10, + [SPECIES_RIBOMBEE] = 6, + [SPECIES_COMFEY] = 8, [SPECIES_MINIOR] = 17, + [SPECIES_DHELMISE] = 2, + [SPECIES_TAPU_KOKO] = 9, + [SPECIES_TAPU_LELE] = 8, + [SPECIES_TAPU_BULU] = 5, + [SPECIES_TAPU_FINI] = 6, + [SPECIES_COSMOG] = 7, + [SPECIES_COSMOEM] = 3, + [SPECIES_LUNALA] = 6, + [SPECIES_NIHILEGO] = 6, + [SPECIES_KARTANA] = 3, + [SPECIES_NECROZMA] = 6, + [SPECIES_POIPOLE] = 9, + [SPECIES_NAGANADEL] = 7, // Gen 8 [SPECIES_CORVISQUIRE] = 6, [SPECIES_DRAGAPULT] = 3, @@ -205,5 +220,20 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_FLOETTE_WHITE_FLOWER] = 4, [SPECIES_FLOETTE_ETERNAL_FLOWER] = 4, [SPECIES_AEGISLASH_BLADE] = 3, + [SPECIES_MINIOR_METEOR_ORANGE] = 17, + [SPECIES_MINIOR_METEOR_YELLOW] = 17, + [SPECIES_MINIOR_METEOR_GREEN] = 17, + [SPECIES_MINIOR_METEOR_BLUE] = 17, + [SPECIES_MINIOR_METEOR_INDIGO] = 17, + [SPECIES_MINIOR_METEOR_VIOLET] = 17, + [SPECIES_MINIOR_CORE_RED] = 17, + [SPECIES_MINIOR_CORE_ORANGE] = 17, + [SPECIES_MINIOR_CORE_YELLOW] = 17, + [SPECIES_MINIOR_CORE_GREEN] = 17, + [SPECIES_MINIOR_CORE_BLUE] = 17, + [SPECIES_MINIOR_CORE_INDIGO] = 17, + [SPECIES_MINIOR_CORE_VIOLET] = 17, + [SPECIES_NECROZMA_DAWN_WINGS] = 6, + [SPECIES_NECROZMA_ULTRA] = 5, [SPECIES_ETERNATUS_ETERNAMAX] = 4, }; diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index f0ea8d81a3..09c37cec6a 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -3737,7 +3737,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_WISHIWASHI] = { .size = MON_COORDS_SIZE(40, 24), - .y_offset = 20, + .y_offset = 15, }, [SPECIES_MAREANIE] = { @@ -5915,37 +5915,37 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_MINIOR_CORE_RED] = { .size = MON_COORDS_SIZE(48, 40), - .y_offset = 16, + .y_offset = 14, }, [SPECIES_MINIOR_CORE_ORANGE] = { .size = MON_COORDS_SIZE(48, 40), - .y_offset = 16, + .y_offset = 14, }, [SPECIES_MINIOR_CORE_YELLOW] = { .size = MON_COORDS_SIZE(48, 40), - .y_offset = 16, + .y_offset = 14, }, [SPECIES_MINIOR_CORE_GREEN] = { .size = MON_COORDS_SIZE(48, 40), - .y_offset = 16, + .y_offset = 14, }, [SPECIES_MINIOR_CORE_BLUE] = { .size = MON_COORDS_SIZE(48, 40), - .y_offset = 16, + .y_offset = 14, }, [SPECIES_MINIOR_CORE_INDIGO] = { .size = MON_COORDS_SIZE(48, 40), - .y_offset = 16, + .y_offset = 14, }, [SPECIES_MINIOR_CORE_VIOLET] = { .size = MON_COORDS_SIZE(48, 40), - .y_offset = 16, + .y_offset = 14, }, // Mimikyu [SPECIES_MIMIKYU_BUSTED] = From 787b9a040243852c46b1d4419af299ba2d2925c5 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sat, 8 Jan 2022 18:24:21 -0300 Subject: [PATCH 90/95] Gen VIII and missing forms --- .../pokemon_graphics/enemy_mon_elevation.h | 61 +++++++++++++------ .../pokemon_graphics/front_pic_coordinates.h | 4 +- 2 files changed, 46 insertions(+), 19 deletions(-) diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h index 7204ab40d4..59da792ab1 100644 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ b/src/data/pokemon_graphics/enemy_mon_elevation.h @@ -140,27 +140,44 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_POIPOLE] = 9, [SPECIES_NAGANADEL] = 7, // Gen 8 - [SPECIES_CORVISQUIRE] = 6, + [SPECIES_CORVISQUIRE] = 10, + [SPECIES_ORBEETLE] = 8, + [SPECIES_FLAPPLE] = 9, + [SPECIES_SINISTEA] = 9, + [SPECIES_POLTEAGEIST] = 11, + [SPECIES_RUNERIGUS] = 5, + [SPECIES_MILCERY] = 10, + [SPECIES_FROSMOTH] = 7, + [SPECIES_DREEPY] = 5, + [SPECIES_DRAKLOAK] = 5, [SPECIES_DRAGAPULT] = 3, - [SPECIES_FROSMOTH] = 3, + [SPECIES_ETERNATUS] = 4, + [SPECIES_REGIELEKI] = 8, + [SPECIES_REGIDRAGO] = 5, // Megas + [SPECIES_BEEDRILL_MEGA] = 5, + [SPECIES_PIDGEOT_MEGA] = 8, + [SPECIES_ALAKAZAM_MEGA] = 7, + [SPECIES_PINSIR_MEGA] = 4, + [SPECIES_GYARADOS_MEGA] = 6, + [SPECIES_AERODACTYL_MEGA] = 7, + [SPECIES_MEWTWO_MEGA_Y] = 3, + [SPECIES_SHARPEDO_MEGA] = 1, + [SPECIES_ALTARIA_MEGA] = 6, + [SPECIES_BANETTE_MEGA] = 5, + [SPECIES_GLALIE_MEGA] = 8, + [SPECIES_METAGROSS_MEGA] = 4, [SPECIES_LATIAS_MEGA] = 8, [SPECIES_LATIOS_MEGA] = 8, - [SPECIES_METAGROSS_MEGA] = 4, - [SPECIES_GLALIE_MEGA] = 8, - [SPECIES_ALTARIA_MEGA] = 6, - [SPECIES_SHARPEDO_MEGA] = 1, - [SPECIES_PIDGEOT_MEGA] = 8, - [SPECIES_BEEDRILL_MEGA] = 5, - [SPECIES_BANETTE_MEGA] = 5, - [SPECIES_MEWTWO_MEGA_Y] = 3, - [SPECIES_AERODACTYL_MEGA] = 3, - [SPECIES_GYARADOS_MEGA] = 6, - [SPECIES_PINSIR_MEGA] = 4, - [SPECIES_ALAKAZAM_MEGA] = 7, + [SPECIES_RAYQUAZA_MEGA] = 4, + // Alolan Forms + [SPECIES_RAICHU_ALOLAN] = 4, + [SPECIES_GEODUDE_ALOLAN] = 16, // Galarian Forms - [SPECIES_WEEZING_GALARIAN] = 3, + [SPECIES_WEEZING_GALARIAN] = 6, + [SPECIES_ARTICUNO_GALARIAN] = 10, [SPECIES_YAMASK_GALARIAN] = 4, + // Other Forms [SPECIES_UNOWN_B] = 8, [SPECIES_UNOWN_C] = 8, [SPECIES_UNOWN_D] = 8, @@ -188,9 +205,17 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_UNOWN_Z] = 8, [SPECIES_UNOWN_QMARK] = 8, [SPECIES_UNOWN_EMARK] = 8, - // Forms + [SPECIES_CASTFORM_SUNNY] = 5, + [SPECIES_CASTFORM_RAINY] = 5, + [SPECIES_CASTFORM_SNOWY] = 5, + [SPECIES_ROTOM_HEAT] = 6, + [SPECIES_ROTOM_WASH] = 6, + [SPECIES_ROTOM_FROST] = 6, + [SPECIES_ROTOM_FAN] = 6, + [SPECIES_ROTOM_MOW] = 6, [SPECIES_GIRATINA_ORIGIN] = 7, [SPECIES_THUNDURUS_THERIAN] = 7, + [SPECIES_MELOETTA_PIROUETTE] = 5, [SPECIES_VIVILLON_POLAR] = 9, [SPECIES_VIVILLON_TUNDRA] = 9, [SPECIES_VIVILLON_CONTINENTAL] = 9, @@ -235,5 +260,7 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_MINIOR_CORE_VIOLET] = 17, [SPECIES_NECROZMA_DAWN_WINGS] = 6, [SPECIES_NECROZMA_ULTRA] = 5, - [SPECIES_ETERNATUS_ETERNAMAX] = 4, + [SPECIES_SINISTEA_ANTIQUE] = 10, + [SPECIES_POLTEAGEIST_ANTIQUE] = 12, + [SPECIES_ETERNATUS_ETERNAMAX] = 13, }; diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index 09c37cec6a..02a0e06135 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -4237,7 +4237,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_ARROKUDA] = { .size = MON_COORDS_SIZE(56, 32), - .y_offset = 17, + .y_offset = 13, }, [SPECIES_BARRASKEWDA] = { @@ -5249,7 +5249,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_ROTOM_MOW] = { .size = MON_COORDS_SIZE(56, 64), - .y_offset = 3, + .y_offset = 12, }, // Giratina [SPECIES_GIRATINA_ORIGIN] = From 241aea9dfd0315a234db5aa32f0487d497c612d2 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sat, 8 Jan 2022 19:58:01 -0300 Subject: [PATCH 91/95] Missing actually adding Hoopa Unbound --- src/data/pokemon_graphics/enemy_mon_elevation.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h index 59da792ab1..84a5ea9fac 100644 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ b/src/data/pokemon_graphics/enemy_mon_elevation.h @@ -245,6 +245,7 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [SPECIES_FLOETTE_WHITE_FLOWER] = 4, [SPECIES_FLOETTE_ETERNAL_FLOWER] = 4, [SPECIES_AEGISLASH_BLADE] = 3, + [SPECIES_HOOPA_UNBOUND] = 3, [SPECIES_MINIOR_METEOR_ORANGE] = 17, [SPECIES_MINIOR_METEOR_YELLOW] = 17, [SPECIES_MINIOR_METEOR_GREEN] = 17, From 8d0548f73219b26fc6101bf222ade2b24d0cad39 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sat, 8 Jan 2022 20:26:16 -0300 Subject: [PATCH 92/95] Fixed Wormadam sprite. Credit to Jaizu --- graphics/pokemon/wormadam/icon.png | Bin 419 -> 374 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/pokemon/wormadam/icon.png b/graphics/pokemon/wormadam/icon.png index 7aa1d61d8bbd70c6bb8e1acf6f2528b9a62ccdc1..eb622fca237ba80cb52986b29f1014a02c3397a2 100644 GIT binary patch delta 301 zcmV+|0n+}X1NH)t7#0Wv0000?P=%ZT0004VQb$4nuFf3kks&^R0Q5;jK~zYI?Uc<9 z!Y~YjSDIYo_kUZQc1SEuTOl|BowmdL&H0h$8sBeI>tUz(<0JtjDEd^jE z0`PVNBy}Jialp9*5HX*jAl02{awD=5>;ko%L@O3`W%VwXv!9@=l;+?Mb`c2z^)$Hk z8Wt_8bb=008wp5%6|_Y_RMlq~{HPJ}h)R{Aap(JgoAg$HO!~JRU?g`60{vXvBx}BQPO9hQBA~ zhgtaj#{3|2jfZP~jE#o;&~efsKaxSeIzR5LQ4;0!p|c(g00000NkvXXu0mjfwr7Zd delta 346 zcmV-g0j2)-0;2zQoC-$Fbvcm5JdJ0{R9Kf z+M+PCnnSF$`FYK@)lh3#rtm}Z(y`@ao{!{-Jm>y4^qBiPhjaw|T<3GePzA=R_&t(R znqi+KhNM||2WU#Dw6_ILh+g*+m>NWU(1zq>jAWgbA_yN1p3qa|6?nH6uRiwcoO^$l zjFCr*OO3R`D&Z#m+C(IWYZzEpDWD;=ZNE!(`5d}fNOjN=ak)fjiR%ps)wzS?(*JQB zrNVFiP%K|-->KTpG%J)0h%D))1bPzoZo9z~VD(TeQKF(R4CF-39=eyf$K3!Qx5L2A zTkd Date: Sun, 13 Feb 2022 01:56:40 -0300 Subject: [PATCH 93/95] =?UTF-8?q?Fixed=20Pok=C3=A9dex=20entry=20upon=20cat?= =?UTF-8?q?ch=20not=20properly=20handling=20gender=20differences?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pokedex.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pokedex.c b/src/pokedex.c index 162afb3c11..5764f300bf 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -3989,7 +3989,10 @@ static void Task_DisplayCaughtMonDexPage(u8 taskId) gTasks[taskId].tState++; break; case 4: - spriteId = CreateMonSpriteFromNationalDexNumber(dexNum, MON_PAGE_X, MON_PAGE_Y, 0); + if ((gBaseStats[dexNum].flags & FLAG_GENDER_DIFFERENCE)) + spriteId = CreateMonPicSprite(dexNum, 0, ((u16)gTasks[taskId].tPersonalityHi << 16) | (u16)gTasks[taskId].tPersonalityLo, TRUE, MON_PAGE_X, MON_PAGE_Y, 0, TAG_NONE); + else + spriteId = CreateMonSpriteFromNationalDexNumber(dexNum, MON_PAGE_X, MON_PAGE_Y, 0); gSprites[spriteId].oam.priority = 0; BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(gPokedexVBlankCB); From 8f34249ab23bb38412c3b239e231581f05634ebf Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sun, 13 Mar 2022 11:25:37 -0300 Subject: [PATCH 94/95] Update include/constants/pokedex.h --- include/constants/pokedex.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h index a0966a92de..4b821c68da 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -818,6 +818,7 @@ enum { NATIONAL_DEX_STAKATAKA, NATIONAL_DEX_BLACEPHALON, NATIONAL_DEX_ZERAORA, + // Unknown NATIONAL_DEX_MELTAN, NATIONAL_DEX_MELMETAL, // Galar From ff9556cb44f37f32881e15e0322bda5ba1dfd803 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sun, 13 Mar 2022 11:25:44 -0300 Subject: [PATCH 95/95] Update include/constants/pokedex.h --- include/constants/pokedex.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h index 4b821c68da..8f40f9a7be 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -915,7 +915,7 @@ enum { #define KANTO_DEX_COUNT NATIONAL_DEX_MEW #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI -#define NATIONAL_DEX_COUNT NATIONAL_DEX_CALYREX +#define NATIONAL_DEX_COUNT NATIONAL_DEX_CALYREX #define POKEMON_SLOTS_NUMBER (NATIONAL_DEX_COUNT + 1) // Hoenn Pokedex order