From 5fa8ca55b07dd5e5fb0f8cdbc111c36087eade3f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 17 May 2022 17:12:45 -0400 Subject: [PATCH 001/125] Clean up some additional unknowns --- data/battle_ai_scripts.s | 9 ++++++--- graphics_file_rules.mk | 3 --- src/item.c | 6 ------ 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index d856b926a..c211c4dd2 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -1099,15 +1099,18 @@ AI_CV_AttackDown3: score -2 AI_CV_AttackDown4: get_target_type1 - if_in_bytes AI_CV_AttackDown_UnknownTypeList, AI_CV_AttackDown_End + if_in_bytes AI_CV_AttackDown_PhysicalTypeList, AI_CV_AttackDown_End get_target_type2 - if_in_bytes AI_CV_AttackDown_UnknownTypeList, AI_CV_AttackDown_End + if_in_bytes AI_CV_AttackDown_PhysicalTypeList, AI_CV_AttackDown_End if_random_less_than 50, AI_CV_AttackDown_End score -2 AI_CV_AttackDown_End: end -AI_CV_AttackDown_UnknownTypeList: +@ If the target is not of any type in this list then using the move may be discouraged. +@ It seems likely this was meant to be "discourage reducing the target's attack if they're +@ not a physical type", but they've left out Flying, Poison, and Ghost. +AI_CV_AttackDown_PhysicalTypeList: .byte TYPE_NORMAL .byte TYPE_FIGHTING .byte TYPE_GROUND diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 9e5c19193..704943126 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -665,9 +665,6 @@ $(WALLPAPERGFXDIR)/ludicolo/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $ $(WALLPAPERGFXDIR)/whiscash/tiles.4bpp: $(WALLPAPERGFXDIR)/friends_frame2.4bpp $(WALLPAPERGFXDIR)/whiscash/bg.4bpp @cat $^ >$@ -$(OBJEVENTGFXDIR)/pics/effects/unknown_4F6D38/0.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 11 - $(INTERFACEGFXDIR)/selector_outline.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 8 diff --git a/src/item.c b/src/item.c index 63287693a..8d0f45fed 100644 --- a/src/item.c +++ b/src/item.c @@ -15,20 +15,14 @@ #include "constants/items.h" #include "constants/hold_effects.h" -extern u16 gUnknown_0203CF30[]; - -// this file's functions static bool8 CheckPyramidBagHasItem(u16 itemId, u16 count); static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count); -// EWRAM variables EWRAM_DATA struct BagPocket gBagPockets[POCKETS_COUNT] = {0}; -// rodata #include "data/text/item_descriptions.h" #include "data/items.h" -// code static u16 GetBagItemQuantity(u16 *quantity) { return gSaveBlock2Ptr->encryptionKey ^ *quantity; From f254df9a1a09163e4408470032220526dcbc0b98 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 11:28:27 -0400 Subject: [PATCH 002/125] Use window constants in berry_tag_screen --- src/berry_tag_screen.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index f683c73f4..41fb8afba 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -102,7 +102,7 @@ static const u8 sTextColors[2][3] = static const struct WindowTemplate sWindowTemplates[] = { - { // WIN_BERRY_NAME + [WIN_BERRY_NAME] = { .bg = 1, .tilemapLeft = 11, .tilemapTop = 4, @@ -111,7 +111,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 15, .baseBlock = 69, }, - { // WIN_SIZE_FIRM + [WIN_SIZE_FIRM] = { .bg = 1, .tilemapLeft = 11, .tilemapTop = 7, @@ -120,7 +120,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 15, .baseBlock = 85, }, - { // WIN_DESC + [WIN_DESC] = { .bg = 1, .tilemapLeft = 4, .tilemapTop = 14, @@ -129,7 +129,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 15, .baseBlock = 157, }, - { // WIN_BERRY_TAG + [WIN_BERRY_TAG] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 0, From 16be1e8447d3e3cdb66cd6fdf83b428204ffeb50 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 11:57:30 -0400 Subject: [PATCH 003/125] Use window constants for move relearner --- include/menu_specialized.h | 13 +++++- src/menu_specialized.c | 93 +++++++++++++++++++------------------- src/move_relearner.c | 60 ++++++++---------------- 3 files changed, 76 insertions(+), 90 deletions(-) diff --git a/include/menu_specialized.h b/include/menu_specialized.h index 10a211046..06a188b8a 100644 --- a/include/menu_specialized.h +++ b/include/menu_specialized.h @@ -15,6 +15,15 @@ enum { MAILBOXWIN_COUNT }; +// Window IDs for the move relearner +enum { + RELEARNERWIN_DESC_BATTLE, + RELEARNERWIN_DESC_CONTEST, + RELEARNERWIN_MOVE_LIST, + RELEARNERWIN_MSG, + RELEARNERWIN_YESNO, +}; + enum { TAG_CONDITION_MON = 100, TAG_CONDITION_BALL, @@ -117,11 +126,11 @@ void DestroyConditionSparkleSprites(struct Sprite **sprites); void FreeConditionSparkles(struct Sprite **sprites); // Move relearner -void MoveRelearnerPrintText(u8 *str); +void MoveRelearnerPrintMessage(u8 *str); bool16 MoveRelearnerRunTextPrinters(void); void MoveRelearnerCreateYesNoMenu(void); u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices); -void InitMoveRelearnerWindows(bool8 useContextWindow); +void InitMoveRelearnerWindows(bool8 useContestWindow); // Level up window void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr); diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 42c80b5ee..717190700 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -105,10 +105,9 @@ static const u8 sConditionToLineLength[MAX_CONDITION + 1] = 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35 }; - static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = { - { + [RELEARNERWIN_DESC_BATTLE] = { .bg = 1, .tilemapLeft = 1, .tilemapTop = 1, @@ -117,7 +116,7 @@ static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0xA }, - { + [RELEARNERWIN_DESC_CONTEST] = { .bg = 1, .tilemapLeft = 1, .tilemapTop = 1, @@ -126,7 +125,7 @@ static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0xCA }, - { + [RELEARNERWIN_MOVE_LIST] = { .bg = 1, .tilemapLeft = 19, .tilemapTop = 1, @@ -135,7 +134,7 @@ static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x18A }, - { + [RELEARNERWIN_MSG] = { .bg = 1, .tilemapLeft = 4, .tilemapTop = 15, @@ -144,7 +143,8 @@ static const struct WindowTemplate sMoveRelearnerWindowTemplates[] = .paletteNum = 0xF, .baseBlock = 0x202 }, - { + // Unused. Identical to sMoveRelearnerYesNoMenuTemplate + [RELEARNERWIN_YESNO] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 8, @@ -175,7 +175,7 @@ static const struct ListMenuTemplate sMoveRelearnerMovesListTemplate = .itemPrintFunc = NULL, .totalItems = 0, .maxShowed = 0, - .windowId = 2, + .windowId = RELEARNERWIN_MOVE_LIST, .header_X = 0, .item_X = 8, .cursor_X = 0, @@ -701,7 +701,7 @@ void ConditionGraph_CalcPositions(u8 *conditions, struct UCoords16 *positions) // Move relearner //---------------- -void InitMoveRelearnerWindows(bool8 useContextWindow) +void InitMoveRelearnerWindows(bool8 useContestWindow) { u8 i; @@ -713,20 +713,20 @@ void InitMoveRelearnerWindows(bool8 useContextWindow) for (i = 0; i < ARRAY_COUNT(sMoveRelearnerWindowTemplates) - 1; i++) FillWindowPixelBuffer(i, PIXEL_FILL(1)); - if (!useContextWindow) + if (!useContestWindow) { - PutWindowTilemap(0); - DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x1, 0xE); + PutWindowTilemap(RELEARNERWIN_DESC_BATTLE); + DrawStdFrameWithCustomTileAndPalette(RELEARNERWIN_DESC_BATTLE, FALSE, 0x1, 0xE); } else { - PutWindowTilemap(1); - DrawStdFrameWithCustomTileAndPalette(1, FALSE, 1, 0xE); + PutWindowTilemap(RELEARNERWIN_DESC_CONTEST); + DrawStdFrameWithCustomTileAndPalette(RELEARNERWIN_DESC_CONTEST, FALSE, 1, 0xE); } - PutWindowTilemap(2); - PutWindowTilemap(3); - DrawStdFrameWithCustomTileAndPalette(2, FALSE, 1, 0xE); - DrawStdFrameWithCustomTileAndPalette(3, FALSE, 1, 0xE); + PutWindowTilemap(RELEARNERWIN_MOVE_LIST); + PutWindowTilemap(RELEARNERWIN_MSG); + DrawStdFrameWithCustomTileAndPalette(RELEARNERWIN_MOVE_LIST, FALSE, 1, 0xE); + DrawStdFrameWithCustomTileAndPalette(RELEARNERWIN_MSG, FALSE, 1, 0xE); MoveRelearnerDummy(); ScheduleBgCopyTilemapToVram(1); } @@ -757,33 +757,34 @@ static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) u8 buffer[32]; const u8 *str; - FillWindowPixelBuffer(0, PIXEL_FILL(1)); + FillWindowPixelBuffer(RELEARNERWIN_DESC_BATTLE, PIXEL_FILL(1)); str = gText_MoveRelearnerBattleMoves; - x = GetStringCenterAlignXOffset(FONT_NORMAL, str, 0x80); - AddTextPrinterParameterized(0, FONT_NORMAL, str, x, 1, TEXT_SKIP_DRAW, NULL); + x = GetStringCenterAlignXOffset(FONT_NORMAL, str, 128); + AddTextPrinterParameterized(RELEARNERWIN_DESC_BATTLE, FONT_NORMAL, str, x, 1, TEXT_SKIP_DRAW, NULL); str = gText_MoveRelearnerPP; - AddTextPrinterParameterized(0, FONT_NORMAL, str, 4, 0x29, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(RELEARNERWIN_DESC_BATTLE, FONT_NORMAL, str, 4, 41, TEXT_SKIP_DRAW, NULL); str = gText_MoveRelearnerPower; - x = GetStringRightAlignXOffset(FONT_NORMAL, str, 0x6A); - AddTextPrinterParameterized(0, FONT_NORMAL, str, x, 0x19, TEXT_SKIP_DRAW, NULL); + x = GetStringRightAlignXOffset(FONT_NORMAL, str, 106); + AddTextPrinterParameterized(RELEARNERWIN_DESC_BATTLE, FONT_NORMAL, str, x, 25, TEXT_SKIP_DRAW, NULL); str = gText_MoveRelearnerAccuracy; - x = GetStringRightAlignXOffset(FONT_NORMAL, str, 0x6A); - AddTextPrinterParameterized(0, FONT_NORMAL, str, x, 0x29, TEXT_SKIP_DRAW, NULL); + x = GetStringRightAlignXOffset(FONT_NORMAL, str, 106); + AddTextPrinterParameterized(RELEARNERWIN_DESC_BATTLE, FONT_NORMAL, str, x, 41, TEXT_SKIP_DRAW, NULL); if (chosenMove == LIST_CANCEL) { - CopyWindowToVram(0, COPYWIN_GFX); + // On "Cancel", skip printing move data + CopyWindowToVram(RELEARNERWIN_DESC_BATTLE, COPYWIN_GFX); return; } move = &gBattleMoves[chosenMove]; str = gTypeNames[move->type]; - AddTextPrinterParameterized(0, FONT_NORMAL, str, 4, 0x19, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(RELEARNERWIN_DESC_BATTLE, FONT_NORMAL, str, 4, 25, TEXT_SKIP_DRAW, NULL); x = 4 + GetStringWidth(FONT_NORMAL, gText_MoveRelearnerPP, 0); ConvertIntToDecimalStringN(buffer, move->pp, STR_CONV_MODE_LEFT_ALIGN, 2); - AddTextPrinterParameterized(0, FONT_NORMAL, buffer, x, 0x29, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(RELEARNERWIN_DESC_BATTLE, FONT_NORMAL, buffer, x, 41, TEXT_SKIP_DRAW, NULL); if (move->power < 2) { @@ -794,7 +795,7 @@ static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) ConvertIntToDecimalStringN(buffer, move->power, STR_CONV_MODE_LEFT_ALIGN, 3); str = buffer; } - AddTextPrinterParameterized(0, FONT_NORMAL, str, 0x6A, 0x19, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(RELEARNERWIN_DESC_BATTLE, FONT_NORMAL, str, 106, 25, TEXT_SKIP_DRAW, NULL); if (move->accuracy == 0) { @@ -805,10 +806,10 @@ static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) ConvertIntToDecimalStringN(buffer, move->accuracy, STR_CONV_MODE_LEFT_ALIGN, 3); str = buffer; } - AddTextPrinterParameterized(0, FONT_NORMAL, str, 0x6A, 0x29, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(RELEARNERWIN_DESC_BATTLE, FONT_NORMAL, str, 106, 41, TEXT_SKIP_DRAW, NULL); str = gMoveDescriptionPointers[chosenMove - 1]; - AddTextPrinterParameterized(0, FONT_NARROW, str, 0, 0x41, 0, NULL); + AddTextPrinterParameterized(RELEARNERWIN_DESC_BATTLE, FONT_NARROW, str, 0, 65, 0, NULL); } static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) @@ -818,33 +819,33 @@ static void MoveRelearnerMenuLoadContestMoveDescription(u32 chosenMove) const struct ContestMove *move; MoveRelearnerShowHideHearts(chosenMove); - FillWindowPixelBuffer(1, PIXEL_FILL(1)); + FillWindowPixelBuffer(RELEARNERWIN_DESC_CONTEST, PIXEL_FILL(1)); str = gText_MoveRelearnerContestMovesTitle; - x = GetStringCenterAlignXOffset(FONT_NORMAL, str, 0x80); - AddTextPrinterParameterized(1, FONT_NORMAL, str, x, 1, TEXT_SKIP_DRAW, NULL); + x = GetStringCenterAlignXOffset(FONT_NORMAL, str, 128); + AddTextPrinterParameterized(RELEARNERWIN_DESC_CONTEST, FONT_NORMAL, str, x, 1, TEXT_SKIP_DRAW, NULL); str = gText_MoveRelearnerAppeal; - x = GetStringRightAlignXOffset(FONT_NORMAL, str, 0x5C); - AddTextPrinterParameterized(1, FONT_NORMAL, str, x, 0x19, TEXT_SKIP_DRAW, NULL); + x = GetStringRightAlignXOffset(FONT_NORMAL, str, 92); + AddTextPrinterParameterized(RELEARNERWIN_DESC_CONTEST, FONT_NORMAL, str, x, 25, TEXT_SKIP_DRAW, NULL); str = gText_MoveRelearnerJam; - x = GetStringRightAlignXOffset(FONT_NORMAL, str, 0x5C); - AddTextPrinterParameterized(1, FONT_NORMAL, str, x, 0x29, TEXT_SKIP_DRAW, NULL); + x = GetStringRightAlignXOffset(FONT_NORMAL, str, 92); + AddTextPrinterParameterized(RELEARNERWIN_DESC_CONTEST, FONT_NORMAL, str, x, 41, TEXT_SKIP_DRAW, NULL); if (chosenMove == MENU_NOTHING_CHOSEN) { - CopyWindowToVram(1, COPYWIN_GFX); + CopyWindowToVram(RELEARNERWIN_DESC_CONTEST, COPYWIN_GFX); return; } move = &gContestMoves[chosenMove]; str = gContestMoveTypeTextPointers[move->contestCategory]; - AddTextPrinterParameterized(1, FONT_NORMAL, str, 4, 0x19, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(RELEARNERWIN_DESC_CONTEST, FONT_NORMAL, str, 4, 25, TEXT_SKIP_DRAW, NULL); str = gContestEffectDescriptionPointers[move->effect]; - AddTextPrinterParameterized(1, FONT_NARROW, str, 0, 0x41, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(RELEARNERWIN_DESC_CONTEST, FONT_NARROW, str, 0, 65, TEXT_SKIP_DRAW, NULL); - CopyWindowToVram(1, COPYWIN_GFX); + CopyWindowToVram(RELEARNERWIN_DESC_CONTEST, COPYWIN_GFX); } static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct ListMenu *list) @@ -855,20 +856,20 @@ static void MoveRelearnerCursorCallback(s32 itemIndex, bool8 onInit, struct List MoveRelearnerMenuLoadContestMoveDescription(itemIndex); } -void MoveRelearnerPrintText(u8 *str) +void MoveRelearnerPrintMessage(u8 *str) { u8 speed; - FillWindowPixelBuffer(3, PIXEL_FILL(1)); + FillWindowPixelBuffer(RELEARNERWIN_MSG, PIXEL_FILL(1)); gTextFlags.canABSpeedUpPrint = TRUE; speed = GetPlayerTextSpeedDelay(); - AddTextPrinterParameterized2(3, FONT_NORMAL, str, speed, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, 3); + AddTextPrinterParameterized2(RELEARNERWIN_MSG, FONT_NORMAL, str, speed, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, 3); } bool16 MoveRelearnerRunTextPrinters(void) { RunTextPrinters(); - return IsTextPrinterActive(3); + return IsTextPrinterActive(RELEARNERWIN_MSG); } void MoveRelearnerCreateYesNoMenu(void) diff --git a/src/move_relearner.c b/src/move_relearner.c index d9c943b57..bf2e7b5c2 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -458,10 +458,10 @@ static void CB2_MoveRelearnerMain(void) UpdatePaletteFade(); } -static void FormatAndPrintText(const u8 *src) +static void PrintMessageWithPlaceholders(const u8 *src) { StringExpandPlaceholders(gStringVar4, src); - MoveRelearnerPrintText(gStringVar4); + MoveRelearnerPrintMessage(gStringVar4); } // See the state machine doc at the top of the file. @@ -515,7 +515,7 @@ static void DoMoveRelearnerMain(void) { if (GiveMoveToMon(&gPlayerParty[sMoveRelearnerStruct->partyMon], GetCurrentSelectedMove()) != MON_HAS_MAX_MOVES) { - FormatAndPrintText(gText_MoveRelearnerPkmnLearnedMove); + PrintMessageWithPlaceholders(gText_MoveRelearnerPkmnLearnedMove); gSpecialVar_0x8004 = TRUE; sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; } @@ -567,7 +567,7 @@ static void DoMoveRelearnerMain(void) } break; case MENU_STATE_PRINT_TRYING_TO_LEARN_PROMPT: - FormatAndPrintText(gText_MoveRelearnerPkmnTryingToLearnMove); + PrintMessageWithPlaceholders(gText_MoveRelearnerPkmnTryingToLearnMove); sMoveRelearnerStruct->state++; break; case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN: @@ -583,7 +583,7 @@ static void DoMoveRelearnerMain(void) if (var == 0) { - FormatAndPrintText(gText_MoveRelearnerWhichMoveToForget); + PrintMessageWithPlaceholders(gText_MoveRelearnerWhichMoveToForget); sMoveRelearnerStruct->state = MENU_STATE_PRINT_WHICH_MOVE_PROMPT; } else if (var == -1 || var == 1) @@ -594,7 +594,7 @@ static void DoMoveRelearnerMain(void) break; case MENU_STATE_PRINT_STOP_TEACHING: StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); - FormatAndPrintText(gText_MoveRelearnerStopTryingToTeachMove); + PrintMessageWithPlaceholders(gText_MoveRelearnerStopTryingToTeachMove); sMoveRelearnerStruct->state++; break; case MENU_STATE_WAIT_FOR_STOP_TEACHING: @@ -630,7 +630,7 @@ static void DoMoveRelearnerMain(void) case MENU_STATE_CHOOSE_SETUP_STATE: if (!MoveRelearnerRunTextPrinters()) { - FillWindowPixelBuffer(3, 0x11); + FillWindowPixelBuffer(RELEARNERWIN_MSG, 0x11); if (sMoveRelearnerMenuSate.showContestInfo == FALSE) { sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; @@ -687,7 +687,7 @@ static void DoMoveRelearnerMain(void) ShowTeachMoveText(TRUE); } RemoveScrollArrows(); - CopyWindowToVram(3, COPYWIN_GFX); + CopyWindowToVram(RELEARNERWIN_MSG, COPYWIN_GFX); break; case MENU_STATE_TRY_OVERWRITE_MOVE: if (!gPaletteFade.active) @@ -704,7 +704,7 @@ static void DoMoveRelearnerMain(void) RemoveMonPPBonus(&gPlayerParty[sMoveRelearnerStruct->partyMon], sMoveRelearnerStruct->moveSlot); SetMonMoveSlot(&gPlayerParty[sMoveRelearnerStruct->partyMon], GetCurrentSelectedMove(), sMoveRelearnerStruct->moveSlot); StringCopy(gStringVar2, gMoveNames[GetCurrentSelectedMove()]); - FormatAndPrintText(gText_MoveRelearnerAndPoof); + PrintMessageWithPlaceholders(gText_MoveRelearnerAndPoof); sMoveRelearnerStruct->state = MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE; gSpecialVar_0x8004 = TRUE; } @@ -713,7 +713,7 @@ static void DoMoveRelearnerMain(void) case MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE: if (!MoveRelearnerRunTextPrinters()) { - FormatAndPrintText(gText_MoveRelearnerPkmnForgotMoveAndLearnedNew); + PrintMessageWithPlaceholders(gText_MoveRelearnerPkmnForgotMoveAndLearnedNew); sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEXT_THEN_FANFARE; PlayFanfare(MUS_LEVEL_UP); } @@ -758,15 +758,13 @@ static void HideHeartSpritesAndShowTeachMoveText(bool8 onlyHideSprites) s32 i; for (i = 0; i < 16; i++) - { gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE; - } if (!onlyHideSprites) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, FONT_NORMAL, gStringVar4, 0, 1, 0, NULL); + FillWindowPixelBuffer(RELEARNERWIN_MSG, 0x11); + AddTextPrinterParameterized(RELEARNERWIN_MSG, FONT_NORMAL, gStringVar4, 0, 1, 0, NULL); } } @@ -779,21 +777,19 @@ static void HandleInput(bool8 showContest) { case LIST_NOTHING_CHOSEN: if (!(JOY_NEW(DPAD_LEFT | DPAD_RIGHT)) && !GetLRKeysPressed()) - { break; - } PlaySE(SE_SELECT); if (showContest == FALSE) { - PutWindowTilemap(1); + PutWindowTilemap(RELEARNERWIN_DESC_CONTEST); sMoveRelearnerStruct->state = MENU_STATE_SETUP_CONTEST_MODE; sMoveRelearnerMenuSate.showContestInfo = TRUE; } else { - PutWindowTilemap(0); + PutWindowTilemap(RELEARNERWIN_DESC_BATTLE); sMoveRelearnerStruct->state = MENU_STATE_SETUP_BATTLE_MODE; sMoveRelearnerMenuSate.showContestInfo = FALSE; } @@ -806,7 +802,7 @@ static void HandleInput(bool8 showContest) RemoveScrollArrows(); sMoveRelearnerStruct->state = MENU_STATE_PRINT_GIVE_UP_PROMPT; StringExpandPlaceholders(gStringVar4, gText_MoveRelearnerGiveUp); - MoveRelearnerPrintText(gStringVar4); + MoveRelearnerPrintMessage(gStringVar4); break; default: PlaySE(SE_SELECT); @@ -814,7 +810,7 @@ static void HandleInput(bool8 showContest) sMoveRelearnerStruct->state = MENU_STATE_PRINT_TEACH_MOVE_PROMPT; StringCopy(gStringVar2, gMoveNames[itemId]); StringExpandPlaceholders(gStringVar4, gText_MoveRelearnerTeachMoveConfirm); - MoveRelearnerPrintText(gStringVar4); + MoveRelearnerPrintMessage(gStringVar4); break; } } @@ -835,8 +831,8 @@ static void ShowTeachMoveText(bool8 shouldDoNothingInstead) if (shouldDoNothingInstead == FALSE) { StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn); - FillWindowPixelBuffer(3, 0x11); - AddTextPrinterParameterized(3, FONT_NORMAL, gStringVar4, 0, 1, 0, NULL); + FillWindowPixelBuffer(RELEARNERWIN_MSG, 0x11); + AddTextPrinterParameterized(RELEARNERWIN_MSG, FONT_NORMAL, gStringVar4, 0, 1, 0, NULL); } } @@ -850,9 +846,7 @@ static void CreateUISprites(void) // These are the appeal hearts. for (i = 0; i < 8; i++) - { sMoveRelearnerStruct->heartSpriteIds[i] = CreateSprite(&sConstestMoveHeartSprite, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0); - } // These are the jam harts. // The animation is used to toggle between full/empty heart sprites. @@ -863,17 +857,13 @@ static void CreateUISprites(void) } for (i = 0; i < 16; i++) - { gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE; - } } static void AddScrollArrows(void) { if (sMoveRelearnerStruct->moveDisplayArrowTask == TASK_NONE) - { sMoveRelearnerStruct->moveDisplayArrowTask = AddScrollIndicatorArrowPair(&sDisplayModeArrowsTemplate, &sMoveRelearnerStruct->scrollOffset); - } if (sMoveRelearnerStruct->moveListScrollArrowTask == TASK_NONE) { @@ -927,49 +917,35 @@ void MoveRelearnerShowHideHearts(s32 moveId) if (!sMoveRelearnerMenuSate.showContestInfo || moveId == LIST_CANCEL) { for (i = 0; i < 16; i++) - { gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = TRUE; - } } else { numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].appeal / 10); if (numHearts == 0xFF) - { numHearts = 0; - } for (i = 0; i < 8; i++) { if (i < numHearts) - { StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i]], 1); - } else - { StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i]], 0); - } gSprites[sMoveRelearnerStruct->heartSpriteIds[i]].invisible = FALSE; } numHearts = (u8)(gContestEffects[gContestMoves[moveId].effect].jam / 10); if (numHearts == 0xFF) - { numHearts = 0; - } for (i = 0; i < 8; i++) { if (i < numHearts) - { StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]], 3); - } else - { StartSpriteAnim(&gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]], 2); - } gSprites[sMoveRelearnerStruct->heartSpriteIds[i + 8]].invisible = FALSE; } } From dd5daa3208484c0f13c9dcbfe7594e9251a5d74e Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 12:15:17 -0400 Subject: [PATCH 004/125] Use window constants in berry_blender --- src/berry_blender.c | 87 ++++++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 41 deletions(-) diff --git a/src/berry_blender.c b/src/berry_blender.c index d099a14ba..975ad7ea1 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -106,6 +106,13 @@ enum { // Last berry that an NPC can put in #define NUM_NPC_BERRIES ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) +enum { + // Windows 0-3 are used implicitly in several loops over BLENDER_MAX_PLAYERS + // i.e. window 0 is for player 1, window 1 for player 2, etc. + WIN_MSG = BLENDER_MAX_PLAYERS, + WIN_RESULTS, +}; + struct BlenderBerry { u16 itemId; @@ -200,7 +207,7 @@ static void SpriteCB_ScoreSymbolBest(struct Sprite *); static void InitLocalPlayers(u8); static void CB2_LoadBerryBlender(void); static void UpdateBlenderCenter(void); -static bool32 Blender_PrintText(s16 *, const u8 *, s32 ); +static bool32 PrintMessage(s16 *, const u8 *, s32 ); static void StartBlender(void); static void CB2_StartBlenderLink(void); static void CB2_StartBlenderLocal(void); @@ -332,7 +339,7 @@ static const struct BgTemplate sBgTemplates[3] = static const struct WindowTemplate sWindowTemplates[] = { - { + { // Player 1 .bg = 0, .tilemapLeft = 1, .tilemapTop = 6, @@ -341,7 +348,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 14, .baseBlock = 0x28, }, - { + { // Player 2 .bg = 0, .tilemapLeft = 22, .tilemapTop = 6, @@ -350,7 +357,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 14, .baseBlock = 0x36, }, - { + { // Player 3 .bg = 0, .tilemapLeft = 1, .tilemapTop = 12, @@ -359,7 +366,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 14, .baseBlock = 0x44, }, - { + { // Player 4 .bg = 0, .tilemapLeft = 22, .tilemapTop = 12, @@ -368,7 +375,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 14, .baseBlock = 0x52, }, - { + [WIN_MSG] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 15, @@ -377,7 +384,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 14, .baseBlock = 0x60, }, - { + [WIN_RESULTS] = { .bg = 0, .tilemapLeft = 5, .tilemapTop = 3, @@ -1107,7 +1114,7 @@ static void CB2_LoadBerryBlender(void) sBerryBlender->mainState++; break; case 4: - if (Blender_PrintText(&sBerryBlender->textState, sText_BerryBlenderStart, GetPlayerTextSpeedDelay())) + if (PrintMessage(&sBerryBlender->textState, sText_BerryBlenderStart, GetPlayerTextSpeedDelay())) sBerryBlender->mainState++; break; case 5: @@ -1337,7 +1344,7 @@ static void CB2_StartBlenderLink(void) } break; case 5: - Blender_PrintText(&sBerryBlender->textState, sText_CommunicationStandby, 0); + PrintMessage(&sBerryBlender->textState, sText_CommunicationStandby, 0); sBerryBlender->mainState = 8; sBerryBlender->framesToWait = 0; break; @@ -1363,7 +1370,7 @@ static void CB2_StartBlenderLink(void) if (++sBerryBlender->framesToWait > 20) { // Wait for partners' berries - ClearDialogWindowAndFrameToTransparent(4, TRUE); + ClearDialogWindowAndFrameToTransparent(WIN_MSG, TRUE); if (GetBlockReceivedStatus() == GetLinkPlayerCountAsBitFlags()) { for (i = 0; i < GetLinkPlayerCount(); i++) @@ -2664,7 +2671,7 @@ static void CB2_EndBlenderGame(void) } break; case 7: - if (Blender_PrintText(&sBerryBlender->textState, sText_WouldLikeToBlendAnotherBerry, GetPlayerTextSpeedDelay())) + if (PrintMessage(&sBerryBlender->textState, sText_WouldLikeToBlendAnotherBerry, GetPlayerTextSpeedDelay())) sBerryBlender->gameEndState++; break; case 9: @@ -2748,7 +2755,7 @@ static void CB2_EndBlenderGame(void) sBerryBlender->gameEndState++; break; case 13: - if (Blender_PrintText(&sBerryBlender->textState, sText_CommunicationStandby, GetPlayerTextSpeedDelay())) + if (PrintMessage(&sBerryBlender->textState, sText_CommunicationStandby, GetPlayerTextSpeedDelay())) { SetMainCallback2(CB2_CheckPlayAgainLink); sBerryBlender->gameEndState = 0; @@ -2858,7 +2865,7 @@ static void CB2_CheckPlayAgainLink(void) StringAppend(gStringVar4, sText_HasNoBerriesToPut); break; case 3: - if (Blender_PrintText(&sBerryBlender->textState, gStringVar4, GetPlayerTextSpeedDelay())) + if (PrintMessage(&sBerryBlender->textState, gStringVar4, GetPlayerTextSpeedDelay())) { sBerryBlender->framesToWait = 0; sBerryBlender->gameEndState++; @@ -2869,7 +2876,7 @@ static void CB2_CheckPlayAgainLink(void) sBerryBlender->gameEndState = 5; break; case 5: - Blender_PrintText(&sBerryBlender->textState, gText_SavingDontTurnOff2, 0); + PrintMessage(&sBerryBlender->textState, gText_SavingDontTurnOff2, 0); SetLinkStandbyCallback(); sBerryBlender->gameEndState++; break; @@ -2965,7 +2972,7 @@ static void CB2_CheckPlayAgainLocal(void) StringCopy(gStringVar4, sText_RunOutOfBerriesForBlending); break; case 3: - if (Blender_PrintText(&sBerryBlender->textState, gStringVar4, GetPlayerTextSpeedDelay())) + if (PrintMessage(&sBerryBlender->textState, gStringVar4, GetPlayerTextSpeedDelay())) sBerryBlender->gameEndState = 9; break; case 9: @@ -3495,7 +3502,7 @@ static bool8 PrintBlendingResults(void) u8 *txtPtr; xPos = GetStringCenterAlignXOffset(FONT_NORMAL, sText_BlendingResults, 0xA8); - Blender_AddTextPrinter(5, sText_BlendingResults, xPos, 1, TEXT_SKIP_DRAW, 0); + Blender_AddTextPrinter(WIN_RESULTS, sText_BlendingResults, xPos, 1, TEXT_SKIP_DRAW, 0); if (sBerryBlender->numPlayers == BLENDER_MAX_PLAYERS) yPos = 17; @@ -3510,15 +3517,15 @@ static bool8 PrintBlendingResults(void) StringAppend(sBerryBlender->stringVar, sText_Dot); StringAppend(sBerryBlender->stringVar, gText_Space); StringAppend(sBerryBlender->stringVar, gLinkPlayers[place].name); - Blender_AddTextPrinter(5, sBerryBlender->stringVar, 8, yPos, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sBerryBlender->stringVar, 8, yPos, TEXT_SKIP_DRAW, 3); StringCopy(sBerryBlender->stringVar, sBerryBlender->blendedBerries[place].name); ConvertInternationalString(sBerryBlender->stringVar, gLinkPlayers[place].language); StringAppend(sBerryBlender->stringVar, sText_SpaceBerry); - Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0x54, yPos, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sBerryBlender->stringVar, 0x54, yPos, TEXT_SKIP_DRAW, 3); } - Blender_AddTextPrinter(5, sText_MaximumSpeed, 0, 0x51, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sText_MaximumSpeed, 0, 0x51, TEXT_SKIP_DRAW, 3); ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->maxRPM / 100, STR_CONV_MODE_RIGHT_ALIGN, 3); StringAppend(sBerryBlender->stringVar, sText_Dot); @@ -3527,8 +3534,8 @@ static bool8 PrintBlendingResults(void) StringAppend(sBerryBlender->stringVar, sText_RPM); xPos = GetStringRightAlignXOffset(FONT_NORMAL, sBerryBlender->stringVar, 0xA8); - Blender_AddTextPrinter(5, sBerryBlender->stringVar, xPos, 0x51, TEXT_SKIP_DRAW, 3); - Blender_AddTextPrinter(5, sText_Time, 0, 0x61, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sBerryBlender->stringVar, xPos, 0x51, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sText_Time, 0, 0x61, TEXT_SKIP_DRAW, 3); seconds = (sBerryBlender->gameFrameTime / 60) % 60; minutes = (sBerryBlender->gameFrameTime / (60 * 60)); @@ -3540,12 +3547,12 @@ static bool8 PrintBlendingResults(void) StringAppend(sBerryBlender->stringVar, sText_Sec); xPos = GetStringRightAlignXOffset(FONT_NORMAL, sBerryBlender->stringVar, 0xA8); - Blender_AddTextPrinter(5, sBerryBlender->stringVar, xPos, 0x61, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sBerryBlender->stringVar, xPos, 0x61, TEXT_SKIP_DRAW, 3); sBerryBlender->framesToWait = 0; sBerryBlender->mainState++; - CopyWindowToVram(5, COPYWIN_GFX); + CopyWindowToVram(WIN_RESULTS, COPYWIN_GFX); } break; case 4: @@ -3553,7 +3560,7 @@ static bool8 PrintBlendingResults(void) sBerryBlender->mainState++; break; case 5: - ClearStdWindowAndFrameToTransparent(5, TRUE); + ClearStdWindowAndFrameToTransparent(WIN_RESULTS, TRUE); for (i = 0; i < BLENDER_MAX_PLAYERS; i++) { @@ -3581,7 +3588,7 @@ static bool8 PrintBlendingResults(void) sBerryBlender->mainState++; break; case 6: - if (Blender_PrintText(&sBerryBlender->textState, sBerryBlender->stringVar, GetPlayerTextSpeedDelay())) + if (PrintMessage(&sBerryBlender->textState, sBerryBlender->stringVar, GetPlayerTextSpeedDelay())) { TryUpdateBerryBlenderRecord(); return TRUE; @@ -3692,9 +3699,9 @@ static bool8 PrintBlendingRanking(void) } break; case 3: - DrawStdFrameWithCustomTileAndPalette(5, FALSE, 1, 0xD); + DrawStdFrameWithCustomTileAndPalette(WIN_RESULTS, FALSE, 1, 0xD); xPos = GetStringCenterAlignXOffset(FONT_NORMAL, sText_Ranking, 168); - Blender_AddTextPrinter(5, sText_Ranking, xPos, 1, TEXT_SKIP_DRAW, 0); + Blender_AddTextPrinter(WIN_RESULTS, sText_Ranking, xPos, 1, TEXT_SKIP_DRAW, 0); sBerryBlender->scoreIconIds[SCORE_BEST] = CreateSprite(&sSpriteTemplate_ScoreSymbols, 128, 52, 0); StartSpriteAnim(&gSprites[sBerryBlender->scoreIconIds[SCORE_BEST]], SCOREANIM_BEST_STATIC); @@ -3718,20 +3725,20 @@ static bool8 PrintBlendingRanking(void) StringAppend(sBerryBlender->stringVar, sText_Dot); StringAppend(sBerryBlender->stringVar, gText_Space); StringAppend(sBerryBlender->stringVar, gLinkPlayers[place].name); - Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0, yPos, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sBerryBlender->stringVar, 0, yPos, TEXT_SKIP_DRAW, 3); ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->scores[place][SCORE_BEST], STR_CONV_MODE_RIGHT_ALIGN, 3); - Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78, yPos, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sBerryBlender->stringVar, 78, yPos, TEXT_SKIP_DRAW, 3); ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->scores[place][SCORE_GOOD], STR_CONV_MODE_RIGHT_ALIGN, 3); - Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78 + 32, yPos, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sBerryBlender->stringVar, 78 + 32, yPos, TEXT_SKIP_DRAW, 3); ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->scores[place][SCORE_MISS], STR_CONV_MODE_RIGHT_ALIGN, 3); - Blender_AddTextPrinter(5, sBerryBlender->stringVar, 78 + 64, yPos, TEXT_SKIP_DRAW, 3); + Blender_AddTextPrinter(WIN_RESULTS, sBerryBlender->stringVar, 78 + 64, yPos, TEXT_SKIP_DRAW, 3); } - PutWindowTilemap(5); - CopyWindowToVram(5, COPYWIN_FULL); + PutWindowTilemap(WIN_RESULTS); + CopyWindowToVram(WIN_RESULTS, COPYWIN_FULL); sBerryBlender->framesToWait = 0; sBerryBlender->mainState++; @@ -3875,26 +3882,24 @@ static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s3 } if (caseId != 3) - { FillWindowPixelBuffer(windowId, PIXEL_FILL(txtColor[0])); - } AddTextPrinterParameterized4(windowId, FONT_NORMAL, x, y, letterSpacing, 1, txtColor, speed, string); } -static bool32 Blender_PrintText(s16 *textState, const u8 *string, s32 textSpeed) +static bool32 PrintMessage(s16 *textState, const u8 *string, s32 textSpeed) { switch (*textState) { case 0: - DrawDialogFrameWithCustomTileAndPalette(4, FALSE, 0x14, 0xF); - Blender_AddTextPrinter(4, string, 0, 1, textSpeed, 0); - PutWindowTilemap(4); - CopyWindowToVram(4, COPYWIN_FULL); + DrawDialogFrameWithCustomTileAndPalette(WIN_MSG, FALSE, 0x14, 0xF); + Blender_AddTextPrinter(WIN_MSG, string, 0, 1, textSpeed, 0); + PutWindowTilemap(WIN_MSG); + CopyWindowToVram(WIN_MSG, COPYWIN_FULL); (*textState)++; break; case 1: - if (!IsTextPrinterActive(4)) + if (!IsTextPrinterActive(WIN_MSG)) { *textState = 0; return TRUE; From 9f5704b05a783a43914c51f869a399aac4337bc8 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 12:30:10 -0400 Subject: [PATCH 005/125] Use window constants in trainer_card --- src/trainer_card.c | 90 ++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 42 deletions(-) diff --git a/src/trainer_card.c b/src/trainer_card.c index 04b8f686a..ceda0e570 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -33,6 +33,12 @@ #include "constants/trainers.h" #include "constants/union_room.h" +enum { + WIN_MSG, + WIN_CARD_TEXT, + WIN_TRAINER_PIC, +}; + struct TrainerCardData { u8 mainState; @@ -226,7 +232,7 @@ static const struct BgTemplate sTrainerCardBgTemplates[4] = static const struct WindowTemplate sTrainerCardWindowTemplates[] = { - { + [WIN_MSG] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 15, @@ -235,7 +241,7 @@ static const struct WindowTemplate sTrainerCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x253, }, - { + [WIN_CARD_TEXT] = { .bg = 1, .tilemapLeft = 1, .tilemapTop = 1, @@ -244,7 +250,7 @@ static const struct WindowTemplate sTrainerCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x1, }, - { + [WIN_TRAINER_PIC] = { .bg = 3, .tilemapLeft = 19, .tilemapTop = 5, @@ -376,7 +382,7 @@ static void Task_TrainerCard(u8 taskId) case 0: if (!IsDma3ManagerBusyWithBgCopy()) { - FillWindowPixelBuffer(1, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_CARD_TEXT, PIXEL_FILL(0)); sData->mainState++; } break; @@ -385,13 +391,13 @@ static void Task_TrainerCard(u8 taskId) sData->mainState++; break; case 2: - DrawTrainerCardWindow(1); + DrawTrainerCardWindow(WIN_CARD_TEXT); sData->mainState++; break; case 3: - FillWindowPixelBuffer(2, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_TRAINER_PIC, PIXEL_FILL(0)); CreateTrainerCardTrainerPic(); - DrawTrainerCardWindow(2); + DrawTrainerCardWindow(WIN_TRAINER_PIC); sData->mainState++; break; case 4: @@ -411,7 +417,7 @@ static void Task_TrainerCard(u8 taskId) if (gWirelessCommType == 1 && gReceivedRemoteLinkPlayers == TRUE) { LoadWirelessStatusIndicatorSpriteGfx(); - CreateWirelessStatusIndicatorSprite(230, 150); + CreateWirelessStatusIndicatorSprite(DISPLAY_WIDTH - 10, DISPLAY_HEIGHT - 10); } BlendPalettes(PALETTES_ALL, 16, sData->blendColor); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, sData->blendColor); @@ -434,7 +440,7 @@ static void Task_TrainerCard(u8 taskId) if (!gReceivedRemoteLinkPlayers && sData->timeColonNeedDraw) { PrintTimeOnCard(); - DrawTrainerCardWindow(1); + DrawTrainerCardWindow(WIN_CARD_TEXT); sData->timeColonNeedDraw = FALSE; } if (JOY_NEW(A_BUTTON)) @@ -497,9 +503,9 @@ static void Task_TrainerCard(u8 taskId) break; case STATE_WAIT_LINK_PARTNER: SetCloseLinkCallback(); - DrawDialogueFrame(0, TRUE); - AddTextPrinterParameterized(0, FONT_NORMAL, gText_WaitingTrainerFinishReading, 0, 1, 255, 0); - CopyWindowToVram(0, COPYWIN_FULL); + DrawDialogueFrame(WIN_MSG, TRUE); + AddTextPrinterParameterized(WIN_MSG, FONT_NORMAL, gText_WaitingTrainerFinishReading, 0, 1, 255, 0); + CopyWindowToVram(WIN_MSG, COPYWIN_FULL); sData->mainState = STATE_CLOSE_CARD_LINK; break; case STATE_CLOSE_CARD_LINK: @@ -1002,9 +1008,9 @@ static void PrintNameOnCardFront(void) StringCopy(txtPtr, sData->trainerCard.playerName); ConvertInternationalString(txtPtr, sData->language); if (sData->cardType == CARD_TYPE_FRLG) - AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 28, sTrainerCardTextColors, TEXT_SKIP_DRAW, buffer); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 20, 28, sTrainerCardTextColors, TEXT_SKIP_DRAW, buffer); else - AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 33, sTrainerCardTextColors, TEXT_SKIP_DRAW, buffer); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 16, 33, sTrainerCardTextColors, TEXT_SKIP_DRAW, buffer); } static void PrintIdOnCard(void) @@ -1026,7 +1032,7 @@ static void PrintIdOnCard(void) top = 9; } - AddTextPrinterParameterized3(1, FONT_NORMAL, xPos, top, sTrainerCardTextColors, TEXT_SKIP_DRAW, buffer); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, xPos, top, sTrainerCardTextColors, TEXT_SKIP_DRAW, buffer); } static void PrintMoneyOnCard(void) @@ -1035,9 +1041,9 @@ static void PrintMoneyOnCard(void) u8 top; if (!sData->isHoenn) - AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 56, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardMoney); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 20, 56, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardMoney); else - AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 57, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardMoney); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 16, 57, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardMoney); ConvertIntToDecimalStringN(gStringVar1, sData->trainerCard.money, STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_PokedollarVar1); @@ -1051,7 +1057,7 @@ static void PrintMoneyOnCard(void) xOffset = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 128); top = 57; } - AddTextPrinterParameterized3(1, FONT_NORMAL, xOffset, top, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, xOffset, top, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4); } static u16 GetCaughtMonsCount(void) @@ -1069,9 +1075,9 @@ static void PrintPokedexOnCard(void) if (FlagGet(FLAG_SYS_POKEDEX_GET)) { if (!sData->isHoenn) - AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 72, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardPokedex); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 20, 72, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardPokedex); else - AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 73, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardPokedex); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 16, 73, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardPokedex); StringCopy(ConvertIntToDecimalStringN(gStringVar4, sData->trainerCard.caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3), gText_EmptyString6); if (!sData->isHoenn) { @@ -1083,7 +1089,7 @@ static void PrintPokedexOnCard(void) xOffset = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 128); top = 73; } - AddTextPrinterParameterized3(1, FONT_NORMAL, xOffset, top, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, xOffset, top, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4); } } @@ -1097,9 +1103,9 @@ static void PrintTimeOnCard(void) u32 x, y, totalWidth; if (!sData->isHoenn) - AddTextPrinterParameterized3(1, FONT_NORMAL, 20, 88, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardTime); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 20, 88, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardTime); else - AddTextPrinterParameterized3(1, FONT_NORMAL, 16, 89, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardTime); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 16, 89, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardTime); if (sData->isLink) { @@ -1131,14 +1137,14 @@ static void PrintTimeOnCard(void) totalWidth = width + 30; x -= totalWidth; - FillWindowPixelRect(1, PIXEL_FILL(0), x, y, totalWidth, 15); + FillWindowPixelRect(WIN_CARD_TEXT, PIXEL_FILL(0), x, y, totalWidth, 15); ConvertIntToDecimalStringN(gStringVar4, hours, STR_CONV_MODE_RIGHT_ALIGN, 3); - AddTextPrinterParameterized3(1, FONT_NORMAL, x, y, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, x, y, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4); x += 18; - AddTextPrinterParameterized3(1, FONT_NORMAL, x, y, sTimeColonTextColors[sData->timeColonInvisible], TEXT_SKIP_DRAW, gText_Colon2); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, x, y, sTimeColonTextColors[sData->timeColonInvisible], TEXT_SKIP_DRAW, gText_Colon2); x += width; ConvertIntToDecimalStringN(gStringVar4, minutes, STR_CONV_MODE_LEADING_ZEROS, 2); - AddTextPrinterParameterized3(1, FONT_NORMAL, x, y, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, x, y, sTrainerCardTextColors, TEXT_SKIP_DRAW, gStringVar4); } static void PrintProfilePhraseOnCard(void) @@ -1148,10 +1154,10 @@ static void PrintProfilePhraseOnCard(void) if (sData->isLink) { - AddTextPrinterParameterized3(1, FONT_NORMAL, 8, yOffsetsLine1[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[0]); - AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringWidth(FONT_NORMAL, sData->easyChatProfile[0], 0) + 14, yOffsetsLine1[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[1]); - AddTextPrinterParameterized3(1, FONT_NORMAL, 8, yOffsetsLine2[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[2]); - AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringWidth(FONT_NORMAL, sData->easyChatProfile[2], 0) + 14, yOffsetsLine2[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[3]); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 8, yOffsetsLine1[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[0]); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, GetStringWidth(FONT_NORMAL, sData->easyChatProfile[0], 0) + 14, yOffsetsLine1[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[1]); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 8, yOffsetsLine2[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[2]); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, GetStringWidth(FONT_NORMAL, sData->easyChatProfile[2], 0) + 14, yOffsetsLine2[sData->isHoenn], sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->easyChatProfile[3]); } } @@ -1169,9 +1175,9 @@ static void BufferNameForCardBack(void) static void PrintNameOnCardBack(void) { if (!sData->isHoenn) - AddTextPrinterParameterized3(1, FONT_NORMAL, 136, 9, sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->textPlayersCard); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 136, 9, sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->textPlayersCard); else - AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, sData->textPlayersCard, 216), 9, sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->textPlayersCard); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, sData->textPlayersCard, 216), 9, sTrainerCardTextColors, TEXT_SKIP_DRAW, sData->textPlayersCard); } static const u8 sText_HofTime[] = _("{STR_VAR_1}:{STR_VAR_2}:{STR_VAR_3}"); @@ -1192,8 +1198,8 @@ static void PrintStatOnBackOfCard(u8 top, const u8 *statName, u8 *stat, const u8 static const u8 xOffsets[] = {8, 16}; static const u8 widths[] = {216, 216}; - AddTextPrinterParameterized3(1, FONT_NORMAL, xOffsets[sData->isHoenn], top * 16 + 33, sTrainerCardTextColors, TEXT_SKIP_DRAW, statName); - AddTextPrinterParameterized3(1, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, stat, widths[sData->isHoenn]), top * 16 + 33, color, TEXT_SKIP_DRAW, stat); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, xOffsets[sData->isHoenn], top * 16 + 33, sTrainerCardTextColors, TEXT_SKIP_DRAW, statName); + AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, stat, widths[sData->isHoenn]), top * 16 + 33, color, TEXT_SKIP_DRAW, stat); } static void PrintHofDebutTimeOnCard(void) @@ -1672,7 +1678,7 @@ static bool8 Task_DrawFlippedCardSide(struct Task *task) switch (sData->flipDrawState) { case 0: - FillWindowPixelBuffer(1, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_CARD_TEXT, PIXEL_FILL(0)); FillBgTilemapBufferRect_Palette0(3, 0, 0, 0, 0x20, 0x20); break; case 1: @@ -1691,13 +1697,13 @@ static bool8 Task_DrawFlippedCardSide(struct Task *task) if (!sData->onBack) DrawCardFrontOrBack(sData->backTilemap); else - DrawTrainerCardWindow(1); + DrawTrainerCardWindow(WIN_CARD_TEXT); break; case 3: if (!sData->onBack) DrawCardBackStats(); else - FillWindowPixelBuffer(2, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_TRAINER_PIC, PIXEL_FILL(0)); break; case 4: if (sData->onBack) @@ -1722,12 +1728,12 @@ static bool8 Task_SetCardFlipped(struct Task *task) // If on back of card, draw front of card because its being flipped if (sData->onBack) { - DrawTrainerCardWindow(2); + DrawTrainerCardWindow(WIN_TRAINER_PIC); DrawCardScreenBackground(sData->bgTilemap); DrawCardFrontOrBack(sData->frontTilemap); DrawStarsAndBadgesOnCard(); } - DrawTrainerCardWindow(1); + DrawTrainerCardWindow(WIN_CARD_TEXT); sData->onBack ^= 1; task->tFlipState++; sData->allowDMACopy = TRUE; @@ -1882,7 +1888,7 @@ static void CreateTrainerCardTrainerPic(void) sTrainerPicOffset[sData->isHoenn][sData->trainerCard.gender][0], sTrainerPicOffset[sData->isHoenn][sData->trainerCard.gender][1], 8, - 2); + WIN_TRAINER_PIC); } else { @@ -1891,6 +1897,6 @@ static void CreateTrainerCardTrainerPic(void) sTrainerPicOffset[sData->isHoenn][sData->trainerCard.gender][0], sTrainerPicOffset[sData->isHoenn][sData->trainerCard.gender][1], 8, - 2); + WIN_TRAINER_PIC); } } From 1f225286d5641fef8c1b7f657d7fa0bdbb0ff0df Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 12:55:31 -0400 Subject: [PATCH 006/125] Use window constants in party_menu --- src/data/party_menu.h | 54 +++++++++++++++++++++---------------------- src/party_menu.c | 28 ++++++++++++---------- 2 files changed, 43 insertions(+), 39 deletions(-) diff --git a/src/data/party_menu.h b/src/data/party_menu.h index b29449830..7a9efce0b 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -122,7 +122,7 @@ static const u8 sFontColorTable[][3] = static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = { - { + { // Party mon 1 .bg = 0, .tilemapLeft = 1, .tilemapTop = 3, @@ -131,7 +131,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .paletteNum = 3, .baseBlock = 0x63, }, - { + { // Party mon 2 .bg = 0, .tilemapLeft = 12, .tilemapTop = 1, @@ -140,7 +140,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .paletteNum = 4, .baseBlock = 0xA9, }, - { + { // Party mon 3 .bg = 0, .tilemapLeft = 12, .tilemapTop = 4, @@ -149,7 +149,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .paletteNum = 5, .baseBlock = 0xDF, }, - { + { // Party mon 4 .bg = 0, .tilemapLeft = 12, .tilemapTop = 7, @@ -158,7 +158,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .paletteNum = 6, .baseBlock = 0x115, }, - { + { // Party mon 5 .bg = 0, .tilemapLeft = 12, .tilemapTop = 10, @@ -167,7 +167,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .paletteNum = 7, .baseBlock = 0x14B, }, - { + { // Party mon 6 .bg = 0, .tilemapLeft = 12, .tilemapTop = 13, @@ -176,7 +176,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = .paletteNum = 8, .baseBlock = 0x181, }, - { + [WIN_MSG] = { .bg = 2, .tilemapLeft = 1, .tilemapTop = 15, @@ -190,7 +190,7 @@ static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] = static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = { - { + { // Party mon 1 .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -199,7 +199,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .paletteNum = 3, .baseBlock = 0x63, }, - { + { // Party mon 2 .bg = 0, .tilemapLeft = 1, .tilemapTop = 8, @@ -208,7 +208,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .paletteNum = 4, .baseBlock = 0xA9, }, - { + { // Party mon 3 .bg = 0, .tilemapLeft = 12, .tilemapTop = 1, @@ -217,7 +217,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .paletteNum = 5, .baseBlock = 0xEF, }, - { + { // Party mon 4 .bg = 0, .tilemapLeft = 12, .tilemapTop = 5, @@ -226,7 +226,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .paletteNum = 6, .baseBlock = 0x125, }, - { + { // Party mon 5 .bg = 0, .tilemapLeft = 12, .tilemapTop = 9, @@ -235,7 +235,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .paletteNum = 7, .baseBlock = 0x15B, }, - { + { // Party mon 6 .bg = 0, .tilemapLeft = 12, .tilemapTop = 13, @@ -244,7 +244,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = .paletteNum = 8, .baseBlock = 0x191, }, - { + [WIN_MSG] = { .bg = 2, .tilemapLeft = 1, .tilemapTop = 15, @@ -258,7 +258,7 @@ static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] = static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = { - { + { // Party mon 1 .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -267,7 +267,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .paletteNum = 3, .baseBlock = 0x63, }, - { + { // Party mon 2 .bg = 0, .tilemapLeft = 1, .tilemapTop = 8, @@ -276,7 +276,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .paletteNum = 4, .baseBlock = 0xA9, }, - { + { // Party mon 3 .bg = 0, .tilemapLeft = 12, .tilemapTop = 2, @@ -285,7 +285,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .paletteNum = 5, .baseBlock = 0xEF, }, - { + { // Party mon 4 .bg = 0, .tilemapLeft = 12, .tilemapTop = 5, @@ -294,7 +294,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .paletteNum = 6, .baseBlock = 0x125, }, - { + { // Party mon 5 .bg = 0, .tilemapLeft = 12, .tilemapTop = 9, @@ -303,7 +303,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .paletteNum = 7, .baseBlock = 0x15B, }, - { + { // Party mon 6 .bg = 0, .tilemapLeft = 12, .tilemapTop = 12, @@ -312,7 +312,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = .paletteNum = 8, .baseBlock = 0x191, }, - { + [WIN_MSG] = { .bg = 2, .tilemapLeft = 1, .tilemapTop = 15, @@ -326,7 +326,7 @@ static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] = static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = { - { + { // Party mon 1 .bg = 0, .tilemapLeft = 1, .tilemapTop = 2, @@ -335,7 +335,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .paletteNum = 3, .baseBlock = 0x63, }, - { + { // Party mon 2 .bg = 0, .tilemapLeft = 12, .tilemapTop = 3, @@ -344,7 +344,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .paletteNum = 5, .baseBlock = 0xA9, }, - { + { // Party mon 3 .bg = 0, .tilemapLeft = 12, .tilemapTop = 6, @@ -353,7 +353,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .paletteNum = 6, .baseBlock = 0xDF, }, - { + { // Party mon 4 .bg = 2, .tilemapLeft = 1, .tilemapTop = 11, @@ -362,7 +362,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .paletteNum = 4, .baseBlock = 0x115, }, - { + { // Party mon 5 .bg = 2, .tilemapLeft = 12, .tilemapTop = 12, @@ -371,7 +371,7 @@ static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] = .paletteNum = 7, .baseBlock = 0x16B, }, - { + { // Party mon 6 .bg = 2, .tilemapLeft = 12, .tilemapTop = 15, diff --git a/src/party_menu.c b/src/party_menu.c index 8c9b09f52..153e389b2 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -161,14 +161,18 @@ enum { #define MENU_DIR_RIGHT 2 #define MENU_DIR_LEFT -2 -enum -{ +enum { CAN_LEARN_MOVE, CANNOT_LEARN_MOVE, ALREADY_KNOWS_MOVE, CANNOT_LEARN_MOVE_IS_EGG }; +enum { + // Window ids 0-5 are implicitly assigned to each party pokemon in InitPartyMenuBoxes + WIN_MSG = PARTY_SIZE, +}; + struct PartyMenuBoxInfoRects { void (*blitFunc)(u8, u8, u8, u8, u8, bool8); @@ -320,7 +324,7 @@ static void UpdateCurrentPartySelection(s8 *, s8); static void UpdatePartySelectionSingleLayout(s8 *, s8); static void UpdatePartySelectionDoubleLayout(s8 *, s8); static s8 GetNewSlotDoubleLayout(s8, s8); -static void PartyMenuPrintText(const u8 *); +static void PrintMessage(const u8 *); static void Task_PrintAndWaitForText(u8); static bool16 IsMonAllowedInPokemonJump(struct Pokemon *); static bool16 IsMonAllowedInDodrioBerryPicking(struct Pokemon *); @@ -1703,7 +1707,7 @@ u8 DisplayPartyMenuMessage(const u8 *str, bool8 keepOpen) { u8 taskId; - PartyMenuPrintText(str); + PrintMessage(str); taskId = CreateTask(Task_PrintAndWaitForText, 1); gTasks[taskId].tKeepOpen = keepOpen; return taskId; @@ -1711,12 +1715,12 @@ u8 DisplayPartyMenuMessage(const u8 *str, bool8 keepOpen) static void Task_PrintAndWaitForText(u8 taskId) { - if (RunTextPrintersRetIsActive(6) != TRUE) + if (RunTextPrintersRetIsActive(WIN_MSG) != TRUE) { if (gTasks[taskId].tKeepOpen == FALSE) { - ClearStdWindowAndFrameToTransparent(6, FALSE); - ClearWindowTilemap(6); + ClearStdWindowAndFrameToTransparent(WIN_MSG, FALSE); + ClearWindowTilemap(WIN_MSG); } DestroyTask(taskId); } @@ -1742,8 +1746,8 @@ static void Task_ReturnToChooseMonAfterText(u8 taskId) { if (IsPartyMenuTextPrinterActive() != TRUE) { - ClearStdWindowAndFrameToTransparent(6, FALSE); - ClearWindowTilemap(6); + ClearStdWindowAndFrameToTransparent(WIN_MSG, FALSE); + ClearWindowTilemap(WIN_MSG); if (MenuHelpers_IsLinkActive() == TRUE) { gTasks[taskId].func = Task_WaitForLinkAndReturnToChooseMon; @@ -2559,11 +2563,11 @@ static u8 DisplaySelectionWindow(u8 windowType) return sPartyMenuInternal->windowId[0]; } -static void PartyMenuPrintText(const u8 *text) +static void PrintMessage(const u8 *text) { - DrawStdFrameWithCustomTileAndPalette(6, FALSE, 0x4F, 13); + DrawStdFrameWithCustomTileAndPalette(WIN_MSG, FALSE, 0x4F, 13); gTextFlags.canABSpeedUpPrint = TRUE; - AddTextPrinterParameterized2(6, FONT_NORMAL, text, GetPlayerTextSpeedDelay(), 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); + AddTextPrinterParameterized2(WIN_MSG, FONT_NORMAL, text, GetPlayerTextSpeedDelay(), 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); } static void PartyMenuDisplayYesNoMenu(void) From 4af1044439d46afdd5da98f7e4b41fafc4b246f8 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 13:11:38 -0400 Subject: [PATCH 007/125] Use window constants in region_map --- include/region_map.h | 3 ++- src/region_map.c | 47 ++++++++++++++++++++++++-------------------- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/include/region_map.h b/include/region_map.h index 85793badc..9f0b110a6 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -21,7 +21,8 @@ enum { MAPSECTYPE_ROUTE, MAPSECTYPE_CITY_CANFLY, MAPSECTYPE_CITY_CANTFLY, - MAPSECTYPE_BATTLE_FRONTIER + MAPSECTYPE_BATTLE_FRONTIER, + NUM_MAPSEC_TYPES }; struct RegionMap { diff --git a/src/region_map.c b/src/region_map.c index 8157f8a4e..ba7dcf106 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -53,7 +53,12 @@ enum { TAG_FLY_ICON, }; -// Static type declarations +// Window IDs for the fly map +enum { + WIN_MAPSEC_NAME, + WIN_MAPSEC_NAME_TALL, // For fly destinations with subtitles (just Ever Grande) + WIN_FLY_TO_WHERE, +}; struct MultiNameFlyDest { @@ -386,7 +391,7 @@ static const struct BgTemplate sFlyMapBgTemplates[] = static const struct WindowTemplate sFlyMapWindowTemplates[] = { - { + [WIN_MAPSEC_NAME] = { .bg = 0, .tilemapLeft = 17, .tilemapTop = 17, @@ -395,7 +400,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x01 }, - { + [WIN_MAPSEC_NAME_TALL] = { .bg = 0, .tilemapLeft = 17, .tilemapTop = 15, @@ -404,7 +409,7 @@ static const struct WindowTemplate sFlyMapWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x19 }, - { + [WIN_FLY_TO_WHERE] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 18, @@ -1404,7 +1409,7 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag) } LoadSpriteSheet(&sheet); LoadSpritePalette(&palette); - spriteId = CreateSprite(&template, 0x38, 0x48, 0); + spriteId = CreateSprite(&template, 56, 72, 0); if (spriteId != MAX_SPRITES) { sRegionMap->cursorSprite = &gSprites[spriteId]; @@ -1713,9 +1718,9 @@ void CB2_OpenFlyMap(void) break; case 7: LoadPalette(sRegionMapFramePal, 0x10, sizeof(sRegionMapFramePal)); - PutWindowTilemap(2); - FillWindowPixelBuffer(2, PIXEL_FILL(0)); - AddTextPrinterParameterized(2, FONT_NORMAL, gText_FlyToWhere, 0, 1, 0, NULL); + PutWindowTilemap(WIN_FLY_TO_WHERE); + FillWindowPixelBuffer(WIN_FLY_TO_WHERE, PIXEL_FILL(0)); + AddTextPrinterParameterized(WIN_FLY_TO_WHERE, FONT_NORMAL, gText_FlyToWhere, 0, 1, 0, NULL); ScheduleBgCopyTilemapToVram(0); gMain.state++; break; @@ -1768,7 +1773,7 @@ static void DrawFlyDestTextWindow(void) bool32 namePrinted; const u8 *name; - if (sFlyMap->regionMap.mapSecType > MAPSECTYPE_NONE && sFlyMap->regionMap.mapSecType <= MAPSECTYPE_BATTLE_FRONTIER) + if (sFlyMap->regionMap.mapSecType > MAPSECTYPE_NONE && sFlyMap->regionMap.mapSecType < NUM_MAPSEC_TYPES) { namePrinted = FALSE; for (i = 0; i < ARRAY_COUNT(sMultiNameFlyDestinations); i++) @@ -1779,11 +1784,11 @@ static void DrawFlyDestTextWindow(void) { StringLength(sMultiNameFlyDestinations[i].name[sFlyMap->regionMap.posWithinMapSec]); namePrinted = TRUE; - ClearStdWindowAndFrameToTransparent(0, FALSE); - DrawStdFrameWithCustomTileAndPalette(1, FALSE, 101, 13); - AddTextPrinterParameterized(1, FONT_NORMAL, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); + ClearStdWindowAndFrameToTransparent(WIN_MAPSEC_NAME, FALSE); + DrawStdFrameWithCustomTileAndPalette(WIN_MAPSEC_NAME_TALL, FALSE, 101, 13); + AddTextPrinterParameterized(WIN_MAPSEC_NAME_TALL, FONT_NORMAL, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); name = sMultiNameFlyDestinations[i].name[sFlyMap->regionMap.posWithinMapSec]; - AddTextPrinterParameterized(1, FONT_NORMAL, name, GetStringRightAlignXOffset(FONT_NORMAL, name, 96), 17, 0, NULL); + AddTextPrinterParameterized(WIN_MAPSEC_NAME_TALL, FONT_NORMAL, name, GetStringRightAlignXOffset(FONT_NORMAL, name, 96), 17, 0, NULL); ScheduleBgCopyTilemapToVram(0); sDrawFlyDestTextWindow = TRUE; } @@ -1794,15 +1799,15 @@ static void DrawFlyDestTextWindow(void) { if (sDrawFlyDestTextWindow == TRUE) { - ClearStdWindowAndFrameToTransparent(1, FALSE); - DrawStdFrameWithCustomTileAndPalette(0, FALSE, 101, 13); + ClearStdWindowAndFrameToTransparent(WIN_MAPSEC_NAME_TALL, FALSE); + DrawStdFrameWithCustomTileAndPalette(WIN_MAPSEC_NAME, FALSE, 101, 13); } else { // Window is already drawn, just empty it - FillWindowPixelBuffer(0, PIXEL_FILL(1)); + FillWindowPixelBuffer(WIN_MAPSEC_NAME, PIXEL_FILL(1)); } - AddTextPrinterParameterized(0, FONT_NORMAL, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); + AddTextPrinterParameterized(WIN_MAPSEC_NAME, FONT_NORMAL, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL); ScheduleBgCopyTilemapToVram(0); sDrawFlyDestTextWindow = FALSE; } @@ -1812,11 +1817,11 @@ static void DrawFlyDestTextWindow(void) // Selection is on MAPSECTYPE_NONE, draw empty fly destination text window if (sDrawFlyDestTextWindow == TRUE) { - ClearStdWindowAndFrameToTransparent(1, FALSE); - DrawStdFrameWithCustomTileAndPalette(0, FALSE, 101, 13); + ClearStdWindowAndFrameToTransparent(WIN_MAPSEC_NAME_TALL, FALSE); + DrawStdFrameWithCustomTileAndPalette(WIN_MAPSEC_NAME, FALSE, 101, 13); } - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - CopyWindowToVram(0, COPYWIN_GFX); + FillWindowPixelBuffer(WIN_MAPSEC_NAME, PIXEL_FILL(1)); + CopyWindowToVram(WIN_MAPSEC_NAME, COPYWIN_GFX); ScheduleBgCopyTilemapToVram(0); sDrawFlyDestTextWindow = FALSE; } From 81defb5986dc76951f593a403c5d78ba500c652e Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 13:20:35 -0400 Subject: [PATCH 008/125] Use window constants in union_room_chat --- src/union_room_chat.c | 94 ++++++++++++++++++++++++------------------- 1 file changed, 52 insertions(+), 42 deletions(-) diff --git a/src/union_room_chat.c b/src/union_room_chat.c index e1ca7c0b0..36bdbe07b 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -116,6 +116,13 @@ enum { // Shared by all above #define PALTAG_INTERFACE 0 +enum { + WIN_CHAT_HISTORY, + WIN_TEXT_ENTRY, + WIN_KEYBOARD, + WIN_SWAP_MENU, +}; + struct UnionRoomChat { u32 filler1; @@ -560,7 +567,7 @@ static const struct BgTemplate sBgTemplates[] = { }; static const struct WindowTemplate sWinTemplates[] = { - { + [WIN_CHAT_HISTORY] = { .bg = 3, .tilemapLeft = 8, .tilemapTop = 1, @@ -568,7 +575,8 @@ static const struct WindowTemplate sWinTemplates[] = { .height = 19, .paletteNum = 15, .baseBlock = 0x0001, - }, { + }, + [WIN_TEXT_ENTRY] = { .bg = 1, .tilemapLeft = 9, .tilemapTop = 18, @@ -576,7 +584,8 @@ static const struct WindowTemplate sWinTemplates[] = { .height = 2, .paletteNum = 12, .baseBlock = 0x007a, - }, { + }, + [WIN_KEYBOARD] = { .bg = 1, .tilemapLeft = 0, .tilemapTop = 2, @@ -584,7 +593,8 @@ static const struct WindowTemplate sWinTemplates[] = { .height = 15, .paletteNum = 7, .baseBlock = 0x0020, - }, { + }, + [WIN_SWAP_MENU] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 2, @@ -2280,7 +2290,7 @@ static bool32 Display_ShowKeyboardSwapMenu(u8 *state) { case 0: ShowKeyboardSwapMenu(); - CopyWindowToVram(3, COPYWIN_FULL); + CopyWindowToVram(WIN_SWAP_MENU, COPYWIN_FULL); break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2296,7 +2306,7 @@ static bool32 Display_HideKeyboardSwapMenu(u8 *state) { case 0: HideKeyboardSwapMenu(); - CopyWindowToVram(3, COPYWIN_FULL); + CopyWindowToVram(WIN_SWAP_MENU, COPYWIN_FULL); break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2316,7 +2326,7 @@ static bool32 Display_SwitchPages(u8 *state) return TRUE; PrintCurrentKeyboardPage(); - CopyWindowToVram(2, COPYWIN_GFX); + CopyWindowToVram(WIN_KEYBOARD, COPYWIN_GFX); break; case 1: if (IsDma3ManagerBusyWithBgCopy()) @@ -2393,7 +2403,7 @@ static bool32 Display_UpdateMessageBuffer(u8 *state) FillTextEntryWindow(x, width, 0); str = GetMessageEntryBuffer(); DrawTextEntryMessage(0, str, 3, 1, 2); - CopyWindowToVram(1, COPYWIN_GFX); + CopyWindowToVram(WIN_TEXT_ENTRY, COPYWIN_GFX); break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) @@ -2422,7 +2432,7 @@ static bool32 Display_AskRegisterText(u8 *state) length = StringLength_Multibyte(str); FillTextEntryWindow(x, length, PIXEL_FILL(6)); DrawTextEntryMessage(x, str, 0, 4, 5); - CopyWindowToVram(1, COPYWIN_GFX); + CopyWindowToVram(WIN_TEXT_ENTRY, COPYWIN_GFX); break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) @@ -2463,7 +2473,7 @@ static bool32 Display_CancelRegister(u8 *state) length = StringLength_Multibyte(str); FillTextEntryWindow(x, length, PIXEL_FILL(0)); DrawTextEntryMessage(x, str, 3, 1, 2); - CopyWindowToVram(1, COPYWIN_GFX); + CopyWindowToVram(WIN_TEXT_ENTRY, COPYWIN_GFX); break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) @@ -2501,7 +2511,7 @@ static bool32 Display_ReturnToKeyboard(u8 *state) { case 0: PrintCurrentKeyboardPage(); - CopyWindowToVram(2, COPYWIN_GFX); + CopyWindowToVram(WIN_KEYBOARD, COPYWIN_GFX); (*state)++; break; case 1: @@ -2527,7 +2537,7 @@ static bool32 Display_ScrollChat(u8 *state) str = GetLastReceivedMessage(); colorIdx = GetReceivedPlayerIndex(); PrintChatMessage(row, str, colorIdx); - CopyWindowToVram(0, COPYWIN_GFX); + CopyWindowToVram(WIN_CHAT_HISTORY, COPYWIN_GFX); break; case 1: if (IsDma3ManagerBusyWithBgCopy()) @@ -2546,8 +2556,8 @@ static bool32 Display_ScrollChat(u8 *state) } // fall through case 2: - ScrollWindow(0, 0, 5, PIXEL_FILL(1)); - CopyWindowToVram(0, COPYWIN_GFX); + ScrollWindow(WIN_CHAT_HISTORY, 0, 5, PIXEL_FILL(1)); + CopyWindowToVram(WIN_CHAT_HISTORY, COPYWIN_GFX); sDisplay->scrollCount++; (*state)++; // fall through @@ -2864,7 +2874,7 @@ static void DestroyStdMessageWindow(void) static void FillTextEntryWindow(u16 x, u16 width, u8 fillValue) { - FillWindowPixelRect(1, fillValue, x * 8, 1, width * 8, 14); + FillWindowPixelRect(WIN_TEXT_ENTRY, fillValue, x * 8, 1, width * 8, 14); } static void DrawTextEntryMessage(u16 x, u8 *str, u8 bgColor, u8 fgColor, u8 shadowColor) @@ -2881,7 +2891,7 @@ static void DrawTextEntryMessage(u16 x, u8 *str, u8 bgColor, u8 fgColor, u8 shad strBuffer[1] = EXT_CTRL_CODE_MIN_LETTER_SPACING; strBuffer[2] = 8; StringCopy(&strBuffer[3], str); - AddTextPrinterParameterized3(1, FONT_SHORT, x * 8, 1, color, TEXT_SKIP_DRAW, strBuffer); + AddTextPrinterParameterized3(WIN_TEXT_ENTRY, FONT_SHORT, x * 8, 1, color, TEXT_SKIP_DRAW, strBuffer); } static void PrintCurrentKeyboardPage(void) @@ -2894,7 +2904,7 @@ static void PrintCurrentKeyboardPage(void) u8 str[45]; u8 *str2; - FillWindowPixelBuffer(2, PIXEL_FILL(15)); + FillWindowPixelBuffer(WIN_KEYBOARD, PIXEL_FILL(15)); page = GetCurrentKeyboardPage(); color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_DYNAMIC_COLOR_5; @@ -2916,7 +2926,7 @@ static void PrintCurrentKeyboardPage(void) return; StringCopy(&str[3], sUnionRoomKeyboardText[page][i]); - AddTextPrinterParameterized3(2, FONT_SMALL, left, top, color, TEXT_SKIP_DRAW, str); + AddTextPrinterParameterized3(WIN_KEYBOARD, FONT_SMALL, left, top, color, TEXT_SKIP_DRAW, str); } } else @@ -2927,7 +2937,7 @@ static void PrintCurrentKeyboardPage(void) str2 = GetRegisteredTextByRow(i); if (GetStringWidth(FONT_SMALL, str2, 0) <= 40) { - AddTextPrinterParameterized3(2, FONT_SMALL, left, top, color, TEXT_SKIP_DRAW, str2); + AddTextPrinterParameterized3(WIN_KEYBOARD, FONT_SMALL, left, top, color, TEXT_SKIP_DRAW, str2); } else { @@ -2938,8 +2948,8 @@ static void PrintCurrentKeyboardPage(void) StringCopyN_Multibyte(str, str2, length); } while (GetStringWidth(FONT_SMALL, str, 0) > 35); - AddTextPrinterParameterized3(2, FONT_SMALL, left, top, color, TEXT_SKIP_DRAW, str); - AddTextPrinterParameterized3(2, FONT_SMALL, left + 35, top, color, TEXT_SKIP_DRAW, sText_Ellipsis); + AddTextPrinterParameterized3(WIN_KEYBOARD, FONT_SMALL, left, top, color, TEXT_SKIP_DRAW, str); + AddTextPrinterParameterized3(WIN_KEYBOARD, FONT_SMALL, left + 35, top, color, TEXT_SKIP_DRAW, sText_Ellipsis); } } } @@ -2989,17 +2999,17 @@ static bool32 SlideKeyboardPageIn(void) static void ShowKeyboardSwapMenu(void) { - FillWindowPixelBuffer(3, PIXEL_FILL(1)); - DrawTextBorderOuter(3, 1, 13); - PrintMenuActionTextsAtPos(3, FONT_SHORT, 8, 1, 14, ARRAY_COUNT(sKeyboardPageTitleTexts), sKeyboardPageTitleTexts); - InitMenuNormal(3, FONT_SHORT, 0, 1, 14, 5, GetCurrentKeyboardPage()); - PutWindowTilemap(3); + FillWindowPixelBuffer(WIN_SWAP_MENU, PIXEL_FILL(1)); + DrawTextBorderOuter(WIN_SWAP_MENU, 1, 13); + PrintMenuActionTextsAtPos(WIN_SWAP_MENU, FONT_SHORT, 8, 1, 14, ARRAY_COUNT(sKeyboardPageTitleTexts), sKeyboardPageTitleTexts); + InitMenuNormal(WIN_SWAP_MENU, FONT_SHORT, 0, 1, 14, 5, GetCurrentKeyboardPage()); + PutWindowTilemap(WIN_SWAP_MENU); } static void HideKeyboardSwapMenu(void) { - ClearStdWindowAndFrameToTransparent(3, FALSE); - ClearWindowTilemap(3); + ClearStdWindowAndFrameToTransparent(WIN_SWAP_MENU, FALSE); + ClearWindowTilemap(WIN_SWAP_MENU); } static void PrintChatMessage(u16 row, u8 *str, u8 colorIdx) @@ -3009,8 +3019,8 @@ static void PrintChatMessage(u16 row, u8 *str, u8 colorIdx) color[0] = TEXT_COLOR_WHITE; color[1] = colorIdx * 2 + 2; color[2] = colorIdx * 2 + 3; - FillWindowPixelRect(0, PIXEL_FILL(1), 0, row * 15, 168, 15); - AddTextPrinterParameterized3(0, FONT_SHORT, 0, row * 15 + 1, color, TEXT_SKIP_DRAW, str); + FillWindowPixelRect(WIN_CHAT_HISTORY, PIXEL_FILL(1), 0, row * 15, 168, 15); + AddTextPrinterParameterized3(WIN_CHAT_HISTORY, FONT_SHORT, 0, row * 15 + 1, color, TEXT_SKIP_DRAW, str); } static void ResetGpuBgState(void) @@ -3087,16 +3097,16 @@ static void LoadChatUnkPalette(void) static void LoadChatMessagesWindow(void) { LoadPalette(sUnk_Palette2, 0xF0, sizeof(sUnk_Palette2)); - PutWindowTilemap(0); - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - CopyWindowToVram(0, COPYWIN_FULL); + PutWindowTilemap(WIN_CHAT_HISTORY); + FillWindowPixelBuffer(WIN_CHAT_HISTORY, PIXEL_FILL(1)); + CopyWindowToVram(WIN_CHAT_HISTORY, COPYWIN_FULL); } static void LoadKeyboardWindow(void) { - PutWindowTilemap(2); + PutWindowTilemap(WIN_KEYBOARD); PrintCurrentKeyboardPage(); - CopyWindowToVram(2, COPYWIN_FULL); + CopyWindowToVram(WIN_KEYBOARD, COPYWIN_FULL); } static void LoadTextEntryWindow(void) @@ -3107,18 +3117,18 @@ static void LoadTextEntryWindow(void) unused[1] = 0xFF; for (i = 0; i < MAX_MESSAGE_LENGTH; i++) - BlitBitmapToWindow(1, sDisplay->unk2128, i * 8, 0, 8, 16); + BlitBitmapToWindow(WIN_TEXT_ENTRY, sDisplay->unk2128, i * 8, 0, 8, 16); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - PutWindowTilemap(1); - CopyWindowToVram(1, COPYWIN_FULL); + FillWindowPixelBuffer(WIN_TEXT_ENTRY, PIXEL_FILL(0)); + PutWindowTilemap(WIN_TEXT_ENTRY); + CopyWindowToVram(WIN_TEXT_ENTRY, COPYWIN_FULL); } static void LoadKeyboardSwapWindow(void) { - FillWindowPixelBuffer(3, PIXEL_FILL(1)); - LoadUserWindowBorderGfx(3, 1, 0xD0); - LoadUserWindowBorderGfx_(3, 0xA, 0x20); + FillWindowPixelBuffer(WIN_SWAP_MENU, PIXEL_FILL(1)); + LoadUserWindowBorderGfx(WIN_SWAP_MENU, 1, 0xD0); + LoadUserWindowBorderGfx_(WIN_SWAP_MENU, 0xA, 0x20); LoadPalette(gStandardMenuPalette, 0xE0, 0x20); } From 2cd07d80b8e60cc0b2660dea3df7d2f4295b69c8 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 13:31:01 -0400 Subject: [PATCH 009/125] Use window constants in wireless_communication_status_screen --- src/wireless_communication_status_screen.c | 62 ++++++++++++---------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index 1fbd83fcd..5d40aefb7 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -27,12 +27,20 @@ enum { COLORMODE_WHITE_DGRAY, }; -#define GROUPTYPE_TRADE 0 -#define GROUPTYPE_BATTLE 1 -#define GROUPTYPE_UNION 2 -#define GROUPTYPE_TOTAL 3 -#define GROUPTYPE_NONE -1 -#define NUM_GROUPTYPES 4 +enum { + WIN_TITLE, + WIN_GROUP_NAMES, + WIN_GROUP_COUNTS, +}; + +enum { + GROUPTYPE_NONE = -1, + GROUPTYPE_TRADE, + GROUPTYPE_BATTLE, + GROUPTYPE_UNION, + GROUPTYPE_TOTAL, + NUM_GROUPTYPES +}; struct WirelessCommunicationStatusScreen { @@ -70,7 +78,7 @@ static const struct BgTemplate sBgTemplates[] = { }; static const struct WindowTemplate sWindowTemplates[] = { - { + [WIN_TITLE] = { .bg = 0, .tilemapLeft = 3, .tilemapTop = 0, @@ -78,7 +86,8 @@ static const struct WindowTemplate sWindowTemplates[] = { .height = 3, .paletteNum = 15, .baseBlock = 0x0001 - }, { + }, + [WIN_GROUP_NAMES] = { .bg = 0, .tilemapLeft = 3, .tilemapTop = 4, @@ -86,7 +95,8 @@ static const struct WindowTemplate sWindowTemplates[] = { .height = 15, .paletteNum = 15, .baseBlock = 0x0049 - }, { + }, + [WIN_GROUP_COUNTS] = { .bg = 0, .tilemapLeft = 24, .tilemapTop = 4, @@ -233,19 +243,17 @@ static void WCSS_CyclePalette(s16 * counter, s16 * palIdx) static void PrintHeaderTexts(void) { s32 i; - FillWindowPixelBuffer(0, PIXEL_FILL(0)); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - FillWindowPixelBuffer(2, PIXEL_FILL(0)); - WCSS_AddTextPrinterParameterized(0, FONT_NORMAL, sHeaderTexts[0], GetStringCenterAlignXOffset(FONT_NORMAL, sHeaderTexts[0], 0xC0), 6, COLORMODE_GREEN); + FillWindowPixelBuffer(WIN_TITLE, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_GROUP_NAMES, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_GROUP_COUNTS, PIXEL_FILL(0)); + WCSS_AddTextPrinterParameterized(WIN_TITLE, FONT_NORMAL, sHeaderTexts[0], GetStringCenterAlignXOffset(FONT_NORMAL, sHeaderTexts[0], 0xC0), 6, COLORMODE_GREEN); for (i = 0; i < (int)ARRAY_COUNT(*sHeaderTexts) - 1; i++) - { - WCSS_AddTextPrinterParameterized(1, FONT_NORMAL, sHeaderTexts[i + 1], 0, 30 * i + 8, COLORMODE_WHITE_LGRAY); - } - WCSS_AddTextPrinterParameterized(1, FONT_NORMAL, sHeaderTexts[i + 1], 0, 30 * i + 8, COLORMODE_RED); - PutWindowTilemap(0); - CopyWindowToVram(0, COPYWIN_GFX); - PutWindowTilemap(1); - CopyWindowToVram(1, COPYWIN_GFX); + WCSS_AddTextPrinterParameterized(WIN_GROUP_NAMES, FONT_NORMAL, sHeaderTexts[i + 1], 0, 30 * i + 8, COLORMODE_WHITE_LGRAY); + WCSS_AddTextPrinterParameterized(WIN_GROUP_NAMES, FONT_NORMAL, sHeaderTexts[i + 1], 0, 30 * i + 8, COLORMODE_RED); + PutWindowTilemap(WIN_TITLE); + CopyWindowToVram(WIN_TITLE, COPYWIN_GFX); + PutWindowTilemap(WIN_GROUP_NAMES); + CopyWindowToVram(WIN_GROUP_NAMES, COPYWIN_GFX); } #define tState data[0] @@ -268,24 +276,22 @@ static void Task_WirelessCommunicationScreen(u8 taskId) break; case 2: if (!gPaletteFade.active) - { gTasks[taskId].tState++; - } break; case 3: if (UpdateCommunicationCounts(sStatusScreen->groupCounts, sStatusScreen->prevGroupCounts, sStatusScreen->activities, sStatusScreen->rfuTaskId)) { - FillWindowPixelBuffer(2, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_GROUP_COUNTS, PIXEL_FILL(0)); for (i = 0; i < NUM_GROUPTYPES; i++) { ConvertIntToDecimalStringN(gStringVar4, sStatusScreen->groupCounts[i], STR_CONV_MODE_RIGHT_ALIGN, 2); if (i != GROUPTYPE_TOTAL) - WCSS_AddTextPrinterParameterized(2, FONT_NORMAL, gStringVar4, 12, 30 * i + 8, COLORMODE_WHITE_LGRAY); + WCSS_AddTextPrinterParameterized(WIN_GROUP_COUNTS, FONT_NORMAL, gStringVar4, 12, 30 * i + 8, COLORMODE_WHITE_LGRAY); else - WCSS_AddTextPrinterParameterized(2, FONT_NORMAL, gStringVar4, 12, 98, COLORMODE_RED); + WCSS_AddTextPrinterParameterized(WIN_GROUP_COUNTS, FONT_NORMAL, gStringVar4, 12, 98, COLORMODE_RED); } - PutWindowTilemap(2); - CopyWindowToVram(2, COPYWIN_FULL); + PutWindowTilemap(WIN_GROUP_COUNTS); + CopyWindowToVram(WIN_GROUP_COUNTS, COPYWIN_FULL); } if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) { From 9ae918bb3564065d056c75fe80a86061b1962f77 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 13:37:32 -0400 Subject: [PATCH 010/125] Use window constants in field_region_map --- src/field_region_map.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/field_region_map.c b/src/field_region_map.c index 43055174f..365b1622a 100644 --- a/src/field_region_map.c +++ b/src/field_region_map.c @@ -23,9 +23,15 @@ * For the fly map, and utility functions all of the maps use, see region_map.c */ -// Static type declarations +enum { + WIN_MAPSEC_NAME, + WIN_TITLE, +}; -// Static RAM declarations +enum { + TAG_PLAYER_ICON, + TAG_CURSOR, +}; static EWRAM_DATA struct { MainCallback callback; @@ -34,16 +40,12 @@ static EWRAM_DATA struct { u16 state; } *sFieldRegionMapHandler = NULL; -// Static ROM declarations - static void MCB2_InitRegionMapRegisters(void); static void VBCB_FieldUpdateRegionMap(void); static void MCB2_FieldUpdateRegionMap(void); static void FieldUpdateRegionMap(void); static void PrintRegionMapSecName(void); -// .rodata - static const struct BgTemplate sFieldRegionMapBgTemplates[] = { { .bg = 0, @@ -66,7 +68,7 @@ static const struct BgTemplate sFieldRegionMapBgTemplates[] = { static const struct WindowTemplate sFieldRegionMapWindowTemplates[] = { - { + [WIN_MAPSEC_NAME] = { .bg = 0, .tilemapLeft = 17, .tilemapTop = 17, @@ -75,7 +77,7 @@ static const struct WindowTemplate sFieldRegionMapWindowTemplates[] = .paletteNum = 15, .baseBlock = 1 }, - { + [WIN_TITLE] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 1, @@ -87,8 +89,6 @@ static const struct WindowTemplate sFieldRegionMapWindowTemplates[] = DUMMY_WIN_TEMPLATE }; -// .text - void FieldInitRegionMap(MainCallback callback) { SetVBlankCallback(NULL); @@ -145,16 +145,16 @@ static void FieldUpdateRegionMap(void) { case 0: InitRegionMap(&sFieldRegionMapHandler->regionMap, FALSE); - CreateRegionMapPlayerIcon(0, 0); - CreateRegionMapCursor(1, 1); + CreateRegionMapPlayerIcon(TAG_PLAYER_ICON, TAG_PLAYER_ICON); + CreateRegionMapCursor(TAG_CURSOR, TAG_CURSOR); sFieldRegionMapHandler->state++; break; case 1: - DrawStdFrameWithCustomTileAndPalette(1, FALSE, 0x27, 0xd); + DrawStdFrameWithCustomTileAndPalette(WIN_TITLE, FALSE, 0x27, 0xd); offset = GetStringCenterAlignXOffset(FONT_NORMAL, gText_Hoenn, 0x38); - AddTextPrinterParameterized(1, FONT_NORMAL, gText_Hoenn, offset, 1, 0, NULL); + AddTextPrinterParameterized(WIN_TITLE, FONT_NORMAL, gText_Hoenn, offset, 1, 0, NULL); ScheduleBgCopyTilemapToVram(0); - DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x27, 0xd); + DrawStdFrameWithCustomTileAndPalette(WIN_MAPSEC_NAME, FALSE, 0x27, 0xd); PrintRegionMapSecName(); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); sFieldRegionMapHandler->state++; @@ -203,13 +203,13 @@ static void PrintRegionMapSecName(void) { if (sFieldRegionMapHandler->regionMap.mapSecType != MAPSECTYPE_NONE) { - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized(0, FONT_NORMAL, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); - ScheduleBgCopyTilemapToVram(0); + FillWindowPixelBuffer(WIN_MAPSEC_NAME, PIXEL_FILL(1)); + AddTextPrinterParameterized(WIN_MAPSEC_NAME, FONT_NORMAL, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL); + ScheduleBgCopyTilemapToVram(WIN_MAPSEC_NAME); } else { - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - CopyWindowToVram(0, COPYWIN_FULL); + FillWindowPixelBuffer(WIN_MAPSEC_NAME, PIXEL_FILL(1)); + CopyWindowToVram(WIN_MAPSEC_NAME, COPYWIN_FULL); } } From c719d5d9b1a6af7e1afe6966dfd8b07edc09437b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 14:50:51 -0400 Subject: [PATCH 011/125] Use window constants in link --- src/link.c | 50 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/src/link.c b/src/link.c index b01be9d89..3d36755fc 100644 --- a/src/link.c +++ b/src/link.c @@ -28,6 +28,13 @@ #include "constants/rgb.h" #include "constants/trade.h" +// Window IDs for the link error screens +enum { + WIN_LINK_ERROR_TOP, + WIN_LINK_ERROR_MID, + WIN_LINK_ERROR_BOTTOM, +}; + struct BlockTransfer { u16 pos; @@ -193,8 +200,9 @@ static const struct BgTemplate sLinkErrorBgTemplates[] = { .priority = 1 } }; + static const struct WindowTemplate sLinkErrorWindowTemplates[] = { - { + [WIN_LINK_ERROR_TOP] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 0, @@ -202,7 +210,8 @@ static const struct WindowTemplate sLinkErrorWindowTemplates[] = { .height = 5, .paletteNum = 15, .baseBlock = 0x002 - }, { + }, + [WIN_LINK_ERROR_MID] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 6, @@ -210,7 +219,8 @@ static const struct WindowTemplate sLinkErrorWindowTemplates[] = { .height = 7, .paletteNum = 15, .baseBlock = 0x098 - }, { + }, + [WIN_LINK_ERROR_BOTTOM] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 13, @@ -1641,26 +1651,26 @@ static void ErrorMsg_MoveCloserToPartner(void) CopyToBgTilemapBuffer(1, sWirelessLinkDisplayTilemap, 0, 0); CopyBgTilemapBufferToVram(1); LoadPalette(sWirelessLinkDisplayPal, 0, 0x20); - FillWindowPixelBuffer(0, PIXEL_FILL(0)); - FillWindowPixelBuffer(2, PIXEL_FILL(0)); - AddTextPrinterParameterized3(0, FONT_SHORT_COPY_1, 2, 6, sTextColors, 0, gText_CommErrorEllipsis); - AddTextPrinterParameterized3(2, FONT_SHORT_COPY_1, 2, 1, sTextColors, 0, gText_MoveCloserToLinkPartner); - PutWindowTilemap(0); - PutWindowTilemap(2); - CopyWindowToVram(0, COPYWIN_NONE); // Does nothing - CopyWindowToVram(2, COPYWIN_FULL); + FillWindowPixelBuffer(WIN_LINK_ERROR_TOP, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_LINK_ERROR_BOTTOM, PIXEL_FILL(0)); + AddTextPrinterParameterized3(WIN_LINK_ERROR_TOP, FONT_SHORT_COPY_1, 2, 6, sTextColors, 0, gText_CommErrorEllipsis); + AddTextPrinterParameterized3(WIN_LINK_ERROR_BOTTOM, FONT_SHORT_COPY_1, 2, 1, sTextColors, 0, gText_MoveCloserToLinkPartner); + PutWindowTilemap(WIN_LINK_ERROR_TOP); + PutWindowTilemap(WIN_LINK_ERROR_BOTTOM); + CopyWindowToVram(WIN_LINK_ERROR_TOP, COPYWIN_NONE); // Does nothing + CopyWindowToVram(WIN_LINK_ERROR_BOTTOM, COPYWIN_FULL); } static void ErrorMsg_CheckConnections(void) { LoadBgTiles(0, sCommErrorBg_Gfx, 0x20, 0); - FillWindowPixelBuffer(1, PIXEL_FILL(0)); - FillWindowPixelBuffer(2, PIXEL_FILL(0)); - AddTextPrinterParameterized3(1, FONT_SHORT_COPY_1, 2, 0, sTextColors, 0, gText_CommErrorCheckConnections); - PutWindowTilemap(1); - PutWindowTilemap(2); - CopyWindowToVram(1, COPYWIN_NONE); // Does nothing - CopyWindowToVram(2, COPYWIN_FULL); + FillWindowPixelBuffer(WIN_LINK_ERROR_MID, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_LINK_ERROR_BOTTOM, PIXEL_FILL(0)); + AddTextPrinterParameterized3(WIN_LINK_ERROR_MID, FONT_SHORT_COPY_1, 2, 0, sTextColors, 0, gText_CommErrorCheckConnections); + PutWindowTilemap(WIN_LINK_ERROR_MID); + PutWindowTilemap(WIN_LINK_ERROR_BOTTOM); + CopyWindowToVram(WIN_LINK_ERROR_MID, COPYWIN_NONE); // Does nothing + CopyWindowToVram(WIN_LINK_ERROR_BOTTOM, COPYWIN_FULL); } static void CB2_PrintErrorMessage(void) @@ -1691,9 +1701,9 @@ static void CB2_PrintErrorMessage(void) break; case 130: if (gWirelessCommType == 2) - AddTextPrinterParameterized3(0, FONT_SHORT_COPY_1, 2, 20, sTextColors, 0, gText_ABtnTitleScreen); + AddTextPrinterParameterized3(WIN_LINK_ERROR_TOP, FONT_SHORT_COPY_1, 2, 20, sTextColors, 0, gText_ABtnTitleScreen); else if (gWirelessCommType == 1) - AddTextPrinterParameterized3(0, FONT_SHORT_COPY_1, 2, 20, sTextColors, 0, gText_ABtnRegistrationCounter); + AddTextPrinterParameterized3(WIN_LINK_ERROR_TOP, FONT_SHORT_COPY_1, 2, 20, sTextColors, 0, gText_ABtnRegistrationCounter); break; } if (gMain.state == 160) From 6bc1955c992458891538267193eaa18549d9cf66 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 15:03:44 -0400 Subject: [PATCH 012/125] Use window constants in easy_chat --- src/easy_chat.c | 88 ++++++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/src/easy_chat.c b/src/easy_chat.c index 054c65c0f..8a2bae7d5 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -226,18 +226,23 @@ static void DoQuizQuestionEasyChatScreen(void); static void DoQuizSetAnswerEasyChatScreen(void); static void DoQuizSetQuestionEasyChatScreen(void); -#define PALTAG_TRIANGLE_CURSOR 0 -#define PALTAG_RECTANGLE_CURSOR 1 -#define PALTAG_MISC_UI 2 -#define PALTAG_RS_INTERVIEW_FRAME 3 +enum { + PALTAG_TRIANGLE_CURSOR, + PALTAG_RECTANGLE_CURSOR, + PALTAG_MISC_UI, + PALTAG_RS_INTERVIEW_FRAME, +}; + +enum { + GFXTAG_TRIANGLE_CURSOR, + GFXTAG_RECTANGLE_CURSOR, + GFXTAG_SCROLL_INDICATOR, + GFXTAG_START_SELECT_BUTTONS, + GFXTAG_MODE_WINDOW, + GFXTAG_RS_INTERVIEW_FRAME, + GFXTAG_BUTTON_WINDOW, +}; -#define GFXTAG_TRIANGLE_CURSOR 0 -#define GFXTAG_RECTANGLE_CURSOR 1 -#define GFXTAG_SCROLL_INDICATOR 2 -#define GFXTAG_START_SELECT_BUTTONS 3 -#define GFXTAG_MODE_WINDOW 4 -#define GFXTAG_RS_INTERVIEW_FRAME 5 -#define GFXTAG_BUTTON_WINDOW 6 // State values for sEasyChatScreen->inputState // Control which input handler to use in HandleEasyChatInput @@ -376,6 +381,13 @@ enum { WINANIM_KEYBOARD_SWITCH_IN, }; +// Window IDs +enum { + WIN_TITLE, + WIN_MSG, + WIN_INPUT_SELECT, // Word groups, word list, and keyboard +}; + // Values for text frame tilemap #define FRAME_OFFSET_ORANGE 0x1000 // Orange frame, for phrase text #define FRAME_OFFSET_GREEN 0x4000 // Green frame, for keyboard/word select @@ -814,7 +826,7 @@ static const struct BgTemplate sEasyChatBgTemplates[] = { }; static const struct WindowTemplate sEasyChatWindowTemplates[] = { - { + [WIN_TITLE] = { .bg = 1, .tilemapLeft = 6, .tilemapTop = 0, @@ -823,7 +835,7 @@ static const struct WindowTemplate sEasyChatWindowTemplates[] = { .paletteNum = 10, .baseBlock = 0x10, }, - { + [WIN_MSG] = { .bg = 0, .tilemapLeft = 3, .tilemapTop = 15, @@ -832,7 +844,7 @@ static const struct WindowTemplate sEasyChatWindowTemplates[] = { .paletteNum = 15, .baseBlock = 0xA, }, - { + [WIN_INPUT_SELECT] = { .bg = 2, .tilemapLeft = 1, .tilemapTop = 0, @@ -3934,10 +3946,10 @@ static void PrintTitle(void) return; xOffset = GetStringCenterAlignXOffset(FONT_NORMAL, titleText, 144); - FillWindowPixelBuffer(0, PIXEL_FILL(0)); - PrintEasyChatTextWithColors(0, FONT_NORMAL, titleText, xOffset, 1, TEXT_SKIP_DRAW, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); - PutWindowTilemap(0); - CopyWindowToVram(0, COPYWIN_FULL); + FillWindowPixelBuffer(WIN_TITLE, PIXEL_FILL(0)); + PrintEasyChatTextWithColors(WIN_TITLE, FONT_NORMAL, titleText, xOffset, 1, TEXT_SKIP_DRAW, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); + PutWindowTilemap(WIN_TITLE); + CopyWindowToVram(WIN_TITLE, COPYWIN_FULL); } static void PrintEasyChatText(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16)) @@ -3957,10 +3969,10 @@ static void PrintEasyChatTextWithColors(u8 windowId, u8 fontId, const u8 *str, u static void PrintInitialInstructions(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); - LoadUserWindowBorderGfx(1, 1, 0xE0); - DrawTextBorderOuter(1, 1, 14); + LoadUserWindowBorderGfx(WIN_MSG, 1, 0xE0); + DrawTextBorderOuter(WIN_MSG, 1, 14); PrintEasyChatStdMessage(MSG_INSTRUCTIONS); - PutWindowTilemap(1); + PutWindowTilemap(WIN_MSG); CopyBgTilemapBufferToVram(0); } @@ -4004,14 +4016,14 @@ static void PrintEasyChatStdMessage(u8 msgId) break; } - FillWindowPixelBuffer(1, PIXEL_FILL(1)); + FillWindowPixelBuffer(WIN_MSG, PIXEL_FILL(1)); if (text1) - PrintEasyChatText(1, FONT_NORMAL, text1, 0, 1, TEXT_SKIP_DRAW, 0); + PrintEasyChatText(WIN_MSG, FONT_NORMAL, text1, 0, 1, TEXT_SKIP_DRAW, 0); if (text2) - PrintEasyChatText(1, FONT_NORMAL, text2, 0, 17, TEXT_SKIP_DRAW, 0); + PrintEasyChatText(WIN_MSG, FONT_NORMAL, text2, 0, 17, TEXT_SKIP_DRAW, 0); - CopyWindowToVram(1, COPYWIN_FULL); + CopyWindowToVram(WIN_MSG, COPYWIN_FULL); } static void CreateEasyChatYesNoMenu(u8 initialCursorPos) @@ -4198,14 +4210,14 @@ static void AdjustBgTilemapForFooter(void) static void DrawLowerWindow(void) { - PutWindowTilemap(2); - CopyBgTilemapBufferToVram(2); + PutWindowTilemap(WIN_INPUT_SELECT); + CopyBgTilemapBufferToVram(WIN_INPUT_SELECT); } static void InitLowerWindowText(u32 whichText) { ResetLowerWindowScroll(); - FillWindowPixelBuffer(2, PIXEL_FILL(1)); + FillWindowPixelBuffer(WIN_INPUT_SELECT, PIXEL_FILL(1)); switch (whichText) { case TEXT_GROUPS: @@ -4219,7 +4231,7 @@ static void InitLowerWindowText(u32 whichText) break; } - CopyWindowToVram(2, COPYWIN_GFX); + CopyWindowToVram(WIN_INPUT_SELECT, COPYWIN_GFX); } static void PrintKeyboardText(void) @@ -4248,7 +4260,7 @@ static void PrintKeyboardGroupNames(void) return; } - PrintEasyChatText(2, FONT_NORMAL, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, TEXT_SKIP_DRAW, NULL); + PrintEasyChatText(WIN_INPUT_SELECT, FONT_NORMAL, GetEasyChatWordGroupName(groupId), x * 84 + 10, y, TEXT_SKIP_DRAW, NULL); } y += 16; @@ -4260,7 +4272,7 @@ static void PrintKeyboardAlphabet(void) u32 i; for (i = 0; i < ARRAY_COUNT(sEasyChatKeyboardAlphabet); i++) - PrintEasyChatText(2, FONT_NORMAL, sEasyChatKeyboardAlphabet[i], 10, 97 + i * 16, TEXT_SKIP_DRAW, NULL); + PrintEasyChatText(WIN_INPUT_SELECT, FONT_NORMAL, sEasyChatKeyboardAlphabet[i], 10, 97 + i * 16, TEXT_SKIP_DRAW, NULL); } static void PrintInitialWordSelectText(void) @@ -4331,16 +4343,16 @@ static void PrintWordSelectText(u8 scrollOffset, u8 numRows) { CopyEasyChatWordPadded(sScreenControl->wordSelectPrintBuffer, easyChatWord, 0); if (!DummyWordCheck(easyChatWord)) - PrintEasyChatText(2, FONT_NORMAL, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SKIP_DRAW, NULL); + PrintEasyChatText(WIN_INPUT_SELECT, FONT_NORMAL, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SKIP_DRAW, NULL); else // Never reached - PrintEasyChatTextWithColors(2, FONT_NORMAL, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SKIP_DRAW, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GRAY); + PrintEasyChatTextWithColors(WIN_INPUT_SELECT, FONT_NORMAL, sScreenControl->wordSelectPrintBuffer, (j * 13 + 3) * 8, y, TEXT_SKIP_DRAW, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_LIGHT_GRAY); } } y += 16; } - CopyWindowToVram(2, COPYWIN_GFX); + CopyWindowToVram(WIN_INPUT_SELECT, COPYWIN_GFX); } static void EraseWordSelectRows(u8 scrollOffset, u8 numRows) @@ -4364,15 +4376,15 @@ static void EraseWordSelectRows(u8 scrollOffset, u8 numRows) var1 = 0; } - FillWindowPixelRect(2, PIXEL_FILL(1), 0, y, 224, var2); + FillWindowPixelRect(WIN_INPUT_SELECT, PIXEL_FILL(1), 0, y, 224, var2); if (var1) - FillWindowPixelRect(2, PIXEL_FILL(1), 0, 0, 224, var1); + FillWindowPixelRect(WIN_INPUT_SELECT, PIXEL_FILL(1), 0, 0, 224, var1); } static void ClearWordSelectWindow(void) { - FillWindowPixelBuffer(2, PIXEL_FILL(1)); - CopyWindowToVram(2, COPYWIN_GFX); + FillWindowPixelBuffer(WIN_INPUT_SELECT, PIXEL_FILL(1)); + CopyWindowToVram(WIN_INPUT_SELECT, COPYWIN_GFX); } static void InitLowerWindowAnim(int winAnimType) From 5af7355fbd8a04e4d24a7e5e791f2ca5c6d68935 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 15:10:32 -0400 Subject: [PATCH 013/125] Clarify window ID usage in contest_util --- src/contest_util.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/contest_util.c b/src/contest_util.c index d44b47373..654a0c399 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -319,9 +319,10 @@ static const struct BgTemplate sBgTemplates[] = } }; -static const struct WindowTemplate sWindowTemplates[] = +// Window IDs are implicitly shared with contestant IDs in LoadContestMonName +static const struct WindowTemplate sWindowTemplates[CONTESTANT_COUNT + 1] = { - { + { // Contestant 1 .bg = 1, .tilemapLeft = 7, .tilemapTop = 4, @@ -330,7 +331,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 15, .baseBlock = 770 }, - { + { // Contestant 2 .bg = 1, .tilemapLeft = 7, .tilemapTop = 7, @@ -339,7 +340,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 15, .baseBlock = 794 }, - { + { // Contestant 3 .bg = 1, .tilemapLeft = 7, .tilemapTop = 10, @@ -348,7 +349,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 15, .baseBlock = 818 }, - { + { // Contestant 4 .bg = 1, .tilemapLeft = 7, .tilemapTop = 13, @@ -357,7 +358,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 15, .baseBlock = 842 }, - DUMMY_WIN_TEMPLATE, + DUMMY_WIN_TEMPLATE }; static const struct OamData sOamData_WirelessIndicatorWindow = From fb87616e9d147de21fe2eba278f0f74737ebfc32 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 15:48:19 -0400 Subject: [PATCH 014/125] Use window constants in mystery_gift_menu --- include/mystery_gift_menu.h | 4 +- src/ereader_screen.c | 14 ++-- src/mystery_gift_menu.c | 133 +++++++++++++++++++----------------- src/mystery_gift_view.c | 4 +- src/union_room.c | 18 ++--- 5 files changed, 91 insertions(+), 82 deletions(-) diff --git a/include/mystery_gift_menu.h b/include/mystery_gift_menu.h index dc30d3051..665c4596e 100644 --- a/include/mystery_gift_menu.h +++ b/include/mystery_gift_menu.h @@ -5,11 +5,11 @@ extern bool8 gGiftIsFromEReader; u16 GetMysteryGiftBaseBlock(void); void CB2_MysteryGiftEReader(void); -void PrintMysteryGiftOrEReaderTopMenu(bool8 isJapanese, bool32 usePickOkCancel); +void PrintMysteryGiftOrEReaderHeader(bool8 isJapanese, bool32 usePickOkCancel); void MG_DrawCheckerboardPattern(u32 bg); void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void); bool32 PrintMysteryGiftMenuMessage(u8 *textState, const u8 *str); -void AddTextPrinterToWindow1(const u8 *src); +void MG_AddMessageTextPrinter(const u8 *src); void CB2_InitEReader(void); void CB2_InitMysteryGift(void); void MG_DrawTextBorder(u8 windowId); diff --git a/src/ereader_screen.c b/src/ereader_screen.c index b6bf7133a..8079c9900 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -342,7 +342,7 @@ static void Task_EReader(u8 taskId) case ER_STATE_MSG_SELECT_CONNECT: if (PrintMysteryGiftMenuMessage(&data->textState, gJPText_SelectConnectFromEReaderMenu)) { - AddTextPrinterToWindow1(gJPText_SelectConnectWithGBA); + MG_AddMessageTextPrinter(gJPText_SelectConnectWithGBA); ResetTimer(&data->timer); data->state = ER_STATE_MSG_SELECT_CONNECT_WAIT; } @@ -396,7 +396,7 @@ static void Task_EReader(u8 taskId) data->state = ER_STATE_MSG_SELECT_CONNECT; break; case ER_STATE_CONNECTING: - AddTextPrinterToWindow1(gJPText_Connecting); + MG_AddMessageTextPrinter(gJPText_Connecting); // XXX: This (u32 *) cast is discarding the const qualifier from gMultiBootProgram_EReader_Start EReader_Load(&gEReaderData, gMultiBootProgram_EReader_End - gMultiBootProgram_EReader_Start, (u32 *)gMultiBootProgram_EReader_Start); data->state = ER_STATE_TRANSFER; @@ -415,7 +415,7 @@ static void Task_EReader(u8 taskId) else if (data->status == TRANSFER_SUCCESS) { ResetTimer(&data->timer); - AddTextPrinterToWindow1(gJPText_PleaseWaitAMoment); + MG_AddMessageTextPrinter(gJPText_PleaseWaitAMoment); data->state = ER_STATE_TRANSFER_SUCCESS; } else // TRANSFER_CANCELED @@ -429,7 +429,7 @@ static void Task_EReader(u8 taskId) break; case ER_STATE_LOAD_CARD_START: OpenEReaderLink(); - AddTextPrinterToWindow1(gJPText_AllowEReaderToLoadCard); + MG_AddMessageTextPrinter(gJPText_AllowEReaderToLoadCard); data->state = ER_STATE_LOAD_CARD; break; case ER_STATE_LOAD_CARD: @@ -438,7 +438,7 @@ static void Task_EReader(u8 taskId) case RECV_ACTIVE: break; case RECV_SUCCESS: - AddTextPrinterToWindow1(gJPText_Connecting); + MG_AddMessageTextPrinter(gJPText_Connecting); data->state = ER_STATE_WAIT_RECV_CARD; break; case RECV_CANCELED: @@ -486,7 +486,7 @@ static void Task_EReader(u8 taskId) case ER_STATE_SAVE: if (TryWriteTrainerHill((struct EReaderTrainerHillSet *)&gDecompressionBuffer)) { - AddTextPrinterToWindow1(gJPText_ConnectionComplete); + MG_AddMessageTextPrinter(gJPText_ConnectionComplete); ResetTimer(&data->timer); data->state = ER_STATE_SUCCESS_MSG; } @@ -498,7 +498,7 @@ static void Task_EReader(u8 taskId) case ER_STATE_SUCCESS_MSG: if (UpdateTimer(&data->timer, 120)) { - AddTextPrinterToWindow1(gJPText_NewTrainerHasComeToHoenn); + MG_AddMessageTextPrinter(gJPText_NewTrainerHasComeToHoenn); PlayFanfare(MUS_OBTAIN_ITEM); data->state = ER_STATE_SUCCESS_END; } diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 9e4796bb2..9c8aea4d6 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -32,6 +32,12 @@ #include "wonder_news.h" #include "constants/cable_club.h" +enum { + WIN_HEADER, + WIN_MSG, + WIN_UNK, // Cleared, but nothing is ever apparently rendered on it +}; + #define LIST_MENU_TILE_NUM 10 #define LIST_MENU_PAL_NUM 224 @@ -98,7 +104,7 @@ static const struct BgTemplate sBGTemplates[] = { }; static const struct WindowTemplate sMainWindows[] = { - { + [WIN_HEADER] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 0, @@ -106,7 +112,8 @@ static const struct WindowTemplate sMainWindows[] = { .height = 2, .paletteNum = 12, .baseBlock = 0x0013 - }, { + }, + [WIN_MSG] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 15, @@ -114,7 +121,8 @@ static const struct WindowTemplate sMainWindows[] = { .height = 4, .paletteNum = 12, .baseBlock = 0x004f - }, { + }, + [WIN_UNK] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 15, @@ -224,7 +232,7 @@ static const struct ListMenuTemplate sListMenuTemplate_ThreeOptions = { .itemPrintFunc = NULL, .totalItems = 3, .maxShowed = 3, - .windowId = 0, + .windowId = 0, // Overwritten by DoMysteryGiftListMenu .header_X = 0, .item_X = 8, .cursor_X = 0, @@ -269,7 +277,7 @@ static const struct ListMenuTemplate sListMenu_ReceiveSendToss = { .itemPrintFunc = NULL, .totalItems = 4, .maxShowed = 4, - .windowId = 0, + .windowId = 0, // Overwritten by DoMysteryGiftListMenu .header_X = 0, .item_X = 8, .cursor_X = 0, @@ -290,7 +298,7 @@ static const struct ListMenuTemplate sListMenu_ReceiveToss = { .itemPrintFunc = NULL, .totalItems = 3, .maxShowed = 3, - .windowId = 0, + .windowId = 0, // Overwritten by DoMysteryGiftListMenu .header_X = 0, .item_X = 8, .cursor_X = 0, @@ -311,7 +319,7 @@ static const struct ListMenuTemplate sListMenu_ReceiveSend = { .itemPrintFunc = NULL, .totalItems = 3, .maxShowed = 3, - .windowId = 0, + .windowId = 0, // Overwritten by DoMysteryGiftListMenu .header_X = 0, .item_X = 8, .cursor_X = 0, @@ -332,7 +340,7 @@ static const struct ListMenuTemplate sListMenu_Receive = { .itemPrintFunc = NULL, .totalItems = 2, .maxShowed = 2, - .windowId = 0, + .windowId = 0, // Overwritten by DoMysteryGiftListMenu .header_X = 0, .item_X = 8, .cursor_X = 0, @@ -354,9 +362,9 @@ static const u8 *const sUnusedMenuTexts[] = { gText_ReturnToTitle }; -ALIGNED(2) static const u8 sTextColors_TopMenu[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; -ALIGNED(2) static const u8 sTextColors_TopMenu_Copy[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; -ALIGNED(2) static const u8 sMG_Ereader_TextColor_2[] = { TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY }; +ALIGNED(2) static const u8 sTextColors_Header[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; +ALIGNED(2) static const u8 sTextColors_Header_Copy[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; +ALIGNED(2) static const u8 sMG_Ereader_TextColor_2[] = { TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY }; static void VBlankCB_MysteryGiftEReader(void) { @@ -420,7 +428,7 @@ static bool32 HandleMysteryGiftOrEReaderSetup(s32 isEReader) FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); MG_DrawCheckerboardPattern(3); - PrintMysteryGiftOrEReaderTopMenu(isEReader, FALSE); + PrintMysteryGiftOrEReaderHeader(isEReader, FALSE); gMain.state++; break; case 2: @@ -474,26 +482,27 @@ void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void) SetMainCallback2(CB2_InitTitleScreen); } -void PrintMysteryGiftOrEReaderTopMenu(bool8 isEReader, bool32 useCancel) +// Print the text window at the top of the screen with the title and control instructions +void PrintMysteryGiftOrEReaderHeader(bool8 isEReader, bool32 useCancel) { - const u8 * header; + const u8 * title; const u8 * options; - FillWindowPixelBuffer(0, 0); + FillWindowPixelBuffer(WIN_HEADER, 0); if (!isEReader) { - header = gText_MysteryGift; + title = gText_MysteryGift; options = !useCancel ? gText_PickOKExit : gText_PickOKCancel; } else { - header = gJPText_MysteryGift; + title = gJPText_MysteryGift; options = gJPText_DecideStop; } - AddTextPrinterParameterized4(0, FONT_NORMAL, 4, 1, 0, 0, sTextColors_TopMenu, TEXT_SKIP_DRAW, header); - AddTextPrinterParameterized4(0, FONT_SMALL, GetStringRightAlignXOffset(FONT_SMALL, options, 0xDE), 1, 0, 0, sTextColors_TopMenu, TEXT_SKIP_DRAW, options); - CopyWindowToVram(0, COPYWIN_GFX); - PutWindowTilemap(0); + AddTextPrinterParameterized4(WIN_HEADER, FONT_NORMAL, 4, 1, 0, 0, sTextColors_Header, TEXT_SKIP_DRAW, title); + AddTextPrinterParameterized4(WIN_HEADER, FONT_SMALL, GetStringRightAlignXOffset(FONT_SMALL, options, 0xDE), 1, 0, 0, sTextColors_Header, TEXT_SKIP_DRAW, options); + CopyWindowToVram(WIN_HEADER, COPYWIN_GFX); + PutWindowTilemap(WIN_HEADER); } void MG_DrawTextBorder(u8 windowId) @@ -533,21 +542,21 @@ static void ClearScreenInBg0(bool32 ignoreTopTwoRows) CopyBgTilemapBufferToVram(0); } -void AddTextPrinterToWindow1(const u8 *str) +void MG_AddMessageTextPrinter(const u8 *str) { StringExpandPlaceholders(gStringVar4, str); - FillWindowPixelBuffer(1, 0x11); - AddTextPrinterParameterized4(1, FONT_NORMAL, 0, 1, 0, 0, sMG_Ereader_TextColor_2, 0, gStringVar4); - DrawTextBorderOuter(1, 0x001, 0xF); - PutWindowTilemap(1); - CopyWindowToVram(1, COPYWIN_FULL); + FillWindowPixelBuffer(WIN_MSG, 0x11); + AddTextPrinterParameterized4(WIN_MSG, FONT_NORMAL, 0, 1, 0, 0, sMG_Ereader_TextColor_2, 0, gStringVar4); + DrawTextBorderOuter(WIN_MSG, 0x001, 0xF); + PutWindowTilemap(WIN_MSG); + CopyWindowToVram(WIN_MSG, COPYWIN_FULL); } -static void ClearTextWindow(void) +static void ClearMessage(void) { - rbox_fill_rectangle(1); - ClearWindowTilemap(1); - CopyWindowToVram(1, COPYWIN_MAP); + rbox_fill_rectangle(WIN_MSG); + ClearWindowTilemap(WIN_MSG); + CopyWindowToVram(WIN_MSG, COPYWIN_MAP); } #define DOWN_ARROW_X 208 @@ -558,18 +567,18 @@ bool32 PrintMysteryGiftMenuMessage(u8 *textState, const u8 *str) switch (*textState) { case 0: - AddTextPrinterToWindow1(str); + MG_AddMessageTextPrinter(str); (*textState)++; break; case 1: - DrawDownArrow(1, DOWN_ARROW_X, DOWN_ARROW_Y, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); - if (({JOY_NEW(A_BUTTON | B_BUTTON);})) + DrawDownArrow(WIN_MSG, DOWN_ARROW_X, DOWN_ARROW_Y, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); + if (JOY_NEW(A_BUTTON | B_BUTTON)) (*textState)++; break; case 2: - DrawDownArrow(1, DOWN_ARROW_X, DOWN_ARROW_Y, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); + DrawDownArrow(WIN_MSG, DOWN_ARROW_X, DOWN_ARROW_Y, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); *textState = 0; - ClearTextWindow(); + ClearMessage(); return TRUE; case 0xFF: *textState = 2; @@ -580,12 +589,12 @@ bool32 PrintMysteryGiftMenuMessage(u8 *textState, const u8 *str) static void HideDownArrow(void) { - DrawDownArrow(1, DOWN_ARROW_X, DOWN_ARROW_Y, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); + DrawDownArrow(WIN_MSG, DOWN_ARROW_X, DOWN_ARROW_Y, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); } static void ShowDownArrow(void) { - DrawDownArrow(1, DOWN_ARROW_X, DOWN_ARROW_Y, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); + DrawDownArrow(WIN_MSG, DOWN_ARROW_X, DOWN_ARROW_Y, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]); } // Unused @@ -609,12 +618,12 @@ static bool32 HideDownArrowAndWaitButton(u8 * textState) static bool32 PrintStringAndWait2Seconds(u8 * counter, const u8 * str) { if (*counter == 0) - AddTextPrinterToWindow1(str); + MG_AddMessageTextPrinter(str); if (++(*counter) > 120) { *counter = 0; - ClearTextWindow(); + ClearMessage(); return TRUE; } else @@ -648,8 +657,8 @@ static u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whi response = DoMysteryGiftListMenu(&windowTemplate, &listMenuTemplate, 1, LIST_MENU_TILE_NUM, LIST_MENU_PAL_NUM); if (response != LIST_NOTHING_CHOSEN) { - ClearWindowTilemap(2); - CopyWindowToVram(2, COPYWIN_MAP); + ClearWindowTilemap(WIN_UNK); + CopyWindowToVram(WIN_UNK, COPYWIN_MAP); } return response; } @@ -865,7 +874,7 @@ static bool32 SaveOnMysteryGiftMenu(u8 * state) switch (*state) { case 0: - AddTextPrinterToWindow1(gText_DataWillBeSaved); + MG_AddMessageTextPrinter(gText_DataWillBeSaved); (*state)++; break; case 1: @@ -873,7 +882,7 @@ static bool32 SaveOnMysteryGiftMenu(u8 * state) (*state)++; break; case 2: - AddTextPrinterToWindow1(gText_SaveCompletedPressA); + MG_AddMessageTextPrinter(gText_SaveCompletedPressA); (*state)++; break; case 3: @@ -882,7 +891,7 @@ static bool32 SaveOnMysteryGiftMenu(u8 * state) break; case 4: *state = 0; - ClearTextWindow(); + ClearMessage(); return TRUE; } @@ -967,7 +976,7 @@ static bool32 PrintSuccessMessage(u8 * state, const u8 * msg, u16 * timer) { case 0: if (msg != NULL) - AddTextPrinterToWindow1(msg); + MG_AddMessageTextPrinter(msg); PlayFanfare(MUS_OBTAIN_ITEM); *timer = 0; (*state)++; @@ -980,7 +989,7 @@ static bool32 PrintSuccessMessage(u8 * state, const u8 * msg, u16 * timer) if (IsFanfareTaskInactive()) { *state = 0; - ClearTextWindow(); + ClearMessage(); return TRUE; } break; @@ -1161,7 +1170,7 @@ static void Task_MysteryGift(u8 taskId) if (PrintMysteryGiftMenuMessage(&data->textState, gText_DontHaveCardNewOneInput)) { data->state = MG_STATE_SOURCE_PROMPT; - PrintMysteryGiftOrEReaderTopMenu(FALSE, TRUE); + PrintMysteryGiftOrEReaderHeader(FALSE, TRUE); } } else @@ -1169,16 +1178,16 @@ static void Task_MysteryGift(u8 taskId) if (PrintMysteryGiftMenuMessage(&data->textState, gText_DontHaveNewsNewOneInput)) { data->state = MG_STATE_SOURCE_PROMPT; - PrintMysteryGiftOrEReaderTopMenu(FALSE, TRUE); + PrintMysteryGiftOrEReaderHeader(FALSE, TRUE); } } break; } case MG_STATE_SOURCE_PROMPT: if (!data->isWonderNews) - AddTextPrinterToWindow1(gText_WhereShouldCardBeAccessed); + MG_AddMessageTextPrinter(gText_WhereShouldCardBeAccessed); else - AddTextPrinterToWindow1(gText_WhereShouldNewsBeAccessed); + MG_AddMessageTextPrinter(gText_WhereShouldNewsBeAccessed); data->state = MG_STATE_SOURCE_PROMPT_INPUT; break; case MG_STATE_SOURCE_PROMPT_INPUT: @@ -1186,17 +1195,17 @@ static void Task_MysteryGift(u8 taskId) switch (MysteryGift_HandleThreeOptionMenu(&data->textState, &data->var, TRUE)) { case 0: // "Wireless Communication" - ClearTextWindow(); + ClearMessage(); data->state = MG_STATE_CLIENT_LINK_START; data->sourceIsFriend = FALSE; break; case 1: // "Friend" - ClearTextWindow(); + ClearMessage(); data->state = MG_STATE_CLIENT_LINK_START; data->sourceIsFriend = TRUE; break; case LIST_CANCEL: - ClearTextWindow(); + ClearMessage(); if (ValidateCardOrNews(data->isWonderNews)) { data->state = MG_STATE_LOAD_GIFT; @@ -1204,7 +1213,7 @@ static void Task_MysteryGift(u8 taskId) else { data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } break; } @@ -1246,7 +1255,7 @@ static void Task_MysteryGift(u8 taskId) } break; case MG_STATE_CLIENT_COMMUNICATING: - AddTextPrinterToWindow1(gText_Communicating); + MG_AddMessageTextPrinter(gText_Communicating); data->state = MG_STATE_CLIENT_LINK; break; case MG_STATE_CLIENT_LINK: @@ -1379,7 +1388,7 @@ static void Task_MysteryGift(u8 taskId) { // Did not receive card/news, return to main menu data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } else { @@ -1500,7 +1509,7 @@ static void Task_MysteryGift(u8 taskId) if (PrintThrownAway(&data->textState, data->isWonderNews)) { data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } break; case MG_STATE_GIFT_INPUT_EXIT: @@ -1546,12 +1555,12 @@ static void Task_MysteryGift(u8 taskId) if (!data->isWonderNews) { - AddTextPrinterToWindow1(gText_SendingWonderCard); + MG_AddMessageTextPrinter(gText_SendingWonderCard); MysterGiftServer_CreateForCard(); } else { - AddTextPrinterToWindow1(gText_SendingWonderNews); + MG_AddMessageTextPrinter(gText_SendingWonderNews); MysterGiftServer_CreateForNews(); } data->state = MG_STATE_SERVER_LINK; @@ -1586,7 +1595,7 @@ static void Task_MysteryGift(u8 taskId) else { data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } } break; @@ -1595,7 +1604,7 @@ static void Task_MysteryGift(u8 taskId) if (PrintMysteryGiftMenuMessage(&data->textState, gText_CommunicationError)) { data->state = MG_STATE_TO_MAIN_MENU; - PrintMysteryGiftOrEReaderTopMenu(FALSE, FALSE); + PrintMysteryGiftOrEReaderHeader(FALSE, FALSE); } break; case MG_STATE_EXIT: diff --git a/src/mystery_gift_view.c b/src/mystery_gift_view.c index b059b183c..a1e294f23 100644 --- a/src/mystery_gift_view.c +++ b/src/mystery_gift_view.c @@ -310,7 +310,7 @@ s32 WonderCard_Exit(bool32 useCancel) FreeMonIconPalettes(); break; case 5: - PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, useCancel); + PrintMysteryGiftOrEReaderHeader(gGiftIsFromEReader, useCancel); CopyBgTilemapBufferToVram(0); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); break; @@ -785,7 +785,7 @@ s32 WonderNews_Exit(bool32 useCancel) } break; case 5: - PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, useCancel); + PrintMysteryGiftOrEReaderHeader(gGiftIsFromEReader, useCancel); MG_DrawCheckerboardPattern(3); CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(3); diff --git a/src/union_room.c b/src/union_room.c index b47ddb41c..1396aa224 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1927,7 +1927,7 @@ static void Task_SendMysteryGift(u8 taskId) data->state = 3; break; case 3: - AddTextPrinterToWindow1(gStringVar4); + MG_AddMessageTextPrinter(gStringVar4); data->state = 4; break; case 4: @@ -2001,7 +2001,7 @@ static void Task_SendMysteryGift(u8 taskId) } break; case 9: - AddTextPrinterToWindow1(gStringVar4); + MG_AddMessageTextPrinter(gStringVar4); data->state = 10; break; case 10: @@ -2104,7 +2104,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) data->state = 1; break; case 1: - AddTextPrinterToWindow1(sText_ChooseTrainer); + MG_AddMessageTextPrinter(sText_ChooseTrainer); data->state = 2; break; case 2: @@ -2177,7 +2177,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) } break; case 4: - AddTextPrinterToWindow1(sText_AwaitingPlayersResponse); + MG_AddMessageTextPrinter(sText_AwaitingPlayersResponse); CopyAndTranslatePlayerName(gStringVar1, &data->playerList->players[data->leaderId]); data->state = 5; break; @@ -2196,7 +2196,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) data->state = 8; break; case RFU_STATUS_JOIN_GROUP_OK: - AddTextPrinterToWindow1(sText_PlayerSentBackOK); + MG_AddMessageTextPrinter(sText_PlayerSentBackOK); RfuSetStatus(RFU_STATUS_OK, 0); break; } @@ -2224,7 +2224,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) break; case 7: DestroyWirelessStatusIndicatorSprite(); - AddTextPrinterToWindow1(sText_PleaseStartOver); + MG_AddMessageTextPrinter(sText_PleaseStartOver); DestroyTask(taskId); LinkRfu_Shutdown(); gSpecialVar_Result = LINKUP_FAILED; @@ -2273,7 +2273,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) data->state = 1; break; case 1: - AddTextPrinterToWindow1(sText_SearchingForWirelessSystemWait); + MG_AddMessageTextPrinter(sText_SearchingForWirelessSystemWait); data->state = 2; break; case 2: @@ -2342,7 +2342,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) } break; case 4: - AddTextPrinterToWindow1(sText_AwaitingResponseFromWirelessSystem); + MG_AddMessageTextPrinter(sText_AwaitingResponseFromWirelessSystem); CopyAndTranslatePlayerName(gStringVar1, &data->playerList->players[data->leaderId]); data->state = 5; break; @@ -2361,7 +2361,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) data->state = 8; break; case RFU_STATUS_JOIN_GROUP_OK: - AddTextPrinterToWindow1(sText_WirelessLinkEstablished); + MG_AddMessageTextPrinter(sText_WirelessLinkEstablished); RfuSetStatus(RFU_STATUS_OK, 0); break; } From 7d4fddd56b1c91089d166f2d4ec033d43fe69c11 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 15:55:26 -0400 Subject: [PATCH 015/125] Use window constants in mystery_event_menu --- src/mystery_event_menu.c | 53 ++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index b6610a640..826055b24 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -20,6 +20,11 @@ #include "decompress.h" #include "constants/rgb.h" +enum { + WIN_MSG, + WIN_LOADING, +}; + static void CB2_MysteryEventMenu(void); static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed); @@ -40,7 +45,7 @@ static const struct BgTemplate sBgTemplates[] = static const struct WindowTemplate sWindowTemplates[] = { - { + [WIN_MSG] = { .bg = 0, .tilemapLeft = 4, .tilemapTop = 15, @@ -49,7 +54,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 14, .baseBlock = 20 }, - { + [WIN_LOADING] = { .bg = 0, .tilemapLeft = 7, .tilemapTop = 6, @@ -87,7 +92,7 @@ void CB2_InitMysteryEventMenu(void) s32 i; DeactivateAllTextPrinters(); - for (i = 0; i < 2; i++) + for (i = 0; i < (int)ARRAY_COUNT(sWindowTemplates) - 1; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); @@ -131,9 +136,9 @@ static void CB2_MysteryEventMenu(void) switch (gMain.state) { case 0: - DrawStdFrameWithCustomTileAndPalette(0, TRUE, 1, 0xD); - PutWindowTilemap(0); - CopyWindowToVram(0, COPYWIN_FULL); + DrawStdFrameWithCustomTileAndPalette(WIN_MSG, TRUE, 1, 0xD); + PutWindowTilemap(WIN_MSG); + CopyWindowToVram(WIN_MSG, COPYWIN_FULL); ShowBg(0); BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); gMain.state++; @@ -141,12 +146,12 @@ static void CB2_MysteryEventMenu(void) case 1: if (!gPaletteFade.active) { - PrintMysteryMenuText(0, gText_LinkStandby2, 1, 2, 1); + PrintMysteryMenuText(WIN_MSG, gText_LinkStandby2, 1, 2, 1); gMain.state++; } break; case 2: - if (!IsTextPrinterActive(0)) + if (!IsTextPrinterActive(WIN_MSG)) { gMain.state++; gLinkType = LINKTYPE_MYSTERY_EVENT; @@ -154,10 +159,10 @@ static void CB2_MysteryEventMenu(void) } break; case 3: - if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4) + if ((gLinkStatus & LINK_STAT_MASTER) && (gLinkStatus & LINK_STAT_PLAYER_COUNT) > 4) { PlaySE(SE_PIN); - PrintMysteryMenuText(0, gText_PressAToLoadEvent, 1, 2, 1); + PrintMysteryMenuText(WIN_MSG, gText_PressAToLoadEvent, 1, 2, 1); gMain.state++; } if (JOY_NEW(B_BUTTON)) @@ -168,7 +173,7 @@ static void CB2_MysteryEventMenu(void) } break; case 4: - if (!IsTextPrinterActive(0)) + if (!IsTextPrinterActive(WIN_MSG)) gMain.state++; break; case 5: @@ -178,10 +183,10 @@ static void CB2_MysteryEventMenu(void) { PlaySE(SE_SELECT); CheckShouldAdvanceLinkState(); - DrawStdFrameWithCustomTileAndPalette(1, TRUE, 1, 0xD); - PrintMysteryMenuText(1, gText_LoadingEvent, 1, 2, 0); - PutWindowTilemap(1); - CopyWindowToVram(1, COPYWIN_FULL); + DrawStdFrameWithCustomTileAndPalette(WIN_LOADING, TRUE, 1, 0xD); + PrintMysteryMenuText(WIN_LOADING, gText_LoadingEvent, 1, 2, 0); + PutWindowTilemap(WIN_LOADING); + CopyWindowToVram(WIN_LOADING, COPYWIN_FULL); gMain.state++; } else if (JOY_NEW(B_BUTTON)) @@ -194,7 +199,7 @@ static void CB2_MysteryEventMenu(void) else { GetEventLoadMessage(gStringVar4, MEVENT_STATUS_LOAD_ERROR); - PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + PrintMysteryMenuText(WIN_MSG, gStringVar4, 1, 2, 1); gMain.state = 13; } break; @@ -207,19 +212,19 @@ static void CB2_MysteryEventMenu(void) { SetCloseLinkCallback(); GetEventLoadMessage(gStringVar4, MEVENT_STATUS_LOAD_ERROR); - PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + PrintMysteryMenuText(WIN_MSG, gStringVar4, 1, 2, 1); gMain.state = 13; } else if (CheckLanguageMatch()) { - PrintMysteryMenuText(0, gText_DontRemoveCableTurnOff, 1, 2, 1); + PrintMysteryMenuText(WIN_MSG, gText_DontRemoveCableTurnOff, 1, 2, 1); gMain.state++; } else { CloseLink(); GetEventLoadMessage(gStringVar4, MEVENT_STATUS_LOAD_ERROR); - PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + PrintMysteryMenuText(WIN_MSG, gStringVar4, 1, 2, 1); gMain.state = 13; } } @@ -232,7 +237,7 @@ static void CB2_MysteryEventMenu(void) } break; case 7: - if (!IsTextPrinterActive(0)) + if (!IsTextPrinterActive(WIN_MSG)) gMain.state++; break; case 8: @@ -260,11 +265,11 @@ static void CB2_MysteryEventMenu(void) } break; case 12: - PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + PrintMysteryMenuText(WIN_MSG, gStringVar4, 1, 2, 1); gMain.state++; break; case 13: - if (!IsTextPrinterActive(0)) + if (!IsTextPrinterActive(WIN_MSG)) { gMain.state++; sUnused = 0; @@ -287,11 +292,11 @@ static void CB2_MysteryEventMenu(void) break; } - if (gLinkStatus & 0x40 && !IsLinkMaster()) + if (gLinkStatus & LINK_STAT_CONN_ESTABLISHED && !IsLinkMaster()) { CloseLink(); GetEventLoadMessage(gStringVar4, MEVENT_STATUS_LOAD_ERROR); - PrintMysteryMenuText(0, gStringVar4, 1, 2, 1); + PrintMysteryMenuText(WIN_MSG, gStringVar4, 1, 2, 1); gMain.state = 13; } From 77c3163cf00b12b1568c69571d135888e3b25946 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 18:29:20 -0400 Subject: [PATCH 016/125] Use window constants in reset_rtc_screen --- src/reset_rtc_screen.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c index 0a9ec4911..8f8ff6c16 100644 --- a/src/reset_rtc_screen.c +++ b/src/reset_rtc_screen.c @@ -49,6 +49,11 @@ enum { SELECTION_NONE }; +enum { + WIN_TIME, + WIN_MSG, +}; + struct ResetRtcInputMap { /*0x0*/ u8 dataIndex; @@ -79,7 +84,7 @@ static const struct BgTemplate sBgTemplates[] = static const struct WindowTemplate sWindowTemplates[] = { - { + [WIN_TIME] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -88,7 +93,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 15, .baseBlock = 0x155 }, - { + [WIN_MSG] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 15, @@ -562,8 +567,8 @@ static void VBlankCB(void) static void ShowMessage(const u8 *str) { - DrawDialogFrameWithCustomTileAndPalette(1, FALSE, 0x200, 0xF); - AddTextPrinterParameterized(1, FONT_NORMAL, str, 0, 1, 0, NULL); + DrawDialogFrameWithCustomTileAndPalette(WIN_MSG, FALSE, 0x200, 0xF); + AddTextPrinterParameterized(WIN_MSG, FONT_NORMAL, str, 0, 1, 0, NULL); ScheduleBgCopyTilemapToVram(0); } @@ -576,11 +581,11 @@ static void Task_ShowResetRtcPrompt(u8 taskId) switch (tState) { case 0: - DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x214, 0xE); + DrawStdFrameWithCustomTileAndPalette(WIN_TIME, FALSE, 0x214, 0xE); - AddTextPrinterParameterized(0, FONT_NORMAL, gText_PresentTime, 0, 1, TEXT_SKIP_DRAW, 0); + AddTextPrinterParameterized(WIN_TIME, FONT_NORMAL, gText_PresentTime, 0, 1, TEXT_SKIP_DRAW, 0); PrintTime( - 0, + WIN_TIME, 0, 17, gLocalTime.days, @@ -588,9 +593,9 @@ static void Task_ShowResetRtcPrompt(u8 taskId) gLocalTime.minutes, gLocalTime.seconds); - AddTextPrinterParameterized(0, FONT_NORMAL, gText_PreviousTime, 0, 33, TEXT_SKIP_DRAW, 0); + AddTextPrinterParameterized(WIN_TIME, FONT_NORMAL, gText_PreviousTime, 0, 33, TEXT_SKIP_DRAW, 0); PrintTime( - 0, + WIN_TIME, 0, 49, gSaveBlock2Ptr->lastBerryTreeUpdate.days, @@ -599,7 +604,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId) gSaveBlock2Ptr->lastBerryTreeUpdate.seconds); ShowMessage(gText_ResetRTCConfirmCancel); - CopyWindowToVram(0, COPYWIN_GFX); + CopyWindowToVram(WIN_TIME, COPYWIN_GFX); ScheduleBgCopyTilemapToVram(0); tState++; case 1: @@ -666,7 +671,7 @@ static void Task_ResetRtcScreen(u8 taskId) // Wait for A or B press on prompt first if (gTasks[tSubTaskId].isActive != TRUE) { - ClearStdWindowAndFrameToTransparent(0, FALSE); + ClearStdWindowAndFrameToTransparent(WIN_TIME, FALSE); ShowMessage(gText_PleaseResetTime); gLocalTime = gSaveBlock2Ptr->lastBerryTreeUpdate; tSubTaskId = CreateTask(Task_ResetRtc_Init, 80); From 744952542872b6a5b9e37a0f03028a0e18674a94 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 18:56:34 -0400 Subject: [PATCH 017/125] Use window constants in wallclock --- src/wallclock.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/wallclock.c b/src/wallclock.c index 5e0fae3a1..105bd350d 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -55,25 +55,28 @@ static void SpriteCB_AMIndicator(struct Sprite *sprite); #define PALTAG_WALL_CLOCK_MALE 0x1000 #define PALTAG_WALL_CLOCK_FEMALE 0x1001 -enum -{ +enum { PERIOD_AM, PERIOD_PM, }; -enum -{ +enum { MOVE_NONE, MOVE_BACKWARD, MOVE_FORWARD, }; +enum { + WIN_MSG, + WIN_BUTTON_LABEL, +}; + static const u32 sHand_Gfx[] = INCBIN_U32("graphics/wallclock/hand.4bpp.lz"); static const u16 sTextPrompt_Pal[] = INCBIN_U16("graphics/wallclock/text_prompt.gbapal"); // for "Cancel" or "Confirm" static const struct WindowTemplate sWindowTemplates[] = { - { + [WIN_MSG] = { .bg = 0, .tilemapLeft = 3, .tilemapTop = 17, @@ -82,7 +85,7 @@ static const struct WindowTemplate sWindowTemplates[] = .paletteNum = 14, .baseBlock = 512 }, - { + [WIN_BUTTON_LABEL] = { .bg = 2, .tilemapLeft = 24, .tilemapTop = 16, @@ -717,8 +720,8 @@ void CB2_StartWallClock(void) WallClockInit(); - AddTextPrinterParameterized(1, FONT_NORMAL, gText_Confirm3, 0, 1, 0, NULL); - PutWindowTilemap(1); + AddTextPrinterParameterized(WIN_BUTTON_LABEL, FONT_NORMAL, gText_Confirm3, 0, 1, 0, NULL); + PutWindowTilemap(WIN_BUTTON_LABEL); ScheduleBgCopyTilemapToVram(2); } @@ -765,8 +768,8 @@ void CB2_ViewWallClock(void) WallClockInit(); - AddTextPrinterParameterized(1, FONT_NORMAL, gText_Cancel4, 0, 1, 0, NULL); - PutWindowTilemap(1); + AddTextPrinterParameterized(WIN_BUTTON_LABEL, FONT_NORMAL, gText_Cancel4, 0, 1, 0, NULL); + PutWindowTilemap(WIN_BUTTON_LABEL); ScheduleBgCopyTilemapToVram(2); } @@ -829,9 +832,9 @@ static void Task_SetClock_HandleInput(u8 taskId) static void Task_SetClock_AskConfirm(u8 taskId) { - DrawStdFrameWithCustomTileAndPalette(0, FALSE, 0x250, 0x0d); - AddTextPrinterParameterized(0, FONT_NORMAL, gText_IsThisTheCorrectTime, 0, 1, 0, NULL); - PutWindowTilemap(0); + DrawStdFrameWithCustomTileAndPalette(WIN_MSG, FALSE, 0x250, 0x0d); + AddTextPrinterParameterized(WIN_MSG, FONT_NORMAL, gText_IsThisTheCorrectTime, 0, 1, 0, NULL); + PutWindowTilemap(WIN_MSG); ScheduleBgCopyTilemapToVram(0); CreateYesNoMenu(&sWindowTemplate_ConfirmYesNo, 0x250, 0x0d, 1); gTasks[taskId].func = Task_SetClock_HandleConfirmInput; @@ -848,8 +851,8 @@ static void Task_SetClock_HandleConfirmInput(u8 taskId) case 1: // NO case MENU_B_PRESSED: PlaySE(SE_SELECT); - ClearStdWindowAndFrameToTransparent(0, FALSE); - ClearWindowTilemap(0); + ClearStdWindowAndFrameToTransparent(WIN_MSG, FALSE); + ClearWindowTilemap(WIN_MSG); gTasks[taskId].func = Task_SetClock_HandleInput; break; } From 7587963d24f74b2d8bf20e051861de0e0739ea66 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 19:09:50 -0400 Subject: [PATCH 018/125] Use window constants in berry_fix_program --- src/berry_fix_program.c | 53 +++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index e8c4bc7e6..af21bb929 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -14,6 +14,13 @@ #include "m4a.h" #include "constants/rgb.h" +enum { + WIN_TITLE, // "Berry Program Update" header on the first screen + WIN_MSG_BODY, + WIN_GAME_NAMES, // The labels under the GBA graphics on the link screen + WIN_TURN_OFF_TITLE, // "Ruby/Sapphire" at the top of the "turn off the power" screen +}; + struct { u8 state; u8 curScene; @@ -71,7 +78,7 @@ static const struct BgTemplate sBerryFixBgTemplates[] = { }; static const struct WindowTemplate sBerryFixWindowTemplates[] = { - { + [WIN_TITLE] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 4, @@ -80,7 +87,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .paletteNum = 15, .baseBlock = 1 }, - { + [WIN_MSG_BODY] = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 11, @@ -89,7 +96,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .paletteNum = 15, .baseBlock = 53 }, - { + [WIN_GAME_NAMES] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 8, @@ -98,7 +105,7 @@ static const struct WindowTemplate sBerryFixWindowTemplates[] = { .paletteNum = 15, .baseBlock = 277 }, - { + [WIN_TURN_OFF_TITLE] = { .bg = 0, .tilemapLeft = 8, .tilemapTop = 0, @@ -217,11 +224,11 @@ static void BerryFix_Main(void) sBerryFix->state = MAINSTATE_BEGIN; break; case MAINSTATE_BEGIN: - if (TryScene(SCENE_BEGIN) && (JOY_NEW(A_BUTTON))) + if (TryScene(SCENE_BEGIN) && JOY_NEW(A_BUTTON)) sBerryFix->state = MAINSTATE_CONNECT; break; case MAINSTATE_CONNECT: - if (TryScene(SCENE_ENSURE_CONNECT) && (JOY_NEW(A_BUTTON))) + if (TryScene(SCENE_ENSURE_CONNECT) && JOY_NEW(A_BUTTON)) sBerryFix->state = MAINSTATE_INIT_MULTIBOOT; break; case MAINSTATE_INIT_MULTIBOOT: @@ -299,29 +306,29 @@ static void BerryFix_GpuSet(void) DmaCopy32(3, sBerryFixPalColors, BG_PLTT + 0x1E0, sizeof(sBerryFixPalColors)); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP); - FillWindowPixelBuffer(2, PIXEL_FILL(0)); - FillWindowPixelBuffer(3, PIXEL_FILL(0)); - FillWindowPixelBuffer(0, PIXEL_FILL(10)); + FillWindowPixelBuffer(WIN_GAME_NAMES, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_TURN_OFF_TITLE, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_TITLE, PIXEL_FILL(10)); width = GetStringWidth(FONT_SMALL, sText_Emerald, 0); left = (120 - width) / 2; - AddTextPrinterParameterized3(2, FONT_SMALL, left, 3, sGameTitleTextColors, TEXT_SKIP_DRAW, sText_Emerald); + AddTextPrinterParameterized3(WIN_GAME_NAMES, FONT_SMALL, left, 3, sGameTitleTextColors, TEXT_SKIP_DRAW, sText_Emerald); width = GetStringWidth(FONT_SMALL, sText_RubySapphire, 0); left = (120 - width) / 2 + 120; - AddTextPrinterParameterized3(2, FONT_SMALL, left, 3, sGameTitleTextColors, TEXT_SKIP_DRAW, sText_RubySapphire); + AddTextPrinterParameterized3(WIN_GAME_NAMES, FONT_SMALL, left, 3, sGameTitleTextColors, TEXT_SKIP_DRAW, sText_RubySapphire); width = GetStringWidth(FONT_SMALL, sText_RubySapphire, 0); left = (112 - width) / 2; - AddTextPrinterParameterized3(3, FONT_SMALL, left, 0, sGameTitleTextColors, TEXT_SKIP_DRAW, sText_RubySapphire); + AddTextPrinterParameterized3(WIN_TURN_OFF_TITLE, FONT_SMALL, left, 0, sGameTitleTextColors, TEXT_SKIP_DRAW, sText_RubySapphire); width = GetStringWidth(FONT_NORMAL, sText_BerryProgramUpdate, 0); left = (208 - width) / 2; - AddTextPrinterParameterized3(0, FONT_NORMAL, left, 2, sBerryProgramTextColors, TEXT_SKIP_DRAW, sText_BerryProgramUpdate); + AddTextPrinterParameterized3(WIN_TITLE, FONT_NORMAL, left, 2, sBerryProgramTextColors, TEXT_SKIP_DRAW, sText_BerryProgramUpdate); - CopyWindowToVram(2, COPYWIN_GFX); - CopyWindowToVram(3, COPYWIN_GFX); - CopyWindowToVram(0, COPYWIN_GFX); + CopyWindowToVram(WIN_GAME_NAMES, COPYWIN_GFX); + CopyWindowToVram(WIN_TURN_OFF_TITLE, COPYWIN_GFX); + CopyWindowToVram(WIN_TITLE, COPYWIN_GFX); } static int BerryFix_TrySetScene(int scene) @@ -345,23 +352,23 @@ static int BerryFix_TrySetScene(int scene) static void BerryFix_SetScene(int scene) { FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - FillWindowPixelBuffer(1, PIXEL_FILL(10)); - AddTextPrinterParameterized3(1, FONT_NORMAL, 0, 0, sBerryProgramTextColors, TEXT_SKIP_DRAW, sBerryProgramTexts[scene]); - PutWindowTilemap(1); - CopyWindowToVram(1, COPYWIN_GFX); + FillWindowPixelBuffer(WIN_MSG_BODY, PIXEL_FILL(10)); + AddTextPrinterParameterized3(WIN_MSG_BODY, FONT_NORMAL, 0, 0, sBerryProgramTextColors, TEXT_SKIP_DRAW, sBerryProgramTexts[scene]); + PutWindowTilemap(WIN_MSG_BODY); + CopyWindowToVram(WIN_MSG_BODY, COPYWIN_GFX); switch (scene) { case SCENE_ENSURE_CONNECT: case SCENE_TRANSMITTING: case SCENE_FOLLOW_INSTRUCT: case SCENE_TRANSMIT_FAILED: - PutWindowTilemap(2); + PutWindowTilemap(WIN_GAME_NAMES); break; case SCENE_TURN_OFF_POWER: - PutWindowTilemap(3); + PutWindowTilemap(WIN_TURN_OFF_TITLE); break; case SCENE_BEGIN: - PutWindowTilemap(0); + PutWindowTilemap(WIN_TITLE); break; } CopyBgTilemapBufferToVram(0); From e989879f71d39a798108559cbb0b6c7b58da9e65 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 29 Sep 2022 21:24:50 -0400 Subject: [PATCH 019/125] Use window constants in battle_dome --- src/battle_dome.c | 177 ++++++++++++++++++++++++++-------------------- 1 file changed, 102 insertions(+), 75 deletions(-) diff --git a/src/battle_dome.c b/src/battle_dome.c index d30739ca5..224ef1b84 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -73,9 +73,33 @@ struct TourneyTreeLineSection #define tMode data[2] #define tPrevTaskId data[3] -#define EFFECTIVENESS_MODE_GOOD 0 -#define EFFECTIVENESS_MODE_BAD 1 -#define EFFECTIVENESS_MODE_AI_VS_AI 2 +enum { + EFFECTIVENESS_MODE_GOOD, + EFFECTIVENESS_MODE_BAD, + EFFECTIVENESS_MODE_AI_VS_AI, +}; + +// Window IDs for the tourney tree +enum { + TOURNEYWIN_NAMES_LEFT, + TOURNEYWIN_NAMES_RIGHT, + TOURNEYWIN_TITLE, +}; + +// Window IDs for the trainer (WIN_TRAINER_*) and match (WIN_MATCH_*) info cards. +// All 9 have a duplicate window at WIN + NUM_INFO_CARD_WINDOWS used by the alternate info card +enum { + WIN_TRAINER_NAME, + WIN_TRAINER_MON1_NAME, + WIN_TRAINER_MON2_NAME, // Used implicitly + WIN_TRAINER_MON3_NAME, // Used implicitly + WIN_TRAINER_FLAVOR_TEXT = WIN_TRAINER_MON1_NAME + FRONTIER_PARTY_SIZE, // Trainer's potential, battle style, and stat texts + WIN_MATCH_NUMBER, + WIN_MATCH_TRAINER_NAME_LEFT, + WIN_MATCH_TRAINER_NAME_RIGHT, + WIN_MATCH_WIN_TEXT, + NUM_INFO_CARD_WINDOWS +}; static u8 GetDomeTrainerMonIvs(u16); static void SwapDomeTrainers(int, int, u16 *); @@ -670,7 +694,7 @@ static const struct BgTemplate sInfoCardBgTemplates[4] = static const struct WindowTemplate sTourneyTreeWindowTemplates[] = { - { + [TOURNEYWIN_NAMES_LEFT] = { .bg = 0, .tilemapLeft = 0, .tilemapTop = 3, @@ -679,7 +703,7 @@ static const struct WindowTemplate sTourneyTreeWindowTemplates[] = .paletteNum = 15, .baseBlock = 16, }, - { + [TOURNEYWIN_NAMES_RIGHT] = { .bg = 0, .tilemapLeft = 22, .tilemapTop = 3, @@ -688,7 +712,7 @@ static const struct WindowTemplate sTourneyTreeWindowTemplates[] = .paletteNum = 15, .baseBlock = 144, }, - { + [TOURNEYWIN_TITLE] = { .bg = 0, .tilemapLeft = 8, .tilemapTop = 1, @@ -702,7 +726,7 @@ static const struct WindowTemplate sTourneyTreeWindowTemplates[] = static const struct WindowTemplate sInfoCardWindowTemplates[] = { - { + [WIN_TRAINER_NAME] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 2, @@ -711,7 +735,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 1, }, - { + [WIN_TRAINER_MON1_NAME] = { .bg = 0, .tilemapLeft = 16, .tilemapTop = 5, @@ -720,7 +744,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 53, }, - { + [WIN_TRAINER_MON2_NAME] = { .bg = 0, .tilemapLeft = 19, .tilemapTop = 7, @@ -729,7 +753,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 69, }, - { + [WIN_TRAINER_MON3_NAME] = { .bg = 0, .tilemapLeft = 16, .tilemapTop = 10, @@ -738,7 +762,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 96, }, - { + [WIN_TRAINER_FLAVOR_TEXT] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 12, @@ -747,7 +771,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 112, }, - { + [WIN_MATCH_NUMBER] = { .bg = 0, .tilemapLeft = 5, .tilemapTop = 2, @@ -756,7 +780,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 294, }, - { + [WIN_MATCH_TRAINER_NAME_LEFT] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 5, @@ -765,7 +789,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 340, }, - { + [WIN_MATCH_TRAINER_NAME_RIGHT] = { .bg = 0, .tilemapLeft = 20, .tilemapTop = 5, @@ -774,7 +798,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 356, }, - { + [WIN_MATCH_WIN_TEXT] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 16, @@ -783,7 +807,9 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 372, }, - { + // Duplicate windows used by the alternate info card + // Same as above but on bg 1 instead of bg 0 + [WIN_TRAINER_NAME + NUM_INFO_CARD_WINDOWS] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 2, @@ -792,7 +818,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 1, }, - { + [WIN_TRAINER_MON1_NAME + NUM_INFO_CARD_WINDOWS] = { .bg = 1, .tilemapLeft = 16, .tilemapTop = 5, @@ -801,7 +827,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 53, }, - { + [WIN_TRAINER_MON2_NAME + NUM_INFO_CARD_WINDOWS] = { .bg = 1, .tilemapLeft = 19, .tilemapTop = 7, @@ -810,7 +836,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 69, }, - { + [WIN_TRAINER_MON3_NAME + NUM_INFO_CARD_WINDOWS] = { .bg = 1, .tilemapLeft = 16, .tilemapTop = 10, @@ -819,7 +845,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 96, }, - { + [WIN_TRAINER_FLAVOR_TEXT + NUM_INFO_CARD_WINDOWS] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 12, @@ -828,7 +854,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 112, }, - { + [WIN_MATCH_NUMBER + NUM_INFO_CARD_WINDOWS] = { .bg = 1, .tilemapLeft = 5, .tilemapTop = 2, @@ -837,7 +863,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 294, }, - { + [WIN_MATCH_TRAINER_NAME_LEFT + NUM_INFO_CARD_WINDOWS] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 5, @@ -846,7 +872,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 340, }, - { + [WIN_MATCH_TRAINER_NAME_RIGHT + NUM_INFO_CARD_WINDOWS] = { .bg = 1, .tilemapLeft = 20, .tilemapTop = 5, @@ -855,7 +881,7 @@ static const struct WindowTemplate sInfoCardWindowTemplates[] = .paletteNum = 15, .baseBlock = 356, }, - { + [WIN_MATCH_WIN_TEXT + NUM_INFO_CARD_WINDOWS] = { .bg = 1, .tilemapLeft = 2, .tilemapTop = 16, @@ -1397,26 +1423,27 @@ static const u8 sCompetitorRangeByMatch[DOME_TOURNAMENT_MATCHES_COUNT][3] = { NUM_POSSIBLE_MATCH_TRAINERS(DOME_FINAL) * 0, NUM_POSSIBLE_MATCH_TRAINERS(DOME_FINAL), DOME_FINAL}, }; -// 1st value is the windowId (0 for left column, 1 for right column) -// 2nd value is the y coord +#define NAME_ROW_HEIGHT 16 + +// 1st value is the windowId, 2nd value is the y coord static const u8 sTrainerNamePositions[DOME_TOURNAMENT_TRAINERS_COUNT][2] = { - { 0, 0}, - { 1, 112}, - { 1, 0}, - { 0, 112}, - { 0, 48}, - { 1, 64}, - { 1, 48}, - { 0, 64}, - { 0, 16}, - { 1, 96}, - { 1, 16}, - { 0, 96}, - { 0, 32}, - { 1, 80}, - { 1, 32}, - { 0, 80}, + { TOURNEYWIN_NAMES_LEFT, 0 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_RIGHT, 7 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_RIGHT, 0 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_LEFT, 7 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_LEFT, 3 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_RIGHT, 4 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_RIGHT, 3 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_LEFT, 4 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_LEFT, 1 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_RIGHT, 6 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_RIGHT, 1 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_LEFT, 6 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_LEFT, 2 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_RIGHT, 5 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_RIGHT, 2 * NAME_ROW_HEIGHT}, + { TOURNEYWIN_NAMES_LEFT, 5 * NAME_ROW_HEIGHT}, }; // Coords for the pokeballs on the tourney tree that act as buttons to view trainer/match info @@ -2427,7 +2454,7 @@ static void InitDomeTrainers(void) break; } - if (sTrainerNamePositions[i][0] != 0) + if (sTrainerNamePositions[i][0] != TOURNEYWIN_NAMES_LEFT) { j = 0; DOME_TRAINERS[j].trainerId = TRAINER_FRONTIER_BRAIN; @@ -3437,11 +3464,11 @@ static void Task_HandleInfoCardInput(u8 taskId) case MATCHCARD_INPUT_UP ... MATCHCARD_INPUT_RIGHT: gTasks[taskId].data[5] = i; if (gTasks[taskId].tUsingAlternateSlot) - windowId = 9; + windowId = NUM_INFO_CARD_WINDOWS; else windowId = 0; - for (i = windowId; i < windowId + 9; i++) + for (i = windowId; i < windowId + NUM_INFO_CARD_WINDOWS; i++) { CopyWindowToVram(i, COPYWIN_GFX); FillWindowPixelBuffer(i, PIXEL_FILL(0)); @@ -4263,14 +4290,14 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId) int trainerId = 0; u8 nature = 0; int arrId = 0; - int windowId = 0; + int windowId = WIN_TRAINER_NAME; int x = 0, y = 0; u8 palSlot = 0; s16 *allocatedArray = AllocZeroed(sizeof(s16) * ALLOC_ARRAY_SIZE); trainerId = DOME_TRAINERS[trainerTourneyId].trainerId; if (flags & CARD_ALTERNATE_SLOT) - arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = 9, palSlot = 2; + arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = WIN_TRAINER_NAME + NUM_INFO_CARD_WINDOWS, palSlot = 2; if (flags & MOVE_CARD_RIGHT) x = DISPLAY_WIDTH + 16; if (flags & MOVE_CARD_DOWN) @@ -4388,19 +4415,19 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId) else textPrinter.currentChar = gSpeciesNames[gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].species]; - textPrinter.windowId = 1 + i + windowId; + textPrinter.windowId = WIN_TRAINER_MON1_NAME + i + windowId; if (i == 1) textPrinter.currentX = 7; else textPrinter.currentX = 0; - PutWindowTilemap(1 + i + windowId); - CopyWindowToVram(1 + i + windowId, COPYWIN_FULL); + PutWindowTilemap(WIN_TRAINER_MON1_NAME + i + windowId); + CopyWindowToVram(WIN_TRAINER_MON1_NAME + i + windowId, COPYWIN_FULL); AddTextPrinter(&textPrinter, 0, NULL); } - PutWindowTilemap(windowId + 4); - CopyWindowToVram(windowId + 4, COPYWIN_FULL); + PutWindowTilemap(windowId + WIN_TRAINER_FLAVOR_TEXT); + CopyWindowToVram(windowId + WIN_TRAINER_FLAVOR_TEXT, COPYWIN_FULL); // Print text about trainers potential in the tourney if (trainerId == TRAINER_FRONTIER_BRAIN) @@ -4409,7 +4436,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId) textPrinter.currentChar = sBattleDomePotentialTexts[trainerTourneyId]; textPrinter.fontId = FONT_NORMAL; - textPrinter.windowId = windowId + 4; + textPrinter.windowId = windowId + WIN_TRAINER_FLAVOR_TEXT; textPrinter.currentX = 0; textPrinter.y = 4; textPrinter.currentY = 4; @@ -4731,7 +4758,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) u8 palSlot = 0; if (flags & CARD_ALTERNATE_SLOT) - arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = 9, palSlot = 2; + arrId = 2 * (FRONTIER_PARTY_SIZE + 1), windowId = NUM_INFO_CARD_WINDOWS, palSlot = 2; if (flags & MOVE_CARD_RIGHT) x = DISPLAY_WIDTH + 16; if (flags & MOVE_CARD_DOWN) @@ -4873,10 +4900,10 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4; StringExpandPlaceholders(gStringVar4, sBattleDomeWinTexts[winStringId]); textPrinter.currentChar = gStringVar4; - textPrinter.windowId = windowId + 8; + textPrinter.windowId = windowId + WIN_MATCH_WIN_TEXT; textPrinter.fontId = FONT_NORMAL; - PutWindowTilemap(windowId + 8); - CopyWindowToVram(windowId + 8, COPYWIN_FULL); + PutWindowTilemap(windowId + WIN_MATCH_WIN_TEXT); + CopyWindowToVram(windowId + WIN_MATCH_WIN_TEXT, COPYWIN_FULL); textPrinter.currentX = 0; textPrinter.currentY = textPrinter.y = 0; AddTextPrinter(&textPrinter, 0, NULL); @@ -4892,11 +4919,11 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) textPrinter.fontId = FONT_SHORT; textPrinter.letterSpacing = 2; textPrinter.currentChar = gStringVar1; - textPrinter.windowId = windowId + 6; + textPrinter.windowId = windowId + WIN_MATCH_TRAINER_NAME_LEFT; textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0x40, textPrinter.letterSpacing); textPrinter.currentY = textPrinter.y = 2; - PutWindowTilemap(windowId + 6); - CopyWindowToVram(windowId + 6, COPYWIN_FULL); + PutWindowTilemap(windowId + WIN_MATCH_TRAINER_NAME_LEFT); + CopyWindowToVram(windowId + WIN_MATCH_TRAINER_NAME_LEFT, COPYWIN_FULL); AddTextPrinter(&textPrinter, 0, NULL); // Print right trainer's name. @@ -4908,21 +4935,21 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) CopyDomeTrainerName(gStringVar1, trainerIds[1]); textPrinter.currentChar = gStringVar1; - textPrinter.windowId = windowId + 7; + textPrinter.windowId = windowId + WIN_MATCH_TRAINER_NAME_RIGHT; textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0x40, textPrinter.letterSpacing); textPrinter.currentY = textPrinter.y = 2; - PutWindowTilemap(windowId + 7); - CopyWindowToVram(windowId + 7, COPYWIN_FULL); + PutWindowTilemap(windowId + WIN_MATCH_TRAINER_NAME_RIGHT); + CopyWindowToVram(windowId + WIN_MATCH_TRAINER_NAME_RIGHT, COPYWIN_FULL); AddTextPrinter(&textPrinter, 0, NULL); // Print match number. textPrinter.letterSpacing = 0; textPrinter.currentChar = sBattleDomeMatchNumberTexts[matchNo]; - textPrinter.windowId = windowId + 5; + textPrinter.windowId = windowId + WIN_MATCH_NUMBER; textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0xA0, textPrinter.letterSpacing); textPrinter.currentY = textPrinter.y = 2; - PutWindowTilemap(windowId + 5); - CopyWindowToVram(windowId + 5, COPYWIN_FULL); + PutWindowTilemap(windowId + WIN_MATCH_NUMBER); + CopyWindowToVram(windowId + WIN_MATCH_NUMBER, COPYWIN_FULL); AddTextPrinter(&textPrinter, 0, NULL); } @@ -5356,7 +5383,7 @@ static void Task_ShowTourneyTree(u8 taskId) case 4: textPrinter.fontId = FONT_SHORT; textPrinter.currentChar = gText_BattleTourney; - textPrinter.windowId = 2; + textPrinter.windowId = TOURNEYWIN_TITLE; textPrinter.x = 0; textPrinter.y = 0; textPrinter.letterSpacing = 2; @@ -5442,7 +5469,7 @@ static void Task_ShowTourneyTree(u8 taskId) } } - if (sTrainerNamePositions[i][0] == 0) + if (sTrainerNamePositions[i][0] == TOURNEYWIN_NAMES_LEFT) textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing); else textPrinter.currentX = 3; @@ -5454,12 +5481,12 @@ static void Task_ShowTourneyTree(u8 taskId) gTasks[taskId].tState++; break; case 5: - PutWindowTilemap(0); - PutWindowTilemap(1); - PutWindowTilemap(2); - CopyWindowToVram(0, COPYWIN_FULL); - CopyWindowToVram(1, COPYWIN_FULL); - CopyWindowToVram(2, COPYWIN_FULL); + PutWindowTilemap(TOURNEYWIN_NAMES_LEFT); + PutWindowTilemap(TOURNEYWIN_NAMES_RIGHT); + PutWindowTilemap(TOURNEYWIN_TITLE); + CopyWindowToVram(TOURNEYWIN_NAMES_LEFT, COPYWIN_FULL); + CopyWindowToVram(TOURNEYWIN_NAMES_RIGHT, COPYWIN_FULL); + CopyWindowToVram(TOURNEYWIN_TITLE, COPYWIN_FULL); SetHBlankCallback(HblankCb_TourneyTree); SetVBlankCallback(VblankCb_TourneyTree); if (r4 == 2) @@ -5556,7 +5583,7 @@ static void Task_HandleStaticTourneyTreeInput(u8 taskId) if (DOME_TRAINERS[i].eliminatedAt == gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1 && DOME_TRAINERS[i].isEliminated) { - if (sTrainerNamePositions[i][0] == 0) + if (sTrainerNamePositions[i][0] == TOURNEYWIN_NAMES_LEFT) textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing); else textPrinter.currentX = 3; From 712d41c75226c700224a9b98108e93934a7a0d3e Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sat, 5 Nov 2022 23:51:59 -0300 Subject: [PATCH 020/125] Cleaned up move effect checks for Dragon Tail/Circle Throw --- src/battle_script_commands.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 7dfdd9c83..78797c39e 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -5718,8 +5718,7 @@ static void Cmd_moveend(void) break; } case MOVEEND_EJECT_BUTTON: - if (gCurrentMove != MOVE_DRAGON_TAIL - && gCurrentMove != MOVE_CIRCLE_THROW + if (gBattleMoves[gCurrentMove].effect != EFFECT_HIT_SWITCH_TARGET && IsBattlerAlive(gBattlerAttacker) && !TestSheerForceFlag(gBattlerAttacker, gCurrentMove) && (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER || (gBattleTypeFlags & BATTLE_TYPE_TRAINER))) @@ -5752,8 +5751,7 @@ static void Cmd_moveend(void) gBattleScripting.moveendState++; break; case MOVEEND_RED_CARD: - if (gCurrentMove != MOVE_DRAGON_TAIL - && gCurrentMove != MOVE_CIRCLE_THROW + if (gBattleMoves[gCurrentMove].effect != EFFECT_HIT_SWITCH_TARGET && IsBattlerAlive(gBattlerAttacker) && !TestSheerForceFlag(gBattlerAttacker, gCurrentMove)) { From 347a02ace1f571a8aab355a9df2f3bf112d3cca7 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 9 Dec 2022 12:34:55 -0500 Subject: [PATCH 021/125] Sync trade --- include/battle_anim.h | 2 +- include/constants/trade.h | 77 +-- include/link_rfu.h | 2 +- src/battle_anim_mons.c | 2 +- src/battle_main.c | 27 +- src/data/trade.h | 173 +++-- src/link_rfu_3.c | 2 +- src/trade.c | 1319 +++++++++++++++++++------------------ src/trainer_see.c | 20 +- src/union_room.c | 2 +- 10 files changed, 813 insertions(+), 813 deletions(-) diff --git a/include/battle_anim.h b/include/battle_anim.h index 0fe0d1898..f99af9059 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -148,7 +148,7 @@ void AnimThrowProjectile(struct Sprite *sprite); void GetBgDataForTransform(struct BattleAnimBgData *dest, u8 battlerId); u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxysForm); void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite); -void TradeMenuBouncePartySprites(struct Sprite *sprite); +void Trade_MoveSelectedMonToTarget(struct Sprite *sprite); void DestroyAnimVisualTaskAndDisableBlend(u8 taskId); void DestroySpriteAndFreeResources_(struct Sprite *sprite); void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId); diff --git a/include/constants/trade.h b/include/constants/trade.h index fa42e6b43..0f205d6d2 100644 --- a/include/constants/trade.h +++ b/include/constants/trade.h @@ -12,21 +12,13 @@ #define INGAME_TRADE_HORSEA 2 #define INGAME_TRADE_MEOWTH 3 -// Flag IDs for sending link data -#define INITIATE_TRADE 1 -#define CANCEL_TRADE 2 -#define WANTS_TO_TRADE 1 -#define WANTS_TO_CANCEL 2 -#define READY_FINISH_TRADE 1 -#define FINISH_TRADE 2 - // Return values for CanTradeSelectedMon and CanSpinTradeMon -#define CAN_TRADE_MON 0 -#define CANT_TRADE_LAST_MON 1 -#define CANT_TRADE_NATIONAL 2 -#define CANT_TRADE_EGG_YET 3 -#define CANT_TRADE_INVALID_MON 4 -#define CANT_TRADE_EGG_YET2 5 +#define CAN_TRADE_MON 0 +#define CANT_TRADE_LAST_MON 1 +#define CANT_TRADE_NATIONAL 2 +#define CANT_TRADE_EGG_YET 3 +#define CANT_TRADE_INVALID_MON 4 +#define CANT_TRADE_PARTNER_EGG_YET 5 // Return values for CheckValidityOfTradeMons #define PLAYER_MON_INVALID 0 @@ -38,63 +30,6 @@ #define TRADE_PLAYER_NOT_READY 1 #define TRADE_PARTNER_NOT_READY 2 -// Indexes for sTradeActionTexts -#define TRADE_TEXT_CANCEL 0 -#define TRADE_TEXT_CHOOSE_MON 1 -#define TRADE_TEXT_SUMMARY 2 -#define TRADE_TEXT_TRADE 3 -#define TRADE_TEXT_CANCEL_TRADE 4 -#define TRADE_TEXT_JP_QUIT 5 - -// Checked to confirm DrawTradeMenuParty has reached final state -#define DRAW_PARTY_FINISH 5 - -// Message indexes for sTradeMessages -#define TRADE_MSG_STANDBY 0 -#define TRADE_MSG_CANCELED 1 -#define TRADE_MSG_ONLY_MON1 2 -#define TRADE_MSG_ONLY_MON2 3 -#define TRADE_MSG_WAITING_FOR_FRIEND 4 -#define TRADE_MSG_FRIEND_WANTS_TO_TRADE 5 -#define TRADE_MSG_MON_CANT_BE_TRADED 6 -#define TRADE_MSG_EGG_CANT_BE_TRADED 7 -#define TRADE_MSG_FRIENDS_MON_CANT_BE_TRADED 8 - -// IDs for QueueAction -#define QUEUE_SEND_DATA 0 -#define QUEUE_STANDBY 1 -#define QUEUE_ONLY_MON1 2 -#define QUEUE_ONLY_MON2 3 -#define QUEUE_UNUSED1 4 -#define QUEUE_UNUSED2 5 -#define QUEUE_MON_CANT_BE_TRADED 6 -#define QUEUE_EGG_CANT_BE_TRADED 7 -#define QUEUE_FRIENDS_MON_CANT_BE_TRADED 8 - -#define QUEUE_DELAY_MSG 3 -#define QUEUE_DELAY_DATA 5 - -// IDs for CallTradeMenuFunc -#define TRADEMENUFUNC_MAIN_MENU 0 -#define TRADEMENUFUNC_SELECTED_MON 1 -#define TRADEMENUFUNC_SHOW_MON_SUMMARY 2 -#define TRADEMENUFUNC_CONFIRM_OR_CANCEL_TRADE 3 -#define TRADEMENUFUNC_CANCEL_TRADE_PROMPT 4 -#define TRADEMENUFUNC_UNUSED_5 5 -#define TRADEMENUFUNC_BOTH_MONS_SELECTED 6 -#define TRADEMENUFUNC_CONFIRM_TRADE_PROMPT 7 -#define TRADEMENUFUNC_REDRAW_MAIN_MENU 8 -#define TRADEMENUFUNC_LINK_TRADE_FADE_OUT 9 -#define TRADEMENUFUNC_LINK_TRADE_WAIT_FADE 10 -#define TRADEMENUFUNC_CANCEL_TRADE_1 11 -#define TRADEMENUFUNC_CANCEL_TRADE_2 12 -#define TRADEMENUFUNC_START_LINK_TRADE 13 -#define TRADEMENUFUNC_DELAY_TRADE_CONFIRM 14 -#define TRADEMENUFUNC_UNUSED_15 15 -#define TRADEMENUFUNC_LINK_TRADE_WAIT_QUEUE 16 -#define TRADEMENUFUNC_PARTNER_MON_INVALID 17 -#define TRADEMENUFUNC_STANDBY 100 - // Message indexes for sUnionRoomTradeMessages #define UR_TRADE_MSG_NONE 0 #define UR_TRADE_MSG_NOT_MON_PARTNER_WANTS 1 diff --git a/include/link_rfu.h b/include/link_rfu.h index 1e434e830..4a3b8928c 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -83,7 +83,7 @@ struct RfuGameCompatibilityData u16 hasNews:1; u16 hasCard:1; u16 unknown:1; // Never read - u16 isChampion:1; + u16 canLinkNationally:1; u16 hasNationalDex:1; u16 gameClear:1; u16 version:4; diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index a5d4659a9..b1c3072fc 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -1047,7 +1047,7 @@ void UpdateAnimBg3ScreenSize(bool8 largeScreenSize) } } -void TradeMenuBouncePartySprites(struct Sprite *sprite) +void Trade_MoveSelectedMonToTarget(struct Sprite *sprite) { sprite->data[1] = sprite->x; sprite->data[3] = sprite->y; diff --git a/src/battle_main.c b/src/battle_main.c index fa85608d4..8492040ee 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -301,11 +301,28 @@ const struct OamData gOamData_BattleSpritePlayerSide = .affineParam = 0, }; -// Unknown and unused data. Feel free to remove. -static const u16 sUnused1[] = {0, 5, 0xfffe, 0}; -static const u16 *const sUnused1Ptr = sUnused1; -static const u16 sUnused2[] = {0xfff0, 0, 0x0400, 0, 0, 0, 0x3c00, 0, 0x7ffe, 1, 0, 0}; -static const u16 *const sUnused2Ptr = sUnused2; +static const union AnimCmd sAnim_Unused[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sAnims_Unused[] = +{ + sAnim_Unused, +}; + +static const union AffineAnimCmd sAffineAnim_Unused[] = +{ + AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 4), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 0x3C), + AFFINEANIMCMD_JUMP(1), +}; + +static const union AffineAnimCmd *const sAffineAnims_Unused[] = +{ + sAffineAnim_Unused, +}; static const s8 sCenterToCornerVecXs[8] ={-32, -16, -16, -32, -32}; diff --git a/src/data/trade.h b/src/data/trade.h index 80d17a49b..433e36247 100644 --- a/src/data/trade.h +++ b/src/data/trade.h @@ -55,7 +55,7 @@ static const u8 sText_OnlyPkmnForBattle[] = _("That's your only\nPOKéMON for ba static const u8 sText_WaitingForYourFriend[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Waiting for your friend\nto finish…"); static const u8 sText_YourFriendWantsToTrade[] = _("Your friend wants\nto trade POKéMON."); -static const struct OamData sTradeOamData_32x16 = +static const struct OamData sOamData_MenuText = { .shape = SPRITE_SHAPE(32x16), .size = SPRITE_SIZE(32x16), @@ -167,17 +167,17 @@ static const struct SpriteTemplate sSpriteTemplate_MenuText = { .tileTag = GFXTAG_MENU_TEXT, .paletteTag = PALTAG_MENU_TEXT, - .oam = &sTradeOamData_32x16, + .oam = &sOamData_MenuText, .anims = sAnims_MenuText, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const u16 sTradeScreenTextPalette[] = INCBIN_U16("graphics/trade/text.gbapal"); -static const struct SpritePalette sSpritePalette_TradeScreenText = +static const u16 sMenuText_Pal[] = INCBIN_U16("graphics/trade/text.gbapal"); +static const struct SpritePalette sSpritePalette_MenuText = { - .data = sTradeScreenTextPalette, + .data = sMenuText_Pal, .tag = PALTAG_MENU_TEXT }; @@ -193,7 +193,7 @@ static const struct SpritePalette sSpritePalette_TradeScreenText = // 1st array is the current positions // 2nd array is directions of input // 3rd array is the next positions to go to (unoccupied spaces are skipped over) -static const u8 sTradeNextSelectedMonTable[(PARTY_SIZE * 2) + 1][4][PARTY_SIZE] = +static const u8 sCursorMoveDestinations[(PARTY_SIZE * 2) + 1][4][PARTY_SIZE] = { { {4, 2, 12, 12, 0, 0}, // UP @@ -275,86 +275,67 @@ static const u8 sTradeNextSelectedMonTable[(PARTY_SIZE * 2) + 1][4][PARTY_SIZE] } }; +#define COL0_X 1 +#define COL1_X 8 +#define COL2_X 16 +#define COL3_X 23 +#define ROW0_Y 5 +#define ROW1_Y 10 +#define ROW2_Y 15 +#define ROW3_Y 18 + static const u8 sTradeMonSpriteCoords[(PARTY_SIZE * 2) + 1][2] = { - // Your party - {1, 5 }, - {8, 5 }, - {1, 10}, - {8, 10}, - {1, 15}, - {8, 15}, - - // Friend's party - {16, 5 }, - {23, 5 }, - {16, 10}, - {23, 10}, - {16, 15}, - {23, 15}, - - {23, 18} // CANCEL + // Player's party + {COL0_X, ROW0_Y }, + {COL1_X, ROW0_Y }, + {COL0_X, ROW1_Y}, + {COL1_X, ROW1_Y}, + {COL0_X, ROW2_Y}, + {COL1_X, ROW2_Y}, + // Partners's party + {COL2_X, ROW0_Y }, + {COL3_X, ROW0_Y }, + {COL2_X, ROW1_Y}, + {COL3_X, ROW1_Y}, + {COL2_X, ROW2_Y}, + {COL3_X, ROW2_Y}, + // Cancel + {COL3_X, ROW3_Y} }; -static const u8 sTradeMonLevelCoords[][2][2] = -{ - // Your party - { - {5, 4}, - {12, 4}, - }, - { - {5, 9}, - {12, 9}, - }, - { - {5, 14}, +static const u8 sTradeMonLevelCoords[PARTY_SIZE * 2][2] = { + [TRADE_PLAYER] = + { 5, 4}, + {12, 4}, + { 5, 9}, + {12, 9}, + { 5, 14}, {12, 14}, - }, - // Friend's party - { - - {20, 4}, - {27, 4}, - }, - { - {20, 9}, - {27, 9}, - }, - { + [TRADE_PARTNER * PARTY_SIZE] = + {20, 4}, + {27, 4}, + {20, 9}, + {27, 9}, {20, 14}, {27, 14}, - }, }; -static const u8 sTradeMonBoxCoords[][2][2] = -{ - // Your party - { - {1, 3}, - {8, 3}, - }, - { - {1, 8}, - {8, 8}, - }, - { - {1, 13}, - {8, 13}, - }, - // Friend's party - { - {16, 3}, - {23, 3}, - }, - { - {16, 8}, - {23, 8}, - }, - { +static const u8 sTradeMonBoxCoords[PARTY_SIZE * 2][2] = { + [TRADE_PLAYER] = + { 1, 3}, + { 8, 3}, + { 1, 8}, + { 8, 8}, + { 1, 13}, + { 8, 13}, + [TRADE_PARTNER * PARTY_SIZE] = + {16, 3}, + {23, 3}, + {16, 8}, + {23, 8}, {16, 13}, {23, 13}, - }, }; static const u8 sUnusedCoords[][2] = @@ -379,14 +360,14 @@ static const u8 sUnusedCoords[][2] = {23, 12} }; -static const u8 *const sTradeActionTexts[] = +static const u8 *const sActionTexts[] = { - [TRADE_TEXT_CANCEL] = sText_Cancel, - [TRADE_TEXT_CHOOSE_MON] = sText_ChooseAPkmn, - [TRADE_TEXT_SUMMARY] = sText_Summary, - [TRADE_TEXT_TRADE] = sText_Trade, - [TRADE_TEXT_CANCEL_TRADE] = sText_CancelTrade, - [TRADE_TEXT_JP_QUIT] = sJPText_PressBButtonToQuit + [TEXT_CANCEL] = sText_Cancel, + [TEXT_CHOOSE_MON] = sText_ChooseAPkmn, + [TEXT_SUMMARY] = sText_Summary, + [TEXT_TRADE] = sText_Trade, + [TEXT_CANCEL_TRADE] = sText_CancelTrade, + [TEXT_JP_QUIT] = sJPText_PressBButtonToQuit }; static const struct MenuAction sSelectTradeMonActions[] = @@ -395,17 +376,17 @@ static const struct MenuAction sSelectTradeMonActions[] = {sText_Trade2, Task_DrawSelectionTrade} }; -static const u8 *const sTradeMessages[] = +static const u8 *const sMessages[] = { - [TRADE_MSG_STANDBY] = sText_CommunicationStandby, - [TRADE_MSG_CANCELED] = sText_TheTradeHasBeenCanceled, - [TRADE_MSG_ONLY_MON1] = sText_OnlyPkmnForBattle, - [TRADE_MSG_ONLY_MON2] = gText_OnlyPkmnForBattle, //identical text to above - [TRADE_MSG_WAITING_FOR_FRIEND] = sText_WaitingForYourFriend, - [TRADE_MSG_FRIEND_WANTS_TO_TRADE] = sText_YourFriendWantsToTrade, - [TRADE_MSG_MON_CANT_BE_TRADED] = gText_PkmnCantBeTradedNow, - [TRADE_MSG_EGG_CANT_BE_TRADED] = gText_EggCantBeTradedNow, - [TRADE_MSG_FRIENDS_MON_CANT_BE_TRADED] = gText_OtherTrainersPkmnCantBeTraded + [MSG_STANDBY] = sText_CommunicationStandby, + [MSG_CANCELED] = sText_TheTradeHasBeenCanceled, + [MSG_ONLY_MON1] = sText_OnlyPkmnForBattle, + [MSG_ONLY_MON2] = gText_OnlyPkmnForBattle, //identical text to above + [MSG_WAITING_FOR_FRIEND] = sText_WaitingForYourFriend, + [MSG_FRIEND_WANTS_TO_TRADE] = sText_YourFriendWantsToTrade, + [MSG_MON_CANT_BE_TRADED] = gText_PkmnCantBeTradedNow, + [MSG_EGG_CANT_BE_TRADED] = gText_EggCantBeTradedNow, + [MSG_FRIENDS_MON_CANT_BE_TRADED] = gText_OtherTrainersPkmnCantBeTraded }; static const u8 sTradeTextColors[] = @@ -415,7 +396,7 @@ static const u8 sTradeTextColors[] = TEXT_COLOR_DARK_GRAY //shadow color }; -static const struct BgTemplate sTradeMenuBgTemplates[] = +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, @@ -455,7 +436,7 @@ static const struct BgTemplate sTradeMenuBgTemplates[] = }, }; -static const struct WindowTemplate sTradeMenuWindowTemplates[] = +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 0, @@ -633,8 +614,8 @@ static const struct WindowTemplate sTradeYesNoWindowTemplate = .baseBlock = 582 }; -static const u8 sJPText_Shedinja[] = _("ヌケニン"); -static const u8 sTradeMenuPartyMonBoxDimensions[3][2] = +static const u8 sText_ShedinjaJP[] = _("ヌケニン"); +static const u8 sSelectedMonLevelGenderCoords[3][2] = { [TRADE_PLAYER] = {4, 3}, [TRADE_PARTNER] = {19, 3} diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index 0d028cd48..6eee8435c 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -677,7 +677,7 @@ void InitHostRfuGameData(struct RfuGameData *data, u8 activity, bool32 startedAc data->compatibility.hasNews = FALSE; data->compatibility.hasCard = FALSE; data->compatibility.unknown = FALSE; - data->compatibility.isChampion = FlagGet(FLAG_IS_CHAMPION); + data->compatibility.canLinkNationally = FlagGet(FLAG_IS_CHAMPION); data->compatibility.hasNationalDex = IsNationalPokedexEnabled(); data->compatibility.gameClear = FlagGet(FLAG_SYS_GAME_CLEAR); } diff --git a/src/trade.c b/src/trade.c index 61ebaf4cc..1032d0d5d 100644 --- a/src/trade.c +++ b/src/trade.c @@ -51,6 +51,68 @@ #include "constants/songs.h" #include "constants/union_room.h" +// IDs for RunTradeMenuCallback +enum { + CB_MAIN_MENU, + CB_SELECTED_MON, + CB_SHOW_MON_SUMMARY, + CB_CONFIRM_TRADE_PROMPT, + CB_CANCEL_TRADE_PROMPT, + CB_READY_WAIT, // Unused in Emerald, equivalent to CB_IDLE + CB_SET_SELECTED_MONS, + CB_PRINT_IS_THIS_OKAY, + CB_HANDLE_TRADE_CANCELED, + CB_FADE_TO_START_TRADE, + CB_WAIT_TO_START_TRADE, + CB_INIT_EXIT_CANCELED_TRADE, + CB_EXIT_CANCELED_TRADE, + CB_START_LINK_TRADE, + CB_INIT_CONFIRM_TRADE_PROMPT, + CB_UNUSED_CLOSE_MSG, + CB_WAIT_TO_START_RFU_TRADE, + CB_PARTNER_MON_INVALID, + CB_IDLE = 100, +}; + +// Indexes for sActionTexts +enum { + TEXT_CANCEL, + TEXT_CHOOSE_MON, + TEXT_SUMMARY, + TEXT_TRADE, + TEXT_CANCEL_TRADE, + TEXT_JP_QUIT, +}; + +// Indexes for sMessages +enum { + MSG_STANDBY, + MSG_CANCELED, + MSG_ONLY_MON1, + MSG_ONLY_MON2, + MSG_WAITING_FOR_FRIEND, + MSG_FRIEND_WANTS_TO_TRADE, + MSG_MON_CANT_BE_TRADED, + MSG_EGG_CANT_BE_TRADED, + MSG_FRIENDS_MON_CANT_BE_TRADED, +}; + +// IDs for QueueAction +enum { + QUEUE_SEND_DATA, + QUEUE_STANDBY, + QUEUE_ONLY_MON1, + QUEUE_ONLY_MON2, + QUEUE_UNUSED1, // Presumably intended for MSG_WAITING_FOR_FRIEND + QUEUE_UNUSED2, // Presumably intended for MSG_FRIEND_WANTS_TO_TRADE + QUEUE_MON_CANT_BE_TRADED, + QUEUE_EGG_CANT_BE_TRADED, + QUEUE_FRIENDS_MON_CANT_BE_TRADED, +}; + +#define QUEUE_DELAY_MSG 3 +#define QUEUE_DELAY_DATA 5 + // The following tags are offsets from GFXTAG_MENU_TEXT // They're looped over in CB2_CreateTradeMenu and CB2_ReturnToTradeMenu // and used as indexes into sMenuTextTileBuffers @@ -69,11 +131,21 @@ enum { GFXTAG_CHOOSE_PKMN_EMPTY_1, // 6 sprites to cover the full bottom bar, but only first 3 are needed GFXTAG_CHOOSE_PKMN_EMPTY_2, GFXTAG_CHOOSE_PKMN_EMPTY_3, - GFXTAG_MENU_TEXT_COUNT + NUM_MENU_TEXT_SPRITES }; -#define GFXTAG_PLAYER_NAME (1 + GFXTAG_PLAYER_NAME_R - GFXTAG_PLAYER_NAME_L) -#define GFXTAG_PARTNER_NAME (1 + GFXTAG_PARTNER_NAME_R - GFXTAG_PARTNER_NAME_L) -#define GFXTAG_CHOOSE_PKMN (1 + GFXTAG_CHOOSE_PKMN_EMPTY_3 - GFXTAG_CHOOSE_PKMN_L) +#define NUM_PLAYER_NAME_SPRITES (1 + GFXTAG_PLAYER_NAME_R - GFXTAG_PLAYER_NAME_L) +#define NUM_PARTNER_NAME_SPRITES (1 + GFXTAG_PARTNER_NAME_R - GFXTAG_PARTNER_NAME_L) +#define NUM_CHOOSE_PKMN_SPRITES (1 + GFXTAG_CHOOSE_PKMN_EMPTY_3 - GFXTAG_CHOOSE_PKMN_L) + +// Values for signaling to/from the link partner +enum { + STATUS_NONE, + STATUS_READY, + STATUS_CANCEL, +}; + +// Checked to confirm DrawSelectedMonScreen has reached final state +#define DRAW_SELECTED_FINISH 5 struct InGameTrade { /*0x00*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; @@ -91,56 +163,53 @@ struct InGameTrade { /*0x38*/ u16 requestedSpecies; }; -static EWRAM_DATA u8 *sMenuTextAllocBuffer = NULL; +static EWRAM_DATA u8 *sMenuTextTileBuffer = NULL; // Bytes 0-2 are used for the player's name text // Bytes 3-5 are used for the partner's name text // Bytes 6-7 are used for the Cancel text // Bytes 8-13 are used for the Choose a Pokemon text // See the corresponding GFXTAGs in src/data/trade.h -static EWRAM_DATA u8 *sMenuTextTileBuffers[GFXTAG_MENU_TEXT_COUNT] = {NULL}; +static EWRAM_DATA u8 *sMenuTextTileBuffers[NUM_MENU_TEXT_SPRITES] = {NULL}; EWRAM_DATA struct Mail gTradeMail[PARTY_SIZE] = {0}; EWRAM_DATA u8 gSelectedTradeMonPositions[2] = {0}; static EWRAM_DATA struct { - /*0x0000*/ u8 bg2hofs; - /*0x0001*/ u8 bg3hofs; - /*0x0002*/ u8 filler_2[38]; - /*0x0028*/ u8 partySpriteIds[2][PARTY_SIZE]; - /*0x0034*/ u8 cursorSpriteId; - /*0x0035*/ u8 cursorPosition; - /*0x0036*/ u8 partyCounts[2]; - /*0x0038*/ bool8 monPresent[PARTY_SIZE * 2]; - /*0x0044*/ bool8 neverRead_44; - /*0x0045*/ bool8 isLiveMon[2][PARTY_SIZE]; - /*0x0051*/ bool8 isEgg[2][PARTY_SIZE]; - /*0x005D*/ u8 hpBarLevels[2][PARTY_SIZE]; - /*0x0069*/ u8 bufferPartyState; - /*0x006A*/ u8 filler_6A[5]; - /*0x006F*/ u8 tradeMenuFunc; - /*0x0070*/ u8 neverRead_70; - /*0x0071*/ u8 filler_71; - /*0x0072*/ u16 bottomTextTileStart; - /*0x0074*/ u8 drawPartyState[2]; - /*0x0076*/ u8 selectedMonIdx[2]; - /*0x0078*/ u8 playerLinkFlagChoseAction; - /*0x0079*/ u8 partnerLinkFlagChoseAction; - /*0x007A*/ u8 playerLinkFlagStatus; - /*0x007B*/ u8 partnerLinkFlagStatus; - /*0x007C*/ u8 filler_7C[2]; - /*0x007E*/ u8 partnerCursorPosition; - /*0x007F*/ u8 unused_7F; - /*0x0080*/ u16 linkData[20]; - /*0x00A8*/ u8 timer; - /*0x00A9*/ u8 giftRibbons[GIFT_RIBBONS_COUNT]; - /*0x00B4*/ u8 filler_B4[0x81C]; - /*0x08D0*/ struct { - bool8 queued; - u16 queueDelay; + u8 bg2hofs; + u8 bg3hofs; + u8 filler_2[38]; + u8 partySpriteIds[2][PARTY_SIZE]; + u8 cursorSpriteId; + u8 cursorPosition; + u8 partyCounts[2]; + bool8 optionsActive[PARTY_SIZE * 2 + 1]; + bool8 isLiveMon[2][PARTY_SIZE]; + bool8 isEgg[2][PARTY_SIZE]; + u8 hpBarLevels[2][PARTY_SIZE]; + u8 bufferPartyState; + u8 filler_6A[5]; + u8 callbackId; + u8 neverRead_70; + u16 bottomTextTileStart; + u8 drawSelectedMonState[2]; + u8 selectedMonIdx[2]; + u8 playerSelectStatus; + u8 partnerSelectStatus; + u8 playerConfirmStatus; + u8 partnerConfirmStatus; + u8 filler_7C[2]; + u8 partnerCursorPosition; + u16 linkData[20]; + u8 timer; + u8 giftRibbons[GIFT_RIBBONS_COUNT]; + u8 filler_B4[0x81C]; + struct { + bool8 active; + u16 delay; u8 actionId; } queuedActions[4]; - /*0x08F0*/ u16 tilemapBuffer[0x400]; -} *sTradeMenuData = {NULL}; + u16 tilemapBuffer[BG_SCREEN_SIZE / 2]; +} *sTradeMenu = NULL; static EWRAM_DATA struct { /*0x00*/ struct Pokemon tempMon; // Used as a temp variable when swapping Pokémon @@ -193,29 +262,29 @@ static void CB2_CreateTradeMenu(void); static void VBlankCB_TradeMenu(void); static void CB2_TradeMenu(void); static void LoadTradeBgGfx(u8); -static void SetTradePartyMonsVisible(void); +static void SetActiveMenuOptions(void); static bool8 BufferTradeParties(void); -static void CB1_SendOrReactToLinkTradeData(void); -static void CallTradeMenuFunc(void); +static void CB1_UpdateLink(void); +static void RunTradeMenuCallback(void); static void SetSelectedMon(u8); -static void DrawTradeMenuParty(u8); +static void DrawSelectedMonScreen(u8); static u8 GetMonNicknameWidth(u8 *, u8, u8); -static void BufferTradeMonMoves(u8 *, u8, u8); -static void PrintPartyNicknamesForTradeMenu(u8); -static void DrawTradeMenuPartyMonInfo(u8, u8, u8, u8, u8, u8); -static void DrawTradeMenuPartyInfo(u8); -static void PrintNicknamesForTradeMenu(void); -static void RedrawTradeMenuParty(u8); +static void BufferMovesString(u8 *, u8, u8); +static void PrintPartyNicknames(u8); +static void PrintLevelAndGender(u8, u8, u8, u8, u8, u8); +static void PrintPartyLevelsAndGenders(u8); +static void PrintTradePartnerPartyNicknames(void); +static void RedrawPartyWindow(u8); static void Task_DrawSelectionSummary(u8); static void Task_DrawSelectionTrade(u8); static void QueueAction(u16, u8); static u32 GetNumQueuedActions(void); static void DoQueuedActions(void); static void PrintTradeMessage(u8); -static bool8 LoadTradeMenuSpriteSheetsAndPalettes(void); +static bool8 LoadUISpriteGfx(void); static void DrawBottomRowText(const u8 *, u8 *, u8); -static void SetTradePartyLiveStatuses(u8); -static void GetTradePartyHPBarLevels(u8); +static void ComputePartyTradeableFlags(u8); +static void ComputePartyHPBarLevels(u8); static void SetTradePartyHPBarSprites(void); static void SaveTradeGiftRibbons(void); static u32 CanTradeSelectedMon(struct Pokemon *, int, int); @@ -336,16 +405,16 @@ static void InitTradeMenu(void) LoadPalette(gStandardMenuPalette, 0xF0, 20); LoadPalette(gStandardMenuPalette, 0xD0, 20); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sTradeMenuBgTemplates, ARRAY_COUNT(sTradeMenuBgTemplates)); - SetBgTilemapBuffer(1, sTradeMenuData->tilemapBuffer); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + SetBgTilemapBuffer(1, sTradeMenu->tilemapBuffer); - if (InitWindows(sTradeMenuWindowTemplates)) + if (InitWindows(sWindowTemplates)) { u32 i; DeactivateAllTextPrinters(); - for (i = 0; i < 18; i++) + for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++) { ClearWindowTilemap(i); FillWindowPixelBuffer(i, PIXEL_FILL(0)); @@ -355,14 +424,14 @@ static void InitTradeMenu(void) LoadUserWindowBorderGfx_(0, 20, 0xC0); LoadUserWindowBorderGfx(2, 1, 0xE0); LoadMonIconPalettes(); - sTradeMenuData->bufferPartyState = 0; - sTradeMenuData->tradeMenuFunc = 0; - sTradeMenuData->neverRead_70 = 0; - sTradeMenuData->drawPartyState[TRADE_PLAYER] = 0; - sTradeMenuData->drawPartyState[TRADE_PARTNER] = 0; - sTradeMenuData->playerLinkFlagStatus = 0; - sTradeMenuData->partnerLinkFlagStatus = 0; - sTradeMenuData->timer = 0; + sTradeMenu->bufferPartyState = 0; + sTradeMenu->callbackId = CB_MAIN_MENU; + sTradeMenu->neverRead_70 = 0; + sTradeMenu->drawSelectedMonState[TRADE_PLAYER] = 0; + sTradeMenu->drawSelectedMonState[TRADE_PARTNER] = 0; + sTradeMenu->playerConfirmStatus = STATUS_NONE; + sTradeMenu->partnerConfirmStatus = STATUS_NONE; + sTradeMenu->timer = 0; } } @@ -383,12 +452,12 @@ static void CB2_CreateTradeMenu(void) switch (gMain.state) { case 0: - sTradeMenuData = AllocZeroed(sizeof(*sTradeMenuData)); + sTradeMenu = AllocZeroed(sizeof(*sTradeMenu)); InitTradeMenu(); - sMenuTextAllocBuffer = AllocZeroed(GFXTAG_MENU_TEXT_COUNT * 256); + sMenuTextTileBuffer = AllocZeroed(NUM_MENU_TEXT_SPRITES * 256); - for (i = 0; i < GFXTAG_MENU_TEXT_COUNT; i++) - sMenuTextTileBuffers[i] = &sMenuTextAllocBuffer[i * 256]; + for (i = 0; i < NUM_MENU_TEXT_SPRITES; i++) + sMenuTextTileBuffers[i] = &sMenuTextTileBuffer[i * 256]; gMain.state++; break; @@ -398,13 +467,13 @@ static void CB2_CreateTradeMenu(void) for (i = 0; i < PARTY_SIZE; i++) CreateMon(&gEnemyParty[i], SPECIES_NONE, 0, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); - PrintTradeMessage(TRADE_MSG_STANDBY); + PrintTradeMessage(MSG_STANDBY); ShowBg(0); if (!gReceivedRemoteLinkPlayers) { gLinkType = LINKTYPE_TRADE_CONNECTING; - sTradeMenuData->timer = 0; + sTradeMenu->timer = 0; if (gWirelessCommType) { @@ -425,10 +494,10 @@ static void CB2_CreateTradeMenu(void) } break; case 2: - sTradeMenuData->timer++; - if (sTradeMenuData->timer > 11) + sTradeMenu->timer++; + if (sTradeMenu->timer > 11) { - sTradeMenuData->timer = 0; + sTradeMenu->timer = 0; gMain.state++; } break; @@ -437,7 +506,7 @@ static void CB2_CreateTradeMenu(void) { if (IsLinkMaster()) { - if (++sTradeMenuData->timer > 30) + if (++sTradeMenu->timer > 30) { CheckShouldAdvanceLinkState(); gMain.state++; @@ -455,7 +524,7 @@ static void CB2_CreateTradeMenu(void) DestroyTask_RfuIdle(); CalculatePlayerPartyCount(); gMain.state++; - sTradeMenuData->timer = 0; + sTradeMenu->timer = 0; if (gWirelessCommType) { Rfu_SetLinkRecovery(TRUE); @@ -489,13 +558,13 @@ static void CB2_CreateTradeMenu(void) CalculateEnemyPartyCount(); SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_BLDCNT, 0); - sTradeMenuData->partyCounts[TRADE_PLAYER] = gPlayerPartyCount; - sTradeMenuData->partyCounts[TRADE_PARTNER] = gEnemyPartyCount; + sTradeMenu->partyCounts[TRADE_PLAYER] = gPlayerPartyCount; + sTradeMenu->partyCounts[TRADE_PARTNER] = gEnemyPartyCount; - for (i = 0; i < sTradeMenuData->partyCounts[TRADE_PLAYER]; i++) + for (i = 0; i < sTradeMenu->partyCounts[TRADE_PLAYER]; i++) { struct Pokemon *mon = &gPlayerParty[i]; - sTradeMenuData->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2), + sTradeMenu->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2), SpriteCB_MonIcon, (sTradeMonSpriteCoords[i][0] * 8) + 14, (sTradeMonSpriteCoords[i][1] * 8) - 12, @@ -504,10 +573,10 @@ static void CB2_CreateTradeMenu(void) TRUE); } - for (i = 0; i < sTradeMenuData->partyCounts[TRADE_PARTNER]; i++) + for (i = 0; i < sTradeMenu->partyCounts[TRADE_PARTNER]; i++) { struct Pokemon *mon = &gEnemyParty[i]; - sTradeMenuData->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), + sTradeMenu->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), SpriteCB_MonIcon, (sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14, (sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12, @@ -519,30 +588,30 @@ static void CB2_CreateTradeMenu(void) break; case 8: LoadHeldItemIcons(); - DrawHeldItemIconsForTrade(&sTradeMenuData->partyCounts[0], sTradeMenuData->partySpriteIds[0], TRADE_PLAYER); + DrawHeldItemIconsForTrade(&sTradeMenu->partyCounts[0], sTradeMenu->partySpriteIds[0], TRADE_PLAYER); gMain.state++; break; case 9: - DrawHeldItemIconsForTrade(&sTradeMenuData->partyCounts[0], sTradeMenuData->partySpriteIds[0], TRADE_PARTNER); + DrawHeldItemIconsForTrade(&sTradeMenu->partyCounts[0], sTradeMenu->partySpriteIds[0], TRADE_PARTNER); gMain.state++; break; case 10: DrawTextWindowAndBufferTiles(gSaveBlock2Ptr->playerName, sMenuTextTileBuffers[GFXTAG_PLAYER_NAME_L], 0, 0, 3); id = GetMultiplayerId(); DrawTextWindowAndBufferTiles(gLinkPlayers[id ^ 1].name, sMenuTextTileBuffers[GFXTAG_PARTNER_NAME_L], 0, 0, 3); - DrawTextWindowAndBufferTiles(sTradeActionTexts[TRADE_TEXT_CANCEL], sMenuTextTileBuffers[GFXTAG_CANCEL_L], 0, 0, 2); - DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], sMenuTextTileBuffers[GFXTAG_CHOOSE_PKMN_L], 24); + DrawTextWindowAndBufferTiles(sActionTexts[TEXT_CANCEL], sMenuTextTileBuffers[GFXTAG_CANCEL_L], 0, 0, 2); + DrawBottomRowText(sActionTexts[TEXT_CHOOSE_MON], sMenuTextTileBuffers[GFXTAG_CHOOSE_PKMN_L], 24); gMain.state++; - sTradeMenuData->timer = 0; + sTradeMenu->timer = 0; break; case 11: - if (LoadTradeMenuSpriteSheetsAndPalettes()) + if (LoadUISpriteGfx()) gMain.state++; break; case 12: // Create player's name text sprites xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gSaveBlock2Ptr->playerName, 120); - for (i = 0; i < GFXTAG_PLAYER_NAME; i++) + for (i = 0; i < NUM_PLAYER_NAME_SPRITES; i++) { temp = sSpriteTemplate_MenuText; temp.tileTag += i + GFXTAG_PLAYER_NAME_L; @@ -551,7 +620,7 @@ static void CB2_CreateTradeMenu(void) // Create partner's name text sprites xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gLinkPlayers[GetMultiplayerId() ^ 1].name, 120); - for (i = 0; i < GFXTAG_PARTNER_NAME; i++) + for (i = 0; i < NUM_PARTNER_NAME_SPRITES; i++) { temp = sSpriteTemplate_MenuText; temp.tileTag += i + GFXTAG_PARTNER_NAME_L; @@ -566,33 +635,33 @@ static void CB2_CreateTradeMenu(void) CreateSprite(&temp, 215, 152, 1); temp = sSpriteTemplate_MenuText; temp.tileTag += GFXTAG_CANCEL_R; - CreateSprite(&temp, 247, 152, 1); + CreateSprite(&temp, 215 + 32, 152, 1); // Create Choose a Pokémon text sprites (only 3 are needed, other 3 are empty) - for (i = 0; i < GFXTAG_CHOOSE_PKMN; i++) + for (i = 0; i < NUM_CHOOSE_PKMN_SPRITES; i++) { temp = sSpriteTemplate_MenuText; temp.tileTag += i + GFXTAG_CHOOSE_PKMN_L; CreateSprite(&temp, (i * 32) + 24, 150, 1); } - sTradeMenuData->cursorSpriteId = CreateSprite(&sSpriteTemplate_Cursor, sTradeMonSpriteCoords[0][0] * 8 + 32, sTradeMonSpriteCoords[0][1] * 8, 2); - sTradeMenuData->cursorPosition = 0; + sTradeMenu->cursorSpriteId = CreateSprite(&sSpriteTemplate_Cursor, sTradeMonSpriteCoords[0][0] * 8 + 32, sTradeMonSpriteCoords[0][1] * 8, 2); + sTradeMenu->cursorPosition = 0; gMain.state++; rbox_fill_rectangle(0); break; case 14: - SetTradePartyLiveStatuses(TRADE_PLAYER); - PrintPartyNicknamesForTradeMenu(TRADE_PLAYER); - sTradeMenuData->bg2hofs = 0; - sTradeMenuData->bg3hofs = 0; - SetTradePartyMonsVisible(); + ComputePartyTradeableFlags(TRADE_PLAYER); + PrintPartyNicknames(TRADE_PLAYER); + sTradeMenu->bg2hofs = 0; + sTradeMenu->bg3hofs = 0; + SetActiveMenuOptions(); gMain.state++; PlayBGM(MUS_SCHOOL); break; case 15: - SetTradePartyLiveStatuses(TRADE_PARTNER); - PrintPartyNicknamesForTradeMenu(TRADE_PARTNER); + ComputePartyTradeableFlags(TRADE_PARTNER); + PrintPartyNicknames(TRADE_PARTNER); gMain.state++; // fallthrough case 16: @@ -613,18 +682,18 @@ static void CB2_CreateTradeMenu(void) gMain.state++; break; case 20: - GetTradePartyHPBarLevels(TRADE_PLAYER); + ComputePartyHPBarLevels(TRADE_PLAYER); gMain.state++; break; case 21: - GetTradePartyHPBarLevels(TRADE_PARTNER); + ComputePartyHPBarLevels(TRADE_PARTNER); SetTradePartyHPBarSprites(); gMain.state++; break; case 22: if (!gPaletteFade.active) { - gMain.callback1 = CB1_SendOrReactToLinkTradeData; + gMain.callback1 = CB1_UpdateLink; SetMainCallback2(CB2_TradeMenu); } break; @@ -652,7 +721,7 @@ static void CB2_ReturnToTradeMenu(void) break; case 1: gMain.state++; - sTradeMenuData->timer = 0; + sTradeMenu->timer = 0; break; case 2: gMain.state++; @@ -677,16 +746,16 @@ static void CB2_ReturnToTradeMenu(void) break; case 7: CalculateEnemyPartyCount(); - sTradeMenuData->partyCounts[TRADE_PLAYER] = gPlayerPartyCount; - sTradeMenuData->partyCounts[TRADE_PARTNER] = gEnemyPartyCount; + sTradeMenu->partyCounts[TRADE_PLAYER] = gPlayerPartyCount; + sTradeMenu->partyCounts[TRADE_PARTNER] = gEnemyPartyCount; ClearWindowTilemap(0); - PrintPartyNicknamesForTradeMenu(TRADE_PLAYER); - PrintPartyNicknamesForTradeMenu(TRADE_PARTNER); + PrintPartyNicknames(TRADE_PLAYER); + PrintPartyNicknames(TRADE_PARTNER); - for (i = 0; i < sTradeMenuData->partyCounts[TRADE_PLAYER]; i++) + for (i = 0; i < sTradeMenu->partyCounts[TRADE_PLAYER]; i++) { struct Pokemon *mon = &gPlayerParty[i]; - sTradeMenuData->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), + sTradeMenu->partySpriteIds[TRADE_PLAYER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), SpriteCB_MonIcon, (sTradeMonSpriteCoords[i][0] * 8) + 14, (sTradeMonSpriteCoords[i][1] * 8) - 12, @@ -695,10 +764,10 @@ static void CB2_ReturnToTradeMenu(void) TRUE); } - for (i = 0; i < sTradeMenuData->partyCounts[TRADE_PARTNER]; i++) + for (i = 0; i < sTradeMenu->partyCounts[TRADE_PARTNER]; i++) { struct Pokemon *mon = &gEnemyParty[i]; - sTradeMenuData->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), + sTradeMenu->partySpriteIds[TRADE_PARTNER][i] = CreateMonIcon(GetMonData(mon, MON_DATA_SPECIES2, NULL), SpriteCB_MonIcon, (sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14, (sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12, @@ -710,30 +779,30 @@ static void CB2_ReturnToTradeMenu(void) break; case 8: LoadHeldItemIcons(); - DrawHeldItemIconsForTrade(&sTradeMenuData->partyCounts[0], sTradeMenuData->partySpriteIds[0], TRADE_PLAYER); + DrawHeldItemIconsForTrade(&sTradeMenu->partyCounts[0], sTradeMenu->partySpriteIds[0], TRADE_PLAYER); gMain.state++; break; case 9: - DrawHeldItemIconsForTrade(&sTradeMenuData->partyCounts[0], sTradeMenuData->partySpriteIds[0], TRADE_PARTNER); + DrawHeldItemIconsForTrade(&sTradeMenu->partyCounts[0], sTradeMenu->partySpriteIds[0], TRADE_PARTNER); gMain.state++; break; case 10: DrawTextWindowAndBufferTiles(gSaveBlock2Ptr->playerName, sMenuTextTileBuffers[GFXTAG_PLAYER_NAME_L], 0, 0, 3); id = GetMultiplayerId(); DrawTextWindowAndBufferTiles(gLinkPlayers[id ^ 1].name, sMenuTextTileBuffers[GFXTAG_PARTNER_NAME_L], 0, 0, 3); - DrawTextWindowAndBufferTiles(sTradeActionTexts[TRADE_TEXT_CANCEL], sMenuTextTileBuffers[GFXTAG_CANCEL_L], 0, 0, 2); - DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], sMenuTextTileBuffers[GFXTAG_CHOOSE_PKMN_L], 24); + DrawTextWindowAndBufferTiles(sActionTexts[TEXT_CANCEL], sMenuTextTileBuffers[GFXTAG_CANCEL_L], 0, 0, 2); + DrawBottomRowText(sActionTexts[TEXT_CHOOSE_MON], sMenuTextTileBuffers[GFXTAG_CHOOSE_PKMN_L], 24); gMain.state++; - sTradeMenuData->timer = 0; + sTradeMenu->timer = 0; break; case 11: - if (LoadTradeMenuSpriteSheetsAndPalettes()) + if (LoadUISpriteGfx()) gMain.state++; break; case 12: // Create player's name text sprites xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gSaveBlock2Ptr->playerName, 120); - for (i = 0; i < GFXTAG_PLAYER_NAME; i++) + for (i = 0; i < NUM_PLAYER_NAME_SPRITES; i++) { temp = sSpriteTemplate_MenuText; temp.tileTag += i + GFXTAG_PLAYER_NAME_L; @@ -742,7 +811,7 @@ static void CB2_ReturnToTradeMenu(void) // Create partner's name text sprites xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gLinkPlayers[GetMultiplayerId() ^ 1].name, 120); - for (i = 0; i < GFXTAG_PARTNER_NAME; i++) + for (i = 0; i < NUM_PARTNER_NAME_SPRITES; i++) { temp = sSpriteTemplate_MenuText; temp.tileTag += i + GFXTAG_PARTNER_NAME_L; @@ -757,24 +826,24 @@ static void CB2_ReturnToTradeMenu(void) CreateSprite(&temp, 215, 152, 1); temp = sSpriteTemplate_MenuText; temp.tileTag += GFXTAG_CANCEL_R; - CreateSprite(&temp, 247, 152, 1); + CreateSprite(&temp, 215 + 32, 152, 1); // Create Choose a Pokémon text sprites - for (i = 0; i < GFXTAG_CHOOSE_PKMN; i++) + for (i = 0; i < NUM_CHOOSE_PKMN_SPRITES; i++) { temp = sSpriteTemplate_MenuText; temp.tileTag += i + GFXTAG_CHOOSE_PKMN_L; CreateSprite(&temp, (i * 32) + 24, 150, 1); } - if (sTradeMenuData->cursorPosition < PARTY_SIZE) - sTradeMenuData->cursorPosition = gLastViewedMonIndex; + if (sTradeMenu->cursorPosition < PARTY_SIZE) + sTradeMenu->cursorPosition = gLastViewedMonIndex; else - sTradeMenuData->cursorPosition = gLastViewedMonIndex + PARTY_SIZE; + sTradeMenu->cursorPosition = gLastViewedMonIndex + PARTY_SIZE; - sTradeMenuData->cursorSpriteId = CreateSprite(&sSpriteTemplate_Cursor, - sTradeMonSpriteCoords[sTradeMenuData->cursorPosition][0] * 8 + 32, - sTradeMonSpriteCoords[sTradeMenuData->cursorPosition][1] * 8, 2); + sTradeMenu->cursorSpriteId = CreateSprite(&sSpriteTemplate_Cursor, + sTradeMonSpriteCoords[sTradeMenu->cursorPosition][0] * 8 + 32, + sTradeMonSpriteCoords[sTradeMenu->cursorPosition][1] * 8, 2); gMain.state = 16; break; case 16: @@ -783,9 +852,9 @@ static void CB2_ReturnToTradeMenu(void) break; case 17: LoadTradeBgGfx(1); - sTradeMenuData->bg2hofs = 0; - sTradeMenuData->bg3hofs = 0; - SetTradePartyMonsVisible(); + sTradeMenu->bg2hofs = 0; + sTradeMenu->bg3hofs = 0; + SetActiveMenuOptions(); gMain.state++; break; case 18: @@ -808,9 +877,7 @@ static void CB2_ReturnToTradeMenu(void) break; case 22: if (!gPaletteFade.active) - { SetMainCallback2(CB2_TradeMenu); - } break; } @@ -827,59 +894,59 @@ static void VBlankCB_TradeMenu(void) TransferPlttBuffer(); } -static void LinkTradeFadeOut(void) +static void CB_FadeToStartTrade(void) { - if (++sTradeMenuData->timer > 15) + if (++sTradeMenu->timer > 15) { BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_LINK_TRADE_WAIT_FADE; + sTradeMenu->callbackId = CB_WAIT_TO_START_TRADE; } } -static void LinkTradeWaitForFade(void) +static void CB_WaitToStartTrade(void) { if (!gPaletteFade.active) { - gSelectedTradeMonPositions[TRADE_PLAYER] = sTradeMenuData->cursorPosition; - gSelectedTradeMonPositions[TRADE_PARTNER] = sTradeMenuData->partnerCursorPosition; + gSelectedTradeMonPositions[TRADE_PLAYER] = sTradeMenu->cursorPosition; + gSelectedTradeMonPositions[TRADE_PARTNER] = sTradeMenu->partnerCursorPosition; if (gWirelessCommType) { - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_LINK_TRADE_WAIT_QUEUE; + sTradeMenu->callbackId = CB_WAIT_TO_START_RFU_TRADE; } else { SetCloseLinkCallbackAndType(32); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_START_LINK_TRADE; + sTradeMenu->callbackId = CB_START_LINK_TRADE; } } } -static void SetLinkTradeCallbacks(void) +static void CB_StartLinkTrade(void) { gMain.savedCallback = CB2_StartCreateTradeMenu; - // Wireless Link Trade if (gWirelessCommType) { + // Wireless Link Trade if (IsLinkRfuTaskFinished()) { - Free(sMenuTextAllocBuffer); + Free(sMenuTextTileBuffer); FreeAllWindowBuffers(); - Free(sTradeMenuData); + Free(sTradeMenu); gMain.callback1 = NULL; DestroyWirelessStatusIndicatorSprite(); SetMainCallback2(CB2_LinkTrade); } } - // Cable Link Trade else { + // Cable Link Trade if (!gReceivedRemoteLinkPlayers) { - Free(sMenuTextAllocBuffer); + Free(sMenuTextTileBuffer); FreeAllWindowBuffers(); - Free(sTradeMenuData); + Free(sTradeMenu); gMain.callback1 = NULL; SetMainCallback2(CB2_LinkTrade); } @@ -888,13 +955,15 @@ static void SetLinkTradeCallbacks(void) static void CB2_TradeMenu(void) { - CallTradeMenuFunc(); + RunTradeMenuCallback(); DoQueuedActions(); - DrawTradeMenuParty(TRADE_PLAYER); - DrawTradeMenuParty(TRADE_PARTNER); - SetGpuReg(REG_OFFSET_BG2HOFS, sTradeMenuData->bg2hofs++); - SetGpuReg(REG_OFFSET_BG3HOFS, sTradeMenuData->bg3hofs--); + // As long as drawSelectedMonState is 0, these do nothing + DrawSelectedMonScreen(TRADE_PLAYER); + DrawSelectedMonScreen(TRADE_PARTNER); + + SetGpuReg(REG_OFFSET_BG2HOFS, sTradeMenu->bg2hofs++); + SetGpuReg(REG_OFFSET_BG3HOFS, sTradeMenu->bg3hofs--); RunTextPrintersAndIsPrinter0Active(); RunTasks(); @@ -917,8 +986,8 @@ static void LoadTradeBgGfx(u8 state) break; case 1: LoadBgTilemap(3, sTradeStripesBG3Tilemap, 0x800, 0); - DrawTradeMenuPartyInfo(TRADE_PLAYER); - DrawTradeMenuPartyInfo(TRADE_PARTNER); + PrintPartyLevelsAndGenders(TRADE_PLAYER); + PrintPartyLevelsAndGenders(TRADE_PARTNER); CopyBgTilemapBufferToVram(1); break; case 2: @@ -932,47 +1001,50 @@ static void LoadTradeBgGfx(u8 state) } } -static void SetTradePartyMonsVisible(void) +// Determine (based on party counts) where the main menu cursor can go +static void SetActiveMenuOptions(void) { int i; for (i = 0; i < PARTY_SIZE; i++) { - if (i < sTradeMenuData->partyCounts[TRADE_PLAYER]) + if (i < sTradeMenu->partyCounts[TRADE_PLAYER]) { - gSprites[sTradeMenuData->partySpriteIds[TRADE_PLAYER][i]].invisible = FALSE; - sTradeMenuData->monPresent[i] = TRUE; + // Present player pokemon + gSprites[sTradeMenu->partySpriteIds[TRADE_PLAYER][i]].invisible = FALSE; + sTradeMenu->optionsActive[i] = TRUE; } else { - sTradeMenuData->monPresent[i] = FALSE; + // Absent player pokemon + sTradeMenu->optionsActive[i] = FALSE; } - if (i < sTradeMenuData->partyCounts[TRADE_PARTNER]) + if (i < sTradeMenu->partyCounts[TRADE_PARTNER]) { - gSprites[sTradeMenuData->partySpriteIds[TRADE_PARTNER][i]].invisible = FALSE; - sTradeMenuData->monPresent[i + PARTY_SIZE] = TRUE; + // Present partner pokemon + gSprites[sTradeMenu->partySpriteIds[TRADE_PARTNER][i]].invisible = FALSE; + sTradeMenu->optionsActive[i + PARTY_SIZE] = TRUE; } else { - sTradeMenuData->monPresent[i + PARTY_SIZE] = FALSE; + // Absent partner pokemno + sTradeMenu->optionsActive[i + PARTY_SIZE] = FALSE; } } - sTradeMenuData->neverRead_44 = TRUE; + // Cancel is always active + sTradeMenu->optionsActive[PARTY_SIZE * 2] = TRUE; } // why not just use memcpy? -static void Trade_Memcpy(void *dataDest, const void *dataSrc, u32 count) +static void Trade_Memcpy(void *dest, const void *src, u32 size) { - u8 *dest = dataDest; - const u8 *src = dataSrc; + u8 *_dest = dest; + const u8 *_src = src; u32 i; - - for (i = 0; i < count; i++) - { - dest[i] = src[i]; - } + for (i = 0; i < size; i++) + _dest[i] = _src[i]; } static bool8 BufferTradeParties(void) @@ -981,107 +1053,107 @@ static bool8 BufferTradeParties(void) int i; struct Pokemon *mon; - switch (sTradeMenuData->bufferPartyState) + switch (sTradeMenu->bufferPartyState) { case 0: // The parties are sent in pairs rather than all at once Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[0], 2 * sizeof(struct Pokemon)); - sTradeMenuData->bufferPartyState++; - sTradeMenuData->timer = 0; + sTradeMenu->bufferPartyState++; + sTradeMenu->timer = 0; break; case 1: if (IsLinkTradeTaskFinished()) { if (_GetBlockReceivedStatus() == 0) { - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; } else { TradeResetReceivedFlags(); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; } } break; case 3: if (id == 0) RequestLinkData(BLOCK_REQ_SIZE_200); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; break; case 4: if (_GetBlockReceivedStatus() == 3) { Trade_Memcpy(&gEnemyParty[0], gBlockRecvBuffer[id ^ 1], 2 * sizeof(struct Pokemon)); TradeResetReceivedFlags(); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; } break; case 5: Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[2], 2 * sizeof(struct Pokemon)); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; break; case 7: if (id == 0) RequestLinkData(BLOCK_REQ_SIZE_200); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; break; case 8: if (_GetBlockReceivedStatus() == 3) { Trade_Memcpy(&gEnemyParty[2], gBlockRecvBuffer[id ^ 1], 2 * sizeof(struct Pokemon)); TradeResetReceivedFlags(); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; } break; case 9: Trade_Memcpy(gBlockSendBuffer, &gPlayerParty[4], 2 * sizeof(struct Pokemon)); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; break; case 11: if (id == 0) RequestLinkData(BLOCK_REQ_SIZE_200); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; break; case 12: if (_GetBlockReceivedStatus() == 3) { Trade_Memcpy(&gEnemyParty[4], gBlockRecvBuffer[id ^ 1], 2 * sizeof(struct Pokemon)); TradeResetReceivedFlags(); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; } break; case 13: Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->mail, PARTY_SIZE * sizeof(struct Mail) + 4); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; break; case 15: if (id == 0) RequestLinkData(BLOCK_REQ_SIZE_220); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; break; case 16: if (_GetBlockReceivedStatus() == 3) { Trade_Memcpy(gTradeMail, gBlockRecvBuffer[id ^ 1], PARTY_SIZE * sizeof(struct Mail)); TradeResetReceivedFlags(); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; } break; case 17: - Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->giftRibbons, sizeof(sTradeMenuData->giftRibbons)); - sTradeMenuData->bufferPartyState++; + Trade_Memcpy(gBlockSendBuffer, gSaveBlock1Ptr->giftRibbons, sizeof(sTradeMenu->giftRibbons)); + sTradeMenu->bufferPartyState++; break; case 19: if (id == 0) RequestLinkData(BLOCK_REQ_SIZE_40); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; break; case 20: if (_GetBlockReceivedStatus() == 3) { - Trade_Memcpy(sTradeMenuData->giftRibbons, gBlockRecvBuffer[id ^ 1], sizeof(sTradeMenuData->giftRibbons)); + Trade_Memcpy(sTradeMenu->giftRibbons, gBlockRecvBuffer[id ^ 1], sizeof(sTradeMenu->giftRibbons)); TradeResetReceivedFlags(); - sTradeMenuData->bufferPartyState++; + sTradeMenu->bufferPartyState++; } break; case 21: @@ -1096,10 +1168,8 @@ static bool8 BufferTradeParties(void) { GetMonData(mon, MON_DATA_NICKNAME, name); - if (!StringCompareWithoutExtCtrlCodes(name, sJPText_Shedinja)) - { + if (!StringCompareWithoutExtCtrlCodes(name, sText_ShedinjaJP)) SetMonData(mon, MON_DATA_NICKNAME, gSpeciesNames[SPECIES_SHEDINJA]); - } } } } @@ -1110,40 +1180,39 @@ static bool8 BufferTradeParties(void) case 10: case 14: case 18: - sTradeMenuData->timer++; - if (sTradeMenuData->timer > 10) + sTradeMenu->timer++; + if (sTradeMenu->timer > 10) { - sTradeMenuData->timer = 0; - sTradeMenuData->bufferPartyState++; + sTradeMenu->timer = 0; + sTradeMenu->bufferPartyState++; } break; } return FALSE; } -static void DrawIsThisTradeOkay(void) +static void PrintIsThisTradeOkay(void) { - DrawBottomRowText(sText_IsThisTradeOkay, (void *)(OBJ_VRAM0 + (sTradeMenuData->bottomTextTileStart * 32)), 24); + DrawBottomRowText(sText_IsThisTradeOkay, (void *)(OBJ_VRAM0 + (sTradeMenu->bottomTextTileStart * 32)), 24); } -// mpId is unused -static void UpdateLinkTradeFlags(u8 mpId, u8 status) +static void Leader_ReadLinkBuffer(u8 mpId, u8 status) { if (status & 1) { switch (gBlockRecvBuffer[0][0]) { case LINKCMD_REQUEST_CANCEL: - sTradeMenuData->playerLinkFlagChoseAction = WANTS_TO_CANCEL; + sTradeMenu->playerSelectStatus = STATUS_CANCEL; break; case LINKCMD_READY_TO_TRADE: - sTradeMenuData->playerLinkFlagChoseAction = WANTS_TO_TRADE; + sTradeMenu->playerSelectStatus = STATUS_READY; break; case LINKCMD_INIT_BLOCK: - sTradeMenuData->playerLinkFlagStatus = INITIATE_TRADE; + sTradeMenu->playerConfirmStatus = STATUS_READY; break; case LINKCMD_READY_CANCEL_TRADE: - sTradeMenuData->playerLinkFlagStatus = CANCEL_TRADE; + sTradeMenu->playerConfirmStatus = STATUS_CANCEL; break; } TradeResetReceivedFlag(0); @@ -1154,25 +1223,24 @@ static void UpdateLinkTradeFlags(u8 mpId, u8 status) switch (gBlockRecvBuffer[1][0]) { case LINKCMD_REQUEST_CANCEL: - sTradeMenuData->partnerLinkFlagChoseAction = WANTS_TO_CANCEL; + sTradeMenu->partnerSelectStatus = STATUS_CANCEL; break; case LINKCMD_READY_TO_TRADE: - sTradeMenuData->partnerCursorPosition = gBlockRecvBuffer[1][1] + 6; - sTradeMenuData->partnerLinkFlagChoseAction = WANTS_TO_TRADE; + sTradeMenu->partnerCursorPosition = gBlockRecvBuffer[1][1] + PARTY_SIZE; + sTradeMenu->partnerSelectStatus = STATUS_READY; break; case LINKCMD_INIT_BLOCK: - sTradeMenuData->partnerLinkFlagStatus = INITIATE_TRADE; + sTradeMenu->partnerConfirmStatus = STATUS_READY; break; case LINKCMD_READY_CANCEL_TRADE: - sTradeMenuData->partnerLinkFlagStatus = CANCEL_TRADE; + sTradeMenu->partnerConfirmStatus = STATUS_CANCEL; break; } TradeResetReceivedFlag(1); } } -// mpId is unused -static void ReactToLinkTradeData(u8 mpId, u8 status) +static void Follower_ReadLinkBuffer(u8 mpId, u8 status) { if (status & 1) { @@ -1180,27 +1248,27 @@ static void ReactToLinkTradeData(u8 mpId, u8 status) { case LINKCMD_BOTH_CANCEL_TRADE: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - PrintTradeMessage(TRADE_MSG_WAITING_FOR_FRIEND); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CANCEL_TRADE_1; + PrintTradeMessage(MSG_WAITING_FOR_FRIEND); + sTradeMenu->callbackId = CB_INIT_EXIT_CANCELED_TRADE; break; case LINKCMD_PARTNER_CANCEL_TRADE: - PrintTradeMessage(TRADE_MSG_FRIEND_WANTS_TO_TRADE); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; + PrintTradeMessage(MSG_FRIEND_WANTS_TO_TRADE); + sTradeMenu->callbackId = CB_HANDLE_TRADE_CANCELED; break; case LINKCMD_SET_MONS_TO_TRADE: - sTradeMenuData->partnerCursorPosition = gBlockRecvBuffer[0][1] + 6; + sTradeMenu->partnerCursorPosition = gBlockRecvBuffer[0][1] + PARTY_SIZE; rbox_fill_rectangle(0); - SetSelectedMon(sTradeMenuData->cursorPosition); - SetSelectedMon(sTradeMenuData->partnerCursorPosition); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CONFIRM_TRADE_PROMPT; + SetSelectedMon(sTradeMenu->cursorPosition); + SetSelectedMon(sTradeMenu->partnerCursorPosition); + sTradeMenu->callbackId = CB_PRINT_IS_THIS_OKAY; break; case LINKCMD_START_TRADE: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_LINK_TRADE_WAIT_FADE; + sTradeMenu->callbackId = CB_WAIT_TO_START_TRADE; break; case LINKCMD_PLAYER_CANCEL_TRADE: - PrintTradeMessage(TRADE_MSG_CANCELED); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; + PrintTradeMessage(MSG_CANCELED); + sTradeMenu->callbackId = CB_HANDLE_TRADE_CANCELED; } TradeResetReceivedFlag(0); } @@ -1209,76 +1277,87 @@ static void ReactToLinkTradeData(u8 mpId, u8 status) TradeResetReceivedFlag(1); } -static void QueueLinkTradeData(void) +static void Leader_HandleCommunication(void) { - if (sTradeMenuData->playerLinkFlagChoseAction && sTradeMenuData->partnerLinkFlagChoseAction) + if (sTradeMenu->playerSelectStatus != STATUS_NONE + && sTradeMenu->partnerSelectStatus != STATUS_NONE) { - if (sTradeMenuData->playerLinkFlagChoseAction == WANTS_TO_TRADE - && sTradeMenuData->partnerLinkFlagChoseAction == WANTS_TO_TRADE) + if (sTradeMenu->playerSelectStatus == STATUS_READY + && sTradeMenu->partnerSelectStatus == STATUS_READY) { - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_BOTH_MONS_SELECTED; - sTradeMenuData->linkData[0] = LINKCMD_SET_MONS_TO_TRADE; - sTradeMenuData->linkData[1] = sTradeMenuData->cursorPosition; + // Both players have selected a pokemon to trade + sTradeMenu->callbackId = CB_SET_SELECTED_MONS; + sTradeMenu->linkData[0] = LINKCMD_SET_MONS_TO_TRADE; + sTradeMenu->linkData[1] = sTradeMenu->cursorPosition; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); - sTradeMenuData->playerLinkFlagChoseAction = sTradeMenuData->partnerLinkFlagChoseAction = 0; + sTradeMenu->playerSelectStatus = sTradeMenu->partnerSelectStatus = STATUS_NONE; } - else if (sTradeMenuData->playerLinkFlagChoseAction == WANTS_TO_TRADE - && sTradeMenuData->partnerLinkFlagChoseAction == WANTS_TO_CANCEL) + else if (sTradeMenu->playerSelectStatus == STATUS_READY + && sTradeMenu->partnerSelectStatus == STATUS_CANCEL) { - PrintTradeMessage(TRADE_MSG_CANCELED); - sTradeMenuData->linkData[0] = LINKCMD_PARTNER_CANCEL_TRADE; - sTradeMenuData->linkData[1] = 0; + // The player has selected a pokemon to trade, + // but the partner has selected Cancel + PrintTradeMessage(MSG_CANCELED); + sTradeMenu->linkData[0] = LINKCMD_PARTNER_CANCEL_TRADE; + sTradeMenu->linkData[1] = 0; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); - sTradeMenuData->playerLinkFlagStatus = sTradeMenuData->partnerLinkFlagStatus = 0; - sTradeMenuData->playerLinkFlagChoseAction = sTradeMenuData->partnerLinkFlagChoseAction = 0; - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; + sTradeMenu->playerConfirmStatus = sTradeMenu->partnerConfirmStatus = STATUS_NONE; + sTradeMenu->playerSelectStatus = sTradeMenu->partnerSelectStatus = STATUS_NONE; + sTradeMenu->callbackId = CB_HANDLE_TRADE_CANCELED; } - else if (sTradeMenuData->playerLinkFlagChoseAction == WANTS_TO_CANCEL - && sTradeMenuData->partnerLinkFlagChoseAction == WANTS_TO_TRADE) + else if (sTradeMenu->playerSelectStatus == STATUS_CANCEL + && sTradeMenu->partnerSelectStatus == STATUS_READY) { - PrintTradeMessage(TRADE_MSG_FRIEND_WANTS_TO_TRADE); - sTradeMenuData->linkData[0] = LINKCMD_PLAYER_CANCEL_TRADE; - sTradeMenuData->linkData[1] = 0; + // The partner has selected a pokemon to trade, + // but the player has selected cancel + PrintTradeMessage(MSG_FRIEND_WANTS_TO_TRADE); + sTradeMenu->linkData[0] = LINKCMD_PLAYER_CANCEL_TRADE; + sTradeMenu->linkData[1] = 0; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); - sTradeMenuData->playerLinkFlagStatus = sTradeMenuData->partnerLinkFlagStatus = 0; - sTradeMenuData->playerLinkFlagChoseAction = sTradeMenuData->partnerLinkFlagChoseAction = 0; - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; + sTradeMenu->playerConfirmStatus = sTradeMenu->partnerConfirmStatus = STATUS_NONE; + sTradeMenu->playerSelectStatus = sTradeMenu->partnerSelectStatus = STATUS_NONE; + sTradeMenu->callbackId = CB_HANDLE_TRADE_CANCELED; } - else if (sTradeMenuData->playerLinkFlagChoseAction == WANTS_TO_CANCEL - && sTradeMenuData->partnerLinkFlagChoseAction == WANTS_TO_CANCEL) + else if (sTradeMenu->playerSelectStatus == STATUS_CANCEL + && sTradeMenu->partnerSelectStatus == STATUS_CANCEL) { - sTradeMenuData->linkData[0] = LINKCMD_BOTH_CANCEL_TRADE; - sTradeMenuData->linkData[1] = 0; + // Both players have selected Cancel + sTradeMenu->linkData[0] = LINKCMD_BOTH_CANCEL_TRADE; + sTradeMenu->linkData[1] = 0; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeMenuData->playerLinkFlagChoseAction = sTradeMenuData->partnerLinkFlagChoseAction = 0; - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CANCEL_TRADE_1; + sTradeMenu->playerSelectStatus = sTradeMenu->partnerSelectStatus = STATUS_NONE; + sTradeMenu->callbackId = CB_INIT_EXIT_CANCELED_TRADE; } } - if (sTradeMenuData->playerLinkFlagStatus && sTradeMenuData->partnerLinkFlagStatus) + if (sTradeMenu->playerConfirmStatus != STATUS_NONE + && sTradeMenu->partnerConfirmStatus != STATUS_NONE) { - if (sTradeMenuData->playerLinkFlagStatus == INITIATE_TRADE - && sTradeMenuData->partnerLinkFlagStatus == INITIATE_TRADE) + if (sTradeMenu->playerConfirmStatus == STATUS_READY + && sTradeMenu->partnerConfirmStatus == STATUS_READY) { - sTradeMenuData->linkData[0] = LINKCMD_START_TRADE; - sTradeMenuData->linkData[1] = 0; + // Both players have confirmed trade + sTradeMenu->linkData[0] = LINKCMD_START_TRADE; + sTradeMenu->linkData[1] = 0; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); - sTradeMenuData->playerLinkFlagStatus = 0; - sTradeMenuData->partnerLinkFlagStatus = 0; - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_LINK_TRADE_FADE_OUT; + sTradeMenu->playerConfirmStatus = STATUS_NONE; + sTradeMenu->partnerConfirmStatus = STATUS_NONE; + sTradeMenu->callbackId = CB_FADE_TO_START_TRADE; } - if (sTradeMenuData->playerLinkFlagStatus == CANCEL_TRADE - || sTradeMenuData->partnerLinkFlagStatus == CANCEL_TRADE) + if (sTradeMenu->playerConfirmStatus == STATUS_CANCEL + || sTradeMenu->partnerConfirmStatus == STATUS_CANCEL) { - PrintTradeMessage(TRADE_MSG_CANCELED); - sTradeMenuData->linkData[0] = LINKCMD_PLAYER_CANCEL_TRADE; - sTradeMenuData->linkData[1] = 0; + // One of the players has decided not to confirm the trade, + // or the trade was not allowed. + PrintTradeMessage(MSG_CANCELED); + sTradeMenu->linkData[0] = LINKCMD_PLAYER_CANCEL_TRADE; + sTradeMenu->linkData[1] = 0; QueueAction(QUEUE_DELAY_DATA, QUEUE_SEND_DATA); - sTradeMenuData->playerLinkFlagStatus = 0; - sTradeMenuData->partnerLinkFlagStatus = 0; - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; + sTradeMenu->playerConfirmStatus = STATUS_NONE; + sTradeMenu->partnerConfirmStatus = STATUS_NONE; + sTradeMenu->callbackId = CB_HANDLE_TRADE_CANCELED; } } } @@ -1292,10 +1371,10 @@ static void _SetLinkData(u16 *linkData, u16 linkCmd, u16 cursorPosition) static void SetLinkData(u16 linkCmd, u16 cursorPosition) { - _SetLinkData(sTradeMenuData->linkData, linkCmd, cursorPosition); + _SetLinkData(sTradeMenu->linkData, linkCmd, cursorPosition); } -static void CB1_SendOrReactToLinkTradeData(void) +static void CB1_UpdateLink(void) { u8 mpId = GetMultiplayerId(); u8 status; @@ -1303,25 +1382,25 @@ static void CB1_SendOrReactToLinkTradeData(void) if ((status = _GetBlockReceivedStatus())) { if (mpId == 0) - UpdateLinkTradeFlags(mpId, status); + Leader_ReadLinkBuffer(mpId, status); else - ReactToLinkTradeData(mpId, status); + Follower_ReadLinkBuffer(mpId, status); } if (mpId == 0) - QueueLinkTradeData(); + Leader_HandleCommunication(); } -static u8 GetNewTradeMenuPosition(u8 oldPosition, u8 direction) +static u8 GetNewCursorPosition(u8 oldPosition, u8 direction) { int i; u8 newPosition = 0; for (i = 0; i < PARTY_SIZE; i++) { - if (sTradeMenuData->monPresent[sTradeNextSelectedMonTable[oldPosition][direction][i]] == TRUE) + if (sTradeMenu->optionsActive[sCursorMoveDestinations[oldPosition][direction][i]] == TRUE) { - newPosition = sTradeNextSelectedMonTable[oldPosition][direction][i]; + newPosition = sCursorMoveDestinations[oldPosition][direction][i]; break; } } @@ -1331,157 +1410,151 @@ static u8 GetNewTradeMenuPosition(u8 oldPosition, u8 direction) static void TradeMenuMoveCursor(u8 *cursorPosition, u8 direction) { - u8 newPosition = GetNewTradeMenuPosition(*cursorPosition, direction); + u8 newPosition = GetNewCursorPosition(*cursorPosition, direction); if (newPosition == (PARTY_SIZE * 2)) // CANCEL { - StartSpriteAnim(&gSprites[sTradeMenuData->cursorSpriteId], CURSOR_ANIM_ON_CANCEL); - gSprites[sTradeMenuData->cursorSpriteId].x = DISPLAY_WIDTH - 16; - gSprites[sTradeMenuData->cursorSpriteId].y = DISPLAY_HEIGHT; + StartSpriteAnim(&gSprites[sTradeMenu->cursorSpriteId], CURSOR_ANIM_ON_CANCEL); + gSprites[sTradeMenu->cursorSpriteId].x = DISPLAY_WIDTH - 16; + gSprites[sTradeMenu->cursorSpriteId].y = DISPLAY_HEIGHT; } else { - StartSpriteAnim(&gSprites[sTradeMenuData->cursorSpriteId], CURSOR_ANIM_NORMAL); - gSprites[sTradeMenuData->cursorSpriteId].x = sTradeMonSpriteCoords[newPosition][0] * 8 + 32; - gSprites[sTradeMenuData->cursorSpriteId].y = sTradeMonSpriteCoords[newPosition][1] * 8; + StartSpriteAnim(&gSprites[sTradeMenu->cursorSpriteId], CURSOR_ANIM_NORMAL); + gSprites[sTradeMenu->cursorSpriteId].x = sTradeMonSpriteCoords[newPosition][0] * 8 + 32; + gSprites[sTradeMenu->cursorSpriteId].y = sTradeMonSpriteCoords[newPosition][1] * 8; } if (*cursorPosition != newPosition) - { PlaySE(SE_SELECT); - } *cursorPosition = newPosition; } static void SetReadyToTrade(void) { - PrintTradeMessage(TRADE_MSG_STANDBY); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_STANDBY; + PrintTradeMessage(MSG_STANDBY); + sTradeMenu->callbackId = CB_IDLE; if (GetMultiplayerId() == 1) - SetLinkData(LINKCMD_READY_TO_TRADE, sTradeMenuData->cursorPosition); + { + // Communicate to the link leader that we're ready to trade + SetLinkData(LINKCMD_READY_TO_TRADE, sTradeMenu->cursorPosition); + } else - sTradeMenuData->playerLinkFlagChoseAction = WANTS_TO_TRADE; + { + // We are the link leader, no communication necessary + sTradeMenu->playerSelectStatus = STATUS_READY; + } } -static void TradeMenuProcessInput(void) +static void CB_ProcessMenuInput(void) { if (JOY_REPEAT(DPAD_UP)) - { - TradeMenuMoveCursor(&sTradeMenuData->cursorPosition, 0); - } + TradeMenuMoveCursor(&sTradeMenu->cursorPosition, 0); else if (JOY_REPEAT(DPAD_DOWN)) - { - TradeMenuMoveCursor(&sTradeMenuData->cursorPosition, 1); - } + TradeMenuMoveCursor(&sTradeMenu->cursorPosition, 1); else if (JOY_REPEAT(DPAD_LEFT)) - { - TradeMenuMoveCursor(&sTradeMenuData->cursorPosition, 2); - } + TradeMenuMoveCursor(&sTradeMenu->cursorPosition, 2); else if (JOY_REPEAT(DPAD_RIGHT)) - { - TradeMenuMoveCursor(&sTradeMenuData->cursorPosition, 3); - } + TradeMenuMoveCursor(&sTradeMenu->cursorPosition, 3); if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - // Cursor is in player's party - if (sTradeMenuData->cursorPosition < PARTY_SIZE) + if (sTradeMenu->cursorPosition < PARTY_SIZE) { + // Selected pokemon in player's party DrawTextBorderOuter(1, 1, 14); FillWindowPixelBuffer(1, PIXEL_FILL(1)); PrintMenuTable(1, ARRAY_COUNT(sSelectTradeMonActions), sSelectTradeMonActions); InitMenuInUpperLeftCornerNormal(1, ARRAY_COUNT(sSelectTradeMonActions), 0); PutWindowTilemap(1); CopyWindowToVram(1, COPYWIN_FULL); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_SELECTED_MON; + sTradeMenu->callbackId = CB_SELECTED_MON; } - // Cursor is in partner's party - else if (sTradeMenuData->cursorPosition < PARTY_SIZE * 2) + else if (sTradeMenu->cursorPosition < PARTY_SIZE * 2) { + // Selected pokemon in partner's party BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_SHOW_MON_SUMMARY; + sTradeMenu->callbackId = CB_SHOW_MON_SUMMARY; } - // Cursor is on Cancel - else if (sTradeMenuData->cursorPosition == PARTY_SIZE * 2) + else if (sTradeMenu->cursorPosition == PARTY_SIZE * 2) { + // Selected Cancel CreateYesNoMenu(&sTradeYesNoWindowTemplate, 1, 14, 0); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CANCEL_TRADE_PROMPT; - DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CANCEL_TRADE], (void *)(OBJ_VRAM0 + sTradeMenuData->bottomTextTileStart * 32), 24); + sTradeMenu->callbackId = CB_CANCEL_TRADE_PROMPT; + DrawBottomRowText(sActionTexts[TEXT_CANCEL_TRADE], (void *)(OBJ_VRAM0 + sTradeMenu->bottomTextTileStart * 32), 24); } } } -static void TradeMenuChooseMon(void) +static void RedrawChooseAPokemonWindow(void) { - PrintNicknamesForTradeMenu(); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_MAIN_MENU; - gSprites[sTradeMenuData->cursorSpriteId].invisible = FALSE; - DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], (void *)(OBJ_VRAM0 + sTradeMenuData->bottomTextTileStart * 32), 24); + PrintTradePartnerPartyNicknames(); + sTradeMenu->callbackId = CB_MAIN_MENU; + gSprites[sTradeMenu->cursorSpriteId].invisible = FALSE; + DrawBottomRowText(sActionTexts[TEXT_CHOOSE_MON], (void *)(OBJ_VRAM0 + sTradeMenu->bottomTextTileStart * 32), 24); } -static void TradeMenuProcessInput_SelectedMon(void) +static void CB_ProcessSelectedMonInput(void) { switch (Menu_ProcessInputNoWrap()) { case MENU_B_PRESSED: PlaySE(SE_SELECT); - TradeMenuChooseMon(); + RedrawChooseAPokemonWindow(); break; case MENU_NOTHING_CHOSEN: break; case 0: // Summary BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_SHOW_MON_SUMMARY; + sTradeMenu->callbackId = CB_SHOW_MON_SUMMARY; break; case 1: // Trade - switch (CanTradeSelectedMon(gPlayerParty, gPlayerPartyCount, sTradeMenuData->cursorPosition)) + switch (CanTradeSelectedMon(gPlayerParty, gPlayerPartyCount, sTradeMenu->cursorPosition)) { case CAN_TRADE_MON: SetReadyToTrade(); - gSprites[sTradeMenuData->cursorSpriteId].invisible = TRUE; + gSprites[sTradeMenu->cursorSpriteId].invisible = TRUE; break; case CANT_TRADE_LAST_MON: QueueAction(QUEUE_DELAY_MSG, QUEUE_ONLY_MON2); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; + sTradeMenu->callbackId = CB_HANDLE_TRADE_CANCELED; break; case CANT_TRADE_NATIONAL: case CANT_TRADE_INVALID_MON: QueueAction(QUEUE_DELAY_MSG, QUEUE_MON_CANT_BE_TRADED); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; + sTradeMenu->callbackId = CB_HANDLE_TRADE_CANCELED; break; case CANT_TRADE_EGG_YET: - case CANT_TRADE_EGG_YET2: + case CANT_TRADE_PARTNER_EGG_YET: QueueAction(QUEUE_DELAY_MSG, QUEUE_EGG_CANT_BE_TRADED); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_REDRAW_MAIN_MENU; + sTradeMenu->callbackId = CB_HANDLE_TRADE_CANCELED; break; } break; } } -static void ChooseMonAfterButtonPress(void) +static void CB_ChooseMonAfterButtonPress(void) { - if ((JOY_NEW(A_BUTTON)) || (JOY_NEW(B_BUTTON))) + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - TradeMenuChooseMon(); + RedrawChooseAPokemonWindow(); } } -static void TradeMenuShowMonSummaryScreen(void) +static void CB_ShowTradeMonSummaryScreen(void) { if (!gPaletteFade.active) { - // Player's party - if (sTradeMenuData->cursorPosition < PARTY_SIZE) - ShowPokemonSummaryScreen(SUMMARY_MODE_LOCK_MOVES, gPlayerParty, sTradeMenuData->cursorPosition, sTradeMenuData->partyCounts[TRADE_PLAYER] - 1, CB2_ReturnToTradeMenu); - // Partner's party + if (sTradeMenu->cursorPosition < PARTY_SIZE) + ShowPokemonSummaryScreen(SUMMARY_MODE_LOCK_MOVES, gPlayerParty, sTradeMenu->cursorPosition, sTradeMenu->partyCounts[TRADE_PLAYER] - 1, CB2_ReturnToTradeMenu); else - ShowPokemonSummaryScreen(SUMMARY_MODE_LOCK_MOVES, gEnemyParty, sTradeMenuData->cursorPosition - PARTY_SIZE, sTradeMenuData->partyCounts[TRADE_PARTNER] - 1, CB2_ReturnToTradeMenu); + ShowPokemonSummaryScreen(SUMMARY_MODE_LOCK_MOVES, gEnemyParty, sTradeMenu->cursorPosition - PARTY_SIZE, sTradeMenu->partyCounts[TRADE_PARTNER] - 1, CB2_ReturnToTradeMenu); FreeAllWindowBuffers(); } } @@ -1511,7 +1584,7 @@ static u8 CheckValidityOfTradeMons(u8 *aliveMons, u8 playerPartyCount, u8 player // Partner cant trade Egg or non-Hoenn mon if player doesn't have National Dex if (!IsNationalPokedexEnabled()) { - if (sTradeMenuData->isEgg[TRADE_PARTNER][partnerMonIdx] || !IsSpeciesInHoennDex(partnerSpecies)) + if (sTradeMenu->isEgg[TRADE_PARTNER][partnerMonIdx] || !IsSpeciesInHoennDex(partnerSpecies)) return PARTNER_MON_INVALID; } @@ -1527,14 +1600,12 @@ static bool32 CheckMonsBeforeTrade(void) int i; u8 aliveMons[PARTY_SIZE * 2]; - for (i = 0; i < sTradeMenuData->partyCounts[TRADE_PLAYER]; i++) - { - aliveMons[i] = sTradeMenuData->isLiveMon[TRADE_PLAYER][i]; - } + for (i = 0; i < sTradeMenu->partyCounts[TRADE_PLAYER]; i++) + aliveMons[i] = sTradeMenu->isLiveMon[TRADE_PLAYER][i]; - switch (CheckValidityOfTradeMons(aliveMons, sTradeMenuData->partyCounts[TRADE_PLAYER], - sTradeMenuData->cursorPosition, - sTradeMenuData->partnerCursorPosition)) + switch (CheckValidityOfTradeMons(aliveMons, sTradeMenu->partyCounts[TRADE_PLAYER], + sTradeMenu->cursorPosition, + sTradeMenu->partnerCursorPosition)) { case PLAYER_MON_INVALID: QueueAction(QUEUE_DELAY_MSG, QUEUE_ONLY_MON2); @@ -1552,24 +1623,24 @@ static bool32 CheckMonsBeforeTrade(void) return FALSE; } -static void ConfirmOrCancelTrade(void) +static void CB_ProcessConfirmTradeInput(void) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: // Confirm Trade + case 0: // YES, Confirm selection if (!CheckMonsBeforeTrade()) - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_STANDBY; + sTradeMenu->callbackId = CB_IDLE; else - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_PARTNER_MON_INVALID; + sTradeMenu->callbackId = CB_PARTNER_MON_INVALID; PutWindowTilemap(17); break; - case 1: // Cancel Trade + case 1: // NO, Cancel Trade case MENU_B_PRESSED: QueueAction(QUEUE_DELAY_MSG, QUEUE_STANDBY); if (IsLinkTradeTaskFinished()) SetLinkData(LINKCMD_READY_CANCEL_TRADE, 0); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_STANDBY; + sTradeMenu->callbackId = CB_IDLE; PutWindowTilemap(17); break; } @@ -1580,66 +1651,65 @@ static void RestoreNicknamesCoveredByYesNo(void) { int i; - for (i = 0; i < sTradeMenuData->partyCounts[1] - 4; i++) + for (i = 0; i < sTradeMenu->partyCounts[1] - 4; i++) { - PutWindowTilemap(i + 12); - CopyWindowToVram(i + 12, COPYWIN_MAP); + PutWindowTilemap(i + PARTY_SIZE * 2); + CopyWindowToVram(i + PARTY_SIZE * 2, COPYWIN_MAP); } } -static void CancelTradeYesNo(void) +static void CB_ProcessCancelTradeInput(void) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: // YES, Cancel - PrintTradeMessage(TRADE_MSG_WAITING_FOR_FRIEND); + PrintTradeMessage(MSG_WAITING_FOR_FRIEND); SetLinkData(LINKCMD_REQUEST_CANCEL, 0); - gSprites[sTradeMenuData->cursorSpriteId].invisible = TRUE; - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_STANDBY; + gSprites[sTradeMenu->cursorSpriteId].invisible = TRUE; + sTradeMenu->callbackId = CB_IDLE; RestoreNicknamesCoveredByYesNo(); break; case 1: // NO, Continue case MENU_B_PRESSED: PlaySE(SE_SELECT); - TradeMenuChooseMon(); + RedrawChooseAPokemonWindow(); break; } } -static void SetBothSelectedMons(void) +static void CB_SetSelectedMons(void) { if (GetMultiplayerId() == 0) { rbox_fill_rectangle(0); - SetSelectedMon(sTradeMenuData->cursorPosition); - SetSelectedMon(sTradeMenuData->partnerCursorPosition); + SetSelectedMon(sTradeMenu->cursorPosition); + SetSelectedMon(sTradeMenu->partnerCursorPosition); } - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CONFIRM_TRADE_PROMPT; + sTradeMenu->callbackId = CB_PRINT_IS_THIS_OKAY; } -static void ConfirmTradePrompt(void) +static void CB_PrintIsThisTradeOkay(void) { - if (sTradeMenuData->drawPartyState[TRADE_PLAYER] == DRAW_PARTY_FINISH - && sTradeMenuData->drawPartyState[TRADE_PARTNER] == DRAW_PARTY_FINISH) + if (sTradeMenu->drawSelectedMonState[TRADE_PLAYER] == DRAW_SELECTED_FINISH + && sTradeMenu->drawSelectedMonState[TRADE_PARTNER] == DRAW_SELECTED_FINISH) { - DrawIsThisTradeOkay(); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_DELAY_TRADE_CONFIRM; + PrintIsThisTradeOkay(); + sTradeMenu->callbackId = CB_INIT_CONFIRM_TRADE_PROMPT; } } -static void DelayTradeConfirmation(void) +static void CB_InitConfirmTradePrompt(void) { - sTradeMenuData->timer++; - - if (sTradeMenuData->timer > 120) + sTradeMenu->timer++; + if (sTradeMenu->timer > 120) { CreateYesNoMenu(&sTradeYesNoWindowTemplate, 1, 14, 0); - sTradeMenuData->timer = 0; - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CONFIRM_OR_CANCEL_TRADE; + sTradeMenu->timer = 0; + sTradeMenu->callbackId = CB_CONFIRM_TRADE_PROMPT; } } -static void RedrawTradeMenuAfterPressA(void) +static void CB_HandleTradeCanceled(void) { int i; @@ -1655,38 +1725,34 @@ static void RedrawTradeMenuAfterPressA(void) rbox_fill_rectangle(i + 14); } - RedrawTradeMenuParty(TRADE_PLAYER); - RedrawTradeMenuParty(TRADE_PARTNER); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_MAIN_MENU; - gSprites[sTradeMenuData->cursorSpriteId].invisible = FALSE; + RedrawPartyWindow(TRADE_PLAYER); + RedrawPartyWindow(TRADE_PARTNER); + sTradeMenu->callbackId = CB_MAIN_MENU; + gSprites[sTradeMenu->cursorSpriteId].invisible = FALSE; } } -static void CancelTrade_1(void) +static void CB_InitExitCanceledTrade(void) { if (!gPaletteFade.active) { if (gWirelessCommType) - { SetLinkStandbyCallback(); - } else - { SetCloseLinkCallbackAndType(12); - } - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_CANCEL_TRADE_2; + sTradeMenu->callbackId = CB_EXIT_CANCELED_TRADE; } } -static void CancelTrade_2(void) +static void CB_ExitCanceledTrade(void) { if (gWirelessCommType) { if (IsLinkTradeTaskFinished() && GetNumQueuedActions() == 0) { - Free(sMenuTextAllocBuffer); - Free(sTradeMenuData); + Free(sMenuTextTileBuffer); + Free(sTradeMenu); FreeAllWindowBuffers(); DestroyWirelessStatusIndicatorSprite(); SetMainCallback2(CB2_ReturnToFieldFromMultiplayer); @@ -1696,88 +1762,88 @@ static void CancelTrade_2(void) { if (!gReceivedRemoteLinkPlayers) { - Free(sMenuTextAllocBuffer); - Free(sTradeMenuData); + Free(sMenuTextTileBuffer); + Free(sTradeMenu); FreeAllWindowBuffers(); SetMainCallback2(CB2_ReturnToFieldFromMultiplayer); } } } -static void LinkTradeWaitForQueue(void) +static void CB_WaitToStartRfuTrade(void) { if (!Rfu_SetLinkRecovery(FALSE) && GetNumQueuedActions() == 0) { SetLinkStandbyCallback(); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_START_LINK_TRADE; + sTradeMenu->callbackId = CB_START_LINK_TRADE; } } -static void PartnersMonWasInvalid(void) +static void CB_PartnersMonWasInvalid(void) { if (JOY_NEW(A_BUTTON)) { SetLinkData(LINKCMD_READY_CANCEL_TRADE, 0); - sTradeMenuData->tradeMenuFunc = TRADEMENUFUNC_STANDBY; + sTradeMenu->callbackId = CB_IDLE; } } -static void CallTradeMenuFunc(void) +static void RunTradeMenuCallback(void) { - switch (sTradeMenuData->tradeMenuFunc) + switch (sTradeMenu->callbackId) { - case TRADEMENUFUNC_MAIN_MENU: - TradeMenuProcessInput(); + case CB_MAIN_MENU: + CB_ProcessMenuInput(); break; - case TRADEMENUFUNC_SELECTED_MON: - TradeMenuProcessInput_SelectedMon(); + case CB_SELECTED_MON: + CB_ProcessSelectedMonInput(); break; - case TRADEMENUFUNC_SHOW_MON_SUMMARY: - TradeMenuShowMonSummaryScreen(); + case CB_SHOW_MON_SUMMARY: + CB_ShowTradeMonSummaryScreen(); break; - case TRADEMENUFUNC_CONFIRM_OR_CANCEL_TRADE: - ConfirmOrCancelTrade(); + case CB_CONFIRM_TRADE_PROMPT: + CB_ProcessConfirmTradeInput(); break; - case TRADEMENUFUNC_CANCEL_TRADE_PROMPT: - CancelTradeYesNo(); + case CB_CANCEL_TRADE_PROMPT: + CB_ProcessCancelTradeInput(); break; - case TRADEMENUFUNC_BOTH_MONS_SELECTED: - SetBothSelectedMons(); + case CB_SET_SELECTED_MONS: + CB_SetSelectedMons(); break; - case TRADEMENUFUNC_CONFIRM_TRADE_PROMPT: - ConfirmTradePrompt(); + case CB_PRINT_IS_THIS_OKAY: + CB_PrintIsThisTradeOkay(); break; - case TRADEMENUFUNC_REDRAW_MAIN_MENU: - RedrawTradeMenuAfterPressA(); + case CB_HANDLE_TRADE_CANCELED: + CB_HandleTradeCanceled(); break; - case TRADEMENUFUNC_LINK_TRADE_FADE_OUT: - LinkTradeFadeOut(); + case CB_FADE_TO_START_TRADE: + CB_FadeToStartTrade(); break; - case TRADEMENUFUNC_LINK_TRADE_WAIT_FADE: - LinkTradeWaitForFade(); + case CB_WAIT_TO_START_TRADE: + CB_WaitToStartTrade(); break; - case TRADEMENUFUNC_CANCEL_TRADE_1: - CancelTrade_1(); + case CB_INIT_EXIT_CANCELED_TRADE: + CB_InitExitCanceledTrade(); break; - case TRADEMENUFUNC_CANCEL_TRADE_2: - CancelTrade_2(); + case CB_EXIT_CANCELED_TRADE: + CB_ExitCanceledTrade(); break; - case TRADEMENUFUNC_START_LINK_TRADE: - SetLinkTradeCallbacks(); + case CB_START_LINK_TRADE: + CB_StartLinkTrade(); break; - case TRADEMENUFUNC_DELAY_TRADE_CONFIRM: - DelayTradeConfirmation(); + case CB_INIT_CONFIRM_TRADE_PROMPT: + CB_InitConfirmTradePrompt(); break; - case TRADEMENUFUNC_UNUSED_15: - ChooseMonAfterButtonPress(); + case CB_UNUSED_CLOSE_MSG: + CB_ChooseMonAfterButtonPress(); break; - case TRADEMENUFUNC_LINK_TRADE_WAIT_QUEUE: - LinkTradeWaitForQueue(); + case CB_WAIT_TO_START_RFU_TRADE: + CB_WaitToStartRfuTrade(); break; - case TRADEMENUFUNC_PARTNER_MON_INVALID: - PartnersMonWasInvalid(); + case CB_PARTNER_MON_INVALID: + CB_PartnersMonWasInvalid(); break; - //case TRADEMENUFUNC_STANDBY: is nop + //case CB_IDLE: is nop } } @@ -1786,14 +1852,16 @@ static void SetSelectedMon(u8 cursorPosition) //cursorPosition 0-5 are the player's mons, 6-11 are the partner's u8 whichParty = cursorPosition / PARTY_SIZE; - if (sTradeMenuData->drawPartyState[whichParty] == 0) + if (sTradeMenu->drawSelectedMonState[whichParty] == 0) { - sTradeMenuData->drawPartyState[whichParty] = 1; - sTradeMenuData->selectedMonIdx[whichParty] = cursorPosition; + // Start the animation to display just the selected + // pokemon in the middle of the screen + sTradeMenu->drawSelectedMonState[whichParty] = 1; + sTradeMenu->selectedMonIdx[whichParty] = cursorPosition; } } -static void DrawTradeMenuParty(u8 whichParty) +static void DrawSelectedMonScreen(u8 whichParty) { s8 nameStringWidth; u8 nickname[20]; @@ -1801,105 +1869,111 @@ static void DrawTradeMenuParty(u8 whichParty) u8 i; u8 partyIdx; u8 selectedMonParty; - u8 selectedMonIdx = sTradeMenuData->selectedMonIdx[whichParty]; + u8 selectedMonIdx = sTradeMenu->selectedMonIdx[whichParty]; selectedMonParty = TRADE_PARTNER; - if (sTradeMenuData->selectedMonIdx[whichParty] < PARTY_SIZE) + if (sTradeMenu->selectedMonIdx[whichParty] < PARTY_SIZE) selectedMonParty = TRADE_PLAYER; partyIdx = selectedMonIdx % PARTY_SIZE; nameStringWidth = 0; - switch (sTradeMenuData->drawPartyState[whichParty]) + switch (sTradeMenu->drawSelectedMonState[whichParty]) { + default: + // Idle while state is 0, and once it reaches the final state (DRAW_SELECTED_FINISH) + break; case 1: - for (i = 0; i < sTradeMenuData->partyCounts[whichParty]; i++) - { - gSprites[sTradeMenuData->partySpriteIds[0][i + (selectedMonParty * PARTY_SIZE)]].invisible = TRUE; - } - - for (i = 0; i < 6; i++) - { + // Erase the rest of the party + for (i = 0; i < sTradeMenu->partyCounts[whichParty]; i++) + gSprites[sTradeMenu->partySpriteIds[selectedMonParty][i]].invisible = TRUE; + for (i = 0; i < PARTY_SIZE; i++) ClearWindowTilemap(i + (whichParty * PARTY_SIZE + 2)); - } - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].invisible = FALSE; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[0] = 20; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[2] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] - + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][1] * 8) - 12; - StoreSpriteCallbackInData6(&gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]], SpriteCB_MonIcon); - sTradeMenuData->drawPartyState[whichParty]++; - TradeMenuBouncePartySprites(&gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]]); + // Re-display the selected pokemon + gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].invisible = FALSE; + + // Move the selected pokemon to the center + gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].data[0] = 20; + gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].data[2] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] + + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; + gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].data[4] = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][1] * 8) - 12; + StoreSpriteCallbackInData6(&gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]], SpriteCB_MonIcon); + sTradeMenu->drawSelectedMonState[whichParty]++; + Trade_MoveSelectedMonToTarget(&gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]]); + CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, whichParty * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(0); if (selectedMonParty == TRADE_PLAYER) - PrintNicknamesForTradeMenu(); + PrintTradePartnerPartyNicknames(); break; case 2: - if (gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].callback == SpriteCB_MonIcon) - sTradeMenuData->drawPartyState[whichParty] = 3; + // Wait for the selected pokemon's sprite to move to the correct position + if (gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].callback == SpriteCB_MonIcon) + sTradeMenu->drawSelectedMonState[whichParty] = 3; break; case 3: + // Redisplay the bg box CopyToBgTilemapBufferRect_ChangePalette(1, sTradeMovesBoxTilemap, selectedMonParty * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].x = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] - + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].y = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][1] * 8) - 12; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].x2 = 0; - gSprites[sTradeMenuData->partySpriteIds[0][partyIdx + (selectedMonParty * PARTY_SIZE)]].y2 = 0; + + // Finalize the selected pokemon's position + gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].x = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][0] + + sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE + 1][0]) / 2 * 8 + 14; + gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].y = (sTradeMonSpriteCoords[selectedMonParty * PARTY_SIZE][1] * 8) - 12; + gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].x2 = 0; + gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]].y2 = 0; + + // Print selected pokemon's name and moves nameStringWidth = GetMonNicknameWidth(nickname, selectedMonParty, partyIdx); AddTextPrinterParameterized3((whichParty * 2) + 14, FONT_SMALL, (80 - nameStringWidth) / 2, 4, sTradeTextColors, 0, nickname); - BufferTradeMonMoves(movesString, selectedMonParty, partyIdx); + BufferMovesString(movesString, selectedMonParty, partyIdx); AddTextPrinterParameterized4((whichParty * 2) + 15, FONT_NORMAL, 0, 0, 0, 0, sTradeTextColors, 0, movesString); PutWindowTilemap((whichParty * 2) + 14); CopyWindowToVram((whichParty * 2) + 14, COPYWIN_FULL); PutWindowTilemap((whichParty * 2) + 15); CopyWindowToVram((whichParty * 2) + 15, COPYWIN_FULL); - sTradeMenuData->drawPartyState[whichParty]++; + + sTradeMenu->drawSelectedMonState[whichParty]++; break; case 4: - DrawTradeMenuPartyMonInfo(whichParty, partyIdx, - sTradeMenuPartyMonBoxDimensions[whichParty][0] + 4, - sTradeMenuPartyMonBoxDimensions[whichParty][1] + 1, - sTradeMenuPartyMonBoxDimensions[whichParty][0], - sTradeMenuPartyMonBoxDimensions[whichParty][1]); - sTradeMenuData->drawPartyState[whichParty]++; + PrintLevelAndGender(whichParty, partyIdx, + sSelectedMonLevelGenderCoords[whichParty][0] + 4, + sSelectedMonLevelGenderCoords[whichParty][1] + 1, + sSelectedMonLevelGenderCoords[whichParty][0], + sSelectedMonLevelGenderCoords[whichParty][1]); + sTradeMenu->drawSelectedMonState[whichParty]++; break; } } -static u8 GetMonNicknameWidth(u8 *str, u8 whichParty, u8 monIdx) +static u8 GetMonNicknameWidth(u8 *str, u8 whichParty, u8 partyIdx) { - u8 nickname[12]; + u8 nickname[POKEMON_NAME_LENGTH]; if (whichParty == TRADE_PLAYER) - GetMonData(&gPlayerParty[monIdx], MON_DATA_NICKNAME, nickname); + GetMonData(&gPlayerParty[partyIdx], MON_DATA_NICKNAME, nickname); else - GetMonData(&gEnemyParty[monIdx], MON_DATA_NICKNAME, nickname); + GetMonData(&gEnemyParty[partyIdx], MON_DATA_NICKNAME, nickname); StringCopy_Nickname(str, nickname); return GetStringWidth(FONT_SMALL, str, GetFontAttribute(FONT_SMALL, FONTATTR_LETTER_SPACING)); } -static void BufferTradeMonMoves(u8 *str, u8 whichParty, u8 partyIdx) +static void BufferMovesString(u8 *str, u8 whichParty, u8 partyIdx) { u16 moves[MAX_MON_MOVES]; u16 i; - if (!sTradeMenuData->isEgg[whichParty][partyIdx]) + if (!sTradeMenu->isEgg[whichParty][partyIdx]) { for (i = 0; i < MAX_MON_MOVES; i++) { if (whichParty == TRADE_PLAYER) - { moves[i] = GetMonData(&gPlayerParty[partyIdx], i + MON_DATA_MOVE1, NULL); - } else - { moves[i] = GetMonData(&gEnemyParty[partyIdx], i + MON_DATA_MOVE1, NULL); - } } StringCopy(str, sText_EmptyString); @@ -1907,9 +1981,7 @@ static void BufferTradeMonMoves(u8 *str, u8 whichParty, u8 partyIdx) for (i = 0; i < MAX_MON_MOVES; i++) { if (moves[i] != MOVE_NONE) - { StringAppend(str, gMoveNames[moves[i]]); - } StringAppend(str, sText_NewLine); } @@ -1921,7 +1993,7 @@ static void BufferTradeMonMoves(u8 *str, u8 whichParty, u8 partyIdx) } } -static void PrintMonNicknameForTradeMenu(u8 whichParty, u8 windowId, u8 *nickname) +static void PrintPartyMonNickname(u8 whichParty, u8 windowId, u8 *nickname) { u8 xPos; windowId += (whichParty * PARTY_SIZE) + 2; @@ -1931,27 +2003,27 @@ static void PrintMonNicknameForTradeMenu(u8 whichParty, u8 windowId, u8 *nicknam CopyWindowToVram(windowId, COPYWIN_FULL); } -static void PrintPartyNicknamesForTradeMenu(u8 whichParty) +static void PrintPartyNicknames(u8 whichParty) { u8 i; u8 nickname[20]; u8 str[32]; struct Pokemon *party = (whichParty == TRADE_PLAYER) ? gPlayerParty : gEnemyParty; - for (i = 0; i < sTradeMenuData->partyCounts[whichParty]; i++) + for (i = 0; i < sTradeMenu->partyCounts[whichParty]; i++) { GetMonData(&party[i], MON_DATA_NICKNAME, nickname); StringCopy_Nickname(str, nickname); - PrintMonNicknameForTradeMenu(whichParty, i, str); + PrintPartyMonNickname(whichParty, i, str); } } -static void DrawTradeMenuPartyMonInfo(u8 whichParty, u8 monIdx, u8 x, u8 y, u8 width, u8 height) +static void PrintLevelAndGender(u8 whichParty, u8 monIdx, u8 x, u8 y, u8 width, u8 height) { u8 level; u32 symbolTile; u8 gender; - u8 nickname[12]; + u8 nickname[POKEMON_NAME_LENGTH]; CopyToBgTilemapBufferRect_ChangePalette(1, gTradeMenuMonBox_Tilemap, width, height, 6, 3, 0); CopyBgTilemapBufferToVram(1); @@ -1961,20 +2033,20 @@ static void DrawTradeMenuPartyMonInfo(u8 whichParty, u8 monIdx, u8 x, u8 y, u8 w else level = GetMonData(&gEnemyParty[monIdx], MON_DATA_LEVEL, NULL); - if (!sTradeMenuData->isEgg[whichParty][monIdx]) + if (!sTradeMenu->isEgg[whichParty][monIdx]) { if (level / 10 != 0) - sTradeMenuData->tilemapBuffer[x + (y * 32)] = (level / 10) + 0x60; + sTradeMenu->tilemapBuffer[x + (y * 32)] = (level / 10) + 0x60; - sTradeMenuData->tilemapBuffer[x + (y * 32) + 1] = (level % 10) + 0x70; + sTradeMenu->tilemapBuffer[x + (y * 32) + 1] = (level % 10) + 0x70; } else { - sTradeMenuData->tilemapBuffer[x + (y * 32) - 32] = sTradeMenuData->tilemapBuffer[x + (y * 32) - 33]; - sTradeMenuData->tilemapBuffer[x + (y * 32) - 31] = sTradeMenuData->tilemapBuffer[x + (y * 32) - 36] | 0x400; + sTradeMenu->tilemapBuffer[x + (y * 32) - 32] = sTradeMenu->tilemapBuffer[x + (y * 32) - 33]; + sTradeMenu->tilemapBuffer[x + (y * 32) - 31] = sTradeMenu->tilemapBuffer[x + (y * 32) - 36] | 0x400; } - if (sTradeMenuData->isEgg[whichParty][monIdx]) + if (sTradeMenu->isEgg[whichParty][monIdx]) { symbolTile = 0x480; } @@ -2004,62 +2076,57 @@ static void DrawTradeMenuPartyMonInfo(u8 whichParty, u8 monIdx, u8 x, u8 y, u8 w break; } } - sTradeMenuData->tilemapBuffer[(y - 1) * 32 + x + 1] = symbolTile; + sTradeMenu->tilemapBuffer[(y - 1) * 32 + x + 1] = symbolTile; } -static void DrawTradeMenuPartyInfo(u8 whichParty) +static void PrintPartyLevelsAndGenders(u8 whichParty) { s32 i; - for (i = 0; i < sTradeMenuData->partyCounts[whichParty]; i++) + for (i = 0; i < sTradeMenu->partyCounts[whichParty]; i++) { - const u8 (*r5)[2]; - const u8 (*r4)[2]; - u32 r0 = 3 * whichParty; - const u8 (*r1)[2][2] = sTradeMonLevelCoords; - - r5 = r1[r0]; - r4 = sTradeMonBoxCoords[r0]; - DrawTradeMenuPartyMonInfo( + s32 j = i + PARTY_SIZE * whichParty; + PrintLevelAndGender( whichParty, i, - r5[i][0], - r5[i][1], - r4[i][0], - r4[i][1] + sTradeMonLevelCoords[j][0], + sTradeMonLevelCoords[j][1], + sTradeMonBoxCoords[j][0], + sTradeMonBoxCoords[j][1] ); } } -static void ResetTradeMenuPartyPositions(u8 whichParty) +static void ShowTradePartyMonIcons(u8 whichParty) { int i; - for (i = 0; i < sTradeMenuData->partyCounts[whichParty]; i++) + for (i = 0; i < sTradeMenu->partyCounts[whichParty]; i++) { - gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].invisible = FALSE; - gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].x = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][0] * 8 + 14; - gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].y = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][1] * 8 - 12; - gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].x2 = 0; - gSprites[sTradeMenuData->partySpriteIds[whichParty][i]].y2 = 0; + gSprites[sTradeMenu->partySpriteIds[whichParty][i]].invisible = FALSE; + gSprites[sTradeMenu->partySpriteIds[whichParty][i]].x = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][0] * 8 + 14; + gSprites[sTradeMenu->partySpriteIds[whichParty][i]].y = sTradeMonSpriteCoords[(whichParty * PARTY_SIZE) + i][1] * 8 - 12; + gSprites[sTradeMenu->partySpriteIds[whichParty][i]].x2 = 0; + gSprites[sTradeMenu->partySpriteIds[whichParty][i]].y2 = 0; } } -static void PrintNicknamesForTradeMenu(void) +static void PrintTradePartnerPartyNicknames(void) { rbox_fill_rectangle(1); - //PrintPartyNicknamesForTradeMenu(TRADE_PLAYER); ? - PrintPartyNicknamesForTradeMenu(TRADE_PARTNER); + //PrintPartyNicknames(TRADE_PLAYER); ? + PrintPartyNicknames(TRADE_PARTNER); } -static void RedrawTradeMenuParty(u8 whichParty) +// Returning to the party selection screen from the "is this trade ok?" screen +static void RedrawPartyWindow(u8 whichParty) { CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, whichParty * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); - DrawTradeMenuPartyInfo(whichParty); - PrintPartyNicknamesForTradeMenu(whichParty); - ResetTradeMenuPartyPositions(whichParty); - DrawBottomRowText(sTradeActionTexts[TRADE_TEXT_CHOOSE_MON], (void *)(OBJ_VRAM0 + (sTradeMenuData->bottomTextTileStart * 32)), 24); - sTradeMenuData->drawPartyState[whichParty] = 0; + PrintPartyLevelsAndGenders(whichParty); + PrintPartyNicknames(whichParty); + ShowTradePartyMonIcons(whichParty); + DrawBottomRowText(sActionTexts[TEXT_CHOOSE_MON], (void *)(OBJ_VRAM0 + (sTradeMenu->bottomTextTileStart * 32)), 24); + sTradeMenu->drawSelectedMonState[whichParty] = 0; } static void Task_DrawSelectionSummary(u8 taskId) @@ -2078,13 +2145,14 @@ static void QueueAction(u16 delay, u8 actionId) { int i; - for (i = 0; i < (int)ARRAY_COUNT(sTradeMenuData->queuedActions); i++) + for (i = 0; i < (int)ARRAY_COUNT(sTradeMenu->queuedActions); i++) { - if (!sTradeMenuData->queuedActions[i].queued) + // Find first available spot + if (!sTradeMenu->queuedActions[i].active) { - sTradeMenuData->queuedActions[i].queueDelay = delay; - sTradeMenuData->queuedActions[i].actionId = actionId; - sTradeMenuData->queuedActions[i].queued = TRUE; + sTradeMenu->queuedActions[i].delay = delay; + sTradeMenu->queuedActions[i].actionId = actionId; + sTradeMenu->queuedActions[i].active = TRUE; break; } } @@ -2095,9 +2163,9 @@ static u32 GetNumQueuedActions(void) u32 numActions = 0; int i; - for (i = 0; i < (int)ARRAY_COUNT(sTradeMenuData->queuedActions); i++) + for (i = 0; i < (int)ARRAY_COUNT(sTradeMenu->queuedActions); i++) { - numActions += sTradeMenuData->queuedActions[i].queued; + numActions += sTradeMenu->queuedActions[i].active; } return numActions; @@ -2107,43 +2175,43 @@ static void DoQueuedActions(void) { int i; - for (i = 0; i < (int)ARRAY_COUNT(sTradeMenuData->queuedActions); i++) + for (i = 0; i < (int)ARRAY_COUNT(sTradeMenu->queuedActions); i++) { - if (sTradeMenuData->queuedActions[i].queued) + if (sTradeMenu->queuedActions[i].active) { - if (sTradeMenuData->queuedActions[i].queueDelay) + if (sTradeMenu->queuedActions[i].delay != 0) { - sTradeMenuData->queuedActions[i].queueDelay--; + sTradeMenu->queuedActions[i].delay--; } else { - switch (sTradeMenuData->queuedActions[i].actionId) + switch (sTradeMenu->queuedActions[i].actionId) { case QUEUE_SEND_DATA: - SendLinkData(sTradeMenuData->linkData, 20); + SendLinkData(sTradeMenu->linkData, 20); break; case QUEUE_STANDBY: - PrintTradeMessage(TRADE_MSG_STANDBY); + PrintTradeMessage(MSG_STANDBY); break; case QUEUE_ONLY_MON1: - PrintTradeMessage(TRADE_MSG_ONLY_MON1); + PrintTradeMessage(MSG_ONLY_MON1); break; case QUEUE_ONLY_MON2: case QUEUE_UNUSED1: case QUEUE_UNUSED2: - PrintTradeMessage(TRADE_MSG_ONLY_MON2); + PrintTradeMessage(MSG_ONLY_MON2); break; case QUEUE_MON_CANT_BE_TRADED: - PrintTradeMessage(TRADE_MSG_MON_CANT_BE_TRADED); + PrintTradeMessage(MSG_MON_CANT_BE_TRADED); break; case QUEUE_EGG_CANT_BE_TRADED: - PrintTradeMessage(TRADE_MSG_EGG_CANT_BE_TRADED); + PrintTradeMessage(MSG_EGG_CANT_BE_TRADED); break; case QUEUE_FRIENDS_MON_CANT_BE_TRADED: - PrintTradeMessage(TRADE_MSG_FRIENDS_MON_CANT_BE_TRADED); + PrintTradeMessage(MSG_FRIENDS_MON_CANT_BE_TRADED); break; } - sTradeMenuData->queuedActions[i].queued = FALSE; + sTradeMenu->queuedActions[i].active = FALSE; } } } @@ -2152,24 +2220,24 @@ static void DoQueuedActions(void) static void PrintTradeMessage(u8 messageId) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized(0, FONT_NORMAL, sTradeMessages[messageId], 0, 1, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(0, FONT_NORMAL, sMessages[messageId], 0, 1, TEXT_SKIP_DRAW, NULL); DrawTextBorderOuter(0, 20, 12); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); } -static bool8 LoadTradeMenuSpriteSheetsAndPalettes(void) +static bool8 LoadUISpriteGfx(void) { struct SpriteSheet sheet; - if (sTradeMenuData->timer < GFXTAG_MENU_TEXT_COUNT) + if (sTradeMenu->timer < NUM_MENU_TEXT_SPRITES) { - sheet.data = sMenuTextTileBuffers[sTradeMenuData->timer]; + sheet.data = sMenuTextTileBuffers[sTradeMenu->timer]; sheet.size = 0x100; - sheet.tag = GFXTAG_MENU_TEXT + sTradeMenuData->timer; + sheet.tag = GFXTAG_MENU_TEXT + sTradeMenu->timer; } - switch (sTradeMenuData->timer) + switch (sTradeMenu->timer) { case GFXTAG_PLAYER_NAME_L: case GFXTAG_PLAYER_NAME_M: @@ -2180,11 +2248,11 @@ static bool8 LoadTradeMenuSpriteSheetsAndPalettes(void) case GFXTAG_CANCEL_L: case GFXTAG_CANCEL_R: LoadSpriteSheet(&sheet); - sTradeMenuData->timer++; + sTradeMenu->timer++; break; case GFXTAG_CHOOSE_PKMN_L: - sTradeMenuData->bottomTextTileStart = LoadSpriteSheet(&sheet); - sTradeMenuData->timer++; + sTradeMenu->bottomTextTileStart = LoadSpriteSheet(&sheet); + sTradeMenu->timer++; break; case GFXTAG_CHOOSE_PKMN_M: case GFXTAG_CHOOSE_PKMN_R: @@ -2192,22 +2260,22 @@ static bool8 LoadTradeMenuSpriteSheetsAndPalettes(void) case GFXTAG_CHOOSE_PKMN_EMPTY_2: case GFXTAG_CHOOSE_PKMN_EMPTY_3: LoadSpriteSheet(&sheet); - sTradeMenuData->timer++; + sTradeMenu->timer++; break; - case GFXTAG_MENU_TEXT_COUNT: - LoadSpritePalette(&sSpritePalette_TradeScreenText); - sTradeMenuData->timer++; + case NUM_MENU_TEXT_SPRITES: + LoadSpritePalette(&sSpritePalette_MenuText); + sTradeMenu->timer++; break; - case GFXTAG_MENU_TEXT_COUNT + 1: + case NUM_MENU_TEXT_SPRITES + 1: LoadSpritePalette(&sCursor_SpritePalette); - sTradeMenuData->timer++; + sTradeMenu->timer++; break; - case GFXTAG_MENU_TEXT_COUNT + 2: + case NUM_MENU_TEXT_SPRITES + 2: LoadSpriteSheet(&sCursor_SpriteSheet); - sTradeMenuData->timer++; + sTradeMenu->timer++; break; - case GFXTAG_MENU_TEXT_COUNT + 3: - sTradeMenuData->timer = 0; + case NUM_MENU_TEXT_SPRITES + 3: + sTradeMenu->timer = 0; return TRUE; } @@ -2219,75 +2287,75 @@ static void DrawBottomRowText(const u8 *str, u8 *dest, u8 unused) DrawTextWindowAndBufferTiles(str, dest, 0, 0, 6); } -static void SetTradePartyLiveStatuses(u8 whichParty) +static void ComputePartyTradeableFlags(u8 whichParty) { int i; switch (whichParty) { case TRADE_PLAYER: - for (i = 0; i < sTradeMenuData->partyCounts[whichParty]; i++) + for (i = 0; i < sTradeMenu->partyCounts[whichParty]; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) == TRUE) { - sTradeMenuData->isLiveMon[whichParty][i] = FALSE; - sTradeMenuData->isEgg[whichParty][i] = TRUE; + sTradeMenu->isLiveMon[whichParty][i] = FALSE; + sTradeMenu->isEgg[whichParty][i] = TRUE; } else if (GetMonData(&gPlayerParty[i], MON_DATA_HP) == 0) { - sTradeMenuData->isLiveMon[whichParty][i] = FALSE; - sTradeMenuData->isEgg[whichParty][i] = FALSE; + sTradeMenu->isLiveMon[whichParty][i] = FALSE; + sTradeMenu->isEgg[whichParty][i] = FALSE; } else { - sTradeMenuData->isLiveMon[whichParty][i] = TRUE; - sTradeMenuData->isEgg[whichParty][i] = FALSE; + sTradeMenu->isLiveMon[whichParty][i] = TRUE; + sTradeMenu->isEgg[whichParty][i] = FALSE; } } break; case TRADE_PARTNER: - for (i = 0; i < sTradeMenuData->partyCounts[whichParty]; i++) + for (i = 0; i < sTradeMenu->partyCounts[whichParty]; i++) { if (GetMonData(&gEnemyParty[i], MON_DATA_IS_EGG) == TRUE) { - sTradeMenuData->isLiveMon[whichParty][i] = FALSE; - sTradeMenuData->isEgg[whichParty][i] = TRUE; + sTradeMenu->isLiveMon[whichParty][i] = FALSE; + sTradeMenu->isEgg[whichParty][i] = TRUE; } else if (GetMonData(&gEnemyParty[i], MON_DATA_HP) == 0) { - sTradeMenuData->isLiveMon[whichParty][i] = FALSE; - sTradeMenuData->isEgg[whichParty][i] = FALSE; + sTradeMenu->isLiveMon[whichParty][i] = FALSE; + sTradeMenu->isEgg[whichParty][i] = FALSE; } else { - sTradeMenuData->isLiveMon[whichParty][i] = TRUE; - sTradeMenuData->isEgg[whichParty][i] = FALSE; + sTradeMenu->isLiveMon[whichParty][i] = TRUE; + sTradeMenu->isEgg[whichParty][i] = FALSE; } } break; } } -static void GetTradePartyHPBarLevels(u8 who) +static void ComputePartyHPBarLevels(u8 whichParty) { u16 i, curHp, maxHp; - switch (who) + switch (whichParty) { case TRADE_PLAYER: - for (i = 0; i < sTradeMenuData->partyCounts[TRADE_PLAYER]; i++) + for (i = 0; i < sTradeMenu->partyCounts[TRADE_PLAYER]; i++) { curHp = GetMonData(&gPlayerParty[i], MON_DATA_HP); maxHp = GetMonData(&gPlayerParty[i], MON_DATA_MAX_HP); - sTradeMenuData->hpBarLevels[TRADE_PLAYER][i] = GetHPBarLevel(curHp, maxHp); + sTradeMenu->hpBarLevels[TRADE_PLAYER][i] = GetHPBarLevel(curHp, maxHp); } break; case TRADE_PARTNER: - for (i = 0; i < sTradeMenuData->partyCounts[TRADE_PARTNER]; i++) + for (i = 0; i < sTradeMenu->partyCounts[TRADE_PARTNER]; i++) { curHp = GetMonData(&gEnemyParty[i], MON_DATA_HP); maxHp = GetMonData(&gEnemyParty[i], MON_DATA_MAX_HP); - sTradeMenuData->hpBarLevels[TRADE_PARTNER][i] = GetHPBarLevel(curHp, maxHp); + sTradeMenu->hpBarLevels[TRADE_PARTNER][i] = GetHPBarLevel(curHp, maxHp); } break; } @@ -2299,10 +2367,8 @@ static void SetTradePartyHPBarSprites(void) for (i = 0; i < 2; i++) { - for (j = 0; j < sTradeMenuData->partyCounts[i]; j++) - { - SetPartyHPBarSprite(&gSprites[sTradeMenuData->partySpriteIds[i][j]], 4 - sTradeMenuData->hpBarLevels[i][j]); - } + for (j = 0; j < sTradeMenu->partyCounts[i]; j++) + SetPartyHPBarSprite(&gSprites[sTradeMenu->partySpriteIds[i][j]], 4 - sTradeMenu->hpBarLevels[i][j]); } } @@ -2310,12 +2376,12 @@ static void SaveTradeGiftRibbons(void) { int i; - for (i = 0; i < (int)ARRAY_COUNT(sTradeMenuData->giftRibbons); i++) + for (i = 0; i < (int)ARRAY_COUNT(sTradeMenu->giftRibbons); i++) { - if (gSaveBlock1Ptr->giftRibbons[i] == 0 && sTradeMenuData->giftRibbons[i] != 0) + if (gSaveBlock1Ptr->giftRibbons[i] == 0 && sTradeMenu->giftRibbons[i] != 0) { - if (sTradeMenuData->giftRibbons[i] < 64) - gSaveBlock1Ptr->giftRibbons[i] = sTradeMenuData->giftRibbons[i]; + if (sTradeMenu->giftRibbons[i] < 64) + gSaveBlock1Ptr->giftRibbons[i] = sTradeMenu->giftRibbons[i]; } } } @@ -2323,7 +2389,7 @@ static void SaveTradeGiftRibbons(void) static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int monIdx) { int i, numMonsLeft; - struct LinkPlayer *player; + struct LinkPlayer *partner; u32 species[PARTY_SIZE]; u32 species2[PARTY_SIZE]; @@ -2343,15 +2409,15 @@ static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int return CANT_TRADE_NATIONAL; } - player = &gLinkPlayers[GetMultiplayerId() ^ 1]; - if ((player->version & 0xFF) != VERSION_RUBY && - (player->version & 0xFF) != VERSION_SAPPHIRE) + partner = &gLinkPlayers[GetMultiplayerId() ^ 1]; + if ((partner->version & 0xFF) != VERSION_RUBY && + (partner->version & 0xFF) != VERSION_SAPPHIRE) { // Does partner not have National Dex - if (!(player->progressFlagsCopy & 0xF)) + if (!(partner->progressFlagsCopy & 0xF)) { if (species2[monIdx] == SPECIES_EGG) - return CANT_TRADE_EGG_YET2; + return CANT_TRADE_PARTNER_EGG_YET; if (!IsSpeciesInHoennDex(species2[monIdx])) return CANT_TRADE_INVALID_MON; @@ -2386,30 +2452,30 @@ static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int s32 GetGameProgressForLinkTrade(void) { - // isGameFrLg could have been a bool but they use 2 and > 0 instead - // possible other checks (for other game versions?) were planned/removed - s32 isGameFrLg; + // The usage of this value is a little unusual given it's treated as a bool, + // but it's the result of its usage in FRLG, where 0 is FRLG, 1 is RS, and 2 is Emerald. + s32 versionId; // 0: RSE, 2: FRLG u16 version; if (gReceivedRemoteLinkPlayers) { - isGameFrLg = 0; + versionId = 0; version = (gLinkPlayers[GetMultiplayerId() ^ 1].version & 0xFF); if (version == VERSION_RUBY || version == VERSION_SAPPHIRE || version == VERSION_EMERALD) - isGameFrLg = 0; + versionId = 0; else if (version == VERSION_FIRE_RED || version == VERSION_LEAF_GREEN) - isGameFrLg = 2; + versionId = 2; - // If trading with FRLG, both players must be champion - if (isGameFrLg > 0) + // If trading with FRLG, both players must have progessed the story enough + if (versionId > 0) { // Is player champion if (gLinkPlayers[GetMultiplayerId()].progressFlagsCopy & 0xF0) { - if (isGameFrLg == 2) //unnecessary check, isGameFrLg always 2 here + if (versionId == 2) // Check is only relevant in FRLG, this will always be true { - // Is partner champion + // Has FRLG partner finished the Sevii Islands if (gLinkPlayers[GetMultiplayerId() ^ 1].progressFlagsCopy & 0xF0) return TRADE_BOTH_PLAYERS_READY; else @@ -2438,17 +2504,18 @@ static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isEventLegal) int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct RfuGameCompatibilityData partner, u16 playerSpecies2, u16 partnerSpecies, u8 requestedType, u16 playerSpecies, bool8 isEventLegal) { bool8 playerHasNationalDex = player.hasNationalDex; - bool8 playerIsChampion = player.isChampion; + bool8 playerCanLinkNationally = player.canLinkNationally; bool8 partnerHasNationalDex = partner.hasNationalDex; - bool8 partnerIsChampion = partner.isChampion; + bool8 partnerCanLinkNationally = partner.canLinkNationally; u8 partnerVersion = partner.version; - // If partner is not using Emerald, both players must be champion + // If partner is not using Emerald, both players must have progressed the story + // to a certain point (becoming champion in RSE, finishing the Sevii islands in FRLG) if (partnerVersion != VERSION_EMERALD) { - if (!playerIsChampion) + if (!playerCanLinkNationally) return UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_1; - else if (!partnerIsChampion) + else if (!partnerCanLinkNationally) return UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_2; } @@ -4377,14 +4444,14 @@ static void UpdateTradeFinishFlags(void) SetMainCallback2(CB2_TryLinkTradeEvolution); if (gBlockRecvBuffer[0][0] == LINKCMD_READY_FINISH_TRADE) - sTradeData->playerLinkFlagFinishTrade = READY_FINISH_TRADE; + sTradeData->playerLinkFlagFinishTrade = STATUS_READY; ResetBlockReceivedFlag(0); } if (blockReceivedStatus & 0x02) { if (gBlockRecvBuffer[1][0] == LINKCMD_READY_FINISH_TRADE) - sTradeData->partnerLinkFlagFinishTrade = READY_FINISH_TRADE; + sTradeData->partnerLinkFlagFinishTrade = STATUS_READY; ResetBlockReceivedFlag(1); } @@ -4596,13 +4663,13 @@ static void CB2_TryFinishTrade(void) { UpdateTradeFinishFlags(); if (mpId == 0 - && sTradeData->playerLinkFlagFinishTrade == READY_FINISH_TRADE - && sTradeData->partnerLinkFlagFinishTrade == READY_FINISH_TRADE) + && sTradeData->playerLinkFlagFinishTrade == STATUS_READY + && sTradeData->partnerLinkFlagFinishTrade == STATUS_READY) { sTradeData->linkData[0] = LINKCMD_CONFIRM_FINISH_TRADE; SendBlock(BitmaskAllOtherLinkPlayers(), sTradeData->linkData, sizeof(sTradeData->linkData)); - sTradeData->playerLinkFlagFinishTrade = FINISH_TRADE; - sTradeData->partnerLinkFlagFinishTrade = FINISH_TRADE; + sTradeData->playerLinkFlagFinishTrade = STATUS_CANCEL; + sTradeData->partnerLinkFlagFinishTrade = STATUS_CANCEL; } } RunTasks(); diff --git a/src/trainer_see.c b/src/trainer_see.c index b333e0324..44bc774f5 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -689,8 +689,8 @@ void TryPrepareSecondApproachingTrainer(void) #define sLocalId data[0] #define sMapNum data[1] #define sMapGroup data[2] -#define sData3 data[3] -#define sData4 data[4] +#define sYVelocity data[3] +#define sYOffset data[4] #define sFldEffId data[7] u8 FldEff_ExclamationMarkIcon(void) @@ -736,7 +736,7 @@ static void SetIconSpriteData(struct Sprite *sprite, u16 fldEffId, u8 spriteAnim sprite->sLocalId = gFieldEffectArguments[0]; sprite->sMapNum = gFieldEffectArguments[1]; sprite->sMapGroup = gFieldEffectArguments[2]; - sprite->sData3 = -5; + sprite->sYVelocity = -5; sprite->sFldEffId = fldEffId; StartSpriteAnim(sprite, spriteAnimNum); @@ -754,23 +754,23 @@ static void SpriteCB_TrainerIcons(struct Sprite *sprite) else { struct Sprite *objEventSprite = &gSprites[gObjectEvents[objEventId].spriteId]; - sprite->sData4 += sprite->sData3; + sprite->sYOffset += sprite->sYVelocity; sprite->x = objEventSprite->x; sprite->y = objEventSprite->y - 16; sprite->x2 = objEventSprite->x2; - sprite->y2 = objEventSprite->y2 + sprite->sData4; - if (sprite->sData4) - sprite->sData3++; + sprite->y2 = objEventSprite->y2 + sprite->sYOffset; + if (sprite->sYOffset) + sprite->sYVelocity++; else - sprite->sData3 = 0; + sprite->sYVelocity = 0; } } #undef sLocalId #undef sMapNum #undef sMapGroup -#undef sData3 -#undef sData4 +#undef sYVelocity +#undef sYOffset #undef sFldEffId u8 GetCurrentApproachingTrainerObjectEventId(void) diff --git a/src/union_room.c b/src/union_room.c index aad8dbaa9..e1c80468d 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1271,7 +1271,7 @@ static u32 IsTryingToTradeAcrossVersionTooSoon(struct WirelessLink_Group *data, { if (!(gSaveBlock2Ptr->specialSaveWarpFlags & CHAMPION_SAVEWARP)) return UR_TRADE_PLAYER_NOT_READY; - else if (partner->rfu.data.compatibility.isChampion) + else if (partner->rfu.data.compatibility.canLinkNationally) return UR_TRADE_READY; } else From b873d69679933181d29c69122c1c179141fef44a Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 15 Dec 2022 16:00:53 -0500 Subject: [PATCH 022/125] Sync trade anim --- include/constants/trade.h | 2 - src/data/trade.h | 30 +- src/trade.c | 1760 ++++++++++++++++++------------------- 3 files changed, 884 insertions(+), 908 deletions(-) diff --git a/include/constants/trade.h b/include/constants/trade.h index 0f205d6d2..df1f8d279 100644 --- a/include/constants/trade.h +++ b/include/constants/trade.h @@ -4,8 +4,6 @@ #define TRADE_PLAYER 0 #define TRADE_PARTNER 1 -#define LINK_TRADE_TIMEOUT 300 - // In-game Trade IDs #define INGAME_TRADE_SEEDOT 0 #define INGAME_TRADE_PLUSLE 1 diff --git a/src/data/trade.h b/src/data/trade.h index 433e36247..ef7e9231d 100644 --- a/src/data/trade.h +++ b/src/data/trade.h @@ -287,15 +287,15 @@ static const u8 sCursorMoveDestinations[(PARTY_SIZE * 2) + 1][4][PARTY_SIZE] = static const u8 sTradeMonSpriteCoords[(PARTY_SIZE * 2) + 1][2] = { // Player's party - {COL0_X, ROW0_Y }, - {COL1_X, ROW0_Y }, + {COL0_X, ROW0_Y}, + {COL1_X, ROW0_Y}, {COL0_X, ROW1_Y}, {COL1_X, ROW1_Y}, {COL0_X, ROW2_Y}, {COL1_X, ROW2_Y}, // Partners's party - {COL2_X, ROW0_Y }, - {COL3_X, ROW0_Y }, + {COL2_X, ROW0_Y}, + {COL3_X, ROW0_Y}, {COL2_X, ROW1_Y}, {COL3_X, ROW1_Y}, {COL2_X, ROW2_Y}, @@ -624,8 +624,8 @@ static const u8 sSelectedMonLevelGenderCoords[3][2] = static const u16 sPokeball_Pal[] = INCBIN_U16("graphics/trade/pokeball.gbapal"); static const u8 sPokeball_Gfx[] = INCBIN_U8("graphics/trade/pokeball.4bpp"); static const u8 sPokeballSymbol_Gfx[] = INCBIN_U8("graphics/trade/pokeball_symbol.8bpp"); // unused -static const u16 sCrossingHighlightCable_Tilemap[] = INCBIN_U16("graphics/trade/crossing_highlight_cable.bin"); -static const u16 sTradeTilemap_PokeBallSymbol[] = INCBIN_U16("graphics/trade/pokeball_symbol_map.bin"); // unused? +static const u16 sCableCloseup_Map[] = INCBIN_U16("graphics/trade/crossing_highlight_cable.bin"); +static const u16 sPokeballSymbol_Map[] = INCBIN_U16("graphics/trade/pokeball_symbol_map.bin"); // unused? static const u16 sUnusedPal1[] = INCBIN_U16("graphics/trade/unused1.gbapal"); static const u16 sGba_Pal[] = INCBIN_U16("graphics/trade/gba.gbapal"); static const u16 sUnusedPal2[] = INCBIN_U16("graphics/trade/unused2.gbapal"); @@ -638,11 +638,11 @@ static const u8 sGbaScreen_Gfx[] = INCBIN_U8("graphics/trade/gba_screen.4bpp"); const u16 gTradePlatform_Tilemap[] = INCBIN_U16("graphics/trade/platform.bin"); static const u8 sGbaAffine_Gfx[] = INCBIN_U8("graphics/trade/gba_affine.8bpp"); // Only the gfx for when the GBA is zooming in/out static const u8 sEmptyGfx[64] = {}; -static const u8 sGbaCable_AffineTilemap[] = INCBIN_U8("graphics/trade/gba_affine_map_cable.bin"); -static const u8 sGbaWireless_AffineTilemap[] = INCBIN_U8("graphics/trade/gba_affine_map_wireless.bin"); -static const u16 sGbaWireless_Tilemap[] = INCBIN_U16("graphics/trade/gba_map_wireless.bin"); -static const u16 sGbaCable_Tilemap[] = INCBIN_U16("graphics/trade/gba_map_cable.bin"); -static const u32 sCrossingHighlightWireless_Tilemap[] = INCBIN_U32("graphics/trade/crossing_highlight_wireless.bin.lz"); +static const u8 sGbaAffineMapCable[] = INCBIN_U8("graphics/trade/gba_affine_map_cable.bin"); +static const u8 sGbaAffineMapWireless[] = INCBIN_U8("graphics/trade/gba_affine_map_wireless.bin"); +static const u16 sGbaMapWireless[] = INCBIN_U16("graphics/trade/gba_map_wireless.bin"); +static const u16 sGbaMapCable[] = INCBIN_U16("graphics/trade/gba_map_cable.bin"); +static const u32 sWirelessCloseup_Map[] = INCBIN_U32("graphics/trade/crossing_highlight_wireless.bin.lz"); static const u16 sWirelessSignalSend_Pal[] = INCBIN_U16("graphics/trade/wireless_signal_send.gbapal"); static const u16 sWirelessSignalRecv_Pal[] = INCBIN_U16("graphics/trade/wireless_signal_receive.gbapal"); static const u16 sWirelessSignalNone_Pal[] = INCBIN_U16("graphics/trade/wireless_signal_none.gbapal"); @@ -730,7 +730,7 @@ static const union AffineAnimCmd *const sAffineAnims_Pokeball[] = static const struct SpriteSheet sPokeBallSpriteSheet = { .data = sPokeball_Gfx, - .size = 0x600, + .size = sizeof(sPokeball_Gfx), .tag = GFXTAG_POKEBALL }; @@ -786,7 +786,7 @@ static const union AffineAnimCmd *const sAffineAnims_LinkMonGlow[] = static const struct SpriteSheet sSpriteSheet_LinkMonGlow = { .data = sLinkMonGlow_Gfx, - .size = 0x200, + .size = sizeof(sLinkMonGlow_Gfx), .tag = GFXTAG_LINK_MON_GLOW }; @@ -943,7 +943,7 @@ static const union AnimCmd *const sAnims_GbaScreen_Short[] = static const struct SpriteSheet sSpriteSheet_GbaScreen = { .data = sGbaScreen_Gfx, - .size = 0x1000, + .size = sizeof(sGbaScreen_Gfx), .tag = GFXTAG_GBA_SCREEN }; @@ -1166,7 +1166,7 @@ static const s8 sTradeBallVerticalVelocityTable[] = 0, 0, 0, 1, 0, 1, 1, 2, 3 }; -static const u8 sWirelessSignalTiming[][2] = +static const u8 sWirelessSignalAnimParams[][2] = { { 0, 1}, { 1, 1}, diff --git a/src/trade.c b/src/trade.c index 1032d0d5d..b95cdd235 100644 --- a/src/trade.c +++ b/src/trade.c @@ -148,19 +148,19 @@ enum { #define DRAW_SELECTED_FINISH 5 struct InGameTrade { - /*0x00*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; - /*0x0C*/ u16 species; - /*0x0E*/ u8 ivs[NUM_STATS]; - /*0x14*/ u8 abilityNum; - /*0x18*/ u32 otId; - /*0x1C*/ u8 conditions[CONTEST_CATEGORIES_COUNT]; - /*0x24*/ u32 personality; - /*0x28*/ u16 heldItem; - /*0x2A*/ u8 mailNum; - /*0x2B*/ u8 otName[11]; - /*0x36*/ u8 otGender; - /*0x37*/ u8 sheen; - /*0x38*/ u16 requestedSpecies; + u8 nickname[POKEMON_NAME_LENGTH + 1]; + u16 species; + u8 ivs[NUM_STATS]; + u8 abilityNum; + u32 otId; + u8 conditions[CONTEST_CATEGORIES_COUNT]; + u32 personality; + u16 heldItem; + u8 mailNum; + u8 otName[11]; + u8 otGender; + u8 sheen; + u16 requestedSpecies; }; static EWRAM_DATA u8 *sMenuTextTileBuffer = NULL; @@ -212,50 +212,50 @@ static EWRAM_DATA struct { } *sTradeMenu = NULL; static EWRAM_DATA struct { - /*0x00*/ struct Pokemon tempMon; // Used as a temp variable when swapping Pokémon - /*0x64*/ u32 timer; - /*0x68*/ u32 monPersonalities[2]; - /*0x70*/ u8 filler_70[2]; - /*0x72*/ u8 playerLinkFlagFinishTrade; - /*0x73*/ u8 partnerLinkFlagFinishTrade; - /*0x74*/ u16 linkData[10]; - /*0x88*/ u8 linkTimeoutZero1; - /*0x89*/ u8 linkTimeoutZero2; - /*0x8A*/ u16 linkTimeoutCounter; - /*0x8C*/ u16 neverRead_8C; - /*0x8E*/ u8 monSpriteIds[2]; - /*0x90*/ u8 connectionSpriteId1; // Multi-purpose sprite ids used during the transfer sequence - /*0x91*/ u8 connectionSpriteId2; - /*0x92*/ u8 cableEndSpriteId; - /*0x93*/ u8 sendTradeFinishState; - /*0x94*/ u16 state; - /*0x96*/ u8 filler_96[0xD2 - 0x96]; - /*0xD2*/ u8 releasePokeballSpriteId; - /*0xD3*/ u8 bouncingPokeballSpriteId; - /*0xD4*/ u16 texX; - /*0xD6*/ u16 texY; - /*0xD8*/ u16 neverRead_D8; - /*0xDA*/ u16 neverRead_DA; - /*0xDC*/ u16 scrX; - /*0xDE*/ u16 scrY; - /*0xE0*/ s16 bg1vofs; - /*0xE2*/ s16 bg1hofs; - /*0xE4*/ s16 bg2vofs; - /*0xE6*/ s16 bg2hofs; - /*0xE8*/ u16 sXY; - /*0xEA*/ u16 gbaScale; - /*0xEC*/ u16 alpha; - /*0xEE*/ bool8 isLinkTrade; - /*0xF0*/ u16 monSpecies[2]; - /*0xF4*/ u16 cachedMapMusic; - /*0xF6*/ u8 textColors[3]; - /*0xF9*/ u8 filler_F9; - /*0xFA*/ bool8 isCableTrade; - /*0xFB*/ u8 wirelessWinLeft; - /*0xFC*/ u8 wirelessWinTop; - /*0xFD*/ u8 wirelessWinRight; - /*0xFE*/ u8 wirelessWinBottom; -} *sTradeData = {NULL}; + struct Pokemon tempMon; // Used as a temp variable when swapping Pokémon + u32 timer; + u32 monPersonalities[2]; + u8 filler_70[2]; + u8 playerFinishStatus; + u8 partnerFinishStatus; + u16 linkData[10]; + u8 linkTimeoutZero1; + u8 linkTimeoutZero2; + u16 linkTimeoutTimer; + u16 neverRead_8C; + u8 monSpriteIds[2]; + u8 connectionSpriteId1; // Multi-purpose sprite ids used during the transfer sequence + u8 connectionSpriteId2; + u8 cableEndSpriteId; + u8 scheduleLinkTransfer; + u16 state; + u8 filler_96[0x3C]; + u8 releasePokeballSpriteId; + u8 bouncingPokeballSpriteId; + u16 texX; + u16 texY; + u16 neverRead_D8; + u16 neverRead_DA; + u16 scrX; + u16 scrY; + s16 bg1vofs; + s16 bg1hofs; + s16 bg2vofs; + s16 bg2hofs; + u16 sXY; + u16 gbaScale; + u16 alpha; + bool8 isLinkTrade; + u16 monSpecies[2]; + u16 cachedMapMusic; + u8 textColors[3]; + u8 filler_F9; + bool8 isCableTrade; + u8 wirelessWinLeft; + u8 wirelessWinTop; + u8 wirelessWinRight; + u8 wirelessWinBottom; +} *sTradeAnim = NULL; static bool32 IsWirelessTrade(void); static void CB2_CreateTradeMenu(void); @@ -293,29 +293,29 @@ static void SpriteCB_LinkMonShadow(struct Sprite *); static void SpriteCB_CableEndSending(struct Sprite *); static void SpriteCB_CableEndReceiving(struct Sprite *); static void SpriteCB_GbaScreen(struct Sprite *); -static void InitTradeBgInternal(void); -static void CB2_UpdateInGameTrade(void); +static void TradeAnimInit_LoadGfx(void); +static void CB2_InGameTrade(void); static void SetTradeSequenceBgGpuRegs(u8); static void LoadTradeSequenceSpriteSheetsAndPalettes(void); static void BufferTradeSceneStrings(void); -static bool8 AnimateTradeSequence(void); -static bool8 AnimateTradeSequenceCable(void); -static bool8 AnimateTradeSequenceWireless(void); +static bool8 DoTradeAnim(void); +static bool8 DoTradeAnim_Cable(void); +static bool8 DoTradeAnim_Wireless(void); static void SpriteCB_BouncingPokeball(struct Sprite *); static void SpriteCB_BouncingPokeballDepart(struct Sprite *); static void SpriteCB_BouncingPokeballDepartEnd(struct Sprite *); static void SpriteCB_BouncingPokeballArrive(struct Sprite *); static void BufferInGameTradeMonName(void); -static void SetInGameTradeMail(struct Mail *, const struct InGameTrade *); +static void GetInGameTradeMail(struct Mail *, const struct InGameTrade *); static void CB2_UpdateLinkTrade(void); -static void CB2_TryFinishTrade(void); +static void CB2_WaitTradeComplete(void); static void CB2_SaveAndEndTrade(void); -static void CB2_FreeTradeData(void); +static void CB2_FreeTradeAnim(void); static void Task_InGameTrade(u8); static void CheckPartnersMonForRibbons(void); static void Task_AnimateWirelessSignal(u8); -static void Task_NarrowWindowForCrossing_Wireless(u8); -static void Task_NarrowWindowForCrossing_Cable(u8); +static void Task_OpenCenterWhiteColumn(u8); +static void Task_CloseCenterWhiteColumn(u8); static void CB2_SaveAndEndWirelessTrade(void); #include "data/trade.h" @@ -1028,7 +1028,7 @@ static void SetActiveMenuOptions(void) } else { - // Absent partner pokemno + // Absent partner pokemon sTradeMenu->optionsActive[i + PARTY_SIZE] = FALSE; } } @@ -2665,6 +2665,7 @@ static void SpriteCB_LinkMonGlowWireless(struct Sprite *sprite) } } +// Palette flash for trade glow core static void SpriteCB_LinkMonShadow(struct Sprite *sprite) { if (!sprite->data[1]) @@ -2709,7 +2710,7 @@ static void SetTradeBGAffine(void) { struct BgAffineDstData affine; - DoBgAffineSet(&affine, sTradeData->texX * 0x100, sTradeData->texY * 0x100, sTradeData->scrX, sTradeData->scrY, sTradeData->sXY, sTradeData->sXY, sTradeData->alpha); + DoBgAffineSet(&affine, sTradeAnim->texX * 0x100, sTradeAnim->texY * 0x100, sTradeAnim->scrX, sTradeAnim->scrY, sTradeAnim->sXY, sTradeAnim->sXY, sTradeAnim->alpha); SetGpuReg(REG_OFFSET_BG2PA, affine.pa); SetGpuReg(REG_OFFSET_BG2PB, affine.pb); SetGpuReg(REG_OFFSET_BG2PC, affine.pc); @@ -2724,14 +2725,14 @@ static void SetTradeGpuRegs(void) { u16 dispcnt; - SetGpuReg(REG_OFFSET_BG1VOFS, sTradeData->bg1vofs); - SetGpuReg(REG_OFFSET_BG1HOFS, sTradeData->bg1hofs); + SetGpuReg(REG_OFFSET_BG1VOFS, sTradeAnim->bg1vofs); + SetGpuReg(REG_OFFSET_BG1HOFS, sTradeAnim->bg1hofs); dispcnt = GetGpuReg(REG_OFFSET_DISPCNT); if ((dispcnt & 7) == DISPCNT_MODE_0) { - SetGpuReg(REG_OFFSET_BG2VOFS, sTradeData->bg2vofs); - SetGpuReg(REG_OFFSET_BG2HOFS, sTradeData->bg2hofs); + SetGpuReg(REG_OFFSET_BG2VOFS, sTradeAnim->bg2vofs); + SetGpuReg(REG_OFFSET_BG2HOFS, sTradeAnim->bg2hofs); } else { @@ -2739,7 +2740,7 @@ static void SetTradeGpuRegs(void) } } -static void VBlankCB_Trade(void) +static void VBlankCB_TradeAnim(void) { SetTradeGpuRegs(); LoadOam(); @@ -2747,30 +2748,30 @@ static void VBlankCB_Trade(void) TransferPlttBuffer(); } -static void ClearLinkTimeoutCounter(void) +static void ClearLinkTimeoutTimer(void) { - sTradeData->linkTimeoutCounter = 0; - sTradeData->linkTimeoutZero1 = 0; - sTradeData->linkTimeoutZero2 = 0; + sTradeAnim->linkTimeoutTimer = 0; + sTradeAnim->linkTimeoutZero1 = 0; + sTradeAnim->linkTimeoutZero2 = 0; } static void CheckForLinkTimeout(void) { - if (sTradeData->linkTimeoutZero1 == sTradeData->linkTimeoutZero2) - sTradeData->linkTimeoutCounter++; + if (sTradeAnim->linkTimeoutZero1 == sTradeAnim->linkTimeoutZero2) + sTradeAnim->linkTimeoutTimer++; else - sTradeData->linkTimeoutCounter = 0; + sTradeAnim->linkTimeoutTimer = 0; - if (sTradeData->linkTimeoutCounter > LINK_TRADE_TIMEOUT) + if (sTradeAnim->linkTimeoutTimer > 300) { CloseLink(); SetMainCallback2(CB2_LinkError); - sTradeData->linkTimeoutCounter = 0; - sTradeData->linkTimeoutZero2 = 0; - sTradeData->linkTimeoutZero1 = 0; + sTradeAnim->linkTimeoutTimer = 0; + sTradeAnim->linkTimeoutZero2 = 0; + sTradeAnim->linkTimeoutZero1 = 0; } - sTradeData->linkTimeoutZero2 = sTradeData->linkTimeoutZero1; + sTradeAnim->linkTimeoutZero2 = sTradeAnim->linkTimeoutZero1; } static u32 TradeGetMultiplayerId(void) @@ -2811,14 +2812,14 @@ static void LoadTradeMonPic(u8 whichParty, u8 state) HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[whichParty * 2 + B_POSITION_OPPONENT_LEFT], species, personality); LoadCompressedSpritePalette(GetMonSpritePalStruct(mon)); - sTradeData->monSpecies[whichParty] = species; - sTradeData->monPersonalities[whichParty] = personality; + sTradeAnim->monSpecies[whichParty] = species; + sTradeAnim->monPersonalities[whichParty] = personality; break; case 1: SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, pos); - sTradeData->monSpriteIds[whichParty] = CreateSprite(&gMultiuseSpriteTemplate, 120, 60, 6); - gSprites[sTradeData->monSpriteIds[whichParty]].invisible = TRUE; - gSprites[sTradeData->monSpriteIds[whichParty]].callback = SpriteCallbackDummy; + sTradeAnim->monSpriteIds[whichParty] = CreateSprite(&gMultiuseSpriteTemplate, 120, 60, 6); + gSprites[sTradeAnim->monSpriteIds[whichParty]].invisible = TRUE; + gSprites[sTradeAnim->monSpriteIds[whichParty]].callback = SpriteCallbackDummy; break; } } @@ -2833,34 +2834,34 @@ void CB2_LinkTrade(void) gLinkType = LINKTYPE_TRADE_DISCONNECTED; CloseLink(); } - sTradeData = AllocZeroed(sizeof(*sTradeData)); + sTradeAnim = AllocZeroed(sizeof(*sTradeAnim)); AllocateMonSpritesGfx(); ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); - SetVBlankCallback(VBlankCB_Trade); - InitTradeBgInternal(); - ClearLinkTimeoutCounter(); + SetVBlankCallback(VBlankCB_TradeAnim); + TradeAnimInit_LoadGfx(); + ClearLinkTimeoutTimer(); gMain.state++; - sTradeData->neverRead_8C = 0; - sTradeData->state = 0; - sTradeData->isLinkTrade = TRUE; - sTradeData->texX = 64; - sTradeData->texY = 64; - sTradeData->neverRead_D8 = 0; - sTradeData->neverRead_DA = 0; - sTradeData->scrX = 120; - sTradeData->scrY = 80; - sTradeData->sXY = 256; - sTradeData->alpha = 0; + sTradeAnim->neverRead_8C = 0; + sTradeAnim->state = 0; + sTradeAnim->isLinkTrade = TRUE; + sTradeAnim->texX = 64; + sTradeAnim->texY = 64; + sTradeAnim->neverRead_D8 = 0; + sTradeAnim->neverRead_DA = 0; + sTradeAnim->scrX = DISPLAY_WIDTH / 2; + sTradeAnim->scrY = DISPLAY_HEIGHT / 2; + sTradeAnim->sXY = 256; + sTradeAnim->alpha = 0; break; case 1: if (!gReceivedRemoteLinkPlayers) { - sTradeData->isCableTrade = TRUE; + sTradeAnim->isCableTrade = TRUE; OpenLink(); gMain.state++; - sTradeData->timer = 0; + sTradeAnim->timer = 0; } else { @@ -2868,9 +2869,9 @@ void CB2_LinkTrade(void) } break; case 2: - if (++sTradeData->timer > 60) + if (++sTradeAnim->timer > 60) { - sTradeData->timer = 0; + sTradeAnim->timer = 0; gMain.state++; } break; @@ -2879,7 +2880,7 @@ void CB2_LinkTrade(void) { if (GetLinkPlayerCount_2() >= GetSavedPlayerCount()) { - if (++sTradeData->timer > 30) + if (++sTradeAnim->timer > 30) { CheckShouldAdvanceLinkState(); gMain.state++; @@ -2901,9 +2902,9 @@ void CB2_LinkTrade(void) gMain.state++; break; case 5: - sTradeData->playerLinkFlagFinishTrade = 0; - sTradeData->partnerLinkFlagFinishTrade = 0; - sTradeData->sendTradeFinishState = 0; + sTradeAnim->playerFinishStatus = 0; + sTradeAnim->partnerFinishStatus = 0; + sTradeAnim->scheduleLinkTransfer = 0; LoadTradeMonPic(TRADE_PLAYER, 0); gMain.state++; break; @@ -2968,7 +2969,7 @@ void LinkTradeDrawWindow(void) CopyWindowToVram(0, COPYWIN_FULL); } -static void InitTradeBgInternal(void) +static void TradeAnimInit_LoadGfx(void) { SetGpuReg(REG_OFFSET_DISPCNT, 0); ResetBgsAndClearDma3BusyFlags(0); @@ -2979,18 +2980,20 @@ static void InitTradeBgInternal(void) SetBgTilemapBuffer(1, Alloc(BG_SCREEN_SIZE)); SetBgTilemapBuffer(3, Alloc(BG_SCREEN_SIZE)); DeactivateAllTextPrinters(); + // Doing the graphics load... DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); LZDecompressWram(gBattleTextboxTilemap, gDecompressionBuffer); - CopyToBgTilemapBuffer(0, gDecompressionBuffer, 0x800, 0); + CopyToBgTilemapBuffer(0, gDecompressionBuffer, BG_SCREEN_SIZE, 0); LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20); InitWindows(sTradeSequenceWindowTemplates); + // ... and doing the same load again DecompressAndLoadBgGfxUsingHeap(0, gBattleTextboxTiles, 0, 0, 0); LZDecompressWram(gBattleTextboxTilemap, gDecompressionBuffer); - CopyToBgTilemapBuffer(0, gDecompressionBuffer, 0x800, 0); + CopyToBgTilemapBuffer(0, gDecompressionBuffer, BG_SCREEN_SIZE, 0); LoadCompressedPalette(gBattleTextboxPalette, 0, 0x20); } -static void CB2_InGameTrade(void) +static void CB2_InitInGameTrade(void) { u8 otName[11]; @@ -3004,25 +3007,25 @@ static void CB2_InGameTrade(void) StringCopy(gLinkPlayers[1].name, otName); gLinkPlayers[0].language = GAME_LANGUAGE; gLinkPlayers[1].language = GetMonData(&gEnemyParty[0], MON_DATA_LANGUAGE); - sTradeData = AllocZeroed(sizeof(*sTradeData)); + sTradeAnim = AllocZeroed(sizeof(*sTradeAnim)); AllocateMonSpritesGfx(); ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); - SetVBlankCallback(VBlankCB_Trade); - InitTradeBgInternal(); - sTradeData->isLinkTrade = FALSE; - sTradeData->neverRead_8C = 0; - sTradeData->state = 0; - sTradeData->texX = 64; - sTradeData->texY = 64; - sTradeData->neverRead_D8 = 0; - sTradeData->neverRead_DA = 0; - sTradeData->scrX = 120; - sTradeData->scrY = 80; - sTradeData->sXY = 256; - sTradeData->alpha = 0; - sTradeData->timer = 0; + SetVBlankCallback(VBlankCB_TradeAnim); + TradeAnimInit_LoadGfx(); + sTradeAnim->isLinkTrade = FALSE; + sTradeAnim->neverRead_8C = 0; + sTradeAnim->state = 0; + sTradeAnim->texX = 64; + sTradeAnim->texY = 64; + sTradeAnim->neverRead_D8 = 0; + sTradeAnim->neverRead_DA = 0; + sTradeAnim->scrX = DISPLAY_WIDTH / 2; + sTradeAnim->scrY = DISPLAY_HEIGHT / 2; + sTradeAnim->sXY = 256; + sTradeAnim->alpha = 0; + sTradeAnim->timer = 0; gMain.state = 5; break; case 5: @@ -3062,7 +3065,7 @@ static void CB2_InGameTrade(void) gMain.state++; break; case 12: - SetMainCallback2(CB2_UpdateInGameTrade); + SetMainCallback2(CB2_InGameTrade); break; } @@ -3106,11 +3109,14 @@ static void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx) struct Pokemon *partnerMon = &gEnemyParty[partnerPartyIdx]; u16 partnerMail = GetMonData(partnerMon, MON_DATA_MAIL); + // The mail attached to the sent Pokemon no longer exists in your file. if (playerMail != MAIL_NONE) ClearMail(&gSaveBlock1Ptr->mail[playerMail]); - SWAP(*playerMon, *partnerMon, sTradeData->tempMon); + SWAP(*playerMon, *partnerMon, sTradeAnim->tempMon); + // By default, a Pokemon received from a trade will have 70 Friendship. + // Eggs use Friendship to track egg cycles, so don't set this on Eggs. friendship = 70; if (!GetMonData(playerMon, MON_DATA_IS_EGG)) SetMonData(playerMon, MON_DATA_FRIENDSHIP, &friendship); @@ -3123,26 +3129,26 @@ static void TradeMons(u8 playerPartyIdx, u8 partnerPartyIdx) TryEnableNationalDexFromLinkPartner(); } -static void TrySendTradeFinishData(void) +static void HandleLinkDataSend(void) { - switch (sTradeData->sendTradeFinishState) + switch (sTradeAnim->scheduleLinkTransfer) { case 1: if (IsLinkTaskFinished()) { - SendBlock(BitmaskAllOtherLinkPlayers(), sTradeData->linkData, sizeof(sTradeData->linkData)); - sTradeData->sendTradeFinishState++; + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeAnim->linkData, sizeof(sTradeAnim->linkData)); + sTradeAnim->scheduleLinkTransfer++; } // fallthrough case 2: - sTradeData->sendTradeFinishState = 0; + sTradeAnim->scheduleLinkTransfer = 0; break; } } -static void CB2_UpdateInGameTrade(void) +static void CB2_InGameTrade(void) { - AnimateTradeSequence(); + DoTradeAnim(); RunTasks(); RunTextPrinters(); AnimateSprites(); @@ -3155,8 +3161,8 @@ static void SetTradeSequenceBgGpuRegs(u8 state) switch (state) { case 0: - sTradeData->bg2vofs = 0; - sTradeData->bg2hofs = 180; + sTradeAnim->bg2vofs = 0; + sTradeAnim->bg2hofs = 180; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | @@ -3172,8 +3178,8 @@ static void SetTradeSequenceBgGpuRegs(u8 state) DmaCopy16Defvars(3, gTradePlatform_Tilemap, (void *) BG_SCREEN_ADDR(18), 0x1000); break; case 1: - sTradeData->bg1hofs = 0; - sTradeData->bg1vofs = 348; + sTradeAnim->bg1hofs = 0; + sTradeAnim->bg1vofs = 348; SetGpuReg(REG_OFFSET_BG1VOFS, 348); SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | @@ -3186,13 +3192,13 @@ static void SetTradeSequenceBgGpuRegs(u8 state) BGCNT_SCREENBASE(18) | BGCNT_TXT256x512); - if (sTradeData->isCableTrade) + if (sTradeAnim->isCableTrade) { - DmaCopy16Defvars(3, sGbaCable_Tilemap, (void *) BG_SCREEN_ADDR(5), 0x1000); + DmaCopy16Defvars(3, sGbaMapCable, (void *) BG_SCREEN_ADDR(5), 0x1000); } else { - DmaCopy16Defvars(3, sGbaWireless_Tilemap, (void *) BG_SCREEN_ADDR(5), 0x1000); + DmaCopy16Defvars(3, sGbaMapWireless, (void *) BG_SCREEN_ADDR(5), 0x1000); } DmaCopyLarge16(3, gTradeGba_Gfx, (void *) BG_CHAR_ADDR(0), 0x1420, 0x1000); @@ -3202,15 +3208,15 @@ static void SetTradeSequenceBgGpuRegs(u8 state) DISPCNT_OBJ_ON); break; case 2: - sTradeData->bg1vofs = 0; - sTradeData->bg1hofs = 0; - if (!sTradeData->isCableTrade) + sTradeAnim->bg1vofs = 0; + sTradeAnim->bg1hofs = 0; + if (!sTradeAnim->isCableTrade) { SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); - LZ77UnCompVram(sCrossingHighlightWireless_Tilemap, (void *) BG_SCREEN_ADDR(5)); + LZ77UnCompVram(sWirelessCloseup_Map, (void *) BG_SCREEN_ADDR(5)); BlendPalettes(0x8, 16, RGB_BLACK); } else @@ -3219,7 +3225,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); - DmaCopy16Defvars(3, sCrossingHighlightCable_Tilemap, (void *) BG_SCREEN_ADDR(5), 0x800); + DmaCopy16Defvars(3, sCableCloseup_Map, (void *) BG_SCREEN_ADDR(5), 0x800); BlendPalettes(0x1, 16, RGB_BLACK); } break; @@ -3227,7 +3233,7 @@ static void SetTradeSequenceBgGpuRegs(u8 state) LoadPalette(sWirelessSignalNone_Pal, 48, 0x20); LZ77UnCompVram(sWirelessSignal_Gfx, (void *) BG_CHAR_ADDR(1)); LZ77UnCompVram(sWirelessSignal_Tilemap, (void *) BG_SCREEN_ADDR(18)); - sTradeData->bg2vofs = 80; + sTradeAnim->bg2vofs = 80; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | @@ -3244,26 +3250,26 @@ static void SetTradeSequenceBgGpuRegs(u8 state) BGCNT_256COLOR | BGCNT_SCREENBASE(18) | BGCNT_AFF128x128); - sTradeData->texX = 64; - sTradeData->texY = 92; - sTradeData->sXY = 32; - sTradeData->gbaScale = 1024; - sTradeData->alpha = 0; + sTradeAnim->texX = 64; + sTradeAnim->texY = 92; + sTradeAnim->sXY = 32; + sTradeAnim->gbaScale = 1024; + sTradeAnim->alpha = 0; DmaCopyLarge16(3, sGbaAffine_Gfx, (void *) BG_CHAR_ADDR(1), 0x2840, 0x1000); - if (sTradeData->isCableTrade) + if (sTradeAnim->isCableTrade) { - DmaCopy16Defvars(3, sGbaCable_AffineTilemap, (void *) BG_SCREEN_ADDR(18), 0x100); + DmaCopy16Defvars(3, sGbaAffineMapCable, (void *) BG_SCREEN_ADDR(18), 0x100); } else { - DmaCopy16Defvars(3, sGbaWireless_AffineTilemap, (void *) BG_SCREEN_ADDR(18), 0x100); + DmaCopy16Defvars(3, sGbaAffineMapWireless, (void *) BG_SCREEN_ADDR(18), 0x100); } break; case 5: - sTradeData->bg1vofs = 0; - sTradeData->bg1hofs = 0; + sTradeAnim->bg1vofs = 0; + sTradeAnim->bg1hofs = 0; break; case 6: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | @@ -3275,28 +3281,28 @@ static void SetTradeSequenceBgGpuRegs(u8 state) BGCNT_256COLOR | BGCNT_SCREENBASE(18) | BGCNT_AFF128x128); - sTradeData->texX = 64; - sTradeData->texY = 92; - sTradeData->sXY = 256; - sTradeData->gbaScale = 128; - sTradeData->scrX = 120; - sTradeData->scrY = 80; - sTradeData->alpha = 0; + sTradeAnim->texX = 64; + sTradeAnim->texY = 92; + sTradeAnim->sXY = 256; + sTradeAnim->gbaScale = 128; + sTradeAnim->scrX = 120; + sTradeAnim->scrY = 80; + sTradeAnim->alpha = 0; DmaCopyLarge16(3, sGbaAffine_Gfx, (void *) BG_CHAR_ADDR(1), 0x2840, 0x1000); - if (sTradeData->isCableTrade) + if (sTradeAnim->isCableTrade) { - DmaCopy16Defvars(3, sGbaCable_AffineTilemap, (void *) BG_SCREEN_ADDR(18), 0x100); + DmaCopy16Defvars(3, sGbaAffineMapCable, (void *) BG_SCREEN_ADDR(18), 0x100); } else { - DmaCopy16Defvars(3, sGbaWireless_AffineTilemap, (void *) BG_SCREEN_ADDR(18), 0x100); + DmaCopy16Defvars(3, sGbaAffineMapWireless, (void *) BG_SCREEN_ADDR(18), 0x100); } break; case 7: - sTradeData->bg2vofs = 0; - sTradeData->bg2hofs = 0; + sTradeAnim->bg2vofs = 0; + sTradeAnim->bg2hofs = 0; SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(1) | @@ -3327,7 +3333,7 @@ static void BufferTradeSceneStrings(void) u8 name[20]; const struct InGameTrade *ingameTrade; - if (sTradeData->isLinkTrade) + if (sTradeAnim->isLinkTrade) { mpId = GetMultiplayerId(); StringCopy(gStringVar1, gLinkPlayers[mpId ^ 1].name); @@ -3347,476 +3353,476 @@ static void BufferTradeSceneStrings(void) } // returns TRUE if it finished a link trade, FALSE if it finished an in-game trade or if sequence is still going -static bool8 AnimateTradeSequence(void) +static bool8 DoTradeAnim(void) { - if (sTradeData->isCableTrade) - return AnimateTradeSequenceCable(); + if (sTradeAnim->isCableTrade) + return DoTradeAnim_Cable(); else - return AnimateTradeSequenceWireless(); + return DoTradeAnim_Wireless(); } -// Below are the states for the main switch in AnimateTradeSequenceCable and AnimateTradeSequenceWireless -// When AnimateTradeSequenceWireless has a unique version of a -// state used by AnimateTradeSequenceCable, it adds the below modifier -#define TS_WIRELESS_STATE 100 +// Below are the states for the main switch in DoTradeAnim_Cable and DoTradeAnim_Wireless +// When DoTradeAnim_Wireless has a unique version of a state used by DoTradeAnim_Cable, it adds the below modifier +#define STATE_WIRELESS 100 enum { - TS_STATE_START, - TS_STATE_MON_SLIDE_IN, + STATE_START, + STATE_MON_SLIDE_IN, // 2-9 unused - TS_STATE_SEND_MSG = 10, - TS_STATE_BYE_BYE, - TS_STATE_POKEBALL_DEPART, - TS_STATE_POKEBALL_DEPART_WAIT, - TS_STATE_FADE_OUT_TO_GBA_SEND, + STATE_SEND_MSG = 10, + STATE_BYE_BYE, + STATE_POKEBALL_DEPART, + STATE_POKEBALL_DEPART_WAIT, + STATE_FADE_OUT_TO_GBA_SEND, // 15-19 unused - TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND = 20, - TS_STATE_FADE_IN_TO_GBA_SEND, - TS_STATE_WAIT_FADE_IN_TO_GBA_SEND, - TS_STATE_GBA_ZOOM_OUT, - TS_STATE_GBA_FLASH_SEND, - TS_STATE_GBA_STOP_FLASH_SEND, - TS_STATE_PAN_AWAY_GBA, - TS_STATE_CREATE_LINK_MON_LEAVING, - TS_STATE_LINK_MON_TRAVEL_OUT, - TS_STATE_FADE_OUT_TO_CROSSING, - TS_STATE_WAIT_FADE_OUT_TO_CROSSING, - TS_STATE_FADE_IN_TO_CROSSING, - TS_STATE_WAIT_FADE_IN_TO_CROSSING, - TS_STATE_CROSSING_LINK_MONS_ENTER, - TS_STATE_CROSSING_BLEND_WHITE_1, - TS_STATE_CROSSING_BLEND_WHITE_2, - TS_STATE_CROSSING_BLEND_WHITE_3, - TS_STATE_CROSSING_CREATE_MON_PICS, - TS_STATE_CROSSING_MON_PICS_MOVE, - TS_STATE_CROSSING_LINK_MONS_EXIT, - TS_STATE_CREATE_LINK_MON_ARRIVING, - TS_STATE_FADE_OUT_TO_GBA_RECV, - TS_STATE_WAIT_FADE_OUT_TO_GBA_RECV, - TS_STATE_LINK_MON_TRAVEL_IN, - TS_STATE_PAN_TO_GBA, - TS_STATE_DESTROY_LINK_MON, - TS_STATE_LINK_MON_ARRIVED_DELAY, - TS_STATE_MOVE_GBA_TO_CENTER, - TS_STATE_GBA_FLASH_RECV, - TS_STATE_UNUSED, - TS_STATE_GBA_STOP_FLASH_RECV, - TS_STATE_GBA_ZOOM_IN, - TS_STATE_FADE_OUT_TO_NEW_MON, + STATE_WAIT_FADE_OUT_TO_GBA_SEND = 20, + STATE_FADE_IN_TO_GBA_SEND, + STATE_WAIT_FADE_IN_TO_GBA_SEND, + STATE_GBA_ZOOM_OUT, + STATE_GBA_FLASH_SEND, + STATE_GBA_STOP_FLASH_SEND, + STATE_PAN_AWAY_GBA, + STATE_CREATE_LINK_MON_LEAVING, + STATE_LINK_MON_TRAVEL_OUT, + STATE_FADE_OUT_TO_CROSSING, + STATE_WAIT_FADE_OUT_TO_CROSSING, + STATE_FADE_IN_TO_CROSSING, + STATE_WAIT_FADE_IN_TO_CROSSING, + STATE_CROSSING_LINK_MONS_ENTER, + STATE_CROSSING_BLEND_WHITE_1, + STATE_CROSSING_BLEND_WHITE_2, + STATE_CROSSING_BLEND_WHITE_3, + STATE_CROSSING_CREATE_MON_PICS, + STATE_CROSSING_MON_PICS_MOVE, + STATE_CROSSING_LINK_MONS_EXIT, + STATE_CREATE_LINK_MON_ARRIVING, + STATE_FADE_OUT_TO_GBA_RECV, + STATE_WAIT_FADE_OUT_TO_GBA_RECV, + STATE_LINK_MON_TRAVEL_IN, + STATE_PAN_TO_GBA, + STATE_DESTROY_LINK_MON, + STATE_LINK_MON_ARRIVED_DELAY, + STATE_MOVE_GBA_TO_CENTER, + STATE_GBA_FLASH_RECV, + STATE_UNUSED, + STATE_GBA_STOP_FLASH_RECV, + STATE_GBA_ZOOM_IN, + STATE_FADE_OUT_TO_NEW_MON, // 53-59 unused - TS_STATE_WAIT_FADE_OUT_TO_NEW_MON = 60, - TS_STATE_FADE_IN_TO_NEW_MON, - TS_STATE_WAIT_FADE_IN_TO_NEW_MON, - TS_STATE_POKEBALL_ARRIVE, - TS_STATE_FADE_POKEBALL_TO_NORMAL, - TS_STATE_POKEBALL_ARRIVE_WAIT, - TS_STATE_SHOW_NEW_MON, - TS_STATE_NEW_MON_MSG, - TS_STATE_TAKE_CARE_OF_MON, - TS_STATE_AFTER_NEW_MON_DELAY, - TS_STATE_CHECK_RIBBONS, - TS_STATE_END_LINK_TRADE, - TS_STATE_TRY_EVOLUTION, - TS_STATE_FADE_OUT_END, - TS_STATE_WAIT_FADE_OUT_END, + STATE_WAIT_FADE_OUT_TO_NEW_MON = 60, + STATE_FADE_IN_TO_NEW_MON, + STATE_WAIT_FADE_IN_TO_NEW_MON, + STATE_POKEBALL_ARRIVE, + STATE_FADE_POKEBALL_TO_NORMAL, + STATE_POKEBALL_ARRIVE_WAIT, + STATE_SHOW_NEW_MON, + STATE_NEW_MON_MSG, + STATE_TAKE_CARE_OF_MON, + STATE_AFTER_NEW_MON_DELAY, + STATE_CHECK_RIBBONS, + STATE_END_LINK_TRADE, + STATE_TRY_EVOLUTION, + STATE_FADE_OUT_END, + STATE_WAIT_FADE_OUT_END, // Special states - TS_STATE_GBA_FLASH_SEND_WIRELESS = TS_STATE_GBA_FLASH_SEND + TS_WIRELESS_STATE, - TS_STATE_GBA_STOP_FLASH_SEND_WIRELESS, - TS_STATE_WAIT_WIRELESS_SIGNAL_SEND, - TS_STATE_PAN_TO_GBA_WIRELESS = TS_STATE_PAN_TO_GBA + TS_WIRELESS_STATE, - TS_STATE_DESTROY_LINK_MON_WIRELESS, - TS_STATE_WAIT_WIRELESS_SIGNAL_RECV, - TS_STATE_DELAY_FOR_MON_ANIM = 167, - TS_STATE_LINK_MON_TRAVEL_OFFSCREEN = 200, - TS_STATE_WAIT_FOR_MON_CRY = 267, + STATE_GBA_FLASH_SEND_WIRELESS = STATE_GBA_FLASH_SEND + STATE_WIRELESS, + STATE_GBA_STOP_FLASH_SEND_WIRELESS, + STATE_WAIT_WIRELESS_SIGNAL_SEND, + STATE_PAN_TO_GBA_WIRELESS = STATE_PAN_TO_GBA + STATE_WIRELESS, + STATE_DESTROY_LINK_MON_WIRELESS, + STATE_WAIT_WIRELESS_SIGNAL_RECV, + STATE_DELAY_FOR_MON_ANIM = 167, + STATE_LINK_MON_TRAVEL_OFFSCREEN = 200, + STATE_WAIT_FOR_MON_CRY = 267, }; -static bool8 AnimateTradeSequenceCable(void) +static bool8 DoTradeAnim_Cable(void) { u16 evoTarget; - switch (sTradeData->state) + switch (sTradeAnim->state) { - case TS_STATE_START: - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 = -180; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; - sTradeData->state++; - sTradeData->cachedMapMusic = GetCurrentMapMusic(); + case STATE_START: + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x2 = -180; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 = gMonFrontPicCoords[sTradeAnim->monSpecies[TRADE_PLAYER]].y_offset; + sTradeAnim->state++; + sTradeAnim->cachedMapMusic = GetCurrentMapMusic(); PlayNewMapMusic(MUS_EVOLUTION); break; - case TS_STATE_MON_SLIDE_IN: - if (sTradeData->bg2hofs > 0) + case STATE_MON_SLIDE_IN: + if (sTradeAnim->bg2hofs > 0) { // Sliding - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 += 3; - sTradeData->bg2hofs -= 3; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x2 += 3; + sTradeAnim->bg2hofs -= 3; } else { // Pokémon has arrived onscreen - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 = 0; - sTradeData->bg2hofs = 0; - sTradeData->state = TS_STATE_SEND_MSG; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x2 = 0; + sTradeAnim->bg2hofs = 0; + sTradeAnim->state = STATE_SEND_MSG; } break; - case TS_STATE_SEND_MSG: + case STATE_SEND_MSG: StringExpandPlaceholders(gStringVar4, gText_XWillBeSentToY); DrawTextOnTradeWindow(0, gStringVar4, 0); - if (sTradeData->monSpecies[TRADE_PLAYER] != SPECIES_EGG) - PlayCry_Normal(sTradeData->monSpecies[TRADE_PLAYER], 0); + if (sTradeAnim->monSpecies[TRADE_PLAYER] != SPECIES_EGG) + PlayCry_Normal(sTradeAnim->monSpecies[TRADE_PLAYER], 0); - sTradeData->state = TS_STATE_BYE_BYE; - sTradeData->timer = 0; + sTradeAnim->state = STATE_BYE_BYE; + sTradeAnim->timer = 0; break; - case TS_STATE_BYE_BYE: - if (++sTradeData->timer == 80) + case STATE_BYE_BYE: + if (++sTradeAnim->timer == 80) { - sTradeData->releasePokeballSpriteId = CreateTradePokeballSprite(sTradeData->monSpriteIds[0], gSprites[sTradeData->monSpriteIds[0]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); - sTradeData->state++; + sTradeAnim->releasePokeballSpriteId = CreateTradePokeballSprite(sTradeAnim->monSpriteIds[TRADE_PLAYER], gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); + sTradeAnim->state++; StringExpandPlaceholders(gStringVar4, gText_ByeByeVar1); DrawTextOnTradeWindow(0, gStringVar4, 0); } break; - case TS_STATE_POKEBALL_DEPART: - if (gSprites[sTradeData->releasePokeballSpriteId].callback == SpriteCallbackDummy) + case STATE_POKEBALL_DEPART: + if (gSprites[sTradeAnim->releasePokeballSpriteId].callback == SpriteCallbackDummy) { - sTradeData->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, 32, 0); - gSprites[sTradeData->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballDepart; - DestroySprite(&gSprites[sTradeData->releasePokeballSpriteId]); - sTradeData->state++; + sTradeAnim->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, 32, 0); + gSprites[sTradeAnim->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballDepart; + DestroySprite(&gSprites[sTradeAnim->releasePokeballSpriteId]); + sTradeAnim->state++; } break; - case TS_STATE_POKEBALL_DEPART_WAIT: + case STATE_POKEBALL_DEPART_WAIT: // The game waits here for the sprite to finish its animation sequence. break; - case TS_STATE_FADE_OUT_TO_GBA_SEND: + case STATE_FADE_OUT_TO_GBA_SEND: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND; + sTradeAnim->state = STATE_WAIT_FADE_OUT_TO_GBA_SEND; break; - case TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND: + case STATE_WAIT_FADE_OUT_TO_GBA_SEND: if (!gPaletteFade.active) { SetTradeSequenceBgGpuRegs(4); FillWindowPixelBuffer(0, PIXEL_FILL(15)); CopyWindowToVram(0, COPYWIN_FULL); - sTradeData->state++; + sTradeAnim->state++; } break; - case TS_STATE_FADE_IN_TO_GBA_SEND: + case STATE_FADE_IN_TO_GBA_SEND: BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_IN_TO_GBA_SEND: + case STATE_WAIT_FADE_IN_TO_GBA_SEND: if (!gPaletteFade.active) - sTradeData->state = TS_STATE_GBA_ZOOM_OUT; + sTradeAnim->state = STATE_GBA_ZOOM_OUT; break; - case TS_STATE_GBA_ZOOM_OUT: - if (sTradeData->gbaScale > 0x100) + case STATE_GBA_ZOOM_OUT: + if (sTradeAnim->gbaScale > 0x100) { - sTradeData->gbaScale -= 0x34; + sTradeAnim->gbaScale -= 0x34; } else { SetTradeSequenceBgGpuRegs(1); - sTradeData->gbaScale = 0x80; - sTradeData->state++; - sTradeData->timer = 0; + sTradeAnim->gbaScale = 0x80; + sTradeAnim->state++; + sTradeAnim->timer = 0; } - sTradeData->sXY = 0x8000 / sTradeData->gbaScale; + sTradeAnim->sXY = 0x8000 / sTradeAnim->gbaScale; break; - case TS_STATE_GBA_FLASH_SEND: - if (++sTradeData->timer > 20) + case STATE_GBA_FLASH_SEND: + if (++sTradeAnim->timer > 20) { SetTradeBGAffine(); - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Long, 120, 80, 0); - sTradeData->state++; + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Long, 120, 80, 0); + sTradeAnim->state++; } break; - case TS_STATE_GBA_STOP_FLASH_SEND: - if (gSprites[sTradeData->connectionSpriteId2].animEnded) + case STATE_GBA_STOP_FLASH_SEND: + if (gSprites[sTradeAnim->connectionSpriteId2].animEnded) { - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 4)); - sTradeData->state++; + sTradeAnim->state++; } break; - case TS_STATE_PAN_AWAY_GBA: - if (--sTradeData->bg1vofs == 316) - sTradeData->state++; + case STATE_PAN_AWAY_GBA: + if (--sTradeAnim->bg1vofs == 316) + sTradeAnim->state++; - if (sTradeData->bg1vofs == 328) - sTradeData->cableEndSpriteId = CreateSprite(&sSpriteTemplate_CableEnd, 128, 65, 0); + if (sTradeAnim->bg1vofs == 328) + sTradeAnim->cableEndSpriteId = CreateSprite(&sSpriteTemplate_CableEnd, 128, 65, 0); break; - case TS_STATE_CREATE_LINK_MON_LEAVING: - sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 128, 80, 3); - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 128, 80, 0); - StartSpriteAnim(&gSprites[sTradeData->connectionSpriteId2], ANIM_LINKMON_SMALL); - sTradeData->state++; + case STATE_CREATE_LINK_MON_LEAVING: + sTradeAnim->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 128, 80, 3); + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 128, 80, 0); + StartSpriteAnim(&gSprites[sTradeAnim->connectionSpriteId2], ANIM_LINKMON_SMALL); + sTradeAnim->state++; break; - case TS_STATE_LINK_MON_TRAVEL_OUT: - if ((sTradeData->bg1vofs -= 2) == 166) - sTradeData->state = TS_STATE_LINK_MON_TRAVEL_OFFSCREEN; + case STATE_LINK_MON_TRAVEL_OUT: + if ((sTradeAnim->bg1vofs -= 2) == 166) + sTradeAnim->state = STATE_LINK_MON_TRAVEL_OFFSCREEN; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); break; - case TS_STATE_LINK_MON_TRAVEL_OFFSCREEN: - gSprites[sTradeData->connectionSpriteId1].y -= 2; - gSprites[sTradeData->connectionSpriteId2].y -= 2; - if (gSprites[sTradeData->connectionSpriteId1].y < -8) - sTradeData->state = TS_STATE_FADE_OUT_TO_CROSSING; + case STATE_LINK_MON_TRAVEL_OFFSCREEN: + gSprites[sTradeAnim->connectionSpriteId1].y -= 2; + gSprites[sTradeAnim->connectionSpriteId2].y -= 2; + if (gSprites[sTradeAnim->connectionSpriteId1].y < -8) + sTradeAnim->state = STATE_FADE_OUT_TO_CROSSING; break; - case TS_STATE_FADE_OUT_TO_CROSSING: + case STATE_FADE_OUT_TO_CROSSING: BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); - sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_CROSSING; + sTradeAnim->state = STATE_WAIT_FADE_OUT_TO_CROSSING; break; - case TS_STATE_WAIT_FADE_OUT_TO_CROSSING: + case STATE_WAIT_FADE_OUT_TO_CROSSING: if (!gPaletteFade.active) { - DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); SetTradeSequenceBgGpuRegs(2); - sTradeData->state++; + sTradeAnim->state++; } break; - case TS_STATE_FADE_IN_TO_CROSSING: + case STATE_FADE_IN_TO_CROSSING: BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); - sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 111, 170, 0); - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 129, -10, 0); - sTradeData->state++; + sTradeAnim->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 111, 170, 0); + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 129, -10, 0); + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_IN_TO_CROSSING: + case STATE_WAIT_FADE_IN_TO_CROSSING: if (!gPaletteFade.active) { PlaySE(SE_WARP_OUT); - sTradeData->state++; + sTradeAnim->state++; } - gSprites[sTradeData->connectionSpriteId1].y2 -= 3; - gSprites[sTradeData->connectionSpriteId2].y2 += 3; + gSprites[sTradeAnim->connectionSpriteId1].y2 -= 3; + gSprites[sTradeAnim->connectionSpriteId2].y2 += 3; break; - case TS_STATE_CROSSING_LINK_MONS_ENTER: - gSprites[sTradeData->connectionSpriteId1].y2 -= 3; - gSprites[sTradeData->connectionSpriteId2].y2 += 3; - if (gSprites[sTradeData->connectionSpriteId1].y2 <= -90) + case STATE_CROSSING_LINK_MONS_ENTER: + gSprites[sTradeAnim->connectionSpriteId1].y2 -= 3; + gSprites[sTradeAnim->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeAnim->connectionSpriteId1].y2 <= -90) { - gSprites[sTradeData->connectionSpriteId1].data[1] = 1; - gSprites[sTradeData->connectionSpriteId2].data[1] = 1; - sTradeData->state++; + gSprites[sTradeAnim->connectionSpriteId1].data[1] = 1; + gSprites[sTradeAnim->connectionSpriteId2].data[1] = 1; + sTradeAnim->state++; } break; - case TS_STATE_CROSSING_BLEND_WHITE_1: + case STATE_CROSSING_BLEND_WHITE_1: BlendPalettes(0x1, 16, RGB_WHITEALPHA); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_CROSSING_BLEND_WHITE_2: + case STATE_CROSSING_BLEND_WHITE_2: BlendPalettes(0x1, 0, RGB_WHITEALPHA); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_CROSSING_BLEND_WHITE_3: + case STATE_CROSSING_BLEND_WHITE_3: BlendPalettes(0x1, 16, RGB_WHITEALPHA); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_CROSSING_CREATE_MON_PICS: - if (!IsMonSpriteNotFlipped(sTradeData->monSpecies[TRADE_PLAYER])) + case STATE_CROSSING_CREATE_MON_PICS: + if (!IsMonSpriteNotFlipped(sTradeAnim->monSpecies[TRADE_PLAYER])) { - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].affineAnims = sAffineAnims_CrossingMonPics; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; - CalcCenterToCornerVec(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE); - StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], 0); + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].affineAnims = sAffineAnims_CrossingMonPics; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; + CalcCenterToCornerVec(&gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]], SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE); + StartSpriteAffineAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]], 0); } else { - StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], 0); + StartSpriteAffineAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]], 0); } - StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]], 0); - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x = 60; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x = 180; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y = 192; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y = -32; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].invisible = FALSE; - sTradeData->state++; + StartSpriteAffineAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]], 0); + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x = 60; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x = 180; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y = 192; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y = -32; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].invisible = FALSE; + sTradeAnim->state++; break; - case TS_STATE_CROSSING_MON_PICS_MOVE: - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 -= 3; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y2 += 3; - if (gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 < -DISPLAY_HEIGHT - && gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 >= -DISPLAY_HEIGHT - 3) + case STATE_CROSSING_MON_PICS_MOVE: + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 -= 3; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y2 += 3; + if (gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 < -DISPLAY_HEIGHT + && gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 >= -DISPLAY_HEIGHT - 3) { PlaySE(SE_WARP_IN); } - if (gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 < -222) + if (gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 < -222) { - gSprites[sTradeData->connectionSpriteId1].data[1] = 0; - gSprites[sTradeData->connectionSpriteId2].data[1] = 0; - sTradeData->state++; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = TRUE; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].invisible = TRUE; + gSprites[sTradeAnim->connectionSpriteId1].data[1] = 0; + gSprites[sTradeAnim->connectionSpriteId2].data[1] = 0; + sTradeAnim->state++; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].invisible = TRUE; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].invisible = TRUE; BlendPalettes(0x1, 0, RGB_WHITEALPHA); } break; - case TS_STATE_CROSSING_LINK_MONS_EXIT: - gSprites[sTradeData->connectionSpriteId1].y2 -= 3; - gSprites[sTradeData->connectionSpriteId2].y2 += 3; - if (gSprites[sTradeData->connectionSpriteId1].y2 <= -222) + case STATE_CROSSING_LINK_MONS_EXIT: + gSprites[sTradeAnim->connectionSpriteId1].y2 -= 3; + gSprites[sTradeAnim->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeAnim->connectionSpriteId1].y2 <= -222) { BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); - sTradeData->state++; - DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); + sTradeAnim->state++; + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); } break; - case TS_STATE_CREATE_LINK_MON_ARRIVING: + case STATE_CREATE_LINK_MON_ARRIVING: if (!gPaletteFade.active) { - sTradeData->state++; + sTradeAnim->state++; SetTradeSequenceBgGpuRegs(1); - sTradeData->bg1vofs = 166; - sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 128, -20, 3); - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 128, -20, 0); - StartSpriteAnim(&gSprites[sTradeData->connectionSpriteId2], ANIM_LINKMON_SMALL); + sTradeAnim->bg1vofs = 166; + sTradeAnim->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 128, -20, 3); + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 128, -20, 0); + StartSpriteAnim(&gSprites[sTradeAnim->connectionSpriteId2], ANIM_LINKMON_SMALL); } break; - case TS_STATE_FADE_OUT_TO_GBA_RECV: + case STATE_FADE_OUT_TO_GBA_RECV: BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_OUT_TO_GBA_RECV: + case STATE_WAIT_FADE_OUT_TO_GBA_RECV: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); if (!gPaletteFade.active) - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_LINK_MON_TRAVEL_IN: - gSprites[sTradeData->connectionSpriteId1].y2 += 3; - gSprites[sTradeData->connectionSpriteId2].y2 += 3; - if (gSprites[sTradeData->connectionSpriteId1].y2 + gSprites[sTradeData->connectionSpriteId1].y == 64) + case STATE_LINK_MON_TRAVEL_IN: + gSprites[sTradeAnim->connectionSpriteId1].y2 += 3; + gSprites[sTradeAnim->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeAnim->connectionSpriteId1].y2 + gSprites[sTradeAnim->connectionSpriteId1].y == 64) + sTradeAnim->state++; + break; + case STATE_PAN_TO_GBA: + if ((sTradeAnim->bg1vofs += 2) > 316) { - sTradeData->state++; + sTradeAnim->bg1vofs = 316; + sTradeAnim->state++; } break; - case TS_STATE_PAN_TO_GBA: - if ((sTradeData->bg1vofs += 2) > 316) + case STATE_DESTROY_LINK_MON: + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); + sTradeAnim->state++; + sTradeAnim->timer = 0; + break; + case STATE_LINK_MON_ARRIVED_DELAY: + if (++sTradeAnim->timer == 10) + sTradeAnim->state++; + break; + case STATE_MOVE_GBA_TO_CENTER: + if (++sTradeAnim->bg1vofs > 348) { - sTradeData->bg1vofs = 316; - sTradeData->state++; + sTradeAnim->bg1vofs = 348; + sTradeAnim->state++; + } + if (sTradeAnim->bg1vofs == 328 && sTradeAnim->isCableTrade) + { + sTradeAnim->cableEndSpriteId = CreateSprite(&sSpriteTemplate_CableEnd, 128, 65, 0); + gSprites[sTradeAnim->cableEndSpriteId].callback = SpriteCB_CableEndReceiving; } break; - case TS_STATE_DESTROY_LINK_MON: - DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); - sTradeData->state++; - sTradeData->timer = 0; + case STATE_GBA_FLASH_RECV: + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Long, 120, 80, 0); + sTradeAnim->state = STATE_GBA_STOP_FLASH_RECV; break; - case TS_STATE_LINK_MON_ARRIVED_DELAY: - if (++sTradeData->timer == 10) - sTradeData->state++; - break; - case TS_STATE_MOVE_GBA_TO_CENTER: - if (++sTradeData->bg1vofs > 348) + case STATE_GBA_STOP_FLASH_RECV: + if (gSprites[sTradeAnim->connectionSpriteId2].animEnded) { - sTradeData->bg1vofs = 348; - sTradeData->state++; - } - if (sTradeData->bg1vofs == 328 && sTradeData->isCableTrade) - { - sTradeData->cableEndSpriteId = CreateSprite(&sSpriteTemplate_CableEnd, 128, 65, 0); - gSprites[sTradeData->cableEndSpriteId].callback = SpriteCB_CableEndReceiving; - } - break; - case TS_STATE_GBA_FLASH_RECV: - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Long, 120, 80, 0); - sTradeData->state = TS_STATE_GBA_STOP_FLASH_RECV; - break; - case TS_STATE_GBA_STOP_FLASH_RECV: - if (gSprites[sTradeData->connectionSpriteId2].animEnded) - { - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); SetTradeSequenceBgGpuRegs(6); - sTradeData->state++; + sTradeAnim->state++; PlaySE(SE_M_SAND_ATTACK); } break; - case TS_STATE_GBA_ZOOM_IN: - if (sTradeData->gbaScale < 0x400) + case STATE_GBA_ZOOM_IN: + if (sTradeAnim->gbaScale < 0x400) { - sTradeData->gbaScale += 0x34; + sTradeAnim->gbaScale += 0x34; } else { - sTradeData->gbaScale = 0x400; - sTradeData->state++; + sTradeAnim->gbaScale = 0x400; + sTradeAnim->state++; } - sTradeData->sXY = 0x8000 / sTradeData->gbaScale; + sTradeAnim->sXY = 0x8000 / sTradeAnim->gbaScale; break; - case TS_STATE_FADE_OUT_TO_NEW_MON: + case STATE_FADE_OUT_TO_NEW_MON: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_NEW_MON; + sTradeAnim->state = STATE_WAIT_FADE_OUT_TO_NEW_MON; break; - case TS_STATE_WAIT_FADE_OUT_TO_NEW_MON: + case STATE_WAIT_FADE_OUT_TO_NEW_MON: if (!gPaletteFade.active) { SetTradeSequenceBgGpuRegs(5); SetTradeSequenceBgGpuRegs(7); gPaletteFade.bufferTransferDisabled = TRUE; - sTradeData->state++; + sTradeAnim->state++; } break; - case TS_STATE_FADE_IN_TO_NEW_MON: + case STATE_FADE_IN_TO_NEW_MON: gPaletteFade.bufferTransferDisabled = FALSE; BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_IN_TO_NEW_MON: + case STATE_WAIT_FADE_IN_TO_NEW_MON: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); if (!gPaletteFade.active) - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_POKEBALL_ARRIVE: - sTradeData->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, -8, 0); - gSprites[sTradeData->bouncingPokeballSpriteId].data[3] = 74; - gSprites[sTradeData->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballArrive; - StartSpriteAnim(&gSprites[sTradeData->bouncingPokeballSpriteId], 1); - StartSpriteAffineAnim(&gSprites[sTradeData->bouncingPokeballSpriteId], 2); - BlendPalettes(1 << (16 + gSprites[sTradeData->bouncingPokeballSpriteId].oam.paletteNum), 16, RGB_WHITEALPHA); - sTradeData->state++; - sTradeData->timer = 0; + case STATE_POKEBALL_ARRIVE: + sTradeAnim->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, -8, 0); + gSprites[sTradeAnim->bouncingPokeballSpriteId].data[3] = 74; + gSprites[sTradeAnim->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballArrive; + StartSpriteAnim(&gSprites[sTradeAnim->bouncingPokeballSpriteId], 1); + StartSpriteAffineAnim(&gSprites[sTradeAnim->bouncingPokeballSpriteId], 2); + BlendPalettes(1 << (16 + gSprites[sTradeAnim->bouncingPokeballSpriteId].oam.paletteNum), 16, RGB_WHITEALPHA); + sTradeAnim->state++; + sTradeAnim->timer = 0; break; - case TS_STATE_FADE_POKEBALL_TO_NORMAL: - BeginNormalPaletteFade(1 << (16 + gSprites[sTradeData->bouncingPokeballSpriteId].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); - sTradeData->state++; + case STATE_FADE_POKEBALL_TO_NORMAL: + BeginNormalPaletteFade(1 << (16 + gSprites[sTradeAnim->bouncingPokeballSpriteId].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); + sTradeAnim->state++; break; - case TS_STATE_POKEBALL_ARRIVE_WAIT: - if (gSprites[sTradeData->bouncingPokeballSpriteId].callback == SpriteCallbackDummy) + case STATE_POKEBALL_ARRIVE_WAIT: + if (gSprites[sTradeAnim->bouncingPokeballSpriteId].callback == SpriteCallbackDummy) { - HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]); - sTradeData->state++; + HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeAnim->monSpecies[TRADE_PARTNER]], + gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], + sTradeAnim->monSpecies[TRADE_PARTNER], + sTradeAnim->monPersonalities[TRADE_PARTNER]); + sTradeAnim->state++; } break; - case TS_STATE_SHOW_NEW_MON: - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x = 120; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PARTNER]].y_offset + 60; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x2 = 0; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y2 = 0; - StartSpriteAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]], 0); - CreatePokeballSpriteToReleaseMon(sTradeData->monSpriteIds[TRADE_PARTNER], gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].oam.paletteNum, 120, 84, 2, 1, 20, PALETTES_BG | (0xF << 16), sTradeData->monSpecies[TRADE_PARTNER]); - FreeSpriteOamMatrix(&gSprites[sTradeData->bouncingPokeballSpriteId]); - DestroySprite(&gSprites[sTradeData->bouncingPokeballSpriteId]); - sTradeData->state++; + case STATE_SHOW_NEW_MON: + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x = 120; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y = gMonFrontPicCoords[sTradeAnim->monSpecies[TRADE_PARTNER]].y_offset + 60; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x2 = 0; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y2 = 0; + StartSpriteAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]], 0); + CreatePokeballSpriteToReleaseMon(sTradeAnim->monSpriteIds[TRADE_PARTNER], gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].oam.paletteNum, 120, 84, 2, 1, 20, PALETTES_BG | (0xF << 16), sTradeAnim->monSpecies[TRADE_PARTNER]); + FreeSpriteOamMatrix(&gSprites[sTradeAnim->bouncingPokeballSpriteId]); + DestroySprite(&gSprites[sTradeAnim->bouncingPokeballSpriteId]); + sTradeAnim->state++; break; - case TS_STATE_NEW_MON_MSG: + case STATE_NEW_MON_MSG: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | @@ -3824,76 +3830,70 @@ static bool8 AnimateTradeSequenceCable(void) DISPCNT_OBJ_ON); StringExpandPlaceholders(gStringVar4, gText_XSentOverY); DrawTextOnTradeWindow(0, gStringVar4, 0); - sTradeData->state = TS_STATE_DELAY_FOR_MON_ANIM; - sTradeData->timer = 0; + sTradeAnim->state = STATE_DELAY_FOR_MON_ANIM; + sTradeAnim->timer = 0; break; - case TS_STATE_DELAY_FOR_MON_ANIM: - if (++sTradeData->timer > 60) + case STATE_DELAY_FOR_MON_ANIM: + if (++sTradeAnim->timer > 60) { - sTradeData->state = TS_STATE_WAIT_FOR_MON_CRY; - sTradeData->timer = 0; + sTradeAnim->state = STATE_WAIT_FOR_MON_CRY; + sTradeAnim->timer = 0; } break; - case TS_STATE_WAIT_FOR_MON_CRY: + case STATE_WAIT_FOR_MON_CRY: if (IsCryFinished()) - sTradeData->state = TS_STATE_TAKE_CARE_OF_MON; + sTradeAnim->state = STATE_TAKE_CARE_OF_MON; break; - case TS_STATE_TAKE_CARE_OF_MON: - if (++sTradeData->timer == 10) + case STATE_TAKE_CARE_OF_MON: + if (++sTradeAnim->timer == 10) PlayFanfare(MUS_EVOLVED); - if (sTradeData->timer == 250) + if (sTradeAnim->timer == 250) { - sTradeData->state++; + sTradeAnim->state++; StringExpandPlaceholders(gStringVar4, gText_TakeGoodCareOfX); DrawTextOnTradeWindow(0, gStringVar4, 0); - sTradeData->timer = 0; + sTradeAnim->timer = 0; } break; - case TS_STATE_AFTER_NEW_MON_DELAY: - if (++sTradeData->timer == 60) - sTradeData->state++; + case STATE_AFTER_NEW_MON_DELAY: + if (++sTradeAnim->timer == 60) + sTradeAnim->state++; break; - case TS_STATE_CHECK_RIBBONS: + case STATE_CHECK_RIBBONS: CheckPartnersMonForRibbons(); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_END_LINK_TRADE: - if (sTradeData->isLinkTrade) - { + case STATE_END_LINK_TRADE: + if (sTradeAnim->isLinkTrade) return TRUE; - } else if (JOY_NEW(A_BUTTON)) - { - sTradeData->state++; - } + sTradeAnim->state++; break; - case TS_STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution + case STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution TradeMons(gSpecialVar_0x8005, 0); - gCB2_AfterEvolution = CB2_UpdateInGameTrade; + gCB2_AfterEvolution = CB2_InGameTrade; evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE); if (evoTarget != SPECIES_NONE) - { - TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); - } - sTradeData->state++; + TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeAnim->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); + sTradeAnim->state++; break; - case TS_STATE_FADE_OUT_END: + case STATE_FADE_OUT_END: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_OUT_END: + case STATE_WAIT_FADE_OUT_END: if (!gPaletteFade.active) { - PlayNewMapMusic(sTradeData->cachedMapMusic); - if (sTradeData) + PlayNewMapMusic(sTradeAnim->cachedMapMusic); + if (sTradeAnim) { FreeAllWindowBuffers(); Free(GetBgTilemapBuffer(3)); Free(GetBgTilemapBuffer(1)); Free(GetBgTilemapBuffer(0)); FreeMonSpritesGfx(); - FREE_AND_SET_NULL(sTradeData); + FREE_AND_SET_NULL(sTradeAnim); } SetMainCallback2(CB2_ReturnToField); BufferInGameTradeMonName(); @@ -3903,111 +3903,116 @@ static bool8 AnimateTradeSequenceCable(void) return FALSE; } -static bool8 AnimateTradeSequenceWireless(void) +// Task data for Task_AnimateWirelessSignal +#define tIdx data[0] +#define tCounter data[1] +#define tSignalComingBack data[2] + +static bool8 DoTradeAnim_Wireless(void) { u16 evoTarget; - switch (sTradeData->state) + switch (sTradeAnim->state) { - case TS_STATE_START: - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 = -180; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PLAYER]].y_offset; - sTradeData->state++; - sTradeData->cachedMapMusic = GetCurrentMapMusic(); + case STATE_START: + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x2 = -180; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 = gMonFrontPicCoords[sTradeAnim->monSpecies[TRADE_PLAYER]].y_offset; + sTradeAnim->state++; + sTradeAnim->cachedMapMusic = GetCurrentMapMusic(); PlayNewMapMusic(MUS_EVOLUTION); break; - case TS_STATE_MON_SLIDE_IN: - if (sTradeData->bg2hofs > 0) + case STATE_MON_SLIDE_IN: + if (sTradeAnim->bg2hofs > 0) { - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 += 3; - sTradeData->bg2hofs -= 3; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x2 += 3; + sTradeAnim->bg2hofs -= 3; } else { - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x2 = 0; - sTradeData->bg2hofs = 0; - sTradeData->state = TS_STATE_SEND_MSG; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x2 = 0; + sTradeAnim->bg2hofs = 0; + sTradeAnim->state = STATE_SEND_MSG; } break; - case TS_STATE_SEND_MSG: + case STATE_SEND_MSG: StringExpandPlaceholders(gStringVar4, gText_XWillBeSentToY); DrawTextOnTradeWindow(0, gStringVar4, 0); - if (sTradeData->monSpecies[TRADE_PLAYER] != SPECIES_EGG) - PlayCry_Normal(sTradeData->monSpecies[TRADE_PLAYER], 0); + if (sTradeAnim->monSpecies[TRADE_PLAYER] != SPECIES_EGG) + PlayCry_Normal(sTradeAnim->monSpecies[TRADE_PLAYER], 0); - sTradeData->state = TS_STATE_BYE_BYE; - sTradeData->timer = 0; + sTradeAnim->state = STATE_BYE_BYE; + sTradeAnim->timer = 0; break; - case TS_STATE_BYE_BYE: - if (++sTradeData->timer == 80) + case STATE_BYE_BYE: + if (++sTradeAnim->timer == 80) { - sTradeData->releasePokeballSpriteId = CreateTradePokeballSprite(sTradeData->monSpriteIds[0], gSprites[sTradeData->monSpriteIds[0]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); - sTradeData->state++; + sTradeAnim->releasePokeballSpriteId = CreateTradePokeballSprite(sTradeAnim->monSpriteIds[TRADE_PLAYER], gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].oam.paletteNum, 120, 32, 2, 1, 0x14, 0xfffff); + sTradeAnim->state++; StringExpandPlaceholders(gStringVar4, gText_ByeByeVar1); DrawTextOnTradeWindow(0, gStringVar4, 0); } break; - case TS_STATE_POKEBALL_DEPART: - if (gSprites[sTradeData->releasePokeballSpriteId].callback == SpriteCallbackDummy) + case STATE_POKEBALL_DEPART: + if (gSprites[sTradeAnim->releasePokeballSpriteId].callback == SpriteCallbackDummy) { - sTradeData->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, 32, 0); - gSprites[sTradeData->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballDepart; - DestroySprite(&gSprites[sTradeData->releasePokeballSpriteId]); - sTradeData->state++; + sTradeAnim->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, 32, 0); + gSprites[sTradeAnim->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballDepart; + DestroySprite(&gSprites[sTradeAnim->releasePokeballSpriteId]); + sTradeAnim->state++; } break; - case TS_STATE_POKEBALL_DEPART_WAIT: + case STATE_POKEBALL_DEPART_WAIT: // The game waits here for the sprite to finish its animation sequence. break; - case TS_STATE_FADE_OUT_TO_GBA_SEND: + case STATE_FADE_OUT_TO_GBA_SEND: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND; + sTradeAnim->state = STATE_WAIT_FADE_OUT_TO_GBA_SEND; break; - case TS_STATE_WAIT_FADE_OUT_TO_GBA_SEND: + case STATE_WAIT_FADE_OUT_TO_GBA_SEND: if (!gPaletteFade.active) { SetTradeSequenceBgGpuRegs(4); FillWindowPixelBuffer(0, PIXEL_FILL(15)); CopyWindowToVram(0, COPYWIN_FULL); - sTradeData->state++; + sTradeAnim->state++; } break; - case TS_STATE_FADE_IN_TO_GBA_SEND: + case STATE_FADE_IN_TO_GBA_SEND: BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_IN_TO_GBA_SEND: + case STATE_WAIT_FADE_IN_TO_GBA_SEND: if (!gPaletteFade.active) - sTradeData->state = TS_STATE_GBA_ZOOM_OUT; + sTradeAnim->state = STATE_GBA_ZOOM_OUT; break; - case TS_STATE_GBA_ZOOM_OUT: - if (sTradeData->gbaScale > 0x100) + case STATE_GBA_ZOOM_OUT: + if (sTradeAnim->gbaScale > 0x100) { - sTradeData->gbaScale -= 0x34; + sTradeAnim->gbaScale -= 0x34; } else { SetTradeSequenceBgGpuRegs(1); - sTradeData->gbaScale = 0x80; - sTradeData->state = TS_STATE_GBA_FLASH_SEND_WIRELESS; - sTradeData->timer = 0; + sTradeAnim->gbaScale = 0x80; + sTradeAnim->state = STATE_GBA_FLASH_SEND_WIRELESS; + sTradeAnim->timer = 0; } - sTradeData->sXY = 0x8000 / sTradeData->gbaScale; + sTradeAnim->sXY = 0x8000 / sTradeAnim->gbaScale; break; - case TS_STATE_GBA_FLASH_SEND_WIRELESS: - if (++sTradeData->timer > 20) + case STATE_GBA_FLASH_SEND_WIRELESS: + if (++sTradeAnim->timer > 20) { SetTradeSequenceBgGpuRegs(3); - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Short, 120, 80, 0); - sTradeData->state++; + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Short, 120, 80, 0); + sTradeAnim->state++; } break; - case TS_STATE_GBA_STOP_FLASH_SEND_WIRELESS: - if (gSprites[sTradeData->connectionSpriteId2].animEnded) + case STATE_GBA_STOP_FLASH_SEND_WIRELESS: + if (gSprites[sTradeAnim->connectionSpriteId2].animEnded) { - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_BLEND | @@ -4016,307 +4021,305 @@ static bool8 AnimateTradeSequenceWireless(void) // Start wireless signal effect CreateTask(Task_AnimateWirelessSignal, 5); - sTradeData->state++; + sTradeAnim->state++; } break; - case TS_STATE_WAIT_WIRELESS_SIGNAL_SEND: + case STATE_WAIT_WIRELESS_SIGNAL_SEND: if (!FuncIsActiveTask(Task_AnimateWirelessSignal)) - sTradeData->state = TS_STATE_PAN_AWAY_GBA; + sTradeAnim->state = STATE_PAN_AWAY_GBA; break; - case TS_STATE_PAN_AWAY_GBA: - if (--sTradeData->bg1vofs == 316) - sTradeData->state++; + case STATE_PAN_AWAY_GBA: + if (--sTradeAnim->bg1vofs == 316) + sTradeAnim->state++; break; - case TS_STATE_CREATE_LINK_MON_LEAVING: - sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 120, 80, 3); - gSprites[sTradeData->connectionSpriteId1].callback = SpriteCB_LinkMonGlowWireless; - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 120, 80, 0); - StartSpriteAnim(&gSprites[sTradeData->connectionSpriteId2], ANIM_LINKMON_SMALL); - sTradeData->state++; + case STATE_CREATE_LINK_MON_LEAVING: + sTradeAnim->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 120, 80, 3); + gSprites[sTradeAnim->connectionSpriteId1].callback = SpriteCB_LinkMonGlowWireless; + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 120, 80, 0); + StartSpriteAnim(&gSprites[sTradeAnim->connectionSpriteId2], ANIM_LINKMON_SMALL); + sTradeAnim->state++; break; - case TS_STATE_LINK_MON_TRAVEL_OUT: - if ((sTradeData->bg1vofs -= 3) == 166) - sTradeData->state = TS_STATE_LINK_MON_TRAVEL_OFFSCREEN; + case STATE_LINK_MON_TRAVEL_OUT: + if ((sTradeAnim->bg1vofs -= 3) == 166) + sTradeAnim->state = STATE_LINK_MON_TRAVEL_OFFSCREEN; SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); break; - case TS_STATE_LINK_MON_TRAVEL_OFFSCREEN: - gSprites[sTradeData->connectionSpriteId1].y -= 2; - gSprites[sTradeData->connectionSpriteId2].y -= 2; - if (gSprites[sTradeData->connectionSpriteId1].y < -8) - { - sTradeData->state = TS_STATE_FADE_OUT_TO_CROSSING; - } + case STATE_LINK_MON_TRAVEL_OFFSCREEN: + gSprites[sTradeAnim->connectionSpriteId1].y -= 2; + gSprites[sTradeAnim->connectionSpriteId2].y -= 2; + if (gSprites[sTradeAnim->connectionSpriteId1].y < -8) + sTradeAnim->state = STATE_FADE_OUT_TO_CROSSING; break; - case TS_STATE_FADE_OUT_TO_CROSSING: + case STATE_FADE_OUT_TO_CROSSING: BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); - sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_CROSSING; + sTradeAnim->state = STATE_WAIT_FADE_OUT_TO_CROSSING; break; - case TS_STATE_WAIT_FADE_OUT_TO_CROSSING: + case STATE_WAIT_FADE_OUT_TO_CROSSING: if (!gPaletteFade.active) { - DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); SetTradeSequenceBgGpuRegs(2); - sTradeData->state++; + sTradeAnim->state++; } break; - case TS_STATE_FADE_IN_TO_CROSSING: + case STATE_FADE_IN_TO_CROSSING: BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); - sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 111, 170, 0); - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 129, -10, 0); - sTradeData->state++; + sTradeAnim->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 111, 170, 0); + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 129, -10, 0); + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_IN_TO_CROSSING: + case STATE_WAIT_FADE_IN_TO_CROSSING: if (!gPaletteFade.active) { PlaySE(SE_WARP_OUT); - sTradeData->state++; + sTradeAnim->state++; } - gSprites[sTradeData->connectionSpriteId1].y2 -= 3; - gSprites[sTradeData->connectionSpriteId2].y2 += 3; + gSprites[sTradeAnim->connectionSpriteId1].y2 -= 3; + gSprites[sTradeAnim->connectionSpriteId2].y2 += 3; break; - case TS_STATE_CROSSING_LINK_MONS_ENTER: - gSprites[sTradeData->connectionSpriteId1].y2 -= 3; - gSprites[sTradeData->connectionSpriteId2].y2 += 3; - if (gSprites[sTradeData->connectionSpriteId1].y2 <= -90) + case STATE_CROSSING_LINK_MONS_ENTER: + gSprites[sTradeAnim->connectionSpriteId1].y2 -= 3; + gSprites[sTradeAnim->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeAnim->connectionSpriteId1].y2 <= -90) { - gSprites[sTradeData->connectionSpriteId1].data[1] = 1; - gSprites[sTradeData->connectionSpriteId2].data[1] = 1; - sTradeData->state++; - CreateTask(Task_NarrowWindowForCrossing_Wireless, 5); + gSprites[sTradeAnim->connectionSpriteId1].data[1] = 1; + gSprites[sTradeAnim->connectionSpriteId2].data[1] = 1; + sTradeAnim->state++; + CreateTask(Task_OpenCenterWhiteColumn, 5); } break; - case TS_STATE_CROSSING_BLEND_WHITE_1: + case STATE_CROSSING_BLEND_WHITE_1: BlendPalettes(0x8, 16, RGB_WHITEALPHA); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_CROSSING_BLEND_WHITE_2: + case STATE_CROSSING_BLEND_WHITE_2: BlendPalettes(0x8, 16, RGB_WHITEALPHA); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_CROSSING_BLEND_WHITE_3: + case STATE_CROSSING_BLEND_WHITE_3: BlendPalettes(0x8, 16, RGB_WHITEALPHA); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_CROSSING_CREATE_MON_PICS: - if (!IsMonSpriteNotFlipped(sTradeData->monSpecies[TRADE_PLAYER])) + case STATE_CROSSING_CREATE_MON_PICS: + if (!IsMonSpriteNotFlipped(sTradeAnim->monSpecies[TRADE_PLAYER])) { - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].affineAnims = sAffineAnims_CrossingMonPics; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; - CalcCenterToCornerVec(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE); - StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], 0); + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].affineAnims = sAffineAnims_CrossingMonPics; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; + CalcCenterToCornerVec(&gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]], SPRITE_SHAPE(64x64), SPRITE_SIZE(64x64), ST_OAM_AFFINE_DOUBLE); + StartSpriteAffineAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]], 0); } else { - StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]], 0); + StartSpriteAffineAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]], 0); } - StartSpriteAffineAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]], 0); - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].x = 40; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x = 200; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y = 192; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y = -32; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].invisible = FALSE; - sTradeData->state++; + StartSpriteAffineAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]], 0); + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x = 40; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x = 200; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y = 192; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y = -32; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].invisible = FALSE; + sTradeAnim->state++; break; - case TS_STATE_CROSSING_MON_PICS_MOVE: - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 -= 3; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y2 += 3; - if (gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 < -DISPLAY_HEIGHT - && gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 >= -DISPLAY_HEIGHT - 3) + case STATE_CROSSING_MON_PICS_MOVE: + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 -= 3; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y2 += 3; + if (gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 < -DISPLAY_HEIGHT + && gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 >= -DISPLAY_HEIGHT - 3) { PlaySE(SE_WARP_IN); } - if (gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].y2 < -222) + if (gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 < -222) { - gSprites[sTradeData->connectionSpriteId1].data[1] = 0; - gSprites[sTradeData->connectionSpriteId2].data[1] = 0; - sTradeData->state++; - gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]].invisible = TRUE; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].invisible = TRUE; - CreateTask(Task_NarrowWindowForCrossing_Cable, 5); + gSprites[sTradeAnim->connectionSpriteId1].data[1] = 0; + gSprites[sTradeAnim->connectionSpriteId2].data[1] = 0; + sTradeAnim->state++; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].invisible = TRUE; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].invisible = TRUE; + CreateTask(Task_CloseCenterWhiteColumn, 5); } break; - case TS_STATE_CROSSING_LINK_MONS_EXIT: - gSprites[sTradeData->connectionSpriteId1].y2 -= 3; - gSprites[sTradeData->connectionSpriteId2].y2 += 3; - if (gSprites[sTradeData->connectionSpriteId1].y2 <= -222) + case STATE_CROSSING_LINK_MONS_EXIT: + gSprites[sTradeAnim->connectionSpriteId1].y2 -= 3; + gSprites[sTradeAnim->connectionSpriteId2].y2 += 3; + if (gSprites[sTradeAnim->connectionSpriteId1].y2 <= -222) { BeginNormalPaletteFade(PALETTES_ALL, -1, 0, 16, RGB_BLACK); - sTradeData->state++; - DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); + sTradeAnim->state++; + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); } break; - case TS_STATE_CREATE_LINK_MON_ARRIVING: + case STATE_CREATE_LINK_MON_ARRIVING: if (!gPaletteFade.active) { - sTradeData->state++; + sTradeAnim->state++; SetTradeSequenceBgGpuRegs(1); - sTradeData->bg1vofs = 166; + sTradeAnim->bg1vofs = 166; SetTradeSequenceBgGpuRegs(3); - sTradeData->bg2vofs = 412; - sTradeData->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 120, -20, 3); - gSprites[sTradeData->connectionSpriteId1].callback = SpriteCB_LinkMonGlowWireless; - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 120, -20, 0); - StartSpriteAnim(&gSprites[sTradeData->connectionSpriteId2], ANIM_LINKMON_SMALL); + sTradeAnim->bg2vofs = 412; + sTradeAnim->connectionSpriteId1 = CreateSprite(&sSpriteTemplate_LinkMonGlow, 120, -20, 3); + gSprites[sTradeAnim->connectionSpriteId1].callback = SpriteCB_LinkMonGlowWireless; + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_LinkMonShadow, 120, -20, 0); + StartSpriteAnim(&gSprites[sTradeAnim->connectionSpriteId2], ANIM_LINKMON_SMALL); } break; - case TS_STATE_FADE_OUT_TO_GBA_RECV: + case STATE_FADE_OUT_TO_GBA_RECV: BeginNormalPaletteFade(PALETTES_ALL, -1, 16, 0, RGB_BLACK); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_OUT_TO_GBA_RECV: + case STATE_WAIT_FADE_OUT_TO_GBA_RECV: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_OBJ_ON); if (!gPaletteFade.active) - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_LINK_MON_TRAVEL_IN: - gSprites[sTradeData->connectionSpriteId1].y2 += 4; - gSprites[sTradeData->connectionSpriteId2].y2 += 4; - if (gSprites[sTradeData->connectionSpriteId1].y2 + gSprites[sTradeData->connectionSpriteId1].y == 64) + case STATE_LINK_MON_TRAVEL_IN: + gSprites[sTradeAnim->connectionSpriteId1].y2 += 4; + gSprites[sTradeAnim->connectionSpriteId2].y2 += 4; + if (gSprites[sTradeAnim->connectionSpriteId1].y2 + gSprites[sTradeAnim->connectionSpriteId1].y == 64) { - sTradeData->state = TS_STATE_PAN_TO_GBA_WIRELESS; - sTradeData->timer = 0; + sTradeAnim->state = STATE_PAN_TO_GBA_WIRELESS; + sTradeAnim->timer = 0; } break; - case TS_STATE_PAN_TO_GBA_WIRELESS: + case STATE_PAN_TO_GBA_WIRELESS: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); - sTradeData->bg1vofs += 3; - sTradeData->bg2vofs += 3; - if (++sTradeData->timer == 10) + sTradeAnim->bg1vofs += 3; + sTradeAnim->bg2vofs += 3; + if (++sTradeAnim->timer == 10) { u8 taskId = CreateTask(Task_AnimateWirelessSignal, 5); - gTasks[taskId].data[2] = TRUE; + gTasks[taskId].tSignalComingBack = TRUE; } - if (sTradeData->bg1vofs > 316) + if (sTradeAnim->bg1vofs > 316) { - sTradeData->bg1vofs = 316; - sTradeData->state++; + sTradeAnim->bg1vofs = 316; + sTradeAnim->state++; } break; - case TS_STATE_DESTROY_LINK_MON_WIRELESS: - DestroySprite(&gSprites[sTradeData->connectionSpriteId1]); - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); - sTradeData->state++; - sTradeData->timer = 0; + case STATE_DESTROY_LINK_MON_WIRELESS: + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId1]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); + sTradeAnim->state++; + sTradeAnim->timer = 0; break; - case TS_STATE_WAIT_WIRELESS_SIGNAL_RECV: + case STATE_WAIT_WIRELESS_SIGNAL_RECV: if (!FuncIsActiveTask(Task_AnimateWirelessSignal)) { - sTradeData->state = TS_STATE_LINK_MON_ARRIVED_DELAY; - sTradeData->timer = 0; + sTradeAnim->state = STATE_LINK_MON_ARRIVED_DELAY; + sTradeAnim->timer = 0; } break; - case TS_STATE_LINK_MON_ARRIVED_DELAY: - if (++sTradeData->timer == 10) - sTradeData->state++; + case STATE_LINK_MON_ARRIVED_DELAY: + if (++sTradeAnim->timer == 10) + sTradeAnim->state++; break; - case TS_STATE_MOVE_GBA_TO_CENTER: - if (++sTradeData->bg1vofs > 348) + case STATE_MOVE_GBA_TO_CENTER: + if (++sTradeAnim->bg1vofs > 348) { - sTradeData->bg1vofs = 348; - sTradeData->state++; + sTradeAnim->bg1vofs = 348; + sTradeAnim->state++; } break; - case TS_STATE_GBA_FLASH_RECV: - sTradeData->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Long, 120, 80, 0); - sTradeData->state = TS_STATE_GBA_STOP_FLASH_RECV; + case STATE_GBA_FLASH_RECV: + sTradeAnim->connectionSpriteId2 = CreateSprite(&sSpriteTemplate_GbaScreenFlash_Long, 120, 80, 0); + sTradeAnim->state = STATE_GBA_STOP_FLASH_RECV; break; - case TS_STATE_GBA_STOP_FLASH_RECV: - if (gSprites[sTradeData->connectionSpriteId2].animEnded) + case STATE_GBA_STOP_FLASH_RECV: + if (gSprites[sTradeAnim->connectionSpriteId2].animEnded) { - DestroySprite(&gSprites[sTradeData->connectionSpriteId2]); + DestroySprite(&gSprites[sTradeAnim->connectionSpriteId2]); SetTradeSequenceBgGpuRegs(6); - sTradeData->state++; + sTradeAnim->state++; PlaySE(SE_M_SAND_ATTACK); } break; - case TS_STATE_GBA_ZOOM_IN: - if (sTradeData->gbaScale < 0x400) + case STATE_GBA_ZOOM_IN: + if (sTradeAnim->gbaScale < 0x400) { - sTradeData->gbaScale += 0x34; + sTradeAnim->gbaScale += 0x34; } else { - sTradeData->gbaScale = 0x400; - sTradeData->state++; + sTradeAnim->gbaScale = 0x400; + sTradeAnim->state++; } - sTradeData->sXY = 0x8000 / sTradeData->gbaScale; + sTradeAnim->sXY = 0x8000 / sTradeAnim->gbaScale; break; - case TS_STATE_FADE_OUT_TO_NEW_MON: + case STATE_FADE_OUT_TO_NEW_MON: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeData->state = TS_STATE_WAIT_FADE_OUT_TO_NEW_MON; + sTradeAnim->state = STATE_WAIT_FADE_OUT_TO_NEW_MON; break; - case TS_STATE_WAIT_FADE_OUT_TO_NEW_MON: + case STATE_WAIT_FADE_OUT_TO_NEW_MON: if (!gPaletteFade.active) { SetTradeSequenceBgGpuRegs(5); SetTradeSequenceBgGpuRegs(7); gPaletteFade.bufferTransferDisabled = TRUE; - sTradeData->state++; + sTradeAnim->state++; } break; - case TS_STATE_FADE_IN_TO_NEW_MON: + case STATE_FADE_IN_TO_NEW_MON: gPaletteFade.bufferTransferDisabled = FALSE; BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_IN_TO_NEW_MON: + case STATE_WAIT_FADE_IN_TO_NEW_MON: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON); if (!gPaletteFade.active) - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_POKEBALL_ARRIVE: - sTradeData->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, -8, 0); - gSprites[sTradeData->bouncingPokeballSpriteId].data[3] = 74; - gSprites[sTradeData->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballArrive; - StartSpriteAnim(&gSprites[sTradeData->bouncingPokeballSpriteId], 1); - StartSpriteAffineAnim(&gSprites[sTradeData->bouncingPokeballSpriteId], 2); - BlendPalettes(1 << (16 + gSprites[sTradeData->bouncingPokeballSpriteId].oam.paletteNum), 16, RGB_WHITEALPHA); - sTradeData->state++; - sTradeData->timer = 0; + case STATE_POKEBALL_ARRIVE: + sTradeAnim->bouncingPokeballSpriteId = CreateSprite(&sSpriteTemplate_Pokeball, 120, -8, 0); + gSprites[sTradeAnim->bouncingPokeballSpriteId].data[3] = 74; + gSprites[sTradeAnim->bouncingPokeballSpriteId].callback = SpriteCB_BouncingPokeballArrive; + StartSpriteAnim(&gSprites[sTradeAnim->bouncingPokeballSpriteId], 1); + StartSpriteAffineAnim(&gSprites[sTradeAnim->bouncingPokeballSpriteId], 2); + BlendPalettes(1 << (16 + gSprites[sTradeAnim->bouncingPokeballSpriteId].oam.paletteNum), 16, RGB_WHITEALPHA); + sTradeAnim->state++; + sTradeAnim->timer = 0; break; - case TS_STATE_FADE_POKEBALL_TO_NORMAL: - BeginNormalPaletteFade(1 << (16 + gSprites[sTradeData->bouncingPokeballSpriteId].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); - sTradeData->state++; + case STATE_FADE_POKEBALL_TO_NORMAL: + BeginNormalPaletteFade(1 << (16 + gSprites[sTradeAnim->bouncingPokeballSpriteId].oam.paletteNum), 1, 16, 0, RGB_WHITEALPHA); + sTradeAnim->state++; break; - case TS_STATE_POKEBALL_ARRIVE_WAIT: - if (gSprites[sTradeData->bouncingPokeballSpriteId].callback == SpriteCallbackDummy) + case STATE_POKEBALL_ARRIVE_WAIT: + if (gSprites[sTradeAnim->bouncingPokeballSpriteId].callback == SpriteCallbackDummy) { - HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], + HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeAnim->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], - sTradeData->monSpecies[TRADE_PARTNER], - sTradeData->monPersonalities[TRADE_PARTNER]); - sTradeData->state++; + sTradeAnim->monSpecies[TRADE_PARTNER], + sTradeAnim->monPersonalities[TRADE_PARTNER]); + sTradeAnim->state++; } break; - case TS_STATE_SHOW_NEW_MON: - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x = 120; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y = gMonFrontPicCoords[sTradeData->monSpecies[TRADE_PARTNER]].y_offset + 60; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].x2 = 0; - gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].y2 = 0; - StartSpriteAnim(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]], 0); - CreatePokeballSpriteToReleaseMon(sTradeData->monSpriteIds[TRADE_PARTNER], gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]].oam.paletteNum, 120, 84, 2, 1, 20, PALETTES_BG | (0xF << 16), sTradeData->monSpecies[TRADE_PARTNER]); - FreeSpriteOamMatrix(&gSprites[sTradeData->bouncingPokeballSpriteId]); - DestroySprite(&gSprites[sTradeData->bouncingPokeballSpriteId]); - sTradeData->state++; + case STATE_SHOW_NEW_MON: + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x = 120; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y = gMonFrontPicCoords[sTradeAnim->monSpecies[TRADE_PARTNER]].y_offset + 60; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x2 = 0; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y2 = 0; + StartSpriteAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]], 0); + CreatePokeballSpriteToReleaseMon(sTradeAnim->monSpriteIds[TRADE_PARTNER], gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].oam.paletteNum, 120, 84, 2, 1, 20, PALETTES_BG | (0xF << 16), sTradeAnim->monSpecies[TRADE_PARTNER]); + FreeSpriteOamMatrix(&gSprites[sTradeAnim->bouncingPokeballSpriteId]); + DestroySprite(&gSprites[sTradeAnim->bouncingPokeballSpriteId]); + sTradeAnim->state++; break; - case TS_STATE_NEW_MON_MSG: + case STATE_NEW_MON_MSG: SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | @@ -4324,76 +4327,70 @@ static bool8 AnimateTradeSequenceWireless(void) DISPCNT_OBJ_ON); StringExpandPlaceholders(gStringVar4, gText_XSentOverY); DrawTextOnTradeWindow(0, gStringVar4, 0); - sTradeData->state = TS_STATE_DELAY_FOR_MON_ANIM; - sTradeData->timer = 0; + sTradeAnim->state = STATE_DELAY_FOR_MON_ANIM; + sTradeAnim->timer = 0; break; - case TS_STATE_DELAY_FOR_MON_ANIM: - if (++sTradeData->timer > 60) + case STATE_DELAY_FOR_MON_ANIM: + if (++sTradeAnim->timer > 60) { - sTradeData->state = TS_STATE_WAIT_FOR_MON_CRY; - sTradeData->timer = 0; + sTradeAnim->state = STATE_WAIT_FOR_MON_CRY; + sTradeAnim->timer = 0; } break; - case TS_STATE_WAIT_FOR_MON_CRY: + case STATE_WAIT_FOR_MON_CRY: if (IsCryFinished()) - sTradeData->state = TS_STATE_TAKE_CARE_OF_MON; + sTradeAnim->state = STATE_TAKE_CARE_OF_MON; break; - case TS_STATE_TAKE_CARE_OF_MON: - if (++sTradeData->timer == 10) + case STATE_TAKE_CARE_OF_MON: + if (++sTradeAnim->timer == 10) PlayFanfare(MUS_EVOLVED); - if (sTradeData->timer == 250) + if (sTradeAnim->timer == 250) { - sTradeData->state++; + sTradeAnim->state++; StringExpandPlaceholders(gStringVar4, gText_TakeGoodCareOfX); DrawTextOnTradeWindow(0, gStringVar4, 0); - sTradeData->timer = 0; + sTradeAnim->timer = 0; } break; - case TS_STATE_AFTER_NEW_MON_DELAY: - if (++sTradeData->timer == 60) - sTradeData->state++; + case STATE_AFTER_NEW_MON_DELAY: + if (++sTradeAnim->timer == 60) + sTradeAnim->state++; break; - case TS_STATE_CHECK_RIBBONS: + case STATE_CHECK_RIBBONS: CheckPartnersMonForRibbons(); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_END_LINK_TRADE: - if (sTradeData->isLinkTrade) - { + case STATE_END_LINK_TRADE: + if (sTradeAnim->isLinkTrade) return TRUE; - } else if (JOY_NEW(A_BUTTON)) - { - sTradeData->state++; - } + sTradeAnim->state++; break; - case TS_STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution + case STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution TradeMons(gSpecialVar_0x8005, 0); - gCB2_AfterEvolution = CB2_UpdateInGameTrade; + gCB2_AfterEvolution = CB2_InGameTrade; evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE); if (evoTarget != SPECIES_NONE) - { - TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); - } - sTradeData->state++; + TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeAnim->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); + sTradeAnim->state++; break; - case TS_STATE_FADE_OUT_END: + case STATE_FADE_OUT_END: BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - sTradeData->state++; + sTradeAnim->state++; break; - case TS_STATE_WAIT_FADE_OUT_END: + case STATE_WAIT_FADE_OUT_END: if (!gPaletteFade.active) { - PlayNewMapMusic(sTradeData->cachedMapMusic); - if (sTradeData) + PlayNewMapMusic(sTradeAnim->cachedMapMusic); + if (sTradeAnim) { FreeAllWindowBuffers(); Free(GetBgTilemapBuffer(3)); Free(GetBgTilemapBuffer(1)); Free(GetBgTilemapBuffer(0)); FreeMonSpritesGfx(); - FREE_AND_SET_NULL(sTradeData); + FREE_AND_SET_NULL(sTradeAnim); } SetMainCallback2(CB2_ReturnToField); BufferInGameTradeMonName(); @@ -4404,7 +4401,7 @@ static bool8 AnimateTradeSequenceWireless(void) } // Try to evolve a Pokémon received in a link trade -// In-game trades resolve evolution during the trade sequence, in TS_STATE_TRY_EVOLUTION +// In-game trades resolve evolution during the trade sequence, in STATE_TRY_EVOLUTION static void CB2_TryLinkTradeEvolution(void) { u16 evoTarget; @@ -4418,7 +4415,7 @@ static void CB2_TryLinkTradeEvolution(void) gCB2_AfterEvolution = CB2_SaveAndEndTrade; evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE); if (evoTarget != SPECIES_NONE) - TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); + TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeAnim->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); else if (IsWirelessTrade()) SetMainCallback2(CB2_SaveAndEndWirelessTrade); else @@ -4433,25 +4430,25 @@ static void CB2_TryLinkTradeEvolution(void) UpdatePaletteFade(); } -static void UpdateTradeFinishFlags(void) +static void HandleLinkDataReceive(void) { - u8 blockReceivedStatus; + u8 recvStatus; TradeGetMultiplayerId(); // no effect call, ret val ignored - blockReceivedStatus = GetBlockReceivedStatus(); - if (blockReceivedStatus & 0x01) + recvStatus = GetBlockReceivedStatus(); + if (recvStatus & (1 << 0)) { if (gBlockRecvBuffer[0][0] == LINKCMD_CONFIRM_FINISH_TRADE) SetMainCallback2(CB2_TryLinkTradeEvolution); if (gBlockRecvBuffer[0][0] == LINKCMD_READY_FINISH_TRADE) - sTradeData->playerLinkFlagFinishTrade = STATUS_READY; + sTradeAnim->playerFinishStatus = STATUS_READY; ResetBlockReceivedFlag(0); } - if (blockReceivedStatus & 0x02) + if (recvStatus & (1 << 1)) { if (gBlockRecvBuffer[1][0] == LINKCMD_READY_FINISH_TRADE) - sTradeData->partnerLinkFlagFinishTrade = STATUS_READY; + sTradeAnim->partnerFinishStatus = STATUS_READY; ResetBlockReceivedFlag(1); } @@ -4502,7 +4499,7 @@ static void SpriteCB_BouncingPokeballDepartEnd(struct Sprite *sprite) if (++ sprite->data[0] == 23) { DestroySprite(sprite); - sTradeData->state = TS_STATE_FADE_OUT_TO_GBA_SEND; // Resume the master trade animation + sTradeAnim->state = STATE_FADE_OUT_TO_GBA_SEND; // Resume the master trade animation } } } @@ -4549,14 +4546,14 @@ static void BufferInGameTradeMonName(void) StringCopy(gStringVar2, gSpeciesNames[inGameTrade->species]); } -static void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade) +static void CreateInGameTradePokemonInternal(u8 whichPlayerMon, u8 whichInGameTrade) { const struct InGameTrade *inGameTrade = &sIngameTrades[whichInGameTrade]; u8 level = GetMonData(&gPlayerParty[whichPlayerMon], MON_DATA_LEVEL); struct Mail mail; u8 metLocation = METLOC_IN_GAME_TRADE; - u8 isMail; + u8 mailNum; struct Pokemon *pokemon = &gEnemyParty[0]; CreateMon(pokemon, inGameTrade->species, level, USE_RANDOM_IVS, TRUE, inGameTrade->personality, OT_ID_PRESET, inGameTrade->otId); @@ -4579,14 +4576,14 @@ static void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade) SetMonData(pokemon, MON_DATA_SHEEN, &inGameTrade->sheen); SetMonData(pokemon, MON_DATA_MET_LOCATION, &metLocation); - isMail = FALSE; + mailNum = 0; if (inGameTrade->heldItem != ITEM_NONE) { if (ItemIsMail(inGameTrade->heldItem)) { - SetInGameTradeMail(&mail, inGameTrade); + GetInGameTradeMail(&mail, inGameTrade); gTradeMail[0] = mail; - SetMonData(pokemon, MON_DATA_MAIL, &isMail); + SetMonData(pokemon, MON_DATA_MAIL, &mailNum); SetMonData(pokemon, MON_DATA_HELD_ITEM, &inGameTrade->heldItem); } else @@ -4597,14 +4594,12 @@ static void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade) CalculateMonStats(&gEnemyParty[0]); } -static void SetInGameTradeMail(struct Mail *mail, const struct InGameTrade *trade) +static void GetInGameTradeMail(struct Mail *mail, const struct InGameTrade *trade) { s32 i; for (i = 0; i < MAIL_WORDS_COUNT; i++) - { mail->words[i] = sIngameTradeMail[trade->mailNum][i]; - } StringCopy(mail->playerName, trade->otName); PadNameString(mail->playerName, CHAR_SPACE); @@ -4626,25 +4621,25 @@ u16 GetTradeSpecies(void) void CreateInGameTradePokemon(void) { - _CreateInGameTradePokemon(gSpecialVar_0x8005, gSpecialVar_0x8004); + CreateInGameTradePokemonInternal(gSpecialVar_0x8005, gSpecialVar_0x8004); } static void CB2_UpdateLinkTrade(void) { - if (AnimateTradeSequence() == TRUE) + if (DoTradeAnim() == TRUE) { - DestroySprite(&gSprites[sTradeData->monSpriteIds[TRADE_PLAYER]]); - FreeSpriteOamMatrix(&gSprites[sTradeData->monSpriteIds[TRADE_PARTNER]]); + DestroySprite(&gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]]); + FreeSpriteOamMatrix(&gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]]); TradeMons(gSelectedTradeMonPositions[TRADE_PLAYER], gSelectedTradeMonPositions[TRADE_PARTNER] % PARTY_SIZE); if (!IsWirelessTrade()) { - sTradeData->linkData[0] = LINKCMD_READY_FINISH_TRADE; - sTradeData->sendTradeFinishState = 1; + sTradeAnim->linkData[0] = LINKCMD_READY_FINISH_TRADE; + sTradeAnim->scheduleLinkTransfer = 1; } - SetMainCallback2(CB2_TryFinishTrade); + SetMainCallback2(CB2_WaitTradeComplete); } - TrySendTradeFinishData(); - UpdateTradeFinishFlags(); + HandleLinkDataSend(); + HandleLinkDataReceive(); RunTasks(); RunTextPrinters(); AnimateSprites(); @@ -4652,7 +4647,7 @@ static void CB2_UpdateLinkTrade(void) UpdatePaletteFade(); } -static void CB2_TryFinishTrade(void) +static void CB2_WaitTradeComplete(void) { u8 mpId = TradeGetMultiplayerId(); if (IsWirelessTrade()) @@ -4661,15 +4656,15 @@ static void CB2_TryFinishTrade(void) } else { - UpdateTradeFinishFlags(); + HandleLinkDataReceive(); if (mpId == 0 - && sTradeData->playerLinkFlagFinishTrade == STATUS_READY - && sTradeData->partnerLinkFlagFinishTrade == STATUS_READY) + && sTradeAnim->playerFinishStatus == STATUS_READY + && sTradeAnim->partnerFinishStatus == STATUS_READY) { - sTradeData->linkData[0] = LINKCMD_CONFIRM_FINISH_TRADE; - SendBlock(BitmaskAllOtherLinkPlayers(), sTradeData->linkData, sizeof(sTradeData->linkData)); - sTradeData->playerLinkFlagFinishTrade = STATUS_CANCEL; - sTradeData->partnerLinkFlagFinishTrade = STATUS_CANCEL; + sTradeAnim->linkData[0] = LINKCMD_CONFIRM_FINISH_TRADE; + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeAnim->linkData, sizeof(sTradeAnim->linkData)); + sTradeAnim->playerFinishStatus = STATUS_CANCEL; + sTradeAnim->partnerFinishStatus = STATUS_CANCEL; } } RunTasks(); @@ -4690,24 +4685,20 @@ static void CB2_SaveAndEndTrade(void) case 1: SetTradeLinkStandbyCallback(0); gMain.state = 100; - sTradeData->timer = 0; + sTradeAnim->timer = 0; break; case 100: - if (++sTradeData->timer > 180) + if (++sTradeAnim->timer > 180) { gMain.state = 101; - sTradeData->timer = 0; + sTradeAnim->timer = 0; } if (_IsLinkTaskFinished()) - { gMain.state = 2; - } break; case 101: if (_IsLinkTaskFinished()) - { gMain.state = 2; - } break; case 2: gMain.state = 50; @@ -4723,10 +4714,10 @@ static void CB2_SaveAndEndTrade(void) SetContinueGameWarpStatusToDynamicWarp(); LinkFullSave_Init(); gMain.state++; - sTradeData->timer = 0; + sTradeAnim->timer = 0; break; case 51: - if (++sTradeData->timer == 5) + if (++sTradeAnim->timer == 5) gMain.state++; break; case 52: @@ -4738,38 +4729,34 @@ static void CB2_SaveAndEndTrade(void) else { // Save isn't finished, delay again - sTradeData->timer = 0; + sTradeAnim->timer = 0; gMain.state = 51; } break; case 4: LinkFullSave_ReplaceLastSector(); gMain.state = 40; - sTradeData->timer = 0; + sTradeAnim->timer = 0; break; case 40: - if (++sTradeData->timer > 50) + if (++sTradeAnim->timer > 50) { if (GetMultiplayerId() == 0) - { - sTradeData->timer = Random() % 30; - } + sTradeAnim->timer = Random() % 30; else - { - sTradeData->timer = 0; - } + sTradeAnim->timer = 0; gMain.state = 41; } break; case 41: - if (sTradeData->timer == 0) + if (sTradeAnim->timer == 0) { SetTradeLinkStandbyCallback(1); gMain.state = 42; } else { - sTradeData->timer--; + sTradeAnim->timer--; } break; case 42: @@ -4780,7 +4767,7 @@ static void CB2_SaveAndEndTrade(void) } break; case 5: - if (++sTradeData->timer > 60) + if (++sTradeAnim->timer > 60) { gMain.state++; SetTradeLinkStandbyCallback(2); @@ -4804,13 +4791,9 @@ static void CB2_SaveAndEndTrade(void) if (IsBGMStopped() == TRUE) { if (gWirelessCommType && gMain.savedCallback == CB2_StartCreateTradeMenu) - { SetTradeLinkStandbyCallback(3); - } else - { SetCloseLinkCallback(); - } gMain.state++; } break; @@ -4820,13 +4803,13 @@ static void CB2_SaveAndEndTrade(void) if (_IsLinkTaskFinished()) { gSoftResetDisabled = FALSE; - SetMainCallback2(CB2_FreeTradeData); + SetMainCallback2(CB2_FreeTradeAnim); } } else if (!gReceivedRemoteLinkPlayers) { gSoftResetDisabled = FALSE; - SetMainCallback2(CB2_FreeTradeData); + SetMainCallback2(CB2_FreeTradeAnim); } break; } @@ -4839,7 +4822,7 @@ static void CB2_SaveAndEndTrade(void) UpdatePaletteFade(); } -static void CB2_FreeTradeData(void) +static void CB2_FreeTradeAnim(void) { if (!gPaletteFade.active) { @@ -4848,7 +4831,7 @@ static void CB2_FreeTradeData(void) Free(GetBgTilemapBuffer(1)); Free(GetBgTilemapBuffer(0)); FreeMonSpritesGfx(); - FREE_AND_SET_NULL(sTradeData); + FREE_AND_SET_NULL(sTradeAnim); if (gWirelessCommType) DestroyWirelessStatusIndicatorSprite(); SetMainCallback2(gMain.savedCallback); @@ -4870,7 +4853,7 @@ static void Task_InGameTrade(u8 taskId) { if (!gPaletteFade.active) { - SetMainCallback2(CB2_InGameTrade); + SetMainCallback2(CB2_InitInGameTrade); gFieldCallback = FieldCB_ContinueScriptHandleMusic; DestroyTask(taskId); } @@ -4880,40 +4863,35 @@ static void CheckPartnersMonForRibbons(void) { u8 i; u8 numRibbons = 0; - for (i = 0; i < (MON_DATA_UNUSED_RIBBONS - MON_DATA_CHAMPION_RIBBON); i ++) - { + for (i = 0; i < (MON_DATA_UNUSED_RIBBONS - MON_DATA_CHAMPION_RIBBON); i++) numRibbons += GetMonData(&gEnemyParty[gSelectedTradeMonPositions[TRADE_PARTNER] % PARTY_SIZE], MON_DATA_CHAMPION_RIBBON + i); - } + if (numRibbons != 0) FlagSet(FLAG_SYS_RIBBON_GET); } void LoadTradeAnimGfx(void) { - InitTradeBgInternal(); + TradeAnimInit_LoadGfx(); } void DrawTextOnTradeWindow(u8 windowId, const u8 *str, u8 speed) { FillWindowPixelBuffer(windowId, PIXEL_FILL(15)); - sTradeData->textColors[0] = TEXT_DYNAMIC_COLOR_6; - sTradeData->textColors[1] = TEXT_COLOR_WHITE; - sTradeData->textColors[2] = TEXT_COLOR_GREEN; - AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, 2, 0, 0, sTradeData->textColors, speed, str); + sTradeAnim->textColors[0] = TEXT_DYNAMIC_COLOR_6; + sTradeAnim->textColors[1] = TEXT_COLOR_WHITE; + sTradeAnim->textColors[2] = TEXT_COLOR_GREEN; + AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, 2, 0, 0, sTradeAnim->textColors, speed, str); CopyWindowToVram(windowId, COPYWIN_FULL); } -#define idx data[0] -#define counter data[1] -#define signalComingBack data[2] - static void Task_AnimateWirelessSignal(u8 taskId) { s16 *data = gTasks[taskId].data; - u16 paletteIdx = sWirelessSignalTiming[idx][0] * 16; + u16 paletteIdx = sWirelessSignalAnimParams[tIdx][0] * 16; - if (!signalComingBack) + if (!tSignalComingBack) { if (paletteIdx == 256) LoadPalette(sWirelessSignalNone_Pal, 0x30, 32); @@ -4928,37 +4906,37 @@ static void Task_AnimateWirelessSignal(u8 taskId) LoadPalette(&sWirelessSignalRecv_Pal[paletteIdx], 0x30, 32); } - if (sWirelessSignalTiming[idx][0] == 0 && counter == 0) + if (sWirelessSignalAnimParams[tIdx][0] == 0 && tCounter == 0) PlaySE(SE_M_HEAL_BELL); - if (counter == sWirelessSignalTiming[idx][1]) + if (tCounter == sWirelessSignalAnimParams[tIdx][1]) { - idx++; - counter = 0; - if (sWirelessSignalTiming[idx][1] == 0xFF) + tIdx++; + tCounter = 0; + if (sWirelessSignalAnimParams[tIdx][1] == 0xFF) { DestroyTask(taskId); } } else { - counter++; + tCounter++; } } -#undef idx -#undef counter -#undef signalComingBack +#undef tIdx +#undef tCounter +#undef tSignalComingBack -static void Task_NarrowWindowForCrossing_Wireless(u8 taskId) +static void Task_OpenCenterWhiteColumn(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[0] == 0) { - sTradeData->wirelessWinLeft = sTradeData->wirelessWinRight = DISPLAY_WIDTH / 2; - sTradeData->wirelessWinTop = 0; - sTradeData->wirelessWinBottom = DISPLAY_HEIGHT; + sTradeAnim->wirelessWinLeft = sTradeAnim->wirelessWinRight = DISPLAY_WIDTH / 2; + sTradeAnim->wirelessWinTop = 0; + sTradeAnim->wirelessWinBottom = DISPLAY_HEIGHT; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_OBJ); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | @@ -4966,41 +4944,41 @@ static void Task_NarrowWindowForCrossing_Wireless(u8 taskId) WININ_WIN0_OBJ); } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(sTradeData->wirelessWinLeft, sTradeData->wirelessWinRight)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(sTradeData->wirelessWinTop, sTradeData->wirelessWinBottom)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(sTradeAnim->wirelessWinLeft, sTradeAnim->wirelessWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(sTradeAnim->wirelessWinTop, sTradeAnim->wirelessWinBottom)); data[0]++; - sTradeData->wirelessWinLeft -= 5; - sTradeData->wirelessWinRight += 5; + sTradeAnim->wirelessWinLeft -= 5; + sTradeAnim->wirelessWinRight += 5; - if (sTradeData->wirelessWinLeft < 80) + if (sTradeAnim->wirelessWinLeft < 80) DestroyTask(taskId); } -static void Task_NarrowWindowForCrossing_Cable(u8 taskId) +static void Task_CloseCenterWhiteColumn(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[0] == 0) { - sTradeData->wirelessWinLeft = 80; - sTradeData->wirelessWinRight = DISPLAY_WIDTH - 80; + sTradeAnim->wirelessWinLeft = 80; + sTradeAnim->wirelessWinRight = DISPLAY_WIDTH - 80; SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_OBJ); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_OBJ); } - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(sTradeData->wirelessWinLeft, sTradeData->wirelessWinRight)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(sTradeData->wirelessWinTop, sTradeData->wirelessWinBottom)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(sTradeAnim->wirelessWinLeft, sTradeAnim->wirelessWinRight)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(sTradeAnim->wirelessWinTop, sTradeAnim->wirelessWinBottom)); - if (sTradeData->wirelessWinLeft != DISPLAY_WIDTH / 2) + if (sTradeAnim->wirelessWinLeft != DISPLAY_WIDTH / 2) { data[0]++; - sTradeData->wirelessWinLeft += 5; - sTradeData->wirelessWinRight -= 5; + sTradeAnim->wirelessWinLeft += 5; + sTradeAnim->wirelessWinRight -= 5; - if (sTradeData->wirelessWinLeft > DISPLAY_WIDTH / 2 - 5) + if (sTradeAnim->wirelessWinLeft > DISPLAY_WIDTH / 2 - 5) BlendPalettes(0x8, 0, RGB_WHITEALPHA); } else @@ -5022,7 +5000,7 @@ static void CB2_SaveAndEndWirelessTrade(void) case 1: SetTradeLinkStandbyCallback(0); gMain.state = 2; - sTradeData->timer = 0; + sTradeAnim->timer = 0; break; case 2: if (_IsLinkTaskFinished()) @@ -5032,11 +5010,11 @@ static void CB2_SaveAndEndWirelessTrade(void) DrawTextOnTradeWindow(0, gStringVar4, 0); IncrementGameStat(GAME_STAT_POKEMON_TRADES); LinkFullSave_Init(); - sTradeData->timer = 0; + sTradeAnim->timer = 0; } break; case 3: - if (++sTradeData->timer == 5) + if (++sTradeAnim->timer == 5) gMain.state = 4; break; case 4: @@ -5046,34 +5024,34 @@ static void CB2_SaveAndEndWirelessTrade(void) } else { - sTradeData->timer = 0; + sTradeAnim->timer = 0; gMain.state = 3; } break; case 5: LinkFullSave_ReplaceLastSector(); gMain.state = 6; - sTradeData->timer = 0; + sTradeAnim->timer = 0; break; case 6: - if (++sTradeData->timer > 10) + if (++sTradeAnim->timer > 10) { if (GetMultiplayerId() == 0) - sTradeData->timer = Random() % 30; + sTradeAnim->timer = Random() % 30; else - sTradeData->timer = 0; + sTradeAnim->timer = 0; gMain.state = 7; } break; case 7: - if (sTradeData->timer == 0) + if (sTradeAnim->timer == 0) { SetTradeLinkStandbyCallback(1); gMain.state = 8; } else { - sTradeData->timer--; + sTradeAnim->timer--; } break; case 8: @@ -5084,7 +5062,7 @@ static void CB2_SaveAndEndWirelessTrade(void) } break; case 9: - if (++sTradeData->timer > 60) + if (++sTradeAnim->timer > 60) { gMain.state++; SetTradeLinkStandbyCallback(2); @@ -5109,7 +5087,7 @@ static void CB2_SaveAndEndWirelessTrade(void) if (_IsLinkTaskFinished()) { gSoftResetDisabled = FALSE; - SetMainCallback2(CB2_FreeTradeData); + SetMainCallback2(CB2_FreeTradeAnim); } break; } From 3f616215eae4ddd61780269a9397170e29312ec0 Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Sat, 28 Jan 2023 09:03:18 -0500 Subject: [PATCH 023/125] add silk trap anim --- data/battle_anim_scripts.s | 16 +++++++++++++++- include/constants/rgb.h | 3 +++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 06a24c592..8a4a98e43 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -14370,6 +14370,21 @@ Move_SCORCHING_SANDS:: Move_JUNGLE_HEALING:: goto Move_AROMATHERAPY + +Move_SILK_TRAP:: + loadspritegfx ANIM_TAG_PROTECT + loadspritegfx ANIM_TAG_SPIDER_WEB + splitbgprio ANIM_ATTACKER + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET + createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, FALSE + waitforvisualfinish + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_PROTECT, 0, 10, 10, RGB_LIME_GREEN + monbg ANIM_ATK_PARTNER + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 + createsprite gProtectSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 + waitforvisualfinish + clearmonbg ANIM_ATK_PARTNER + end Move_WICKED_BLOW:: Move_SURGING_STRIKES:: @@ -14406,7 +14421,6 @@ Move_SANDSEAR_STORM:: Move_LUNAR_BLESSING:: Move_TAKE_HEART:: Move_TERA_BLAST:: -Move_SILK_TRAP:: Move_AXE_KICK:: Move_LAST_RESPECTS:: Move_LUMINA_CRASH:: diff --git a/include/constants/rgb.h b/include/constants/rgb.h index 3e0bf6fe0..f73ab53b4 100644 --- a/include/constants/rgb.h +++ b/include/constants/rgb.h @@ -8,6 +8,7 @@ #define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) #define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r)) #define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) +#define RGB2GBA(r, g, b) (((r >> 3) & 31) | (((g >> 3) & 31) << 5) | (((b >> 3) & 31) << 10)) #define RGB_ALPHA (1 << 15) #define IS_ALPHA(color) ((color) & RGB_ALPHA) @@ -23,4 +24,6 @@ #define RGB_CYAN RGB(0, 31, 31) #define RGB_WHITEALPHA (RGB_WHITE | RGB_ALPHA) +#define RGB_LIME_GREEN RGB2GBA(222, 230, 49) + #endif // GUARD_RGB_H From 65d476d57539a7680dea2e51b462d4019ad4e8fe Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 1 Feb 2023 09:32:41 -0500 Subject: [PATCH 024/125] Remove some incorrect color constant usage --- src/battle_message.c | 371 ++++++++++++++++--------------------------- 1 file changed, 136 insertions(+), 235 deletions(-) diff --git a/src/battle_message.c b/src/battle_message.c index 9a0ba84b4..586fdd268 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1481,288 +1481,236 @@ static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 1, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_DYNAMIC_COLOR_6, - .shadowColor = TEXT_COLOR_GREEN, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, }, [B_WIN_ACTION_PROMPT] = { .fillValue = PIXEL_FILL(0xF), .fontId = FONT_NORMAL, .x = 1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_DYNAMIC_COLOR_6, - .shadowColor = TEXT_COLOR_GREEN, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, }, [B_WIN_ACTION_MENU] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_MOVE_NAME_1] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_MOVE_NAME_2] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_MOVE_NAME_3] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_MOVE_NAME_4] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_PP] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_3, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_2, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, }, [B_WIN_DUMMY] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_PP_REMAINING] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 2, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_3, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_2, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, }, [B_WIN_MOVE_TYPE] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_SWITCH_PROMPT] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_YESNO] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_LEVEL_UP_BOX] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_LEVEL_UP_BANNER] = { .fillValue = PIXEL_FILL(0), .fontId = FONT_NORMAL, .x = 32, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_COLOR_TRANSPARENT, - .shadowColor = TEXT_COLOR_DARK_GRAY, + .fgColor = 1, + .shadowColor = 2, }, [B_WIN_VS_PLAYER] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_VS_OPPONENT] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_VS_MULTI_PLAYER_1] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_VS_MULTI_PLAYER_2] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_VS_MULTI_PLAYER_3] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_VS_MULTI_PLAYER_4] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_VS_OUTCOME_DRAW] = { .fillValue = PIXEL_FILL(0), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_COLOR_TRANSPARENT, - .shadowColor = TEXT_COLOR_GREEN, + .fgColor = 1, + .shadowColor = 6, }, [B_WIN_VS_OUTCOME_LEFT] = { .fillValue = PIXEL_FILL(0), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_COLOR_TRANSPARENT, - .shadowColor = TEXT_COLOR_GREEN, + .fgColor = 1, + .shadowColor = 6, }, [B_WIN_VS_OUTCOME_RIGHT] = { .fillValue = PIXEL_FILL(0x0), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_COLOR_TRANSPARENT, - .shadowColor = TEXT_COLOR_GREEN, + .fgColor = 1, + .shadowColor = 6, }, }; @@ -1773,276 +1721,229 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 1, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_DYNAMIC_COLOR_6, - .shadowColor = TEXT_COLOR_GREEN, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, }, [B_WIN_ACTION_PROMPT] = { .fillValue = PIXEL_FILL(0xF), .fontId = FONT_NORMAL, .x = 1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_DYNAMIC_COLOR_6, - .shadowColor = TEXT_COLOR_GREEN, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, }, [B_WIN_ACTION_MENU] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_MOVE_NAME_1] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_MOVE_NAME_2] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_MOVE_NAME_3] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_MOVE_NAME_4] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_PP] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_3, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_2, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, }, [B_WIN_DUMMY] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_PP_REMAINING] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 2, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_3, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_2, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, }, [B_WIN_MOVE_TYPE] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_SWITCH_PROMPT] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NARROW, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_YESNO] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_LEVEL_UP_BOX] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [B_WIN_LEVEL_UP_BANNER] = { .fillValue = PIXEL_FILL(0), .fontId = FONT_NORMAL, .x = 32, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_COLOR_TRANSPARENT, - .shadowColor = TEXT_COLOR_DARK_GRAY, + .fgColor = 1, + .shadowColor = 2, }, [ARENA_WIN_PLAYER_NAME] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_COLOR_WHITE, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 1, + .bgColor = 14, + .shadowColor = 15, }, [ARENA_WIN_VS] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [ARENA_WIN_OPPONENT_NAME] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [ARENA_WIN_MIND] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [ARENA_WIN_SKILL] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [ARENA_WIN_BODY] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [ARENA_WIN_JUDGMENT_TITLE] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 0, - .fgColor = TEXT_DYNAMIC_COLOR_4, - .bgColor = TEXT_DYNAMIC_COLOR_5, - .shadowColor = TEXT_DYNAMIC_COLOR_6, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, }, [ARENA_WIN_JUDGMENT_TEXT] = { .fillValue = PIXEL_FILL(0x1), .fontId = FONT_NORMAL, .x = 0, .y = 1, - .letterSpacing = 0, - .lineSpacing = 0, .speed = 1, - .fgColor = TEXT_COLOR_DARK_GRAY, - .bgColor = TEXT_COLOR_WHITE, - .shadowColor = TEXT_COLOR_LIGHT_GRAY, + .fgColor = 2, + .bgColor = 1, + .shadowColor = 3, }, }; From 603d870ea0f4fb510a894bde4a1f999a021c9ac9 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 1 Feb 2023 09:36:18 -0500 Subject: [PATCH 025/125] Fix debug printing negative values --- src/mini_printf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mini_printf.c b/src/mini_printf.c index 8345a3935..d96a9379a 100644 --- a/src/mini_printf.c +++ b/src/mini_printf.c @@ -142,7 +142,7 @@ static s32 mini_strlen(const char *s) return len; } -static s32 mini_itoa(u32 value, u32 radix, s32 uppercase, bool32 unsig, char *buffer) +static s32 mini_itoa(s32 value, u32 radix, s32 uppercase, bool32 unsig, char *buffer) { char *pbuffer = buffer; s32 negative = 0; From 27a5e05f757271cdbf8c6eaf7c5111267ad9dca2 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 1 Feb 2023 10:20:18 -0500 Subject: [PATCH 026/125] Label data for screen effect tasks --- src/field_specials.c | 123 +++++++++++++++++++++++++++---------------- 1 file changed, 78 insertions(+), 45 deletions(-) diff --git a/src/field_specials.c b/src/field_specials.c index a2023196b..dd03358eb 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -94,8 +94,8 @@ static void LoadLinkPartnerObjectEventSpritePalette(u8, u8, u8); static void Task_PetalburgGymSlideOpenRoomDoors(u8); static void PetalburgGymSetDoorMetatiles(u8, u16); static void Task_PCTurnOnEffect(u8); -static void PCTurnOnEffect_0(struct Task *); -static void PCTurnOnEffect_1(s16, s8, s8); +static void PCTurnOnEffect(struct Task *); +static void PCTurnOnEffect_SetMetatile(s16, s8, s8); static void PCTurnOffEffect(void); static void Task_LotteryCornerComputerEffect(u8); static void LotteryCornerComputerEffect(struct Task *); @@ -966,34 +966,44 @@ void FieldShowRegionMap(void) SetMainCallback2(CB2_FieldShowRegionMap); } +// Task data for Task_PCTurnOnEffect and Task_LotteryCornerComputerEffect +#define tPaused data[0] // Never set +#define tTaskId data[1] +#define tFlickerCount data[2] +#define tTimer data[3] +#define tIsScreenOn data[4] + +// For this special, gSpecialVar_0x8004 is expected to be some PC_LOCATION_* value. void DoPCTurnOnEffect(void) { if (FuncIsActiveTask(Task_PCTurnOnEffect) != TRUE) { u8 taskId = CreateTask(Task_PCTurnOnEffect, 8); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = taskId; - gTasks[taskId].data[2] = 0; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + gTasks[taskId].tPaused = FALSE; + gTasks[taskId].tTaskId = taskId; + gTasks[taskId].tFlickerCount = 0; + gTasks[taskId].tTimer = 0; + gTasks[taskId].tIsScreenOn = FALSE; } } static void Task_PCTurnOnEffect(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (task->data[0] == 0) - PCTurnOnEffect_0(task); + if (!task->tPaused) + PCTurnOnEffect(task); } -static void PCTurnOnEffect_0(struct Task *task) +static void PCTurnOnEffect(struct Task *task) { u8 playerDirection; s8 dx = 0; s8 dy = 0; - if (task->data[3] == 6) + if (task->tTimer == 6) { - task->data[3] = 0; + task->tTimer = 0; + + // Get where the PC should be, depending on where the player is looking. playerDirection = GetPlayerFacingDirection(); switch (playerDirection) { @@ -1010,39 +1020,47 @@ static void PCTurnOnEffect_0(struct Task *task) dy = -1; break; } - PCTurnOnEffect_1(task->data[4], dx, dy); + + // Update map + PCTurnOnEffect_SetMetatile(task->tIsScreenOn, dx, dy); DrawWholeMapView(); - task->data[4] ^= 1; - if ((++task->data[2]) == 5) - DestroyTask(task->data[1]); + + // Screen flickers 5 times. Odd number and starting with the + // screen off means the animation ends with the screen on. + task->tIsScreenOn ^= 1; + if (++task->tFlickerCount == 5) + DestroyTask(task->tTaskId); } - task->data[3]++; + task->tTimer++; } -static void PCTurnOnEffect_1(s16 isPcTurnedOn, s8 dx, s8 dy) +static void PCTurnOnEffect_SetMetatile(s16 isScreenOn, s8 dx, s8 dy) { - u16 tileId = 0; - if (isPcTurnedOn) + u16 metatileId = 0; + if (isScreenOn) { + // Screen is off, set it on if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) - tileId = METATILE_Building_PC_Off; + metatileId = METATILE_Building_PC_Off; else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) - tileId = METATILE_BrendansMaysHouse_BrendanPC_Off; + metatileId = METATILE_BrendansMaysHouse_BrendanPC_Off; else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) - tileId = METATILE_BrendansMaysHouse_MayPC_Off; + metatileId = METATILE_BrendansMaysHouse_MayPC_Off; } else { + // Screen is on, set it off if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) - tileId = METATILE_Building_PC_On; + metatileId = METATILE_Building_PC_On; else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) - tileId = METATILE_BrendansMaysHouse_BrendanPC_On; + metatileId = METATILE_BrendansMaysHouse_BrendanPC_On; else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) - tileId = METATILE_BrendansMaysHouse_MayPC_On; + metatileId = METATILE_BrendansMaysHouse_MayPC_On; } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + MAP_OFFSET, gSaveBlock1Ptr->pos.y + dy + MAP_OFFSET, tileId | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + MAP_OFFSET, gSaveBlock1Ptr->pos.y + dy + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK); } +// For this special, gSpecialVar_0x8004 is expected to be some PC_LOCATION_* value. void DoPCTurnOffEffect(void) { PCTurnOffEffect(); @@ -1052,7 +1070,9 @@ static void PCTurnOffEffect(void) { s8 dx = 0; s8 dy = 0; - u16 tileId = 0; + u16 metatileId = 0; + + // Get where the PC should be, depending on where the player is looking. u8 playerDirection = GetPlayerFacingDirection(); switch (playerDirection) { @@ -1069,13 +1089,15 @@ static void PCTurnOffEffect(void) dy = -1; break; } + if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) - tileId = METATILE_Building_PC_Off; + metatileId = METATILE_Building_PC_Off; else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) - tileId = METATILE_BrendansMaysHouse_BrendanPC_Off; + metatileId = METATILE_BrendansMaysHouse_BrendanPC_Off; else if (gSpecialVar_0x8004 == PC_LOCATION_MAYS_HOUSE) - tileId = METATILE_BrendansMaysHouse_MayPC_Off; - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + MAP_OFFSET, gSaveBlock1Ptr->pos.y + dy + MAP_OFFSET, tileId | MAPGRID_COLLISION_MASK); + metatileId = METATILE_BrendansMaysHouse_MayPC_Off; + + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + MAP_OFFSET, gSaveBlock1Ptr->pos.y + dy + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK); DrawWholeMapView(); } @@ -1084,42 +1106,47 @@ void DoLotteryCornerComputerEffect(void) if (FuncIsActiveTask(Task_LotteryCornerComputerEffect) != TRUE) { u8 taskId = CreateTask(Task_LotteryCornerComputerEffect, 8); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = taskId; - gTasks[taskId].data[2] = 0; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + gTasks[taskId].tPaused = FALSE; + gTasks[taskId].tTaskId = taskId; + gTasks[taskId].tFlickerCount = 0; + gTasks[taskId].tTimer = 0; + gTasks[taskId].tIsScreenOn = FALSE; } } static void Task_LotteryCornerComputerEffect(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (task->data[0] == 0) + if (!task->tPaused) LotteryCornerComputerEffect(task); } static void LotteryCornerComputerEffect(struct Task *task) { - if (task->data[3] == 6) + if (task->tTimer == 6) { - task->data[3] = 0; - if (task->data[4] != 0) + task->tTimer = 0; + if (task->tIsScreenOn) { + // Screen is on, set it off MapGridSetMetatileIdAt(11 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Shop_Laptop1_Normal | MAPGRID_COLLISION_MASK); MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Shop_Laptop2_Normal | MAPGRID_COLLISION_MASK); } else { + // Screen is off, set it on MapGridSetMetatileIdAt(11 + MAP_OFFSET, 1 + MAP_OFFSET, METATILE_Shop_Laptop1_Flash | MAPGRID_COLLISION_MASK); MapGridSetMetatileIdAt(11 + MAP_OFFSET, 2 + MAP_OFFSET, METATILE_Shop_Laptop2_Flash | MAPGRID_COLLISION_MASK); } DrawWholeMapView(); - task->data[4] ^= 1; - if ((++task->data[2]) == 5) - DestroyTask(task->data[1]); + + // Screen flickers 5 times. Odd number and starting with the + // screen off means the animation ends with the screen on. + task->tIsScreenOn ^= 1; + if (++task->tFlickerCount == 5) + DestroyTask(task->tTaskId); } - task->data[3]++; + task->tTimer++; } void EndLotteryCornerComputerEffect(void) @@ -1129,6 +1156,12 @@ void EndLotteryCornerComputerEffect(void) DrawWholeMapView(); } +#undef tPaused +#undef tTaskId +#undef tFlickerCount +#undef tTimer +#undef tIsScreenOn + void SetTrickHouseNuggetFlag(void) { u16 *specVar = &gSpecialVar_0x8004; From 43af7d46ca500de5244a94f1dab51988f833dce5 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 1 Feb 2023 10:37:11 -0500 Subject: [PATCH 027/125] Label data for elevator effects --- src/field_specials.c | 124 +++++++++++++++++++++++++++---------------- 1 file changed, 79 insertions(+), 45 deletions(-) diff --git a/src/field_specials.c b/src/field_specials.c index dd03358eb..cfa12a418 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1664,7 +1664,7 @@ void OffsetCameraForBattle(void) SetCameraPanning(8, 0); } -const struct WindowTemplate gElevatorFloor_WindowTemplate = +static const struct WindowTemplate sWindowTemplate_ElevatorFloor = { .bg = 0, .tilemapLeft = 21, @@ -1675,7 +1675,7 @@ const struct WindowTemplate gElevatorFloor_WindowTemplate = .baseBlock = 8, }; -const u8 *const gDeptStoreFloorNames[] = +static const u8 *const sDeptStoreFloorNames[] = { [DEPT_STORE_FLOORNUM_B4F] = gText_B4F, [DEPT_STORE_FLOORNUM_B3F] = gText_B3F, @@ -1695,7 +1695,11 @@ const u8 *const gDeptStoreFloorNames[] = [DEPT_STORE_FLOORNUM_ROOFTOP] = gText_Rooftop }; -static const u16 sElevatorWindowTiles_Ascending[][3] = +#define ELEVATOR_WINDOW_WIDTH 3 +#define ELEVATOR_WINDOW_HEIGHT 3 +#define ELEVATOR_LIGHT_STAGES 3 + +static const u16 sElevatorWindowTiles_Ascending[ELEVATOR_WINDOW_HEIGHT][ELEVATOR_LIGHT_STAGES] = { { METATILE_BattleFrontier_Elevator_Top0, @@ -1714,7 +1718,7 @@ static const u16 sElevatorWindowTiles_Ascending[][3] = }, }; -static const u16 sElevatorWindowTiles_Descending[][3] = +static const u16 sElevatorWindowTiles_Descending[ELEVATOR_WINDOW_HEIGHT][ELEVATOR_LIGHT_STAGES] = { { METATILE_BattleFrontier_Elevator_Top0, @@ -1798,53 +1802,66 @@ u16 GetDeptStoreDefaultFloorChoice(void) return sLilycoveDeptStore_DefaultFloorChoice; } +// Task data for Task_MoveElevator +#define tTimer data[1] +#define tMoveCounter data[2] +#define tVerticalPan data[4] +#define tTotalMoves data[5] +#define tDescending data[6] + +// The maximum considered difference between floors. +// Elevator trips with a larger difference are treated the same +// (i.e. traveling 9 floors and 200 floors would take the same amount of time). +#define MAX_ELEVATOR_TRIP 9 + +// gSpecialVar_0x8005 here is expected to be the current floor number, and +// gSpecialVar_0x8006 is expected to be the destination floor number. void MoveElevator(void) { - static const u8 sElevatorTripLength[] = { 8, 16, 24, 32, 38, 46, 52, 56, 57 }; + static const u8 sElevatorTripLength[MAX_ELEVATOR_TRIP] = { 8, 16, 24, 32, 38, 46, 52, 56, 57 }; s16 *data = gTasks[CreateTask(Task_MoveElevator, 9)].data; u16 floorDelta; - data[1] = 0; - data[2] = 0; - data[4] = 1; + tTimer = 0; + tMoveCounter = 0; + tVerticalPan = 1; - // descending if (gSpecialVar_0x8005 > gSpecialVar_0x8006) { floorDelta = gSpecialVar_0x8005 - gSpecialVar_0x8006; - data[6] = TRUE; + tDescending = TRUE; } else { floorDelta = gSpecialVar_0x8006 - gSpecialVar_0x8005; - data[6] = FALSE; + tDescending = FALSE; } - if (floorDelta > 8) - floorDelta = 8; + if (floorDelta > MAX_ELEVATOR_TRIP - 1) + floorDelta = MAX_ELEVATOR_TRIP - 1; - data[5] = sElevatorTripLength[floorDelta]; + tTotalMoves = sElevatorTripLength[floorDelta]; SetCameraPanningCallback(NULL); - MoveElevatorWindowLights(floorDelta, data[6]); + MoveElevatorWindowLights(floorDelta, tDescending); PlaySE(SE_ELEVATOR); } static void Task_MoveElevator(u8 taskId) { s16 *data = gTasks[taskId].data; - data[1]++; - if (data[1] % 3 == 0) + tTimer++; + if (tTimer % 3 == 0) { - data[1] = 0; - data[2]++; - data[4] = -data[4]; - SetCameraPanning(0, data[4]); + tTimer = 0; + tMoveCounter++; + tVerticalPan = -tVerticalPan; + SetCameraPanning(0, tVerticalPan); - // arrived at floor - if (data[2] == data[5]) + if (tMoveCounter == tTotalMoves) { + // Arrived at floor PlaySE(SE_DING_DONG); DestroyTask(taskId); ScriptContext_Enable(); @@ -1853,18 +1870,24 @@ static void Task_MoveElevator(u8 taskId) } } +#undef tTimer +#undef tMoveCounter +#undef tVerticalPan +#undef tTotalMoves +#undef tDescending + void ShowDeptStoreElevatorFloorSelect(void) { int xPos; - sTutorMoveAndElevatorWindowId = AddWindow(&gElevatorFloor_WindowTemplate); + sTutorMoveAndElevatorWindowId = AddWindow(&sWindowTemplate_ElevatorFloor); SetStandardWindowBorderStyle(sTutorMoveAndElevatorWindowId, FALSE); xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gText_ElevatorNowOn, 64); AddTextPrinterParameterized(sTutorMoveAndElevatorWindowId, FONT_NORMAL, gText_ElevatorNowOn, xPos, 1, TEXT_SKIP_DRAW, NULL); - xPos = GetStringCenterAlignXOffset(FONT_NORMAL, gDeptStoreFloorNames[gSpecialVar_0x8005], 64); - AddTextPrinterParameterized(sTutorMoveAndElevatorWindowId, FONT_NORMAL, gDeptStoreFloorNames[gSpecialVar_0x8005], xPos, 17, TEXT_SKIP_DRAW, NULL); + xPos = GetStringCenterAlignXOffset(FONT_NORMAL, sDeptStoreFloorNames[gSpecialVar_0x8005], 64); + AddTextPrinterParameterized(sTutorMoveAndElevatorWindowId, FONT_NORMAL, sDeptStoreFloorNames[gSpecialVar_0x8005], xPos, 17, TEXT_SKIP_DRAW, NULL); PutWindowTilemap(sTutorMoveAndElevatorWindowId); CopyWindowToVram(sTutorMoveAndElevatorWindowId, COPYWIN_FULL); @@ -1876,17 +1899,23 @@ void CloseDeptStoreElevatorWindow(void) RemoveWindow(sTutorMoveAndElevatorWindowId); } +// Task data for Task_MoveElevatorWindowLights +#define tMoveCounter data[0] +#define tTimer data[1] +#define tDescending data[2] +#define tTotalMoves data[3] + static void MoveElevatorWindowLights(u16 floorDelta, bool8 descending) { - static const u8 sElevatorLightCycles[] = { 3, 6, 9, 12, 15, 18, 21, 24, 27 }; + static const u8 sElevatorLightCycles[MAX_ELEVATOR_TRIP] = { 3, 6, 9, 12, 15, 18, 21, 24, 27 }; if (FuncIsActiveTask(Task_MoveElevatorWindowLights) != TRUE) { u8 taskId = CreateTask(Task_MoveElevatorWindowLights, 8); - gTasks[taskId].data[0] = 0; - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = descending; - gTasks[taskId].data[3] = sElevatorLightCycles[floorDelta]; + gTasks[taskId].tMoveCounter = 0; + gTasks[taskId].tTimer = 0; + gTasks[taskId].tDescending = descending; + gTasks[taskId].tTotalMoves = sElevatorLightCycles[floorDelta]; } } @@ -1895,36 +1924,41 @@ static void Task_MoveElevatorWindowLights(u8 taskId) u8 x, y; s16 *data = gTasks[taskId].data; - if (data[1] == 6) + if (tTimer == 6) { - data[0]++; + tMoveCounter++; - // ascending - if (data[2] == FALSE) + if (!tDescending) { - for (y = 0; y < 3; y++) + // Ascending + for (y = 0; y < ELEVATOR_WINDOW_HEIGHT; y++) { - for (x = 0; x < 3; x++) - MapGridSetMetatileIdAt(x + MAP_OFFSET + 1, y + MAP_OFFSET, sElevatorWindowTiles_Ascending[y][data[0] % 3] | MAPGRID_COLLISION_MASK); + for (x = 0; x < ELEVATOR_WINDOW_WIDTH; x++) + MapGridSetMetatileIdAt(x + MAP_OFFSET + 1, y + MAP_OFFSET, sElevatorWindowTiles_Ascending[y][tMoveCounter % ELEVATOR_LIGHT_STAGES] | MAPGRID_COLLISION_MASK); } } - // descending else { - for (y = 0; y < 3; y++) + // Descending + for (y = 0; y < ELEVATOR_WINDOW_HEIGHT; y++) { - for (x = 0; x < 3; x++) - MapGridSetMetatileIdAt(x + MAP_OFFSET + 1, y + MAP_OFFSET, sElevatorWindowTiles_Descending[y][data[0] % 3] | MAPGRID_COLLISION_MASK); + for (x = 0; x < ELEVATOR_WINDOW_WIDTH; x++) + MapGridSetMetatileIdAt(x + MAP_OFFSET + 1, y + MAP_OFFSET, sElevatorWindowTiles_Descending[y][tMoveCounter % ELEVATOR_LIGHT_STAGES] | MAPGRID_COLLISION_MASK); } } DrawWholeMapView(); - data[1] = 0; - if (data[0] == data[3]) + tTimer = 0; + if (tMoveCounter == tTotalMoves) DestroyTask(taskId); } - data[1]++; + tTimer++; } +#undef tMoveCounter +#undef tTimer +#undef tDescending +#undef tTotalMoves + void BufferVarsForIVRater(void) { u8 i; From 9003966fcc4e3081db28774c26941a588d49ffbe Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 1 Feb 2023 11:43:21 -0500 Subject: [PATCH 028/125] Misc field_specials cleanup --- data/maps/BirthIsland_Exterior/scripts.inc | 17 +-- data/maps/PetalburgCity/scripts.inc | 2 +- data/specials.inc | 2 +- include/constants/battle_pyramid.h | 2 +- include/constants/field_specials.h | 6 + src/battle_pyramid.c | 20 +-- .../battle_pyramid_open_level_wild_mons.h | 2 +- src/field_effect.c | 71 +++++++---- src/field_specials.c | 119 ++++++++++-------- 9 files changed, 141 insertions(+), 100 deletions(-) diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index 68d3124d9..d2174eee9 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -48,21 +48,24 @@ BirthIsland_Exterior_EventScript_Triangle:: special DoDeoxysRockInteraction waitstate switch VAR_RESULT - case 0, BirthIsland_Exterior_EventScript_NotSolved1 - case 1, BirthIsland_Exterior_EventScript_NotSolved2 - case 2, BirthIsland_Exterior_EventScript_Deoxys - case 3, BirthIsland_Exterior_EventScript_NotSolved3 + case DEOXYS_ROCK_FAILED, BirthIsland_Exterior_EventScript_Failed + case DEOXYS_ROCK_PROGRESSED, BirthIsland_Exterior_EventScript_Progressed + case DEOXYS_ROCK_SOLVED, BirthIsland_Exterior_EventScript_Deoxys + case DEOXYS_ROCK_COMPLETE, BirthIsland_Exterior_EventScript_Complete end -BirthIsland_Exterior_EventScript_NotSolved1:: +@ The actual rock triangle movement is handled by DoDeoxysRockInteraction. +@ Unless the player has solved the puzzle and needs to encounter Deoxys, +@ there's nothing else the script needs to do. +BirthIsland_Exterior_EventScript_Failed:: release end -BirthIsland_Exterior_EventScript_NotSolved2:: +BirthIsland_Exterior_EventScript_Progressed:: release end -BirthIsland_Exterior_EventScript_NotSolved3:: +BirthIsland_Exterior_EventScript_Complete:: release end diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index 3609b2622..a9dd1014f 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -38,7 +38,7 @@ PetalburgCity_OnFrame: PetalburgCity_EventScript_WallyTutorial:: lockall special SavePlayerParty - special PutZigzagoonInPlayerParty + special LoadWallyZigzagoon applymovement LOCALID_WALLY, PetalburgCity_Movement_WallyTutorialWally applymovement OBJ_EVENT_ID_PLAYER, PetalburgCity_Movement_WallyTutorialPlayer waitmovement 0 diff --git a/data/specials.inc b/data/specials.inc index 187e49ec7..26eb4e134 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -311,7 +311,7 @@ gSpecials:: def_special TryUpdateRusturfTunnelState def_special IsGrassTypeInParty def_special DoContestHallWarp - def_special PutZigzagoonInPlayerParty + def_special LoadWallyZigzagoon def_special IsStarterInParty def_special CopyCurSecretBaseOwnerName_StrVar1 def_special ScriptCheckFreePokemonStorageSpace diff --git a/include/constants/battle_pyramid.h b/include/constants/battle_pyramid.h index 297f3b1ff..ac80a2d7d 100644 --- a/include/constants/battle_pyramid.h +++ b/include/constants/battle_pyramid.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_BATTLE_PYRAMID_H #define GUARD_CONSTANTS_BATTLE_PYRAMID_H -#define TOTAL_ROUNDS 20 +#define TOTAL_PYRAMID_ROUNDS 20 #define PICKUP_ITEMS_PER_ROUND 10 #define HINT_EXIT_DIRECTION 0 diff --git a/include/constants/field_specials.h b/include/constants/field_specials.h index a01151378..665940331 100644 --- a/include/constants/field_specials.h +++ b/include/constants/field_specials.h @@ -80,4 +80,10 @@ #define FANCOUNTER_FINISHED_CONTEST 2 #define FANCOUNTER_USED_BATTLE_TOWER 3 +// Return values for DoDeoxysRockInteraction +#define DEOXYS_ROCK_FAILED 0 +#define DEOXYS_ROCK_PROGRESSED 1 +#define DEOXYS_ROCK_SOLVED 2 +#define DEOXYS_ROCK_COMPLETE 3 + #endif // GUARD_CONSTANTS_FIELD_SPECIALS_H diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 32fab3402..84a439037 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -284,7 +284,7 @@ static const u8 sFloorTemplateOffsets[FRONTIER_STAGES_PER_CHALLENGE] = 0, 4, 9, 14, 19, 24, 29 }; -static const u16 sPickupItemsLvl50[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] = +static const u16 sPickupItemsLvl50[TOTAL_PYRAMID_ROUNDS][PICKUP_ITEMS_PER_ROUND] = { {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_CHERI_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_PECHA_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, @@ -308,7 +308,7 @@ static const u16 sPickupItemsLvl50[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] = {ITEM_HYPER_POTION, ITEM_X_DEFEND, ITEM_LUM_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_QUICK_CLAW, ITEM_KINGS_ROCK, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, }; -static const u16 sPickupItemsLvlOpen[TOTAL_ROUNDS][PICKUP_ITEMS_PER_ROUND] = +static const u16 sPickupItemsLvlOpen[TOTAL_PYRAMID_ROUNDS][PICKUP_ITEMS_PER_ROUND] = { {ITEM_HYPER_POTION, ITEM_FLUFFY_TAIL, ITEM_CHERI_BERRY, ITEM_ETHER, ITEM_LUM_BERRY, ITEM_REVIVE, ITEM_BRIGHT_POWDER, ITEM_SHELL_BELL, ITEM_MAX_REVIVE, ITEM_SACRED_ASH}, {ITEM_HYPER_POTION, ITEM_DIRE_HIT, ITEM_PECHA_BERRY, ITEM_ETHER, ITEM_LEPPA_BERRY, ITEM_REVIVE, ITEM_LEFTOVERS, ITEM_CHOICE_BAND, ITEM_FULL_RESTORE, ITEM_MAX_ELIXIR}, @@ -977,10 +977,10 @@ static void SetPickupItem(void) u8 id; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 floor = gSaveBlock2Ptr->frontier.curChallengeBattleNum; - u32 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / FRONTIER_STAGES_PER_CHALLENGE) % TOTAL_ROUNDS; + u32 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / FRONTIER_STAGES_PER_CHALLENGE) % TOTAL_PYRAMID_ROUNDS; - if (round >= TOTAL_ROUNDS) - round = TOTAL_ROUNDS - 1; + if (round >= TOTAL_PYRAMID_ROUNDS) + round = TOTAL_PYRAMID_ROUNDS - 1; id = GetPyramidFloorTemplateId(); itemIndex = (gSpecialVar_LastTalked - sPyramidFloorTemplates[id].numTrainers) - 1; @@ -1345,10 +1345,10 @@ void GenerateBattlePyramidWildMon(void) const struct PyramidWildMon *wildMons; u32 id; u32 lvl = gSaveBlock2Ptr->frontier.lvlMode; - u16 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvl] / FRONTIER_STAGES_PER_CHALLENGE) % TOTAL_ROUNDS; + u16 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvl] / FRONTIER_STAGES_PER_CHALLENGE) % TOTAL_PYRAMID_ROUNDS; - if (round >= TOTAL_ROUNDS) - round = TOTAL_ROUNDS - 1; + if (round >= TOTAL_PYRAMID_ROUNDS) + round = TOTAL_PYRAMID_ROUNDS - 1; if (lvl != FRONTIER_LVL_50) wildMons = sOpenLevelWildMonPointers[round]; @@ -1961,8 +1961,8 @@ u16 GetBattlePyramidPickupItemId(void) u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; int round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] / FRONTIER_STAGES_PER_CHALLENGE); - if (round >= TOTAL_ROUNDS) - round = TOTAL_ROUNDS - 1; + if (round >= TOTAL_PYRAMID_ROUNDS) + round = TOTAL_PYRAMID_ROUNDS - 1; rand = Random() % 100; diff --git a/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h b/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h index f09448b82..792bc28dd 100644 --- a/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h +++ b/src/data/battle_frontier/battle_pyramid_open_level_wild_mons.h @@ -1038,7 +1038,7 @@ static const struct PyramidWildMon sOpenLevelWildMons_Round20[] = } }; -static const struct PyramidWildMon *const sOpenLevelWildMonPointers[TOTAL_ROUNDS] = +static const struct PyramidWildMon *const sOpenLevelWildMonPointers[TOTAL_PYRAMID_ROUNDS] = { sOpenLevelWildMons_Round1, sOpenLevelWildMons_Round2, diff --git a/src/field_effect.c b/src/field_effect.c index 8ffc9b3a6..7cae89d22 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -3831,26 +3831,38 @@ static void SpriteCB_DeoxysRockFragment(struct Sprite *sprite) DestroySprite(sprite); } +// Task data for Task_MoveDeoxysRock +#define tState data[0] +#define tSpriteId data[1] +#define tTargetX data[2] +#define tTargetY data[3] +#define tCurX data[4] +#define tCurY data[5] +#define tVelocityX data[6] +#define tVelocityY data[7] +#define tMoveSteps data[8] +#define tObjEventId data[9] + bool8 FldEff_MoveDeoxysRock(struct Sprite *sprite) { - u8 objectEventIdBuffer; - if (!TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &objectEventIdBuffer)) + u8 objectEventId; + if (!TryGetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2], &objectEventId)) { struct ObjectEvent *object; int xPos, yPos; u8 taskId; - object = &gObjectEvents[objectEventIdBuffer]; + object = &gObjectEvents[objectEventId]; xPos = object->currentCoords.x - MAP_OFFSET; yPos = object->currentCoords.y - MAP_OFFSET; xPos = (gFieldEffectArguments[3] - xPos) * 16; yPos = (gFieldEffectArguments[4] - yPos) * 16; ShiftObjectEventCoords(object, gFieldEffectArguments[3] + MAP_OFFSET, gFieldEffectArguments[4] + MAP_OFFSET); taskId = CreateTask(Task_MoveDeoxysRock, 80); - gTasks[taskId].data[1] = object->spriteId; - gTasks[taskId].data[2] = gSprites[object->spriteId].x + xPos; - gTasks[taskId].data[3] = gSprites[object->spriteId].y + yPos; - gTasks[taskId].data[8] = gFieldEffectArguments[5]; - gTasks[taskId].data[9] = objectEventIdBuffer; + gTasks[taskId].tSpriteId = object->spriteId; + gTasks[taskId].tTargetX = gSprites[object->spriteId].x + xPos; + gTasks[taskId].tTargetY = gSprites[object->spriteId].y + yPos; + gTasks[taskId].tMoveSteps = gFieldEffectArguments[5]; + gTasks[taskId].tObjEventId = objectEventId; } return FALSE; } @@ -3858,29 +3870,30 @@ bool8 FldEff_MoveDeoxysRock(struct Sprite *sprite) static void Task_MoveDeoxysRock(u8 taskId) { s16 *data = gTasks[taskId].data; - struct Sprite *sprite = &gSprites[data[1]]; - switch (data[0]) + struct Sprite *sprite = &gSprites[tSpriteId]; + switch (tState) { case 0: - data[4] = sprite->x << 4; - data[5] = sprite->y << 4; - data[6] = SAFE_DIV(data[2] * 16 - data[4], data[8]); - data[7] = SAFE_DIV(data[3] * 16 - data[5], data[8]); - data[0]++; + tCurX = sprite->x << 4; + tCurY = sprite->y << 4; + tVelocityX = SAFE_DIV(tTargetX * 16 - tCurX, tMoveSteps); + tVelocityY = SAFE_DIV(tTargetY * 16 - tCurY, tMoveSteps); + tState++; + // fallthrough case 1: - if (data[8] != 0) + if (tMoveSteps != 0) { - data[8]--; - data[4] += data[6]; - data[5] += data[7]; - sprite->x = data[4] >> 4; - sprite->y = data[5] >> 4; + tMoveSteps--; + tCurX += tVelocityX; + tCurY += tVelocityY; + sprite->x = tCurX >> 4; + sprite->y = tCurY >> 4; } else { - struct ObjectEvent *object = &gObjectEvents[data[9]]; - sprite->x = data[2]; - sprite->y = data[3]; + struct ObjectEvent *object = &gObjectEvents[tObjEventId]; + sprite->x = tTargetX; + sprite->y = tTargetY; ShiftStillObjectEventCoords(object); object->triggerGroundEffectsOnStop = TRUE; FieldEffectActiveListRemove(FLDEFF_MOVE_DEOXYS_ROCK); @@ -3890,3 +3903,13 @@ static void Task_MoveDeoxysRock(u8 taskId) } } +#undef tState +#undef tSpriteId +#undef tTargetX +#undef tTargetY +#undef tCurX +#undef tCurY +#undef tVelocityX +#undef tVelocityY +#undef tMoveSteps +#undef tObjEventId diff --git a/src/field_specials.c b/src/field_specials.c index cfa12a418..7e8d10256 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -46,6 +46,7 @@ #include "wallclock.h" #include "window.h" #include "constants/battle_frontier.h" +#include "constants/battle_pyramid.h" #include "constants/battle_tower.h" #include "constants/decorations.h" #include "constants/event_objects.h" @@ -66,6 +67,15 @@ #include "constants/metatile_labels.h" #include "palette.h" +#define TAG_ITEM_ICON 5500 + +#define GFXTAG_MULTICHOICE_SCROLL_ARROWS 2000 +#define PALTAG_MULTICHOICE_SCROLL_ARROWS 100 + +#define ELEVATOR_WINDOW_WIDTH 3 +#define ELEVATOR_WINDOW_HEIGHT 3 +#define ELEVATOR_LIGHT_STAGES 3 + EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; EWRAM_DATA u8 gBikeCollisions = 0; static EWRAM_DATA u32 sBikeCyclingTimer = 0; @@ -1246,7 +1256,7 @@ void SpawnCameraObject(void) OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + MAP_OFFSET, gSaveBlock1Ptr->pos.y + MAP_OFFSET, - 3); + 3); // elevation gObjectEvents[obj].invisible = TRUE; CameraObjectSetFollowedSpriteId(gObjectEvents[obj].spriteId); } @@ -1411,7 +1421,7 @@ void SetShoalItemFlag(u16 unused) FlagSet(FLAG_SYS_SHOAL_ITEM); } -void PutZigzagoonInPlayerParty(void) +void LoadWallyZigzagoon(void) { u16 monData; CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); @@ -1451,20 +1461,21 @@ bool8 IsPokerusInParty(void) return TRUE; } -#define horizontalPan data[0] -#define delayCounter data[1] -#define numShakes data[2] -#define delay data[3] -#define verticalPan data[4] +// Task data for Task_ShakeCamera +#define tHorizontalPan data[0] +#define tDelayCounter data[1] +#define tNumShakes data[2] +#define tDelay data[3] +#define tVerticalPan data[4] void ShakeCamera(void) { u8 taskId = CreateTask(Task_ShakeCamera, 9); - gTasks[taskId].horizontalPan = gSpecialVar_0x8005; - gTasks[taskId].delayCounter = 0; - gTasks[taskId].numShakes = gSpecialVar_0x8006; - gTasks[taskId].delay = gSpecialVar_0x8007; - gTasks[taskId].verticalPan = gSpecialVar_0x8004; + gTasks[taskId].tHorizontalPan = gSpecialVar_0x8005; + gTasks[taskId].tDelayCounter = 0; + gTasks[taskId].tNumShakes = gSpecialVar_0x8006; + gTasks[taskId].tDelay = gSpecialVar_0x8007; + gTasks[taskId].tVerticalPan = gSpecialVar_0x8004; SetCameraPanningCallback(NULL); PlaySE(SE_M_STRENGTH); } @@ -1473,15 +1484,15 @@ static void Task_ShakeCamera(u8 taskId) { s16 *data = gTasks[taskId].data; - delayCounter++; - if (delayCounter % delay == 0) + tDelayCounter++; + if (tDelayCounter % tDelay == 0) { - delayCounter = 0; - numShakes--; - horizontalPan = -horizontalPan; - verticalPan = -verticalPan; - SetCameraPanning(horizontalPan, verticalPan); - if (numShakes == 0) + tDelayCounter = 0; + tNumShakes--; + tHorizontalPan = -tHorizontalPan; + tVerticalPan = -tVerticalPan; + SetCameraPanning(tHorizontalPan, tVerticalPan); + if (tNumShakes == 0) { StopCameraShake(taskId); InstallCameraPanAheadCallback(); @@ -1495,11 +1506,11 @@ static void StopCameraShake(u8 taskId) ScriptContext_Enable(); } -#undef horizontalPan -#undef delayCounter -#undef numShakes -#undef delay -#undef verticalPan +#undef tHorizontalPan +#undef tDelayCounter +#undef tNumShakes +#undef tDelay +#undef tVerticalPan bool8 FoundBlackGlasses(void) { @@ -1524,7 +1535,8 @@ u8 GetLeadMonIndex(void) u8 partyCount = CalculatePlayerPartyCount(); for (i = 0; i < partyCount; i++) { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != 0) + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG + && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_NONE) return i; } return 0; @@ -1695,10 +1707,6 @@ static const u8 *const sDeptStoreFloorNames[] = [DEPT_STORE_FLOORNUM_ROOFTOP] = gText_Rooftop }; -#define ELEVATOR_WINDOW_WIDTH 3 -#define ELEVATOR_WINDOW_HEIGHT 3 -#define ELEVATOR_LIGHT_STAGES 3 - static const u16 sElevatorWindowTiles_Ascending[ELEVATOR_WINDOW_HEIGHT][ELEVATOR_LIGHT_STAGES] = { { @@ -2020,13 +2028,13 @@ bool8 UsedPokemonCenterWarp(void) MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F, MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F, MAP_UNION_ROOM, - 0xFFFF + MAP_UNDEFINED }; int i; u16 map = (gLastUsedWarp.mapGroup << 8) + gLastUsedWarp.mapNum; - for (i = 0; sPokemonCenters[i] != 0xFFFF; i++) + for (i = 0; sPokemonCenters[i] != MAP_UNDEFINED; i++) { if (sPokemonCenters[i] == map) return TRUE; @@ -2724,21 +2732,21 @@ static void ScrollableMultichoice_UpdateScrollArrows(u8 taskId) .secondY = 0, .fullyUpThreshold = 0, .fullyDownThreshold = 0, - .tileTag = 2000, - .palTag = 100, + .tileTag = GFXTAG_MULTICHOICE_SCROLL_ARROWS, + .palTag = PALTAG_MULTICHOICE_SCROLL_ARROWS, .palNum = 0 }; struct Task *task = &gTasks[taskId]; struct ScrollArrowsTemplate template = sScrollableMultichoice_ScrollArrowsTemplate; - if (task->tMaxItemsOnScreen != task->data[1]) + if (task->tMaxItemsOnScreen != task->tNumItems) { template.firstX = (task->tWidth / 2) * 8 + 12 + (task->tLeft - 1) * 8; template.firstY = 8; template.secondX = (task->tWidth / 2) * 8 + 12 + (task->tLeft - 1) * 8; template.secondY = task->tHeight * 8 + 10; template.fullyUpThreshold = 0; - template.fullyDownThreshold = task->data[1] - task->tMaxItemsOnScreen; + template.fullyDownThreshold = task->tNumItems - task->tMaxItemsOnScreen; task->tScrollArrowId = AddScrollIndicatorArrowPair(&template, &sScrollableMultichoice_ScrollOffset); } } @@ -2746,10 +2754,8 @@ static void ScrollableMultichoice_UpdateScrollArrows(u8 taskId) static void ScrollableMultichoice_RemoveScrollArrows(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (task->tMaxItemsOnScreen != task->data[1]) - { + if (task->tMaxItemsOnScreen != task->tNumItems) RemoveScrollIndicatorArrowPair(task->tScrollArrowId); - } } // Removed for Emerald (replaced by ShowScrollableMultichoice) @@ -2973,8 +2979,6 @@ void CloseFrontierExchangeCornerItemIconWindow(void) RemoveWindow(sFrontierExchangeCorner_ItemIconWindowId); } -#define TAG_ITEM_ICON 5500 - static void FillFrontierExchangeCornerWindowAndItemIcon(u16 menu, u16 selection) { #include "data/battle_frontier/battle_frontier_exchange_corner.h" @@ -3255,12 +3259,14 @@ void ScrollableMultichoice_ClosePersistentMenu(void) #undef tListTaskId #undef tTaskId +#define DEOXYS_ROCK_LEVELS 11 + void DoDeoxysRockInteraction(void) { CreateTask(Task_DeoxysRockInteraction, 8); } -static const u16 sDeoxysRockPalettes[][16] = { +static const u16 sDeoxysRockPalettes[DEOXYS_ROCK_LEVELS][16] = { INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_1.gbapal"), INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_2.gbapal"), INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_3.gbapal"), @@ -3274,7 +3280,7 @@ static const u16 sDeoxysRockPalettes[][16] = { INCBIN_U16("graphics/field_effects/palettes/deoxys_rock_11.gbapal"), }; -static const u8 sDeoxysRockCoords[][2] = { +static const u8 sDeoxysRockCoords[DEOXYS_ROCK_LEVELS][2] = { { 15, 12 }, { 11, 14 }, { 15, 8 }, @@ -3290,11 +3296,11 @@ static const u8 sDeoxysRockCoords[][2] = { static void Task_DeoxysRockInteraction(u8 taskId) { - static const u8 sStoneMaxStepCounts[] = { 4, 8, 8, 8, 4, 4, 4, 6, 3, 3 }; + static const u8 sStoneMaxStepCounts[DEOXYS_ROCK_LEVELS - 1] = { 4, 8, 8, 8, 4, 4, 4, 6, 3, 3 }; if (FlagGet(FLAG_DEOXYS_ROCK_COMPLETE) == TRUE) { - gSpecialVar_Result = 3; + gSpecialVar_Result = DEOXYS_ROCK_COMPLETE; ScriptContext_Enable(); DestroyTask(taskId); } @@ -3309,13 +3315,13 @@ static void Task_DeoxysRockInteraction(u8 taskId) // Player failed to take the shortest path to the stone, so it resets. ChangeDeoxysRockLevel(0); VarSet(VAR_DEOXYS_ROCK_LEVEL, 0); - gSpecialVar_Result = 0; + gSpecialVar_Result = DEOXYS_ROCK_FAILED; DestroyTask(taskId); } - else if (rockLevel == 10) + else if (rockLevel == DEOXYS_ROCK_LEVELS - 1) { FlagSet(FLAG_DEOXYS_ROCK_COMPLETE); - gSpecialVar_Result = 2; + gSpecialVar_Result = DEOXYS_ROCK_SOLVED; ScriptContext_Enable(); DestroyTask(taskId); } @@ -3324,7 +3330,7 @@ static void Task_DeoxysRockInteraction(u8 taskId) rockLevel++; ChangeDeoxysRockLevel(rockLevel); VarSet(VAR_DEOXYS_ROCK_LEVEL, rockLevel); - gSpecialVar_Result = 1; + gSpecialVar_Result = DEOXYS_ROCK_PROGRESSED; DestroyTask(taskId); } } @@ -3337,9 +3343,9 @@ static void ChangeDeoxysRockLevel(u8 rockLevel) TryGetObjectEventIdByLocalIdAndMap(LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); if (rockLevel == 0) - PlaySE(SE_M_CONFUSE_RAY); + PlaySE(SE_M_CONFUSE_RAY); // Failure sound else - PlaySE(SE_RG_DEOXYS_MOVE); + PlaySE(SE_RG_DEOXYS_MOVE); // Success sound CreateTask(WaitForDeoxysRockMovement, 8); gFieldEffectArguments[0] = LOCALID_BIRTH_ISLAND_EXTERIOR_ROCK; @@ -3348,6 +3354,8 @@ static void ChangeDeoxysRockLevel(u8 rockLevel) gFieldEffectArguments[3] = sDeoxysRockCoords[rockLevel][0]; gFieldEffectArguments[4] = sDeoxysRockCoords[rockLevel][1]; + // Set number of movement steps. + // Resetting for failure is slow, successful movement is fast. if (rockLevel == 0) gFieldEffectArguments[5] = 60; else @@ -3865,8 +3873,9 @@ static void Task_CloseBattlePikeCurtain(u8 taskId) void GetBattlePyramidHint(void) { - gSpecialVar_Result = gSpecialVar_0x8004 / 7; - gSpecialVar_Result -= (gSpecialVar_Result / 20) * 20; + // gSpecialVar_0x8004 here is expected to be the current Battle Pyramid win streak. + gSpecialVar_Result = gSpecialVar_0x8004 / FRONTIER_STAGES_PER_CHALLENGE; + gSpecialVar_Result -= (gSpecialVar_Result / TOTAL_PYRAMID_ROUNDS) * TOTAL_PYRAMID_ROUNDS; } // Used to avoid a potential softlock if the player respawns on Dewford with no way off @@ -3901,13 +3910,13 @@ bool8 InPokemonCenter(void) MAP_TRADE_CENTER, MAP_RECORD_CORNER, MAP_BATTLE_COLOSSEUM_4P, - 0xFFFF + MAP_UNDEFINED }; int i; u16 map = (gSaveBlock1Ptr->location.mapGroup << 8) + gSaveBlock1Ptr->location.mapNum; - for (i = 0; sPokemonCenters[i] != 0xFFFF; i++) + for (i = 0; sPokemonCenters[i] != MAP_UNDEFINED; i++) { if (sPokemonCenters[i] == map) return TRUE; From 30f893f2558ed8ae95ad23c2813006edd109229d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 1 Feb 2023 11:52:32 -0500 Subject: [PATCH 029/125] Fix comment mistake --- src/field_specials.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/field_specials.c b/src/field_specials.c index 7e8d10256..6251a4db7 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1049,7 +1049,7 @@ static void PCTurnOnEffect_SetMetatile(s16 isScreenOn, s8 dx, s8 dy) u16 metatileId = 0; if (isScreenOn) { - // Screen is off, set it on + // Screen is on, set it off if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) metatileId = METATILE_Building_PC_Off; else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) @@ -1059,7 +1059,7 @@ static void PCTurnOnEffect_SetMetatile(s16 isScreenOn, s8 dx, s8 dy) } else { - // Screen is on, set it off + // Screen is off, set it on if (gSpecialVar_0x8004 == PC_LOCATION_OTHER) metatileId = METATILE_Building_PC_On; else if (gSpecialVar_0x8004 == PC_LOCATION_BRENDANS_HOUSE) From 07e00b2e41cf0180acbf57b3573cf99fbecacd16 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 1 Feb 2023 15:24:15 -0500 Subject: [PATCH 030/125] Additional window id constant usage --- src/berry_tag_screen.c | 12 ++++++------ src/contest.c | 4 ++-- src/pokeblock.c | 4 ++-- src/wireless_communication_status_screen.c | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index b65341e67..e43d68600 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -599,7 +599,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) switch (data[0]) { case 0x30: - FillWindowPixelBuffer(0, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_BERRY_NAME, PIXEL_FILL(0)); break; case 0x40: PrintBerryNumberAndName(); @@ -609,7 +609,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) CreateBerrySprite(); break; case 0x60: - FillWindowPixelBuffer(1, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_SIZE_FIRM, PIXEL_FILL(0)); break; case 0x70: PrintBerrySize(); @@ -621,7 +621,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) SetFlavorCirclesVisiblity(); break; case 0xA0: - FillWindowPixelBuffer(2, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_DESC, PIXEL_FILL(0)); break; case 0xB0: PrintBerryDescription1(); @@ -636,7 +636,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) switch (data[0]) { case 0x30: - FillWindowPixelBuffer(2, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_DESC, PIXEL_FILL(0)); break; case 0x40: PrintBerryDescription2(); @@ -648,7 +648,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) SetFlavorCirclesVisiblity(); break; case 0x70: - FillWindowPixelBuffer(1, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_SIZE_FIRM, PIXEL_FILL(0)); break; case 0x80: PrintBerryFirmness(); @@ -661,7 +661,7 @@ static void Task_DisplayAnotherBerry(u8 taskId) CreateBerrySprite(); break; case 0xB0: - FillWindowPixelBuffer(0, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_BERRY_NAME, PIXEL_FILL(0)); break; case 0xC0: PrintBerryNumberAndName(); diff --git a/src/contest.c b/src/contest.c index 2a0e163a5..2c0f66f6b 100644 --- a/src/contest.c +++ b/src/contest.c @@ -5459,7 +5459,7 @@ static void Contest_StartTextPrinter(const u8 *currChar, bool32 b) u8 speed; printerTemplate.currentChar = currChar; - printerTemplate.windowId = 4; + printerTemplate.windowId = WIN_GENERAL_TEXT; printerTemplate.fontId = FONT_NORMAL; printerTemplate.x = 0; printerTemplate.y = 1; @@ -5485,7 +5485,7 @@ static void Contest_StartTextPrinter(const u8 *currChar, bool32 b) AddTextPrinter(&printerTemplate, speed, 0); } - PutWindowTilemap(4); + PutWindowTilemap(WIN_GENERAL_TEXT); Contest_SetBgCopyFlags(0); } diff --git a/src/pokeblock.c b/src/pokeblock.c index 3f0b3b5c5..e490f372c 100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -765,7 +765,7 @@ static void DrawPokeblockInfo(s32 pkblId) struct Pokeblock *pokeblock; u16 rectTilemapSrc[2]; - FillWindowPixelBuffer(7, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_FEEL, PIXEL_FILL(0)); if (pkblId != LIST_CANCEL) { @@ -802,7 +802,7 @@ static void DrawPokeblockInfo(s32 pkblId) for (i = 0; i < FLAVOR_COUNT; i++) CopyToBgTilemapBufferRect(2, rectTilemapSrc, (i / 3 * 6) + 1, (i % 3 * 2) + 13, 1, 2); - CopyWindowToVram(7, COPYWIN_GFX); + CopyWindowToVram(WIN_FEEL, COPYWIN_GFX); } ScheduleBgCopyTilemapToVram(0); diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index 488a3291e..dd99188ea 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -266,7 +266,7 @@ static void PrintHeaderTexts(void) s32 i; FillWindowPixelBuffer(WIN_TITLE, PIXEL_FILL(0)); FillWindowPixelBuffer(WIN_GROUP_NAMES, PIXEL_FILL(0)); - FillWindowPixelBuffer(2, PIXEL_FILL(0)); + FillWindowPixelBuffer(WIN_GROUP_COUNTS, PIXEL_FILL(0)); // Print title WCSS_AddTextPrinterParameterized(WIN_TITLE, FONT_NORMAL, sHeaderTexts[0], GetStringCenterAlignXOffset(FONT_NORMAL, sHeaderTexts[0], 0xC0), 6, COLORMODE_GREEN); From 020266463c0bdd279db78981d14391d366e86e06 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 1 Feb 2023 15:44:48 -0500 Subject: [PATCH 031/125] Add fix for described UB --- src/wireless_communication_status_screen.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index a3c2f4e22..dc60f591d 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -126,7 +126,6 @@ static const u8 *const sHeaderTexts[NUM_GROUPTYPES + 1] = { // Activity, group type, number of players // 0 players means the number of players can change and should be counted dynamically // GROUPTYPE_TOTAL have no unique group and are simply counted in the total of "people communicating" -// UB: GROUPTYPE_NONE (-1) can potentially be used as an index into a u8[4] in CountPlayersInGroupAndGetActivity static const u8 sActivityGroupInfo[][3] = { {ACTIVITY_BATTLE_SINGLE, GROUPTYPE_BATTLE, 2}, {ACTIVITY_BATTLE_DOUBLE, GROUPTYPE_BATTLE, 2}, @@ -382,6 +381,13 @@ static u32 CountPlayersInGroupAndGetActivity(struct RfuPlayer * player, u32 * gr for (i = 0; i < ARRAY_COUNT(sActivityGroupInfo); i++) { +#ifdef UBFIX + // GROUPTYPE_NONE is -1, and shouldn't be used as an index into groupCounts. + // In theory the only activity with this group type (ACTIVITY_SEARCH) wouldn't + // satisfy the condition below, but not necessarily. + if (group_type(i) == GROUPTYPE_NONE) + continue; +#endif if (activity == group_activity(i) && player->groupScheduledAnim == UNION_ROOM_SPAWN_IN) { if (group_players(i) == 0) From 62aed217fe7fcb162bfcef13cc4bb856465590e1 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 15 Aug 2022 14:09:07 -0400 Subject: [PATCH 032/125] Remove unused common symbols in window.c --- common_syms/window.txt | 3 --- gflib/window.c | 3 --- gflib/window.h | 3 --- 3 files changed, 9 deletions(-) diff --git a/common_syms/window.txt b/common_syms/window.txt index 416d9d732..24c093a22 100644 --- a/common_syms/window.txt +++ b/common_syms/window.txt @@ -1,5 +1,2 @@ -gUnusedWindowVar1 -gUnusedWindowVar2 gTransparentTileNumber -gUnusedWindowVar3 gWindowBgTilemapBuffers diff --git a/gflib/window.c b/gflib/window.c index ff9e8a6e0..1621a0884 100644 --- a/gflib/window.c +++ b/gflib/window.c @@ -4,11 +4,8 @@ #include "bg.h" #include "blit.h" -u32 gUnusedWindowVar1; -u32 gUnusedWindowVar2; // This global is set to 0 and never changed. u8 gTransparentTileNumber; -u32 gUnusedWindowVar3; void *gWindowBgTilemapBuffers[NUM_BACKGROUNDS]; extern u32 gWindowTileAutoAllocEnabled; diff --git a/gflib/window.h b/gflib/window.h index 583e7e167..0000dd864 100644 --- a/gflib/window.h +++ b/gflib/window.h @@ -74,8 +74,5 @@ void CopyWindowToVram8Bit(u8 windowId, u8 mode); extern struct Window gWindows[]; extern void *gWindowBgTilemapBuffers[]; -extern u32 gUnusedWindowVar1; -extern u32 gUnusedWindowVar2; -extern u32 gUnusedWindowVar3; #endif // GUARD_WINDOW_H From 717ba22ea1d453b248b23b4857d39e33362c8e89 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Fri, 3 Feb 2023 15:49:22 +0100 Subject: [PATCH 033/125] Make contest opponents an enum I'm sure that at least 2 people eventually might consider editing them, this makes it easier. --- src/data/contest_opponents.h | 194 ++++++++++++++++++----------------- 1 file changed, 98 insertions(+), 96 deletions(-) diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h index 19019be91..7c3aad315 100644 --- a/src/data/contest_opponents.h +++ b/src/data/contest_opponents.h @@ -2,102 +2,104 @@ #include "global.h" #include "contest.h" -#define CONTEST_OPPONENT_JIMMY 0 -#define CONTEST_OPPONENT_EDITH 1 -#define CONTEST_OPPONENT_EVAN 2 -#define CONTEST_OPPONENT_KELSEY 3 -#define CONTEST_OPPONENT_MADISON 4 -#define CONTEST_OPPONENT_RAYMOND 5 -#define CONTEST_OPPONENT_GRANT 6 -#define CONTEST_OPPONENT_PAIGE 7 -#define CONTEST_OPPONENT_ALEC 8 -#define CONTEST_OPPONENT_SYDNEY 9 -#define CONTEST_OPPONENT_MORRIS 10 -#define CONTEST_OPPONENT_MARIAH 11 -#define CONTEST_OPPONENT_RUSSELL 12 -#define CONTEST_OPPONENT_MELANIE 13 -#define CONTEST_OPPONENT_CHANCE 14 -#define CONTEST_OPPONENT_AGATHA 15 -#define CONTEST_OPPONENT_BEAU 16 -#define CONTEST_OPPONENT_KAY 17 -#define CONTEST_OPPONENT_CALE 18 -#define CONTEST_OPPONENT_CAITLIN 19 -#define CONTEST_OPPONENT_COLBY 20 -#define CONTEST_OPPONENT_KYLIE 21 -#define CONTEST_OPPONENT_LIAM 22 -#define CONTEST_OPPONENT_MILO 23 -#define CONTEST_OPPONENT_KARINA 24 -#define CONTEST_OPPONENT_BOBBY 25 -#define CONTEST_OPPONENT_CLAIRE 26 -#define CONTEST_OPPONENT_WILLIE 27 -#define CONTEST_OPPONENT_CASSIDY 28 -#define CONTEST_OPPONENT_MORGAN 29 -#define CONTEST_OPPONENT_SUMMER 30 -#define CONTEST_OPPONENT_MILES 31 -#define CONTEST_OPPONENT_AUDREY 32 -#define CONTEST_OPPONENT_AVERY 33 -#define CONTEST_OPPONENT_ARIANA 34 -#define CONTEST_OPPONENT_ASHTON 35 -#define CONTEST_OPPONENT_SANDRA 36 -#define CONTEST_OPPONENT_CARSON 37 -#define CONTEST_OPPONENT_KATRINA 38 -#define CONTEST_OPPONENT_LUKE 39 -#define CONTEST_OPPONENT_RAUL 40 -#define CONTEST_OPPONENT_JADA 41 -#define CONTEST_OPPONENT_ZEEK 42 -#define CONTEST_OPPONENT_DIEGO 43 -#define CONTEST_OPPONENT_ALIYAH 44 -#define CONTEST_OPPONENT_NATALIA 45 -#define CONTEST_OPPONENT_DEVIN 46 -#define CONTEST_OPPONENT_TYLOR 47 -#define CONTEST_OPPONENT_RONNIE 48 -#define CONTEST_OPPONENT_CLAUDIA 49 -#define CONTEST_OPPONENT_ELIAS 50 -#define CONTEST_OPPONENT_JADE 51 -#define CONTEST_OPPONENT_FRANCIS 52 -#define CONTEST_OPPONENT_ALISHA 53 -#define CONTEST_OPPONENT_SAUL 54 -#define CONTEST_OPPONENT_FELICIA 55 -#define CONTEST_OPPONENT_EMILIO 56 -#define CONTEST_OPPONENT_KARLA 57 -#define CONTEST_OPPONENT_DARRYL 58 -#define CONTEST_OPPONENT_SELENA 59 -#define CONTEST_OPPONENT_NOEL 60 -#define CONTEST_OPPONENT_LACEY 61 -#define CONTEST_OPPONENT_CORBIN 62 -#define CONTEST_OPPONENT_GRACIE 63 -#define CONTEST_OPPONENT_COLTIN 64 -#define CONTEST_OPPONENT_ELLIE 65 -#define CONTEST_OPPONENT_MARCUS 66 -#define CONTEST_OPPONENT_KIARA 67 -#define CONTEST_OPPONENT_BRYCE 68 -#define CONTEST_OPPONENT_JAMIE 69 -#define CONTEST_OPPONENT_JORGE 70 -#define CONTEST_OPPONENT_DEVON 71 -#define CONTEST_OPPONENT_JUSTINA 72 -#define CONTEST_OPPONENT_RALPH 73 -#define CONTEST_OPPONENT_ROSA 74 -#define CONTEST_OPPONENT_KEATON 75 -#define CONTEST_OPPONENT_MAYRA 76 -#define CONTEST_OPPONENT_LAMAR 77 -#define CONTEST_OPPONENT_AUBREY 78 -#define CONTEST_OPPONENT_NIGEL 79 -#define CONTEST_OPPONENT_CAMILLE 80 -#define CONTEST_OPPONENT_DEON 81 -#define CONTEST_OPPONENT_JANELLE 82 -#define CONTEST_OPPONENT_HEATH 83 -#define CONTEST_OPPONENT_SASHA 84 -#define CONTEST_OPPONENT_FRANKIE 85 -#define CONTEST_OPPONENT_HELEN 86 -#define CONTEST_OPPONENT_CAMILE 87 -#define CONTEST_OPPONENT_MARTIN 88 -#define CONTEST_OPPONENT_SERGIO 89 -#define CONTEST_OPPONENT_KAILEY 90 -#define CONTEST_OPPONENT_PERLA 91 -#define CONTEST_OPPONENT_CLARA 92 -#define CONTEST_OPPONENT_JAKOB 93 -#define CONTEST_OPPONENT_TREY 94 -#define CONTEST_OPPONENT_LANE 95 +enum { + CONTEST_OPPONENT_JIMMY, + CONTEST_OPPONENT_EDITH, + CONTEST_OPPONENT_EVAN, + CONTEST_OPPONENT_KELSEY, + CONTEST_OPPONENT_MADISON, + CONTEST_OPPONENT_RAYMOND, + CONTEST_OPPONENT_GRANT, + CONTEST_OPPONENT_PAIGE, + CONTEST_OPPONENT_ALEC, + CONTEST_OPPONENT_SYDNEY, + CONTEST_OPPONENT_MORRIS, + CONTEST_OPPONENT_MARIAH, + CONTEST_OPPONENT_RUSSELL, + CONTEST_OPPONENT_MELANIE, + CONTEST_OPPONENT_CHANCE, + CONTEST_OPPONENT_AGATHA, + CONTEST_OPPONENT_BEAU, + CONTEST_OPPONENT_KAY, + CONTEST_OPPONENT_CALE, + CONTEST_OPPONENT_CAITLIN, + CONTEST_OPPONENT_COLBY, + CONTEST_OPPONENT_KYLIE, + CONTEST_OPPONENT_LIAM, + CONTEST_OPPONENT_MILO, + CONTEST_OPPONENT_KARINA, + CONTEST_OPPONENT_BOBBY, + CONTEST_OPPONENT_CLAIRE, + CONTEST_OPPONENT_WILLIE, + CONTEST_OPPONENT_CASSIDY, + CONTEST_OPPONENT_MORGAN, + CONTEST_OPPONENT_SUMMER, + CONTEST_OPPONENT_MILES, + CONTEST_OPPONENT_AUDREY, + CONTEST_OPPONENT_AVERY, + CONTEST_OPPONENT_ARIANA, + CONTEST_OPPONENT_ASHTON, + CONTEST_OPPONENT_SANDRA, + CONTEST_OPPONENT_CARSON, + CONTEST_OPPONENT_KATRINA, + CONTEST_OPPONENT_LUKE, + CONTEST_OPPONENT_RAUL, + CONTEST_OPPONENT_JADA, + CONTEST_OPPONENT_ZEEK, + CONTEST_OPPONENT_DIEGO, + CONTEST_OPPONENT_ALIYAH, + CONTEST_OPPONENT_NATALIA, + CONTEST_OPPONENT_DEVIN, + CONTEST_OPPONENT_TYLOR, + CONTEST_OPPONENT_RONNIE, + CONTEST_OPPONENT_CLAUDIA, + CONTEST_OPPONENT_ELIAS, + CONTEST_OPPONENT_JADE, + CONTEST_OPPONENT_FRANCIS, + CONTEST_OPPONENT_ALISHA, + CONTEST_OPPONENT_SAUL, + CONTEST_OPPONENT_FELICIA, + CONTEST_OPPONENT_EMILIO, + CONTEST_OPPONENT_KARLA, + CONTEST_OPPONENT_DARRYL, + CONTEST_OPPONENT_SELENA, + CONTEST_OPPONENT_NOEL, + CONTEST_OPPONENT_LACEY, + CONTEST_OPPONENT_CORBIN, + CONTEST_OPPONENT_GRACIE, + CONTEST_OPPONENT_COLTIN, + CONTEST_OPPONENT_ELLIE, + CONTEST_OPPONENT_MARCUS, + CONTEST_OPPONENT_KIARA, + CONTEST_OPPONENT_BRYCE, + CONTEST_OPPONENT_JAMIE, + CONTEST_OPPONENT_JORGE, + CONTEST_OPPONENT_DEVON, + CONTEST_OPPONENT_JUSTINA, + CONTEST_OPPONENT_RALPH, + CONTEST_OPPONENT_ROSA, + CONTEST_OPPONENT_KEATON, + CONTEST_OPPONENT_MAYRA, + CONTEST_OPPONENT_LAMAR, + CONTEST_OPPONENT_AUBREY, + CONTEST_OPPONENT_NIGEL, + CONTEST_OPPONENT_CAMILLE, + CONTEST_OPPONENT_DEON, + CONTEST_OPPONENT_JANELLE, + CONTEST_OPPONENT_HEATH, + CONTEST_OPPONENT_SASHA, + CONTEST_OPPONENT_FRANKIE, + CONTEST_OPPONENT_HELEN, + CONTEST_OPPONENT_CAMILE, + CONTEST_OPPONENT_MARTIN, + CONTEST_OPPONENT_SERGIO, + CONTEST_OPPONENT_KAILEY, + CONTEST_OPPONENT_PERLA, + CONTEST_OPPONENT_CLARA, + CONTEST_OPPONENT_JAKOB, + CONTEST_OPPONENT_TREY, + CONTEST_OPPONENT_LANE +}; // All contest opponents have a common set of AI flags (which contains all of the actually // useful AI scripts, as well as some dummys) and a random combination of 2-3 dummy flags. From c1cfd3ac665b939be0e853b12e110ff8f3471bae Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 3 Feb 2023 16:01:13 -0500 Subject: [PATCH 034/125] Add fix for commented bug --- src/frontier_pass.c | 15 +++++++++++++-- src/graphics.c | 1 - 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 61bd1d409..07e06ad3b 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -30,6 +30,17 @@ #include "constants/region_map_sections.h" #include "constants/songs.h" +// gFrontierPassBg_Pal has 8*16 colors, but they attempt to load 13*16 colors. +// As a result it goes out of bounds and interprets 160 bytes of whatever comes +// after gFrontierPassBg_Pal (by default, gFrontierPassBg_Gfx) as a palette. +// Nothing uses these colors (except the Trainer Card, which correctly writes them) +// so in practice this bug has no effect on the game. +#ifdef BUGFIX +#define NUM_BG_PAL_SLOTS 8 +#else +#define NUM_BG_PAL_SLOTS 13 +#endif + // All windows displayed in the frontier pass. enum { @@ -768,7 +779,7 @@ static bool32 InitFrontierPass(void) CopyBgTilemapBufferToVram(2); break; case 8: - LoadPalette(gFrontierPassBg_Pal[0], 0, 13 * PLTT_SIZE_4BPP); + LoadPalette(gFrontierPassBg_Pal, 0, NUM_BG_PAL_SLOTS * PLTT_SIZE_4BPP); LoadPalette(gFrontierPassBg_Pal[1 + sPassData->trainerStars], BG_PLTT_ID(1), PLTT_SIZE_4BPP); LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(15), PLTT_SIZE_4BPP); DrawFrontierPassBg(); @@ -1412,7 +1423,7 @@ static bool32 InitFrontierMap(void) case 5: if (FreeTempTileDataBuffersIfPossible()) return FALSE; - LoadPalette(gFrontierPassBg_Pal[0], BG_PLTT_ID(0), 13 * PLTT_SIZE_4BPP); + LoadPalette(gFrontierPassBg_Pal, BG_PLTT_ID(0), NUM_BG_PAL_SLOTS * PLTT_SIZE_4BPP); LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(15), PLTT_SIZE_4BPP); CopyToBgTilemapBuffer(2, sMapScreen_Tilemap, 0, 0); CopyBgTilemapBufferToVram(2); diff --git a/src/graphics.c b/src/graphics.c index e0045ba6b..f6b3ce0af 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1520,7 +1520,6 @@ const u16 gTitleScreenPressStartPal[] = INCBIN_U16("graphics/title_screen/p const u32 gTitleScreenPressStartGfx[] = INCBIN_U32("graphics/title_screen/press_start.4bpp.lz"); const u32 gTitleScreenPokemonLogoTilemap[] = INCBIN_U32("graphics/title_screen/pokemon_logo.bin.lz"); -// size in LoadPalette calls is reported as 0xD0 << 1, which is 0x1A0, but palette is only 0x100 bytes long so it loads garbage as well const u16 gFrontierPassBg_Pal[][16] = INCBIN_U16("graphics/frontier_pass/bg.gbapal"); const u32 gFrontierPassBg_Gfx[] = INCBIN_U32("graphics/frontier_pass/bg.4bpp.lz"); const u32 gFrontierPassMapAndCard_Gfx[] = INCBIN_U32("graphics/frontier_pass/map_and_card.8bpp.lz"); From bbf0cf0103de221fd54b9348f1ee0b1e5510c2ce Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 4 Feb 2023 00:00:38 -0500 Subject: [PATCH 035/125] Stop hard-coding number of preset names --- src/main_menu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main_menu.c b/src/main_menu.c index 845939674..6808a8f11 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -503,7 +503,9 @@ static const u8 *const sFemalePresetNames[] = { gText_DefaultNameHalie }; -// .text +// The number of male vs. female names is assumed to be the same. +// If they aren't, the smaller of the two sizes will be used and any extra names will be ignored. +#define NUM_PRESET_NAMES min(ARRAY_COUNT(sMalePresetNames), ARRAY_COUNT(sFemalePresetNames)) enum { @@ -1597,7 +1599,7 @@ static void Task_NewGameBirchSpeech_StartNamingScreen(u8 taskId) { FreeAllWindowBuffers(); FreeAndDestroyMonPicSprite(gTasks[taskId].tLotadSpriteId); - NewGameBirchSpeech_SetDefaultPlayerName(Random() % 20); + NewGameBirchSpeech_SetDefaultPlayerName(Random() % NUM_PRESET_NAMES); DestroyTask(taskId); DoNamingScreen(NAMING_SCREEN_PLAYER, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_NewGameBirchSpeech_ReturnFromNamingScreen); } From c2f284a1d334ad6b1411c64ee197dfc5299a060d Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Mon, 6 Feb 2023 10:24:05 -0300 Subject: [PATCH 036/125] =?UTF-8?q?Apply=20official=20palettes=20for=20Gen?= =?UTF-8?q?=201=20Pok=C3=A9mon.=20#2593?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 136016ee4f13c0b5b145018cea3f569da20cf63e Author: Jaizu Date: Sun Feb 5 14:58:50 2023 +0100 Fix Kangaskhan commit 77c618a2ab446accba74ce3b8310f07fd09025b9 Author: Jaizu Date: Sun Feb 5 14:58:40 2023 +0100 Fix Rhyhorn commit 4c55bf6534469c079374ebad5869acba46273685 Author: Jaizu Date: Sun Feb 5 14:58:26 2023 +0100 Fix Mewtwo commit 281161396ef9d7386ea2f27925f20ff79175ad78 Author: Jaizu Date: Sun Feb 5 14:58:18 2023 +0100 Fix Omanyte commit a3616fc74e7f52a5c82fcac49071964c87bc1e19 Author: Jaizu Date: Sun Feb 5 14:58:06 2023 +0100 Fix Starmie commit a383a4e2ff0eac66d82059d06dde74257381e1a4 Author: Jaizu Date: Sun Feb 5 14:57:57 2023 +0100 Fix Vaporeon commit a7950a1f345f7fd9e0102ec168ff71b119b2a411 Author: Jaizu Date: Sun Feb 5 14:55:04 2023 +0100 Fix Voltorb sprite commit f0d8f5091f88f015f021409d7ab000f372becb86 Author: Jaizu Date: Sun Feb 5 14:54:53 2023 +0100 Fix Rhydon sprite commit b0d260e68942b7bb44e50f9dcc31efd60df61fb3 Author: Jaizu Date: Sun Feb 5 14:54:44 2023 +0100 Fix Tauros sprite commit 092132b3e469b187b373c1fb2831cc7b94f5536a Author: Jaizu Date: Sun Feb 5 14:54:31 2023 +0100 Fix Tangela sprite commit 348006fc98b7258ff84628770b07ee345537a1d5 Author: Jaizu Date: Sun Feb 5 14:52:53 2023 +0100 Fix Seaking commit 08e1b2a70e784403f6226132dda0b9af7dccdfaf Author: Jaizu Date: Sun Feb 5 14:52:42 2023 +0100 Fix Snorlax commit 0eb0c22154f320ea7fc40102041b44ee827ad550 Author: Jaizu Date: Sun Feb 5 14:52:30 2023 +0100 Fix Weezing commit 734e26d09e95526b76641cbd9e81d8d08ae7e698 Author: Jaizu Date: Sun Feb 5 14:52:22 2023 +0100 Fix Zapdos commit f64a73f055d2f04081450c280bad2a53eddec89b Author: Jaizu Date: Sun Feb 5 14:52:13 2023 +0100 Fix Jynx commit 6df3de03c15b236ab1d35817fc88a791f67fccaf Author: Jaizu Date: Sun Feb 5 14:52:04 2023 +0100 Fix Hitmonchan commit 011727960a6ff3488f3afc71e246e01ecc3c14ec Author: Jaizu Date: Sun Feb 5 14:51:54 2023 +0100 Fix Moltres commit bac77a1bd86f5a15d8adb7498baaa5a687a33614 Author: Jaizu Date: Sun Feb 5 14:51:43 2023 +0100 Fix Seadra commit 9c3ac9253d514faad2d458aeac7b21d1f091bf2e Author: Jaizu Date: Sun Feb 5 14:51:31 2023 +0100 Fix Scyther, including its shiny commit 4004956d55855f872a9acd8f822f819a48fb43de Author: Jaizu Date: Sun Feb 5 14:50:31 2023 +0100 Fix Pinsir commit aaad68ad622d5e9bf65cb75b40804cbb3af73203 Author: Jaizu Date: Sun Feb 5 14:50:20 2023 +0100 Fix Mr. Mime commit 42df7c97b662b231cfa665aeca558a60d77d0714 Author: Jaizu Date: Sun Feb 5 14:50:11 2023 +0100 Fix Flareon commit 9d4b7685710892fedb1a0064a48e7928f44ffd5d Author: Jaizu Date: Sun Feb 5 14:49:58 2023 +0100 Fix Marowak commit 5c357f209c38d24246067453b4e65f4aa07c98e3 Author: Jaizu Date: Sun Feb 5 14:49:44 2023 +0100 Fix Charizard commit 67a098eea1f7a48405881e85fbbf3104c0d0ba5e Author: Jaizu Date: Sun Feb 5 14:49:33 2023 +0100 Fix Magikarp commit c4750f39ed4a504561683ef0d54029efad63e8e6 Author: Jaizu Date: Sun Feb 5 14:49:26 2023 +0100 Fix Magikarp commit 3792029c61685b762fbf34f016623a9bac6cbe34 Author: Jaizu Date: Sun Feb 5 14:49:13 2023 +0100 Fix Mew commit d66d0a727c1d66bd9abe1c10f19656b7a333a33c Author: Jaizu Date: Sun Feb 5 14:49:01 2023 +0100 Fix Magmar commit d43a68ee3069e66fc5e5a842e29cd20fb76a9463 Author: Jaizu Date: Sun Feb 5 14:48:53 2023 +0100 Fix Kingler commit be1a79d4ff977b0abb9545571cdcc7af0e402e3a Author: Jaizu Date: Sun Feb 5 14:48:46 2023 +0100 Fix Koffing commit 1c0e2dd055ea8040ff3677ab0af4b277191091a5 Author: Jaizu Date: Sun Feb 5 14:48:37 2023 +0100 Fix Krabby commit 40245f88805be12c792a3e82892fd12f5a65009a Author: Jaizu Date: Sun Feb 5 14:48:30 2023 +0100 Fix Lapras commit 9b55067bb73127e3a03d0c5ddbe36d6c5b7a366d Author: Jaizu Date: Sun Feb 5 14:48:23 2023 +0100 Fix Horsea commit 818b337dfd00c4bf811610e0d1d3d00729411d68 Author: Jaizu Date: Sun Feb 5 14:48:14 2023 +0100 Fix Dragonite commit 49ac05e98e03ab6dd72d24477cee820c3618d87f Author: Jaizu Date: Sun Feb 5 14:48:06 2023 +0100 Fix Articuno commit 1ffb74e87858f5f027646430016411e0ee58ebd2 Author: Jaizu Date: Sun Feb 5 14:47:54 2023 +0100 Fix Chansey commit 0fd6e6df1f4b5fa629a5b6287909141fca7a05af Author: Jaizu Date: Sun Feb 5 14:47:45 2023 +0100 Fix Electrode commit c25f6dc173692b92413bbede7a49426a3d5c168c Author: Jaizu Date: Sun Feb 5 14:47:38 2023 +0100 Fix Staryu commit be89da73168154beab28112f9423f3514c1d8fc1 Author: Jaizu Date: Sun Feb 5 14:47:22 2023 +0100 Fix Jolteon commit 02c6ee40c6354ae9b1bbc7a1714f80a157bd417c Author: Jaizu Date: Sun Feb 5 14:47:11 2023 +0100 Fix hitmonlee commit 739c6a2b45cb9f26a5d6dc4718a682023584cc92 Author: Jaizu Date: Sun Feb 5 14:46:57 2023 +0100 Fix Gyarados commit effa1a8d1ffd40cf232aee71fbf3a49559431145 Author: Jaizu Date: Sun Feb 5 14:46:49 2023 +0100 Fix exeggcute commit 381e0362593ff06a5d7fcc841f2ab6a6805302c5 Author: Jaizu Date: Sun Feb 5 14:46:38 2023 +0100 Exeggutor commit 38f97d7856eb3658ef4e6202670e14fec4bc2edc Author: Jaizu Date: Sun Feb 5 14:46:26 2023 +0100 Fix Cubone commit 0cb9cdcd4f2a102d963e85e34cbe4921c27b5812 Author: Jaizu Date: Sun Feb 5 14:46:18 2023 +0100 Fix Eevee commit e677911485017bb20628cd6b4667897493131429 Author: Jaizu Date: Sun Feb 5 14:46:07 2023 +0100 Fix Aerodactyl commit 7d8e96a32d2b5e4a9f9a71a72a3e925d6b152da3 Author: Jaizu Date: Sun Feb 5 13:37:36 2023 +0100 Fix Onix commit 8839619e714d2806e28c09c34d8b5e950b305880 Author: Jaizu Date: Sun Feb 5 13:36:32 2023 +0100 Fix Gengar commit 7c8f940b41c5aaf4567695070e8374d50ad38cbd Author: Jaizu Date: Sun Feb 5 13:36:27 2023 +0100 Fix Gastly commit 604f7deec5f18a416d2d2e00e7b33b9ca8acc2d6 Author: Jaizu Date: Sun Feb 5 13:32:17 2023 +0100 Fix Cloyster commit 8f2765fa0dc3331cda91dfbf1c1ced1a812e2e57 Author: Jaizu Date: Sun Feb 5 13:30:35 2023 +0100 Fix Muk commit de855a235ad692bfb4f2fbce7ce75547c2d02c1a Author: Jaizu Date: Sun Feb 5 13:29:13 2023 +0100 Fix Grimer commit 04188aa7f33b61c0301e0a5494043a7eb8daa4c8 Author: Jaizu Date: Sun Feb 5 13:28:20 2023 +0100 Fix Dewgong commit 8b107880534f85dcd7af37db387c1f0b89809aeb Author: Jaizu Date: Sun Feb 5 13:27:08 2023 +0100 Fix Seel commit 2a73093423d85b1aa81599d0375b020a93f4a69a Author: Jaizu Date: Sun Feb 5 13:27:02 2023 +0100 Fix Dodrio commit 859bfa4c9bd0527ecf8bc46b9d338b7af8363b37 Author: Jaizu Date: Sun Feb 5 13:23:15 2023 +0100 Fix Farfetch'd commit 17943ebb05c76ce6a6dbcc5092d511ef7bec2e99 Author: Jaizu Date: Sun Feb 5 13:21:57 2023 +0100 Fix Magneton commit f548e0d22c5a1e9247b5c08ebb892e95467e55fe Author: Jaizu Date: Sun Feb 5 13:20:22 2023 +0100 Fix Magnemite commit dff56dad0de0abab600b1466648a1a9e6be99a64 Author: Jaizu Date: Sun Feb 5 13:18:16 2023 +0100 Fix Slowbro commit 8ea99acbc9466722ea1d7752f97e2ef9b42c7e8d Author: Jaizu Date: Mon Jan 30 18:15:13 2023 +0100 Fix Golem commit 8c70cfbb92dce4d754b7e70d03f563ff1302c781 Author: Jaizu Date: Mon Jan 30 18:12:12 2023 +0100 Fix Graveler commit 50ce5a477d34f5ee522f0c789091b4cf38aec61e Author: Jaizu Date: Mon Jan 30 18:11:51 2023 +0100 Fix Geodude commit 6480770d40fa25900b78348d4438a47497ac1b92 Author: Jaizu Date: Mon Jan 30 18:10:16 2023 +0100 Fix Tentacruel commit 14705cee715a4abf9916e86e1c73b085f641578c Author: Jaizu Date: Mon Jan 30 18:09:20 2023 +0100 Fix Tentacool commit f0862700287832a9d7c123996b43345dfe6c130f Author: Jaizu Date: Mon Jan 30 18:08:16 2023 +0100 Fix Victreebel commit 466f0243ba0d4bc32efd1689a2cd834cb80702ec Author: Jaizu Date: Mon Jan 30 18:06:40 2023 +0100 Fix Weepinbell commit 7dfa5a42b34736c40874b7ef81da136975bd4c52 Author: Jaizu Date: Mon Jan 30 18:05:04 2023 +0100 Fix Bellsprout commit e28baaf465fb80fc9f3a66f8cc7e5a332dd8d3de Author: Jaizu Date: Mon Jan 30 18:03:44 2023 +0100 Fix Machamp commit 8283537accc6c3a64347eea4bff0084369740957 Author: Jaizu Date: Mon Jan 30 17:59:00 2023 +0100 Fix Machoke commit b9aca57833f55ef41f9922b59446fb58ed8d1c95 Author: Jaizu Date: Mon Jan 30 17:55:02 2023 +0100 Fix Machop commit bfb122483cca28f30b87a950ddefaf2b7ec6a58b Author: Jaizu Date: Mon Jan 30 17:54:08 2023 +0100 Fix Alakazam commit c8a070556299c60a5da7c52cd9e4ec194ffbd7bc Author: Jaizu Date: Mon Jan 30 17:52:56 2023 +0100 Fix Kadabra commit 565a8f8ca603192c3d1abacf67bb1a016f5fcf53 Author: Jaizu Date: Mon Jan 30 17:51:23 2023 +0100 Fix Abra commit 5cf78bc0251ff39062f0e07c077f88dd6537be31 Author: Jaizu Date: Mon Jan 30 17:49:49 2023 +0100 Fix Poliwrath commit 887f7c8c5f291d31183aba47efe7a6e5a8520798 Author: Jaizu Date: Mon Jan 30 17:48:46 2023 +0100 Fix Poliwhirl commit 2fa3606401013592be494fbd76bec8e871c026b2 Author: Jaizu Date: Mon Jan 30 17:47:17 2023 +0100 Fix Poliwag commit fa6561101e68e5d802f5106e84ae929ea4e7f62c Author: Jaizu Date: Mon Jan 30 17:45:11 2023 +0100 Fix Arcanine commit ceb0a9423b5e888d500bc82a00ac341b862a6f19 Author: Jaizu Date: Mon Jan 30 17:42:46 2023 +0100 Fix Growlithe commit 4052e2b36db3f96b7583d2f320cd519cedd9537c Author: Jaizu Date: Mon Jan 30 17:40:09 2023 +0100 Fix Primeape commit b7c752fd6fecbbbbe3300a7813e6efd4fb8cebc9 Author: Jaizu Date: Mon Jan 30 17:38:33 2023 +0100 Fix Mankey commit 76f5bb40c53ea7a8eeff3c86bf17123009b28258 Author: Jaizu Date: Mon Jan 30 17:35:59 2023 +0100 Fix Golduck commit eb658c62ddcc1c24716c8cf5f5a0a357ac6dd304 Author: Jaizu Date: Mon Jan 30 17:34:45 2023 +0100 Fix Psyduck commit a7d8055bbc954d521033a413bcde39ce973a5128 Author: Jaizu Date: Mon Jan 30 17:33:13 2023 +0100 Fix Meowth commit 773678e9339e53e3997400a9edf7706afa0181d6 Author: Jaizu Date: Mon Jan 30 17:26:23 2023 +0100 Fix Dugtrio palette commit e8a17bd3d0b485ba7a9e3466539a53c2e0fa92a5 Author: Jaizu Date: Mon Jan 30 17:25:33 2023 +0100 Fix Diglett commit 6b1c09e3622d3e7b35a77c80fef2862cd1f33d67 Author: Jaizu Date: Mon Jan 30 17:24:30 2023 +0100 Fix Venomoth commit 474e83c2a2ed55d136221c896002c926c2bd7551 Author: Jaizu Date: Mon Jan 30 17:22:09 2023 +0100 Fix Venonat commit 0f7e1a23884765b4afc37aa70927823639ccc34d Author: Jaizu Date: Mon Jan 30 17:17:56 2023 +0100 Fix Paras commit 0134efd983a9f7be44d25c744141301507e3376d Author: Jaizu Date: Tue Jan 24 15:34:12 2023 +0100 Fix Ninetales commit de5d8407ad68fcdab66590b232c34e53619f4edb Author: Jaizu Date: Tue Jan 24 15:34:03 2023 +0100 Fix Vulpix commit 24d81ccf960f9c52d9e3798f87699e550a12d887 Author: Jaizu Date: Tue Jan 24 15:33:56 2023 +0100 Fix Jigglypuff commit dd9c63d6f2532705027146e6f92196e9958ccafb Author: Jaizu Date: Tue Jan 24 15:33:47 2023 +0100 Fix Golbat commit 94c9e3a94360fe4962b7a459cce25598da1ff71c Author: Jaizu Date: Tue Jan 24 15:33:38 2023 +0100 Fix Gloom commit 43a45d18d83385bee306ee485d9a273dfb4015d6 Author: Jaizu Date: Tue Jan 24 15:33:29 2023 +0100 Fix Vileplume commit 4573f1b48dd46dd3ee252e8b271d0e7f133d90b1 Author: Jaizu Date: Tue Jan 24 15:33:19 2023 +0100 Fix Oddish commit 6d9e26270dd8c7aef2fd71b45dfbd79222e2e307 Author: Jaizu Date: Tue Jan 24 15:33:07 2023 +0100 Fix Wigglytuff commit 1817d85a2b6707f421179c5fa69468d0240a8ced Author: Jaizu Date: Tue Jan 24 15:32:51 2023 +0100 Fix Zubat commit fca339f5e0a44028be6fbec39f53564f603c8ad8 Author: Jaizu Date: Tue Jan 24 15:13:30 2023 +0100 Fix Clefable commit c8e0d3fce1c455e453a2fc50ef6ee0e98adf9867 Author: Jaizu Date: Tue Jan 24 15:13:19 2023 +0100 Fix Clefairy commit a6e462b20cf6bc6e820100f4bba71222f32a9a7a Author: Jaizu Date: Tue Jan 24 15:13:11 2023 +0100 Fix Nidoking commit d71f5fd81d10ffff2006f9f8ae0c4a0eb48ae3dd Author: Jaizu Date: Tue Jan 24 15:12:58 2023 +0100 Fix Nidoqueen commit a1a3e1d68a3787c0b45a960c686943dc85d751f6 Author: Jaizu Date: Tue Jan 24 15:12:51 2023 +0100 Fix Nidoran f commit bbaa397c78ab85853f0047be1cd694907e29c470 Author: Jaizu Date: Tue Jan 24 15:12:42 2023 +0100 Fix Nidoran m commit d1432e4517f0a12bbe337ac1ef59ab19e4c65eb6 Author: Jaizu Date: Tue Jan 24 15:12:31 2023 +0100 Fix Nidorina commit 9dd0560bfa343a10029524ac141529609607a5f6 Author: Jaizu Date: Tue Jan 24 15:12:21 2023 +0100 Fix Nidorino commit 9c6ba83269d1e0963fc7ba0f23d95e90afc1c011 Author: Jaizu Date: Tue Jan 24 14:53:52 2023 +0100 Fix Sandslash commit 7cecb0e0eeeb01a4acc129d0b715184444a4f33a Author: Jaizu Date: Tue Jan 24 14:53:46 2023 +0100 Fix Snadshrew commit 4718cf91a52687ac984c296ec2e962510cb8742b Author: Jaizu Date: Tue Jan 24 14:49:40 2023 +0100 Fix Raichu commit 4c84431a76bb2f0b7647a4fcd22ee9b1396286b9 Author: Jaizu Date: Tue Jan 24 14:49:35 2023 +0100 Fix Pikachu commit 2fb719541a3fb2a4636793d4d8e938a2840aba5f Author: Jaizu Date: Tue Jan 24 14:49:28 2023 +0100 Fix Arbok commit a926d6741abae61d81caa8e56e1d529cf1b41cbf Author: Jaizu Date: Tue Jan 24 14:49:19 2023 +0100 Fix Ekans commit bf4c126663cb7b887519e62c471c68db0ed59fff Author: Jaizu Date: Tue Jan 24 14:43:34 2023 +0100 Fix Fearow palettes commit bc45dccdc7aa44597504312a879fcd496cd74ba7 Author: Jaizu Date: Tue Jan 24 14:34:09 2023 +0100 Fix Spearow commit fa13bf6b7f2dbb991b46bf8a7ec495f2e6991fd7 Author: Jaizu Date: Tue Jan 24 14:34:02 2023 +0100 Fix Raticate commit d3c43ab392319c220905922b70032d170436000c Author: Jaizu Date: Tue Jan 24 14:33:54 2023 +0100 Fix Rattata commit 518d4c7fba53065d944ff9164cb59cb483c06aab Author: Jaizu Date: Tue Jan 24 14:27:36 2023 +0100 Fix Pidgeot commit cc19533975a948ad6f78d2d4c6f8f5a5bd7e0be1 Author: Jaizu Date: Tue Jan 24 14:25:30 2023 +0100 Fix Pidgeotto commit 90a10d88572e7317c8e29d5419b87513f22c966f Author: Jaizu Date: Tue Jan 24 14:20:34 2023 +0100 Fix Beedrill commit 7510b413bdf5e205d7ae5302599b548e236ac631 Author: Jaizu Date: Tue Jan 24 14:20:22 2023 +0100 Fix Kakuna commit 2ea6620202ba80e7baacf917cff537d41bfd9d68 Author: Jaizu Date: Tue Jan 24 14:20:10 2023 +0100 Fix Pidgey commit 492add120005a5bbe2af89bca86acccccbbd010c Author: Jaizu Date: Tue Jan 24 14:20:01 2023 +0100 Fix Weedle commit 2f32c7b41e0e59109dca0a52c92cd92173be5dd2 Author: Jaizu Date: Tue Jan 24 14:10:39 2023 +0100 Fix Butterfree commit 5c7431c443f831c1b3571a9cd6be03c8cc7e9440 Author: Jaizu Date: Tue Jan 24 14:10:28 2023 +0100 Fix Caterpie commit d7af028d57a2ee56dcae3cea400200047d761d98 Author: Jaizu Date: Tue Jan 24 14:04:55 2023 +0100 Fix Blastoise sprite commit b304d60da0c8ad56ee11bde33aa20ca8f6d0d036 Author: Jaizu Date: Tue Jan 24 14:04:47 2023 +0100 Fix Wartortle sprite commit a581b63cdcd7342e94b9baabe826612f205a6f44 Author: Jaizu Date: Tue Jan 24 14:04:37 2023 +0100 Fix Squirtle sprite --- graphics/pokemon/abra/anim_front.png | Bin 935 -> 861 bytes graphics/pokemon/abra/front.png | Bin 620 -> 635 bytes graphics/pokemon/abra/normal.pal | 12 ++++----- graphics/pokemon/aerodactyl/anim_front.png | Bin 1467 -> 1466 bytes graphics/pokemon/aerodactyl/front.png | Bin 935 -> 905 bytes graphics/pokemon/aerodactyl/normal.pal | 22 +++++++-------- graphics/pokemon/alakazam/anim_front.png | Bin 1215 -> 1234 bytes graphics/pokemon/alakazam/front.png | Bin 922 -> 932 bytes graphics/pokemon/alakazam/normal.pal | 14 +++++----- graphics/pokemon/arbok/anim_front.png | Bin 1451 -> 1391 bytes graphics/pokemon/arbok/front.png | Bin 818 -> 800 bytes graphics/pokemon/arbok/normal.pal | 24 ++++++++--------- graphics/pokemon/arcanine/anim_front.png | Bin 1639 -> 1691 bytes graphics/pokemon/arcanine/front.png | Bin 1105 -> 1107 bytes graphics/pokemon/arcanine/normal.pal | 16 +++++------ graphics/pokemon/articuno/anim_front.png | Bin 1810 -> 1773 bytes graphics/pokemon/articuno/front.png | Bin 1048 -> 1038 bytes graphics/pokemon/articuno/normal.pal | 16 +++++------ graphics/pokemon/beedrill/anim_front.png | Bin 1231 -> 1233 bytes graphics/pokemon/beedrill/front.png | Bin 849 -> 840 bytes graphics/pokemon/beedrill/normal.pal | 26 +++++++++--------- graphics/pokemon/bellsprout/anim_front.png | Bin 839 -> 765 bytes graphics/pokemon/bellsprout/front.png | Bin 529 -> 479 bytes graphics/pokemon/bellsprout/normal.pal | 24 ++++++++--------- graphics/pokemon/blastoise/anim_front.png | Bin 1667 -> 1638 bytes graphics/pokemon/blastoise/back.png | Bin 797 -> 747 bytes graphics/pokemon/blastoise/front.png | Bin 1006 -> 988 bytes graphics/pokemon/blastoise/normal.pal | 28 +++++++++---------- graphics/pokemon/blastoise/shiny.pal | 2 +- graphics/pokemon/butterfree/anim_front.png | Bin 1155 -> 1165 bytes graphics/pokemon/butterfree/front.png | Bin 798 -> 790 bytes graphics/pokemon/butterfree/normal.pal | 24 ++++++++--------- graphics/pokemon/caterpie/anim_front.png | Bin 715 -> 701 bytes graphics/pokemon/caterpie/front.png | Bin 522 -> 496 bytes graphics/pokemon/caterpie/normal.pal | 26 +++++++++--------- graphics/pokemon/chansey/anim_front.png | Bin 1050 -> 1001 bytes graphics/pokemon/chansey/front.png | Bin 640 -> 591 bytes graphics/pokemon/chansey/normal.pal | 24 ++++++++--------- graphics/pokemon/charizard/anim_front.png | Bin 1640 -> 1662 bytes graphics/pokemon/charizard/front.png | Bin 1034 -> 1007 bytes graphics/pokemon/charizard/normal.pal | 8 +++--- graphics/pokemon/clefable/anim_front.png | Bin 992 -> 955 bytes graphics/pokemon/clefable/back.png | Bin 690 -> 631 bytes graphics/pokemon/clefable/front.png | Bin 695 -> 639 bytes graphics/pokemon/clefable/normal.pal | 24 ++++++++--------- graphics/pokemon/clefable/shiny.pal | 2 +- graphics/pokemon/clefairy/anim_front.png | Bin 787 -> 766 bytes graphics/pokemon/clefairy/front.png | Bin 566 -> 528 bytes graphics/pokemon/clefairy/normal.pal | 22 +++++++-------- graphics/pokemon/cloyster/anim_front.png | Bin 1455 -> 1429 bytes graphics/pokemon/cloyster/front.png | Bin 887 -> 861 bytes graphics/pokemon/cloyster/normal.pal | 24 ++++++++--------- graphics/pokemon/cubone/anim_front.png | Bin 810 -> 822 bytes graphics/pokemon/cubone/front.png | Bin 493 -> 495 bytes graphics/pokemon/cubone/normal.pal | 14 +++++----- graphics/pokemon/dewgong/anim_front.png | Bin 1173 -> 1167 bytes graphics/pokemon/dewgong/front.png | Bin 757 -> 643 bytes graphics/pokemon/dewgong/normal.pal | 10 +++---- graphics/pokemon/diglett/anim_front.png | Bin 482 -> 466 bytes graphics/pokemon/diglett/front.png | Bin 393 -> 371 bytes graphics/pokemon/diglett/normal.pal | 26 +++++++++--------- graphics/pokemon/dodrio/anim_front.png | Bin 1634 -> 1581 bytes graphics/pokemon/dodrio/front.png | Bin 984 -> 944 bytes graphics/pokemon/dodrio/normal.pal | 26 +++++++++--------- graphics/pokemon/dragonite/anim_front.png | Bin 1672 -> 1665 bytes graphics/pokemon/dragonite/front.png | Bin 1015 -> 974 bytes graphics/pokemon/dragonite/normal.pal | 16 +++++------ graphics/pokemon/dugtrio/anim_front.png | Bin 817 -> 771 bytes graphics/pokemon/dugtrio/front.png | Bin 618 -> 587 bytes graphics/pokemon/dugtrio/normal.pal | 26 +++++++++--------- graphics/pokemon/eevee/anim_front.png | Bin 857 -> 835 bytes graphics/pokemon/eevee/anim_frontf.png | Bin 842 -> 840 bytes graphics/pokemon/eevee/front.png | Bin 559 -> 535 bytes graphics/pokemon/eevee/frontf.png | Bin 542 -> 538 bytes graphics/pokemon/eevee/normal.pal | 18 ++++++------- graphics/pokemon/ekans/anim_front.png | Bin 908 -> 898 bytes graphics/pokemon/ekans/front.png | Bin 625 -> 593 bytes graphics/pokemon/ekans/normal.pal | 22 +++++++-------- graphics/pokemon/electrode/anim_front.png | Bin 759 -> 729 bytes graphics/pokemon/electrode/front.png | Bin 500 -> 472 bytes graphics/pokemon/electrode/normal.pal | 18 ++++++------- graphics/pokemon/exeggcute/anim_front.png | Bin 1029 -> 1043 bytes graphics/pokemon/exeggcute/front.png | Bin 618 -> 636 bytes graphics/pokemon/exeggcute/normal.pal | 14 +++++----- graphics/pokemon/exeggutor/anim_front.png | Bin 1687 -> 1504 bytes graphics/pokemon/exeggutor/front.png | Bin 956 -> 916 bytes graphics/pokemon/exeggutor/normal.pal | 24 ++++++++--------- graphics/pokemon/farfetchd/anim_front.png | Bin 1189 -> 1192 bytes graphics/pokemon/farfetchd/front.png | Bin 756 -> 752 bytes graphics/pokemon/farfetchd/normal.pal | 26 +++++++++--------- graphics/pokemon/fearow/anim_front.png | Bin 1587 -> 1619 bytes graphics/pokemon/fearow/back.png | Bin 653 -> 631 bytes graphics/pokemon/fearow/normal.pal | 28 +++++++++---------- graphics/pokemon/fearow/shiny.pal | 30 ++++++++++----------- graphics/pokemon/flareon/anim_front.png | Bin 1283 -> 1290 bytes graphics/pokemon/flareon/front.png | Bin 756 -> 726 bytes graphics/pokemon/flareon/normal.pal | 20 +++++++------- graphics/pokemon/gastly/anim_front.png | Bin 1013 -> 993 bytes graphics/pokemon/gastly/front.png | Bin 625 -> 601 bytes graphics/pokemon/gastly/normal.pal | 22 +++++++-------- graphics/pokemon/gengar/anim_front.png | Bin 1172 -> 1197 bytes graphics/pokemon/gengar/front.png | Bin 709 -> 702 bytes graphics/pokemon/gengar/normal.pal | 22 +++++++-------- graphics/pokemon/geodude/anim_front.png | Bin 809 -> 792 bytes graphics/pokemon/geodude/front.png | Bin 503 -> 510 bytes graphics/pokemon/geodude/normal.pal | 14 +++++----- graphics/pokemon/gloom/anim_front.png | Bin 1037 -> 1010 bytes graphics/pokemon/gloom/front.png | Bin 696 -> 657 bytes graphics/pokemon/gloom/normal.pal | 24 ++++++++--------- graphics/pokemon/golbat/anim_front.png | Bin 1230 -> 1219 bytes graphics/pokemon/golbat/front.png | Bin 808 -> 782 bytes graphics/pokemon/golbat/normal.pal | 22 +++++++-------- graphics/pokemon/golduck/anim_front.png | Bin 1269 -> 1089 bytes graphics/pokemon/golduck/front.png | Bin 785 -> 756 bytes graphics/pokemon/golduck/normal.pal | 26 +++++++++--------- graphics/pokemon/golem/anim_front.png | Bin 1325 -> 1339 bytes graphics/pokemon/golem/front.png | Bin 914 -> 886 bytes graphics/pokemon/golem/normal.pal | 26 +++++++++--------- graphics/pokemon/graveler/anim_front.png | Bin 744 -> 788 bytes graphics/pokemon/graveler/front.png | Bin 720 -> 747 bytes graphics/pokemon/graveler/normal.pal | 16 +++++------ graphics/pokemon/grimer/anim_front.png | Bin 1106 -> 1090 bytes graphics/pokemon/grimer/front.png | Bin 678 -> 665 bytes graphics/pokemon/grimer/normal.pal | 18 ++++++------- graphics/pokemon/growlithe/anim_front.png | Bin 1111 -> 933 bytes graphics/pokemon/growlithe/back.png | Bin 680 -> 582 bytes graphics/pokemon/growlithe/front.png | Bin 660 -> 631 bytes graphics/pokemon/growlithe/normal.pal | 20 +++++++------- graphics/pokemon/gyarados/anim_front.png | Bin 2300 -> 2316 bytes graphics/pokemon/gyarados/front.png | Bin 1241 -> 1211 bytes graphics/pokemon/gyarados/normal.pal | 30 ++++++++++----------- graphics/pokemon/hitmonchan/anim_front.png | Bin 1405 -> 1280 bytes graphics/pokemon/hitmonchan/normal.pal | 26 +++++++++--------- graphics/pokemon/hitmonlee/anim_front.png | Bin 1219 -> 1177 bytes graphics/pokemon/hitmonlee/front.png | Bin 689 -> 666 bytes graphics/pokemon/hitmonlee/normal.pal | 22 +++++++-------- graphics/pokemon/horsea/anim_front.png | Bin 686 -> 721 bytes graphics/pokemon/horsea/front.png | Bin 441 -> 452 bytes graphics/pokemon/horsea/normal.pal | 20 +++++++------- graphics/pokemon/jigglypuff/anim_front.png | Bin 627 -> 645 bytes graphics/pokemon/jigglypuff/front.png | Bin 471 -> 478 bytes graphics/pokemon/jigglypuff/normal.pal | 18 ++++++------- graphics/pokemon/jolteon/anim_front.png | Bin 1024 -> 956 bytes graphics/pokemon/jolteon/front.png | Bin 662 -> 651 bytes graphics/pokemon/jolteon/normal.pal | 14 +++++----- graphics/pokemon/jynx/anim_front.png | Bin 1255 -> 1240 bytes graphics/pokemon/jynx/front.png | Bin 753 -> 724 bytes graphics/pokemon/jynx/normal.pal | 26 +++++++++--------- graphics/pokemon/kadabra/anim_front.png | Bin 1304 -> 1344 bytes graphics/pokemon/kadabra/front.png | Bin 917 -> 917 bytes graphics/pokemon/kadabra/normal.pal | 16 +++++------ graphics/pokemon/kakuna/anim_front.png | Bin 686 -> 584 bytes graphics/pokemon/kakuna/front.png | Bin 441 -> 451 bytes graphics/pokemon/kakuna/normal.pal | 18 ++++++------- graphics/pokemon/kangaskhan/anim_front.png | Bin 1774 -> 1719 bytes graphics/pokemon/kangaskhan/front.png | Bin 975 -> 974 bytes graphics/pokemon/kangaskhan/normal.pal | 22 +++++++-------- graphics/pokemon/kingler/anim_front.png | Bin 1359 -> 1382 bytes graphics/pokemon/kingler/front.png | Bin 824 -> 805 bytes graphics/pokemon/kingler/normal.pal | 24 ++++++++--------- graphics/pokemon/koffing/anim_front.png | Bin 1145 -> 1090 bytes graphics/pokemon/koffing/front.png | Bin 680 -> 657 bytes graphics/pokemon/koffing/normal.pal | 22 +++++++-------- graphics/pokemon/krabby/anim_front.png | Bin 1082 -> 1003 bytes graphics/pokemon/krabby/front.png | Bin 691 -> 652 bytes graphics/pokemon/krabby/normal.pal | 20 +++++++------- graphics/pokemon/lapras/anim_front.png | Bin 1289 -> 1227 bytes graphics/pokemon/lapras/front.png | Bin 797 -> 779 bytes graphics/pokemon/lapras/normal.pal | 24 ++++++++--------- graphics/pokemon/machamp/anim_front.png | Bin 1433 -> 1492 bytes graphics/pokemon/machamp/back.png | Bin 837 -> 796 bytes graphics/pokemon/machamp/front.png | Bin 985 -> 1013 bytes graphics/pokemon/machamp/normal.pal | 10 +++---- graphics/pokemon/machamp/shiny.pal | 2 +- graphics/pokemon/machoke/anim_front.png | Bin 1348 -> 1186 bytes graphics/pokemon/machoke/front.png | Bin 775 -> 787 bytes graphics/pokemon/machoke/normal.pal | 20 +++++++------- graphics/pokemon/machop/anim_front.png | Bin 849 -> 822 bytes graphics/pokemon/machop/front.png | Bin 599 -> 568 bytes graphics/pokemon/machop/normal.pal | 28 +++++++++---------- graphics/pokemon/magikarp/anim_front.png | Bin 1171 -> 1131 bytes graphics/pokemon/magikarp/front.png | Bin 700 -> 676 bytes graphics/pokemon/magikarp/normal.pal | 14 +++++----- graphics/pokemon/magmar/anim_front.png | Bin 1618 -> 1578 bytes graphics/pokemon/magmar/front.png | Bin 944 -> 919 bytes graphics/pokemon/magmar/normal.pal | 26 +++++++++--------- graphics/pokemon/magnemite/anim_front.png | Bin 570 -> 590 bytes graphics/pokemon/magnemite/front.png | Bin 416 -> 417 bytes graphics/pokemon/magnemite/normal.pal | 26 +++++++++--------- graphics/pokemon/magneton/anim_front.png | Bin 1309 -> 1320 bytes graphics/pokemon/magneton/front.png | Bin 872 -> 850 bytes graphics/pokemon/magneton/normal.pal | 22 +++++++-------- graphics/pokemon/mankey/anim_front.png | Bin 945 -> 976 bytes graphics/pokemon/mankey/front.png | Bin 618 -> 620 bytes graphics/pokemon/mankey/normal.pal | 18 ++++++------- graphics/pokemon/marowak/anim_front.png | Bin 1084 -> 1064 bytes graphics/pokemon/marowak/front.png | Bin 640 -> 610 bytes graphics/pokemon/marowak/normal.pal | 18 ++++++------- graphics/pokemon/meowth/anim_front.png | Bin 873 -> 879 bytes graphics/pokemon/meowth/back.png | Bin 738 -> 684 bytes graphics/pokemon/meowth/front.png | Bin 628 -> 620 bytes graphics/pokemon/meowth/normal.pal | 8 +++--- graphics/pokemon/meowth/shiny.pal | 6 ++--- graphics/pokemon/mew/anim_front.png | Bin 823 -> 831 bytes graphics/pokemon/mew/front.png | Bin 512 -> 525 bytes graphics/pokemon/mew/normal.pal | 16 +++++------ graphics/pokemon/mewtwo/anim_front.png | Bin 1471 -> 1457 bytes graphics/pokemon/mewtwo/front.png | Bin 852 -> 847 bytes graphics/pokemon/mewtwo/normal.pal | 18 ++++++------- graphics/pokemon/moltres/anim_front.png | Bin 1519 -> 1457 bytes graphics/pokemon/moltres/front.png | Bin 913 -> 869 bytes graphics/pokemon/moltres/normal.pal | 28 +++++++++---------- graphics/pokemon/mr_mime/anim_front.png | Bin 1128 -> 1125 bytes graphics/pokemon/mr_mime/front.png | Bin 800 -> 780 bytes graphics/pokemon/mr_mime/normal.pal | 24 ++++++++--------- graphics/pokemon/muk/anim_front.png | Bin 1270 -> 1256 bytes graphics/pokemon/muk/front.png | Bin 750 -> 738 bytes graphics/pokemon/muk/normal.pal | 16 +++++------ graphics/pokemon/nidoking/anim_front.png | Bin 1817 -> 1716 bytes graphics/pokemon/nidoking/front.png | Bin 1043 -> 1016 bytes graphics/pokemon/nidoking/normal.pal | 26 +++++++++--------- graphics/pokemon/nidoqueen/anim_front.png | Bin 1433 -> 1389 bytes graphics/pokemon/nidoqueen/front.png | Bin 836 -> 859 bytes graphics/pokemon/nidoqueen/normal.pal | 20 +++++++------- graphics/pokemon/nidoran_f/anim_front.png | Bin 783 -> 712 bytes graphics/pokemon/nidoran_f/front.png | Bin 498 -> 489 bytes graphics/pokemon/nidoran_f/normal.pal | 20 +++++++------- graphics/pokemon/nidoran_m/anim_front.png | Bin 682 -> 699 bytes graphics/pokemon/nidoran_m/front.png | Bin 499 -> 519 bytes graphics/pokemon/nidoran_m/normal.pal | 20 +++++++------- graphics/pokemon/nidorina/anim_front.png | Bin 938 -> 955 bytes graphics/pokemon/nidorina/front.png | Bin 660 -> 663 bytes graphics/pokemon/nidorina/normal.pal | 18 ++++++------- graphics/pokemon/nidorino/anim_front.png | Bin 925 -> 1002 bytes graphics/pokemon/nidorino/front.png | Bin 653 -> 691 bytes graphics/pokemon/nidorino/normal.pal | 12 ++++----- graphics/pokemon/ninetales/anim_front.png | Bin 1252 -> 1337 bytes graphics/pokemon/ninetales/front.png | Bin 840 -> 874 bytes graphics/pokemon/ninetales/normal.pal | 18 ++++++------- graphics/pokemon/oddish/anim_front.png | Bin 755 -> 665 bytes graphics/pokemon/oddish/front.png | Bin 475 -> 454 bytes graphics/pokemon/oddish/normal.pal | 18 ++++++------- graphics/pokemon/omanyte/anim_front.png | Bin 838 -> 786 bytes graphics/pokemon/omanyte/front.png | Bin 506 -> 497 bytes graphics/pokemon/omanyte/normal.pal | 16 +++++------ graphics/pokemon/onix/anim_front.png | Bin 1414 -> 1478 bytes graphics/pokemon/onix/front.png | Bin 803 -> 832 bytes graphics/pokemon/onix/normal.pal | 10 +++---- graphics/pokemon/paras/anim_front.png | Bin 793 -> 810 bytes graphics/pokemon/paras/back.png | Bin 597 -> 543 bytes graphics/pokemon/paras/front.png | Bin 598 -> 582 bytes graphics/pokemon/paras/normal.pal | 26 +++++++++--------- graphics/pokemon/paras/shiny.pal | 2 +- graphics/pokemon/pidgeot/anim_front.png | Bin 1367 -> 1364 bytes graphics/pokemon/pidgeot/front.png | Bin 1011 -> 949 bytes graphics/pokemon/pidgeot/normal.pal | 24 ++++++++--------- graphics/pokemon/pidgeotto/anim_front.png | Bin 1110 -> 991 bytes graphics/pokemon/pidgeotto/back.png | Bin 796 -> 741 bytes graphics/pokemon/pidgeotto/front.png | Bin 720 -> 694 bytes graphics/pokemon/pidgeotto/normal.pal | 24 ++++++++--------- graphics/pokemon/pidgey/anim_front.png | Bin 1040 -> 972 bytes graphics/pokemon/pidgey/back.png | Bin 631 -> 619 bytes graphics/pokemon/pidgey/front.png | Bin 566 -> 549 bytes graphics/pokemon/pidgey/normal.pal | 18 ++++++------- graphics/pokemon/pikachu/anim_front.png | Bin 979 -> 971 bytes graphics/pokemon/pikachu/front.png | Bin 615 -> 587 bytes graphics/pokemon/pikachu/normal.pal | 24 ++++++++--------- graphics/pokemon/pinsir/anim_front.png | Bin 1464 -> 1463 bytes graphics/pokemon/pinsir/front.png | Bin 846 -> 851 bytes graphics/pokemon/pinsir/normal.pal | 20 +++++++------- graphics/pokemon/poliwag/anim_front.png | Bin 784 -> 759 bytes graphics/pokemon/poliwag/front.png | Bin 571 -> 540 bytes graphics/pokemon/poliwag/normal.pal | 24 ++++++++--------- graphics/pokemon/poliwhirl/anim_front.png | Bin 1187 -> 1141 bytes graphics/pokemon/poliwhirl/front.png | Bin 767 -> 715 bytes graphics/pokemon/poliwhirl/normal.pal | 10 +++---- graphics/pokemon/poliwrath/anim_front.png | Bin 1272 -> 1232 bytes graphics/pokemon/poliwrath/front.png | Bin 828 -> 779 bytes graphics/pokemon/poliwrath/normal.pal | 20 +++++++------- graphics/pokemon/primeape/anim_front.png | Bin 1285 -> 1302 bytes graphics/pokemon/primeape/front.png | Bin 831 -> 823 bytes graphics/pokemon/primeape/normal.pal | 24 ++++++++--------- graphics/pokemon/psyduck/anim_front.png | Bin 833 -> 832 bytes graphics/pokemon/psyduck/front.png | Bin 501 -> 495 bytes graphics/pokemon/psyduck/normal.pal | 20 +++++++------- graphics/pokemon/raichu/anim_front.png | Bin 1424 -> 1376 bytes graphics/pokemon/raichu/front.png | Bin 863 -> 805 bytes graphics/pokemon/raichu/normal.pal | 30 ++++++++++----------- graphics/pokemon/raticate/anim_front.png | Bin 1170 -> 1126 bytes graphics/pokemon/raticate/front.png | Bin 747 -> 718 bytes graphics/pokemon/raticate/normal.pal | 28 +++++++++---------- graphics/pokemon/rattata/anim_front.png | Bin 809 -> 809 bytes graphics/pokemon/rattata/front.png | Bin 528 -> 528 bytes graphics/pokemon/rattata/normal.pal | 6 ++--- graphics/pokemon/rhydon/anim_front.png | Bin 1637 -> 1700 bytes graphics/pokemon/rhydon/front.png | Bin 971 -> 976 bytes graphics/pokemon/rhydon/normal.pal | 22 +++++++-------- graphics/pokemon/rhyhorn/anim_front.png | Bin 1109 -> 1076 bytes graphics/pokemon/rhyhorn/front.png | Bin 710 -> 681 bytes graphics/pokemon/rhyhorn/normal.pal | 12 ++++----- graphics/pokemon/sandshrew/anim_front.png | Bin 777 -> 835 bytes graphics/pokemon/sandshrew/front.png | Bin 566 -> 582 bytes graphics/pokemon/sandshrew/normal.pal | 10 +++---- graphics/pokemon/sandslash/anim_front.png | Bin 1236 -> 1219 bytes graphics/pokemon/sandslash/front.png | Bin 837 -> 792 bytes graphics/pokemon/sandslash/normal.pal | 22 +++++++-------- graphics/pokemon/scyther/anim_front.png | Bin 1337 -> 1291 bytes graphics/pokemon/scyther/front.png | Bin 815 -> 758 bytes graphics/pokemon/scyther/normal.pal | 22 +++++++-------- graphics/pokemon/seadra/anim_front.png | Bin 1023 -> 1005 bytes graphics/pokemon/seadra/front.png | Bin 649 -> 607 bytes graphics/pokemon/seadra/normal.pal | 14 +++++----- graphics/pokemon/seaking/anim_front.png | Bin 1555 -> 1476 bytes graphics/pokemon/seaking/front.png | Bin 917 -> 883 bytes graphics/pokemon/seaking/normal.pal | 28 +++++++++---------- graphics/pokemon/seel/anim_front.png | Bin 1011 -> 972 bytes graphics/pokemon/seel/front.png | Bin 639 -> 622 bytes graphics/pokemon/seel/normal.pal | 16 +++++------ graphics/pokemon/slowbro/anim_front.png | Bin 1548 -> 1526 bytes graphics/pokemon/slowbro/front.png | Bin 922 -> 894 bytes graphics/pokemon/slowbro/normal.pal | 22 +++++++-------- graphics/pokemon/snorlax/anim_front.png | Bin 1403 -> 1215 bytes graphics/pokemon/snorlax/front.png | Bin 840 -> 799 bytes graphics/pokemon/snorlax/normal.pal | 20 +++++++------- graphics/pokemon/spearow/anim_front.png | Bin 847 -> 856 bytes graphics/pokemon/spearow/front.png | Bin 581 -> 561 bytes graphics/pokemon/spearow/normal.pal | 30 ++++++++++----------- graphics/pokemon/spearow/shiny.pal | 2 +- graphics/pokemon/squirtle/anim_front.png | Bin 807 -> 808 bytes graphics/pokemon/squirtle/back.png | Bin 628 -> 550 bytes graphics/pokemon/squirtle/front.png | Bin 542 -> 528 bytes graphics/pokemon/squirtle/normal.pal | 22 +++++++-------- graphics/pokemon/squirtle/shiny.pal | 2 +- graphics/pokemon/starmie/anim_front.png | Bin 1161 -> 1178 bytes graphics/pokemon/starmie/front.png | Bin 840 -> 831 bytes graphics/pokemon/starmie/normal.pal | 28 +++++++++---------- graphics/pokemon/staryu/anim_front.png | Bin 1016 -> 1007 bytes graphics/pokemon/staryu/front.png | Bin 598 -> 588 bytes graphics/pokemon/staryu/normal.pal | 26 +++++++++--------- graphics/pokemon/tangela/anim_front.png | Bin 1100 -> 1020 bytes graphics/pokemon/tangela/front.png | Bin 627 -> 642 bytes graphics/pokemon/tangela/normal.pal | 20 +++++++------- graphics/pokemon/tauros/anim_front.png | Bin 1508 -> 1489 bytes graphics/pokemon/tauros/front.png | Bin 879 -> 842 bytes graphics/pokemon/tauros/normal.pal | 26 +++++++++--------- graphics/pokemon/tentacool/anim_front.png | Bin 1129 -> 862 bytes graphics/pokemon/tentacool/front.png | Bin 668 -> 634 bytes graphics/pokemon/tentacool/normal.pal | 30 ++++++++++----------- graphics/pokemon/tentacruel/anim_front.png | Bin 1428 -> 1434 bytes graphics/pokemon/tentacruel/front.png | Bin 963 -> 927 bytes graphics/pokemon/tentacruel/normal.pal | 28 +++++++++---------- graphics/pokemon/vaporeon/anim_front.png | Bin 1156 -> 1160 bytes graphics/pokemon/vaporeon/front.png | Bin 699 -> 695 bytes graphics/pokemon/vaporeon/normal.pal | 28 +++++++++---------- graphics/pokemon/venomoth/anim_front.png | Bin 1136 -> 1117 bytes graphics/pokemon/venomoth/front.png | Bin 771 -> 736 bytes graphics/pokemon/venomoth/normal.pal | 22 +++++++-------- graphics/pokemon/venonat/anim_front.png | Bin 1092 -> 833 bytes graphics/pokemon/venonat/front.png | Bin 647 -> 610 bytes graphics/pokemon/venonat/normal.pal | 26 +++++++++--------- graphics/pokemon/victreebel/anim_front.png | Bin 1395 -> 1336 bytes graphics/pokemon/victreebel/front.png | Bin 828 -> 801 bytes graphics/pokemon/victreebel/normal.pal | 24 ++++++++--------- graphics/pokemon/vileplume/anim_front.png | Bin 889 -> 872 bytes graphics/pokemon/vileplume/front.png | Bin 751 -> 704 bytes graphics/pokemon/vileplume/normal.pal | 24 ++++++++--------- graphics/pokemon/voltorb/anim_front.png | Bin 594 -> 597 bytes graphics/pokemon/voltorb/front.png | Bin 380 -> 380 bytes graphics/pokemon/voltorb/normal.pal | 18 ++++++------- graphics/pokemon/vulpix/anim_front.png | Bin 942 -> 967 bytes graphics/pokemon/vulpix/front.png | Bin 638 -> 633 bytes graphics/pokemon/vulpix/normal.pal | 22 +++++++-------- graphics/pokemon/wartortle/anim_front.png | Bin 1109 -> 1114 bytes graphics/pokemon/wartortle/front.png | Bin 793 -> 780 bytes graphics/pokemon/wartortle/normal.pal | 26 +++++++++--------- graphics/pokemon/weedle/anim_front.png | Bin 650 -> 662 bytes graphics/pokemon/weedle/front.png | Bin 462 -> 451 bytes graphics/pokemon/weedle/normal.pal | 26 +++++++++--------- graphics/pokemon/weepinbell/anim_front.png | Bin 969 -> 922 bytes graphics/pokemon/weepinbell/front.png | Bin 643 -> 594 bytes graphics/pokemon/weepinbell/normal.pal | 30 ++++++++++----------- graphics/pokemon/weezing/anim_front.png | Bin 1800 -> 1776 bytes graphics/pokemon/weezing/front.png | Bin 958 -> 934 bytes graphics/pokemon/weezing/normal.pal | 28 +++++++++---------- graphics/pokemon/wigglytuff/anim_front.png | Bin 942 -> 951 bytes graphics/pokemon/wigglytuff/front.png | Bin 691 -> 670 bytes graphics/pokemon/wigglytuff/normal.pal | 26 +++++++++--------- graphics/pokemon/zapdos/anim_front.png | Bin 1482 -> 1504 bytes graphics/pokemon/zapdos/front.png | Bin 909 -> 910 bytes graphics/pokemon/zapdos/normal.pal | 20 +++++++------- graphics/pokemon/zubat/anim_front.png | Bin 959 -> 937 bytes graphics/pokemon/zubat/front.png | Bin 595 -> 557 bytes graphics/pokemon/zubat/normal.pal | 20 +++++++------- 393 files changed, 1344 insertions(+), 1344 deletions(-) diff --git a/graphics/pokemon/abra/anim_front.png b/graphics/pokemon/abra/anim_front.png index 725024737fa8002f890e6b233991b4dc2b2935ab..fbbf2d583603a232d5a0d0f0073f701192a23526 100644 GIT binary patch delta 850 zcmV-Y1Fih02i*pc7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hDI0$%P z82{!eS~&>Ky&(4Xq^O7(tb-{K5DKvgrjl)Ej2fPeTb%ZwQ_{%;V`9a$hU zB~gqqx$j3IYH%RN%jz$OuoCe1s1at7EfDwdUFMQ7+%1NL71}s%?MG*Hapo%sV_{aIqQq1(2 zfh>}Ieb|z~0)JRnm5Y?(wn#+;4ZNycwu10EBxp7`K%8XT^wZ{YP*F;vFPkL&4sXS^+L5)b~TYn$nKAW zrKV7m>Nx0D5v#*h+`1 zG@FD<;DEtbjB%@DEn_Tw1FJkU@jhW$lL}dNWVPd3Np0`GgVunvO%>ItfI@`!Qx-=9 znu)34sDJCHAVGWf(JXqF$bK~F32oJ{MH-Ajr~NWJbz2ME9PGEk*xjwtQb*bQT{ZhmX+Ha-k*&Fu8mues;_wOyLq?Y6@xhn6;X3Ur| zW5$es6BA%efH48aZvhy70C5Hww*bTuVB7)_TYm)@+YbPQ0*oI52qO>ba1TK2{NP&v zG2#amKzx2s81aJ!AU@-R0Y7K}LcYKUU4Fm@AR0d~zrMwYA5;Lb^MjUBKl?5}r~u;0 z5849lIdu5}U--e;p~nw|8o@d818nkxXZH&~$Q3{w_yO@ zsE8Ptcz6&H5NJq1(6CUjpqKyv000000000g_$3m&Y21Xf_a6+3kIMhOi0}3fNlvOwm1MwppH0Ta)3P=Kg2b_ zAptpJhXv#i4u6$I&E>EKK7`QmxN)cAn;LqzM=T-Q$)}$FdC3vazu%o-X#J~y$pEMQ zQKBCoihjX7;-NU!MR8jck4&BJZLi-iPL2z<&imfu>5mb{+_-c99^kaLVx}vfC$FG> z2pd~kFCu$T{t~pBXEd3#T+u=n0?bwsI0V@5f~57rg@5_pqP*OolY>kFwg~{Rh)P-w zVn=B7a*VnVs@MQ9+kd`{vWULD&OOp{`KBinbEg-`TX>(u4x%McBaG>*7U;)leJvLJ# z2CmsTb$_bB^{p(akWO`45j9<1g^p13z+{00G$_AV698Z*DYvI{UW@aVs#eWDwO8zE zZT!Q5d!wp!PQmJ~5R{8czz|}l?I_%kK1(fO$GWjiY+@6C8G^sGoM)a_6+Rqse-w1H zwgPA}0Ho%2Zz#$5gMj_E@e61({!men7=JiO7=MLvd{qJ;IE8Tn)ikfbHg|vs7z;+k z0hNiN;A;kWp$tGLDR(XU4Hyds3&3z}C_NU4=>dT35h}VN-B>bxdBgxtYHH}L6O159 zI%@@Elw3Wm7mT}$KMBU|X)#(S7{(t~35M+tZ)>QRo?!a}2}X|F3rSf1U<8AfBU*6p znSVcYy2c+Agcf1@1E!@v(87l^!1f0cjM5*#zBVm?$fo`xn~f;qof_6IRn z=CVJ~DI-@m&BPyEkZjY8{b9K!?AZ9jzZQt!<7yc0004VQb$4nuFf3k0000mP)t-sn9!hDI0$%P z82{!eS~&>Ky&(4Xq^O7(tb-{K5DH{ApcsdJkF*1QSwJWV?vS+~DTdodQ z5omyUCfvREG=D|w?kM1ya9=ti$IyUTzyNUbW#P9a#XwMN&d1`7?;uJ^fN|zjPGkc` zI+1P$`8W!&=|UU?Ejp?#QvQcGd+s?0tsX-u*hLHChSSe5V zwU;c;p=(R&+oBd*kLtqu<&B`DqOoKgWxUx#{^_?m+%fJK%s5;7X;Jq zR>5-q=pF>?f2Eqa8@9stLEr(;-z`MSD)JJX$ZN1W?)XrA1HU{GQYX&*a{vGU07*qo IM6N<$f`^V2-~a#s delta 607 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 Udt*#62><{907*qoM6N<$g2|1n9{>OV delta 925 zcmV;O17iG%2d4*+7=Hu<00013M{Ml?001yhOjJdf(4cr|fIu){xVYe$kf3l-kdR== zsDRiI5D@tI_{hk}IB-yaAVA1CNZ^Q=NH|bjkd6vqz~OAHwTW~e&BnOJn_5FbNUj(;~WN5amGRJ(JAkP$G6 zkea1ZrVf=d_gi#oE2kfzit-84e1^U|FktK?TW^8m{rJECy?b|ryfzg56+mUL5%gIC zz(2r8MA^Zv@E$P6j__qLcaC=b9x#eSyiVg_TLRdG&gZdwpU#~v02m!(+>#T_;rHSS z!{6ugDvm(h2Y-fK#N&E4Sj5!Y6!69!0YYXMjBmJ*0*mvs1(u%ChC^Z^ut?6DFVk}u zpwZi78DNGa`Pcx1GcODpJuR^FDGDU5ufftbmJOg5F1td3)&c@~5jL{`LUW7)7p<$o zMH06_4!}{M3(S%(Kpga#bS;n>J&$=i9dThX=~zfcV}A#mCVvq~i8iU{Lz$ri%#zUr zfn^OSY$sr;%vu9iiw$6qd>FCZaJ)6(^?<`DS_Z6y^*WS^^w@3%jiQWstObsxg-)U9 zDfTy8XCT8GXm^{8Hi7Xx#(rOPO1Z=gHmqA_ctz1xL=W3_7A%4xEM2Dd_?JB=EwLx*>qhyvr!<0VMNTc)g-D#2bMfM<@L_ zwjf;JuX4Kv`WetAgk-h)QRL#vnMBqWK%8*@Zhy5Zaop z^7iTJ4;Nd45_MZBdiO$j|Md4e*N!}qqdMlg2|jJ&`q#(D8$bT^<{ngr6~8K53os=W;S{}%BNhpzRKTUC1B00000NkvXXu0mjfM0ldr diff --git a/graphics/pokemon/aerodactyl/normal.pal b/graphics/pokemon/aerodactyl/normal.pal index a88533ce2..08e33fcd6 100644 --- a/graphics/pokemon/aerodactyl/normal.pal +++ b/graphics/pokemon/aerodactyl/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -120 104 128 -64 48 96 -184 184 224 -152 144 160 -112 80 144 -144 96 200 -168 128 216 +115 98 131 +65 49 98 +189 189 222 +156 139 172 +115 82 148 +148 98 205 +172 131 222 16 16 16 248 248 248 200 200 200 -56 112 80 -128 32 64 -200 56 72 -224 136 152 +49 115 41 +131 32 65 +205 57 74 +230 139 156 72 56 80 diff --git a/graphics/pokemon/alakazam/anim_front.png b/graphics/pokemon/alakazam/anim_front.png index 2a75e717d66987388cc0455b09bb3cfdbad9ad9f..2f49747fb70654b86cb2c82e2c082289b2aab72c 100644 GIT binary patch delta 1226 zcmV;*1U37=3DOCW7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hbSP1{_ zDb>9Y5D*am_N;?q2vRW!)wEKygDF^8Sorw(u&}7u*w|oTSWqws^fi`G000C~NklN`s=cJ~ry2q7de!+-EUZA8BkxE~qF`5wbP z10sP8CsMaZ_m>vnDa2xArj=LVNqQ7NPmOpW5@O!A z*S3kdMj`*`ZpxX|FA=Qx27wHe0Yb1Xwp?WhYy=7qFn`M6vOGFYudZSiH0!)F=O7po z=Nn$x!W7rWaYQw}EL9mWBJvBXj|B3Uu zWaa>l(|FW@Lf|<`089F`19*9HwIHZJ%OwATIDiu<;%mG5+x( zGGI14RFsoT8BPYr?xhkCx7mUkD??0SuTXUO9F9Eh6~qh>Z(0blx=7a!Pj3vTpTb#Y z&q+ApW5`&Mvv75zMn@CBC-JlZzc-kGHtHeUwtpT2NI3b15}p#nIO15h2oioAV;@d& zCh&-8?bf?XV+m(GjtC{ZE+dU-UX#Qw>oj}_7BDeASdvUL^ePnXaEYK`zUElca9A$k zN)Y?PpA^RsOQ8k0Mji()me^cI#7k|PC8Jec8c>>*t{JlZI=EuMS(R_mpv$J=D}`9b z7k}SkX1!J5HBdC#O9HFT_wYkH^W}Ms@qEvKbfGvJ;P2g0@|~~$s(-)uqapVOzA@x!|9*P}h(~}Z2p$3A5g`6q z0YYz-zX%XRypnz^KN z4$6t^zg!6~>yrS%Tq-9fA9V2@0YgHWOgTvc#4UU+Kt$!_2LZyAlOF{Leguf`1ql8` ofN1FlS%7%-gGWDj^n+ge4^T@qod!je`Tzg`07*qoM6N<$f(a%g_W%F@ delta 1207 zcmV;o1W5bR3BL)D7=Hu<00009q2$gmI)5D@tAsAxz) zNH9RixTu(Tcvx6i`1ts+u&CJB*kE8-P%sG9NfHJC00c@&L_t(oh3%HVZ`)Q7$4Qik z08i$Rq)3~EN9hkB-<#SF6nUoLR9%vA$xKjjr=St!dhC{r27iRO+*;J=PS{!Z(TUK6-cW-h21Hit%;5{iSYX1p8qa{g<1A~SqnWI=Qme^h=0%pQx{0?EK3)F3OLQLLm{Gc zOn|^invy@6pKCfF-QjT*3SArMp)F)Onqb5!SA+o$AQpen9Rh^?D4Bgs`aDF`*keE`t5d#f`6gx?k18aE7K71kiceow_m$fPoGtnlNC36-rEf)r0QAl!`p{ zy0hHZAAi$IlX4MKi&CUqz@KEi!T^T(rDs2WpBBKWDHTKxU@M)yjQ>Z=BHWG2Qk-7- zFh32m6c$EE}{pIe7c+eo)xOR3<#Vbj74kjcE3+B5b8@#cW)?FY6c@CvNj zZt!WR2r5^H?jHd5LI)RqwK(k@L9j`UzIvgXFMnrv7!yLDTAu;a51{wl!X-d6#PJI* znhY6`0o_4Y!Nvr!&ovV?g-bzrpw`lGCyp&T`QL$yY7MDcI4(lgjJ`TQz8jT;RL%(&NjGegrIT?9MCs%;`m4Yo9ZW{WuTT!s zHGj9FSO``L(Ctpv{k-39G0yeIb-&7uqd250mwP<~-~6(f|6FX?Dxoi$-_|8>$7-J| z4ounMiyd`E^Sz)1TuR}y;zKiq?usWrH2_bT)cn3G2Q@eEFOGeDfx?9aki9o+d6LZwX^!eW zXbKE8Nxrbas87%o7$jeIHVO=h`7q8M0t5f+0z+#T7)$+72#oa^?)5`8_V4M3zW@Zt Vy?i4|S114g002ovPDHLkV1n1SKc4^q diff --git a/graphics/pokemon/alakazam/front.png b/graphics/pokemon/alakazam/front.png index 6ba500cdbd8c43605768c4237fc0d161d1f33762..9632f20dd9ba34d1cd514e78ed7c0e4d07ffb52d 100644 GIT binary patch delta 922 zcmV;L17-Z02c!p(7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hbSP1{_ zDb>9Y5D*am_N;?q2vRW!)wEKygDF^8Sorw(u&}7u*w|oTSWqws^fi`G0009bNklT>lY9q9e;-Z^bz?jApMdcDPIxp z87C=a?ay42UjV&@lCQwePwtr@-O+0kp4JM+UIyO*&WkC(Z$JRBT*Sg2^7{sO5VE+i z$-kqg36jQfr1JX)5McTsd|Pk1==$-XzYmy7$vOR4KTTirEOa5I9{{E=JkkPp)R%Hc zU*_5LXMkh_%zyJ81OT(79>56mM?%w|2(BmK17TUFX`af-@`1_BndGOfB&FPJg?JazIx1YoW8Q7g=K z1b*0Q;!fH~h)v%CU?CO&P#1UC2t^%W@`X?T)+`om3=u3Z)6?-jqQ^T#gaM> zk2c_tDt~tq9>xY(X#Ox*5S#hz&Sg3ry`NKb2hoEbfU0|HME-Li2;9vtm2Ac3m`*O| z>9rOR$LvW>&zMs@D>fZ{O-CK~4&nwNnx2AcAu`_?>8cF+OFCostq3=Lq>MK?PuDbB zc69Z75pNFU{hnt2zx;}y%g`a(!SsP zU+@;?pIMf}3<+qmVx?fY2CxxjubTP1P+3H9!uYx(;Pt{5u$}V)o@QGS!T2?Rx6e4; wU@yHgc3Pm#kc+drcK+Frdka4p@^_wpgA;fgg7R4{8~^|S07*qoM6N<$g3RlzHUIzs delta 912 zcmV;B18@AK2bu?v7=Hu<00013M{Ml?001yhOjJdf(4cTw2>9q2$gmI)5D@tAsAxz) zNH9RixTu(Tcvx6i`1ts+u&CJB*kE8-P%sG9NfHJC00SjSL_t(YiM^G-PuoBg$8FUj zQYQSPt!P>NocsaKyR99Z_(%k$3&sC|b-;$I$SGqtI#!CH-hWyNbto*TY_tPXCX{X+ z;eY9ScE}Igl%?uTx%+;6@4fH6yJ*_~9QyJ@fcp^O&2M2=03hZjeiblV)LWtqXe}?8 z>eHX|!}2Dd=@wumFj*!YsvgTyNB;x$Ono+S+Avs)&#Ioq-CO(euOE2>*; zJn4pL8a*>~QK+3nb~)tkjnMNYxUVm7 z0`2Kw;)UgH+5!onepw&-BJBVJHBK~Uzy>E2QU!Vo8V5r%dDv>)jstUrDvk3Zgwa)! za)BU8xqreAY>uy5?#hwMfHPZYQgQ%StL>%y9hF76-_5N!8wGhW(9pDmbQRNqS==@` zUy&FO4nMfq1(|eg_@bK{*0v?lidDDT2=K(ES6D&Crum zUC+9mBOni9(5xByC924m965a(@QU4pFqtriqXN(V;u&YjRioChOHyS9Y|k>_7_9FdQ{o|AJBe$Hx~6ji?>-#Ur8XqFCHq;( zxk0nqrw=>%BH5Y9Ea`=jq$=s>KvyOEGAIH))k}7=U!mx!lB{Wt1SbdRcE@F%&)d(| z*?(_Y)^&b3vL@Bp?s5pe`T1l1B|ESpVNM^v`V}8X@tw;WCV%0x6ZLWN|AG?mDTQa* z#IVuyarN^8&_bIYznA%<;g8#L^?DvSJ(qOt@y2l;M422_%y4~CRzwT&5ECz!+bMKF#DwTA{=d%!-4u3yC|84_rzflKnUorr; zU@gWk5U{zP0EGCZ{%R1U-zxc4L;@hjvMnPZnErMv^)ezWdeq?y2zON?N+>p{>-syG z-XKZ{GXic-@A_C6P}_c`RDaq1R(1*6EYR(hvWnRh%tb=Smhe;`Lc)+2B6ql`ii(Y&9I4SlkoQiu%#OT7R*m0f@Z5d)U;Qa?Rl zGzbaRCx1oK0Aj$IUI_IO@9(4pE|nY*>l(wqU+Tf{05(fyw6vAuEr638P|{g|$kPQa z1Z)7~B?TI|AVB1s^Z^S2hVhzC{nlj{4A2O8$@f>m59GAr2|#O}4#Bdf^B66fZ95d3 z(2PqFzf?l9D`F~^wq6JWKtL<7xTSPB02=~gLw|sXUf}Ykmh@XHm=Oy?Ckq7tMNgw9e->GylmS^@*vA~N8Q7}uJT8ef!k5lVPo8ZrjbbPh2;>{tYj4m{{0$_w5q^g}<}Q z7DlXWyZQD7+pacSo-b^>d*B6tDJt9UzJ2PtdBmOv+n#;<0)RtkYPJ>Se91DJZ}%6GTE zgm(C8`IH=Jr_Pb`X<<@@?A$N+K!2a>I`>rofIIh4J9h(|=0J~>kO9XCPB%A@Dpd&` z8qRXoj-^wBCOJ2-$yw z4T1q;<^2Z)4xn(o2GECftCFVx$ACibEC=`&y$G;$n9}x$Sp4n+d>MN;Y+=-6MHt?N z`V~Y9#V*ni;~|98y{Jw=dE)u+!9?;0N_h`3H1ExW&8NXOJ0&!i2c1LhkcSG;ULKsN q4N;qgZw!2SsC|6_uo&;(Xnz2b+%{?%!Dr0?0000`LH>O1-MJnn3zzVa#6;~XojQ|>rMDkMI6%#O5RqIj^5R<$$gf5aB?6S+F`L?QK7yF0d0yP&X$!~-h#0U=-5ats z5(9|H#dN8vf`1Ju?GaV%V!G7KCo1e(4jLS@1^kb|Gw)*^6;!MGA zh;0Nw0!$Yl$q>N>5t8izlH9VsdH*A6*h-o`0H7m)F5hflDLBwHdw#Hp7z60@hIlr! zu)o}m0LO zbPkG>34evTsuq!X2Z{7;xC{~?3U7DMrNiMt8hIg=a;at2yBIK0E586Fa5W!JaI%sW zBMy?m^!+O!!3s?Cx~}~(0MO5YYHQx5HIgtbVBR|~TIGc`S)MQET*{rQ*HbR~+%lHL zB5w`K1P6iO$j$k)=|u>yDSxZW8sfm$;J)m6a6RvzwS*7VB5Wg6vey8DmNv!fO=nRIBPpQ+MuvU z5bNclc=Zh?;Xsa4w858W?kM8j)?QUrxT9Rf<=q3YH=sVGl%oh+*EfE(96%&DbSt|{ zSa}4I+%AbW*uSQBv^_+uPZxB)5n``hgMY^_J6$eVzu(yQyocIg4g1B%jFoQ*GjOqf z&1b)zDee1xNbJ)k^TqbemaMH2I*MXU7a&bk0j%vg!>l4eZhzn4ph)OUhO&PoY4LX3 zvPlNY0rf|Ol@{Ai-bR+ds}HewNWcF6)6*TP^6pO!JE%Vfe8rpRmq(}%<(U12Vt>*E z>+1Wac~E5uY2c`T1b`?1%8Z^p3-!kW2B!$i-^6td zZnXpL;F2(&4UM1R5dcgeQ912$ATC@Ck$9!@{2yxv**}@zo%oRrwS!w>d*)X>oUf4B zX}^GjbrQPRIiO%)B}!hj=OC%(Y=3kR#B}!dW?IZCNY@J_DO2kJG8>+I%a}{cI|rVc zlR%;5#jXXOs4JW{W{JdY?b4d|0lPaQ`mHfkK%C+&>DSOqjdu08tJJ*^t@+ zi26?DMhDamjT7}g!j}QHqi}UkVB`Y0-UG6_*O^Y;AOx7ZTgN^5fD+&h>wgX)JHIC% zCQ0EG6hg>C_pFeGt*2y}7uB`reoam`^#DTLRh75mzzxtCpr~4L;Hfv zb%*023d7|Ar6aU$B5^M5ROEYkA%L(@ncva!adQU<&m!TSJ}{lUh(14XCo!}WA^0<* z@nok#PS6@d_23%DJ3qjj?jG`UcT^wzH~sJrT7c2(ZUR8O00000NkvXXu0mjffKs%~ diff --git a/graphics/pokemon/arbok/front.png b/graphics/pokemon/arbok/front.png index 532677a861a4351cb7add0eb4057a9635fe1514b..b9fe8eaf836a59fb0ab0dd7122fe93c855c34084 100644 GIT binary patch delta 789 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 delta 1634 zcmV-o2A%nv4d)Dy7=Hu<0000W7=v8U|Io)7Xkspe?`8(5nVBFMlLf|4 zZp@BX8o-u$c|0B}1LqF!oSCHo#vWxpst$hgl(R&6Sr=%)Sj@J6KaD?0I20?GCt z7>}MyIiLDGJj?|{o5h(4)93u|xtvH`0TtN_A!j@bMSnNq+aG?E&IE*0`ZH{5d9oaS>Sa7>qu;yZshrg6?Up{qGO zR=>GJ|Hy<7JZrcFpn$9KR6tIsAIc)F0e&v0{*VsG2~GT!%KVUfxj;>c$O(s=W;!0> zpS~kdPJaMDd6D_xgy1@vAR>{a5&-yF+IQ#U48J1CQcP#r9zt*|S3j9dGC}C1NouQ< zT0ghe@Y_~ox z4@Q>y_K=N6TZ$XV1QvoUBxRkEk88FaQ-mW@NPjU)Ac2YiVoZWz9Fqx<)F6;VVEX-%RyY?^gwyx z9;}Z?sY37g=pdTd0*Lb@NWC~-vvpqMK@z72WI_KNKzeY60`#OK z=d=+y?=mZo_tDSNGdsU8mf~|fa%oz0Vt;3!F`gxbAw&XZfAz~!n0^?@x$95m^b9xT z76JgP|HVpNxCTx(U7w$ws07Ld7vMpkauE!2Ft3d$xA5{7Ov@ladQzIPGp-qn+rV>; z8*wQTSqj2pmjUh)^P_)$IZNhv5?^XskBYZQ>y>o|7X+P_Xz5MVKxNbjzS;Q#%q9aXz%bt12FK@uJA(> zF!Wu1(5E`e1!@>)BwY7@IwtS>;^xSfT3PeyUq_4z`&=~avS_m0Su%Aw}l@{ zz(4{4Eq~i9{7{S&alUw@kt2>6!U2ROu)kwEtFgBLSP5y&2XzC4Ye+tEp`?_#r2dj`E;|A94b*lm~76pa{f7-)U|eKPUp} zOfOJyI%($zpZDbX1#V($?%{{Ai_bR%*VltjTlv9yi}w}2@^*Kyhac!Y6~bfPN35M6 zTqU?x;c4Xu6dVabH;>uQ59-I2H>8`Tl^>K~;i!^s=Lb?QAT8Kdep?{H%b)0$*~br> zadma;Q*ie2gDI|NpuK}1Fb*^2%N~9(R)wIQA0ED1u9RROKLn3oWr98YpcqMeM>B$X gxpKRr2X4LZU-d%mrNdfw6#xJL07*qoM6N<$f|a@L-T(jq diff --git a/graphics/pokemon/arcanine/front.png b/graphics/pokemon/arcanine/front.png index 752a55c9cf893dbc2bcabeb7ec064cad442a930b..f5c33c8728c2fab933473154075e5863a146feb3 100644 GIT binary patch delta 1098 zcmV-Q1hxCo2-66V7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h;d0y{41`YtL1GW@|GL#m0t5D4I+Ok>*CrX8{Sb=~+<)u!PaE+s_38J3k1@3N zQO=Z7Y8nL58~ytLA<^NXPmL%)bZn|m{Eonx6rep+pIbHnFTI=N5#BvMBF+u*Ys+X1 zdCn`q8m4)Vg0uE+L#|2=%&y0;T`wZ&e(77w;tzS(TMRpZ3l+|zhZ3q3ZTzg)wwb^c zu62U`CAFwgm4E4t9*6~?wx@iJFNO3cRmpv%oBl=^&$~XQI@$OWKv&GfFu64VQW608 zK~MBZP&I~aUsBOTJOH1=8bBr=Y$hO&Z2cGj0fZwV6tU|ulK$s403=fT=5N(f_QdER zYyczlWE}+UNv$$N-_t2_5`b8v?5}8KYX?w_1kS$}s+M-Yes$Q=-2^N)|q4TEUkH%0hr`7AY7pQ^wuZA5A4yUmp_8t6t+(t+4?f=fO`nm zhlmz==9uLtz;FSbO}3HWGUqX&krwOBijYgWw51b9@H<^-G# zPT=Dxy&dL@9~!T8h>>T&8juyNp{pF(jc%4uaV$A6cVLn=XF_}xf5Pz2^Z$rpYn{>fLTs-o_gmZA-;w;GrHZYoo2Caw8&*uYeT`-Ped@5gtsMP?sx!u5Bd%(4N!^Fgfl=r|M5+a_lKRb5VfoI$+*Lua$7Wu$u4HzHqRWaRHz{1MXi-xW*zH8G8`>xLOWd5_&H`TIl8= zuH0UCha(_NdiGIpi4(v2EG>?nspR(h=K$}|R^hbm_ z6W-SRZj*Ft_xVF#{{}D{GQW|ti0MCn?F>U6y0P!lAN1(R@_evNR{e+V57v(?usz-z Q=l}o!07*qoM6N<$g8!)vDgXcg delta 1096 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 JPDHLkV1jlb^-ll* diff --git a/graphics/pokemon/articuno/normal.pal b/graphics/pokemon/articuno/normal.pal index cb595f23e..eaaff4482 100644 --- a/graphics/pokemon/articuno/normal.pal +++ b/graphics/pokemon/articuno/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -0 80 112 -144 192 248 -0 120 184 -104 168 240 +32 82 156 +148 197 255 +41 115 189 +123 164 255 16 16 16 8 48 80 32 136 176 -144 192 248 +148 197 255 248 248 248 184 40 56 -88 56 24 -176 144 112 -136 104 80 +90 57 24 +180 148 115 +139 106 82 200 224 248 192 200 200 diff --git a/graphics/pokemon/beedrill/anim_front.png b/graphics/pokemon/beedrill/anim_front.png index 26e0ea3cf2a90c0527c41212a86ead8865500b7c..05e48a56c9d037ad65562318f65fa0a3415185f0 100644 GIT binary patch delta 1225 zcmV;)1UCE63DF6V7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h$dz8Jb z#sB~R7#JAd&Gu4SdxJ^<=9D1+_N4#KN}K=))fh4VlxnnM5a{6e>%Ruz000C}Nkl|^M3L8cp`wC@Z8Mb@Y<`EGb0HB1xF@!ab4L~4MwADZX;sO((tfN*T zg8CRnj5%kd*Tg$Y1VEGzF6xjRRYbFx?F~TXu{S?Y#G-)Z`SY`oJ#8q;@>HZ;QeKZ|1O1ONd;WQG3d|2LrZX3^Rsf9`${WRzWaKP_@hXN%?8$etCjuc~M3{-t zaVll9r+?H1e3gKC7D5Oe$6C&EJb_1m3Lqa|GZ*CX$qYKS{{y-U9E-YuQ^M+=HaiG@ z?yd-+AlQeD)8>j)R(UFIwY3gA(&#>>cu|Zr7)>jteEefi7=YEc zt{gg{s#2*NJxh>J1#tl-DTwb+2Tcr|!Hyfu_UCUm-B2pH^f!LDTfw)kME z4}X}jxY8(v1|a>yXa`W|zXp6mSc~C10z$f)c!BBeHQIz<$MBZ`U+jYezO=u`J^q`~ zFCR4QLma;$K)c~Ooc=ad`qpk2s0FJPj3|$(-2i&j0QUt}2R;HgLG={vea8;~bPQV* zs;5}<-kn7d6+ydT(^DAGzmMd?+RCqbN`L5-a70C*eelPELQm;aaAawqE-_duU+5`) z=K73D1bXz7CzL`@xwNmw10_@vZT)s&9|+kuKu z1NL3#(Py=a(3*Q}KfJ35pO|w(-a=G_etS8g`&5Ls{m`o-9Qm(*bgKxJ{clu+eE_$L nupw?0;Z_m$gj+?p$A0_)Z}2cwU+yX!00000NkvXXu0mjfN47Vx delta 1223 zcmV;&1UUQA3C{_T7=Hu<0000C1wkESJMXc! zBBIJt;)pSad5VZrCnazek%poOn@J)KP_047jwEbX29yD=6AL34R+y|&28?Nc?BWDM z7*Gc2tWJd;Fn`u#%-c)Q?8dQ!0gZXV7oT3gihoxjsdZ<4xzFOutg#Q@eiO&P z4lgz4aA3k6*`yfppy=EmjGg9*tWYLK@fQJM-;BlgkcF0Fx$3^zzf{OZ8Qw8IADk< zADI{NDu0UBQ52mm7K^0_y8FO;adZVk1j6`-#nWd&=}c8tm(aRRfcV?Rja@!;OHyrO zLI^QN{MGB`&b4M3$v=$NdV&cM#qnY|$0{50AntFO>nAO>|zqFh!Py?UttWGm!K zFn@*T(Txf~LMH=R3Ov750{9(4=sfua?f|BDPGtb*-wWU}2Zr3}{9puDSw93w#<&L{ z{9qCP1US463EWr1!}!;RcHaxHc2$Cr3-Fi{&^AwxJT_7WZ=TkKrxFlijrFuX$GHO# z&BSDmnA24Q+|m=1VUD8&G;YjNlW`nnk$>7`R?kevX)5NA_3C8iXC~87%o|h7ZE=#C zOu13Vs1VwCB6O0PObOt19}sX+BNCJG_W}I+qQq*AM`#(+WK=JMR!||n(vMP;Q2>=x zA*@MaG72D52y2v>OnLrMrV!Rxnv9}`jY9O@37QNq0~>|tyJ7;Mco`doK)~X2v42|w zZ_ebyRw15^1}0CR$vd}-olgZeQ;6FT=S7-O+gz*3t}}(e`v}K40cbUGk?i6vDn!;@ z?0f1f_%4bHaj_xf&1(myv4AsF2-qn^wg-wbm2x!XxfWk914zIq<$Mj?~{t@~7=5W9g2QBf(xu0nE$LS*BB lLS!pEC`18xP>BEB_!}62ns5WY&k6tl002ovPDHLkV1l~MICcO4 diff --git a/graphics/pokemon/beedrill/front.png b/graphics/pokemon/beedrill/front.png index b38fb89932753a0400fc03047a58f9e7e5fb9dd1..e1f22b5a7df5112be77fb053b151371b1eba8d90 100644 GIT binary patch delta 829 zcmV-D1H$~#2FM1G7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h$dz8Jb z#sB~R7#JAd&Gu4SdxJ^<=9D1+_N4#KN}K=))fh4VlxnnM5a{6e>%Ruz0008UNklvrNW41|$Av4cbN{*T*{WF>(mmo0nF{;5xaHh4adE`Jg9cKcobV~NNoJ0<0u zE+UZf>rRzteOx2x_9ui&vp-!TAlYHd-iEeAE^^l^$qkjYR;ewflrX|B4=n0% z;YP4Xr^lUou4%$J)|;gd76sG6cy_87gegC|p1+d-F@NI)p3gy!2ZH43>(OjIxD*fu zR6mHE-3)1ZOpCq)*dEXF<3vmjm>yqW6ZI@8?07b*wp8@v5y1hbA29>f)aJp;XzKt_ z9Wc$R*PmHa(0xQR9a*T}0bDceg>e*HwHjeKi(xc9y>~qcM9w5M5-v=oND#tPr^kD(G3xhmWC-*!bJ-mA-Dc@p@k7M{pfDh^rfDiS*>)rYWV$K=RdY^NheeAabOL5*!^SHRb`@ZFM|MAcO+*fW29= zB?~!ka_-M4Sbwa1GlxXI*uf$NBjEC-6j1P1Xcsl=Ey-M7bA6+cYSZE?v{Xlc*s{aI zn(rAGxilb3O~4w&DoVzx#-h*DfC~-$Ud|?@g%X8ikbb&>e8~MrtNpe9zFm|~lY6s+ zWPZq39~^G$LEVOigQt*}(}2bO@WqqE13ijKVR^G<`hT2$nFW6T^tIMsf`P?d0bF_; zj7&>>I6c&F`9~#qxB^mog{eWI#K||U-<^F`O~2-}q@*~BsUkOyKWlwvfEu0TXWrHw z1de}viu(X^gEHpLN)QB2zN>h=CTUU1kTb@nfjw;ETm|t^0E)=@mD$rHrN&CBwO+5+ zm*Mg(aDQ8?Ap{7-`h9QvSva>-w?+e~oF{;O(>r4GOV=m)B~*w(qr}hVa%!(FN|PUq zRar*`P+Iqb2wj%VCFUrqT@2Q#1nOyQpdg;?l*NBX9Z$e25WEbG+xYRMf?#ITF=|Ld z9`21^ZK01KZdNCA61atisSTI(T6N9-c!4>sVxmOcM@%w3Bxdi8l5LM^jS-NZdHd$i5C2sB0^k_ivt?vB Q>i_@%07*qoM6N<$g3*(Oi2wiq diff --git a/graphics/pokemon/beedrill/normal.pal b/graphics/pokemon/beedrill/normal.pal index 6499a81c2..5dcebed76 100644 --- a/graphics/pokemon/beedrill/normal.pal +++ b/graphics/pokemon/beedrill/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -136 120 144 -184 168 192 -248 248 248 +139 123 148 +189 172 197 +255 255 255 24 24 24 -216 200 240 -80 88 120 -120 88 0 -200 152 16 -248 240 160 -248 200 72 -152 0 8 -208 24 48 -248 144 104 -152 120 0 +222 205 246 +82 90 123 +131 74 0 +230 148 32 +255 246 164 +255 205 74 +156 0 8 +213 24 49 +255 148 106 +180 98 16 232 224 248 diff --git a/graphics/pokemon/bellsprout/anim_front.png b/graphics/pokemon/bellsprout/anim_front.png index caf929916010984478519da7852fc01c80563d72..d148f81343134a9d307678d0e36d69f42156a899 100644 GIT binary patch delta 753 zcmV@W;`3}Io zZ#TQy|9mo{l?}jt*8c8~qAtLW&*#@gK+N_-)Pvaf9luThA^}$W(NzV$nDBZr0Z{Ia zgfV5e{`h-Ggn#gQu~|&=yBf2*$G=460x&O6u>i^*j*cGiQbx#TlLFYE>g{_9h{v^> z83`EBe9}=sEjI5U0STrMQbz~4c~}{21R_kT(vd!4%60)@0f_n!b#b8-u%O*vwt@=; z!iq!ldu3sNz!PV;HvoqfhWtPwFv1OBKmQpM_yIv%Pk&2uey9|W7SO^6H{r=nHiZJ={wpbo0zo9J;1irN^zuyf6_}Fk$4O3H7Q&T@w zBpR{n2u@_LXhNwrT#NikgI-zB2XSdYWHC1q#OXAS1_Fs z#$i4a5+F1YhW$WkfKU^N=<)09s@-td?+Jv}s%i?}WLpA+K)vIe~` jwjM%n_%$^(^`G?{0$?T&L{|dv00000NkvXXu0mjfVEs}{ delta 828 zcmV-C1H=6N1;+-E7=Hu<0000snRIU-IrUb=FFL?`C6%)Qj4m*f3MVH48Rn6lxLXEWtOcM<3xi$(V>dI z(EK4;<$uZ@&{wI|!}(0Z@3I6qGJ*4j_Ip}u7^MV2b$>zEzSLOc`*yloNBt14y4+#Y zM)D^ia7)t{Wvq38oLSESb9s!{EH^X1=2-!LCi|WhIAAjU1HfdTHYZ1k@Hk3=;BC4`evE`iKTA{`%d{QQQ@WeUWayAHGME20qb;_zt^c+9 z{ZqT%5PvURi(YBKg0}7;PXii7}qoFeH7xjX#qeNv1P$m ziUww2_^Qy4XgRwc4THx7KmnJd(ZCiVs+Sj|Zx#bq{V{xpz>)DGCwCY3gCi+TI-7Qe z_cG)?DxnlTZaTM%ar|;kB@`@2-E^m8AJ;rhIDZffW|MP_2Sh%=nyJNVa;~#1n-UQO zD$#ls&oBioGSb3H^wLjs9yKz0Oc|wJjYAmUhTntyuqGnPuWI!i2pB8l+vYVFMm6h2 zJ}?Fh?s+X+GUsQtJ|+;!xIy2S5&<64i?_9pn;A0c0004VQb$4nuFf3k0000mP)t-sn9!hrhhwk?))7mxq?3)-g`$@ z{vlyQuo)^Z0-M2k-+3P_2Ir4h1nvtbJ_HO45DUznU=y^}5rawK&g~lnDTNn&n4f1> zoHHh1o|As_i$oViGp1S~ugpRMOF0ip-+t@&m)e*7eN|(#$iHKp_ z7#2uA7qHSAet%lP4WO3ir3u;|R>cgslohhsTm;PLzPzS^Wj(6dk%FFPqaY1T80XtoFp-PsIt-sH6Y~zcZX7=e z3@BaVDLTgrvw(U28Aq}UTp4}5CJ+S~|C}kd8`(#{wMq$S7ZiiKAG|T}(MakxK)qND zO+kA8rMN4Gc)S$L3*{4fYU6vl5M5K5=CLY>n$@KRk<2qX_+@P83p0|ss|*eXOUI2Wmd zdy7N&Q2GMy4&l&Ix;Pa&lyW^cEjZjijym`ax8Z!h`+X-VA^-Z5syU9?Z+7UB323@5 z?Rtg)7Xf;%2U;g?htfzN(V{|npmr(zZgimqQc6#+A_IW;&+ZLCt18d~_0issVh!*- z8AXu+s86Sp%6}IPMKP0s$@Oa$!O#aNWn%pFCIFVl=z}7oKkl!hfRQxYLAd~sRWbU#&~kM;e1fTtm7EDjqV>Mq}LXl-md_? zd}29<%OrGsBVgUJp>G7*gylZ~g!McFaEnKp<6#?sL;xfv%AizS4uut1%2g6EPI4ry zK;2P|1>vjTCE1Tz9wh25y~AcKwv{^)&-xBiNBrw|^#yA6uSZ-vxGDeu002ovPDHLk FV1nMY-_QU6 diff --git a/graphics/pokemon/bellsprout/normal.pal b/graphics/pokemon/bellsprout/normal.pal index a03d87f63..3a2a60032 100644 --- a/graphics/pokemon/bellsprout/normal.pal +++ b/graphics/pokemon/bellsprout/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -168 120 64 -248 248 176 -240 240 88 -88 56 0 -208 200 72 +148 106 65 +255 255 255 +255 238 164 +90 57 0 +230 189 131 248 248 248 16 16 16 144 104 64 -152 32 72 -232 168 176 -64 104 16 -232 136 160 -120 192 80 -208 96 136 -96 160 64 +115 32 0 +230 139 148 +65 106 16 +213 98 106 +123 197 82 +180 65 49 +98 164 65 diff --git a/graphics/pokemon/blastoise/anim_front.png b/graphics/pokemon/blastoise/anim_front.png index ed0b15e70e692fa7c1061f24b3d8a78f733ccb16..26034c90ed0c6465f52e59248906b1c4311c175c 100644 GIT binary patch delta 1633 zcmV-n2A=tY4dx7x7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-s_`vueVyp-` zVw9}rT8qs}N=g6#0L{(SS~(b$l$48NLI3~%)vQYP)tuF=N}PyLETL_t000H#Nkl~W92rM+lPMX~R|J-E&JCE8q?P{gfl@8K<}dO5 zd>V#e`g58%rSt`XOwWm!Xo3-gAm{uAgCs*v)tE9&enu8EA!pbP4&-?hMG-YeFH0%; zC6maRfH==;eHY4~KME9}6`x`3we`hXjgu2E)HzMi8&PFbwev7|egeb7a3{ ziBu8@(hy(7qJI$ge-?K9OUercL=IVI>1NRJ;tU?Y1i|!@MZIBd2a?SF0u=2pMd)Af zKPetRFBO<%DW2PVNk zIDGoV42I3Eb_APOS`8%#50d9w@(ZU7JQPjG$jBNDt5p#%M+B?{c_**}`Z3Lh-x*|Q zSXaCrPNJDn`dt`+?X7^s*|;4=x0Q7{Q)~ zoYvY(KN4u+l|s<@WMfqCB5ko$)9?X-O%)BptAD{dnb7pxXIU($LR!{@irWNZJE2ku zGr9k+lTYiaItF^7tS5o&EtXmXn)Fm zF;n~@dzC?cz&D0+knJbg-51?~Pstdt9KD(Y7uh|oqT+RuCg#GK%T92S-FN=mIAmm+ zO|$M-eJx@c6PWT>{i@-z4nnnL!*s*uGpcV#$gv(eNhw<1PArcG7|qo!K7E;;UaSB zeGvaY5O|ZGuEMMOmpg`N&|8A0-Nyvy%lM@J+vkH(8h=v%?L+EV{aW+K>VH^;rv9gc z`d>ukApY;vfBk;Y2D9uk`9v{Xl0DEgxi1hv-y|00000NkvXXu0mjf@_iL9 delta 1662 zcmV-^27&qJ41*1j7=Hu<0000lfWY`*sPITgNDvSZ z$jH!OSU8Z7kcend`1ttH$bk6pxX6%ToQP18AFq7?00s_8L_t(oh3%HXYa2%thn0Xu zj+wQpi+k`+lvRuaAyxi?m8XW%O9+)**Hy6=YgS5Z0s?6eK7U&l3glpr%#vIajL0Ph zTZFk4DneOf=vhloh0ueKIVGrXcGs&JMG8Ii6gmeB{Jwqj-kX{Cd$HJ;xvpFfe(@~e z#y5*GgsxvDH*?d0t$P|G#Ka`c?oS0ugd_+oow52S#%rxsGx-DYSC+Ak?4n6GW3Bel z{^{yg0GMgV*?*M2y=cE|^?Lgp05i364~U8aJiU0=d)PbT{1i+Y$-v)Lrz<=7`=Z_I zJ>gsj=lfd_XJWOZIA}h7_ws0$cT&U(-rLdQy zrF{EngXd|O13~+EF_sJSoZIMkbDi=F*nt*FHbho6ynjpY2X@Z;l}-tM-cSp22v<=z zSY7~N;Jn*i^M5EhOI-q*b||Vn*Utk|&v9PG&l>b=?+@LtMG|S6Au^pir6ta5kNE3^ zi4VIwp67{T7!)DP5FR%2lN584&KT z)Uq%D{(lxHxpl@Wd_I#AF7iOQuqeg`rXq6{&d_}e|G<<=XHjkm55yEvtojkSvRMF4yOHt% zWO#!3eRBe!dkwfHD;bnAbs)}1DnMy#&p9Bz4}W6b8I3*+2MQ2xwOZ@WR*KAvV%4Bj z?k7OAv)4z{}C(AdTQACxsE}2)9K?XmM=EH~`SLf0FLN5WqMH3mZfM zEDSMB1&qJ}Tvu=*ZxH|{GDd*|xUWhfsO2{{q$OR55w0u7RIQYSgdHUz4Z0b}KA{w< zs3*X#6_etsuKNI1nqU#KLP!q+Uq2A`C4Z+Q0arD!TVZwMB8bM4+~i_$_}W5I`6*2^ zsss^78rY@tp-hP}mPh`Q4p4nKbB9>d5k@mbB+hEf#~Rl+X8|#4^ZqhFooSE7a=c&S zp9+Yy$!+k6?Dgx}{v!^`Zia{qT+8K3tV;|4 zti+}Cn`8SNi1sNhCWr~zA1S*82!HKAhMq>U3%q;VS9a4N<5xO&QrhLqZ=iu_cX=I@ zeW;6WH-5XI{Wf3bMWm%N3-w6ZaTFzJe`&Y=rijFc4eEu;u1B33w4X8tA3+<#jPCfV z=?;(t6*2-icHi+yU{HVyV~Lp#7z~34eiU#4Zd6 zAne;97s+UkIQ-`YONlm_u!Uj<-P(|Pd8}M!ShOhZu;5(+MM(`}1@Ce}5EjLUSO%Quo@947b3+l83V~Yi-3Ua@JowD~Add&r=Lcmxm^MF5j0gYE5C8f42cEfPbHLd`Jpcdz07*qo IM6N<$f@-N7eEc0004VQb$4nuFf3kks&gFy|h|zkVq-RB+dW; z0%=J^K~z|U?Uw6~;xG(GNmRQIo2u{swj19XJ4Lgg`M1K-Xh7ned`_LfGTrBta)_z{ncZ&E6$W&6lb9pAQ6Ookr?*b>ig%Lh#$0CE+yB1h@=9>$e^QncpmpRYl zQ)WQJp9t>c2;ATZkOg!JcvOt{^>K#MIg$YJA(Z_YIxvHO^PJgu83Z52EckO17;g{V zcr&y#%4#U90VfYCuw$el5VBxQLJ~9$KsNW_xOH&n$GOf1jQk94@i8~hs~EfqL1;G6 zc&b7GJ_l(F`cWkV#t7&FnIY?3al&O2kK-t;n1V57vIo||E}+s#v;Hhd5no7(*m-Us;0_D+`EatEX#CW`wgTQ7%ZwJS@YM91a z6aK&{@CeL1zHP412!md3bma-%K*FQr{MX>N9u%XWaZDK@N1w?lP20l&GUGS~{p#B1y XSuG(DXs)IA00000NkvXXu0mjf^%p)q delta 739 zcmV<90v!G81)TKlrd}D zKorMKAfjVWm~=^@(%^m$7tuKhNanVZ=klmgs=b9l!$A9VsBvEYLL}-rA73SyBLiWTRFz zDT!t3fZm!0lbLvk`O$q^bkX2xyw- zX3zneJ!n`fKC&*vy%Qh@2h4wzssgG|l9IkZ?rcO0@J`UN2+R(R%wC4j9d-r^18_ZJ zfu)SaB*FpaH2Fckxal*p0Oe1xfNxxc56uH$ z1hk%+2!Y8-DVv=O;aLH#a|WyczvM3NJHQDLaMlClv1l&)kaiWDrE#!;=z)J@eFxPr VektXqvd;hj002ovPDHLkV1ix7P7444 diff --git a/graphics/pokemon/blastoise/front.png b/graphics/pokemon/blastoise/front.png index 6c87e4fd37234b03c87f22e60cf35e4efbdbd44a..0419463d831cd9a62caa1dad906739d0a06c4f22 100644 GIT binary patch delta 978 zcmV;@11c0004VQb$4nuFf3k0000mP)t-s_`vueVyp-` zVw9}rT8qs}N=g6#0L{(SS~(b$l$48NLI3~%)vQYP)tuF=N}PyLETL_t000A8Nkl)}mwJ6Z zT_ZF+4uhtYz5v+p97IJ1nkWG|=PwABTsd@8$uxVfEN&)2*o+S3@hXa9uu#`pN}g;m z+XF=N2s?M7{QN*@R70PqsR0C`Kc9_Y<0Sz4Ah>>-9ME2SAYAGz3GTn^wPn9#YpE0h z(xtwbM`7XrXnz{|$;!k6GKXrTon|of7KDi38eo{L!W%_9h-E!5KtX>&fe-qhpy%VE z0)rqJ_0BxDV}c~Zw=|NFA^;e})&s@RkctYwL_#?&Bf-h~(-<+x5kP{dp`m*&o4_^j zB5zM{LFVPR3nYwdL#GL>)Le+yGtiMS8T8Adt(@+SKz~nw+U5YG4Pi2Var0rtNWv1< zJ3`$nR0DwKL5h4^p18}%k=As|jLeNNdlmU|MxX%X4d4ZgZJJ%b5o{yOGha`s24D*T zMNOmY$EIHiWX~aYvsJ&Q;NbP`nx@5N zWtH1e9e)V7+5jX-i^9VD5-VJMK1+=As{>H3H4nDM&uC7?9e~#$5`6)%Xv>zudNWJi z11kxsh_S&i#B(VP!4)?Ej)GDW##I{~L+=MsAJBCM<&6uCU=G;Qkki~-=`8?-2g2C- z;$swN5n3$uG<*Q?se&+~8j8upre8kGVqq0hoqrQ6?h{OXhgt{N&Dm_B&sN)7!8FbZ zn9Zg9GRPa5V_daUaY>6E(xw*Pf)FO32|@3 z;(89FYrr-=v25lM*Ea$FpPODT63LDFdW2XPMi;hGB3FbM6T36W=AFeXbHGUqk)7cN zV1F^k^b3I6K_BDvCIs8*0oZaF5%z(6oK`B6=YPA$+Xb#i zen8zvX=LgW}YQ?9%Uk6zvIjY5q6u5B8og`o-OzH~;_u07*qoM6N<$f^UA# A`~Uy| delta 996 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 X>m4UZ$L5l#00000NkvXXu0mjfdOka9 delta 703 zcmV;w0zmz}1$mKtLdPNT~2Y z5D*X;SU_mdFfgb<@aTxpxPW+oNJz*i@aTvp$1$h?000SaNLh0L01m_e01m_fl`9S# z0006(NklljA6vy46a)lI$0s=86e1&`gDoe}^CV#2br30zDWoUGXxky<+ zCW4W+m(0P*!^|0+%#N&g5}SwE--UD1)VR6x3PS#mem}i;em==RO)FF8FXi}gasA*` zwU|0MsUDhd>#x->pW1Nyht`;jYv#_U$p5(#k1MwV+s!~QYXD*ms1!UnJ!gmfUh z5dfF8uqG2ii0Q$NrlD+~Iw8nYKon!?!sE5?CmjpLrhjx9Q1RFP(hsajy2`#3;3;5| zRoYFqa2l-V7?HE|MmUo9)but<2<<>H&>WC|vcA9I5lmN3=t%*6i5PSH%hZFP(gr$G zq`Yf|Lr`2iLXwD>07F#WZH*#^;K>)cof0D=50niA(MOC5>YIZUmdlhWQ|5n6=}4Po zj-)t6=6^_vb7qdzyWKs@Nl4~My`912B_wmCdtjXdGDou6-HZ?T=ZMUaz?*L$(VWF( zjs&5*ok4RuyLY6H2kv&?QT{!5j%1!e5T-3E4}Q*fj+Asvv_oNgN5iiVRwW!MMlKA- zv_0E#hWiGxUeFC7>>w44eFLdr6bC|ac+`YdC^!=g(iUT=P!tMNPbC;MiYXVPFp}3( lQ4&Ijaj_sor9k|n`3ip7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hmIZFR~ zLI1Ql|3N_@drGYKK>z>%7+OJU)iE)wLH6#8)xCpzgGxxqDDdcrR?S0a0004QNklP zLXeTP?fYXxDJg9b&;!9RppzXubDYnGU|3h+RI9`d0)fSFM50~fQp}JXZ>?$6Aaw`^ z-$^wl$X<7HzP8?pf+cXhr4c<5h;5OK7KnOSz&6I3S=^v1LZPE%E+)VNh$#f28ZmG! z;wWku!GT5uRDZ37j7QVpGs$7-eM;a5DH#HC9G@7b@mPx~!+5Tt7MN7(A<)Sh?tBJ6 z1dC2@rK9+IKLrEq^K0D|^&(hhGn^dF3T#}?qib*I7t2b(U4jK`!OG0naa+vs4W|a)x&V*61zu)5SjHIC z-<{Z&!R}V*=gpR>`xvka)`diW9!D7#<2A5{cSF}BSb<0Xb9S0KuEit#aJ-?veEA>w Y1JDc0@Bjb+07*qoM6N<$f$mKtLdPNT~2Y z5D*X;SU_mdFfgb<@aTxpxPW+oNJz*i@aTvp$1$h?000SaNLh0L01m_e01m_fl`9S# z0004iNklO`IJn(0{l%2w`J@TqGr7(I9aZ zd}T)H6=#MAb4hcXxOIU37h4^DuPX~@Jzvg!@7&ASUVH6G*`s7Xb(u@1QpH@_xG7wz zBTn;Y_a}wxgc-%$aY1kQl)!B>pVxuUl)y(*k9=-76n?r|)6Y2<%c%l59M<#;K3-X_ z0;q7F<$N51r+=97!efm=4cLa^@bRLn1fHt(vcm;oTMisNSL^n`;fRktIWR+vc=`rOxMqWyJS?qJwCb09xpcBEXkKn3D+r7;_vkMzTIN z0P00!cKRJYA6 yA`j>CBLAjriO6@A0TIz93KIO^ha}p2?My$ZhpwMaeJEA{0000s diff --git a/graphics/pokemon/caterpie/normal.pal b/graphics/pokemon/caterpie/normal.pal index 6120e433b..76bf98f54 100644 --- a/graphics/pokemon/caterpie/normal.pal +++ b/graphics/pokemon/caterpie/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 56 72 -248 120 64 -248 176 56 -248 64 64 -32 120 72 -168 240 64 -16 16 16 -24 88 64 -104 208 48 -48 168 64 -240 232 136 -208 184 128 -120 128 72 +123 57 74 +255 123 65 +255 180 57 +255 65 65 +32 123 74 +172 246 65 +0 0 0 +24 90 65 +106 213 49 +49 172 65 +246 238 139 +213 189 131 +123 131 74 72 200 40 240 232 136 diff --git a/graphics/pokemon/chansey/anim_front.png b/graphics/pokemon/chansey/anim_front.png index 487cdb2b482616b8a979c4d27de3f55bfaa67ee9..ca17d1a7005385f49459d31f78f9dec11dfd3ccf 100644 GIT binary patch delta 991 zcmV<510ejG2yD!^424NH2E3tt|Hqx!&izK(`LS9FOEaws=fiOz#D8boo_OMkg;1K}Yqe5; z42AlN;nXgS5A`vE|4(;JVZKr^wDFg1&<4xcA91V*^gD}Sc{&=tWI>ELU12r~Ypr-XGb zrXP+#r~wcwpntnlNC0BUWbK_H_!=PQqP!kNAokv?Kp-IYFCWJMzS=zoAj04l%m_O~ zMt3@Mz01FxQg_f_ehHvr;Sxdn`wd3=1W@6A$O+aW?ozA1ysm(Xr~t6mm1-!j091n# zXeGw_q6GEjqka)!%ynJu2-X4Db)M(->LjoRAo+Q|-+!-GzXTAy14M%T2JlV*y9Nk^ z*Zb}DLa;^5R_6qW@v7ug{idxo^w4GisPq=6?_15c>z)Yidkt{w%y@zKfZZoSPcBv? zP*VUCfL>AHUsg4M6PV4Uq;RD58ydZyO(YYL-;%O;V6C6a6JhV_^<*&!0Za%>PpQ8Z zZ@j*vAb+ruYaA?uwO(Ej)$D7|X(9i(=wk+PYMi_b8UTa~p%4BpsofKXi!Q04z$(GRM^LAXbR9aTVxJhLEfJP_ah^VZ0H>Y(p> zAl=?O_LGV{2-DFEA!Irt?7rjf=@ngI)O&~i-+zQAr;(e`yAO6Myt@T=^*!`Rt%bt9 zdpTG25JIx_ueMOwziW`(?r2%o{ zgcbQF(O@h~^V2u8>%E=N z^A_>1M%DLkOE0mf0M+{Z{BjEc2<8&Ytrk$UolH5D0xcHw3ZELT#4_LIRN1IpAwJ6j~w0$2?>&q`nq8>ceGYN~}QtYs}wmwU0% zB2_~Hxp}EX(kYn$HnE1A$NR=oRR=6xY#T5exj;besegUK3jJ)EDG<V8)#laD1o18Uc|nIl!S=h5D@iJ;DlB4Kp%;a ze@a_mHh0OW9|hea&n{|z)C^`g(q>4anGAKFD8C4W*gk|_h>5M&RCK!c$iM%Dd(v^xm5 zmo*^mLpd9pG$F&gg9hf6hd~EIsA%JsFB_X7O?L**be@L4=?=;~ z-1gss@-GLHSPi3W_{-@pXD0cVQ#pax2Yu6lNPsE-a<1m%K3%G_8eP7#nporCr>!xr zx_@rckrNr0qU;0U!XtC|drJ~vtf4Bb(e$_OO50%g1lTvB0s@v2cp2~6H(|q405MK- zH)S4h#^PTCCB1&-VK$x7OaM9{G#E3$o&Gg=I6V9=b&Bml0Ksth@lSv>Qbi8rQZ|tS z^9;t9d&8q2Ogj*FAGW5yhK2))?dPWn+J9hN&isR^5%vTa1_R%sJurX@@0$i=jBh9G zzGniwXBZ5$u;P*BFUs_JW-t)=d}2SrBNEjHV}idYRr|nHD4`7o0w-~P^qyf8+F;O& z=R^`e&;|n!Y~2MsFV-Gx?Ai;PcwA6Gm!bb+{=nNva%*}K^W!({zE*}jV#P}U015yA LNkvXXu0mjf^6uLy diff --git a/graphics/pokemon/chansey/front.png b/graphics/pokemon/chansey/front.png index c032d0fafa46d2b1ef29f9882946d61aca170663..4dd2e2fe277c4fa97cf22d424880f6c735a28520 100644 GIT binary patch delta 578 zcmV-I0=@l!1c0004VQb$4nuFf3k0000mP)t-sn9!i+dxMKX zLI39F|JB}$K|$_&d-kN9`1tq`5D<$&LH4AytfX^uYD(tby#N3J3Jk?(0005aNklvDu33`T_-Bt?Dy$6XS_MFgbVzkV|vceBZ3=N(n!M1JOce>vO%uX5P=@hz=Z^yN~Jam!- zl(ORA%SCGFDIoJowbswy_`gl+gqwjCe)UT3l#8wmzDXNDt6>Q1&pZ{ZOPKz#MMEus z)B)YxLK2W8Y=4$%EJ1pJSVCn#$Utt>>OeFgwjZC?0MhN20}!F}3Kj+f$OAWLKo8KFDtR#(I{X}K)AK%dEEIaLEyb08Gqb2f-?);oFE#G^AtW9+$E#w zoCPUIg%9~fJGau0wh%zYI~<<3nqOCw4gPa2@N=d=;6-4h2>Rt>wE{I1umR|Z0y(T| z0T(dZ$xyXEj0MeKw6hk8> QQvd(}07*qoM6N<$f^Jw08vpD8HCv6H30xg_x&zu=%gW#$D*9znKZ}Kzo z5+K~~*7rsPK+;LVXE^^5#{i!JUbR@z`%=CK zGPnjfF+f-Y5Pz-p4}jP9DXsyRkVH^a0>@-3A2Vcl5l0ZQkXj--o_|6ddx8^?$j)Yx z2+|kxc>(k}LRt(7Q38h&v1maVPOgn4A{!xuqap&QoUKX`xf>ang|pUc3Y?GO$)%a zb-LcK0>hsm4e;P}y^1SHPwVWQf$Yoy-$YmkrbI~m?jndP5Day8^-l}sv8FTf9agHY2k&%Fgwkzm*ne*l8LF$OWQL2Cd2 N002ovPDHLkV1jK55~KhC diff --git a/graphics/pokemon/chansey/normal.pal b/graphics/pokemon/chansey/normal.pal index 384b9e8c5..698af3b61 100644 --- a/graphics/pokemon/chansey/normal.pal +++ b/graphics/pokemon/chansey/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -224 120 128 -152 64 80 -248 224 232 -248 208 224 -152 48 80 -232 120 136 -240 152 168 +230 123 131 +139 65 65 +255 230 230 +255 213 222 +139 65 65 +238 123 123 +246 164 156 248 248 248 16 16 16 -56 136 184 -232 168 184 -168 160 112 -112 104 72 -224 216 184 +139 65 65 +246 164 180 +172 164 115 +115 106 74 +230 222 189 0 0 0 diff --git a/graphics/pokemon/charizard/anim_front.png b/graphics/pokemon/charizard/anim_front.png index b3421924f774122a9f7b2ff676973b133e32e431..f3b62d8fd530a646ce4735e20ec7e4b9217c9fc3 100644 GIT binary patch delta 1635 zcmV-p2Auim4E_v|7#0Wv0001tU!Pb20004VQb$4nuFf3kks%s?%~C-S5D@NzDF{GN zAaIb#$jJEk_yBn;+c*qGB{(K1%VYol-v%oQ zE|TT$d6Wb-mqh zJ`8%2()IYH{V73z0GM(H)drtO1Nt(B-i5%=Fz1{oHgh{c03?oQxika=FoGpyh44@5 zU_czpo%jGa-ZZcTMBKOuY=%&Q6(9ocwi1vv`az8uG_8|(>LVFop#c!#UI8Uu5yQ$- zybIJhWC`F6#&o!m<-Jt%>gO^l5Q2^kPM7LJ!a&ouNc7URQaE@P+wIq)`+ zolu6r+58`$JdiI? z0uxc6Mgl5esmf#@B|yj=o%Fpp7xqC45^(bqWTU>f7sRkcIky>70A zjf5V+@g%`TL;$@HU_%cQns|DG3J?)Zw5B#}0O7+#(@%e%0-$K*SMrNmU~oVSC^^S= z67m6mUTH6|Gzsq!s6jfsR>H#hhgR>&DTTGZY71+S4UpweBSD49M9cEL1_J1LL!B^* zZvirKC^;mIpb~7G`neqyU^piDngKvBN+sF!LtqWe83ZT+ce(teA|a)B55Onbu9yI_ zj1h203m*h5+PzHDYet}X+(EXq4z?FiR+Kw`=mEAbX`;$WJB!coo&#huE&c=G9TD$x z0n{{28}Tq+0YWeY|I`99KRSxHR|QZTqyTuI#n;r*0I&n#Vf^BE>6U;cJxIzw4zFju zC7>m!gZ*~v<5+zw}8+STWO z0LqK|4*NtYTKoqEh|e9LI9cp63(rpkT&7!vzb<>)pPvAy;+_c4C;Sw^S?@sIto;iH z!fy$`SFy$)eqccq`+@)cnFZng!}>D|LJDt}@r?x`Wrx(R1W+4f`No2fn>Wb?(DFOD zAUR*LAOryH7fAVCyqv2Rgnq#JI)itA^FVIjSP)q+cwD@>eNX{y)plS(&aiU#>|3<#hZEQ7DS2X?n(Am0DM8Z zU_oFl-jdrW<%+#oy!3lyK`fT9l==qMK#KK0yHj%Wi3Mly zF#M5SO|1UcSy4*4rBy}%w5`;C|KW57LcM|E902}qZW=TQ2ONa=<^M#40tNxvO&6c+ zY-S7yS-0`ipy7O?V&TkFDi#R_1TMjX2=Q{Q9m;pE8L?LHK8St<=AkyVYspX0`3I8) zFq5OL-V4DuStDTpOse;n9kQ}Z4<)$E(pB#-oyJ_jKR}EhDqzk9 za>MB)$fsf__0@1a*hy#QzuIwFD%b-L;zIeK&f+b%cjZ6M00$m`e;kg>e@j+J9s>9R zodM1~3`rZQBeed3K05S5Kx)G2%Kse5rxr#%?FZ%mxrI>(W&(Tp9{^|31Hd8h1!3?H hn#ce92mej~;4jupkX~KvGK2sC002ovPDHLkV1m`S;cox{ delta 1613 zcmV-T2D1774CoAy7zqRe0000SuSsL*Nj0RmF#!cLLOjScw#`3Aw&1>C61<-Iri_q3M!Y;k`& z-Td~wH~)W(wa*s2=Lxogdw_rd{)J}FMtcEd@eablcKAKm--9IHfgA(`y!hY^axLQMzUZJfPiJjm{^#yn<*+IgBgwj2;rN#w)WhZmhj*m z1SUtpA@n24t-Zds$-!|GV6GDYMw5TZJ^|KVUIX#y`z8QJ3|X*0nd~{>8lUsBYL8x6 zyD%{ewjl>=f!``1f&kXepqo$x>i}1YD?+?LU;)E3+W&D7umnI6P)*31BCoG53MxSo zU@vOGOKQMX={>e*-&OzM9H{v+csdu&}1)|OQU0M6#;ivE9-v1ow= zq5^*=a~mluQwpJ|CI?{J%mT1^W^yZ3it|bt+*sR-;|kzW30Wjop-Wo<@OfTPii{^_ z&Ni){Vi%OXq#RcaN>|v+MFNwZvP})^0BXqX6#=iAUjw)rQeVSosS&ue8a`@(i3q0d#6}IA1P^}|WN<(ka(J1F z@T&~U2S5nd9>cQBR8<7kSe76BV5&U%a`}lO$glzw0lras`tW1wzg#XWLP@M4q4fce zO8E|tLVvle30?wFmL)Ah8k89SFYAb+=(04Vu98Z5EBNPDg=NcHlhv8^}B9`NKxI$EONNE_)8h{+dQ?8+1-mv!B zFl7zEfX*|RiZ%m2i7EbV0VouJ)f%vJ#Amm7rF_-R0D##=;-6IoB&%Kkob%lkJ)bFs zTCI8kJog(uHx+P`_J9Psb?N{~gQ$D$H2YFjfP{A0Z>N1ArKW!xu!qAy%=GE%^X@R< z_8Rl}?&^jJwFcmJrQbZx5l+?t@7)_XB3rneuK_#Xy?NW@&17;bg8uWF)}3_n$y$}Z z_S;{$eEY{b(5Ih$*m-{!z`Sm}_8Hyv4gvQX#=SA9ed`XxK))Dm-DMa7l(BV(VFZV0 zF<&qYj)rl#y|;h0HEbAM8R>n!KRJXt1`VT7CX7zDCn!RLh5`GXm%nTu1rLS|!@wCB z%_oxz7%&Vmg>e0O}VYueufMG1~-hz`+odGr-G7JRfnaWW$ zvc@oMV;GpB%v5L*7!Mdm>L!{QKY%V0Zh`r>nck%{+`*%ar z0mTuBOn!eZrCaq*An^Y6;b8T63_wY`0%sy`fO_4DxYh$YRV5O62jHz96pnx_`EjQ` zZuG$=AxB9&?+cfpgh@5i>Nw7t0-#+Ox|j`z6|Sc4INqoMA-SJaSGSSlOjW15-vIFa zWqrBJxblbg$oEiantPS}!IO=G5YXKIOLRgUSJ8jH69fRy8-UZbj|!ri05WcF|4(2B zB?6!zH2{t##|@AXz`F{9hM`*k{eqjWg7|VOX0K|X_KU89?1bZ152olBk?ARjpKdgI z@VA-2i8LM?_DEJ&;IPJGPAnfRY?zhwWh$}r9^oI%{J-FK+n3IkFnLqpo8l%a3%@kwu00000 LNkvXXu0mjf{F&#{ diff --git a/graphics/pokemon/charizard/front.png b/graphics/pokemon/charizard/front.png index 97a6fd5ef7942ffaac322065b010968e378b07e1..a6792d551ca1a92c08ef1be87339b5e6e0698b93 100644 GIT binary patch delta 975 zcmV;=12FuG2=51w7#0Wv0001;w}I>c0004VQb$4nuFf3kks%s?%~C-S5D@NzDF{GN zAaIb#$jJEk_yBea4<5CBD}h2#)@#}@&qRu?G& zs6ITX1prxx!Da|I*Z^kWH+F)OtM4+DA!(iHWepC%A^`~Dw*ji&5vQFMeKF`cR10RJ z1KjJ7d4mNi`V37(Y(mqY0QV7~;pbcl&BCqCH~>ZqvN<__H-bl}1o{||dq5CMO`Vfy zd2C;bz6Z!xCqS{-13C+CfanNNG7Wn)2e<)ZFBRb=t_#bM+DEn6^s){Q0R%uxju}fw z&=W8NuscQ38-SAjI}ne3C>IfD)pkoB&El zbwp37h)CeQq!#%ex#gHmla#}L$ma!v-EfXyC$xLRO-9s$@Xs$v3279(Lp$WI0qU*3}Rm=Pq88(B$v zutx)RM|FWCAnH;QRZrS0eWK?aV95;q8^E)FM?C8Tptor$#7n&cj1UNYHv*Dgy3)r~ z1GGWh0iLh)t+fmQ900h~FXdT!B%rnjYx&pmcGgD%qCs8M&lRB|2;9b}06Q4QAbNfQ z7;k^}8^?mc*Mv6Be<&3~dK<$gXNK+Ra0ZsDehrYmxNWpeoFepZ902=<9h1$jS=iq$ x5wJ{4Mei;fZ~HsIOLIGD-|1fg+Vv*x{sPnANiW%&oW%eD002ovPDHLkV1kAGvgH5( delta 1002 zcmVt8w6R28%`{0z|i0?P5sAo3mJ9(Ttg_bT!kTTR%w*OpTqH;l+o^W$+S;Co@Qw#Y z7s-z}M^-zxT)N`?@g~7k7XXe%qceX3oSQE}Jo$c;z-LTZayA+b1F-b#+O+ZPm2)>X zXURioupaoW1u`UXZh~XN1ls}@MKB>=dEf@+IXe64Am9jq3Ajnw#^iD_Ysi8mz|A@! zDmoyzj4s{Pw=KX#9uBn)h)X9>89vMX51FUcr3)sUGpz!EtLe3(UosaxP#}LR_$yhv zOgULn3Pqj*;AJZZ;P}ecPN>rNl@vm)-RyA-@XSC(dKcQb7QpkmA&H6?cFK;O9{VFG zHz$n+gLUOkc~hX-B|Fxb19+(2f`B(H?f^dxWvuZu+5>Z^@#p|1W*+bp;R$bX0l#{V zP#u7Yk2F&HKUM*l`*PH22gHB&$qxbp7yvtV?hUL57DLNlK04b}>Fq76i zt#a&;2_j0bp;*=38kKyL%e;*@D47Z-?sdS^h-5F*5Lj9sN# z6XemDk8v_qk$k=Sn=;6>1r!0XReJpBQyITrty)4!@1daiz)~eY;aM85Rvp0&0Amad zAr)nUfvE^sAwEEJVZD$YAkf{CO;%kBd}0h*+-J~a_(cy4tQnBo7GNTcgU6upEVDuZ zkiT@m-~-Ch15GXm@BM#-sLe-8qn;fAjpiBGh|4?HuY1;X017&-(28EcufjI}_5h3m zSnmPrK-`AmmGakZ1pxNc6aTDRpjhuD@I60W)4C-IwO;Qeh{B#n%C?^PbCC$NdhM@BY{acIoFIPd@w~z@k3i Ye-`6!f8fnprvLx|07*qoM6N<$f?ylY>;M1& diff --git a/graphics/pokemon/charizard/normal.pal b/graphics/pokemon/charizard/normal.pal index 87269fdd3..db32d4324 100644 --- a/graphics/pokemon/charizard/normal.pal +++ b/graphics/pokemon/charizard/normal.pal @@ -7,13 +7,13 @@ JASC-PAL 240 160 16 232 176 88 248 224 104 -200 80 64 +205 82 65 16 16 16 -232 128 40 +238 131 41 8 64 80 32 112 144 200 200 200 248 248 248 0 128 248 -232 216 120 -232 176 88 +238 222 123 +238 180 90 diff --git a/graphics/pokemon/clefable/anim_front.png b/graphics/pokemon/clefable/anim_front.png index e4a6228e168a49df6ac111a2b1809d0f75102e95..279172929abaa08a184e6eb41ae81f39ccf36369 100644 GIT binary patch delta 945 zcmV;i15W(l2fGK57=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h7K{*f* z5PNE3i%L@7Vq*WrwC%0009yNkl^V@VnMuf5%V+6-zV6BXrR%>N)_hlspS&l3UDR&o2gBQVxoH)RT# zfOrBB0jZxIos4`VP`-4`gqBWd=66Ee7=_Tq5$!wyumMs?eNiu9=PRKeKHxd;#1Dic z0OLTOPn=BHMt=}OH+~G9Ujmn$U+?#OesSe+%^E?1D z;a*E_WS@c-izon$fvjsid&B;#v4H2$mh%KNApwDna<-FcPoe7}@ zx*V2ki~^u(gfYMpqqryUluFC&G!UKbWcmpx4;FA z<~za}VBQe~08A_FguFQz&-Dx#$^%KhN;JT5etJHhkH`KzmY)~%&o}vcb*dYLi{Al0 zaqjcsRaag0f7LGyLQx361B@61k8m4s5c=}HD1U_cJ;?%s6@+Rq3ZdLg--3YPbTSM^ z5BLxeWFUB_o$uHG?Gc9rL|Z#q24gy`-bDf77>wG2CLr>LmoF{I0)o5o@}&h;K==lu zwUE-MfG7$;(+AUTAc7_!z|aTOTQLw&7OjGSDE>fsPJsjyuz|1ygrN_B7W?1{2;(V< z*MB-86HEc2>w~&h0$V`n`T*)lGaw*D0g#ujp#f9@Vd#UpVsr(BK8vTN()R-5M0mg7 zA40$-91xO^Fa?CNXgm=#0U`Dv6YPbny8LehSwJ`d?DyLQ?Z8z)@cRD;04(-^=jcZr zY!}3QlK^KD90B33{X79NVlXZNaS4dSEGqn&fYANHs6Y_?K?aQahsz&a^#}D2dM#07 Td+^>r00000NkvXXu0mjfj3AeE delta 982 zcmV;{11bEw2jB;g7=Hu<0000yA4AdhM-+-+ff}w*)_#C`D+wr}#(+=HGo>ZyL``vrbm-_C<*f#30pWmOi z>=t6@g$|4wguVZ!Q~!0iKeES+?N0f)TyBp>1h4@DzB>akSHyG%qmkBvSuX)&hCh;c zI>le!+gbs}`hQ6YL}I>sD(QE60W2W^LI`oG5R!$67EmQZEHQ(q$O~Ek0il2ZpvcEY z0ql`r3kcMD>|^Ft2^_Kj79uv&d~Ass7MLhtE;`RR=URR*`@%m$#3!N{q03LQ>_)F} zon_wo5g{6+n7`72z3U}_%ti``)AWMmIX_uKbOvyyD1V646qrF|4j*)10cpb`wWKuw?qQXGSoU`*u^U>Hbw``3bD8i+IuT`)kH27+(DCKy=9EPy?TU^EOw z4u7EuhUk);8LvIg`kp2j&SjQqhm6BMWxNYe3kLdwe#rDX!%IUjQgR6OeBTrddPwyk z7#f1Xb;*(Um2U`!^oRA7mfW6(VBFMQtmv-L_oDj4Lbt?tClg3&KN|B#kI zLoljaldmsNLolQZ(jbDt$i-WRc_SQ|fKM(MCa@@*5J1-hB^ZIb8IXb@?yDdLLmWHz z3r7DT!T8w(wt`U)@i@UC{&2TJFiL-jhAsK6KRh!20r};!*_FRO?EnA(07*qoM6N<$ Ef;9@UcK`qY diff --git a/graphics/pokemon/clefable/back.png b/graphics/pokemon/clefable/back.png index 2d7cbbdef7a2bd83b4ebded271152b23c67e9963..11b37f35f8428edd1c15b391cab0ee7cec4bf023 100644 GIT binary patch delta 572 zcmV-C0>k~X1@{Dy7#0Wv0001;w}I>c0004VQb$4nuFf3kkv=ki-Z@%OFh~=h{?h;e z0rg2lK~z|U?Uu{3tRM_U+ZdqAD*yj?PaX(?1a)@rz>Hd8FLr25{QbW8;$OzLZR6AM z{6f9&dspxiJ-=kAnwCQwf;zS%PK%Ml4wO=I&f?ergs^3fVL2kNE`3bYnIMy106J+9 zh`C15A-v>5uzDtc$go8;c_pa4>eHnEZ3^fJ-M)=MwNqD>S#Jn+AMA@M(7NYvdP*V{ zgTP_~Wvtxl$wQx?^e#d@dAL_S>R%I<`j>YoWKeSc$a&mUo>KaQg!ZY&@I z4x1U{i3q8_0yhriit}dPLSn>08RFW4iaC5DKm>6CO9M@RolI1#q||B)=AcK20&b%Hurvs|+*15+*t6uLAjsFw1EMs8o4^N2uNn z3j?V_Jt9~i$^{XmG3KFvx@ULc{f4(7P&n3lcd;ogGT;-!^O6 z@Fk#aYb!x$VfqR)2K=dE3|M7g4IqT#=M2D@Ujc#}48Hi{e~3TLV=W7gw3){M0000< KMNUMnLSTZ?DFfvI delta 631 zcmV--0*L+h1hNH?7$yV*00013M{Ml?0004VQb$4nuFf3k00004XF*Lt006O%3;baP zkuEZSxL{yVFi2;or|SR!010qNS#tmY4#NNd4#NS*Z>VGd00Ik1L_t(Y$L&BUQ>wVN*N9 z-QiNJ;s@UVa_9bT2)Rn%kmkuP?wiI-^X>P4&C}kk9!b;uYJHe1-N5{iH zoaX@*vkSv4kOvx0bO5IiE(~Hpeo9*60t4irNmFY0j4AC}c|}08zSdtSxRPR~7guwC znW9U$9k)Lhe45}{^UE5%!fn1ydNmIsQw;oBx1og8y4z(Y46SvjQvQ~Dtuo%w>nWNz zNU2W=U!Bi-m5I$#%Cn3mD!Hyw#sr*q(x8vL1C16v{4qE_o~9%}qEC5Qk8NU6h7=nw zyWyC z8Zmbb?3%#6255RSVY(Q{f^FxsHKKrK0%H;8D$<$2HOJ*o1w&i>;5$(i{{bvJe~PaV RuoeIS002ovPDHLkV1lH57)}5H diff --git a/graphics/pokemon/clefable/front.png b/graphics/pokemon/clefable/front.png index c3c70dc1e0c0ebb45c4fa0179db1b8b289804761..2ac06ddfc3dac59a2055af5aeb2e940ebd4540e8 100644 GIT binary patch delta 626 zcmV-&0*(E*1^)z)7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h7K{*f* z5PNE3i%L@7Vq*WrwC%0005~Nkl3LJp^nZ z&L^u~hc5=^uZ+b|Xh&T>8*Fr3h6*R@^DLkuaOmpbT%gYls(wP@SAUeydB1I2IOt^zA>+3SfXQ{^@Qn<-9L8L6%?H7{M!dxbgI`zSGg{Rk zhIMV@QrsmVw+po248U~f>XP0j0_#8+s0OtNFom9f;sbREbKC^Mu%*xw$t@_DB}LFF z#QQXQF@F^oNDn)0;6~>2xl(rvl-tl4M3Hy>7#N;c)PD@zrdA1KoDHY4nWT!o?vy3(gY#HK}~_W0=|b)75H`vsS`>HJRM$hOhdqJgi?wkh>AuR zpQUI#8-V$~Kr>JhoF|S2?*@7ZdQTHPr$UAA3f>JwzYr7!(M>SslRym+enwy$f(bqu zYDFsL;%nyw6klzn8`B9?O~86uOoAa_8WFn(EtDd delta 683 zcmV;c0#yC~1h)l{7=Hu<00013M{Ml?001yhOjJdf(4bI2I1msJcxYgVNKn{dVEDkW z=#Y@OSa@hiP|$dw`1tsMfPm0=h=@o~Xh=}Eho(vZ000SaNLh0L01m_e01m_fl`9S# z0006lNklz9xCm{5`~s(F<$p^xJ2R&=&pq#h2MqQweP&UHuOl0Wa;exoBy9(-o^amZ7 z@3sI^%@mMV)xDt$akYi)7T{Jen&)&l5Ul!HDED5BGm+aoAItJ8J@ z*k}MBCCDj5rIqq*x03+U(Nlv+z)nyA7DD|uC14x$Q}R}QsPeIa3GfMnF5>{yV_gCH zod1$DTukVU{V3KsbIv5Nm<0CwZ&C=;X!M2ZGbB9K_;&yO55ST0rW5|<`VEb7V1y=z R|1AIj002ovPDHLkV1i4nF+KnQ diff --git a/graphics/pokemon/clefable/normal.pal b/graphics/pokemon/clefable/normal.pal index 69bf321d7..242352f05 100644 --- a/graphics/pokemon/clefable/normal.pal +++ b/graphics/pokemon/clefable/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -80 64 56 +82 65 57 16 16 16 -120 104 96 -136 72 80 -216 96 96 -248 192 176 -232 144 144 -184 88 120 -104 72 80 -208 120 160 +123 106 98 +139 74 82 +222 98 98 +255 197 180 +238 148 148 +189 90 123 +82 49 74 +213 123 164 248 248 248 -128 128 128 -208 120 136 -136 72 80 +131 131 131 +213 123 139 +222 57 90 104 72 80 diff --git a/graphics/pokemon/clefable/shiny.pal b/graphics/pokemon/clefable/shiny.pal index 11daecf72..0ab423cdc 100644 --- a/graphics/pokemon/clefable/shiny.pal +++ b/graphics/pokemon/clefable/shiny.pal @@ -15,5 +15,5 @@ JASC-PAL 248 248 248 128 128 128 208 136 152 -184 96 96 +222 57 90 80 48 72 diff --git a/graphics/pokemon/clefairy/anim_front.png b/graphics/pokemon/clefairy/anim_front.png index ecbe37a1bf32d3b0cdfd7b52d38a7a0389eb45a3..5f7e02a6e0bf7298734f1a75e5e9bd79f293e52d 100644 GIT binary patch delta 754 zcmV2L1(*7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h{Qc~u7 zd;itFb4oc{F(90Sa}W>^|E#Q(l$8Jf|L#FKl$4aPI4A%B000003rKc_0007fNkl2m5Y426+JYS}68|GL%YY@}F$Kb?E6nU*c*vn&Z`4u7}Xh!G=3gaQCQk*9=+ z*AaIK)uRQhA52qUKi$7L?&$`I8^WaTGa>-sD<{OX0VLjx>vJE#gh^B)O#sxMGlBKj z09r({MnJnshJcL-SD-+=&BFB4#T&miSk0z7`?i<3x9 zFI$idrpR1b<$qn(o+1??a7SMgiW1N}fSV_!7S4z#;$<25D%pa{s_Lo}paEW&5h{<4 zCIFbN2i6XdmKNSYN3Tl*oB$-N3b|85NK!b&c_vKX3ixLIJX>41ik%ulEqdiV&$4*V zHQP(;1yHvOO9L(ad46nO0#U|Z74jDFI0N*Cc~98sQGWp)Jrj1jSR=_?X8eF438V-B zegRM%a7v&s;G94Tpom@oM+BK3VgMu1L9Ge!sS*b~M-J+h0MC?6ozv)$0vs8=@AAne zm;q@8gyljg#U=2To)5=b{4T5s6`J#EB@5hF&7`13K``vMs5 z{oir#6n}E>M)=jSbltme;T0fIMz9HLV+d&l^n9xpz@^FEd)lSYt)YrbbK4$j#oe}b zYG{ksqLPRIiF*fVd+4}#8yWi%fUWbR)uCn3bMN9VQmuzRLfb*Wy^FI;dp)fBhd06ieBmRr{0Z14lkhbsi(EtDd07*qoM6N<$f;mWDcmMzZ delta 776 zcmV+j1NZ#?1(ODl7=Hu<00007@#MP!StA(u|IJ%o0X-a^iVKz|3@bD=fq2QZ#%i*SNY zvI4qng$|C@$z*8lPY@8D@)0_gewV&?@}KnXNagY7Xx!3v^nef_d%$V~be7qqrS+MAbW&*F0^A~XjKGOD!PBM( z;70&a00DzpLmR+>5IfiaDJ;g?5}YH8F^c0004VQb$4nuFf3k0000mP)t-sn9!h{Qc~u7 zd;itFb4oc{F(90Sa}W>^|E#Q(l$8Jf|L#FKl$4aPI4A%B000003rKc_0004wNkluwrJh4b5U1&mJAdxDBNPDe37!%nURTT- z#-j(Uf8;#o^ZX?-rwI@@hHUpm5fI3e88K}HNhZ^I8Vkgbl~ObT@NzB&;jam-i0nsZ z9iJja$eH`FdO)&Y7J=|#LF#!g0=dH={CEZ`FkV-H^F4z^u>@rKaUYx&abBmO8RW>i z^2&E=IYlmNkbjQ8Hxx5q?*ML2N-dI+tcbT|kf(GChE?NgH^3rzUq-01bSwct@*a3Q zKwDa51_R!P1~?IDRuyPaLr7XU#MT(o!vqiETl2O^6$dqhTI|Wznhs7>$uGSZz{4*5 zG|pKr;%N@EMN*8&2XTeff)q}oPQKWM$(_RauX)8huEA0pG#od zKBuH~jz7xHH;HreHZ_)tq)CJguyh4L=AjD&e*vZvSoM&V05_`wCfDxs;KnR{GpYbs zFefDWCN-1#X&(q`1tsgl$2s(Vp1tugIc6&L4%}wy?9`-CIR_=000FONkln?Q5E1jhB=?mr^L3S zK2nT8fD`ufv)O+$A=CH#_i_IPK!^aSAy~S4cg_}6KoE2*M%kkQt_wDRB)%JAz(D$S z)yoGJaJvcIwtp{Aa=1a{eBUfXzz(4z2=Hjv6V*l70R)0WwLv`Zh@b@IXv#kHHv>Id z8^rT|d%ZLqgh4R^N0tbJevhd*<4FJ~$PQ=uf>B0su5k1ybBXbk#RN0K034!mPO`)F zk^AlbBF2jrI}s-<8(|9I4={jMp;b*#JpuT~dwK?xvVY2wlmgdh-78%)16*zdJ5#0v z%e+rR>=>{CB>(fL0^(HWChdP6aBK}Ay#XGDcEJf%Tnk?46Vwo}0dLhafC*q0szh2*43|JRI;~KqRz>z%l*f+%tU>`3$|#jE0Bm>| zv8oRW0DnsONiKo`$o1F+1(*x09iIkqQ3#$zKe8J|(pgKa0Qy_NA!-5S#*6-_57huB z^z@P=n?xYO>+!QXzzrAxw4ymcQn_7W0OA0k@!jNdUGKGM2<3f&{V4h=!)(XdkK_CO zE=3JUjKFCWwQ^cPA;eqc#p|k+lUYsk+QlZ^t$!qym&d>WGYc9M48fG=Q_rFSmT^T> z6J)FIT$SmIsw(~a3Ia|FsuL0hf(eE9!^^?EBnLraNuMM)HUPAr?+{=^cv&?7d#6Y$ zOaYi%0_VdmjY1T?q5DM9_!pgVw_FSv76P$%pi0_}Cncdy_c zfPc@0T^BZh()@m^U!=4l3<3K~iw9aT3~;7V0BOtufM)@c2#de0%OWP6GazAn!>-fo z{amLL$qIG{m>l4pbzS)%USH1+zG(fwo*gXO{Qq0ChvmE3L(DGz!Qn&O{a@dyC4?^xFq0O>bB0MdQ#0l-tB34;v|P#9eTn0~FjvOZA7nzGWo z_O}5mAVvm`X-5Ym09xDCWX-U;Wr>>FUB)H6gv++xmHri zgtXnmPeAAK8tFbD^pXJmEYJcFr>Ow|Hpf{90Fx0w2cS)F^lBBo7fg5d;S=( zv?jCzG&cc@CB(F-rOk=d`%wTEZUZK-TT~Ooi{?B9U?^+>T0fZJh3#PLEq?&t#{fhR zdr039>WLOTSF&R_MGO;C1CWh4q>r&w{slNl&~)T8-2i;9e2iePpN$1aMh72=AXxkk zj1D$_;0CZN_r!%=1^`N+7yf!!7yvrLLf~R_UM@Y3nUJsOWvs?kicWRDqW2j9ZQ2F* d|6eE8Ur*XK=sTb7TmS$700>D%PDHLkV1i5dg}VR% delta 1449 zcmV;a1y=f%3$F{17=Hu<00000^`gOXl@-W0WYi} z!3;5I67ceZ>>7{c4S)#Pv&7}MO2nY^bl_>1z?)m*a$4eBMHkY*je^8LKYoh9YX2_*s_~r?c7XF#>%A6zkLy849&CnLjPdX@41FK66N$K$q=I%Cab?CwPez zQ_(5hGkl@gbW#>oRgDqA0;C+Yen=?+XU1Rs@;t#;rCKXY;N#^9G20n`SN%qSDHu=z zmUR#43iFQ!I6uj;V14S`^!^$d0@JhOkH1&dhx3y+2!H^`?`1qi;BRw z{9X{JY=2T-7~tZ3T-t~36;38&PzWIL;n|<#5<5%gFmf}c3~+b;%EUM-G21dK>Z#-i zd@}w|2;dQtjcNeo>6d56=>O}YIy%X?0Xj~qL0I7K>grYX{y8=kW1WuckExi|r>h?- z1n`wL;E_lq0+?!R<_eK=0Q_4e73-M%e|*iQVt>&Ad$@zCT#n_QBk}8PfmeuCG-CCB z$N?K>etdgd9AeKUX@@lc4quI5l=GsPKes?V0=68;DH3J*%{36PRd_WZR&3{VcKYK_ zv$I@+Nb46m-*KC`xOJiUdB<%q_-`qOHiBPor zt!=IO`aiMHs)xQXf0W2R?U#) zLwm=BUF^oafsqeuTFw9vjrcl&V}W(@!2Kvne#FmVc22QZW740c0004VQb$4nuFf3k0000mP)t-sn9!hmQiIjK z?yP&gN+41Y5D>-1#X&(q`1tsgl$2s(Vp1tugIc6&L4%}wy?9`-CIR_=0008pNkl>2~5U422_GCJPPk|G1;w&P?o(^w+4TEeE(CSJsj+O@EI9;F&JuDdVr?DL)6O z{IQnQFOt{!zRF;)pCm<0oHiTXXs3DaBV*Sry9 zqu?ZBva%6|0Dc1lC<;Zjpn3xE(^q;1l=7C4mIBvjJ%1~WkpY(*!Dh;oV4e535gP+G zK=PlT3W%x9P22x7;Mf`tXio}3V9Kc5b zL`cnGp2&?r0ItBYIACEwG_;kXQ%AF)07EQg`3S%^6fmLmS_uQd#>2#0b5HWvdu2=z_9|4!B1yC9r{b&x=029vi(j$jPAi}nM z-VSgB9e{2$2S_Wo5e5)D0Ilz#muu|rq9v5;1)f*Yrwp@=vybDx@1>}L#0VT#Q8%Y8 z6hiDGFTPi0os4#x?=H45+e#{%*T4WH2aN?oFn?uTbruaU^*5SYkfWM;E7LD+Rr
_H>tMW+gCMn}cTyS$0NV2x1UL{j+Xi6Q6lsMa0CP*=et5+wYh2vz zqBJD91?t;6Nz@V0-2Dv+ny(h!0i1lni(3Uv!mc6E-fsEn6}$rQT-fcx0Z^LPhx$oY z8%shLa2>il(28MzJ6{w)zL*67?*gO|CcjvhNi5tmkT4!_>U4R(_f03773>~hFu)h_ cT=~DmA6E<@lMESj0000007*qoM6N<$f?z;+LI3~& delta 876 zcmV-y1C#vS2KNS#7=Hu<00013M{Ml?001yhOjJdf(4c5okhrMmhOP>Iq0ChyF;3fF( zHMDl(WaF&g@1FlYwyf>Oc4$WTySsHxI|1lox9;zB!1!(lTHoaWx=)AObw}&et9>fF z1wi!U~?uTk0_87)MfyH8GuL}l^n!mEHFS5 zNdS=LhY>IAd4B;*(u?jHkKO()mf1`pfg>{zL(YM`GniFKgE+GC}XWI90-0)MS&CFK}457~6Al045-02qL9 zNy?{|8ep#V{L6`ts)Upw8o2)$!DH?8UH;7gdSGM*@HltJq>$ZeU@?g?umiKX;$IpO zfa!d6`#sNZ7L#iL#HplPkt+cF)+szJCMx#Kl04~_;|VraOARa+sVWLROiG>fCDDUq}oasz@66b03bxb`W1j;@nSxL{%e^JCy}dx zR;ks*3*h1W{38E+f~8`t)hg?r8D@TW{vii|Dl5PcVsi&9DUEYYoh>Mn?bf z$_+x+JYr8d=*h(xcLw6?eS#Fcu-RwTeTWGQlYfow?~?&`&KE7V2DtPxJyltfWG4ks z^?;S5U zNX9l?;LBiaIL@#RSRYuo3OIprG0uj1*wEdzW9<+&8!`Gr-RahVZCvX(;E0Sh(Lm1{ z&}I6)cl7xRi%X_U7;O9yWQa!vU@9n|vcg>HmVphkiJB-?1GWDG%l3t%foL1h;9Y$t zdXcx~Z`0_QGthJVdIy%Rvu@xbB=ve>ds|-rNBaXYL=*_KBvP#a0000#n0P41{qU=fe9x@Y=BhgjE|%rPcn(NT)rmm=8Oow14AmTUuKBzXdRRW8x11 zt`^`o&Ff?V?MK82KNJ8d=k$iq0hn0= zi0HnIB1#!iOK=tey?}xtlOJ$&P_O~Wy9x&&1&pl#cvXNb9U{=X1^}ap;0*wH2gSA# zxqRmmK;MGxiGLda@a+PSGjs1!0j5NV#balY_Rc3~e^YTHsM!-yI^;y~0%E$j`7e72 ziFcrUjM!IeWdPH1eq4kcoaOkO_q~b)$ZtNp6sMj2rh*%W^awyiMeKs92cYss__`O^ zW>36%N+_+2w4cK7rXyw{tc~OX=>0cnp|%c}7Jt%L0`xn$^;xo3V1!y_BYZDG zzQE2KXInzv1*Mv%fKA#zk2pR87ykr+!}lK!{?hz2zN&EZ?|oNgGCU|+cMt1 z(OWGZz~()EX=!O`X=!OD=fvSJk>vh?=LFI?fq>u~VF+QIK=?-x;{?G!f;h8dY>(av z!exM<*?)0XFWg?9@m<6FcYquX<4g1FPv&WI9s!rtqg?Wn5r$^n5dbLDtC9=q{D3Au z)@4#dR~#o-zI2%pGC!E)_ntQt(WA3ucIki%Xn@bD58`pX8Ie$4fn7cu1IZ$Uj|4dt z8&G?fu}QqDot`9mer&>iNh_md)HBPIHWoDqKYt0H!pPZ@Gq$Bboj*u=nEQ<(!z0cJ z7&JC8g8%VkZ*0+&jp#EzM&I>sLcom%h8y{q>&(r$|u<^kU0Q(F$;{PD*pCMJp`2j;guDx{Y p*(5(dxQ`F~^Mf@$SX%nm`UA>~93JH3tIhxb002ovPDHLkV1jQmfAIhS delta 780 zcmV+n1M~d02C4>-7%Kz=0000XbWmjD0)wMj%lR9J=WmcdTjKoEv)SyUWx;urAPh->T#POioqiDO6| zcmTsD^cppra*B%N&|bOVb1#Lb?5ypg;&{Tft@2Az5dW8%-Oa}H8^&J$r_7`J51Rox zZspj}V*mi#w#oMyzyupWzY=Z@E|lU5ls&Y>PQVv1f8u;oe;oS`w}cXKXUmvvp#e{+ zSS0K=0WKGVYez6mG%&b7Nm)Q|Vu&Z{1-A$dMBXSCPCKAG_z4E-jt*Txy5Ip91qk7A zC)EKD&j8c7%dF9XBoGkY;JV#64ygZWBBh*jL@G{iF69ow5|OrLE?4cq9F>x{g}j&Q zq0N^{f2}rm&qXoE*`me&pndg1`q>M!mOV^2t6Y82z%yFChG!Vl34C48)F%zRM2(Z` zz;sG?X-G|$3_w@e>y@i0TSQqCfbtq{sKR&hpJW3tZ78p4PRH=AD2gq>m{dP!eU2K) zw}8<94a~`ZkXt~%x*><;AU@<$HZMedE>`6nf9BWBm9pvwgN4`*7|8za_u6Z(zgn*e zgVV&V2%7^Z;M(>PJ<~h}IB@BSs9$Wt=)99K%qlGQ*IzKc3 z6WrI&!c$U&>IHg ze_VZzQ*plj6L9q2kH;DKUD_hWq*#P+=B6XMNc~r#C^Zt|qkJk;YaQ&0Bq4L@mpF&|ZLaNQ3jX zn6m{m@Ivu`Eud#J4c;BVOx@|({rDd6R)Z@+9V&oZ<*WuCxqa3^!2z^MwJ2Jre+|sk zGTRC0@1Z>&RHET8ktBBkWm4JB54Gyve152t3ZEY=E?4aJkLVYV6Yx6s^^NWT0000< KMNUMnLSTYDVQ^Fc diff --git a/graphics/pokemon/cubone/front.png b/graphics/pokemon/cubone/front.png index f26df5792c1bdfadbd40cbd03db228a01e4b0737..ddf94b1a049d519acfd95edb6ff569b729a47b63 100644 GIT binary patch delta 481 zcmV<70UrMC1MdTn7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h$gKGHr z_$etV#l_W9QaO}rTE(17QaKRFsEF{;u;Ae6000000000000000O?lz}0004PNkl?0~h|3Xm24K zKoF1`qhZ{hatP2Pq=89szX67QDC%E|Sp6>mIcNLh$9@2rUIZX1MV=5A0E)>08R6IH zVktn65DY;}07WVs2dot+8i1p_umU6@w*d4gfNvc@{Hy>%9%6a|AnTyq8qwkhw}6%w zY!54dDAon!D}P(nSRs|8ZfsmcsekDQ>>p=gE%vWnQ zfYD019l|FUpI^#6SC<2A@aC)7?B*X*Oh|GIz|87)$J7;2tr1Rp!EEDU&7(5eF1_WSe%b^Fiz9-^GJbCKmL&q1qVqp}`t(wN XyjKnmct|8c00000NkvXXu0mjfMzzs` delta 461 zcmV;;0W$vY1MLHl7%Kz=00013M{Ml?001yhOjJdf(4c^TfcW_M0002Mz|c@oIFM*q zz?eu-IFV2me>XbWmjD0(cu7P-R7i>Kl)-L-KoEu@q>aa}@&XJbUeQtXN?9L31HOQ| z(q2tm+mopY+CD*fgX&Xu7xaRR_cs0s3CaJl|IB0-!?^2z%6vM%Fal^grNh7{0073A z@;w4DfdS|zqH1uU5OqM2p~Y_k9)}U-oBDI?*;EMyf8Z?FAsL|oSIUq_WSaof)nIOO zB18j&T{|WL-NX>v@t7(?1A#jVxm^$F1TVr)d?TU7mBuvSAP3HEYEn&b@fk1&&n0=MB{9+LeglW!V0qUBdS!$>CZv0chn4V;3?q?(WaR%fXSd((@c%wGtcuYz?hWRS`I@vN^F**7?U^A=U#1lK1|u7eAq26ohxP{pwooI4FK{LAF0VX7YN|5 z`-Gqh4H3fyn4jr=JHkIcnmvL5&<_D%OFsa119*{Bgv|h?J^}Uu==6@h4B)#@@H2qz zOilnIsHDwr7zjiXu?u*`351M92rGc0iyY+P>KS-H1~|UZW-s&oD8lt~z6SV_3NKtC z@FEq7&NBeu5`O_RLXi7*n=P~HL{94O2xAE0uGBl466|E)^^}hQ9Ri&1Wdd0V&0GP@ z*8p=yPy@Wr`d^zs#zS&%ZUJ0}V9n~>DJBK52yJ~~>t^VJ0E`(aUd0JOHIUy6x&>B+ z06;TDIT)xH1ONdfV~EH7DPd4J^mlpK?K0T5O#j(-^+0um(N zUIkcbwk-DTuvYgSJ(=4BuIp6~QnJ8e2nXo^ASMgB4p34@=fy!Z22eDz4^SA;tAkz- zA(V$a0{mVBQXL7#EKLu=Ao#e_5!YWZ>Bl7-3!D980cZn}=Ln~_#tbL`im2o0N1-*g z^^JfHMSpQf1>uMR+WHI#eVh@F+{3xP43QwP%!eF-eZr9<=01dO9Hw4_F^jpwF%5(X zAk5`P$G#KsoOcT_0%`<-SUo0kVdxpUan9rfVR{P45Rdr+kTC^;yOvQSp2{Oae&@gT z*S>B5o90=Gr;eq2Z+1V=DM+jfM_?1$E?YJ`TYn#n?hT-D=7E}zbS=c*BhvC|0H|Bq zBEVQ5qWOyi-3t{zB?cSv?A>Ok7#YCee4_QM-Vf(`yP!nsG|9`_V%hkZd=cuP_kqL(0`RuF3Y=f^IJbe4O0#E}m0fT{0dIJDvSL_-}1RN`X!wev@kxMZD=3qVjC6^I%@_13NctQC3IOS5n=dK>V1G8e zwSKasht>n`0~kWE^)BlJfV%)Rz>YuFcw&i!)4C)QSOQ>L!ic^!S1?=;5CmQ^8-u<8 zR;_mjsP%HcX)dWVq3R#}LKz5Ue>vj3c=B6!t-a9p4~!iEWBub<)x+iA=w46D4vY1Q Y|EzpAxU!>mjsO4v07*qoM6N<$f)GFY8UO$Q delta 1147 zcmV->1cdvK36%+u7%T(>0000-i865Wvsk z|NsATTuYHr6@NYwIR5|u010qNS#tmY4#WTe4#WYKD-Ig~00aw3L_t(oh3%Kka@05w z$L$#3F>#9PBz7v-Wh4)0TkQZhZ^otqM<#HmiqyOS6lad?8!S&r>&t45EEl!sRTY$N z{ige`mek!zlK(P_r}%FZolei8O;YHhKnVa>HMCRA0Ds8w00M?Jfd2u|uDaj=eFVr9 zAON050B(VZ1Z@C;m;?g=k4Y&16o5?}V1)!C8Zit^6EPsEp}S+3A#i3N#%@Tastz>N z_CqdznvcPGDE(jLCqVWBI-jV$y~tjEhSn!i8td%k@rVoajAnEl{CNBl1dlr(8N52G z=x#mL?tjGOHvF9r%p#tDUD_b-L`)LsM;}Ptc4P|pe((Fp9M8W=>(k@|@?7*5?e_+7 zKGfmw-6Oy^1haB>)Os7SQ6C)*^-DHSpvSAD>;75DpET zJz|X5Uhn+ovax+A&K9<5p^p>&1M+e-p(E_5BCJv0T-DU>xRf}k4e#A7~T~%mdJ{G9LN#ytY8V!H<|LJb7m#maGht0-2hg`lQAF(83$)hJ-AeBcuH!~nXG zntzmuM#lmz5Cd96GZ`ORMNd;yUg7khxxF@VlEd;zzMdH$f(L*Zcaj(lv6zXcN}13i zmH_lsNfmKGB2&EzNJbLZ(Nt}SwRz=db^iZBM-i+3X1WNgdrF_>{Yg^4S1O53b;ac! zB=Z^kbpn82V!YOhn{+{LN5%=jY(C-hxqraQ2v8A;3J~+j)0IfKP_*K1gSA;~N0BbUh!um*|pIGS>q`ELV zAh{TltE~sfaqm>hQIYGVRlmOXfSfzv(iJ)f;Lqm$ziFBu=fVDx{lD42`}y;kDt`n7 zAZ^aHfB);>o6FM^!riGH-~99IW(-6Krx@N$*J~G86hV4Ay zcDEy4bOx+ZwSNX^52H3lb{K4wE9k(qFpNkjg=!CK1u!#cgTMvbZm}w>4#oncG8TY9 zqa|Q63=H7eL4nPF^nk$wCe{qOiLwSRh=K$QEw&h=0hG!nEGM~bP9(5Y+e8h(F@a5Y z;WQ2vCQO#m&LNk*$6*)!Gg03S##UMf30&W;^%f&sc000DMK}|sb0I`mI`%#ks001yhOjJdg(xhs8 zq(M?*oTRn4jsx@bV|PIU^_l{Sp9<^aJ43z>8c*I5eR332hKkPi1y2t*oj3V6i^LPjEl9l#JGi(H<8f%iGUaY5}~=KCzddY;#SkSSTPLg1nl ziLOfkutdO&Ab;{OZmVV1PUN)yjxbt~w_5LLO0bK8_e(wkdJAy9w+UnwH1h|*yat#Z zK^5@6J|ArY8I$DRTn(%(SY4fiV(I`Ep`I^ny_66XV5~^B6eoagfZi`?4%p5D0L>8P zV$dy600hvC!BLnt@OmTNmE(qR1z1Hi1K^c27g};G>VFM@oLU_JGd=_)NPN8uu*z&( z9EP_}_Y*ytUk|vi?;=RW0-F{*^#&jo3%LeRN~f<2Pc#}R8XW@^2DEC?_bG%j$s-_q z*ML?>g3+aE5)4A{m9Dtqfk{6e*;v>drWK$jBKHWVRbvGd07aDdZ5HZaTVDxSQ4~|E z2tFFL^=}yyA)6e$AhddLp!8;%w+w-%Z_On+-IW-&K7rhza4NH149wn4;u z-Yvi|R0#^PdrjoR=sWb_p2-Qq^c0XG0rLeQV+sOKe=_!nr}Bu<`~08A5A32FGeAC& Qx&QzG07*qoM6N<$f|3pgv;Y7A delta 745 zcmVOV1ZP1_ zK>z@;j|==^1poj5Fi=cXMVZp1YI~$bNnoL;%-iev5D*Z+&wt|o|NnAaONm`|(~GSD z0000000000000000071);*kIV00Cl4M@0Xn2lB-L00J3FL_t(|oSl@xZlf>|h9NBX zvSGE?G_Vh_u}ROskX}*2(%wlQV5NWSSift`Nnt2Pi>zR-~Cg_vHA`^9}o-8bTQK=d0b zm&l#7h#vkz=@Oysb@VWfxG^VbWbcEICqG$^~W-KmV^C z5H}(O0Zs1$p*fC70Fg4`mZ_FdWiv(sjQ?siO>`^Lr z_G;EnaKbGjkqy8G?h`0+rPN4bcm;gB;p6vX3d^B@-3>irx0SedO2jEtTL2>H!%E!p zZ7mG&Y=3}$Eq*Bsuv-HLZ7W*yV=X?k`dpHIqt?hF?ZW|olt7C>4=F5Q-RX>e)YV}}6C*!ikN$bo?Q zuwsm#B*k*M5!BRK2?#i4g#=Er25zCV5?~3^Bw|w($_vb3B~Tg)G1X8i8oNcs8HQWM zbt=WX9u^Cl?xq?wUjWm1BBGy&)lMujnL>$J1F%*`D*ON;BHsjvA>x;}RZqlLT-Mo) be{Q@1>@4UZN00000NkvXXu0mjf)LA?7 diff --git a/graphics/pokemon/dewgong/normal.pal b/graphics/pokemon/dewgong/normal.pal index ea9cd39ea..15ddd52bd 100644 --- a/graphics/pokemon/dewgong/normal.pal +++ b/graphics/pokemon/dewgong/normal.pal @@ -3,13 +3,13 @@ JASC-PAL 16 153 210 164 106 123 164 -69 73 96 -161 167 204 -219 235 249 +65 82 98 +156 164 189 +230 230 246 16 16 16 -192 207 226 +213 205 238 255 255 255 -114 92 75 +131 123 123 112 40 40 232 128 120 0 0 0 diff --git a/graphics/pokemon/diglett/anim_front.png b/graphics/pokemon/diglett/anim_front.png index 9bea44acba8e9af681a07847f12c27c384b009e2..a652b66458b2bd678c083150fe5bfd11febe407b 100644 GIT binary patch delta 452 zcmV;#0XzQU1JVPK7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!i4T3X(m zTE%lgS}_>^|NjsW5Y;(Ka{w6std#$1T7!E^w5)SlQXuB$v;Y7ACs58{0003{NklVcd{-4`ThAkj?)m>A~?Xtb^+}h zm=O?zmNyDsj0-s2;-dl)M&_Lc!UGCPiNhTgN!WgSsyeaTYbqi9Hco*%@zX!qU@vMT;cvI;4J*N0uGZA(i$8j9T`H%c{`CezsHzU5z zl<%qP{9W7F-2azrb+!n?wK|*1_q96H_@809RcB*&emzxZbNQa=&L0*Gm+ub$oqIIy_D0002075o<&qK%#KKIALAu{jz{uuTU zFxvG209i4bz&-~0Fi{`!Mqlmk0P!_o;Anc6EC7O2Gf0vP6u?#70VXsAAPCsR2nM5e zZUSyfln4kRsefMZjI{Asrd=SaEqINDZiQPlvkmb?#;FE8t(&5mc`pj&QTcg=yQ<|| zlgW%w&gV=6YH_}*bDmRH=Be(9O3+$VjF-!jEw#T{IkIRX#$>U4)&j>FN)gFi7N)rp z)lg=0^L%6Qv5k$5&2Q$%<$l~%?q}l@yxcP=MJ{XX8jsVi02L_<-hi&ZrVDAT;zn^!!YR*(ohg?|z0000< KMNUMnLSTYL`Opmj diff --git a/graphics/pokemon/diglett/front.png b/graphics/pokemon/diglett/front.png index 34bb253af4ba4a580b79a13a131ffab760914991..4e527ef5e57cc120bf97a36500e1c35fdaec2dca 100644 GIT binary patch delta 356 zcmV-q0h|7b1M>oq7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!i4T3X(m zTE%lgS}_>^|NjsW5Y;(Ka{w6std#$1T7!E^w5)SlQXuB$v;Y7ACs58{0002-Nkl$oqIIy_D00020751pw6b4`gLKYLK@a)B*2QaTS84I~cLVrPvo3%MWhx7`)f)C(D zaz`zaL%U?L)DyTmLxt0=(#u@%ukru*A0lMRlz$#dZ}2`}6%R;1%kvf7At1fY0RWju zOSs3t97_L?8*{&Z1sq-h1Do|*{Q^*I YA9*fhZMI73*8l(j07*qoM6N<$g0Wtm+W-In diff --git a/graphics/pokemon/diglett/normal.pal b/graphics/pokemon/diglett/normal.pal index b8930cba2..0e0e4694c 100644 --- a/graphics/pokemon/diglett/normal.pal +++ b/graphics/pokemon/diglett/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -160 88 88 -216 152 88 -192 112 64 -88 48 24 -248 248 248 +164 90 90 +222 156 90 +197 115 65 +90 49 24 +255 255 255 16 16 16 -192 32 136 -144 64 112 -248 176 224 -232 120 184 -96 96 104 -136 136 144 -56 56 56 -176 184 192 +213 57 74 +115 0 24 +255 172 148 +255 106 90 +131 123 74 +180 172 115 +90 82 32 +230 230 180 0 0 0 diff --git a/graphics/pokemon/dodrio/anim_front.png b/graphics/pokemon/dodrio/anim_front.png index a569e5893039929e7f68f96ba7159a6466c4a03d..43c37974feb860d43af4872b1ee2f2ed54aa746f 100644 GIT binary patch delta 1576 zcmV+@2G{xG46O{17=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!g>K|v4@ z5QBq*q7&-mJ8wd$d78_JgFfK|%I|r2p0Cyt@*w000H6Nklzbr04Aityq-T2G|7|xFK*B}EK7S6o-*nGt6#t=5UoVox1T}u)0sO080T{%5qE*Jg2GFY| zV44-auFD;R%+#!4;&q)Dpm|xDub0tV0k1&I&uv@oRsjQ)pqPfY#X07UK#=f#f1*IZ zyhcl182i41B7dyou=SX>CSct!mbskY^QiXmV6ff+f&dR^<`n5D450Hlh-b`k*>(+< zfQ0}+UKV4n&@ zd|M`>;4#?*0^a*#{&3K<{40ap!RMAZQu-ozL;K`+p%M46n zKnxGo*njpyA?ab$qdwM}Ca(#2#rL>r6ryty8x-$o>*K@kX}`gMY$TsP9-CS(`NA0j zSL`zd0zEG!SOPpbmoVs=9b4;4eDtY_U6`A3utfQM@m&&@ug??#Qgi2t=Y;OZQeKm#rXF5okLKA+6tt_g$zNbx`99{iWj-_OTz+!1KfnE}L2 zfZSRA1IJJqoQ#;0 z0e^WP$I56WApOKo60?DQP=k}#IwTN$Gc*}Z_5Jo_IEA`9&%Yz+Tv6i$8nw64dt<;r z4m-gg$@e=GEb0prP_E`#A8(^pyVhzqPLS$s+zpmsa1*?o9Ih?_c%N@j6d*$;xNUQr z+@)Bvi5t0$^~xNvpK$fNtz5G*?sz!Bfq$2Tq_{_1Y#!WbRFyMGyms!CP7lu^b&=)tB^pz77K-0VOiJ$kv3W=j)k(LS4J4T3PAzd}j<>=%TE2(0}jw zx&(e_=F|%x_=J)I&;jlaWpd{G8Imcg=UcULQ2BUHn%Pge$K1I|;IbFK_qf?R#^z zJ|ZZ^107G+(1-^QOz4XT!vuZtATjTEGU%Cj5T6Yw2q)r!j!^}nBOx9{?gt7&XOjP~ ag76P27Cy{=ZWEaR0000SU~95sIZ`Ta40C~fOxP#K=6Q|_|V|pt{;y8000SaNLh0L01m_e01m_fl`9S# z000HpNklZzi-<{6vs~o5FiW`FvWj>I!TdbCk7<_1%DMzjE4-aKq?u!M4;{u zFakK}`8&{R)PKl?mONONhGB%y+xGn!}s3Zy?gH~ zgf>RSLFJ<&KWz?FEUN%iCD#MMvbzO4mF^0#dYz)5YFE3cl+9P_`|_#YwY!be0$|(f zC2Vycv2oEuPk#YM?Ga-^-bba|QIDgSE*rRh&Pk=CVl)Ca3C>-XGhx@e$PkauPu@Il zxjcx<{tBqqyT-^z$PB|UP2PAcIOS&f)V=~nj15to@-btK^|{@BeKhqt%roXhX*wl@ zupnE8-H}HFixu7irOE8OXFt6`h_51CES@hkiJB$A>qtJcH6W z5x|8AyPfdGAI>Sv^DXmE(j<#FL~602F?GjHI)5Z|07eO2T**C=qn(B~uss1Ci0Fq= zx(VPYC6E@(9mtf~%K-?J3D2xxwe1(106!pZK>=uy18|nRp0<#!d}EBb3&=?-Pi}9P z1H5s-kC4*A6Ojq?JkX~u0N$W>y!_0)Oml$oZKL0}NVR4?SuXFv2+jkwMy+Pq9m_iY zx_?|Qzo5dv#Ih{AXH}Q?UzdMB6bWouRRVRe`gM8#=flIprvkw()Owv`FmV6n;lU|7 zsaY1WA;!NTh|i=r4?q>ws)&60hLlZ16mK04Y#;b$E)#s)i03HIA3+{4^NF$vToe;! zeVF`uEOz+FZhs+B)(m9U3)#AwUnBzC0)Lnb8D3Nhgdx;ovA^m%Zj9^e#Z?sl#@`Lw zCCf0+FXsm-Aso1DCq)zHwB=k%-y}-IlCvbJC4My_mNYJlQ@+(AVU)Z+D_e->%;{Nq zz7(vjM;ZUeE9TV&|B%|Ds372w6Rs_Ky(}Yn&(pF)jxhbPV)uyHtE_G2lGkki3V-wR z3$!#XJ2Y@R>kxM!zu83q{gM*qGudRIui6EmJ@d~;QeHq1btk{j+q4DE%g?@i*K3vl z3m*#Igg+Z2oAmO)i{IP4^*h--t5>^uwc{P#YJhjFs#+0}ro3l&BnSdtr+Lq_s>(%0 zJ{ZqKx)3UXOTY}sBJ(Mm^i|2$5)i*v;sVow@5|>k z35aKgC;d*Jp1-1lp^iaFK|N>FlR>eP818cX4gM!38(-lLeYnVtd0=4sfm(+x_>%Bfrvgh z62}KZ0uGTVKBwX%dZ$ZKgGBt8`OceHnZV$N%$Y7ljiXy70f$^aOolvu4wwS)jy}$X z1XKbe^R2cCg6Myoi<4Os80!N7IA?-31jYtH;G7BU;YwiSIu3qMG96`VfpIK)mOd?5 z@8ROYjOJQkh_3gK0%jaaqJOlh1jaG%tjiU^O--Q=Yk|QVC$#U)#!ARaV2IvbXuN9z zLv;WASP2ZN9}0jL7+c!zN???|j@AXn7C;M(?SK>*TLCT~EV2v0Ksa@4hdv-69`G(8 zuEONuj%E_S1^2rIM9eRzxgE&V!7hani`$)7nkxfR2S?j{=)1cGh*p(&*(;YIajJeV zixU0`!v8#HE3g;G>2-1=8+I7w#VWdd{R319m1!jcA|z+#YaM%;fWQtuQ;xR?2&{kk be+9(9mJSz}cYwSH00000NkvXXu0mjf5B>G_ diff --git a/graphics/pokemon/dodrio/front.png b/graphics/pokemon/dodrio/front.png index 5edcba27c2599f7a0bf83030300f7df9f4fbc375..5184438f49858fdc28492891fe8828135e7fcc6a 100644 GIT binary patch delta 934 zcmV;X16lmo2e1c_7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!g>K|v4@ z5QBq*q7&-mJ8wd$d78_JgFfK|%I|r2p0Cyt@*w0009nNkliQ1Q=$&5xPbegU#(0}E}CxGtlyb}c2J-&4q z=0YG?d3mqKIrIcT&m+ME>IjT+6b^hJB#8tSA9(;j_Yr_Wpi^b~tB6P$FUI;?ycAU0O>MMpnebR z6S4*1z9@sGGajjt3OwKl+Y>+l?;|SH2^hoT2cA+*+`+&k0?K%>&UO|GSr4n0dXKd_ z?+JLp>wl6ovgw>egW?md=XiTx^9=@UBYDoHY^q-NMREkG$uk*&)=LSZ!E18~gVt1YB1SuV1H8Z@XS~ z8YigtY@7|AU@!?;Du<&>068BgC@vsF64JV+RnAhx?B+%eV?8oQ^b?N$w6-xT<{9 delta 974 zcmV;<12O!t2iOOY7=Hu<00013M{Ml?001yhOjJdf(4as-KoAfRXlQ7lcvx64Ajp_d z`1tr>SU~95sIZ`Ta40C~fOxP#K=6Q|_|V|pt{;y8000SaNLh0L01m_e01m_fl`9S# z0009{Nklk6J_~(KH|>3Dfa_CLS-&Z!TH^H=#6kfa7@DXb6BF$1zQB zLK5}4EKfBGU_{6O%qforA*9E38{4aK9F`}&N~vwL;%a2U$6NqWTXJq_b|Du8QYyPfjpkC&L``N+a^n&y6EP&6BB zvtZoB1B87hity@A&O}C=#%ng72>ZhQAffw!ntxEl)`A4ST$zIs08}*Ln-%TGe!UOy z3*rg|09GYH&38B4D&(E-#fX<+JBj7Z9V|*fIF9%gV(g!aO<0zJ9u61~`u17&#H-9o zfcDYt^&m2Ac$#IeOhhdMwrkta>_B+-l4aR5sDz3jgk~2S+3QR8cT*))2o1!(gT_nt z`hR<~**sPVu3&dNXH4Mrd9$&qMQjL>$vpmHCZ13=&j17120)J=P+gk2_+fG2{ZQ9S zx!~``d*}Js4V}LptN+x<-~P&?yb;LNE8DuuuTp`%1L!MhFR2CM zn0<@Ie2dp{FYfPGcgg%GKO47e+R&%B%SR)M5C?ACX;ng>wX9oN8znTZxl06E;$NM4 wq4PSQ@>C1ON&4-ou8}RL&#vnCrJ@G@0VCIA2c07*qoM6N<$f~1Sf-2eap diff --git a/graphics/pokemon/dodrio/normal.pal b/graphics/pokemon/dodrio/normal.pal index e4205972a..1569ba019 100644 --- a/graphics/pokemon/dodrio/normal.pal +++ b/graphics/pokemon/dodrio/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -64 64 64 +65 65 65 16 16 16 -104 104 104 -160 120 88 -88 48 32 -200 152 80 +131 131 131 +164 123 90 +90 65 32 +205 156 82 248 248 248 -96 88 64 -232 216 168 -176 160 120 -112 40 40 -232 128 120 -176 64 64 -240 128 160 -248 208 224 +98 90 65 +238 222 172 +180 164 123 +180 65 65 +246 131 164 +180 65 65 +246 131 164 +255 213 230 diff --git a/graphics/pokemon/dragonite/anim_front.png b/graphics/pokemon/dragonite/anim_front.png index b0a2305288e3b72ab14d9657641786f058c138af..2e067903b80e9f20de0582b4e49ca9bd2ae6d5fc 100644 GIT binary patch delta 1660 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 N002ovPDHLkV1ipB3SR&K diff --git a/graphics/pokemon/dragonite/front.png b/graphics/pokemon/dragonite/front.png index 0d4314b704eee6c4d87642c9d0e68183902fd143..6bffee8980034517d18360c05c6b3c7f94c6d9a9 100644 GIT binary patch delta 964 zcmV;#13Ucp2hInO7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h@SV;fw zz152`?!Aln$Y}1gN?14``1tt9$jA^75MW?n5J52*YGNRyd#sB=J(v~*0009_NklWf4hKIR%XpI?aZ5s)8z`*4#PbFpnq}pa{xH!gz#SodS?o7 zyb?YV!P$)v#&E6#9DM_*f&nOm00AmL@FQR#avsJJ5e1=spd#?AfQ$&EL>MI{*gbT8DWyXrf0_>=ac4VLUpm9pKqV?^W%gHpyMLGAqs#Ez!Mvx z0=y!`G9?rMTz>&+SzZu;NqZ-ohzttA6F?Ci0^pLcSSWoEPNFfSSAqe;c!cC*A&3PT z&?O)&JYE5GRFIb6uS-w~YC$eTecu6SfZwlAPyh!V1AV*zXai&mRY8{^fF-4(9*{IY z6J&w3ev_btjs(%bYCkjCNZUe6hb#x+*OibYSi*a6`F~2#{8VaK79%`MkWNhGHP)Q3 z-I$g%49V7E7zEMtQU7Sw@H-%sc{Yy3(vcw3FYcLw3Lp^4A&=&YLu} z0hAXmS8&O%=IQ|;J2>W8_4%@wmM0$wK6`aZ&yA}BoW*7VlKrspP-i^(>go2r<&swvk0e0jzfuOoG(O)5OoM za1~J3pw@AQ^z&;AOAⅅnD2vrTzOhr0rsvf;90mznu zdEIM}$R~+38+z%qz1xuF`(&%ZI#RF5w`+Glnk$!W59EzP^0fmGD_7-5IOP{nN-5U# z0dt(E35xz(ZMv2(gjw?CXr<@;H-hfi(>)ZMF7e(=y?=e!qJ2pK5pjC;@fnWdPt?DE m0z}@#vmO5g*n3Hj+xb8Do-SW<$x8140000$ delta 1005 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 diff --git a/graphics/pokemon/dugtrio/front.png b/graphics/pokemon/dugtrio/front.png index 4e1b6c2802e417618f6bff889945ccac7bab0d28..60051cd79ce76bc8be534bf57e7ead61df87563b 100644 GIT binary patch delta 574 zcmV-E0>S<21j_`F7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!i4T3X(m zT3Rs}#dAUb|NjsW5OV++|E!e%YFgDfN`re!w5)SlQXuB$v;Y7A3r5u_0005WNkl2iZG41{qk3^xG{zDn559BW?YX|kO zQZPhd{j3KJ5g34Sz!1O!WB|Yr!HUi~2cH1k`@Og^faq~umSvS53=RR@x~}d6060X{ z76t)ZnO^{O`ws(j|AVy`eJ>#Ie|~P}DDMUAdM21nZ7f$eV1`04Mcx@}3z9v&0BlJ$ zwECdQu{Z+&i+_GDfYu}gK>5KVz-lOGnM@l%`6=5!_dtE^scu*xfZOv!cZ*&#-3#FS zlom38GhN2g2EY~{1+anLQxD*{fvo`OwQw+11)K@Ie~rEuimB#~#w*~E2=!FgPiRj1 z?|_B@k2yhmhE4z?)(JkKITxB!s$&Qhg7+z*iSYs`sek4RRRD&RLWn8F6QBT*wCL%E z+b-xL6}j-p%c%}oCnvOcjGjLCCVcR8l@BBztV3DT(+^1r;I-oI5NP$_)kadstckoV z|L~`w52}}GuoqD?fKSC6{c$_RDK}66F{q5>dK$R7dpQ&QG||0D=Be&QFJC;*+Ai3N z=d8^J88@7qB0s!Xvwt>H7MDj*o7P4Kvw49DNdN!< M07*qoM6N<$g6~oS!2kdN delta 605 zcmV-j0;2uP1nLBk7=Hu<00013M{Ml?001yhOjJdf(4e4LSlF0YSTGpCa6tI@_z(~f zkU((wu;A!;xWFKYU|?v7h>$oqIIy_D0001jsU9!@000SaNLh0L01m_e01m_fl`9S# z0005tNkl1#o5C`y!C=pV|pzGYMFm(*P0AU0@%6|j+Y;>0V(IJTZ1n~<* zavmU2Ql+AqJ<4l#kw|@BmuYZ#2G4S*h&z@mlg4x9|EHO~o%Oue`cDM_<+%`|Q2G}qy%(v@crQ{qF(~;eoRXNPQyt# zu+?(|fVZW9w|~&j0JwnN0`?o*+zF0&Nr;cp}j)gM#fY|5f0QI(G<(2oN<~Rdw zJMF9paLgZKzzt3;C?12sY?^|0OPn-uum^_sU%167K({4Yd>3a$aQ9$=4|SYP1}<=E zw`9Ta(`R&nf!z{=?r_^`AEZ@>E?#|efNYUH2>4B0+JE~lf^h~e8d2k z!)~>S61{ths**~^PtSoLN)_HlIw7LfZi~fQX|;Kdua^`VN!);<+#xqwYPr#hGh;}R zjH6rwk5(sGuvCg7dX%K&eC}0$*3??_XhYnbLY@E1Z6(?eEp?L6JoLCzLU`RLs0000000000<$zwQ0008PNklrUh_3`WNudlLHo4~#FlP0Mba7O_ZMi$6$wC(fm%Ie(AGU3dNRf{S^4;jPRIV~>aDOECkIhf~h6PDTI& zunw!~oMKav1%K=X=$nx>A8dd>27=Gu@?n6iyJwA~0PEi>M4*=g_=8FZ3P@oBKgn0o zI#GbUo@D(}93X=mKso`yOae&y6D9a56bgX>B=03XK#H}1b_$=Cmq9B*CK5OaDUrrK z{|=D+9FVr0kf6lTw!cjx0Fb;8Bx6-p9ye>9m-b=*cwI2ao#<%~=C%$wfBn{|`<;rK0Y{i+u z@4D-*yMONbef8hVhi?J=V|}6a;ES({xWbUj{{gV1Fphv#g&}iz11u{H{Y2`2enw$% z6A&jA23G-bR$(*&A(#F$3Zn}M)T`_A1a<;qR2b_3{c459@5P;f0Ooi6^g-PTh%p}X zC`SQN<3W#d6c8mJ)F1}|QKeecqZ|Z;N18{O?|;Z%KxC|dm<34(0ilt>qf7v4I|ztu z_s;H7{z^!CW!?*jjLjgVnMQE|kvG3?=XMEhggkjL1_4p8|2~D*!tBW!1VkZJ0THw) z{6|35AhT_30%CK6kO@Wy5|9w)ADV#}3`W?3aL$&u_NzZ|g%PwUqrvC^h)WEv`h==K zurc1_S7A1T(fxsC7v76zE+}<>ur45Oe{k1bKVF|lsT!ZB*_sIe0000xU(`1s(c;JA2TNH_oh000000001DuifK`At0LLr zy#0nn{K~!O5H!Vh>1CQW@h(w#pWb^8koOUCjz1CaPUORnCxG-Ma5H|r1HGBO4kT{| zs2hmh7X}Du?gr%I9)V!MeSk>tGRWGi1K409%|zjuHNr&5#e=5+iOM+?$QK(Q5Ud6Q z3*37;KzE*%xqrVy$a%&m13|F>a{v>L@kvf0UDaMd4#(t!R*p8o$^h|_gj!dQIinv2 zfC;YMz=ePzS3H}AmDbuZ!^H+B{0jHqQNBcp1EjZ)Z0T@vWxPNS(3dl39Ob;7)-l>W)2J@FG z0@FTFHP8EfQ|U@E1_ZN?8LB;m0-$6V77%qnZ2+qSA-9lkl+r~4`Pc!FyL|%<<`jT5 zwK_n2hHtst!U0Ma3r8NN(A%^a0x)&v30bQbNdXY9`WR9?NeYk2myal2ueh`y^05FN zUT{8l9)F+(BoxSmXF!6#+GUY>ULD6VyazbPIsVi5`+D&PK%DsJo&@CL_-+ZDCzi*Z zOb4@90m``(h>{ivc;YsUXlOnU2Z>KnZc#AEBwzRhLV{pG0rB8-7!-^d%NIVwFoMCd z#M|K@80*6KE07*qoM6N<$f@CRmA^-pY diff --git a/graphics/pokemon/eevee/anim_frontf.png b/graphics/pokemon/eevee/anim_frontf.png index 48cb8831778f5b7c06e439aec4e8a857970195ea..2f9da3756e1880d0868d5dc1d22c360358fbfe45 100644 GIT binary patch delta 829 zcmV-D1H$~u2FM1G7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!i5V@h*M zO4gi80000|F(FbhA-$Y?=Eaow`1t?kt>CzLU`RLs0000000000<$zwQ0008UNklu%&A3`WO}J}e}@2V2J%Emd@e79mY3e& z<`V@VaT#Cpvkg3e7fsgjryJ0DFS>Ln`4baB-8Ds^^#NNRW3PwjOECkIhf~h6PI>?X zunw!~oMKav1%GS>=$nx>A8dd>I)cyN@?n6iyJwA~0PEi>M4+bw_=8FZ3P@oBFXXFe zohU$#r<7i=I6wwBfOG&o@A=At0?eAwh|wZ9h%`BrgQXSoz)&HUbU-ntxxdZ0mL5jpgxSUZ2{McY^I4 zwi*NY03e#l3xR81(#iIq5JEHXCM@plGgJUz^km~yUS3S)5g^M`_+;d=b|85!0E)+z zK>GMt)&W!LhyOMvEYlCY0QLO67;^bP0Hzei5iqMTWDakDX@#MmNbTRx zC=A{N#7Tw0RY06o7@L5QOaB>#(F6qQ)pdFTI|0!vjCp{5wZi20;!Z#S^E-a{qV5Dl zACGyIqkyRKphr0hh>{O#kb{7zQZ4FH4g$g>n}0_c@5o+2WOTr*c$DGw`ye1R(s`5t zAgu=hk;!lGra?v;CFzxUFCg*;7;6+45P9|McHS<*P6%j}PC(S_zfYmlAb($kPCyhw z6%av-!e0Wa1{rPRCLmTf2$`UFAOQ(s{$Vo^oxuoO5YE~1)_(N|t}ucYr8gK20C9=I zRW_ec^#|5_{3^_5Fq%KG?8Lcf=7Li52lE2r_6K*}_2cyivSb?@eUx#X00000NkvXX Hu0mjf0@-n1 delta 831 zcmV-F1Hk;q2FeDI7=Hu<0000xU(`1s(c;JA2TNH_oh000000001Dbu?@O|C@1D?@FLcl#J5`P4yeW0u#w%fY2r4a%M;j9^$ zErbD}5Eu>+c0kntP6x&=AzvF~^BD3G0kErW4GqpY07>F>fcOkgxmd#jg@_c9hbinj z$wvT8$vk6A^Q1WdimH#H)t%;Wn|%3@^W{Qn;xTmv_~=N=b8>+e&`=;%o&g#DYA^EC z^Xk}*;eTD=5Qq3ri`fYVE<{O6Cm47fkbf4_2?n@FV=)fU35Gpk!J{EG=SwFT z6>BV}4;+8*1fvpYF{SDCc(9#dSOk8IZ~MT;Y~WNkcs>h0zUBSnvk?r`185-{N$CNt zVAQ2S!AJ;+34aHWa0~(kV+#UN#f_r44iau44>RO1z^o6jt4(bU7zhZ4h$u&C4Fm-P z6gXw-7HAAa=im>8n36|yxHJ{|L!>+>xaMk&{^0e4gFpQ9@e6xV?EU>v-G2Z8002ov JPDHLkV1h;Xa8UpN diff --git a/graphics/pokemon/eevee/front.png b/graphics/pokemon/eevee/front.png index 1a2292913400ca906d18f46fd992c20eee25524c..1773de2aaf1a830a9ecc350a66e13aca756faef5 100644 GIT binary patch delta 522 zcmV+l0`>i`1eXMm7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!i5V@h*M zO4gi80000|F(FbhA-$Y?=Eaow`1t?kt>CzLU`RLs0000000000<$zwQ0004%Nkl&okfS>9#;_ z8JHlDdjWo3Ktso(ya??CL^KpgNtR_3fJO}pb^(ANewPGW2bc)pV>}ESkL-tjssa}6 z>pMRhU?QEJT-P5C;C;`&bqxMO1MH{f3XUA~;kovDB;QMwSQ56@YDxA2B~oA3>1MT7 zuz_0<=V3JGi+=(1wKHV@!IuTt_hiH4g2*3LGRTqweMwK?0xKJImfXci;sRVx*gvZa zuy_cNgov9!VE$AMIfbwYg#dgOGLY3Ga7^JGJQiIIXrwR+X5x7AM*;YAfxVltP{%or z|Ie}9CxIv41dKxBl6L02BM#Tj%% zse=p=c*a*+1;o{xO|8GYY<&bIcq!kE+V_sYYZpizcZ2x&1e<~(ddhF3ac{pezhAsB zEt;3=Rep+lNwmE8dx7@#VMV`qg@R6H?|1P00000 MNkvXXt^-0~f|i@;jsO4v delta 546 zcmV+-0^R+W1g`{;7=Hu<00013M{Ml?001yhOjJdf(4e4TNN`9<(3nUN5D+*h7+^3U zxR`k0z>xU(`1s(c;JA2TNH_oh000000001D)>{76n_w`NELglN?6^fD%oO& z{}A<8@;ZDB*rqIO+>+rQ-JP8%g#7C-bbP>1FAf0gAaHg1a|6Aa{0#Jd4bU)VE=w02qSPWi>)u@1j7}KPBhZ1ZtAH1@bvbt<`~@*=q~nf^it=C>&XX zn55cT8`#iU;KCP7NVP%2kElz4LLtCTmO2PP4aGv_J2s%pP)8!LLW+D#QTl1^p8^;R zfsU<2;AH7v#G?cb;sY2^4>)R85`At>+u;M7XQMgixPQN74j6q0bhFv-8*R1W90~3n zGc|jZL7?PL9*}(kyB6>o2)RMOF~-Us`gs5#cl!nlrW66jyav=QzU6X_2Pk>20zR&= zYbN^$jDkKP*JfK$1XL*BsZy(o;x)zmjMD2GD*uwd0%*SjFby8y9jGussK`L#zS_AI kkzdExj2q|y{`L2I19FgY{JrH48~^|S07*qoM6N<$f})b?0ssI2 diff --git a/graphics/pokemon/eevee/frontf.png b/graphics/pokemon/eevee/frontf.png index f7241f496a04c8c1d7b69629e9a47d47a67bfc76..3eb2e2c96fb22c0f7c8d467ef6963d12c993a32a 100644 GIT binary patch delta 525 zcmV+o0`mQy1eyep7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!i5V@h*M zO4gi80000|F(FbhA-$Y?=Eaow`1t?kt>CzLU`RLs0000000000<$zwQ0004)Nklq37t?cO=i**oLX1w+U4M6dc+o|kXTHYMWr18W zFhL;K0{ppvhQ^}22<-$!G!#flmZb|oqXq@L0Kng#OM<=voCx4!JPe&j_P6y^1uWY7 zJ3ks=BAuPw`VR;2bvgaAP8Qb!U~2wg|G;P!1)juf>Z{H_8g~h4j!??0NCqTU?z?y-vwJ83hcQW z3pJc${5&844+EH}oSkqt@S(u@XH<;dH$Gg6AM$=`8-JgMm>l;y7U(a5$OsREZaip< z88ky_1sNjnjIXo_h^sf7T6=lf+7Xc8rF=7L+dBfUO(1pL4dTZq*c1%WQ+^wb+ww~< zz)#*=i{_S3izgVvPCSeq3n%{NT|Ew>6zzsIW^wf3$ P0000xU(`1s(c;JA2TNH_oh000000001DMD==N`*_iupuf#gEAKtwY?P)uePh`JC0RL?%T;``|V z=GI_B$-vgc8ZoG+KmbYdF$QFlc?gKguCf8MKm)de$g^-m3?N|8Rn!J>4=@0$n_`G| zwG9GA|D0SJ?SH9>$`(kcBsQk<>`dNU02f^OfsVqFC5YR&GRAl|bmqA54HM!@BjHAr zIY6cmU}x(OF90QEbCGTtU4Lq`aIX+pAw{~O2s|&{I}>0q0D5I4JzG-h0!s-TLL2Z9HX7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hF5K5#< zi|(Y=&0@5BF>17XG5^(S5D*aNtXiB909Z&c#X%VMb4vK&m;e9($`e$`00093NklH#?-9T=AcWwY_imm5z+VnAVRRJJ0N4V3IE0ii2PWXGe)E!j%oy(h zw0PdRAbJ<(2pD`2HGtCyz7o*FLX^@ypU*<@g@7r(Oi3U@;5z~> z*OPl1-N;zr_53 z1Z3I}fX)koUj+&2(sG_`dT>IJ*QInwB}fJ%0O}p`UGRSb)zPwm0J$f~&CI}6FzD%P zxwO+=O+n{DcVYyPcM0?s)QEB%P0tJiI0wl4Rnh}V2SCbTc>RNzp(dEM_?`1uXBJ z>_VwL6n}9kq^TuKwfcS3LK+{1eA8*JjQ0tEWBQ(BeRAyo z#dveMcHi6mz0tmtzFObzgSIIMd++oeV6yMva|QH&jfPFZ*tpKuBlwQT6?g zUBeP6fo-=5AZ8U>hG7Ds?p-`is8JA>2?VJ3_AQ{EXv+iwd`Y3|%lyDRK-dW-gEBvO z0B}z*4F0U29 delta 897 zcmV-{1AhF12aE@h7=Hu<0000FrX5G*AWT$i;oBdPw?sTl$Q|cVzHnS1c)2kC~rP}Cm^8Q^os>} zd;5a`bB>L3%M?eqKMi1doPK7&>!aJ4^3bNIn`;g$+^@YH#R@jRte!haXTQHt`J)Q3nUO;(}aRV~cV zw5D?;nggMNRyOx^?DfY27=TOL=>bTsUGT@U$ri^^-B88S(^3QMOf&;Tpt>C;C2n^g z+M17W0Sar--BCSgPZ%J;1$7rbcx~RH*?=I=gTL$Uunx(2<8*58^)(=Bgg0Fk7yD z4iv&1jO{=v%trDoQ3`VvV1(HKRXtFcbLFn|4}T?4b&f*X3xF3Yq&)}38JiNNJy&M) zTk&$agpu}pQ!;Tk(w>yUTf15|DJ1QiQ~K8D0CyN^x+%_waB^4L<}hlPB+W%{i^Fh6 zqkDkGVbnhmP_&-177v00Y%wo@udD*9|3Q`=7vEyu0=lSp{zS+5$6g+@5kdq!jY0lF z@Ou5N_HXCKR5~Z2MO7O2>k*1hYRixL}CmCh4Bvz znCy^&=#>6pxq}GeA>8*5tV1)}%7wMkKd5+424aPOi0%wTrGHR<<2U{RiM4-N$KS;- X>yR@s(UP9k00000NkvXXu0mjfloX;v diff --git a/graphics/pokemon/ekans/front.png b/graphics/pokemon/ekans/front.png index 721886da38c6a2da236102b5c92396bdcdc270de..ebfd623efaf5edc526ab425e5bcb83c63f877edd 100644 GIT binary patch delta 580 zcmV-K0=xb31knVL7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hF5K5#< zi|(Y=&0@5BF>17XG5^(S5D*aNtXiB909Z&c#X%VMb4vK&m;e9($`e$`0005cNklNUVo1sJ^E7w-M1&2rYYy! z2uhOy6mid=yZ;`6G62k+QqJi*fe2sbQl%u-WdKdAA7-vq8iOEL{ZqE+OOtXB;Kj=+ zvH25UBM4_UH&JqN9t4T7M67i4JadB;cu-0QGPjyN&rAQ5AeGR$(RBOZ3tT_!{3N>z&C_M#uGbDC$e-u z+k)^)igq{vz)H335kLG00t5tb3hYt0{n`R%7@1%G1!bONqZ|GW_dv{QhjYzSNh zlWl2xPcc6wBiME68`23D!5Kh&hVnu9leCVJ1en^9V3XMhRS5X?Ypt)-&8^b+;GH-F z*j*x@f}vv1F?41CKn&EjQSt|=55US0xKns*Ry1-5%&;RBirhKtLa#h^b1!6QC0n(Q zee^;Gk3B;B)r8)L6y0Umh=(S4B}1omhZqoRgIuvY!XcaaqI(CqZGQCVU-bhjt`Qud SOnB4)0000ljQ6oumf$x;{Iqo&RH4z}gYc7H&fYk!H=Q66;ZKqZE%J8idM z;o>5eAQ8nQYsA1-B>n;7Cy@Wbdp7ORYkOf~=-sUI>D+Veu^K@u05ap*>U!b0q>5txz!Qbr<*kgf*k4&xaNSHLdiSe>IV;5ReQJ%Iohc^4t37o z7(Hwhw*z>zcV4d$w#%KT9PsF}HuI{oQo)Pi5Lvwz`hUm}MZg?(rxY4}skObM&>V;f zVZHKn?#&i17+^}9WPs3GLM=qVisR5Urd)VhXkfq83~+s#CM1Mu_Y9Hd5#EA~hy8ab zLsT-rg#`T_1ux7g`lP)g ytk)d|4Pg<}iK<(-wYH6_svfyT2IYtOhxr3ZCy^8;MZRhP0000`cQ#p3%S<4|yU1 zIF5s-2(hMccwtymfH;oEzy(kZa2$66yNFf36c7!VZv+IxfF~L9{&fVion#~43dA|) zIq%~X19Jzr#(_}DkL!4J?L_c1;!vX0C*(D zJObL$Gu{fMwzn}H`-zDB)qf8QLrVBS=&=54vVdq134eAcQ7`bppyM%S38(VrBM~;< z3nFd}G(H%@o0sv)2`CMxY;)52JH;CA6(^#X@#t`wot>SXot>Tkkzei)s(%w7^#_j? zY5uKOLFNBae^3wLKi(hQ38wwQuz(=-2Okv>{`7ZoT7NLicMCkv1{%uf+jb~Ce>G49 z(2VV_*nePD0gFiHMbc2Fcc=xagn*R>0~v1S|0Mx#LC6I}+(zJw1q7NG<5u8r=eU4T zf6xe;0>kj5{-E3ez=F&V`vVWgb)!QO`B8#8#=00000NkvXXu0mjfz?Vj9 delta 747 zcmV$_jF^z@|C z7D}LgM#lL2(YrgH@qIjRThFuxSRHYH09frve=ku0q%8#I$x#=vpI~VKj$d#Mk_|9^ z%K&>70Mcd))1U;JElh(W3yd2r`X>Y!5};Qb0fBb}5C_#9Cy~ww00Wl~IiLqI2$RQ} zNXZyI7@0c(0)J3w6A*~#1`|-9C?FsL!vt=U^+}woFCzq0gH|BMSKyul2jKm#0SgGQ z^Xvfd5^f4S02^Rh13r|SAnXXIvIg9IhH9x?uBw2aRr9gRrB?^ORr5>CKh}YV3ZY^O zc(*rM_Fbi~GYoUQW_2KcEbFsB`)d zY>Nx&YR=^qq9sRSt~a4I$C_iUI`VC8>wm1j^@qs*&vy7jC$Yadnwi7@-}!?B{@fon zK*JyEf`7sI!!HD*2XIi$89gBN+kn7bCICH}ONW7>V1W_XUqcKd!2tpjU4dd4J%}uz z6(iyeM3@oGqizKPw+PmP^r>fox?t!t6Aea;A~(WxRRw$p#N`OYAM6yOxNJcD;SL}) zYcNkKy`=u&78slSlpdY8cXlTtoui}>z<;tHG-THKlp2cXFEwG}^sAJNKRi8{G<`2~ z)*qz&^hKp;0XgdrxjngyBINyHQ5XdZPtIEWL0M23rn_f(n?EdmB+2d@bdYv`P#)Eq dZ~fu9*H43vbj}js%})RT002ovPDHLkV1ggjMmGQe diff --git a/graphics/pokemon/electrode/front.png b/graphics/pokemon/electrode/front.png index e448ff25d91da71ea7ae0defc7aed46d3df44795..6de7d5e090f2367eeb8dc2c294653b7342c3630e 100644 GIT binary patch delta 458 zcmV;*0X6>g1K0zQ7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hFQc|Rx zobK-K`1ttE&E60Y5Y;h3|570TgIa?S5bi-S000000000000000gwA8v00042Nkls5Yw}Ux zw-(NHX9q#B`)5Ul2ZCUTMO2Q>`-4LPzo6SO#CZ-gNQ;!cF9-&Q0B|5VVFi%r5g!E( zm~OAQ^0iX%caQX9K1&Rzn$=^5IBu;}1c?qd~^Afj{1f z4k delta 486 zcmV$t^sm%v#a2LJ3DdsL3=)-PdtWAqL~SA8a~LaZh`4|iGr|(a zIAZqAIaQ>3vxqwigg8?w-AcHiPgITqAr|@zHRnH}s92~na~C&^8ji+XZ$d4{%rWZ* ce##%_7gb@t_N~@yaR2}S07*qoM6N<$f+i5tLI3~& diff --git a/graphics/pokemon/electrode/normal.pal b/graphics/pokemon/electrode/normal.pal index 187f196ea..293f41bff 100644 --- a/graphics/pokemon/electrode/normal.pal +++ b/graphics/pokemon/electrode/normal.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -88 80 80 -160 160 160 -232 232 232 +90 82 82 +164 156 156 +238 238 238 248 248 248 -200 200 224 +205 205 222 16 16 16 -200 40 64 -248 80 32 -240 160 136 -128 16 16 -232 56 48 +213 49 65 +255 82 32 +255 131 90 +131 16 16 +238 65 49 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/exeggcute/anim_front.png b/graphics/pokemon/exeggcute/anim_front.png index 502e226db0f6fa331d40f59c68689c00e631eefd..dc17ffb12b8e4a2f41b76fcd10ed912191b85d94 100644 GIT binary patch delta 1034 zcmV+l1oiuc2$Kkq7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!ibbCio9 zAph0g5D*am?u*Tf2>AH;|L*SI-rnG_xah#Z000000000000000KbP&t000A#Nkl0~CU6SD17|B(2(} z_J@yH(uU09n%p?HcNZ)n7Ke5zk`j<+lsbag)UH$?V1G}a#U>0=llOa0faXH!sgz3n z*081Tz^c|cP*TkG z6pG$~WbGn-*ArkzfOanCHPB4Szn!2dh{k|p2DWAw{hW4!rnT@bF^r8Y=f<9W;0_XD zMF5C9!GG9=ygWtus}k9FghiF@5Fj^D--A(yx^OkM+|UNpV@;D|xUXv+Xg-npq)7u! z8EEo>ckqH>qj+-mE9z%u-+>*4V&U7^f!ENStQ+<A8?8`5(dkmMgw_+0MRqbu&qyE3Fy|)AXe}7ebZ=?RVUwp0hUb@ig|B(MB1s=vC z0k!_`~-byzi1t^Ygu4-wC@p)36_FN*`1D1K+!`$GaQpO+h2^^UD} zIbfiW&azdf-U;AT{qN$6{qNO#FWzSi`vO_pt9LYlB5+p@7()x7M!e6|e=83$isnxe zCw~A>%}o6_o9aIB5uhDKB0mzDaH{@IxRwxeJ;gDflp@6Yp#C@C0HSu)5%Q>PDB#j( zQ2!gbxU&!`Lz!NAP{shREPM4|2uwT6@=!|QfcCM;X4R4t0%s4;p=n>63)tx4gOe&y zWvgh;Ps|16uG&xfz;@Kdgk=OlU`dJCTz|XI9tyi$|M=v}39=84qO)h}zj8svrDnC4k^B=NzM6_TxzoFjv;$F@19@Jn8CH0yy|{7~D6f54Js zTpy@jadA*gWdblei<;oon20det%}2vM4c+&kaH2AGk+?yys(Ey_360>7|D)2;b&mU zt&BDTGs9k4F|O%1`>65T^sgipn#7%%#0cE_ShtC7Wt}-j54coCD-L(me?9j&ys| zL*OWct`h=b*U-%oFfFkk#4}?LYv$z$knYE?8h@qZHpRugWqxsEV6(ZWE59E2CY&Bs znX%Culhy;TC`W+g>s7NJQ0PL80BD*`>jAXOj;5XYm{x`LKre8~Y5X1lwcl%ssQ#{z zoqnTB1W+QWe-(wTFaBZrGO53cy4Bksf+$&&)L#HFgB(%!o6j-l@IrJr9|01g?Zw>! zuzx7UcB6=kfi?X3?aeq{Rsic0004VQb$4nuFf3k0000mP)t-sn9!ibbCio9 zAph0g5D*am?u*Tf2>AH;|L*SI-rnG_xah#Z000000000000000KbP&t0005{Nkl0Q_yCEPFO(1*x4FM$HEP3^SD}wkTyi;GKtm{B1UdPoaG2A@9?0`xD{CuwDR5#KJ z6xQN}8A7r~mVYyZv@YBv9$T<=9?aU}oDg2_$pMpWm@S1aUcOHWw8tYed%FGs$M_Qh z*@?pdkOj(xt@Q~oEy7#mol+rq=dBi?h_4hlrVt)rgG>euz-qL%a@CDUt!mI!XypH}xy^2RPd2wJAYovVU!J0D1~dQ>C=|>5}B&bCR4! z0CH`i*G#*pfLd)}#nt5m2;Cq<26Qb2%}rmJrhvd!w(1UiYAJ!%VwtBRastKWqPoif zOaSzAF`t2TO5b+CFc7N&j~!TsUF<&XfI(WgX$?mq>$&k~A4Gyg*Z}}>2OL!>?xl{u z8uASkvSf?tWte!yTPZnFwe~pvjF;@C9I@`sB;{S delta 605 zcmV-j0;2u=1nLBk7=Hu<00013M{Ml?001yhOjJdf(4fF@kcc=~_|Vu85D@t2h{%Wt z`1ttv=;+wk*x<0Z=)k}L000000000000021K~%SS|64sR^X8n}6S z(j4V+j`I0}$}9lu{mm~&`bBzcxK`oEpM?nP;2#~`zWkQqQG>C|MXlr-;_nfV7I5GG zF1?Z*ELp@6sDDI>xA1d9#~k}^KjVqWt`^mjBfb|5)S@Qt(1!`wM!@b{Y22Qny9P3A z2Cy*#JfE>Yp20mZn~_V#z_EhU3WZFFdfYf;BXxxaDO?2Z<)Lwpc)$v&Z)_AAl&uEs z20*-XqDiVo9AWExQ?>`VP7xidt*xeaM|cc^m-lfrFgLOe09S z1k}kbB@K!>Aj&CpKyu7qd6*Dyq>gpYg6;se5tw|;WHFtV+J;aQ%9F+2HH`Hv@7C*& zrY2R&omMD{sh+M2^&{m+dAv*}^Z(ulSAf000GENkl-h-*(VW-oxqkr;Tx88ryPR7l0I)1e zic3A`f;OPGz6mOEPp@6?N?9nuFYbxyafXMbMYyu1+KHikTL=rBd%Fi%3k z;G@e+8}cwgJJuAK{sn0g>M4MY2Jn}b^bBo-mreOWqr1>IjXaJCQOYS}d zl5f%}2Y(TN_#6FPt4XXk`?N!G_W^@v`OnX`MhPHdAOM{%`@|BExBkdo>5v&fe;l8n zm?Vn3yBW?MGE!eC0Y~AidR#AAr~w6;bQl7QI29a8Zt<2-M}{$=q%4FC;5k{FG~P6i zDPj)6hG1iq><@-zu zr1`zp&xWv90Pm;Aupi!6@>#-u93<5CO&Up0txm%ifSTZE2>XTL=jOp5H9-?G1voSa zReyUu%nZScIM0F}CiI855gch9?lS~g1cjae@@p9259`$kK4o+;3H~_8eFne@83Z6* zFS(;z+EDzHvpP&DwgBFreVWqYeYIJ7i8!7`8$T8&bU6*`Lwo=6(?R|X>VpsU%|p+p z5Qq?l2>etF0h{+)KEtPnV!+OWgyZj>AAf8!7DBJhIRN}}`d@&n2{CISTug{BEQG4M z{>DP6Oo(qRge=nUXs3qdTKJgPCn4BgWM70q~_%JZ@UVuTsN@&n`rLo3n{f z*5Cs!M2p4ktiZSRbRqukU5K*%{^Ayc=NCMwz>^EX_3VfXfjoq0#isyrG;z#@SR3D< zav?_E7O^!R{GgPyh>#&7Da-ZeCsNaVz1eBuP>!;G&pGN>+MV*VHbhAb+1i!D_x+lPS zH+gR}@;HxdtFJ8gRw#N4KvNOV3jx;z$fdh9^%O?#$9>y6u9Z(~V&I`5Oa7v_8*-%n z?-j_HR@8w0E-c;LzXcFs!awK&=KOHq)$07*qoM6N<$g6Isg AJOBUy delta 1683 zcmV;E25kA@3zrR$7=Hu<0000sj0J%Vfi00tsSL_t(og^iZIZ`(!~#zh*? zA`}osX{V2Pl27f|#1KB(zg@O)^fQkwK zg`$H7p(sEI=o-LdHbH&fH3IM1%SazWGK_Y2gf z^NqOJJ4p&@1%>k{5r{9X`>2rUOIO^|AJd0(QY@sn6solFskvv8M$}_&sP#(ANaKpO z+lJ2Ts->J83V-JYb>TQ!nmx`rMliVz0XKAR8-&XLT}bbfrkyAQ~0>bhw|h<|oCI=AvhHLNe;xdWyB2Y%iOqC^Pr{Q8d#{{zDK17h;BHJv&dtBY!#ygUL*P zcs&V&K{91pqlsZ_{_~^nf|u7L{@~S7_~LbXJjoaRlxk5h4<;|KgIPG44kuyuHi-)2 zm+~R}Dh#4wFd7Da)e~G1m*DxEa1zi8e}CG3Rno5yhrwVgPG=U1ILUNC7KMWV=OG1j6)pg#34W3gl{2n9>x%Q8VV ziGRnvvKq@I?v*yN@{)LI6RWj{Ro>+no6S1DZwv@F=@{}RzF4IxmL+3U*GYPOWOoF8+ z6LdCSZ^5AQywzGZhKi^0GBSo9MM1YR#WrK*R$l1=ezdW>q!V%dxR z?Dgy9kkrMr^S5LSb~I(lZ8l}o8%YY5=Uo`A?8hTk(T_e~iMTv95K4dKiGn) z<%l5=MA4l>pDAJ}#}Fu8N78D77z#dNAhJ=EMDUmlL^`Sp$K9{AV7s`WHt+g`1%J^9 zx>Ygj5a>i0Xfx#=00sd9+58q3 z);br?YC`~jHTL=O9SDg-7I*;PgkYcB_`}NMxsCt={*RA_EG`r_33QtXqEaM`1RyMe z5N<1Q-)+JmfFKOAEx0#?`#PC(PJbARCcIlS36yNuvn`k>Ck&;V00e;&AjlGNLWqtA5H3Bchz~Rk1`n6&&~_2%)w|6uIiO`o1OQlBT#fIw-v1$pQ}-@0PB>#s*6WoL1nfOd0HIv4`ADG;S(!++VMR0RFctP;aIOoBk(+1?PB$41em>qj+D~KMc0$ zn+Nf#_i5E9euxRUE_MZ-c=ajnB`gO2Ul#Tz{F4EbnL@I?Qk=n?vh*ApiZ7KMn?2SsR$@$@KmGQ&f d+UAFU0oe28WO%Y{!wdib002ovPDHLkV1gqN8Vvvd diff --git a/graphics/pokemon/exeggutor/front.png b/graphics/pokemon/exeggutor/front.png index 7f825b094ef44509869329ab4e4198a25872c275..2ea8935be4e870cd4973cfb9820ea3262e0586e4 100644 GIT binary patch delta 906 zcmV;519kko2b2ep7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-s0I=v%Vkr<1 z5Ob_Cz5jEZ)k;!95az5}|MrXc_^9~!_ulSAf0009LNkl^Ug=vIWiYP1^_~@22dee8SY&h_^PN(%V`Cm*HXn>`4g8J zTmV#DC^mlG&1E{IR2Zr!Tbr!(3xg|xtP*{sTwAvLfuI_dzy`23UiPTnV*Twct!=D* zH2=&=s_J4D_EVL+ybZRJ#cZeYhdXt(JMU*~Zfq~+Eq||}HjW*aN*vcFGz?r_-P%-_ zNtW0w$ohp!6Z#fVIU~#kR~hDACON8fdt;Vc8Fq@u*#V35PQG@4ODWkZbfFUKvx!?d zF;WVFN_MS2g?-;sDyh)L^-du55qBa-BqTKp!fV&?P1$q{NvrtuHq&)NCdtKG za8gdNYk0WO0~)gEI7WzI1uChLJ`(!MI7L>=Vypo4B;0KL5S~lLC?PK)M;HL`5AS;` z5kjaB>5~a9z;nnFl&ydoBVR_5dycy2BT#(slz$!sADDlBe+8j{N*Mi}!YqVeL{hyF zfbbK)b2y}|_X+@F=4X-;)IrXAAf^C|tl~=lF9N=pt^Am=K*Jxsezt_819(5ZhU4_U zlg|>4^Aw@Qe{2-JL~p}C06oFa5RM1I&-KBdJ;98a0-RQasl8ohmf%%fyI_|I{ps@x z&VRBGj~Rk)f<`X@eHsS%GiS{NUmP7Y!JpTgE^zWcP`q;lb@_mX?2yuvjuUd?J`(29>3=h@7 gZ$2cb|K0c>3jZrJIjznR00000NkvXXt^-0~f?Xx46951J delta 946 zcmV;j15Nyt2fPQ67=Hu<00013M{Ml?001yhOjJbxu;?I25D*X$IDjBnz(7c#FknbH z(8zG`@R0cUsQCE!cz8%~C@6?%Na%ogz>sj0J%Vfi00T!!L_t(YiG5SOYTHm0wiWPV z3YM?ED_67$ZVkOU2^}&yC=cMK+JgtB6ildx%8j=U^$mW3K!3LkX%Tb^)FOI^4jwcV zgrRG}Z(!7OB-sh}RnB0Ed%pYqoFkV?n^iWpj;H`uZwG2X!-l5;TEl*wzU*`|A$<#B zA7_B{p&uM?5j}U(Blebl?9R4O*`ZdciNCtjRT$9@!O&`@rjhr{`lbyAHBFRHjWU2i zE^K>6vjYGa!G8n`0bnq&@cKKu!}C5IoH$NbFKHk&VZtsFXidkdukM3wJB|aOYXDrB zf`}M6^|g81;(QkYpaax}X))jo-yY1TN^}Nwumo6u9FO{I97=dTy0CB%7y?~(^Oy~s zNxA8qk_PId1PBUo=;R1eLzA3ibde6>D8!|3?l_%wN?cv3I{irZO*k6LkZ$p&y_#j? z1ZAe4H-8H6mvCUhSvcV{b|b@7Fe<=V2$DdN?pF zV+){py&KMNyupn6+X|)9-Z}sMmwSVFPf36jF9wUnKd&9n_Pm~=kBHG?G5yqz;~7`> zQ6vmK9%Ic40NT0Ni_=nBND(~iM@4{2){px|8d27F3r)=3tY2tizI3sQT|P^aW&BhO z1b-xX47G`8^PD0oh*4Q)6j8q*MkR>};PxZ8K;j~aDFrf|DFO2f^nfP%sG<%LCCQv7 zog_*?Wr=r@A)+vb0&tP4#{`I66`-BC{TWA;>&};|7#iNjkCAiqpdLgU7ipx=I66}S z+n+a07*qoM6N<$f(ZMusQ>@~ diff --git a/graphics/pokemon/exeggutor/normal.pal b/graphics/pokemon/exeggutor/normal.pal index 7af14aec0..7430557a4 100644 --- a/graphics/pokemon/exeggutor/normal.pal +++ b/graphics/pokemon/exeggutor/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 0 176 232 -32 72 16 +82 98 41 16 16 16 -56 128 32 -88 192 64 -72 160 48 -96 72 56 -208 200 112 -240 240 144 +115 172 49 +189 255 115 +156 213 74 +82 65 16 +230 172 90 +255 246 139 248 248 168 248 248 248 -120 120 72 -112 40 40 -136 104 72 -232 128 120 -192 144 112 +123 82 16 +164 106 32 +139 115 65 +230 172 90 +180 156 74 diff --git a/graphics/pokemon/farfetchd/anim_front.png b/graphics/pokemon/farfetchd/anim_front.png index 6554a4c9f4e09b237aae01cf207a4bd0edd5f32f..c96acae39a8060e6acb30a35be97a9ae81eb8430 100644 GIT binary patch delta 1184 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 diff --git a/graphics/pokemon/farfetchd/front.png b/graphics/pokemon/farfetchd/front.png index ea6aa663721cdfe2f7f13c330dd20d8bb3bb022c..9616f035f61dfbc6da3e49b1ef8e509ee3d59da7 100644 GIT binary patch delta 740 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 M07*qoM6N<$g7%E-q5uE@ delta 1582 zcmV+}2GRM`46_W77=Hu<0000tKFt8vX za3CPyKtP~CK=^=Y;Lx!6`1q)xXy~Y*(13so^j0ST00q8DL_t(oh2@vOZ`(!`$IrwC zhPFJK+{F_)87@#$+K)2X#%St76c70aj5b3Dw@3n`2--!JHGeihI}|W9742?h6STSL zQn-NO&G06m(84TPvNV0~sE9x93?2In0VeNr@4b8X<9lQb7~8;K-Hf*WZTNt{`wc)x zvU{B_+ZgulHv)z)ndf&I+wynW)`txay2v2J?)iSZ0Wh%ho(2%x^?L0pu;N# zT_JI*L3o4=iU7K&C>^ZChVN7Vs0dIB2nf&5fZn60kAFt$X&!@95on}CUoi#%k4E@+ z7?%J+#IP&z5&R6uYo$FGJqljF%#g(V$W zjBTH-fLM4rFd5^zv;siDm{FbdDBX4K9!$QpRnor#kgR>J0jk38dUhU+AKJ=_X8}m# z?Ap_l9p^b>jPD;RWeu(|MmRg8Myf&qX#MoN8h`Yiohz_z=9kn+3sU4ET1!m98<;M@ z&JFd~Gu2x=VAFK}g$yGL0x%O5>lH0JU6uoj{Zw*v5`eA4dpHE1J7`@Hz@kV+xP=mh z!|)0j5^%J?#If}C22mj;Q36g=Nr0hN7U4=LX24GWX8Q}K4+^qG^@JamA}rX!g7(YG z=zn}F^rsZ~RO$_tV6&a<72|6_GU{QNDx_I(d8xlnA+vrGt0?hYRYvDq<9=*f zRbYDb4xn9b)1oM+kjfmu6u_(k?;@}by(0lCNwn4-xUB|WqE}|Kaa`Em!4e?f=w%BW zY8L&p@&061{){O5yn7nEpng3+z?)qk6R&LOZ>+(2Ls;l+1v-@XoT57iU`?Xw^> z{%9d!fdydJ9lU)a*%A9TeGP#bLM;T}f0Ldws_Y^#gNAV&Ow)y)^>o48ydlN?SF1_+ zKsJmJBc#i0Quv>@0Dqlk4b}Cu2F@Qg_gtIgcenpPOy1eLd9*oVM|S}u{5$+F0DsGL z@lJqr@s1obUA!I0bWz?8WV(1eu+l{)nzt;g>SBYHbg{`wy4Va9bg|JgU6j0b1g-(C zi*$tCviLJyWD;Y1+Bg!ei;}yfi#ttGv@WtwZt!5)xo#@gH2v{~WGJjCd)L?P24IPj zBW|ux7uEKx4zwEia~*-cmh zP!|m)a5<1JhL_P!5R_w}E_yMxgVx1JC190->5+i}2tZw=3lcbG?M|h)27mMoYETwe z)J0oI0LboeY5+kAkgEt_kuDF0R?^+r(AfqAq&M)d0sF`g$PdUKf;E0Pu>2DQaERrPvDlVXljq zLI45*(nYRwgf6smg*SQ$seiU(kuK`HQUHEX_+sfOi9!j1)c0004VQb$4nuFf3k0000mP)t-sn9!h$i!ow3 zAl2Sl0002Ay&#J*0RN-_)q4Q{?m=Q=Ip*H9|NsB)_QkBMYS4gy%o2s90005?Nkl*9e z0!2R~=o?2gV7c@P7M=@qcn7puAciPdZVB?!$_}S1*q^nfmX&SSh@sa(6@*U zh|md07PrQ>d*3M1007Vgt_vQ71XTLcnxd7q zXO3Y(5P`IPk(LJ&&KX}XZ)U{u(-nR$_%uz%82$n&?p&bHm#|?{-b&mlKN=H>je-Sv z1aBqmP4>EKsh918wR_q@e+y;v^%`K#+pqmDo0KL@1Azfg%9Hm*bj0Ic2uZetc7Y0MTbA`AgHB?*IS*07*qoM6N<$ Ef)Gb0$p8QV delta 640 zcmV-`0)PGY1dRod7=Hu<00013M{Ml?001yhOjJdf(4dHjFkoOH(AZcI5D>7qAkcUK zh%f;7pa9T#0Ql%Y;Lx!6`1q)xX!z(r_@DrDDa$kf00J0EL_t(YiPe)oYui8=#t$K? zv7C_U8Xd}%`a4ACz+MvYpk13Y6&Fk;Iv3yJxl5Lg?(X%fEq{=qqJvj+TbDr5N2vSW z>2D-U&J^f_z4-a*x%WA}M(Dqi6`ljO2z?p^)(CwbO0hQKOMszC;;jOsOO&@DFid2MFsO>*#nys#zB^Jvff)#eQdR8Ll>!<*t z59zP0V4dZL|+fD^t;hSvJkSPP;v=JN6Od_dg#YoSwQ2s(g%7H&VB9 z-SN$L$`1m99ZKnK2QXaqI35LaOz-c%{cijAWq=C;-+w}fb^sX#1poq|-O&Jlj^hY745$SHY4UL`{L zLa0?BRCzBZ$SaBQPP-zJKun}xZFjjkH%Sf%DJ7A6T&o!4<^WG8LLL$z_8#>spr}4R zfGZEOl;4Ul#!>;5yv7+$-a^Wx_G#hSRfH*<@`zgyM17nN&=^7eM^r=$p!ERo^@sQ5 awe%0D%onx4>3&=Q0000hFeb08SSq-p>F0NzSDq(MRdb6NlZ0QmU$000000000000000cFOC=000DtNklZVE6z3w;Blu&KlcE9vk(vr*1uiByOJB+kfpF|7#F^O28j8+&^SE zPeJ4mPwB45_^Bny*+Kq9xoq%N27bh<1qB35kw6J}t-{X)md9=mp1-xq2}&)1 zt5k6iceIs}cz=H}dIfj`-L%xJs{Yi%_ib=Wv|ocni>w9~3=aHHtKb1Q{Hg`i-cV*M zpy5kOJfRJqRtyxSf}phFk-$U{=%kAbsEt7!)gz<;!J7y}rd&wCPK4S9wfXXeImWz#k5xNf^V#bUrGK0g7~F5N_813A<0|!h3T}Rqbx2&Q zjSYCYNT9vzI2s-aSYysRh^ZPcsoiW-IeNSc_Q?Edehsru=NsSn#y1cvWpNqLE>Awo zfIp_VH@WvFo;h@q>U$&*SfM)k?NgTC$J5Z-2}QhKgR5<7iu33TaZLb`+2qpeGeJW} zg@0gsl>ml8n(!}I0MDTl@R3|y6Qnzh;ordz$?u=7OR={frNrQA;8$XAf#0|e{^d+- z$-9d;fzoXU4*9f9;IHpxUyNb|+&kC=r!J0#XX6Xr1$+-k%^AOvi?j2EA;iAV^d~os z#XL*a{dss0_};OxixJ2W-LvFfl+YLmdw(b4a}&PBB-#ilad47A zPazh5Bhcy^@EU=OJt1hVhDQrrvu-KY2?z`{;$krpAl>TSlM2wjlKm6i)DZ~&8VAP~ zBp7NCm{QDQx=lBVdEtG{1l&Y|33wwg0XY?MvXiA*a3N5U0NlEsf*c6$PEed65Pv!F za34bQUb$II=-ohc@5;1$JYP9Snu``DMq{u{@)gnkM35(fBG*K_MGDF8dVkcQMK6kO z+eZ{GTo#x>EdwdHs|-dEeu2OQ>J?y}@wB~Gf{!;3?7@*l3GU<~3jCVLIPCAhE_>^Mk8?L0t`@4i8xv#qcn?*6&=(_B^C zJ}?CXkM){rk s0d634142&l9kltEuYvH5Z@d)$0OCM16?NFX3+`1tq$00000000000001?lIZFH000SaNLh0L01m_e01m_fl`9S# z000DeNklvZ z_?A{`0>_ms%-pL~%dP)m-`FJe4+zH|cApRdzt6n)eKR)iMUuXDQ%?b%_6a~9oC5Uf z6}zJ0$}e9~qKXEi0yr;#46n8%8)cOWdjT|6lpy2xinVz>H8lJ2DyPmDbs?d=G^=g5k`4XxM;;$rq*q9Bu43zlv-O59zFh46=B&628pi1Q=PjkXEir^2 znS>NXLS+WJUW0#^WPn8op;8Gz`q>8jfBi|kJi@e+!GG$z!H31dxz&5mJ*0TZ+q}0MeUs0P##XSpbOO=0L9)KvLg< ze?p-8AO|M2v>uM)9SxA@k()4#0Em}mza)1sLKZU384D&5AZ31)u#h+}MA=fBr*T{Z zuF-YR(7_Kt1N78@23_`lMKok=B)&M6Ujnd47Jp8zgD_vJu&PL@$>GUt_;a2ub!r)! zF;B%cmv7*`^;iSq?OJ%?P(gySPHP$FuJFKv%VFsycMbp>p`LFO_;SgdY6d7wTxzWI zM3h$j&)C|nEiK#8rQhtUHT6VKmkoS^P&+3HJbZO7kP&n%`U)a<4Lq>?*J5Z`>%XEv z0Do8d$K%V}@)gFz*>OPcLc=;iP^&}cf^9V_=Ny0)9g+U0&6}Nvju{tSQM#@_8*$DJ2r#_XsRCz8}U4$DXon= z_6%%_zTGW|P{i*y9Fn_U#L(CgL6xqX0e>(%x|fScH1@nL`$Yh9s8-kA>=KDQTTuhM zli-MvOLvL=>@V$u!$w*LJSEIN04NSSH;@Gb%-<8n_e5zQBBpj$tFz5weh!^|TnE^# z^<&J}^uzpOexR>sQ<~2CI+#RyKX2Q`!5{}<&H9PQQ8-2&0Dq!h z#V;w3ngy|!k!N~yo_?<1u)iA^04DSY@V6QuALQoHI6-|Br|A(O&44>Mu6JGOje$|P zbO0cq!UK(6>S~tGehEc{%Z8X`YCs3kXc2uZmzd2*I3-dcF%9 z8etV^@(1sX8bj*0cnZK>R2gwv3E%hc0004VQb$4nuFf3k0000mP)t-sn9!heT0#HK zl>hFeb08SSq-p>F0NzSDq(MRdb6NlZ0QmU$000000000000000cFOC=00071NklBZ@NS*+wB@e>33DExrpl{TRr{maIF#Qw&L`%E@pnFq*Nq{&KogXVe zcKs8el%`4eVWNO-{1fH!q_5KTJytC!24D&UCFHdVzXIT6>cRb^RSqb%m|Ufbi}+Nd zjKuR{^a^Z+b$=7qtE%2>;o~_tC7RbD(IV8qV#!T^ZxuY`(63rRZG|$UfTk}g@t}r0 ztq2sQ8lbfFW?%q>I_bgzwH(Azy@eE0@RNhp5YV{>jaLzqD<&(FaI8$>e`xL@SF$9k*#GKkq<>dTM3`V6EKCh(t%S7I!%vi8 zJN(-br+T>yKXnMp8}-DurXgtV;qEIjK4SS5B|r2pgt-N6`X4p_%I>)XM#B6clvsxO zF@QwVHP;DY-ov8aI}qGJTbdsP+3T^5L-cHeg$`Zl<2{g9J*IL5(CQr7n{hO`s5ij$ zG6G~Z!ha252f@||x^MrI!ob5qhJ}sXEwGOc`!6S;7)3^BN*{@;midwgEC+KrddBXs1gxZo~zkD!z z&Uf@NwSAfI-uY3=H2`vd$=YXJB#l+-^%mUxCPOE%s;o?W-A;b8!cx$dBC wRbQld*@kj-e+p(Wf13YKv$pe%Z~TGy2mC!7L{(uCxc~qF07*qoM6N<$g4HWkQ2+n{ delta 744 zcmV?NFX3+`1tq$00000000000001?lIZFH000SaNLh0L01m_e01m_fl`9S# z0007NNkln2b}P0n?Gr-yzTf-a_iPzL{`Io<0SDbZK;w8H(663&l?<0N z^Pst^WEfNc{{?8^r%M_GGi6i00Jf!8Xs{2afd<$XZeRk<(J!FEn0?wMwh64{6VSOq z;F9$%#`FwLd4GL)Q~bKmY<9|u(zocy>;8z48*&fX;0ZXkGz(u|ACE|9dk;~@n5*>u zJ8A&7+x0rxMm&Bk{h7;q+K4lYxo?lsjktRJ_@p~i{Vv#y(fRwW5W6iOD4jZ-Yawy7 z0iCC)@3I1LIp=~H0PP=bQ2+6bho!@$GQk}N(Wl*me}B#u;X1q);V@Y39-AzdP{DF8m5X(QnFODq$Ias`wY6D>muAg*G09`fNDo-OqI za0_`Nq<_T5sZ>D5%_T@%s!G&xtblxB8mM=|FAUHjD1n}CK&%tg#~inhN?vav7(|K>uM;(C{=BWWK zkqkdm5lcBz7k=fR0P9Z1<9QU9txZ`CN!oyKW?^f#gre22O=zznS7!li@Vj$Y1J>JA zDfmz^LNm>46PAHe@Wlmey#W6=z(%EqZH5;Y(yvay#ne$NEe8ov)t|96sI{8)$JYP# aH|i&+jOQ$oev4B80000vH2D426vVH)OZ&`@d}^A#OGZ(sY09jFoBYOnp8}GJn1tZQC7p{QEHGUHy9m zlL6+Zs9OITfp<66w-*V3(d^#?Xut?4`FFdZW>iuzrY)e_(B%lI)s>z%)s8?4+ByDC zgtVo%6e6@BTzUXc7qCYRZaG0LD=^DWNq05`R1@OePS3w;y2fv+4ITTB+bs zB7k5}??Xz!rjL2 z2W(6Mmw%(j(vL3+q}X&jSa?9^n=;nz^8GAbh;zLl;=SDa(mhbGp(~)Ix^Mj_BdQYJWbAOE)pq7hiKcQw7wEFUn)c}_AKfR`{ z>9>=(%nu;evhb!{^zHlr1Tae?>pSy<+=>~2^_Tg9uR1Z%#`VGgaqpG?_YZmBhao`N zJU-dcwYGY4?;z8IaRLZ1v44RH)c}BepIjy?fV{I!?!Cyxy@TpHvOWQ>?j05gHK6C- zCx6aIDtPwYJIqoL0NMYZdyn>i;$G4KV(8wtnSEivv*+GD%&jl311n7!xp(zSFaq$3 zdsj240LRF^>lH-jO@!k(y6#=oZ)r$`-rb{RKfCw2{fz%-?~bZ3bng=E-sk!Rz;06t z==;h0Q!&MWuM@C_uQ)xZ05d&m2lWS#7=Hu<0000ui03R)ll000SaNLh0L01m_e01m_fl`9S# z000APNkl(2hMtX)Y-DfCeAV0`fWJTux|?e`I~kG~4~L_VO=69p7N zAET(MLOU7-ltjb;?Ijqa7Tf|sY>UThb#;LBL z=I|Fq0gN)>)PI)o0PK(fV*v1iQd=eR3V@Ajjz$3(6jKDu7|jVX5ElzE2R#LjNPPfa zEti)937#6jA7QY>SO_r%wdnqi1dI(WAac%FU+ZDZ4Sx_=>HJ%{0+xggU_6qh#7N#C zK=4!V(aTQ}Sm_bu4R`)+N@(C(jKx~E0>R<Y_Jp?{w@#d>K5IztlVb&LCKknv}`w;?Z$a9ssZNM zr2usrk_LbT9{YTbhniuvW?m8Iwc%}l*O3{ZwSFB4yYeIig88nj4S4)s@l#u${)VSg*2Z&+I+Z~-kr0o_TatIUaZ2iiYG z#^%t5z0m$)8$Mw28CnBNMV?^jJTsRZqb+M;3mAg7SS_2@{(;lDahF^FVf{mjfZs!3 z#Fc;0gZd>hsQg2&$EcUUGZJTTKD7SfJzmGL10Wv4;N!~p2ULG$ABYR|U@($H;~(S| zR)6pS+EeymwXo{XeRF{JK>?NeDF_qKu}Fmu#DY5^v7_4g(~cL4dM+^K)!0SpgBzbLor z-xOc0$Y56fye-S}KA*CNcH<9OHapuqY-Gx^Q0nXhD90hs&mPb|Xu$742pW(K=8Cv$ zc?Q!(xra$vik1;g7v(RM1L?E}A!rBU?{h7zz39x7XZpqLOzR4d<`Li><5evlP4D9$ Z$8SEWAofYJH{<{S002ovPDHLkV1m~i*UJC^ diff --git a/graphics/pokemon/gastly/front.png b/graphics/pokemon/gastly/front.png index b5131034efe1c94c351f94ad631040e6f9ff7820..eca993908e9b767b9b4dbf9e66dc5e64c6e82ae1 100644 GIT binary patch delta 588 zcmV-S0<-<`1la_T7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!irtj)cY zw2NYcIVm|15D;@pYKvlna7bwX|Npcp5Z+Qb(5S%J*x0lw5Z+Qb4H%}B0005kNkla zrjC$O&N%@*WC;PqtG@D2^;k;;X#PRZy*T1WByvC+^Y7Mg?s=ZEF;WA>Ls|Ve-&9H{ zh`JlEr}7DaH-DEAki4a(!`!sd4XVy5iVwdYp=&iLTBG73RIn|>&>hcg&qZhpjj z?g*hDk}PNTJ*WYI(E&!-K$u@QPymdBm|FzXb_DY)peING_6WXFG2p`hJOp4S2Ta?3 zCFD%_SpYl)V9JrRBdh>GO;ZCM0|Fa-GEO zyMuO!YG{!G^q1{oPVpc&07?yBxVBI(fy`eb1oayr*~T@1)&O=W_*orwu*`|NtdF2Q zv`47|c3y8fC2BwD7hX7 z2VT(aP(_xyv7Kl2LEQH{qMYSKYxh$43_T-;x60vruY@Q6DZuouy%46!?Pqk>f9cYt a!}ui03R)ll000SaNLh0L01m_e01m_fl`9S# z0005!Nkl=9#2sFPGP^cay>^Jii9<(GF7x^S|DByx>aqT*;6y)x^n`#1;BORo6*yv) zfJ#*dOiLg_5B>p?GzLNfbqvs$r@_GY6HxJ?HDazHRDT|b9fW`^4+=gK1U5s&pg7|vJHH8!s5n_N|G|deQVe$@$Bdi;# z9dku~=<$sth!;J;8-tj}cM7=NHNnE0$jI`1AOMgp-(NI0UVvYcNMzZ-Kmab=>(ICJ z=f+Fm5FjoccjZ1(nESxuY%M?=`j@UHT<8(7EnO#3x_?^%l>8ogoNZnS(1r-^)(pPx zBm%JKEg#$@keqLyIp=0u{^r~VW8!^GlNEmzV1KakUlo3m!#QZY5^d)WwsoJ#7?=Qf zE-9|;%$-w#`Ov}xOD;XYZ}*jqI*&4D3Rlc?H#^8(c_4m#*#gCb<&^gIXTK0JpclGW z@w@Lo>RmTKO9ArH^F@tR+b?%_zwD+OM+jR@REvuxzYU8KAcU;_rk15fQ5*L?(LEb8 y^?9hG119w!0{U2AX;RWZ*6oX)oB$r{Kd#>*l7=t6$ecm|00006Y6t2!(?X&iek(TQ>gr-5dhK%NvqZ}#Ax5a{D%P$^Nj(4^hf*|z)^_%Gyn$hOTwTK*oEDq z03-_c--ZAuFoWNZ5>HGf!x!ZD7?26XZ|~k>=06EQ0rF~~crx>!0TLlvB>H7H_MZZ7 z-gapC%M@h*4SxYP<~2bBa7T=9udZ701iO3 zd5-nA)P5@heG1Cxy$3)(%}hAWhY~n2JWW4Q8UiqX4WR~*u0q*vu~|u8E|*PWA|6UHr!G|Kn_;iyc2NO5zx7TWc?jQ0+3+uhtq)QSpaZ&ssW~XFWq0S z3?Q7GYWyZVcLWi=U*^B19&|UNnl|-%lN&dl0I&wo!(E)jPd}a?^4r0i_ZQ?&(&MiXW?*JMD z_Kn|eKHm?WF|e1m%3J@&>2`7eL1ifSaIvGC7OQ3WA#KYs-+0PZo~53ynnt|0D7=uHQu!Df770y!qPn%zex8< z6O*s9{aYijpZ)A-Kf7cA$G@%~YfvgIQSnR1lIAg52FMivcc0uXDZW$zZ~-q-fY$)V zsjldM`_0!&AlE7iSt%j#>Cf-TtymWTBB)pz3V2QlQUSnkk)vtza#eTo8_Cnj39U>| zn}3%qv8$UUIU_3oxPCv2SBy>FY#qRj-7WYe-ow$I{X;JRRLvPxUNz;vW*jJwI@vM; z53r;{l+=4M1JROY+6>x>0ZjBoEX4OwJChekI-^LIjbT?iCqdg=326Bs9<(#Mc7~X< zy?&ajA)sjI48VJquA31?OA)P~teq1fYk%h?ePOJ4$a30Ue8U6Hzf`UR0NOl27T>O& zP5N$grNIQegUplLbH0iO^5lb_cS zurLY+FyZ=6>KEe`z%IVC06(bbCHY^p&R;$U`Tn=^e-&_$|3>*7_5UKE=)*C9C4cSR zs2}V-Sd#yz`au!Ev=5Nha9KYn3J@#va5AsNiJqnTQfSu?cJY0kko?0=xL!ZlOt{iQ z1*2U*hz5`lTB@)H)b#^0Ks*c5UIbPBAQwqjq-(2wpaiL2{AK+BrG&sA^ZJPc>iU5` z#rgb|g!3In>;8@Uf!J*N_7_|AgC0w^+|b5KHM#H1R00000NkvXXu0mjf D{XiqK delta 1164 zcmV;71ateX36u$t7=Hu<0000L20V4=p2a6#442yI|ihoe0k!G=7I>Qf@Gec4w z4yiSeHhTp~0`50={^y+8?0+5eZ{-)So(2}tSs>J3Ol-~pbEUsTB!|HK!n8$eu4dtU zA?W?ET`3v*%@_Hc)Lboupuhn#!7jF|h2o^R5+d3-fKNia+(xA&gcKP`2hb%%8F4ZZ zMYMM(QBovIYJVf64RZmXvWzl;wkGx?040z|=S?sJy;L;XDs)wBdWUASNONX5Colo-L+WJx&wr$W*&8UjxmOq_O?7tWhxcSS z|MexE27glezWxL0`m@>1DL|op{qSc=W|kws#{dERT~af~&;>j_g{mseiPJ#n0JGDz zXoe87%BgYF#9qa-c*f{_@*c~u)H|#)@%eFp#V|TYSP_QQSaaxb^`p~ol zwq2~pkC+~IY=DEl=VQP}_d$aEYdQny0p>}PV1LnR3cymf2U))rG*N-`_VLptCIC-S z@~W$Ky4ZFkN#B{26M)rQLc1pcRQrZpJjZi%VT2w(>>R+&rJgUY#;JJ@gTN@qFC2n% zu65!03Lm0^=S+;Q*7oJaY`fws$PK4Lj4a5k6q0rRfEJl>3`BJSf3VVu*n}V!R94=j z5Pue9b$SQ0Xdi|H<-UPhXnW9U^M<9V4OBN3L=oO5%R2SX%G~bZJyB`dgFOJUAM1F3 zL+ZK{cdgxTfZ8RXijc0004VQb$4nuFf3k0000mP)t-sn9!hFN}RNd zy$}!(lykI7DN1`{r2kr4|CE%ytiAvC|7v1;-qqfy5D-WxNB{r;UI+ae0006!NklC;%c)M9>33R7kVt%s`aCL)LcgdyWe{ZNFKFX`_-pb%I_pK6V)9~dxz4oys#$odf=2$Y@Jmor2^1T3CA z-RO0R3V^$STz~VHU)FWUDz=Huqx&ah(4*)d)x;+u?KinWVVSdC&w+0-5nAe%w zwzPR00(}W;_dWw)UuGd(*24&53@^*i93_CPHw!I*Z5L|0QMHZq32z(36sQm``Z7~Z zSs4J{Gk_f6*y{|~DG7pr=DW3GYMdG z!hY%vuy$KY2`FY&=97TUDqw2^5zigP3Q)7#Kc@lns{&y6R0E84ujR*40E~lEO-91& zL@@LF$oe&A@YskJmg;!3ha?XG%mM6hSCQ)MC5}!p$2)- z+NkYs9JZ4K7@7!6IF!f1(jZK&m$ZpXR@50=19tGw+|t-*j=}IF@&kYukL5+EQN8u& zE}DMCWAnsbR8tNhzYXiLWq;2A>|n*F-aM~gY%As$Th^2G#dV+UV)E5(f4MRC8$Tod Y0x8H9GyP!QN&o-=07*qoM6N<$f=F&T(f|Me delta 697 zcmV;q0!ID51;quB7=Hu<00013M{Ml?001yhOjJdf(4bgIn6QYr5D*ZMaIi=yNO)kN z_!t=YU|_hYxcKn+Xkd8Q(AcOD5J)IU0002Z*1$Ue00K}+L_t(YiRG2Qj?+L8#%)>d zZ|(I(h>E?v{t_Gd_05{rNo)y36_FP}2wjb?AkTp45Cu+&Xn*bzcq+bK+ljq#?s}NQ zi8R0Y=HIUEdH=QfPx+&p$AL(m1rqaMqBsZm+B}3*W5B<#v54l{OZ-UC`*B>Q81j}; z>67+#Bm~6{kPCLPx{fp_&9xA+aDb46c(Ia|BA606DF-kTqLQ4fNl6>GiHfACsI#03 z<^mz*IpqSe)_*o903_f?^46FI$}xcAdxe6HHpx)0>V}iC<)uEM@kagA#iE7gX&&}j|Agpp(WOh!u z)OQ>yI26RyU z0g}11@HIWNME$P$j-FuU7zjx1YuML405t*No?BpR?)fPYB7K~~ z|B}uCrob{yQw*J^0F1Ib$mU%^6AGMnFFzwO0Wt)d(wkoEaIuG$rpIJTO#p*zDXkv` fp!US);-9m>g_5*654`6500000NkvXXu0mjfH~UEd diff --git a/graphics/pokemon/gengar/normal.pal b/graphics/pokemon/gengar/normal.pal index efa15a3b0..16892bb23 100644 --- a/graphics/pokemon/gengar/normal.pal +++ b/graphics/pokemon/gengar/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -88 72 152 -176 136 184 +90 74 156 +180 139 189 16 16 16 -144 112 176 -72 40 72 -120 96 160 -248 24 24 -248 96 96 -184 168 184 -248 240 248 -104 96 120 -216 208 216 +148 115 180 +74 41 74 +123 98 164 +255 90 90 +255 148 148 +189 172 189 +255 246 255 +106 98 123 +222 213 222 168 16 16 72 40 72 0 0 0 diff --git a/graphics/pokemon/geodude/anim_front.png b/graphics/pokemon/geodude/anim_front.png index 2346e37bb97ca4cc23d93cc26cf60e8a1a9f3489..e5e28131d6e8f0fd4e5700359000f0dfe6ca73bb 100644 GIT binary patch delta 781 zcmV+o1M>W-2ABqr7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hVYEnTt zF~!xaw6vU@l!Fiu5Y67r|Ns9uC^(1^5a@t-000000000000000j=bsP0007(NklZ$N{0{~#vwIi$vuGZ&@zDk_CddKTYY%oOEmG39Qs-6ByCyo-5KI+#c{XRpc ztpvqf1st+jTL5R3pCP;}bWgrPK9G+XF=E7s5hMP84CnjP&Nud+JHWZ~4ZY{#fm7!j zd(Rrsb$`B7=snvKdd_zWy=ROFo$nNS&oDygTPiqu&t47?nvcMHW^gqZGzZiE_r3R? zbz+ClAEb`$E8cT&>6!&Z$N4(J`@3&pxPa&a@?L;fZxk;ekirqH{n_g4EFkdAxk`Q; zK3qV!3GDkfFVNnP7Z8#^oFt$GcdDHQgf9e6t$(kZY|`~XxPZ`Cefic$OSfG>T=CC( z8zc|?)V2$VOa9ZGJ5s!WcrV{DOz{HZI-xfhrYTm&@$0000< LMFvhpu0mjfC$nM( delta 780 zcmV+n1M~ct2B`*+7%T(>0000OIk00(hiX_1uzIo|@+ zj&YAIz)Fy|X_tL31?>+&8RigoEkJLU#`kyvkhDKn9st(?3sBq~35aV&tSqJfmOf0@)NZbN6`bZ zH3IR)kM(&k^xKbLh=ABHLB!6YhRt4>hc|%_1SF2yEJrsKBMOaZnnOqg>Rsf90?i!0 zq_edL+UhR2HHjX%rQrjevmI;S5x`L7AA!^T9k5HySZ16sSWx$Jtzk04U+zR__>{NCtypc9#ITfddW(<5fD}Fm_}xZbo1*ZUPeq<2-44%Jb(_aj!rW z@1K9a|2d_1fym}x-rv*kn!*wQd46|9AFhDQTez&@W(P9IKgC}r#>P@uGp&gL0000< KMNUMnLSTXmI8K%T diff --git a/graphics/pokemon/geodude/front.png b/graphics/pokemon/geodude/front.png index c01d52995c3c495a8f8a8aa9d8570670c3c1f778..8b94b33685ff2307471702e844cbcfb91f2b7757 100644 GIT binary patch delta 496 zcmVc0004VQb$4nuFf3k0000mP)t-sn9!hVYEnTt zF~!xaw6vU@l!Fiu5Y67r|Ns9uC^(1^5a@t-000000000000000j=bsP0004eNklPx4$3W{#>zR#yxLi`Q$r|lE9T+~JS%0%;&HAGvB7P+=BIP-O zit9z*07U2o!LPR@AJiLYD7Q6!#9-!|5jDUKC zGh4(b&S_u#SopTB1ObTqb!)*Vtx_mllr)WTFxwR%{Cd8KxTfWCSu~!TwA4700013M{Ml?001yhOjJdf(4c5&P(U~^$jGp`u%MWbcn}Z} z$k@pE`1p}g6@MkuJ!Fwov{k-^Z)y`jLkLIA5_NI z>3#{%NuX4)O9LPv<&lAfq(qJaL=reO8q7@(eizSrhkrujesbg&=6VqUb77vI5KvRBUA^>3oGBCm&2`CyvtX4Yyo5Se9Y5?n+2%w=5B^bm7tMw>A zfN(xq6o0mPGVn&)D5~Qb@L+?$0&Xf7chHVqj4DRIzRV O0000_2=WJz7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hDC;)>w z7|nA^tWr4;5D@>pLH~0A@aVY3b192C7)ok;5HU)7gQT=t#hj$gxiL;_000AUNkl#z$zN;;;*B{1>k+UbfMl}#oLB*XH|79zIRena zI0p5kAKXNQZGYo^EdT&uU70XS1LWL^opBmR5P1&3zUVR`0$?I7Tc8t(MR;56AY8>| zkia|14!HZMU&|eYJ>IAZAc<}QNfThr>Jbq1ypQWTsB13ypgWY+M*y9rWeqzS3Rq4T z*LBP4sdM2hOu)tVL;%pmxwpI?0bs&uKs6O;=Rkjo-hVFT2Z_*fNWl1GR|F_b5ah2+ zPy@*E2iE>shX>&HS^#Q<0jNk6`iLgwX{`cyi~PaX8FPUAB7lLyF}x6xflxd6PeK)7 zi~^E%LI5N{TTg)9|C5Ro0U)8n00L0&Pv=gC`27NC>Am;7rZ{kpA^rmBXdnF(0SgJp zPzT<(n|}}c2imvy&O0Z1^yPaP)BqR=TX!DrjK?yxQ7?JiAbyKZ)xzv*Lpgd9PJNaP zkhy+9G@*~8cx!zJUx4^5-_k`r>|xm_06tDCg#Dg%BZv720EnB=uh$nrFu>J!5HEnV zCP4QgN|H~@{5rS;Xd~Zx>#eumdh1#Je*uKV2Y<}~qAZvApcz1vyh(M<4{`y7BoG+`>5`28r2rzIU~HEw zbQUTBL_PsYBR!r4TMr=e0YOY*41p$~!0I}2! zsDHm~009y}R0#3Q%m)y7Kx{ogi0!5M|1*HVJC^SGUlNQkw)E+rT`eb-I`YfA|RU2o1UGBD;63{Rw<85I5cT@sA*nqcVk*9I645hTHI zDZ$WV*`+rzfN-2(T*lb$3IT-MoeKfNyC0|){3^ W-a+e`NSr1B0000W=7qcl&qPH29MmTUyrtcS^*TBH5?WRr@(PXYJ} z;7h=wmdJ0E*661q=`&_4z#({E*}@JR)TQ~-n^*j8yB>Or*5D+6E z0q+IS)PM5`45KLe6^vvBBMF53$L(D!if%^|&^u(pU^I=Q8@ClrB%nW!n=s~K7=3lI z!t^pxAAz8XwZk)a%y}>jlOqNLL(KQPg?apvtN}Kuip&>WY&DnzU>HaQ_jqE)IG76% zLmt%t|G_XfPmBRz5qo}8&M_bcRMUY_K3z>IFMsy>8UdUmg%HOL4}&JR=@F2R!rX0= zna9$=Q-B1yjAbn2FXJByhS|SJ2u3X5t2Hll!BF$QQ)B0vV5pAbA33a{3x=W~CX;|B z7^bfPbpTHj4AYKk3+=;kgu$f?(a^zkkE*Kpae`ouS zCVv>6dMuACtu<7^fOD+?0$o)wI@-(BXI(I2f^n#I=;GUaCK#2D^rsC zQ|PQ83(e!3Zb9A6nJ47UHlFIK?4T{oxA8>gjyV x5+S#5^%$xP{bBVOPi2umAn-!G2rOfM`~j~)F?$+;_M89!002ovPDHLkV1mRM&iDWT diff --git a/graphics/pokemon/gloom/front.png b/graphics/pokemon/gloom/front.png index d4727f034dd754ab2baa53e4143ded01eb04758d..dfadc6841f8f0f29c271eac06a5060a2808e845c 100644 GIT binary patch delta 644 zcmV-~0(c0004VQb$4nuFf3k0000mP)t-sn9!hDC;)>w z7|nA^tWr4;5D@>pLH~0A@aVY3b192C7)ok;5HU)7gQT=t#hj$gxiL;_0006HNkl<NMA1i0Dn>vg4Y5#dDJ+5^d4$I14u4@%!mRQ*((uvB1w!7mlc$!v;fkv|Dv0nQnqMP~%i0QY_d ztoe_sQWQXhjsOH8f8Jx<1(MeT;Le|OmNhj&i~`9AKu7tMp9v%)5W^DWd|!O&AFS@2 zV~$b%lzl7rFt`9Xl-BKA-0N7DGQLZ<8|qh#=2m7`8OE_m*ljO4aJYUz4PjeRv)z4z zAAq`-ANi^uYgzU;02wDUVtp3f=`e2vfZBw9zx@bG08!r{9sq4kpnHg#le8I delta 684 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 ALjV8( delta 797 zcmV+&1LFLS2B-#*7=Hu<00013M{Ml?001yhOjJdf(4Z)Im>4)v0001p$lyqz$f!`L zkT`f?5KzcyuwYrIjNwVz;O6iS!b0ETqi_0$f;&lz;SQww47}HW=B;Kg4@Z z-1tW#bw!+H<$Ujx@B6-Y&y4*G%i<4K2OZ(Dr@?0?i*2CSLs2n+!`?}M(^QCbEN zG0QQ=cuatG5(L4u)czbmf(l(bqqun;vYY28-Rn*UpmR7oCj|urTt@84S64s2kvQt; z0gsI7&n8A8Z7#JZxYi*)$IQ~r6qrvG+sFNtbflgyzZMP&_?>CZNY}kqGf?(!P5N z$)XLoK7ScAf=1`35SyKEm_t5<5dwFY#nz2UV9@!alN(d4v^Y=j5>yeGU4Key0)aYR!m}#C8oQWd4}m4I`vI-{ z0{;B_r~Zko1b^Y{>;E-?AL1SShzFcQ z%QIq#0wm>@Ft`q|_~;3u zL4qjY^)eLE##RvV{`I!_;T639)C6NYiE#<OE0^PInI+UP5-+IZT;KM>I11NkaQM6uiF!e_u_3~vI*z>@ulKpPoC!L==2;n1aS3sAt3`~+inl_b1c zZcgz%5-_K;Dv4kpLB!gK|CHyo=3GU1DgtG6@G%Xzjrjmf|dbZ8(5j^E{G+g;O^$4ivAljji;9Wfj$#e%J zjMmmUNKKGO7*W7ELo)}_xq~YsjB^dm9DhXKT#YbJM|(N1hx4{8joBMg_@_fq|jg3|^OvG;U@u}%;!@LXN1 zloD5h&JrlckweQNYTI|R|J=tPwD0m(Dw*=+=D*XVV)h6q<9XwN`PpJQQ}vaHoiTeE y4iV_IpprRI>5u0J9R$z(;F%ws5IpmP-?hJZ2rCa}TcRxh0000gL5D*YZc&OMI82I@3 zhyVcaXlT&T(1>t2`0%j6ph)o8fT%DKpxF4*|44%X000SaNLh0L01m_e01m_fl`9S# z000DQNkl>2oc0t?te_tK?5a{u_KvkuR(~Kd_FO18B#OkX3azvp zIRIaP4^X8Xs5sEDs)W1#0$n(TQ&=KJ^t9C9pvq_9&5S3?+B4<^5)#&KyvqB{`!nVnHQ)C;3pje(u#rf1Cpg7fbe>V005*_Ks>>c z5;Q=f$^$4l$bTx59$*hX)`XOvonUt#eSszr@WjFHePaNRg`j}1P#*b#V~jHXF7jFk zW}lv=?>v@L_<;K_U&(JD`YlXeu76t!zY8c|x7#HKdEf>bl(+50QVNd`P1|z5*<7HC z(7BWIKe$|RevVO;v4bF0A?51&EtfJXAr1$Q5L_7|fPa{j>dg9%uvG3(F0U^%pb!(R zO&t=cRHK*I=eQ3t!qiF)z>Fe-r+~>!FW=^Bxi|ou+ubF>R0g~P*9zrvr@#V7b#wNPbCsya-dkmT~K_@~6w=QaSV>CH@*1k?8&(Re* zxTxxO&F0Ndl`vaA$gU8VC6GLxf;p7_k&#%RWXb^|mjZM~S64~}#Q5et zIW<>T>Oz7}46>?F^3Vc#e?0=)FH8vm;4F3uz<*1@d5)@F07V1ck$B1sYCp(2)K$qi zIw-2n+7QT1K7OcG@Zm1f@6G1&%=+8+GP?i!QdXIDcL0z@a~0WtQpZWrQ$BlYH?MFV zB@d3RoTdU~IgFFqA5#PbBm>|ETr?#-9|Jyb*-^_zfO(CX{leRt)H9pc$D;t(pMT~V z?SI_rQAKHN1Rz)+N$eH#fTS52*`Xq1X~w|UQ8a)hE*$~z5V6Sm11W@Vy;U>ZG?o9^RC*v0wJo*iO4j6S7t}DdxS@Y2K1j$ zb`5jaf?66HHKEH*qT^@A2si*e4->FGX{jg2|l$y~aa2WP7CkSJa> zOiutiX+s~L1}{#PrbwJz!O?4&#v~K5&4! z%W4Ie~Km?`?QtZ=K36SDm^kZ`1=&J3j>O5r1cX7y|##4+G#oI6wRa XaF00000NkvXXu0mjf{YFm# diff --git a/graphics/pokemon/golduck/front.png b/graphics/pokemon/golduck/front.png index fe9836e681181fecaa2f837dc9c70ead097f5d16..e670ad751977d62ea6cf1ae5bc4979070fe012c9 100644 GIT binary patch delta 744 zcmVc0004VQb$4nuFf3k0000mP)t-sn9!gxQfiB= z)esO6dwaCr7#RQm|BCqwa_LluWRiH-D`}CO$A9Dh2Ed2-03Y!{2-xzB z1fl^6_4b)(j6k3Q^jG7VA|OJ;PZ5v`Q2F{cjL!rfE&#?_0Te<@05F&bw0Nlm(I9~c zSeAxDVk`r}$K~1LhckG79SO!diIT$8@dQ%@DOV9vf(iTsgyP)S?@9$U~Z9gL9VM~(?k z1P~MNxj_v@@ajjAix0s4u7*H#Ud2jVBiy}Ru7B~@7 zQS9U+eXG=iE6UZLM9gNureY&V#zwcD~xJ(_zGZ_$`amh1DFtGGJ2KFuORc{rP;$Nxa++_$kBc$z>fYwK(3Pm~l!7MC}O;{?9QP#R401Xy4H aR(u1!q7^?gO_%uq0000gL5D*YZc&OMI82I@3 zhyVcaXlT&T(1>t2`0%j6ph)o8fT%DKpxF4*|44%X000SaNLh0L01m_e01m_fl`9S# z0007qNkl4s#NEV6-4Q=5zaZOL=*@As2pcC1>9yo=dr=EQ+v) zVC4kye0MDog91XoBZSdPp8&!T)t+v`*<&xc@pyBQK{WuTGq?yr3vU~D6JBGj*9^{Y@{JYlL|Qn0iE)?pq*juO~q3 zqL#=3dJj7V&`?O3lB+&|Q-Eem9LEfKA0`djcYcyd5}21wv@VdEete`|$Zi$+dsAGQ zSiNnP!O^!RmWh?y0oc5{3ha-(XQ%jy%--1IP5QP{dQ)rXaSm8?^W^qpOh67%2e<*} zRRJIO0WWHCSc^TtY(<^@$@$l$u57lN?gga2|JC&y50SF4zs)Kv00000NkvXXu0mjf D96Mfa diff --git a/graphics/pokemon/golduck/normal.pal b/graphics/pokemon/golduck/normal.pal index f3b96e83f..9caf6c3b4 100644 --- a/graphics/pokemon/golduck/normal.pal +++ b/graphics/pokemon/golduck/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -64 72 112 -104 176 224 +49 82 106 +139 172 213 16 16 16 -72 120 168 -216 24 24 -248 248 248 -136 0 0 -240 104 104 -208 208 208 -136 112 56 -248 240 176 -192 160 72 -240 216 128 -168 48 16 +123 123 180 +222 24 24 +255 255 255 +139 0 0 +255 172 172 +213 213 213 +115 106 16 +255 255 164 +164 164 57 +213 213 106 +139 0 0 160 216 248 diff --git a/graphics/pokemon/golem/anim_front.png b/graphics/pokemon/golem/anim_front.png index a551e71dc5c982f3983fc6c131cc1ec3e423c073..cd5af1012fd26fa35bfd8a7190bab9bf37c1fe47 100644 GIT binary patch delta 1332 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 Bl(7H+ delta 904 zcmV;319$xP29gJm7=Hu<00013M{Ml?001yhOjJdf(4as-IDm+NXlPKNsGtxK5O8pC z`1tr(NJz-Y$iS$mn1F!Tz__pg0QgW)s2~7WtPqg^000SaNLh0L01m_e01m_fl`9S# z0009BNkl1kr9OMT7(pLh|D!V1Ms_F&P3uI=Pdc>NT9MXg`Js z^9d2H9+ZIM^yoPaAs&;&Gefjguhb7bvq2TGkqD|`0W1<7Ng+Cq0EAiIAV5%q_8gzfa{T~& z7=Z;b`T+C!JkO`v7ta3CROe&iE@}YUGW0v)57P5Y2UH87&XWgVQHd6;PjXI%AP8WJ z7^25lfPV!JFZB#D5S{)MXJdrp3Si4q(kH(N@Wsg$QupIJz%w$KltAb6fLu>vu&N6R z#Pr*5#3JYn{7lC;pN?yQjVT#Kq$;T88S0zC8W0;9(@cXDZBES}@EYKEh$zxKOe77` z;{d@LAUXi=?(Yz!+vJ2aWgV~ugXsQathww$Ab-25$JRVZ7KDEW)IRznWtxw@I$#A{ z#!0Lh^9XoNUDI{lqPQ+02!YCT1s9|*r`*pyE z5sZ?mX}b7`iB%z@+7;Xy=9F<%J*s^K*7o29XW%^K&o#6lg002ovPDHLkU;%=#;hif0 diff --git a/graphics/pokemon/golem/normal.pal b/graphics/pokemon/golem/normal.pal index a1af492ea..0006a7dca 100644 --- a/graphics/pokemon/golem/normal.pal +++ b/graphics/pokemon/golem/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -64 64 56 -128 136 128 -104 104 80 -160 168 160 +65 74 16 +139 148 65 +98 106 32 +180 189 98 16 16 16 -112 112 112 -248 248 248 -88 72 72 -200 200 200 -192 168 168 -152 128 128 -216 192 184 -176 0 0 -248 80 80 +115 115 115 +255 255 255 +90 74 16 +205 205 205 +213 180 90 +156 139 82 +246 222 139 +180 0 0 +255 82 82 168 32 0 diff --git a/graphics/pokemon/graveler/anim_front.png b/graphics/pokemon/graveler/anim_front.png index 06680ed00dfdd5719adcfe4ea9204e3bb2f1d739..f00ad98d8f11e608b098baae37bbd8464d43bec7 100644 GIT binary patch delta 777 zcmV+k1NQvr1(XJm7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!g~K{3_U zthBV8l#6?6YEl3I0RR90y-GO%0000000000000000000000000jdEqo0007#NklHlB603q3G>}H+qZAUz$b}WD-2ss@+9)BxVtoZ-K%zlU8nv3J# zm~8Wi)*8@l+dikTwg+iY%x7@mkw1bLWN?rB3}#WNunjU~HG;@bi+2|R1kk;7z~_5G z%pIkde7*q|U`a{gS&uQEcMRwn$PLSFS1?^Ad5(tOFd!S}1{M`wc;_D}+Wtb27(6(@ zK!iBLCTJ@%w|~rQRWp2x)cm*Z10p&@1O`e1c6DZ8@?iE5(2uk^JQWx$)i@27kxhevibxe5vRK%A^A9#L^};O>-*uwJzczgKp4amP%GP zQT2SsyAQePga*rSKOEMKAcGd;0gbV{hvUMR@=VpO1Xe)TamkRgEBZICy&j!_7k_2GOM&f;u* z6+fwPPA|<~l>yvt;eCH!%nWMgUj0_SI+bt_{*Z#*TDSivI8jK!-^4HBD^{#nv0}w3 z*7?CYKUn7n>-?aJVVxh$vCa?H`N29rSmy`p{9wh358@9%$SDKM%Nl delta 715 zcmV;+0yO=U2IvKl7%T(>0000Df6@k|Wtv`~Y)Dq(<7s?cD+evTVht z1$+2EpI0@@a&}*^X&o@WyQ|0{!GXGClymJo0}W`G8-H}*>`qM%V1KW^s(0%9SNf(d zSpLRHG~R)z)N?g}R(*~e`NlzhdsLh{fDr&qa=I-s$frtBb=YGAmZy1c1cfYN2bzeM z&8%vmj{TLOdmI3siRnPn+oJ>1{2PZ2Zb$ZAlNKAGR=Nqz>%1&i!vNJ>m-rD>i>AU6 z%hRkmGJhPHn1d#R5dpD`PDN!qdJtsk+D1Z5$HGutDpcxa=0CBxAlkevdoF_p# z4jkB*;~&5QYO)Zfi1UmTx-wbbfRgOT@yI2kCds@w?^H2zkR)*AtK*RYpQpIlM|ARm zYqT|!5o|ix*xd?5Be}wwD*;;$gR18MFNc-;B*-Zhq~=i=BwQ8XYU{%w3!*X7V-EBR z;eSeiTS~3ZqNf@oJt8H1EinG{Yf8)0$6$Mk=-gv}KAOcyyWbH#Vf0smt8peD{bXY# z-iHOj6rzvCft18A2xx@M!YSDI7Da0R>`guk9oVjJ&w^rsCks!BEi$i)DZF>Sb@_l_ xv0}v{*89VHe^~Dir(Ig_4{xyEA69&fzZA)TS>V(vhsyu}002ovPDHLkV1modM7RI| diff --git a/graphics/pokemon/graveler/front.png b/graphics/pokemon/graveler/front.png index 359e642c48f88719dd5266277e1678b993dc5eea..c6dcfbe9fb7b7489397522e7a582694c3992d415 100644 GIT binary patch delta 735 zcmV<50wDd+1?vTn7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!g~K{3_U zthBV8l#6?6YEl3I0RR90y-GO%0000000000000000000000000jdEqo0007MNkl$pTgP}q(L$7!GTBq2wsrEJ+3pDMWMo0$dJ_tBHu0ET?7z7_tF8MuLUu8 zlwR`r3Rr+8C52}_#&}*aplcvk9Jfuubd}^e8hXKiY@8cdRCwW?f23&pgCH?@aDagb zafD6KR%C9O=YOhZ_!_DCuiXbkbcP5FlmzVR$iU>m>>;4)igFj%T_7%a!bb9}N+ z#R^_BA~~U$ty31ud7vDRkr@5%iF^4{(F>GG1=xwDO=_CvRPJkC#9ap6pu;SctZt&} z`H6QQa?=S7mf=3^){G#74&wohvAKui!k6+)-5b~<9)FJ*1i+Jk*_ex~Hu9J5!2>Os zARf4)ERWm?s>Q5Pn~S06XVxHv(E-#e0Nk}SIg&8-0OpCnhRBpVrwQ!7ZM9*oV99CM zRY(BPrzXdTPXshEADUNboj^-9>enkLLImS&P$HUrAxg3=5mmKSrrZZ8cMHF$b0<2# zI)3cZ=zscYjnH>JHxYzVq2~kxq1z@-zBz1QRZ;8E%BB28pr+eSQ$rZ#1p$RF1C<}G z>fm6B9}1qo0?ca5MX+>>xc6BX&U>8WyGMid8s-@N@PNUZx`>Q32Gf$1!z6J;Ki_c! z|2x6ticONry?v$%h*O4~UD3aB?RsQKTp_#y?nwJ!fpaG;QapTvjoJMMThz5#xF6oTdD RHje-R002ovPDHLkV1gtERh<9; delta 690 zcmV;j0!{tv1<(bM7%T(>00013M{Ml?001yhOjJdf(4a^^Fxb$zu&|hjh;V3VP!A6e z`1ttXXn2uP6@S`V#)kj^010qNS#tmY4#WTe4#WYKD-Ig~00KryL_t(YiS1G`a@#Nv zBpcR-0CCbr96bO&Kt01FdKd(1DkL#!Q^cv$>Df6@l0(^){ebvJq(<7s?d=}2?6dyc zVh``*c~!G4XZH!4)&b+YyNn!CIZ$_ma;}|cpaJdrfPW60-Kog|9Pag3^-g{NO5ZdE z%U=nJ#yb#|da4G{s?TvFUn$6Md&Ox27y-~ErP~&Re5?d@hXXcXdGd2ZC}asc&;+z> zMpXlK>=%S?KL9)t(t)J6M+c_)XNL`LNAg{h4jZ6Rx(UsTUzV$3fNJhb_z0>+Q{jl^ z*=vpr2Y)8!ph;jvKrAEFU0ZT_&Pbu%0SyVdnrXJ|i;ipN(If(=6E*$)xQ7k+!K zJCcyaI4=p>HZ&kP2=0GVLQwlaeG&b<`HcqaUF7Aw>?8oWEC8Hrpytr(t7&%BHIMUVe#DLE(ZuW>yK5&h; zW-@|J7aO}?%wXSi?k3B5PM34`1tsPi=079TCB9a(9qZb0000000000s>eD%000BPNklB*pS%xEIw68w4) zC&;U|vP}pi9_ zUkGN7qzMBZ6@P_Z!+2h79z3r?pn2IO*yFjo3=+kRvzCK=n<734STp4AI+Bjd88J6V zTB-u+hq8Bz*%k`&HXJO<2+(rqC7^Q|2AF-WDOUM&ze9SG`dd*3CId*Sx8SI<}yCq zA4W$4lsQNd`%c;c#%4ifEA14p3VWMa_i?vc2S*E#~6GH`*{v5|}r*rQOE zu#p(cGk-yxYe-Fi6vr74>1YQ#*X4tHl;|em5f%JE!YW@|OBgIj*dD4aiTIF1;eo>M z;R6NKaMPz34p6K2gfgq%?IhQ6UHDW#4tTiU5^oX9x7iQW)qq^Wi1xwb#Q+9N*)EYP zAjIXM(#zMe9ZmHj@)a8n+`#U&@55fac=6)Ji+>j{zQdoGS z>TZ@Y(373EBbdX@nu{C7Zf1!Hr`9i>YV^X*QU~b9%yKIV~y>KDb#DR~y-*1P~q#7l!C?4{la?S?BgUel{7bc9R=HSgfSz zxZGj7XurvIjczw(ea4*6bty)SZ-CMYo)qu~iCk&>WBmWwhDISS=v0#%6__3Ca%E0J9)`TSRg4witY)of6P118f^_G~2HxbUg_0ZZe;! zDxd0!Ks9Myo|`qSAS#vA?2^l*J9zDf7vJF@Ktn6SyY85z00000NkvXXu0mjfv_|(^ delta 1097 zcmV-P1h)Ia2+|0U7=Hu<0000K$U^sZ_(D0~$zz`4+ zcu0Ww`1p8$pg1@TA zO;Z3bnrqIc;n^pSYzv$zz@XmTNidN`bBiQ4-|=|uREU?;0tR`r1jIZZc(WOAz7Y#3 z0PuW|-V`y0aDO(NMzioixGP*E&d&u9vEbVur|{GMdzuReF=+@y;$uG9XTXBrd2JW5 zxq=WfgYpeP@W=kws1UA3ESmx+B>fwB^ur#I1>~b{3S08EdlpN7k3}6 zVC|=L-^z1u2*-Da!`~^QmMSARl5W&xRZ39<*ZgQ^6?aff2Tvx=$` zuxwoi8-HUK42g$@nCgymI8w>!gr`6l5T@;EvVgdUyn~gbbSa4WduG_2s5w~VB zEPvNqEFV{3Ts4%*@x)>eY+3s8m<~ILv679bS&Rkc_Q{bF_8JdhloTfxBi}GU?f-0( zv@g zQ=V~n=9%(rlL?gC(noRvFAf$dk{m=jgc_+fC5kkYs zqHzqiww<9IvqG~EqM*FRsSFp~7=L5jeB7 P00000NkvXXu0mjfz}NeP diff --git a/graphics/pokemon/grimer/front.png b/graphics/pokemon/grimer/front.png index d4e6f6b7a16af90a444aef7a8547357ab3753dc9..b99fbb299c7cbd84b0b5624ab9e0f5aa57e3c677 100644 GIT binary patch delta 653 zcmV;80&@MP1(^kq7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h{YMkDz z-eNg>?%wXSi?k3B5PM34`1tsPi=079TCB9a(9qZb0000000000s>eD%0006PNkln&YUB5zTR{`3U_LMm^k-`l2*qA;ZH-B#2_-7==U-(&(;Ok9X zAm@=nDy3X+0)R6CD6gCJ0fF$*erTis&=iDg@0eV>WF-BB*CC{Y3KfB*=|n&*-;`?t z87~!*?4f)!yEq@^C$R=iB;Sa2#Z?Z;3fD0B_qAc;#iNkty2Y7rORlwUpxx3&La0?~@ zM7yvG?0Y9by1!Ov62QaFmevu0O|heQmm4^7jd~F5}f!*x?lrI8O!%g{F1BgMR=X6nktdX{jbP6#a`@{7xdKW;+L7Lc4 z(hFcM3p$R{iv!kS(@r$Np+MHXhX-jm5_`V(5n#!{2fU9>WJSQ1!coFg#8l=2G1rhz z15%7LUVrk@20OR%K^rA{NO;8sA4u5jJ8KDx4GH~FJ%fmc426k=-@|Vb(CFsRhz`)Y z_ZN<=Mz@n($F1D?6-V*nS@^$Bdh8~bx7;N7>{usbwE88W~41~BG)OvYcJJHlG nBCpsov4h=fpVMyK_zpi#ffp0o7XNnu0000K$U^sZ_(D0~$zz`4+ zcu0Ww`1p8$pg1@>D&I!e9AJjpA<)gBlwQ#C15x~O|2C;q z*Z|8e5RAEbM-e~S69nK9nl2DhyahQ;!1Zd$+-*|;N{{h5H}wiU@&=_+nhG(omS3aN z;&JBzYhFyPlfwgwlk4k>y#bq{(+2-o%O9^P{ z()TDe8dJSI{QPWSAWirdTn)WB91hwUw-2#nn57$ z?%zv{UCEF_J8%)z+1q1x`iFi4KNE+--v!>k6aWAK07*qoM6N<$g5pIf A<^TWy diff --git a/graphics/pokemon/grimer/normal.pal b/graphics/pokemon/grimer/normal.pal index 9e51961b9..b7c371b48 100644 --- a/graphics/pokemon/grimer/normal.pal +++ b/graphics/pokemon/grimer/normal.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -136 112 152 -200 168 224 -96 56 120 -232 208 240 -168 128 192 +156 106 156 +222 172 222 +98 57 123 +238 222 238 +180 139 180 16 16 16 -120 72 128 +123 74 131 248 248 248 -120 128 160 -56 56 56 -152 168 200 +131 139 156 +65 74 90 +172 180 189 208 208 216 0 0 0 0 0 0 diff --git a/graphics/pokemon/growlithe/anim_front.png b/graphics/pokemon/growlithe/anim_front.png index eddcd685376130f00865149a777b1a0f082917ec..a3e0fbe5bdd7a59b5c09b804ace30cadd46106af 100644 GIT binary patch delta 923 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 Ef_9=OVE_OC delta 648 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 R%W41s002ovPDHLkV1o2CDw_ZR delta 1233 zcmV;?1TOo#3E2sd7=Hu<00013M{Ml?001yhOjJdf(4ZI?7+_$47+{d7xZoH-Z~&;# z5P+EQ@bGxp=sbN-X%c?UCU^||3C)HE%u~x~_Wf5vv zY4kJDl_0-DnjX1UW%alr*J(F8?Na%;MIgs@5Eu)TMgXGjsg{PYcA8sPeFmgWA4I3l z{ZlX6LrDnBy8?@IglupL+KzXYfPAazElq$LhJ-Zfc7H^9r`O>u9c9b4FEcELGKDkm z@Le$h$Tm|@mXm%zSce{TelE_3d^-jCRh)!BDkDQ<31B?{f_Jji+pfH+hKnlE_lTS! zFO9@Vcsv7Eua*{wjXEu6AQobGsHNL$iDWY>VK7JLSA0r&@AhpW1_D5}tf~l`=_IRR zV65+R34aE$80b9-jtpawdy^>ygsj@oV{agyjRfZ@SmIeRYLyVOM!P!4+DHf?=TJ3@ zjSb$*QXCr+PzO_%0r-vtVp2m0bEXswQvk3MWUU*djz80~6rU%+r;dhVasIQ=DnY#t zyEoa3yq5rILsLXN8ur+6VAOXyvf69Fp$f`fGml;UV2^R`ZM7=|fGrsQs7oI>Nro*6=1&TYvw3!xG=#uhFxdS2 zk$C8WoN^UcoH*ewVoz*oD%N zm(npQ*yI4h4c}pykOmgQhTY(t;WR*p7k>bJ@Ye?AoEJ%b7Q?|FvYwcXF>meYZVUhE zQ!4>T9x4F?PtRlCMzx23n0Oy1V{u49v{?|4Cri+VQ`4&913#wwoSF4vsG-?7M)9*r zf)3yA+;f~*`~<+&lQ@tzhAt5{`5aV z&Q+eg44!Lm0qUK9eg%;G1|f3_uu7Kag7GhB08YNhJ-V?x1K`&9w@4o1h5b)&f}HOl vC5rG<*--z{lz(g!O2gR^!|(b>|G(G2UKq+X0QUT*00000NkvXXu0mjfSx!1r diff --git a/graphics/pokemon/gyarados/normal.pal b/graphics/pokemon/gyarados/normal.pal index 09c401078..23fb19297 100644 --- a/graphics/pokemon/gyarados/normal.pal +++ b/graphics/pokemon/gyarados/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -24 24 24 -96 96 128 -24 96 144 -168 184 224 -24 64 112 -0 168 208 -16 128 152 -240 240 240 -120 216 232 -240 224 168 -200 168 120 -88 72 48 -104 24 32 -184 48 96 -232 96 64 +25 25 25 +115 123 123 +25 99 148 +214 222 247 +25 66 115 +66 181 239 +33 140 173 +247 247 247 +123 214 239 +247 230 173 +206 181 123 +90 66 33 +107 25 33 +189 49 99 +239 99 66 diff --git a/graphics/pokemon/hitmonchan/anim_front.png b/graphics/pokemon/hitmonchan/anim_front.png index 7930fe60ae4013e3ef32886431dc55a232425f45..71d40fb78516cd05431258eeb6cabf7b65dbc7af 100644 GIT binary patch delta 1272 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 Z{sJ`up^>v$cb@$Ks*2d diff --git a/graphics/pokemon/hitmonlee/front.png b/graphics/pokemon/hitmonlee/front.png index 42d195080fdd172b2357dec3c9a8bd542e6855cd..080b6fd7bf5e52ac5669b0259de55e969bb42e48 100644 GIT binary patch delta 654 zcmV;90&)GZ1)2qr7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!huS~;Y9 zbIqiKVmTP@#iVm$Vks#p`1ttH$jDksDZR96?&h?;v}*9+r~m)}Cw5+M0006QNkl4?$|GCFDw53eaLZTzh!&p(JM(l+z*nh;i|MvR^)lRF?S38Bk zhuSQJWxcqO=cNXSLAO)d~GhN0NB=DAt)F_)PcV? zmzHoi2jSULnSV1I@q->ZMcd!B`lI^H_^BX(It2y*`T(Hso&Y)kFxND_0SHL+`VNUq zABG4XQ;WG2$u>JT0DwsKsiuVc#Nb+d24HH%uJ&Eu8*36-nK;@Upt_(fFGt}lK;5SrT37}+I|uw+-63WH zmVbDyek5ahAhY&kxIYQ2fV#c|xB&KMGJ+idXF2B~PXcxv=6X680sZpYo|F1b?hSo9 zfX)WyS$_w%n6|j3_*V!E0J%xiTLioUpqOlKcKTu=%<0{`wgJk#13SiruL9O0*a4I) z`?m-#0m}3t+STJV2l!7w8IX7yK=-gR&GrFyH=QOl{lY*RU65NTY*C)=G(o>~t;f$2 o?333%x6c7wZO{wyf8Kro>cJP;j3e7#00000Ne4wvM6N<$g0>DL82|tP delta 677 zcmV;W0$Tl=1+fK?7=Hu<00013M{Ml?001yhOjJdf(4c@=IG}iN$e@5=I2h=_pm1Pd z5D*af`1sJs$XG})xUgvG;IO!`Xz<{u0001ZBeIhK000SaNLh0L01m_e01m_fl`9S# z0006fNklrrb>ae zot&NY1=1dk)6=f+1?>YAVjcSkeUOfRjFot`>8a2GW6*re?957p{EuPV_A^b|XaPX4 zSsXZ!hj-irobmWWA({$|D*z284z~Fw(0*0rn|ibX{ss)r69|-fW02(ekR{+M4`KMz z2|##*fVwJR`+w5~46YY!(x+6>#OV36DGV56fIuOP9wq@kvI(#l#ond0dvKlgx4s95f0M`Isnx>RK7`D~gg4nZ1kb`a=a6DBB{KFG_)MsMl zM%(#q%x7#)Dqyn?oD#;WeEyal@%22DEGPw|N&T{lhkxszStbQ9&p>J1tphLUAmBo# za+SZ6xW;Z&1Lo&W0I#pIdr<*gV!Z${?F78&Y9mtw6btnCfftcWDN}*K0mpd+2s5$c zrA*lzcSmVnAtHNWaj`V>J1jy0Oewz~n-@Berr4Pcn*iY=2gDpU0UY75D1~|D8*6d; zKGFf4pnm}5gwj(j5JB)mk>6DoQZ|8d!IqRu1(>%jaAT zSQwebb8Ex7B9Ef_w=(4ryI8NE0x4hW!A4)ex_=5}$~Em`wN`FnSK#-{;JFT%zaD=S zd%%Idw#N{^O;;!4{+qMgueu&DZWdoY=}NHaA|7PgQ<&Ag|GW4D)$z-JzCq1i00000 LNkvXXu0mjf{f;;o diff --git a/graphics/pokemon/hitmonlee/normal.pal b/graphics/pokemon/hitmonlee/normal.pal index ea2f5b7c4..ef9db0963 100644 --- a/graphics/pokemon/hitmonlee/normal.pal +++ b/graphics/pokemon/hitmonlee/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 88 56 -160 120 112 -200 160 128 -96 56 24 -232 192 160 -112 96 96 -16 16 16 +131 90 57 +164 123 115 +205 164 131 +98 57 24 +238 197 164 +115 98 98 +41 41 41 248 248 248 208 200 200 -88 72 48 -184 176 104 -232 224 176 -184 176 104 +90 74 41 +189 180 106 +238 230 180 +189 180 106 240 224 168 0 0 0 diff --git a/graphics/pokemon/horsea/anim_front.png b/graphics/pokemon/horsea/anim_front.png index 887708af46841df3d00168b7622d0fd3e2fcd1a6..3094e370429e5f00ddae12ffed52e5b22d37559c 100644 GIT binary patch delta 709 zcmV;$0y_P!1h-~6eE|S}qQKr3P%N; z2AI89P6Dup*cjCCt2FJtliBp=3gG!J<_j1bGS&EI;D55W*}s$i3y}8P$10q8|J(@7 zo?AjjAm7Wfc1Nt)x3;#nwzmE$(LFb3{5Tp|Xh|c?K7wnGU3ji#{kvr1>+lgoiAR~Kc2R@OyARQ^K>GvZKM2K1q3=6;v5l3mx0ZCaBkm8&J;v;|s+vNM3 z83OVN)GtJHpW=v%2R{(M-2X&#JgZ0H9pdNbm21PFB)p3;dtRBOuKX1=jVXIr0oQ}3 zGvL<;0|^5}v45+sA;MAP2P%pKK)uZEZy)fk!mI+wRCv4l>uu5$bG4uj+HU*LTVqT! z4tkh$t@Q&=O@ouRZ=P6S+hN`{mVIBt-fr^S17Bfl`;DnxMf`CvQtU6BCuzN1-l8qmv{uG#D00FzEY0Ah?Wl7CttAeR!T$RuI{71DJ|gdr$Z zK_!8t2K1a*9hL$)ma-?|`jL!eJ_SToZM zBXE*tO@HC+6T3u_G>qp}DW&KW_2=7!2Zqh#q<{L(18u*ab}eu0!-MUzw(~9*C&1c$ zB4udFm|@!Up0Tz27RLVTa0cv78YGpldl4Ag?oqOSw;YJO0j)q9WB|yzMIgmoY?9W4 zOF&vk-cCSV@cRiVNb`jZ$XAvWT^Ivxn_>m`_ZyNcT=mxV0{4%P(#tw&(*OVf07*qo IM6N<$f-n6%L;wH) diff --git a/graphics/pokemon/horsea/front.png b/graphics/pokemon/horsea/front.png index 42d59bfe35b57736bbab7e2ab2db66a275014bec..5ea743f224f68d70b12a534673f28f91079c60ce 100644 GIT binary patch delta 438 zcmV;n0ZIP31H=Q67=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!g(QetY9 zw4}xEz25&25D@tI_|?_b|8sMkgG&GZtlq^+|8sKy0000000000T+@Rn0003(Nkl9~2m}ojH`w|A@4baMsqQUM=^jp5sZvvQCSV+=wSOm1p8WgJmpqFb2wB$^ z0kI&VV96Rl@Jo&mt|Z$M(+fESUWg|7M)DC<_(olVXRh(>-H+;fXUQ*s7qEw*_x>gq zeFl0j+BFK;_ufgaX`}>kV+{c_scM4vdSmfeHweIIs&`(_32s}*{j&z*t8Hv#(6JHC z5&~TYj-Y=S#(%hP5Ep=>gU2tbbC})UPgr-+;8y=Or`Z_yHzeu$FU<*q0iPoyIAaLf z2ks@zf?!PZQGiZ$aPbp`dkN}aD)%2_dI>&Ay+6cXf?*-Z!z~&>;i!Pi0>`IuQGheV z*TB+`(!%2;^YPaT;Poul3pfsBvixBX@uxXHMgA0&c`tvhf~@oFAaK04h1@`KmR0dk ge1|`I^5l>61Mnyavb#cA=Kufz07*qoM6N<$f;jfd%m4rY delta 427 zcmV;c0aX6P1Gxi`7=Hu<00013M{Ml?001yhOjJdf(4Zh#a6p*2aM19$@c0lA5cv4` z(9qEMaBz@-VEFLB(7=emC@25`000000000FqFI*!00BfvL_t(YiS3dvQ^P+#QtXA z+uc*@tp6(K6cBsL_xZh(fdKH;NQ(eX0eEpL0nu#6K#aKrghv1qG352b6a=|}dI$6> zh9}jXSKx8=27R2>Aa@DeABrJ{xrw_BksJyg<(b*R=QSnkf}{*S&w!`3rbqySaB%l2 zfLED;jO#>{zkj6dhY7gIkYq%Oau?fAV@N%jt7lHoboH0f#j5D*Y^K^Xu4|8rvAK{1?^ga6IF|ELfE=s++40000000000mE$=)00065NklFe%rGFVSX8h^MIp4zr0N$Y> zqH@vJ?XlrC@@E7U=M}Aew=^7`BKK5RCX>3i|qyKy>iSdBo@a z7d;#V0|63_sRRk6p%7vaJkLN+d`N)1L#KKYV5#f6rLb#3FTmym)vwRgMfd{V={H$y3+O7Ot+5yk=C$1bHrPf+@d?|LK^ZHeE zW+?Vfz*PllM@RjP7^-H1DuOr(65(;|u&N+lf+T~|C${~G9<@BshZl<6bFe0|9u0rq z!mW(42vY>JlOW{}A(X~lgDUwYix9)!N!-rfA_zZ&3x7Ku#GN32;N?^H!Zm@B!rg#| z*RnJ9Lb8wr7|1?cN_vI0a{T%k!CS$?;P0R!4tf!V68J)S3qNDVj2Sa#%$WYc^be+g zF#Us#;JSa1?)e98y}0flB)N=u-@5D{*bwFG{z1~Iq24rz`v5B`B(((c_aTPr(SmS>8r&xh?@ z6AG9I=0D^&ya*WDU3K5z31ZuSPl3!oP<)iYw(aI0T)}^2a|1tj{~0s>P5c6+Ruh!d S8NL$$0000fZ-NXs zXCsOJ_F+wc4u8P)#h)$c^=94HU?zp-O&9g3*W<3GU2CK+kD~(0>D$LG53t*QC84N* zYxK`?L;2I)K(A%g0d4twpikj!J3O?ojJKq{IGl}l5}+*l{lTa2yNv`Cw(?6l8OLue zL^BXkPv;DJ7=C~j0JT3Pq*jasEHDtn2tAMn;z12j1Amc6(a3KJC~zMJosg$F_J9-f zBoT-YVw$#%#&P``r3Uz))ZK-1uEtgxk^z6lU*s*2g!7dP3$nxkna|HL#~goK%>H4D z**^pz?;nbH`~%%1S^uC^WwQQ(*HmZyL(u}Ah3k|4L0LY7t6v%az$^a!%KqW0O!|k{ z7ry(egkOI!6?}f?HCow$6jc)rxp4LcX6#8?^q7XSbN07*qoM6N<$g4Kc= A;{X5v diff --git a/graphics/pokemon/jigglypuff/front.png b/graphics/pokemon/jigglypuff/front.png index 78c30c5323911e8047de945f77dbb43031b87854..af3a2d78bdab6149e53ab4d1687e7d03537efada 100644 GIT binary patch delta 464 zcmV;>0Wbd71KtCW7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!i45Fr1o zq~>#j5D*Y^K^Xu4|8rvAK{1?^ga6IF|ELfE=s++40000000000mE$=)00048Nkl>K1t2D9 z&#JxHc=Q&*tCZZcEAl(l1I_zqaZc})b55r|rFP=Ee+yj*sojZG zERcG1_!q_CS^!xCaRLI}Ou&qsLJ7)`W9 z2%LZbw;&AT_FzeV>0*g+PLhtZ*96nO#MpEZPXOHX`bm_%a%*5jxCc=6W*fL00fj9P zxIJ7B_7_&|`15OkABL6SpP(r&c`+|F@CEruziZd7Kd29|Sqb1aQ8`Kg0000PQx$|MN=sU zXc{iyaX@V2iJ)Rt;^72sPk@w093UxM7Hy8e9*J`@u3f3ZlYg?N>d2B8|7HH4agyX( zms#2LygmVao=7Vw{{WUaO|o$#yRukj0BVe|>lej3j2hWh4KoL*F`x$J^wD7m0su-* zT7!3(xudg4PrU|}@ol0W0Vr$$qNp{XVIa2$c}3B%^~3f<1sfo;kwv}PwG8M0EEm5c z=(cN34&}k2SbtYhM&0&<;azLwl($iXg!JZf?*W@n&?x1_x}%=@hbBo_Vt;PHLvBp|gjzofgqe=`uxz(js{XV6Xa1zG@-<0BzQ zDJ5WnfnY|+z#fPvJwy*gH;P7gOF)XpDv<=8=Qsi+>OyQ0h#OJnZDUEUe~wZB_fP6- zK}0zkX-Eh7H-474z!u~?rxs+36Y{)%t^Zp;;HXoyci{z=00000NkvXXu0mjfBu~ro diff --git a/graphics/pokemon/jigglypuff/normal.pal b/graphics/pokemon/jigglypuff/normal.pal index 4bc2c0fb5..6f4d96e9d 100644 --- a/graphics/pokemon/jigglypuff/normal.pal +++ b/graphics/pokemon/jigglypuff/normal.pal @@ -2,16 +2,16 @@ JASC-PAL 0100 16 152 208 160 -136 64 64 -248 168 184 -240 120 144 +164 16 32 +255 172 164 +230 115 131 16 16 16 -112 64 24 -248 248 248 -24 112 192 -16 72 136 -16 176 232 -200 184 248 +115 65 24 +255 255 255 +115 98 222 +65 49 156 +148 131 255 +205 189 255 168 16 0 232 64 48 0 0 0 diff --git a/graphics/pokemon/jolteon/anim_front.png b/graphics/pokemon/jolteon/anim_front.png index b43c1de38f8bd7b1d642a900aa99587ac59ed48e..b5c8be0af95eadfd326c28424415f452ce9e13cb 100644 GIT binary patch delta 946 zcmV;j15NyZ2)qZ77=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!gQ5D;2Q z5Y4Pgtcy9ActHREi~rtINC<%V`1n#%QpLr^fPjbq0000000000R+bfM0009zNkl~E#Kuog&BH8IY zh48e|;~DhVvhoYIwq(|qW_PNGXzo$V&$STNHD``Nmz3~*)ep8RqHMt{*OdvFyoBkK z#@B=?*dov?;{;}qbE!*(ro=*=CBdx_Y)4bB85G2x*MDr)JQ;*ltlqxFvUGY9;%G$! z`|T}W^l7*uDCFE1dCr_irm&YlhGzqndAqj}xR|!NVRB;vMY(7*#d+a+(uGtB7#-OQ z@0nGc%M4mYST`f+88s>bxPFUXU#6xcrBX?ZHgg+;Cb8&HP~;6DaGXle%vXghnu2b| zo!~gssDI^%!5{W*CA&nRXt5K-)NupAcADdew?Vej#~$!NbU$}%^*aFC+s>y9qyy9h z4B&lA!S+oZ^G_t8kC$k5FG@73I{`a2@H%bqt%GuHOdkL#4jyYg!5#-Zg>iiILg3m* zn-731DSswhO!iR%(APhdh9&D5s3xgBkX#bBkN^fCc+`PZrC@&UCFu#%`lD3!@qcj`rUSj9hG#%+VJMV>b{+lTZze&B5TU z3Fr-kQ37UQygC@I`E|GdEJEjC>;NYLR)O8Y=(=Z@fnWxP*%0bPR6uLrJqCgq7mfQSG9000000000Lsan4P000SaNLh0L01m_e01m_fl`9S# z000AaNklsDab7^!=_9E>u4K;M=DnBA&F|f1pD%dkN%t5O+PG^Jqt{z(rLON=`djfz(k^VLS@q1ViliekQ4uFJ2OmWgpH!a_Y><>gv0 zh$Y4dd4bPgt*`ivKpz zUm~sn7vGExAW{RK25k3>z{JP7y`CD(2DH-H$Lg^f$G6_#gQ4r!%OjS3P(@z;3tToY zUR?uq4o3Cdbk{dv$LHriz&`Zdih0=kFuncy}(z<4o&kJ;OqpvKlogBRxUwdTm*vfK6>W8b{Ds zmw&ZM#FwLZ8=wGxQV_w{y17r&VPiZ007+-SOIic)zL6*6M9w35gxy(pe^U<<^_b*U zo-4y(=1xEB!ns5VDX$fonR>7}J`!3&ls`t<807*qoM6N<$f`5MDvH$=8 diff --git a/graphics/pokemon/jolteon/front.png b/graphics/pokemon/jolteon/front.png index 83fae94881754839a6f08abf2a68f5b9b1b0871e..92ee1f72cc673b2341bf3026d73fd0ef33d00280 100644 GIT binary patch delta 638 zcmV-^0)hRO1&alc7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gQ5D;2Q z5Y4Pgtcy9ActHREi~rtINC<%V`1n#%QpLr^fPjbq0000000000R+bfM0006BNklga&%;Rw;D6)sjc@#~z?=Fc?-7!` z2cZ75fPZfwXH5e{*Pj46=ZP^0fbMdN6Ko_U5TK?Hy4Gx#fH6G*Nli2v)C`#C(XImZ zCW&K*{7K(Mf>AG_pF@9?6kUKcO+;8WPfyu=$y~e;N%?ZZ2aQSv$U=Cn`djWQq z6EJx$Dt28{6n}GlN?rv%S?fByOq1)0y|w_ap{3&A9I-A@0*Foy5VG~!LYgCc%*ns% z!WW{qZ1T(9UFu=(UA+A4g|sZCFb8ib<9*lPELDi@!6%o6214E<^y=|FOrCgt;4sd^?#%%LGC&lIEIgS((CPlppbLl zJypdJ{?zZg8F^h{!o583E>lOsx zqwb0T_HWbs6>3UUTP1O~n716mfQSG9000000000Lsan4P000SaNLh0L01m_e01m_fl`9S# z0006ENklW-+l{S zGoiH0ofuHabYqf#4%-nw>Nu(pjQ5fu()Z){zAt{ZVGqT8L6#eF47i_xKADK8P2&-^Wm^tLi6DX(*U9vG zy?1;Nz?bIc6Hvjz_SRP)TfwsI>d3<@_yml-tcyI*Xn%HTm>}no)WcR1IvM9?pNz4K zux;D#Is?(4?)=!hoUGjW(+5=0pA=6Totu^2#awh`|$gdIX;v{S>H)r0jvH@jq~tOmN|9& zER{e{M}IY@`4~$8=@h-$M)?gPV?q>=qD1ro&moM;R{`p?S3~X>i#x!RJ7WWo(15Q2 z+xbGU31n?QRmp6C%i}=0mu{TEdV)s_FX-Asmj9qk&VB(i^Wb$JurpeAweip$FmV0+ k2JET-h@sT?@gL#`g`uF7AAh{(00000NkvXXt^-0~g2bUIQvd(} diff --git a/graphics/pokemon/jolteon/normal.pal b/graphics/pokemon/jolteon/normal.pal index da74dabb8..0655e391c 100644 --- a/graphics/pokemon/jolteon/normal.pal +++ b/graphics/pokemon/jolteon/normal.pal @@ -3,16 +3,16 @@ JASC-PAL 16 152 208 160 16 16 16 -128 104 40 -200 168 72 -128 104 40 +90 74 16 +205 172 74 +172 139 57 152 120 64 -248 248 136 -248 216 80 +255 255 139 +255 222 82 72 8 128 248 248 248 -72 72 80 -192 200 208 +82 82 82 +197 197 197 128 128 136 0 0 0 0 0 0 diff --git a/graphics/pokemon/jynx/anim_front.png b/graphics/pokemon/jynx/anim_front.png index c5f4b8aba5e6237c72ef96fa51c733b844c16d0d..de426d41a553ced38b350b92f4f765762c32344d 100644 GIT binary patch delta 1232 zcmV;>1TXvN3D^mc7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h$VoLw! zQr@gF|MtBA003e^gS2Yiy}ix&`1tlQTK{u%luEt5F=B%$N@8Mr^H!y2sGiSrXCCO{ur0A2ypqyT_P03me#BES;@!h{$M=dBBCG^Q z^*h>4ZUzU`0D-f6L(CKgh*1d?TmSA@pIMX@77>&^1I3^d2L~e~$B9X+hvB zgFG`16r-F0T!I2DpMuIeCV&9s8HxcG0PiY0N_eKeE})>0~A2HR1g7ZH5bzD^=Y|K8+4{F zAtW6!8O8{DCxrBaz{}(Z7XYq+gm|e7Q06Nj6Rw@g{QL??F_)0y#V*?WHce2%g)Smu z+y&YONCiI-Sk_(wbPJcLA-fk^2$0uJ*t0e^Rh1Hw6APdF^0SOfAmAT2#u2>S2U zaROr?3NLLYf}xy87p(4s&N8g`3D>D;`khzQlzVV1pF_@(ODD+_PdxF&{}YdQki7%{ zSMR|2yWW9Q@4z$dmUjSu^bXwO9XNl>JAglW2d)s_jete^FW!Nz;hO3_^bYQs4~2IC zO@9OJzr2GCxTxH}y@RO@P$y=Yfj`aH73cf!h;~|ndNA`#Ee7N@C;-HJP=BFz zf(YutXoEmK2USa=6c)vKQiFLgB78}ClPog1rOL~c|49*fXH=P)(n<>;6MoBgX@02} zQ)ypZ5^yS}PB%gDT)~H@~I-R;J$0XP6u2Y|0kaK58@wTsZ)nxC#8)50000tYOVWDzeGC8>-m_1Leez>W5dail zpO7afB&Gfe!cQT2(ab=(o5=B@6HG1+Q0|`GI=Jx5r5K9D*ZJslR+H?fDg;Xh9DG# z4tsC2jUgemAdnz^0)*!QaCFv7W845B*axdxA$8BT4TN?nz1(jT^4tq{vNG(Gy4`HP zLYmHjBK)$wt3ZyYee&G4?H3&ABAt{A@ar_NMWRCRwdXYzc%Ck`PqCpr0V1%4Ov;jM z+wToSF@N^Wl8%&zr(O_{F#LVj#ImO7raL)A%Fg@dbr2BSV9D8OBhwinUH=?6Uqo+4 zl2U3MIc@z=XCoYaVv=Lpp=|)nKaUujM%Nt*0HxzDqqMt%aA?;B1|SzcT*j7jVC*su zbOkV(MvIWyg!;gk(#Z9^2-c+{MHi~=Oriw8kbmA($=EWHoY8qW)McH{GLalRw*VZH zM~GM~LkgZ?nUHVSdAH_Uuu&WURV)EgNvusx#%u6fZL(0WF#LZe$*$iFI>k~FUxXWp zvG|;bcC3Dh`CGYsgZOnx`Us1??&2=~d;CxALD^&v+JklWu%j4CdYwHO8|)#&?Lo`M z+kZoLlRexMqdgAbave_;>jF@Ug#v)*q*0QP*q z3ISjbg_%Q#!>PLGkM;yP2m#z4)W83jWf2lUVo)pm9tOBQ%+wtK9$vvZsm{e>0cgFq zs*-5~@Y$&cM$iux0l+TU1KQ=l{gz!J)qi0<2q;M7_JAC*gKfVd)$?aT0QBNW0EUJ% z@A?-^>htx4$n-Ic{u0;&+6O>yHV>r2%_%F5z9f0qKZ6_0E;attAx*rDZ(hhnLi(0% zzcLgZ?Zc2jiW0t=GCW81)~UCn>DYAHNJC3NqEQ6_Y}v2D3dSxqG<`G)->1T`Qh&b! zqxcJ%W4DbAld)NN3yajCq!QQ#b=nw@VVqrrh+-X*!t9>{K-rj1U}S~}`GAjh<~V$+ z0>JHIBrOF@Gk<0R0Aq6$ol5dV$OE^BPB)yv57(IkjE(s+Y9NK+i?@m>7e_y@jR$Ph=6kFNj#002ov JPDHLkV1j-QO)~%h diff --git a/graphics/pokemon/jynx/front.png b/graphics/pokemon/jynx/front.png index df2603da738ee2a8eb9f26dc768dc0deb693fd3b..430f9ad28ff536742eee4a8b0a2284ab91fdec8f 100644 GIT binary patch delta 712 zcmV;(0yq8f1=IzQ7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h$VoLw! zQr@gF|MtBA003e^gS2Yiy}ix&`1tlQTK{u%luEt5F=B%$N@8Mr^$1Wi41}e0p~aHE|J$BTpcg%&#oz9XrK99y69VJy_J7k)@8#Ti_#%857+Z%g z;s?_Z%4ekd2(H9<@ARYZ6PQ0oKMfbVvfvYFV*S@d3{BhcEkwg4v*QIZ^zHeQyLZT~eN82v-MNo)s6KoT4D ze$P1rxPKDQ14!uu1;AJuB7oUk2(QcMeP9_%PhCP-xJa&;N+@qe$R7xrrcT@easaZ( zr7GYYUjQ57+O4ef4?s?vg`6%{v99+}ghIGbMG;9)lDYxr-~&R=-p_!tg}Yja|G`H? z1xo)9kx?*Y$*mljSrh@ODF*I*}o+ delta 741 zcmV12{bRkOSbthfW8a&Zis`2v}b`u-<_j6X?;3C15Qx?Z_j* z=M#YXTBZpE)B(7`H?X#|fn}l&2X4^aw6>pa>lpxDR(H>jd)8jR+4wjE*jE76x5%@T zAA|bdz)S)%ypOMxYP3{-&gw8|(gbj~Zna`Up|slju79?M0DDPb5&D2c7$UH7+$%HI zLLixgz1x6h=r|^&k2pVD=>qJ8$s`-YJ~W+n`wP|d2(a+Z34bRvHv6#SIL>|qcvOe_ zTf93;j96>{y9~p&g5T4b_JEn%IueNyGSns6aV|_#F;{9^I#pgCg-JkSc)V*fSyS{{ zFs@Q%>3^bqnFQi7O!AkywC0~uU4P8l`{|ca;GCNqepj#R;*_Pon8Jv=yo*5X=Y|lI zbl>L)a6a+`=UxWkb1y&!p#V>T5c3+01tJ2x7#L5|CS)<@Q((k-YJFrvcs!Qy(5*X8 z6VXEc*QF5iMB$uYmCpm=y7NR~;d`MMvabu~hq<^kwp4v@Cu z-lQfX57Ve?VkRqw&(9?}n1;b8Oe(Nnvq3TzpT}_=**~%As301U-VOI1N;;M^FBAP^*`FO9)PxOp8&`SrterMq3gQ4h_)3rfRBNx0B$1M zu9HY*6`6ViWPd_;O)!0=!A22Dh77n(Z~zafXXT`)0O(T^)#4E77=KMoBIBs~ar~YV z=$3{djfRN%*@SP`b_GcNFibLH3fKVl?AE1Xf5Nw&C8?kKeiBh_jzDO%5Wo~POzklu z*w<;&CXk`4J|7E;A%LLk5ryas5%lW@0jNGkX}ggyhkv6jCkP_Lgkd4Js9kr5Y_Lsd zdU3rjCu{6ZXhq{EOMqr&2 z%xqxs<0@?8j}~9Zbg_);#@3pjE-5;|dKzg1U zMizv5?tfGm1*1opvUukFna(9Hn3pfAe7Mvp&Ej$J1opn03pba5s=U; zfT0HN|oo*q$xX1?ZnbOrTIJ1RT0Ag^!wcZG_qMSe;2l9C((Ag<% zn}1Vkg7BiRzC6?;&2)ET>Qi!7As9gNQlZD8Jds_}EWT+nLZ|>s^2+hk8|-{29YLiN z&U{@*{{B`e`kr$lZXO|IlX!VslHLxIxa%tp?XCza!~2y!A64{sZfr6P`$)xN(rmiE zu^mq@ut|TL`gBP+ZfP)Ontlst(&pdW-hcMCf8SmMqInI740sKQ*MRt20|JDt0fBqT zr2&!hOJ7ERPHjMF*?(m~q`_|=&H9|xfUvTE)gN6I)wS@OPw7}05V`Cx@=zljL27Sx*5givY+eab!R&1TE`iQ#-56 z#SZX69UBm1WkC1{*M;=g_L90kNz_m5*x3+&3UT0x*QSk*fhAX9k3v z=)LT_HXy`n=ab_3h5=#D!dda`ft2u$4Ty8$8bt9A4h@Ja@y0)>2XRZk^D++(4TvxL vy?@|oC$u#n&h-cW0ZzKtKY0Cv|GxbJZsI^Sw`bx(00000NkvXXu0mjf_#I_F delta 1297 zcmV+s1@8L53YZFz7=Hu<0000@*!cMPSXfwSNI000g5+L_t(oh3%HTYwK1Nz!ibW z;H9?Yp?xjbma-a@BZmipf~+G5ybQLbOJ9TIC6KvGaE1;Y8h)`%mGZRE)vWGB*StFWe2qSoPJ41pfGXH zI})J&4WNJs?SCO)ivY`>2Y9f(O$6GD-Pu4BR<;42B0djh5sN!EtgHao9GFGy?wJm~ zfqj7J20`%2RD!@WU#nnl5WrJ>F$1v94&lA4dBEe~s>qZyLEuf81c3EkS-!s;J)h;PnsM!oo)3PLWJ3Uaj+M-K>FUrXqDW10 z#ns%3G!ePeL)D^o#7G1}T=y zFh2#bang-5iQQgI5t%nWqn-E=AW>)Tp@06z_^-#KV2prA!T2YF5$q*`!KMTwN4J6U zOTY=P2Wop#Fs{zHfzTi!7^DWgKO-2qSEm;QP@518QUgj6X7nLyQ%4?NLm>+u=|!icJkGW#lV6+Ps@5G3OG&2&wWr%auCc9HSKdST1o(;DWKo)qlVQ zs2G?666%x3)VF@WDC!ARA>O$CEu>5{eHLW>JV@7o=yoifel z^~fm=Yqx9_(Y+gBg9PIl3C8OAdf1MJB~O%Q+0?MOMnEDMtH)HiqoF?tKmn`HUJi;Q z!T9hy!~|Fv)^5*iVrS6E3I?Sh!GEZG!`iJhEu0jLNC*Zdr^EwyreIK^9|8(&vRQ&L zuHEc9o+%iZ9`%o7As8$x7^2RPCR1rl2}Ve@yPmx(CIus;+I{~nnGlSUG#SDl#)2_< z6D9sIe1;H=`;q#?STOEK>JKCsK|X4 diff --git a/graphics/pokemon/kadabra/front.png b/graphics/pokemon/kadabra/front.png index a3e193116d153a0bd16ecbc7f7f83a8e001d3922..db50edf46eab54bc8cca6f633d9a3f54dc59c29a 100644 GIT binary patch delta 907 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 IM6N<$f_9WHF#rGn diff --git a/graphics/pokemon/kakuna/front.png b/graphics/pokemon/kakuna/front.png index 679c4b3e0a9d652a09af543e864c37ee12e777b7..0115ad4f9f6d07c6c4a9794bbcd122da7fb0191e 100644 GIT binary patch delta 437 zcmV;m0ZRV41H%K57=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!i!q*And z0QS{N|Mty`S^!!(06951YHDf_5D@?W{{R30000000000000000TR7)d0003&NklYR|OdKb?EGC^XK`;AmiZXB$jI8Q)&5v0$e^iiN&I8CVR(WA`Cqb^6Fn3IV($R(V|J0y$}2LzOYZ{bhkfWT>vIKSAX VMKuFCOP&A#002ovPDHLkV1g6ju&V$7 diff --git a/graphics/pokemon/kakuna/normal.pal b/graphics/pokemon/kakuna/normal.pal index 0e0f89567..91ff072e5 100644 --- a/graphics/pokemon/kakuna/normal.pal +++ b/graphics/pokemon/kakuna/normal.pal @@ -2,16 +2,16 @@ JASC-PAL 0100 16 152 208 160 -200 152 16 -152 120 0 -240 200 48 -248 240 200 -120 88 0 -72 56 0 -56 56 56 -104 104 104 +222 164 82 +180 123 0 +246 213 74 +255 246 205 +139 90 0 +90 57 0 +57 57 57 +106 106 106 16 16 16 -248 248 248 +255 255 255 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/kangaskhan/anim_front.png b/graphics/pokemon/kangaskhan/anim_front.png index fe0ca6cb14063c5b15b4ea7890179bc549141bef..d0b912052008276e9ce0024ea70c4e73becd6324 100644 GIT binary patch delta 1715 zcmV;k22A2j<%3`P+R0@Q)`f849ZvSnkI)SVwwQ{$>scLF+=<$p!`oMHG+H{e#j!Ef!x z@xx8N0!-Xyd}}Xnj{u+4)SQ`b?FX2r*~~|7A2Xll*A6gX&gSC?$^5@To;6GBLc)YiH`*CQ_OMsE^IFZLZ(E(cn6># zHsV?P;&Vny^o5?;Bq=&Hs00#`1tsnsM7^DLZBLx6ymu1HyWitt$ zyWlUt=6@=H&3f}r3V|0<`h@fW1NzJi0kGM4g&-Z-D1T%HI;S8JZEait0MgPyjDA?> z7K}4MC#0>zft=>l8U$J!E&y&nrDlly z?B*y03V(oXpCDlSlOu3_5Qb?t2PA@yAlu@1_65LRZftHz$qDI@xXlfyb0%YyZy#Jf zpM5_X7j6MM-STDPjz8?kzVD3-_X*k~jQsj^03JKGfO{7*Xqxai4(|WEpTd|4H{}9K zhljQ>olwmKZ@NowNB{_py$3> zKwUcn8hZoK89+8Rm>css5lYI2G@EVrsW8YhH{~-)?I{2V?g7140I~`?RVNQ1RVG~m zq<<0W5}+Oce2nw}IAtYoxaFh0W1liwu6TNYl7~(NnA6ez0-&W4R16aPoE_i_FjzX% zaY((*7Vf=;z)K9Wlk*CY+#s`cSCGQPtMrfonw=$ml~F{%)d)NWo`(lLW+4ztj_k&8 zC5UM>7j-F_VtCjK0j?_-IZKXJXQc)BdVhY*T`W>7!;tKi%DW1 z*_^9n{?-EwRyJH#04Qdwy4fo*o}0u`-R$=M8_ZwX{{s#F)`Rg*Ft(l5@;_--j^fzi zj*X$Huum=jLDVLSUOJCLq-3$@my>lR|7Uc~ipzMi4}NiKu^MeW$$wr3qa?@mM1K$$ zAdLfx`WNvXd|Z52^52erQb_`p0~?uW5rSqYscThy*YY1y zYG6t&TgN1unCsdZTzp6QZvd4%mFiqq(wxK{p0sl<{~;%rc%=c#v}b9Y0MG!8kn>ly z6v!M^O482X?^nfl?#}^~@?QsFM}PXDTXy|Q6DM|d)m-&yj4LRCC&E=0*qL~h z8Xy2v`r_9=+@K`32Y}X)1m*(dbmhsr74F{hbBP*j9veaFHD}jnfD}+t*Sm5z{SQ$; z-vTsspwGWwA6U-C4Cv*R90Ps9y2Uthle3_IKHEpxr!Us`2Z43rK%G20dVe{h`ll+^ z_CdPGuI~*1gmeh!z!kb+3yq-D8bv?$axR9AZ;du0sL5$w}a8 zAVd5Fpj+{tM*vCpx0;i#%F7c#uaqGwpQIFC4Pa1ngqrXx<<0h-JU=_&3GnKAo&h_u z@`q)|b_{P^KvDhN4%qhvPk&>0CWz)mu|JOeI0GKzNDCW&(R6nhLYD4N1l}-*H%u#$ zqI7=%5KO#U*m#~z`4c7O?tuGwQ0>nP1C*3^(ET0h{sPdG?nQcEPo*Z} zXX%a?PLPZLu5=Fo5&zxp$^NZyR=swnL_qIgdJz9WwfNWjYocldNq_wJrF#Y>@vj+5 z>mUb|il|4RR{SUHxG*qRRA)lc?%S5NyZ?FuP)bR4_w$?y0YJ^lOle%j|6C|VhN}(5 zYxjC(TRubbSzO(f_Xx{&m*}e*jS1dgKhF(f0rV002ov JPDHLkV1mP_CpQ29 delta 1770 zcmVds1N|yxTv_e_<(?@kYH%yl!G$>00wzUL_t(og}s))j}u1}$9G+9 z;mX6=>)Sy=cSgZU36|(694#s6EZtI2L^hB)dy!7Mi{v?7Du1p3C*7tvXE9i0`myitZuNS-n@yj%8@=xhwtBZZ*TEj#-v|U~@9cs-*c8FC259em+YgL`+Kn2k zf>#i5327MzHGlq)PbkTih*D}~8Q?fH zK$m}aiVp}?l7j;k8xMaJz%~HZ2u!N20jUAnQ5vX6M1SHfI|#&~#29$t9;STDkbk-XdltdOfaeo(Hz)|kij32nP;unL0s_Cqtei`BqJgHbSKx`r4J*l}Z$V9< zA_x+R5NENq2C#__g@s=FkTw+uaMMIF__+Pcoeu!qTL(hrT29};%`VwnB zj^DgIc$WcZ*4lFXgXP8hx7jW+hTW(F{pE70kAK=X$EbT1Ke7MgwdJLs0+AZpNd>5% z`PaY$2>^iP5aE!Bqzoi|vP7a41Pb1^ID;}MZ?zuz?e?``aCoQ`UI(~HDrZR|e=s1h zpo1BJ(4_RbAaVU{?HM47R0&85;4XOZ43Ol20$?w-@9h~tcr?G#`uvR$EhI3dAVQ)6 zxqku#`O-inWFDcOKzE4>fGYS3-7E)ej44+Dp-Ndb!NkvFKwc-^#g2b2I?DX9L|fSd;bIUnc_0u@>Tu&JB}a2?Rgu>(Mb#w&oUT=p}@FhE}0 z*&eW@A$xHjp=ksK;QUVX6W#rwXc^I^SbqTHr~Cw4Z2rXH&vJn6^Fzs1G0JS{cSOz# z7yEq5c$m3b2RP4Vc-@!fHg5lmW@&F1UA!deKweO{9A6fM`g1~T( zj6ATR^u&Ca?lBSVlLpT2t1#S+JOF?SlOQ!dON8_q+3Zf`fhV%5SlgvSLTiPn#7hBb ziY-m+I(SXy4QN`6m!8VxK`2xSfPXA*SZuslyyQg71KXr+dQ30P=<(IXV*eG6ZpcYm z0&ESyXnsNndx-|BHUORo3B-VWRjm8H$77wINP^k$^Bwj3DUzG<^66O2_KQ8QHs8dwd1<>dGE?0@!^|)9%u4lEq{i6`0?U$`5_15Rp77X`-A23qYgm;SbI|v%**9tc$4Zp z(CVOSuQ%g^Ww5*qaP}iGT5*sx@5z6IpHOHSVC5Kf0ga1j9hS}Z#u`wF0}WIUnuu0v z55NPe2XPja>^NuxlMQOSHXLF)4t<$SD0=t@*kGVNV8LeDt^0}0BuI#6>>))3BLGc-wF&?$w73pxTFcO=gZoB4 zl(H`EFj%p+%h+f{S7U&&B$<5B%Qou2a4>6g-NZ^EVQuGIa2V&beNreh3mg)<`g&-vjO=D))l`~2Bw%_%edGEl7l0Dqnn8{QIB6aWAK M07*qoM6N<$f~4L;WB>pF diff --git a/graphics/pokemon/kangaskhan/front.png b/graphics/pokemon/kangaskhan/front.png index 03e477946b398015cc9048746321a318ac479fec..ba1d27af6925cb0806726d52bf4231116e7696ec 100644 GIT binary patch delta 964 zcmV;#13UcB2hInO7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h7K@e(c zQj3&g|NoTk)tnFz5cv4`$jHdOlyj7GYP}d3-mHV(wAGYqi;!SwsRiX10009_NklkP?*k$VA%FbW25kKa{#F;`i%lK@ zHnxP{>gCrF;8jiK%=}g#AZ^Lyk?m#jl)est0jbGjgew1DAA;&*wX~^x(8q`&B0c~i zIsj19fA$}9M*ieA!2`fOBa}h}h~p;yN?@NN$NbK$7Xl$uMnHT5&<~4v*WUQvO9ylU zQhWl?&rdlS(0?TaC^1LiFh&A1`D3pO-1H0>^bFX!(&(Jo9Crt(j!p7sdcvLp1>~J$ z!i(Mj8iMIK%&H#=;vr4|;DCTl1p}b1K^$-zX#kMA>?anf$s~Cmg8u-D|EmLvd2=V7 zz(rKQp?*O?-cDZ73iFfM6}vi003&~Ab*Z=m~%_U9iVy1nIsRogSB){ z0O((2E`~BvCg^+l#&gUr)&(i|8bI)%^rr}T(d%EbA{+ucp9FA%`KUPr@Ir)|5YG!< zFO(Jn=(gz^>?VS9Ead6A9z`eAqr-{ZQnd>L&B6lU`mLHF+PjCV5NH52eT9IXPtL&l zA{@5e0)LPUI)dzoKj}Mwqbw}9rsRZrNj&xj)IF0m%F_$;>-G5@mk=HSy4~`yvEvs9 z^7(u&Av`x|&oJ`Ow*&C_;1%#3LIZ6Z9>>A{-=A9=8{uJGKyi4e4ciH)ec(g4jD`e& zaM61bw1&B6)&MHl0yyM6)FnUUYEldF#+8uDw8-VTrvb90F$WtZs zmJM|`ukPz$&~|QXcarL901!L_X4U~x1(T_h7f>gYDFNyVwFGDe0AC~h0=RW0H!SUH zpMU6UM{5($4AA?~jR2`$?OyhsXdCKkGsWTMECsmlJmln- zt4XB|@csUpU1XUyWjdW!s?=)TW(G_MK|KM=S!@!=$a0>N`Dq3SHa09L02JA-Va^7O m-%awUVNSjO4d$Qp6Z-?Z?mM_7MZsMF0000ds1N|yxTv_e_<(?@kYH%yl!G$>00UY{L_t(YiM^G-Zqz^!#_bd? zuDVTfPV6Egj^JqFBsz+d911#1XX*3CGE%H~=jU%`cW34t=Rcb(`uq?pomgJm8$IZ|oALg1)yHwXyD=J# z9&Eug1#W7G^{Vw1kXD{CT{p$M?ICpND7r$Ek{BgC+l4H32 zE-+p!7G|qsyNzDZ(JA96JB#1(HBivhtvW#OJb&JSf=B_NI8-(js%it(SS*+rq$%OF z)j8UroocU$x3+fD}U>RqMD=xbe~^7AOj80aXL+Lm{w0 zRRaWIa_yf?ETDq0zS7?On^FTNxTFxFGJw7Tq_r8KP`ZxLt1w-P1_%kSm}WKLa!h># zP=C~_su>r49Rqb;@u+G6rYFS`7@+X0TYwgGVKsE3?F?uEE)lwakcf*k6&Hz_An4Ez zz(eIC#dTno^8`SLmNx*OeEEW7SfK9hWe(iZs9w$^vxA@kywAd{nCXY6mBO@Q10222 z-|~p9S1kUa2IOIWtaEC9%3RDlp+7bfhd%j<%v-zKey_Jqw_AWGr(Sy?9DO{>bN|Lq nR@>x(m!JOKZ5jD*e`9|Dd?WlLM!koz00000NkvXXu0mjfsYJtl diff --git a/graphics/pokemon/kangaskhan/normal.pal b/graphics/pokemon/kangaskhan/normal.pal index b59f028cf..ebc1af260 100644 --- a/graphics/pokemon/kangaskhan/normal.pal +++ b/graphics/pokemon/kangaskhan/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -72 56 40 -80 88 88 -136 136 128 -248 232 176 -216 200 136 +82 65 16 +106 106 82 +139 148 98 +255 255 148 +238 213 156 16 16 16 248 248 248 200 200 200 -192 144 128 -136 104 96 -168 16 0 -216 184 168 -184 184 248 -128 128 168 +189 148 115 +148 115 106 +189 24 24 +222 172 131 +222 180 213 +148 106 139 144 96 104 diff --git a/graphics/pokemon/kingler/anim_front.png b/graphics/pokemon/kingler/anim_front.png index faf8692edf379e9d91b2c791a810a04423bfe639..d2544716323cc38848a8eca68f3c8517dcf1ad1b 100644 GIT binary patch delta 1375 zcmV-l1)%!R3g!xs7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!huDG2|I zQnXr15D*ad#fwTYAl|H;b5ammK{5aK-lS?l|NsBJz2*P_00000pMk{1000E!NklflNmtEM6{aSg*yy1JFMs;C+h=^n|2#tYp?!=$ zBBU5o`T;@hQ=;Lhj_;U@y#jhdx<`ylztnsOknRS!BAEG1X!e2V#QGFq=9dA)xKGd% zSF4`@f*zr z5QlM|20$hBfa*Y7I{{#r3b1(&uti5|oa(iprid6HYF~p@7lHx;#lB*K2q9BTR$Dx5 z5d>lb#PE20$+5BGlryjOHh?$_-#hI)Ug8(zbZ7?3O@%ojf)gm4EU*zF1TDMbVeLwqC!kl4owz?uYv4tueQ5!a5S zy#bIXvb{huVI*+oT;Qz48pHFMS{8!*Kni3^DOQT)_o1)DQpznLSx*exZs8Zc1AF6T zF&}oGD}PFm2@A^y0Q7wR(#tmBs{+KwMKVo$_AJ8?85B|vp1AnbffR&`3;-arX8VP) zwjvaOTnDxrkAzJ`;yq#9Fm0+K0Fp!2TrMDpSy?Ozyd=T`y3?7r9Xs0VW|s5WGC^4Z zNuvi;B494GN6_rZIZVmf5Ec~1VnYrS%rS%a?0;`c$dp%v8+wd@C(K&7x3}_Cg5bDx z5PUCkxPWmJ0{k28^#BMqu^6Hb{UzJbl0OiTRx7XmKqhltvX1HxueD<(5Z408_Fi08 zq||NQYM*NY{I(MU7u`5QqcN*wwJ5rAs4hR`opGX&?kVOxUs$xRNbY;bATm4TVCVdI zhJS*k0y}&26-xfbtIeewpYa)gas(Ui+pn(-ZvxtTa!S{o#VKI-(fk@9z6I#IjlTi# z8F(v=W54t&p=+1ksKa0%!V*7U-!S`Kw9mIUVa>O zfOq!5+VQ;!2zCEH-UUzxc;iAaKsW(hDStS@*Kh`yG;_8$$){ifq-zC-u=zCv>9)qp zK<%Z!qB9rJ@ktD5*Cwe%0O9COYI6Y%Uj@wek-~+7goaI~X~Vdaf!3AHj&Fc`42V1W zi~ZW<2L&V$rVymUa~IX=7y2+{bZY?6*m9y#PMd(!=@(9ZU~4&%i8KOCzo{;G{ePm9 zAD9msM%9qW0la?Ul-I?1CS5R=@(vp zkhc0@tA*8pQNQr=gEmq}fF`1i`bCu=@FA_IwEp`55UQFm=@*;)fS&%q9vTp>3XsKDEIa11~Ij6eqcqLUwVD(~$ElV{L)lh-ds`9aGCbzlap0t9*eVw4}W zrPlu=qJ~&q81#!(ekewfRH-=P*KhqlszIB6F~|=pK(Oi%yy*v6o?3=fl~^3~izYvm zb~gZ`KwK=<3ocIBp;5nB`BsBm4002ovPDHLkV1glifHnXC delta 1352 zcmV-O1-JU<3eO6V7=Hu<00006IluvkbC5D@Udh)6IX z*r=FrP!L!^F!=D;plCq&`1rWE-~a#s0000B##cfB00i1eL_t(oh3%Fxi{nNVfJaz` zO55^50++%g2d-RcWZ2>goi(g<-m6UZ2P`ax^aCSq8xsT)a(}gO&6Xhs8>QL8um`R} zQo2l;ACosTl5EMbwn)p7-X>$nQhwb^QNB>%IW=hwbwnOxl-lEaH|dAr~j} z1Y3l7>hl=mlW+tdfX)rZxDl=cUtvscx?d8pJXV2GKPakUK^lc?7II56frbx z`J}mo0;~ccet)xOog3!}u!u?QIxxPmFcmQ*0Fg)|2?txFJ8WS~gf6Mhaiq%%UMR{#*B1WW;3 zpw3V*0Kj*S1Y~)1llX8JFsoUp-_=A-d}3eCZzsjxbbqtQL}FbHcl(~^A}s`9IDc@< z`s#ck_6~sSbWInT;m^bzK0fxUx+GptTw+a>&i4RVNx-ZQAn@MUa7X%hNa2JbNNf}5 z+s7}}5e5tG#)jVy$1_T72$E3Z3?3&HkVL3&^>NSnentiY(78`A9aa}DNuIRJ)o^b^ z6878Q+<%3!iwSY8>IilI>(e)@_xn9m_q+Z6a%JSO1Ub4!VZO;$@Bi5UiLJMv07x>X zlj;r_=>mo8EdR9M|Bi=$?d^2MrwoPF0$H{JBFlZJ_Y=nNd^%lI>ZORH3Wy?Pe9l+z zu2&de{xZ$h9!h0(RfNqt=8J?w8o>%%m#Zvavww68TQ7lVy$o2wd7fvRG|lon=WLrK z)e=b-8C%Y{AmmtcP7}7}n_>Z;F|-VLl0GYh^RLk}^RB1)qA2rvfsAbwJ>LTX1KyTf zxOUrIE@31Laz<$o!4xFIBfw%&f#oz0#U8&-Wx6^QKZX}TOjgK<^JNMgEwiNwzo!(q zsDG%S5eN4kqDE5PJSsj>dN`sufX@j-=ZEegV;!{sf??hZzzg%QqjhM#UauAC!@n?X z1H?ZyIcXvd0H3sgCSaWhI{4oLDutFT%Z_z!2^FDb8%_aO=emCdoOH`#Kr6=Zj7{(v zK=j1Xd_KRMoC9VS^qcveckYoWfb&&=6n~snpbyP#-Udt*aBhzh7}S7H!-1f)Tpa@) zr{O?4wg9-TfN|4-bZigiw{~d^(CG)Xek!It`thOCmdjW?J~SlCV3X0~ z!y$#Cd9-5@%iuM@aZ7;#0g-+Ifb+2mp<%zgdrCmSFB0GR_+?T7;195{5)kDViGNQ< zlk(DQmMi<85)kDV26WY`CxS)!5>Nsn{lZ`{?==7=AQR;m>@W|SWy>U$fJ~%cK;Jx6 zMgs+syO08+{9?L0uAFHqiIM`M{9?(Ujsf9{rGS86xW1e17Ds^Q_B>Pxi1dqWRXdvx zqVE&}qWmJR1A2l|R0@dli#mXU5Pw>0DIn4>*a;9Dg@7o(r~^ij@gyk(MEQkR2Ux~} zpcIh8FKR%vPJ^%zkisvZnJ3u9nGXaplr$^>7W!4;TKDB9n#%4yB2FKr9ltrrGN;( zP!F1sN`F9MEbFEOc0004VQb$4nuFf3k0000mP)t-sn9!huDG2|I zQnXr15D*ad#fwTYAl|H;b5ammK{5aK-lS?l|NsBJz2*P_00000pMk{10007`NklpUy>I;@>EHt9QZ* zpxsv_umyl{2Y;ZE;%kE}KF9KUC1EKz0Td-rDtQIO5=!J9K=y!4AkNNLh9!*qasVV@ z56A@Ovl)QEBp~)}0Bd#PV$Ns5rKlJmuFqmU1#$pM*>}tkL{(<9=EG^NfJ6gO==J)s zwPVMnR$clX080vxu$Dy|a@V-#KUvl8R z466ZV1>yYg3re672#VJe-cydCD8q6T2Z-s*37~EQN{8MwrQq2y+h+iLl9&at4M&1j ztsTi)t%atEXBWtRzyjOSd$fYLbGYq8>wO@YH6dc$=oi<(4%%AeaPfD=3AUlBeE=ZS z^y`l;;eXNrmSZ!gfvBK}XE5R6^8}cT3kLwOU1xn$ob3n)z-!WY@mSd+V%ZB~ zz_wEl0Wc5My=)+uthX>h8w(EbNmpGb_Nez^w)-`lkm>;T>H)P1RJ&Xe+#S1zEwu(B zibAvqTNcQ%L$CCM6ROk&u?b%j;03#y?)A~0B!3uA`woKZZp$5v!3fCjsP_dBVq*_P zhX1lL4D$~J*c$EiA8@kfkr|nfF1=GHh-L$9yxYbVYxR6?>T4RX9Xlgv_rWom99@;@ zMfbsxJpSOj;zk#rDb;#@uw*$=HrG3bNa*0f#r=1}!PbF`+58tuedAx7$27k2jnCo_ YIulzPf3VH&RsaA107*qoM6N<$f^-OWegFUf delta 813 zcmV+|1JeAZ2Dk>07=Hu<00013M{Ml?001yhOjJdf(4c@Q2>6IluvkbC5D@Udh)6IX z*r=FrP!L!^F!=D;plCq&`1rWE-~a#s0000B##cfB00P5FL_t(YiS3dxYuiu|$DgnU zjkc9Q3+bSHDP)XvGI+=!qDN$$Os4(-g_2Joc%oTMF+3qpg?}y?O9e9OlEIKbr_zoZ zJNCo$o-8Y=(>hbP9ta8D@7@32|BkW$@$bXvJ^}Qd-T4mS?h+nHf5RdkKguI;#9;kB z0C*&aa1V5*0I((3pMTK7L+wO>vs+9Nr>**Lfbz@xvy8XcLnSU`Nz`1#v7|o2SOXr=z zM4(F|N}#uQecA#lVSV0*p7(Nsdm1ohh#;JH(UiI|hPhL@)P#HR)t^~k=7=6|M`+5= zH_!5us(&JPUsTmFw@NC357uZ@F0=gPd-VhO!36;-i%o2Iz)ELqRAl8vReb~JXXU23 z9LH?b7Ra(C5m^~}y>|ddp%@oJ1Su1&1(JkWZ_E7XJO>zl8fQho(%Rj%!m^mlnUd5- zlmj2;Sy{yCimtu^l423XO3Jd#mT8)mWhvv8Qh#j;l_l0n#!?e?6jBNmujH~RAhVb) zBB|2bH6rC*avKNd<8s#6T+EoYN|M_vA}Hv!Skc<8%DRN5V(OWtQ9>zdL?(pIwF8TB zInsB$8`tfcLLa7wptyF(nwN`|II-zgD0w9WaY^H#HIJ?WCM?x%p3q-H+>dA;(YK1( r-zLKhm{lY@0L{d~6TlPs|FMo=E3oR^WIn*J00000NkvXXu0mjf)pL96 diff --git a/graphics/pokemon/kingler/normal.pal b/graphics/pokemon/kingler/normal.pal index f04446375..d05177eee 100644 --- a/graphics/pokemon/kingler/normal.pal +++ b/graphics/pokemon/kingler/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 40 8 -248 136 80 -176 88 72 +131 41 8 +255 139 82 +180 90 74 16 16 16 -240 192 136 -72 48 32 -216 168 152 -112 80 16 -88 64 48 -248 240 216 -160 104 64 -248 248 248 -184 184 224 +246 197 139 +74 49 32 +222 172 156 +115 82 16 +90 65 49 +255 246 222 +164 106 65 +255 255 255 +189 189 230 0 0 0 0 0 0 diff --git a/graphics/pokemon/koffing/anim_front.png b/graphics/pokemon/koffing/anim_front.png index 3a5446cf1baffe97ae7580ca045d8345116964ee..fbe8c25e6ef05463dea867e9b8c4f26d32011dac 100644 GIT binary patch delta 1081 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 P00000NkvXXu0mjf&XnHF delta 1073 zcmV-11kU^G2f7H57=Hu<0000802kWYx9> zfcjHg(Tm3#^lDKB%&EL6c|8-=J5$tCF@A$Ot}kcxMt>~Pwg&1c&%t59Pb$(0wdyimn{bu#7;nSY649rBv&{T&SgkuObRTW|WR05NZz zKExpo@n46EP&07U6Ce0$Y;RL>w@&?F=KMAX?MahI+seHQU);L>1I)aYf1SBO?YLLS zzpgpZxLArL>iUlnH+QcX+;3sH+Q|j}Qv%E?0OG~{?AKr)5Nh`?GC%{i7O)>>z{uQh z#D6&87vJa+a(6&(|6vB?G%}rH7lqu7Bm8XZb}ss&4h0aSz9|F9=?M96?H_+|kn3yP z{sWm=cYu(PJ9qmKnZzmj4}_kJ2BeU?tvpKJBk2UmQz|-`LhgM#S-&W$J)|pGLfgvS zOxC>d*`2WNhR`MXh1|QHcmo0}y#dDEVt*@l@VB>7su9u4`&{mDGUNFk5R+*pcVYjf z9Yy8&Rvd!;x!i^QZ=)G4J*1TY0QMJh2m8;!(K2wGu*Bo`7XkJk6EBn+h!#vUBH7=2 z3;D>v+B29f+n)v`mih;S!0Fhs{h>&cO)1M;-VB!Q&tyQ~*!i<|_K(*xP}2uY*eV11 r*FRpb8v%uQ4*<~BJOmu#{}n$0BqL0c0004VQb$4nuFf3k0000mP)t-sn9!i!IXVAx zG5@4uoGAzp5D;2HAkD0cb5anjgG&GA#rXL6-rn8-0000000000)brY%0006CNklvDu3422C62-x?3-kt*s zry<-WFg4vIu&NOFZVVy(7U5&S?M}Qy*qxa-a-b2~+~eN>n1Ad;@DBcq0QhxmyAZsi z%Y8Jz64oIA0Kz4JH@gv5At->_ES`43yIFk>d%Q|nAnW)e*vU`YEVF%x!nq+j2svMyBo!``>8Ct0YrxKHL}}-BsiBCGK)BBUw1_K z09WD=0YurgwicwQgbV>;5)}YGrWoZMfDAFsf}d;%BD)lI!QTdmY!4j!QDc2TS`fJk zAChS1Xm~O%*(0Qcr*)A;8Q7^BhVG{VBO?H<9c!4cL8v>o%8I#Sl_dL*>zZ+{iS`V} z?Mr7^uS|>Gw!EHmjtP~Jocs6Dwy&1(9LM^YORYE`E#xXMuG&P)mhHhTUD6i$=+UFU Zpl`{56HI23u*U!Z002ovPDHLkV1oG@BP0L- delta 679 zcmV;Y0$BZw1+xW^7=Hu<00013M{Ml?001yhOjJdf(4eqbNcf0Q_^^SbvkM4m7t^m6B6$2L~n? zP^|0~h^9AxO~&7Y-}if+1c2xImj&TPWnV$KT?t$w z2zwQM4T`E)0fY#`t|9^l!bX(|*Z&Kk%EUpVSKd`l>7>9Dmo?nYR_a+m!T3eC9JuFz zTBn5%vZ^UfmVW^SBZMz9pm7Fxi4baaGXTmci&LmbR_3w~p;OLbfRIH{%RT}PIJC=v z8@xe>O?jOzEdVM+RuGU307Bq~zLzT@r1VnY(h7X=Ap^9xLpn`o6Rv7@3P3Bcfp$Dr zr?XWVXasptax+QO>jI^d?k{28_4BT7Q;8bxDIMuS|9=dfA`nZUkMXMkYKtRu?n{l= zCqTcmLH|3(9g&|Ui1-VHgybHxO*m1Lq=n7q4`hn{k6gr;e-5`J>L=GfQ8P&%%sMbQ z=@%~0;Gd?C&E($vb)7tjhQV!-Z_a}8HF6(O^S+%V-+T$|7l4r55F4gXcg&P8A-r|! zEZ&8nP=E1y5pmAM2#m$fa2=KagGXUB=X`m^INvUZYdWSZ4{SN1jLrEz=A7S!SA>M~ zXmR@ghOfYCL^o7)X~^h1N^EZ*{vqQ1PG(7IL@5o|G#ZJU^MvYA#apF;jH6lFryC-E zd$V!Kv!IUiYGfo2nWWpA@Z~*u9d#lqlP0mPRUmy;1hJ@WKi7X)zX4vqq>VyLs+s@* N002ovPDHLkV1gGVE~Wqg diff --git a/graphics/pokemon/krabby/normal.pal b/graphics/pokemon/krabby/normal.pal index e95b7c742..04c1672e7 100644 --- a/graphics/pokemon/krabby/normal.pal +++ b/graphics/pokemon/krabby/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -176 88 72 -248 136 80 -248 176 144 -128 40 8 +222 57 57 +255 115 49 +255 164 98 +156 41 8 16 16 16 -88 64 48 -216 168 152 -128 96 32 -168 128 72 -248 240 216 +90 65 32 +205 172 139 +115 82 16 +172 131 74 +255 230 197 248 248 248 -216 216 216 +222 222 222 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/lapras/anim_front.png b/graphics/pokemon/lapras/anim_front.png index 394a3029db466d996d13c208683282a77346556a..ac69884f41db1142b6e996fd26b3f61dd68e792a 100644 GIT binary patch delta 1219 zcmV;!1U&nR3d;$Q7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!gYK~ew! z070bYIeVmY#rF2@=2}WYq?DB2#e<8alu}Y^)y>85*r@1$cmMzZwrYtl000C@Nkl>YF2tW%~Y}r!g|37yG2rb@Xkv`1B=%sDW;R-Fm_<#22=N}t@_+9)oO-eum zi{dAT68=iRjUp1jIR@Y>4TTNFQ#g-lB7hqOP&iFICBOve+z2XbC6d)-;sz?;Rqzp!D0i^&dk7Y3=K;On6 zE(H{B0u&I%5AWfx1M)QpA$*lU`dY>Dy=(!|dmBKDd#r?~i{bbTNbv;V!V>2B89`T& z0p9ySj1c|9?I-}3f*9aau#fTKcIXPI9z`L&rAs60YO(l0G|nA z_Q)j8;l5T&0-MxSkQ@TVc2Doj_(Yf_ykUJn zq(}3+Cuq+HJU$=*Qh#;^C|MBWu#!Rm?vgK3(0~4y`Uk1FGPZTaIz4w-4S;X7%kfIc zJ;cVrDO}=HU#45t64o-=q#Zb44rzf_EJul5N~=bfvF#26q!DRPuY@yrZ3p)&&9a#Q zhx1SOWGh+i5cOHrAWrU3n-x|DcTROFH-s~wG8MQzk3R+Gl52S*?XogP{~r&>Z|VnY ze19Wg%gHhqy#QJy+dx4+R327R&D4~94AsvnFm|EwSWq_L2`us>ez5JcDshzI`QMnDAi4ku(gEk|U8y3pZhJvOY^>6Y$L%*Sj~@q&%^>H|7$sD;I$)+=vhcq<=~rh!MC`b6s#@1gq+b zu%PMe<_@+_m*0^0W>%}y?#vKKicBF6=DYXaj7IN$p7&p^!_d9oqbKm`6D#nDCZXp) zO{~PDgoWPIe3V!+^%6!1q4|i}07i0pLZ3%0Gw%CGS)Pxc(;&3~-=0KgIi)mWmJ|_H zE3pFp=_vv%V}F)o`i#=E^FFif!!^+)KYqh3C2HXOr#Gzc1m6G30t?W?3JH{uS^yu; zz@UID+eQ0KttSgR0O1)C!UlK|OAm>dFKmbKqV$On^UEtM;D>}fyA*anK|(D5H2`15 zL16`k0ScYhOyu!;en6mmS^Jj&X@7re@T#;3B3GEP#`2C76Il<<hO5veHn{2p%afJE1V5U(a?q9K}F@`<{3GQ|Cmh%M5DxCdfd z1b>%%5xOA0;d@_|2_g0&{Qq75%r6{E`Gr$J&@UVUqWr=sAm|qk0nvWp5D@Jb4gsnC z!Y&}SUpNE={lX<6J@ktsw}70TUocw&4IKXhz1#wzUz|J}K!dUX;1`K%qEK6?_VVK%=8YM~og<)!M0n`WI zG_`j?=E3xbJO`#cK1{vLizSD?@%gO*7-|4U;+T{skwJik08Av8CXoRkW#38IC9*UC zIJ?t+Tu6Cy5toxs9ij$swErAK9FspRSwEE{F0=xdV89SJ3q}LrN`o#DyxJKE3I?2axZDW_ z7>EY$lz)I=z;QEtLLd;h-vgu2{(5i+RVu+q`x$8j!h1}&z%7W$83N!aFvRQW+=F?; z=1M@6V4#73qwMbB2x|FJ4D~)V5_BngPY#rU%!slFfhMwO`vuY3;A>>w5FNizQUEBa r4WtV+A%`l6-9S{f%xNH7?}7C<%Yer=Hj!LP00000NkvXXu0mjfhl*Iq diff --git a/graphics/pokemon/lapras/front.png b/graphics/pokemon/lapras/front.png index f831c07ba4db502ab9bf2eded443f1ea99e95d8f..d02409eb99a32a60797ca804255845eeb58b649a 100644 GIT binary patch delta 767 zcmVc0004VQb$4nuFf3k0000mP)t-sn9!gYK~ew! z070bYIeVmY#rF2@=2}WYq?DB2#e<8alu}Y^)y>85*r@1$cmMzZwrYtl0007sNklvH2D422^>Fc|#)ue-V+z>Vz~cXwv>r)g)-$B{&Y`hR-;X90-6(>v#kfDc%# zcOF&#rcbj70(dU~d{Y=~LeFvu=NRB;0W9Z(9RVDm_frH!@Zy{Zlna1|DF7Xcbf)Mz z0Zix&*80gdl0c;IH-er%+e2si5d5_N0f1p)06YgQ7#RR_0I>35t$?2d z)Gqp(eVQ%-`hOuHrS$;-?08HRvjDXKG?7@okb~J-z!o4$EXxA}{B3;6C}8;`Km)OU zx`uxpP_IGG`Bw($YgOiJIRZ+I&j2>uODEh-M)VaxdIrc~$syb$SOygkW6aFRCEhGY z19%b%Ad)zia;ngMVNdFd$Y!4iSYU9^#rnN#=**y=riMi4oomf&>Yc7U_H2uhH9jPjW_vD1aR z1B_7LN^T_T+KBeIBgP15FTLlD4RQB+SH?GjQ~AL9f}p2)+Y@Z(1BovP0NT%v0L=w6 zJ~C+pkS+Pdg6+S&Kj_5OSX07&ylhwlKyI|JdUzw$9by$R$yHB#nU!iJq;{CI4O}jV zu0RP}D{*HjnYzXLqZy!!$k@Fm7jPOw_LU)RA;3rf>7K03)el5}s|Liu9U5I>XUOK% xQ@J1<0gY+E^}hZPSV!)Y|44VP9;*LY`~j%cDL8rP&~X3&002ovPDHLkV1ljtSHA!N delta 786 zcmV+t1MU2a2Au|w7=Hu<00013M{Ml?001yhOjJdf(4ZJVPzVSJK%n3_c%X2=@aX99 zXiz|qh@jZOfQX=wP*7;7u*mS(sOW%r00011bdLrA00O8VP^VPocBq%Rdk!x`)sX&D1SJ7E#IrdoqUb41e9ccq<)>!J0A@f!@|G zDd>Oc-BW&9_A`|B1|hhQzxTa+=O@ScU(xnA=Ud{4o-SB{9TEACyBArBod|trFYQN` zO05V1K%{-N0SKu$5{CgMYxC}lBu)E=!iz1y%cI~V6+#4PDG>-0kri-zJq9pAOPekV zadO&0Tb{-wqJMP%94!`W;Pm}Db~XYZKcQy+WLTmwC>H*2X*fwYvP3%tW0LddL zWdoc5<2I=4iLD7IhW~EjTwP?~Y`y!s7ML<12NLqnHx?ktwUoKkrhm?g1w{*0>SA~k7SaNEiO#j& zKhtut+6#B-CBstd@0sQrjRhwQ6O6H~^Rkd6Gk_m{6ByIdbV7CkB$F3s>wvgRF3O9r z$UiiU9@GG`&G|4K=xpw<2ZrUakaH=sK?A664S-=Oi-nYfd85SZsv2WV%iS&L=O&hb zXJ4x7H-E++0j$pg^4k(nRn@Hl5;`q9k5Vp{HiLl*`Tvthl338NWwrwRLUz%WgN4qz zQU*yA_{pQ}Byy;WAdwJ56R0B7D98fn$!~rG5KQzU0KALjk+?E7h^ViM6~eo!CCqK< zd0vz7(nla-4X+d26P$0Q>D#KV!IAcbh}#pBpMQ-w|GY2W7@(SxhvSs4?TBuS3C`4r zO1K^NRo9@^M?5Bl2xGdEMyAoAmZIajRUA_krr&M2n*-l*Go`>}=^`>JynfsFGk{>G z0GvBwq#lTeDY;G%b%iwfLVHM;ZesWan5U_uQ|2F;r`*LG1so0*2 Q01E&B07*qoM6N<$f(z+vy#N3J diff --git a/graphics/pokemon/lapras/normal.pal b/graphics/pokemon/lapras/normal.pal index cc9c65f46..52f74091b 100644 --- a/graphics/pokemon/lapras/normal.pal +++ b/graphics/pokemon/lapras/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -24 64 80 -8 8 8 -64 160 224 -56 120 160 -112 192 240 -232 232 240 -104 80 64 -144 136 160 -216 192 128 -136 160 144 -80 80 104 -168 176 200 +24 65 82 +0 0 0 +65 164 230 +57 123 164 +115 197 246 +246 238 230 +90 74 65 +164 148 148 +222 197 131 +139 164 148 +82 82 106 +213 205 197 240 216 168 232 128 120 0 0 0 diff --git a/graphics/pokemon/machamp/anim_front.png b/graphics/pokemon/machamp/anim_front.png index 3bc4a85942d67108e22ed7b27e77b6233be662e9..8778b19b1864db339d2378ece38dd97643adda1c 100644 GIT binary patch delta 1465 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 M07*qoM6N<$f>i-|WB>pF diff --git a/graphics/pokemon/machamp/back.png b/graphics/pokemon/machamp/back.png index e5039056367f7425a9147ef3d5bbde2bb8fc4922..a5744c58c286329554d1ccd0a30790e035cab8f0 100644 GIT binary patch delta 739 zcmV<90v!Ft2Al?v7#0Wv0001;w}I>c0004VQb$4nuFf3kkva^oNjg(EnO-Db%9Kkn*gK-j_C{M(%}y#=g~gLIJlc>Iq4b`+|`nrF_D`RyLNv!OVF69HH@Bwczpr0%gOt8NnHUMIg{1z(#e(J%Ip9NfGGr zjd4dHiIxEb0UfbU19`X-7;t~Yn-vVPBtT+J^9l*j{*=Cyq|~=fJeJ5 zDe6K(KY^w~M33RRu#|xQoTXvI9G^>F5MUYLLh1<;=KT}Cb|$O=4&m<<;!80Awt5dZ z(m2LfzL1H&_C3=&2YdjnBAoz&s9(1Ltt32;gQQx&h4Ibf7NAuGKoNhSBE-&b2}p+n z%uh5h7*NH}ig-t`VE)-p(7dI9eTV#h3$R_?&28%rC=7V;A6O?rb(6>C?1Un9d@#bsD#&R5&amw+>XEm8YH~-aDG`h0h$%91W^Ka#etv#M@9$ezS>!u1SPNw zFg%|5#0t3p_;GaI3B-RAdJ4&kl?`#sb$}4E?cf0IjBR^akX%C_ARMz70G}dN6pkzF zYF~N$bcP({`z-YX9Lcu$bOF!|wh3u6G8rwShJjuooB(+^zZQgYPggT78DkBg!x5d( z^G)y$Iyp%R%>(v1r%8g!@ZNC^7%lBcPs1Uh-S2^a6Fv&czuTwA}Ye#bvI{s7w} V8^Z4t)!YC8002ovPDHLkV1f+3OX2_k delta 780 zcmV+n1M~cx2E_)D7$yV*00013M{Ml?0004VQb$4nuFf3k00004XF*Lt006O%3;baP zkuDko*wB!XOB;VOO#Ddz000SaNLh0L01m?d01m?e$8V@)0007>Nkl>!stT&gdx@mu2CGy>_H*SJPaLQcN5GkVr_xb_C2g4wiOOfoR3VNTvtS%39WV zy8@U~d$%0}GawJ^_3dZL1*`VB#zgT;tN4A41FVl5&4UD%d7I+)<8ciJG-v?|+*9@$8CxEC7*SxFE!?)=Opc#1816}>=1OTHUWw70k?)Ue{lM)WdCE&X2 zny<$I55XH{C=8@~qU)|1rpOhL@;nHbMc|&gpN~hAH2i-7M2GF3@2iWaVF})ab)Y$p zOwF&KU#h$s0gAURK*=dCx|=^)HUbPeDN!KHth;}km#E+!eCPoYCv8d%7E#A83j{a- zsEh+#fYfNdgzgH%$N}I&9!suax=YbG;qfmDlq$iKxCAtX07Rh&h2%XNE$ji1wScK& zUNj!gu}aG*Fcy&8X%>xWy~XkXsG^M4!A01RVUJjFb`LCq0<8>+GI5F0bONwoEU-*o zH^hHd?LCKhwurx_0HJxyE*S!G+jAJ-3BZ|!;w(HunCgs&5_cW6AbQ>$mef~}sqq%j1=R_#u;c~Ls^0iK z=E6g&u?Wd6QcA$aw`>hQ9X5%Hhs=QQ&FfT*!cy#(S~~&A`Ou_sLx2zD-q+R@q8UgX z0W>%|Ar3weCVdL5?t$RS06;jx=~JNh2P}s@5L2h8Dtjwemi+~-E#HBQX#m0i0000< KMNUMnLSTY{HDM$G diff --git a/graphics/pokemon/machamp/front.png b/graphics/pokemon/machamp/front.png index d0aced4d272fc6c84d5a5e36ddd15c8a67458ae2..205ae86402254b9862bb2201efa9ea6833b6454b 100644 GIT binary patch delta 983 zcmV;|11S922lWS#7&Zt40001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!g>QeuOP zl%%w@0001RU`R?zVyv7&kwF-L(e#_#000AXNkl0MY*g1RxM&D9lg@-=VWdUg!hcgg>q8KLtApu?V z*Ok?`Z6lHZLHJwMM7uhvEN#R;+;X`v;|tX6WX2?9r4*R6{Fvdr^LR!4bN zf3i$dFa@mph#lDG%Id9ugy`xy;Rqa{fC>q~EC5tZR~yQxn0Ex3oCk}<-p_SbeJ_5I zD!|xDen=IdOaU!@1o07{-m+I5wijKF{NRceg{iwo{U zS_pSQMCwwWtX}CUL|7xi-VNi%*KCUeb*Y5^Q2t>yGyvtIl43A_zSu)6wKf62iT-K; zo<0gU2jh!eP8vZDo8LA(0_0P{T` z{Sxf;)zSzHyKw=3Xe@`0ZbVTP^_m{tVD&7jaT%w(9piFn9rU%(d)GMt=w-1wNdlx@g)5rDZSbsqu7Mf8725BEdoQmF#Xl>7JlJ{v#J=phuc8r`}ineL1&&scpqNMS6 zQxHxoL+#d00A%fq9?_^!#ZP;l(=3P+K&M;pKUU{M zo}%k>BG`OA?c1&a%mZjQ3BWbEyR>$&5`DOmlHx$YrrrRsjC{Bp7qq_GJ2=L|Jpi;m z-uX}QB={kJ03OvJt>F}4{2;gsTOaqfmHG>7{U1iJ8a3^0hEM%nbkl delta 955 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 diff --git a/graphics/pokemon/machoke/front.png b/graphics/pokemon/machoke/front.png index 0b84d0621666f3cd54c41f8c5a99a0e1ca8ccc48..509b980e29e83b0ecd0123b8adf90a6ca119e4d6 100644 GIT binary patch delta 776 zcmV+j1NZ!g29pMm7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h7IRFq4 z5boxS&AnoabF{sj=4vs6&AsNu008*-_?$U=@ZfkzNMOjYV1sihuAXD?0007!NklF^1z?IX z292L$4}pXGBmMLN#8-~+gA_@#!2HCYK*5d7Ajv>0gG4`wm^FXZL{g00G!ibs!4_T_ zObQZ0OGR+1%75WQa2Y~-Q%E-m^G^oB>PMzP2lUn-|42~X$!0(Yu_i#>RSeP%LC0_L z$r1s09=TM7+yTP-il9;0a%frCkS;&OP$yOdT&00cUsyxNm82K0DOJXWgd}=XtsE_7 zn?@^X)_j!21f=vnuWVK)xu|IPBszdlM+c^$ENtNV(_ynJ%{b*YH}_^n?ID z0KSCq0I-RMk_Bx}cm5o#8|`)#C>>2&)*XOjeSf2FY9Hktan{X_0(?`k1Ju@b=U=)h zZ4)r8JB^k-il=Y`c;N2d_-Z-; delta 763 zcmVatW z&TCfB*>-0`z#w7w1y=R}q@lVMPcC##q8ADD%Jn9#qe@2l$SP7wTmv3q^%^0ob={#N2vtKT|qZ%NQUY8{{6Z3Yhd zC#NT3i^jp;?#T@j&A|TN-c2Ui4A|XAoY-a{x}P&YctPzZAkD{Yx^K4ttkmP~bCQ{V zeJ5swA(A|L>VI1wJfkclgywwYaj2L(%-U*AYEW-RG(q}9d=pEg%=_Ucalyk0pCLb! zCY?Rx=|(LnPgrrsS+F|g(Pa2?!vPWyv&f)uKE{K1QcV%1iDjeVzzGZtyi7$ExZr7m z^3X|2S#t`Khwm!Ds|*5^Vk=ZWPCE)Iy02wbAH7g*>kvrBwyZ~58vJ&;K0Bo}{Qo3#%lnOT@j)_L=1OsL(+d=5M<~AjIab^?U7SsWsKjU5YvxB^xRTd*{xKQj9tR;>*qH=uD;JU_6gdfb~u0Q z&ei3wtAC$j69~#|z1i*Gp9EqPD5F=*F2BtH)KV;^M6Ylk@ulJHgzBtU6orVX;b@@E zvM6SP$bUW~G}Jf++W@$6NZ>Hm)~}Ib6s-fW8NL)Dk1-19f%D)8U}4^H2Y56(B@m!Y zQhs3ZUI-I>Rx2`5yu5wF80WWU;+%OtG>AjS@pP+6r0(ii0(jCj3pjcUi$Ub(vVO%x z@VErXmtYPo6e3d@`M-c=We)I2V6X3$c1YKYSX%&~E9bI|9m6UqVY2nHMH^U^!oIQ2 tlEkp@eqDLcxIk;d)xcrc@>lb3;}10>^>I{i)vEvi002ovPDHLkV1l~7Z~XuO diff --git a/graphics/pokemon/machoke/normal.pal b/graphics/pokemon/machoke/normal.pal index ab90d151b..1dab6bec2 100644 --- a/graphics/pokemon/machoke/normal.pal +++ b/graphics/pokemon/machoke/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -112 96 72 +82 57 0 16 16 16 -232 208 184 -176 160 128 -120 136 160 -144 176 192 -72 72 96 -168 200 216 -192 16 16 +238 230 139 +205 189 98 +139 115 180 +189 156 230 +106 49 131 +205 189 230 +197 0 0 248 248 248 -224 80 56 +156 57 123 240 224 120 72 72 96 200 176 96 -128 112 40 +131 115 41 diff --git a/graphics/pokemon/machop/anim_front.png b/graphics/pokemon/machop/anim_front.png index 2c1f083ae136a7e53e7714285049cd8f411f3675..ed54423a33e8e20a235f240c78e7ef20234be128 100644 GIT binary patch delta 811 zcmV+`1JwM{2DS!}7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hWQX%i= zjIEqn&b?y*005M|y;^%~t=7dUN>cy-|L;;#wEzHfrKRvtQ2&ICnaSp)0008CNkl~5+N7cN}*5AnGMfIUat1^`hSI-LdpflZ8v zP6L2KnZ0}lK;bii&j7H|%VsaH0idH7>g?q<0A%#i*$eyz0H?Zn4S<69&HxwzzcBzt zK(7YCpa32XfN{QzyKM8n833bv6CjrP-wc59iGPKXjbRGNu8}9bv9bVMlP71-LL0$3 zy6T1V#^9U2O~O6)-E0{wisXfO0LefZ8VGg&pw~dS{DTW0ir@NjGY-yCUjP6A002ovPDHLkV1m=davuNy delta 838 zcmV-M1G)UR2GItP7=Hu<0000ljA6oB2qvOFL`=`Vm^5LIEXD)uaw)PE8g81j+~kyzqOfUL5e{R7mW(DE*J+N8dFVhJpHOVr$__uf6bd7tC#VmtBVF@3)G ztVR-h`^Wo76mW1*dw$p;5*!^rtuqp+9X5dg+?Vw_K$iqw0Cem?c*0IjCA_f$Z%0CW znGsFA8;RM)cYh1uamRVz6SG&}%uRSB!JQ8p_^JV3=>w}zxfsm^bP@2x>;d6j34r8E z2=TE64ezrMrwF- z&$KIhVm(Ey`Vd4)sb4?x(G)?3`SLZuZ|Ab%1S-y%#D8ST+y%J-IITR4V-g1L(E~i$55_@>~fw}@8Rp0y8L>6|a zRUkm%t}rwF(z%Q=L+iWP#s81(`hmwe=?5IwD&+^mo|wKS{J;~q7(0X?jBxQS7~u!8 z0@07*qoM6N<$f(LGWq5uE@ diff --git a/graphics/pokemon/machop/front.png b/graphics/pokemon/machop/front.png index b94735495b62b3f0191b6b9aad489dfe8ffe2c65..867cb8c3fc401fceb83808032c9c70d5a28ec251 100644 GIT binary patch delta 555 zcmV+`0@VH21h@o{7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hWQX%i= zjIEqn&b?y*005M|y;^%~t=7dUN>cy-|L;;#wEzHfrKRvtQ2&ICnaSp)0005DNklym;n424BZPNU8G{%^ZUFNo{VE#=Sd3>kF*Jzq~QRDUj)GtT%2F-_Ak{q;H@ zKupv1HrsoYFx@8C&+|+N^rp5L1tdK)j{)dLGbKGU#sNt`WC2XUvJXLI%mVHR9&!&D zvVcbdAU^K04*(>;h@1cv@7PlX__~e=FThg9!fxtQ-hrKyUtYlisO*+rLz1wPh7wA- zh>(0P?e%ltS${#Q5U~&P8j2nI_2jPUzXDWj2;!GTbiG=XuPlwWUf_BUiqEI%A?2L? z&`oR*d>O8ObHo@`Jh2QU%I=&#lD-f0 z$bJG8K+0moL2aOn5mrrv3;@HF@!Sn<67`kPu>boUol%T8ipd24yo z1(ZtVwe_k)U~_Aw!ks{QeFq!>+pbgq8ctvXVBZdOcKPn9ghMNE6d_*6jv1s~t$%q4KSJT1Y2Zc!Vr~v{?+c7#ga!dV#y<%E1p(3*L_DuS)xSbK{UOi? zfUKSkRa@>469DYbNcgA$b-|zB-yl?q9-8s&1aQ!4DV08d+;{05HDnW~B@%T2;ZP~{ z`j|(30y*jBQ$SG9Wz`E+l541Tp0lZqCYN2FA?thS0J(efwU>XR<*Mz~ibf=!Q z4RHqJzS02W0|U_O01cWOIz>rID~1k0jNA&W1<=ZdsTJ@A0hE$mLGM6$TCdz>%dQ=m zxx#3U8IOm4Z|Lgba Y6XgQs@NuY9rT_o{07*qoM6N<$f+FMw5C8xG diff --git a/graphics/pokemon/machop/normal.pal b/graphics/pokemon/machop/normal.pal index 2f6bba75b..7274f6250 100644 --- a/graphics/pokemon/machop/normal.pal +++ b/graphics/pokemon/machop/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -104 80 32 -240 232 136 -168 152 88 -200 184 96 -16 16 16 -144 192 192 -80 120 120 -168 216 200 -40 72 80 -248 248 248 -232 72 72 -176 0 0 -112 160 160 +107 82 33 +239 230 140 +173 156 90 +206 189 99 +0 0 0 +148 189 189 +90 123 107 +173 214 197 +41 74 82 +255 255 255 +239 82 82 +181 0 0 +115 165 165 240 80 80 -248 128 144 +255 132 140 diff --git a/graphics/pokemon/magikarp/anim_front.png b/graphics/pokemon/magikarp/anim_front.png index 42dc57805dd8c8e1b051892d37c153e2fc368c95..6b7d130f6b0423bfcbd1797530e5cb342c313c53 100644 GIT binary patch delta 1122 zcmV-o1fBbn3F`=u7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hmVp90n zD7`s3@L(AD`1n#%VvCEUg8)JJm|y?^0LaMD|D0m~=Eb-;IKZfIuf)-P000B&Nkl3`HB9663P`|KEAV@u2ulw^_3puTx_{)FVfe=X94YMu9Ci|Z z17HV1>NmiLosjeu@M#?)=D)+|Wh50Z0{~(GB`g3SM*xGV7XU$h11#vr;}*gbK=fk? z0hoXmFMwDItjrRa?+~Vs01!^66QBZehKdLSM1E4GMnhN&N*4epfSkPodr<-(gi-<- zG`SOM8Js|glz#x0e>M&}Afo_?qq~d_;Bvu~S_fp-$~%fAAb@E!f~8<$=1{+aToX8s zlNVuX;A7NnLG7TfxTip_<~8j15Wx{s15lM~0v!ULFPDoVL^8=6@^s3i3A`uZ{?h&K`tD)Bc$XBxPBzN z92v2k0`dvqDV)y?kefSlAw^=++QHUi?Se!c6LJ@?S0-SVXG7vuJsy1#M$#)1)|*iH zMs{Ys0$9ojCLmu!$J%~S#A+8=pafDq6AZu~j6s7V)&RFd8l{M{1B8H}fMGatbM(K~ zA5Q%5+<$RAiyrR)s*i*`jfH?B(ibIQR9^wS;2LsbXcwaT3Md2Vx1+ZaXw-?nLA1b=Lbz4~u_<459i7jMcP9^9mV9k6Ez z;Pzc!c3SuyGk|pqA0{k2_(#oxnCBP(S?tF1#XJ|3F-jM3ZPpcLy?SQ0A-OvV6VImB z726o6n&(37Vfv#qysBOS?4EHp-vuIo#DJ^%z6^Rxoy|8}F)ULDz}{Eo=9lE2V&1y~ zdI_Y%E$I}X`c6R*x%CbKlFeZpU_d$l_)N4WAsZ&b;n*rYh;Ja7NU#j;M_}nT{fZO-lN+F<3 zB;RN7=rxGuKB7J28Sr)x_iR>p*$y(EW(?_eqXS^i`Fx1<>B@T9^$Fq)AU)Y;J6l+v z@H9ALwFe?!*Sqsh>-yy_ZK^+0R08C6z!KB;Y4_uUZO>`{v4;+_23rh#1L#(j)ik8= oAm}v<1?&jUVwe6K-}p1}3%&d(X4cmP`~Uy|07*qoM6N<$f{Z=_@c;k- delta 1163 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 jlV`H&(zW~_Zhruc0wsTvyKDsj0000UH delta 934 zcmV;X16ll+2e1c_7=Hu<00013M{Ml?001yhOjJdf(4fG05O`29_~=OBxG?ze$oNPw z5D*Y(ARx#PK=_DYKuB2l`1tt1n83im$e4Jw7l~g0000SaNLh0L01m_e01m_fl`9S# z0009fNkld1X0mg?gU{x%uskfM1_4FO)*m z0}5lFz|ZekHLC}IF0XD7(FrQdYZ|L4+CY=-U;ZT^Y=41(?H|e(XjR$44Ovvaz(k{0 z0!YD9c0stp+@riJqY*PwZ8p0E0J(^4ekr423W)8=cWVo?A|lS({?bWcevF8%7Rs_E z0A4g28<0S1TDw!~0zfXLg_aV^B;d5X1G5GSqt&$l1TaM|l|TUrNjZ3K8ipZy9zfTa z)XTz=9)CdlARvPl8rAM9Qjn@?vfxx~%QbxfcQa(d=xrC|Q=Ww7(yW~x;JOuc2Ot5O zR&fgs?%o0-V>)iV3yi(AQF#q3RdzRc_Sr2^sW{g?0Cc_Pe`D*M^KuIFM`$^$wB72N zL{;l{o%1=$BA}$%5!v-%>-KAUnWkw;iN!Qx9)AP<9(30U9&NBQJT=y)=KNxD3!1k7+qWiz}VfLM$I@EO`o3gJ5@4v@@bA<2DUk@N5k zv42K${anV&&x9-ZH8}TrmE(MJZk82s7%PldT}o+U&IcD=3>K764djq8}9+2(O}l1sa1kMDI7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h$i;Ld> z=GE2JQc6k?5D+;rG5?E7?ic`zw4}7vy;_4}QqA@$gRH2isQ>@}mS$+40005ZNkl=A%ATRqufSt$(mn3W6Z`H)P>bd|zO> zpa97uz=HP3x~`J}Gh}($^Y{A$VE7=T;+TNsWyG!^B3S|WIr0YLstb=bUP@6Ny9`YM znCNyZY5-#MBlHzSlquk?2`WYdZrigNM8HG7kj;SGGiR9us6b=POddh%3y8XKrSQkT z?;osrG8>wrPJe(jF9z}mUV9({-W#lW5!laDJ$r+Isz81c;5d^_fP(-k+3Jwfe5?T< z`L;mY(_+XwEYNr1m;kOa`nnkfI$b>mEnZik&E5D2GJeJyWeJV~EBbX!63D}76kU68 z!1&6cYYzr+!KFXE{59nJ!*6&ED(~(m1mD<#AP9mW2!DcKnjcDEZ^0q?GMB#2l1Bvt{-P^!nFX%0Psif7yrb|0=%w$J zHA)_@_&dM1yci}ouwKWWX4Xej3$J P00000NkvXXu0mjfN1PBN delta 557 zcmV+|0@D4?1iA!}7=Hu<0000_37&hq z*Ew@ninxDs#e6qAa~%8sjCpzes%m_{ynfJXmJ;<3DcWddZ|t73!8<50nF@D?QZWwP z@SK2I^B6xoIO9BKpznE?7|#$gJk(k&&?Ckp7WAT118Dt#y}sTu){CBwav(uk1RFlC z_adFFQXF7rM1RG*`X&2XYM2vC@L}?vWv@73ml!@~S@xO0JWv>-lmh_feSv>Y16)`@ z2oYgT8YgCkHvrS%l5c+YsO?&2i_`$}N?l`s5Q|lsk04`)%~@|n01G*=04f*MA>S)g@MS4VGM_0Km$wVlcM3 zV)SJmTIY>PJ7BlYnkhqJ;hnQ)%92>9tw>X2%K{*5Q78u_gs}=^&8`7%%_28<*8ny5 zA|BW}1{47UY#p!!vfhqNL`eY%pa?kwTSxPSOBjJE6EUd>TE?2W#2c8XmM^dRR8*Tx v-NzxrUM6K+EJO#+LY0xVGW2?R{Re#mcb3sF3S)?100000NkvXXu0mjfT{7|I diff --git a/graphics/pokemon/magnemite/front.png b/graphics/pokemon/magnemite/front.png index 9a9148728ab91b1f9b4146b8fbae8f5f084c3107..b1e7dad9f0eb921d1b21a3205ff9e46ee6cb153c 100644 GIT binary patch delta 403 zcmV;E0c`%D1EB+u7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h$i;Ld> z=GE2JQc6k?5D+;rG5?E7?ic`zw4}7vy;_4}QqA@$gRH2isQ>@}mS$+40003WNkl9Wb$ta%17}MDSn_J z&4VbyA4w^_84xJw<1gQ$BDU(PV?0Rx$><+`{6N! zLXpl>xC%hh)zj`2Sh+R^EnYj&YIkly*AJ*s(O@s|Vy|10NjGCr44uJ+;Lc&_3_1`I x&&}(vA#9Iv!@a29ZGRB_V4F-PlgT%{0AidB((K1A_Y434002ovPDHLkV1ip~vv2?a delta 402 zcmV;D0d4-F1E2$t7=Hu<00013M{Ml?001yhOjJdf(4dHji0JtE(9qCONJtP65I8U} z_&`9wARvIKxWM4(KwxlC$nYqDsHmu@==k`WVRS1100ApWL_t(YiS3fHPQx$|hFvK} zV&kM{Mq*^Elk{ELVC{NMju7NS$9ovH^1+vkVTU@H-PYZbGTy{tWTA4V*2Ggs{n#DoX#peATB z81l>I89*Y)+{4%t&k=h6$QV_yE3!)=)9};*#yoJ>-`<5t!>8jKC>aa6f-FcwQ!XnW z5H2FZ*u2``7k@*!rvyyPFKa(|peZqZwATKVluP6g#1_uO-g1Ca#j>g+=tOWigD4~_^hE=((h1UH9VgOLqSo_7qmZ5w wjb!Y;B#vP2^=RDj+z)Jwyem3&+O_@w3w&)viM!fb01E&B07*qoM6N<$f(T=_-2eap diff --git a/graphics/pokemon/magnemite/normal.pal b/graphics/pokemon/magnemite/normal.pal index f67d59686..50084032f 100644 --- a/graphics/pokemon/magnemite/normal.pal +++ b/graphics/pokemon/magnemite/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -136 136 136 -232 248 248 -208 208 208 -80 72 72 +139 139 139 +222 255 230 +213 213 213 +82 74 74 16 16 16 -56 48 48 -248 64 64 -192 32 32 -128 168 184 -192 224 232 -64 96 112 -80 200 240 -40 128 168 +57 49 49 +255 139 74 +238 24 0 +139 180 164 +180 213 189 +90 131 98 +82 205 246 +41 131 172 168 168 168 -232 248 248 +255 255 255 diff --git a/graphics/pokemon/magneton/anim_front.png b/graphics/pokemon/magneton/anim_front.png index 9d36e23961d464c4a21bb446b6c492c5e4911cb2..f54516b9585f6f1732845006040795cb154d238c 100644 GIT binary patch delta 1313 zcmV++1>X9d3aAQ@7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h7N=i8~ zG5?E75D*aV7yyfli&D+@)z#H0gRIcd&`M%TwAH@(?3EQu`fXRD$5V}Nw*||9fBU8f;04Mb;7$^Yb3-+fj080oVEMg%fu5&QbEr5j(mKdTCVtAnWi#zsK!3YFl39r{ngNOjt z-TMwf0WSH!W`Btx>LYb`-utPumqrN7ODzV&0&oDB0Xl_b)6`u@L8KYH zUOa^uBW40Xe;?F%3)FvJ6cEYQ@vgf7G=!M^mC$sDY5x%=gChI$+8Kc7)fyfAHbLMy zqvp`!o^D11Z0#+ZzQ(-y) zh|(^VqmRKBPXnMjfB7X&C&`cys9*3QCW_fe4@98sjttl@s1+)LLC4YYoWf*I9V_E^A6`?Zb&R+?XR&v~y#}vLi4>6TO$>FdGCIkb3ZNzaQQ5pPi zon6~~(pwn&KQuL>DupFj5d#f%nEo19cGJtF> z$zhTe)nvBnvPB=aJjLSt}wk$-{uT=O|}KoAjWB*=suw42Q;Ks%35CdNZi~kn@_8+UieEt+LveB;IedNy$$?DP$24GTKJ?vE1qdwG z1bDBpCqfkF{0%5Dfq)c@E)HfVdR`T?-H`0M=uCEkIa*d>%^f-(6FHNE>yAAj@}z zo&bT8l;_R6e%Tcu%%-zGhG)kC^aKcP$fh$T$sk<;LRS(mWy!t(K`GjE|2qOiJ1M&Y zL{kB|BS0wO;?-~>KycfNqT6f)2!BS57p>$*fY1uWp*v3Q6%PUg(M2Cu1PJjL<$@ii ziF;o>3J{lNRbR|j22{Bqn*6##{78U!=qWbkf(xxj1KbuM3_&J5B)}&EM79Kw`%dw? zB|uaF=%@r0@KHyal?&q4{OZ=2lnd^ozw^(^1&zb^fZ;y^e0^^=<>D_=z#30R`2W~H X_LxtrKkSt600000NkvXXu0mjf+E`5! delta 1302 zcmV+x1?l>z3Y`j&7=Hu<0000s1Ac%;F zP{{D;`1mM*sL;^RKwxmV(BN>Ou=x1+sHmtg;F8S%000SaNLh0L01m_e01m_fl`9S# z000D&Nkl4-_AAXoJD%SkqhD;07N`B^g>uD0oz;5WUEgL&?de3vDQ+C-=Qs%i5h?DLn_j zgBR<4JM-qp&U}QNhZz}baz2}1nwYofZQd^OBaqpg(%ns&z;wg)M4gZs@s;lG zrU_gVE-eD!;D4V?WqHK}sHjs%xUJT=b;yh5I|;z4LlG@04|YjKhzmRk2-n-_cBC9+ zg{X1DOae+QxA%j#>{>eCm`ecS(m@b>BfAcahOIZgNcOSuOAs6*AedNxXaa;g?fu^o zumncaH37n*gy0XUdPT@viD5vrUj)I|QmJw=Jx|&P(0@QzslH|8r^83)hU^?Z_W_{B z`xnDWd3)zj%1=Hmsebr#b~qE6hREU5`tpWUMOIR~VgBkF@IYuHTPrDb-6@3)&<~oQ z52pwgr-q|u9i@6qajt*#n_DD8*o3t9stV$klzW(G&C^n0chREo-OeLFxLcbO*3)05Ddx`VwAa zrKB>EM~;mjL*8OMQRTF?zt=-mKt=-1~4Gc>^(AjbxSFpOCCg- z2Y(F0MF2*~{!9QDA2S=5aJGQmSL_5Z-L!cQ0Sf_Y771N!xv&iZ_$!$U0hbEgMVY@7 zr_(UFuYp(NfXp%uVgis~VY>AEIN-wC9bI0^0K%Yasb@yC$k*i0<2<5~yzh<3FTIAy zuh!=9Io4C&hf8DbOfXV{mc>XgQo_P(#ea80!N8-!y!{(Fa13Ej}=D3dTH^v;NSH=2-*(Jr#^z63A{ha0P~f!A!uSOTxFn`V> zzYL}bE@=qHD6Xu!XmW;NL?=L-Vj(UValoHL8;uG^JSqZpH6|Ewz|%_|6AZ$6WF9E) zfVg0AaK;fqVfN=u!C+2=;EW{%1LARn@GhBxVSCp`A_b8U43~N_=S&EOYn=ZH!LXyR zlcZpPNJWXHV8FmWjsRzZ@oRz2hkt^>udGFy(1OwF+3dHc0004VQb$4nuFf3k0000mP)t-sn9!h7N=i8~ zG5?E75D*aV7yyfli&D+@)z#H0gRIcd&`M%TwAHIB zT`aH$7y$GK(NhwhP!Cbf@z(kJ#Zh_a#SqYg3biK;4R|O{!@XFh^nTZT=$Ybmf z3=oQbOX?xpC4ZBL7~|5}ODFKUS#Sdc)PJJy0S2-HhyknsOQFQFbnB>ylEJn~3OQ%2 z1c3fNSjZNbKCK4GS?4fKc1Dg zL_i&V1@Pd->cxY+3^x4_0HU7`y?*}`FiFs5-hHGO!Svv5@SgBH`Ct5h@dcdZC%s;@ R=xzW2002ovPDHLkV1j|ii}?Tm delta 861 zcmV-j1ET!W2IvNm7=Hu<00013M{Ml?001yhOjJdf(4bIANH{Ps_&`7q5D>s1Ac%;F zP{{D;`1mM*sL;^RKwxmV(BN>Ou=x1+sHmtg;F8S%000SaNLh0L01m_e01m_fl`9S# z0008sNklrLDX~x-lW_a#Q-O%qaqSn*&2dJO`tu_>e8%hG>RpPJ;LKEzH6z*CQxWb5@1He)r zt(c!r0y?Yc7JnnH)~gEWEWelntO_L2;=Hqkij0lYG{A_n68M~l8OF*K;Uobm7QD9f zcwj_&^3@~q3$`@RSLhfW8c^z;N2+=bV`gpu(v)u3RxPJiXiSuLerJP^ybAIo>Eqd{G zW^fZ)m1WgxJe%brhi$PH>r;P#RTdGMvMt24WycQmTaCwqD}v^fRn^!RqKgHk(Wcv| zqa%cgP^(!IU<;f#m5v*~Q-$f$bIc|F8t>3Z=X}d?F&>n1ZVn@hxeK)#=RuRMDd2rE z(qrUuo_|sB;3eNbn65ypjs38HtGNYtYUnCbKAXiZ^( z=wU(`jsXM#m^%}CoHN@~4uTc{BkV9uv%t(!`=Gz`X#KWwvnze!TsqX@A}A?sO8>2k z6%fE&K@#|Q$4XLebk|(~f)K_AfJ8@2dvFZfC4c@73n};G`#v;nsHFS~;X}8k<=%lH z$InlcS2pDa0AbfOY+%FVIx^gm_Wm{o;3_N5z~9kJ028hrZdBKkVXp(=?|7rUL#`{o&Yw1n900000NkvXXu0mjfv?q>( diff --git a/graphics/pokemon/magneton/normal.pal b/graphics/pokemon/magneton/normal.pal index 8938cb90a..55f2f9d99 100644 --- a/graphics/pokemon/magneton/normal.pal +++ b/graphics/pokemon/magneton/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -80 72 72 -56 48 48 -248 64 64 +82 74 74 +57 49 49 +255 139 74 16 16 16 -192 32 32 -136 136 136 -80 200 240 -232 248 248 -40 128 168 +238 24 0 +139 139 139 +82 205 246 +213 213 213 +41 131 172 208 208 208 -64 96 112 -184 208 224 -112 160 176 +74 98 74 +180 213 189 +131 156 156 248 248 248 168 168 168 diff --git a/graphics/pokemon/mankey/anim_front.png b/graphics/pokemon/mankey/anim_front.png index 5ad7a32bf04acf48e49af91ac59ef545ab3fee58..453750f97fcb70ea2e2ac252025fe1ab61eb250d 100644 GIT binary patch delta 966 zcmV;%13CP$2hazQ7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!heK>*&Q za}W>^#dAvb-n7-MocQ?o_;_fvK{4)gV(xQd?zD^ez^M4>;AluNF$0Bl0009{Nklj%{jF9RU#um_fc&^WW^7zSYN0)P-z3q?JynT0G+0Vpy8U_{_=>we*00U#3a zhYG<7;U^nQ8ZZV%prRkKXlk-ufb4q=Ar=uFj)bCUuEq$UOAUbHDF9|kPPPvaiKE$S z7YxEpaxLi|M}Jkfq7uATKM24kd4k}U8}Baqq1UGnD2G?X(bpwVylx?K`q1Cs)`-a; z7c;T}D*#{s_$Ouz%_y0kG|Uu0HVh2Ff#*VonnP58X~$OQQ(}Mse?JU>MX+c-GSEsm z9iN{^0&D=HI5lrA)U}ijJdPvf5Rw7J6#zpZOetZ?=6@IfEEItPfFUS^T4O(}>SRPA z<_)zesBB*U2PtQ-rB9PvIkyigLj-L^-tnS;u9sfIFm7oq(dzWWX~8D3KxZg$2-QU% z(*ni16m>p!i~PaHJMuQbU-%Q$DMo7p2d+LsIbqHjAJIx#_40rmNRD#TGIBO>SgaJm zn#<9b6MwRuS{%=ySwy5dDxGrVhKEkS8G@+8imhCBmb-X66*Le!jDnM*C%MEjvl}y%0?ZX zB@@o37~XY$#@P%YA450XdCJ)`K*Rxeo^!S>Gk?bscV6IZ3cwel5qDm=u7d##xbp(# z!UAy1omT+lPB`Mu+bjZGzHE=U^ES&tK^Spopf!LYcU~fGn!eC5t9d2?jUoyouFHvj|fyn5jraOd^=>VP}1s#g<6+QntF{A%xLjGIr zM(xFuzR&2tBD8Y{wF$8cU!0tRX{_i%%^*{Zf@c;Ao^hLCPKdAKI*SdPqZeo{$?;u>? o5BO);-+MoR=l$T3M}EKj0~BZ;6385;z5oCK07*qoM6N<$f=v6#BLDyZ delta 935 zcmV;Y16cgf2eAi`7=Hu<0000lUsQBpMXh<*z_!q1I000SaNLh0L01m_e01m_fl`9S# z0009gNkl!E4~fHuuZ zq)u)Lu>L{d_kW>9~2_7 zddFpYnFQAp?wE7?xID$;V{}-4?=+u6^8^oC&<8%j3YzE7SmyEo*E}FwN07qh`BRoP z5tdkCqig|DxnHy7-4lS6QTpgyNjboWA3wjm*8)i0JAW(X@bT;SZ=lvCemVjwW&ir} zBDG+}xxF6HOiKRxA_o-e)yQsCi{IoWeoO-)Oa;}c$4~+ygfQ;2#M_$IJAG`ykETF& zIzPrqm*Bz97%G}oA+2P0mC$wLpLW*N$vO|qJSyRmjoXXOx#fwd1B$`{N*P6JhKydR zUDso+c7G)Yh$1)}31U|1e?Q7kJ&qSR&5o;a2=`jY3xJi`NE*ia3D^r!=q)*yL6}ZS zaWD2Q7y?y8_}`l;=WaupU+|X6odsX1KgaU-?{N4L!xh&5Yf|hJT(CoM-HIp{Kw(XSWMI0&PBLw+p?r z&FAcPnRYSl5`dI|X+<=IkaO zY#Qt?hSn9#**$T~2$S8icLXN8JI??b?DjpTb9Q?l+c~>^>#ByqZZ|_}u-gp+2D@E* zP=B`l#O|xt9;ksB**)~?q8xh=5E%xF-RaPGfyW+TAMkf%_W}A$t=RSeYm7rwLSK&C zv<3TGZ;rIRPUhGHn$-2J6#4_l9^kRGJ)j)>gdU=^?SVR0t_vv(Qw**>nEbc0004VQb$4nuFf3k0000mP)t-sn9!heK>*&Q za}W>^#dAvb-n7-MocQ?o_;_fvK{4)gV(xQd?zD^ez^M4>;AluNF$0Bl0005%Nkl@gszRkK$&hH~*< zd%Lfz8m_bzuYcEz0~YTSWH@f--Su+TtBBU}x()R42wK)XqPCA?|K%AE`Quv{HGmla z3V?r7Wkg4{=zL*r0q#%?V1>6q#@<5);C5s8x;3!xLBSkyYjxw#LxR0lY z#)r*3nj6>``$QyVw7zf{>WTJ-Ic|Jn8RgK`19@S!%H7KNyTQs*MiFJX26}%(_E*d5 zDbYnz_gGUo7)M)pob=rhWE?AtVmQu(N6`a3pS@-?+kn&01lGy>!EcWlUsQBpMXh<*z_!q1I000SaNLh0L01m_e01m_fl`9S# z0005tNklgK1A@A{@1y9!VRNSo-sSx+80tX@5HGrk5 zQYHRyK6Jrtw`na{P%4fXIUda;*VCJ0iF_6Zm%D^dmr@mz3L^ z2LSr-6`qG4x_|s+Z|+G@=n}F&S^)FV^Fsu{AV-*k5A;r?erq`N`cJ-V22!a_&^u}J z^9)>$Sh1Ahb!Cp`Q)sl`Ma^f>J;S2|2C@WX(7k*?oAV=FNfgV0gU1K=V&DL2%mob`ufoUkjFEt&G_`~$A5RQd4tagV8#r$>(w|QlQPT` zRv061S2H5$vOH{5k0)h~k9i@KPcSDvg$1Zm%A046)0*?zU0cb64;bzAF^1FjcD%}$$X33rZ@6+q@Uk|nA81niWmTuIR|sBn@DYYC^|0oFq;e{W{Z r?L8CAz+a_!7nZEvj`j2J@z3HnpO}9AK)b*K00000NkvXXu0mjf)7u)P diff --git a/graphics/pokemon/mankey/normal.pal b/graphics/pokemon/mankey/normal.pal index fff90ad75..b0b0e0fbf 100644 --- a/graphics/pokemon/mankey/normal.pal +++ b/graphics/pokemon/mankey/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -112 64 0 -216 160 112 +115 65 0 +222 164 115 16 16 16 -192 112 72 -240 216 176 -208 168 152 +197 115 74 +246 222 180 +213 172 156 248 248 248 248 120 104 -224 120 120 -200 88 64 -248 168 168 -240 216 224 +180 65 49 +238 115 98 +238 115 98 +238 180 139 248 192 168 248 232 224 104 72 48 diff --git a/graphics/pokemon/marowak/anim_front.png b/graphics/pokemon/marowak/anim_front.png index 83117e3b2a89707a3006a32dbe4454a0a2160f9c..f1a22033ed4670233313dfe618dd4acf97ff72a4 100644 GIT binary patch delta 1055 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 delta 627 zcmV-(0*w9Q1b_vQ7=Hu<00013M{Ml?001yhOjJdf(4dHbnE3ek5D*Z+z{pTgVBp~B zSU?cKm`IRlP~fn5u#kv&SWvK_fPipV;K-nz?b97)V$dYFG;b z^8|e(#E>#Fm6?fh=d=<{>;#FCTPpQF{df2ORtSNr*GXyBC~f@-sMRX~*Q)|tN`q2> zQrfQowkm)f&dZjtBVG;=0z~NyMU+dBuu8&iR7upTB#6&jSEYc(&qVnYzb_g7Mur{M zt-h2XF)$?SdVlL}1O}$)L+WilL=p72^&`R_jfRw(lMj2IYSXQA!;(Df)67w);ECN` z2y_*2J;@WcyAbH&4$hqr7x_C?-^<=kEUun%fSn066yS)FOjjqJ1Aho z=R81x=D2W$0){@0h{dSrw*tKVJph;#lIek?{gBr=gnw2Tke#`Ee89UPpkgl+BsE}a zfL;IqG>OBj`2~=f5LNvAXHixC`ivogWzd5wT{K4$6blYmMJxA>UzTAIGig&wdN1Z>TrJ`ot{?Yu-_ z9vcB?a%>9yF9dEAot@W{6X?&(z_S>Cz#WMKbQ8p_M62H6P;Foi2HBa;UQCHPssVW< zrpV#3!B++xF#&A(|DhhRc>8g&d;4DZnE>tOZ5D0nM*N&s@!|b<^$m$x*&=X*CvE@$ N002ovPDHLkV1kw-9hLw9 diff --git a/graphics/pokemon/marowak/normal.pal b/graphics/pokemon/marowak/normal.pal index 119c76e9b..6aa7063f2 100644 --- a/graphics/pokemon/marowak/normal.pal +++ b/graphics/pokemon/marowak/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -136 128 152 +139 139 106 248 248 248 16 16 16 -192 192 200 -80 80 96 +197 197 205 +82 74 57 224 224 232 -88 64 16 -192 152 72 -144 104 80 +90 65 16 +197 156 74 +148 106 82 224 176 120 176 144 136 120 88 80 -176 160 128 -128 112 88 -224 200 160 +230 148 82 +189 115 57 +246 197 148 diff --git a/graphics/pokemon/meowth/anim_front.png b/graphics/pokemon/meowth/anim_front.png index 1c699350c81bc03b998df2566fed62f77ecac47f..b6ebbfab9a3a126d76d08935684f91a54c182c56 100644 GIT binary patch delta 852 zcmV-a1FQV$2JZ%t7#0Wv0001tU!Pb20004VQb$4nuFf3kks%a+lv)7z`1ttH0LY*K zz<3DQxH#C@*#C1<=$J5+K>*cSIRF3vb}Vv40008*Nkl?4p%srC2jV2e_w>;{KohyZ1^4CMb9;CLKI zE;q_xEtzVtdjXIdfn=Hi)iCGdvHNO31xo_R0^khfk_gTb(Ax>2q717gkYy%a0J(We z^oy!8Jx!&&oIWi~zCDXlt*L7nhD1nAexFDi0qZNO9&7!7l@LXpKMq7j04xGaA<-4# z&|L?RfwK%P0R?!gD7U3Qh&BSwh4hGSeNsXX(rzd@eE@Dt{5Sd!1Cax2wHL?P@s$=1`q;eKo4|*(%LZu z7n0W#2*zfAHb~%(M${B!W}{`0j}~nLX>DsnkdGQ)q_d5n>$m&;?j?)>Pyp+<&&%2Ikc&W7h-YY{I3W-Hl|DGe{*9v#`C}P@XmXnIyp9k zcK&yN9p1U;MVp2qK-YgdyvvF)A1d`GNSseUyq7mqVK$ifKBIrI=n2pc?{5KAtgLPS z1dwQl_cs7J@mse%84!)|@$e3KHrrr8^rvWnd^kQ1%{mwmFy!Fx=Jaep2tB0l285U( z%n7Wy0HMX){DadofVkuz6f6XN&M-sk0p_;8;0&|5 z7bwo&SJ!8dNq>Oi{^A*Mh7{sb0`z2r02kGD3UDt?Gu0Cwn%&+2KP5n=I@BE?Q=s_^ z!6p!>6b>(W6oM|Ejsw^zLqVW)b=U#K)prU)*!l{>G_HYP!g7;+b z$>ByJL=4Oei5L%kO1RVNZguJfkb!Jv8wuzfVE79skA;;|Z#o9Rx$aD~z?!Ell96pSIo2Y;e-N+z;kxH^fW2kk!@2~nG}5BbKC zf*{I6%~xA-x-~k+gd+EeRQG(jKWvT%VM}f9ionRIyT{GDJpgE1bb>(vP1LF>7ccX( zs7=k<9}HjJtFn1{v5oaCHcx`#?#4U20jQSnmtgRFwq*zTumc9caDc+i%UuocgJ29q zCRg9B(ONM0{+H~)&4mSn9i>HiHQ67G^9RhknUrAd4~qRkUTxg_lMVrpWsRWB){G^K>z>%07*qoM6N<$f)X&7uK)l5 diff --git a/graphics/pokemon/meowth/back.png b/graphics/pokemon/meowth/back.png index b3153d4950271c6c0c76b50d711d22ab1dbdce80..7c87e642fdb467036660941636faf18cd34cb726 100644 GIT binary patch delta 645 zcmV;00($-81*`>-7$*n=0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h*NErXk zgON`jf2=7v)mk|K006QM-8J|Ye3p-!MA|W5F~sHP)SWlL8ed6J*0mz&{~iO227RqZ{HaZ zAMTjPlmT+jhomG8Kmxys0C$|IJ|$4#I(P=qf7{Zx#{>`p3A7;ZHvy(s@U;aq5JD&b zm|m}3f5!q1I02eFJ|8vk&iXqR&;mZp;0Zuyfev7Exa;o$k^@A8EX6zk6tU;?B_Or( zptGM!6)pjMRI=_Ecn4f}QqCc@fx8(LKpgs7zBo&R ze{{TcRsdRHjmFbyZMW3x-m;JraRJaugw@6p<0WBL${7D>Tp$*Oq@0Ln0P44GyCAFq z8)F5SFNds;i26AvSg%N$08FX!xB%#K$SZYhAVNQ}0D!?QrvtzZY(5P$0LmeEUP}eQ zh!eo7iNK*VV7#QO0u1I6d1&e}AXNLIf32reKg8$&B}C)32vyhb8@BDAvT+ND<(Gos zv0gu2cI=*z0mror%&!2R!?us#PX9@7&gK?)m>mupLIE_?)`GUH`95Zl1gZ7Ct;T`` zZ`mpVfA5i^=f&XdSB$_@NGniRaW4oYkFJM*uTRz;$aU*Z2fX^OI1R3cD%r@nQ#A(c zM%`GWEv2MZ2yGF$@=AXX7nJO$sn1=%G4IVWI}(t~hLZglFb@}J`hal#hXqz5>=!4( fgZ~S^@ssfva6BrLc(5Jz00000NkvXXu0mjf{)iwU delta 699 zcmV;s0!00+1>yye7&in100013M{Ml?0004VQb$4nuFf3k00004XF*Lt006O%3;baP z0000mP)t-sn9!h*NErCokdZ$gfB5LIm^erP0017!Ark-q010qNS#tmY4#NNd4#NS* zZ>VGd00KKnL_t(Y$K8}YZrd;v$4PMNVwe)pLPLg7lLiA)2^1F4Kqa?J0wR0$DN`Jwy2+o1$d-0C_O1fj_mx<75$ZAO0sao^O;ujq-z4e=z{R0%Xbqw4D+hJJ@D=67NAWAnMk}2paD2v zw1;#W;H{106tMN@2h402f91GMwP*|bGS*kyWVk(`4~^FbWq_gskfVASo2J4L9Jdxw zVX2hc1@vNTT%+3HE!L(nfcJzijy;_!kIymZB9H2j0|39rrkTADBnFMnPR;9pi2FP> zP4jvKm^BTooB9^816W5uY}-=viS zsOL_hKj%8%|v1D zV@b2F2|uvl7*mhE(wcQ%niE+?>q^}E+|Pwc&18R_wP{b90(1c4sL}Gwe>v=|hX7Mm h={VgV^=Aq~{sWaoh^0KMeoX)X002ovPDHLkV1hA^Hsk;R diff --git a/graphics/pokemon/meowth/front.png b/graphics/pokemon/meowth/front.png index 3f9bc67adbbac5dbfb0623a1e23a4aa1c813d1d5..2b450d3dc7cb765e3a7052fe6eeeb16adb2533fc 100644 GIT binary patch delta 591 zcmV-V0c0004VQb$4nuFf3kks%a+lv)7z`1ttH0LY*K zz<3DQxH#C@*#C1<=$J5+K>*cSIRF3vb}Vv40005%NklpZj88oRrJu6|eZ!kf*~5eZiCAzX1RURju`#dcb70U9U9& z#+(3bn-OXwU_mK=h?oGZD+#48*JU9<5XdROx}zQ$z&_Zg06Ph&%gDgr&jGf5+e*DM zgQXUFux0^}gFsniKo3jV_BH1L4HE|x2UrF^Bq3P=e@;Y*3YL*T@s&&gd~y*!HB>{- zrSz}mtBq;Xn@C!dQ)@6KL5%!)B1Z+LZyI`S?M+l&UA`=T#4CV_Fj5eXh|{zW@WM@| zBY^;9UG!=BqB<(DT&Pz~>m>+hP}|i#NCDIl$}7+x7_l4)2*AnW(QFIzTo6kDqbCxD zxX3u$YOyuTAICSDGA=O3hzNqoCl5u0lFtC#~gff?|^fqHAtA};Gy!@h zFdQVnZpLPE!(BwbRPyWk$ d#Vh_G-T^9w5IY2`#5Di_002ovPDHLkV1l}U3tj*K delta 615 zcmV-t0+{{m1oQ-u7=Hu<00013M{Ml?001yhOjJdf(4d%T0Qlg55D*ZMSOEC=`1sHO z$e;kgcnH|IIM~?Oz<7}8m@xSG$Z$v~0001&)j`1k000SaNLh0L01m_e01m_fl`9S# z0005%NkloQ51c~`(w60=V3rn)%hlr>~myF+P%zwT(OKKeYPGE-a>uz`MMok|~ zo5E>)*zKN1-f(*$s+z{)fy%E@S+veoIfRI6gapxoguwENNmb6-5rUgRn?ph&Bm@)< zN6hv*Wu&zD@p2Xfkbv^V3>+|dK+_GU&yC?qRMdm@LY@9HEej;hAqf_h&jG+N8QcJ@wABCr0Qm6ugRJ%`V&)h*YVfdt000000000000000aH>o(0008LNklu&Qf2!=zzPMiC`-~qN{+)5k9)xLv*_G6RwKEdXYz<;*gcAFZgE$DYO3`0ou zNep8QYWl(m5HclWAum3G7#P93$i*mn72O*_ED;p3M%b9J2H2pv5Y14k04P^FUoM1n z0RXUNIuUvG6+lerxh^;#p*bM8*{e;>1-Km8-~|9K09ZX%J^BHVnqH!LK+}Ww3d~a& z@OWbN{y3PB9e;o{0G>wy;PY`%LI(hB9Y8wIdivu$uHbl2AYpty>Iu&CK#v0kAn8l> z`V*cHpWXtbH?>|Rv32Q9Axi23kTw`;ST4CuBZ5*(+UcBX)%BJrwZz9quEYsK#vU#8 zff4MCuMDaS2)!NX4GLg}0D>SwQ^PqYXB3pcPM~?$=zpW#VNlEM`K2q)1mW@m@oHlc zfE+^NS7HzV015&G64Z0*XJy3nNwZ0Ecq$1EAYuD8=0NXj?7~z6T!5yci4<k28E<{v5$KVqq-+w{Cpa1DwgH;!n0rG|PuLJ%97ydW^ za2e3`k)CfI2(3{D2Lfvpvq6ZhQC{Zn`8CP_2&_?t6Nt})11`YmfDp=?FLnZI@0>b^ z{`}SX=0SgJaY!6nh_MdjO;evOBe5sNM*!96vwvPENzWb!-w5>*eEPRq<~dqj@UKy1 z87GKZK(dA4pNTa}8Jx>w%L+}@Q$2=<|Gs`;2+L=Cl-VE1I)dld>A|b-54bjF<@~_D zKS<8tS$V3vgV6o}s@J*f59al?Z1j&TNi?a~+V6Ak?D{~))D^u<&1UYFPnF34(4d#^ ywJq8F87c delta 812 zcmV+{1JnG!2Db)~7=Hu<00001ei%f(v zpbRVk%3%y$s_GE|2aUE;GJQ*cJ-}$qz~$f(=zw|y4q67-Q3D7Ta|byG=R$RaDl+T2PR2sGiC1PBt*0g%2cx(1 zEs%YtN-B$&sIyERsoNFx0_)gWrW0tLuLi6Vwjo})EPs{heY#}mKk{j=$N?ToKF6E} z0i6u=-Z!`j8QAuI>-UwouKnrin}P%9+g0pj2g;4)rVt^WRAcXDfKIC6%S?8+dy@d> zKu)=;G}HpqFAS0&3g-b3pI^Kd@Z{TKX0RN}hZ8 zT8?YsrsNbfge~dEp`8IqK;T1qCJ7Q41(Dxi14)8{2k zR1XFHfC_3KuecL_2c)0^F2zA|u-T;s8$qWjbGu7ZUlbr_b4w1CyODr8tr(C1l|`mL q3neK$T0t8;6<87v=0!X_)BXV20;hE&MDwQr0000c0004VQb$4nuFf3k0000mP)t-sn9!iKVwC^Y z?(T!MYB5^>wABCr0Qm6ugRJ%`V&)h*YVfdt000000000000000aH>o(0004tNkl|2t-3bP5l24zJM>WdRDTcrrwYRmQhyR*j6uWS z7y&}2WE4vAABYb|@GWu^MW14&5yT^cBAyWrCOiWiFd{@dlsW*~lkSfTAx!`Pj!q{c zufGF`39Huy=Oc^&@|tVfR4%{_aKIM;TmZ0s?0)nEAPv7%v%v6!_X*4?47hIW=}Tck zb^y``;4Te-_kUF=p#uPR4j|RqZ(nMe#qr)i%6MP>2DKLS1TX+;U+T}FuwFjD1;}n1 zyGm;7@|!`F)&(G4FtV^*cH2e-ZI*P?Io;}8D^X^Nua7*58-$FjTAG0o9L6^WJp#g7 z2l|2n*dc%*h|tV%&dFH?C2$Bd|22BFy9}y4&Tm_Br+5f61>#&|5rAAm>ep%z000UC z1QPUf>t|)e{7Jh>dU&e|4Itt884IxX8b{b_fC(5b+Gyb+{&GvF0l0SY7vP)#{ubSi zKqs8*;$&%F0t4o$5x`-0nB>{7!zb;T|JAEs`U7xt3S|VdHzfc7002ovPDHLkV1lZ@ B*i8Tc delta 498 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 T%Th|`00000NkvXXu0mjfp1G?f diff --git a/graphics/pokemon/mewtwo/front.png b/graphics/pokemon/mewtwo/front.png index 9d31937c229585940ffd6e98c75146ed10ab4d70..a725bdb4ab7278e356c99d44f1245228fa91819b 100644 GIT binary patch delta 836 zcmV-K1H1gx2G0hN7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hudz{|Y z<~cc1w5-Jd008dh?rJfdltI1l@bI)s?l~Y**x1w$^XkhL41K;irJ2 z`!4_<1BgTjrhga%B2^n;;|BmF)w=$X1*C1?%6MP_X>R}zEI@1E!@~9LlpVB#Isnl1 zrqFbH49p{d?nDLc0B{TOEiCF{Am1Ppen&V!CLV9ts51a4ALt=p5Z(%S^P#gDss-40 zmQV0<7snYt)qght+&2ZhxaxzA&rM`Ki@pJfQkc#A5Dpt7LSrY<<54dsOznG-$B?c?q-Lwu9%2D0j(y8TqT9kSD0|bbiPhu z1fXZM-w5@A9-9u34QO_x5O|P7laLboO~NODCX>S927hqhp#xx+Lix{B@~a6!@*U{C zA|<43r_9Y9O+P%L9l#{K?OaU^7EI0^d6}_rh0d;fTnaZ|} zzzCLLMV#lO6$AoaB~AwT#%--CJ_(*r3qU2XM{1miC8O2=$pi<;+Qm;9a1s^(wp8{w zIBg0T%YW)%p~%t#ATx%#I9kZMPYbTsa2CrQ zG3e88dV8#yz;0I5<$au*d)a0Pyhm zcsPKlP{8o;@UUpeI3Q5i*x2~^_y7O^0000I_`+QP00Q4hL_t(YiG`KTZks?5$3X<; z;7hIfI9u6WJ?EIaX@URugMc`~Zp4Q`mg7(BBPwR={o%_IpsP5@9!LnreHb0XuKRiUIt9)j-}96Z;UCzhI>A{BSaC0^!+@ zsL&B&%(hG7{C|WGXAz#NLcIBk<3`PXlSC{$1$^q`2~$rw=Z4CtIMskVL0wWVgs6!) ziiXVV>UgNH`{MfPM$9ze!q6)c{h|};>(%|tT3r39Trf;WnCL93rd`RG|J_t_(>%lh zC?CEC_U|6(zf)E~;)74cKtkdQSkj+ot>%?IP~Au|>VL+8)_6~H&JQ#&Ae%3Lll-~s zo$r=4hODz7RXxx^1mnRPSXl0Pl6U!uC*K-Uj3A&2Cj$e3UJQvR-(glP0oCTJ93B2( zu>tzZOsP0nj*-#Uha;c)j z7i*v%%70pfvaJk&e;XNq%cTp7RK@V&NGv0B_pK^GyXZl1B*dlZVya?vcq#ktkb<{D zT%+N_Re;OO4NdO!o+gss=X`3-DPHGs%p66w_3=E!3qsofR{{|t9#h`f0+5S2kR7KA zX!+E+s|#t@5!wLDeXJZjwML+ol7Vsl*G=028!_M2B00vt}EPa~R$-85u&qZja zB0{%ZV%*d8WwCJ{*gXW#)FlTzGyoq4-OU4p#n3lG#4u!ACyc{P2`;Pl$JY7}UV6^b TGK3hj00000NkvXXu0mjf&GVGQ diff --git a/graphics/pokemon/mewtwo/normal.pal b/graphics/pokemon/mewtwo/normal.pal index 66aa6cac4..c938e5394 100644 --- a/graphics/pokemon/mewtwo/normal.pal +++ b/graphics/pokemon/mewtwo/normal.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -128 120 152 -224 224 240 -56 56 80 -184 176 200 +131 123 156 +222 213 230 +57 57 82 +180 172 197 0 0 0 -240 240 248 -120 56 128 -168 80 192 +238 230 238 +106 49 156 +148 65 189 240 240 240 -176 104 200 -56 32 80 +180 74 238 +57 32 82 216 216 216 248 248 248 0 0 0 diff --git a/graphics/pokemon/moltres/anim_front.png b/graphics/pokemon/moltres/anim_front.png index 04e279d07832cfdc9938f8130b243bca827d4a35..15a0232230f98dc0e866da8947719e7cfd6a3ca7 100644 GIT binary patch delta 1451 zcmV;c1yuU)3$Y837=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!ir2ngU5dWk~|J7pu?qUD{0QmU$QaLG$VoJ1&Vq#)qjob_fKT`g3fBzOcP_v{ff?Y_I=P4Y+i9ExW`J;}gP_{qcDo;VKsY0aF#>*s zj4v`PMg)fwf*8k<2*!XsK#|DN2%*vx@(Mf&!V!Eq*!QuUUA-D*D$Hy_z-$(!= z(i04x%=9=}EPp>T0e%O;L&1a=FFR%UsQTq^kw61QA+!RF!T=0+3`j7BPy**e9;89p z>!|P;Q_76vIDuD+fT65sp35?9a-KbFA_+*LO@hv+MDQgH2A^`u>Cikh{BfF-<$mNO^N&hbfwv&VzXU&V(RP=bU%x^z1skc26zZ(*2U3MU5FbwV&} z&|>r=1U`)zJznD}I1?Zqc(0?4w7egqWYkBzBrQc;5wYN>38$yN%Qpz^8U}pKjVKH+ zyV=1LgMZ;Cp>4`aiuzRO3cv^S__ZV? zNO4LQ3dPTa@4TpK$Jh5SUi)Nc&jer;x&+IH6f4d@(CM6vV2T)k**`x%wRPL*OcH*` zD5r4#Z1HX9uf#DXx;_$c+mXp(z7x4hE z449F^5PNu9LH$FVT*JNTN1(xvg&|)Bt_T{uCy;oiXE#=!)DukY44sxH*?;=rv;CYv z8$L?)%QFJqgqY}s^DTm;a8nZ>;%Q&~EB`ZtwkhLRGx)Z)D_w=7-w#6Se=e?7b9DxhB6J!E)z@^i>|Ge8td~=?~6F|0u0w442KEtDP|G*oW@t~C`8eh5p;M21zAPlZY zBBPb4;{J7{OL*VA?*IHD zo75YmwNUBGAy5Z5&ll174gp4910M90SV437^MKwC4kz&OA@&PL=V3-H|b*mqPK$jhld4-1OB7{ zaV_A8|6hRkI|>la>i&EIVkCK5KlpwD;(z^M_$TWJzX70|F77|N2kZa<002ovPDHLk FV1ip{w6y>L delta 1513 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 diff --git a/graphics/pokemon/moltres/normal.pal b/graphics/pokemon/moltres/normal.pal index 6698521da..a675d27dc 100644 --- a/graphics/pokemon/moltres/normal.pal +++ b/graphics/pokemon/moltres/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -208 8 8 -232 96 56 -112 64 16 -248 192 72 -16 8 8 -216 144 16 -248 160 72 -248 208 96 -248 232 96 -56 56 112 +213 8 8 +238 98 57 +115 65 16 +255 197 74 +0 0 0 +222 148 16 +255 164 74 +255 213 98 +255 238 98 +0 0 0 248 248 248 -80 56 56 -136 96 72 -176 136 96 -96 96 96 +82 57 41 +139 98 74 +180 139 98 +98 98 98 diff --git a/graphics/pokemon/mr_mime/anim_front.png b/graphics/pokemon/mr_mime/anim_front.png index afdc8878e33617d1e0639b5305409c32c7912137..0b80ad02be5e4855c4f0b3d0bbf371fd38984c23 100644 GIT binary patch delta 1116 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 diff --git a/graphics/pokemon/mr_mime/front.png b/graphics/pokemon/mr_mime/front.png index 13f5a8ff7b01476cd48423911dd066f536a01087..1ea6f3cbab579367bb633cc3526fb905c594700d 100644 GIT binary patch delta 768 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 KMNUMnLSTaA0# z`1tskxX?gIV0eI-;Lzv*00000000000001&VugnQ000SaNLh0L01m_e01m_fl`9S# z000DRNklNF_q#Cb}+-{R9q# zJisN;0|XYIGBdNgq$n-Vm5Tr#oB-+O$C=sB|IqXP&*qC)oIyPlr@uc5 zk=|S2iO0#ninC+FNa8~_#A;m6mZr7l=|f^|0Kve{7JpnTv_jAtRP6V89!dt5q4pCI zVlF232@x9bD&toQYrr+Cc3wxj0rI6CktI4H1oCc+k0+&FiXvLu5PCP`ozYWLy+vHAATpq>QmE zM^g=&mAZjJ)mm5o6+9LqvLQl8_f)Kf8e~tn0KuAM#rHNxfLiQF1K{qSmKJD}u|seJ zc*(sApg1S4$<*3Q7S42{TAWX38mF_5Y=78K>OB*JiZJT!4uQaPuL07GYj^M%M5;%5 z|Lff1ZGSt`G7F*u$^Y?RE&tceDgyQCtCn}ISi7qfS)tf})IEx6;zsi!dN~dOh`0h) zaCkQQuQMd!G{@>5<(mSKcr~P2VgmT`=d-B*iGoCW+H@}sP*MCy>+ltD-&2P`r+*7t zZnK7dSKFRCgr}GkvExzT37G&5cl!z}=&ZuF6QITO3wc~Zr!^L>xmb=xPD2;#IO|ew zL-43}V~c|K&pQb5$vrnBNZ?7QK*|CS?^?hW4xdb`BG$U)6SWC|?+RqO5Zv^}iCHlF zdZCQ?H{2u;(Aa*3fn};22y7GR3um^)87ATOK^L*4`zwjMEj2^fX{~^Jfw6t?=rF1M z{mOQ6ju#uHWK2Tc(8TxPccuntO-?OKSTcKLN0Y%tq#_T0AohX4E6 Ye>))AOU)m{yZ`_I07*qoM6N<$f{74YSpWb4 diff --git a/graphics/pokemon/muk/front.png b/graphics/pokemon/muk/front.png index 3684a6eda7bdecfdd35288d0483c2685063b1037..4bb6d0a84e86390a753c097924079f877a59fef3 100644 GIT binary patch delta 726 zcmV;{0xA9O1>yye7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hmN`vOT z?!~0dq??Q5cv4`thBvBN?L=9oZ!&t0000000000000002-73`IkWWbOX{2bYT|QA;~x=V35F2{dqO-(&8|>wooY|G)s?sm_#e9LE!c z>IxzNVL1@#2>{*5KkpL|-y~2cz#~8+7~(y`+b%pIz@)zkfL;YG)GnH=GAP0B47Dg>$;e(XkbcYlkZ$#L&O3-z0!r!L>PP=l1ww_I%z zxu2#&peRL4M}KMM+8`1@)=QS#(kV9YASrjmj^H79D!L0$OC%r6A7WB9C9Ii_JdTyD ztyc4QUIMTuHUuiYkPQH($6ftnEri-kXmgRvz!+NM-g6Z(5%OU66x7_B+>AT`GonG? z2$TTUqg@^dsLkIIT(BWB;6*gb)go6G2kFCFT_0uhKY#a;zHdQLnj8^`Jlxj>H@2Yw zcqQZ&NVPtdH4g$wU(4U>!emt2hv!k$G;s%9pJJD%Av!+_^=E*oosh>rQt>^&LooTN zCV=S6m>*BT>j%IUYPFoisry!dWL0W?CHZ-_G6J+QsmdKdih>*oesV?F8c0HDnILqZc;Pkes@f3pNZOTsQ zaUyd+`8a-sK)64I`R4^3#N%6s`Rf~qk|((tGJQcESsgy=t zF{w>!w9``a6UH{dOYe<^q`W;{I@}D_Isu!<9{dFUwg2C~00EO6c2MDDa{vGU07*qo IM6N<$g2bLvmH+?% delta 738 zcmV<80v-M01?~lq7=Hu<00013M{Ml?001yhOjJdf(4crofZ(|3z@W&Wc&Jz~a1am> z`1tskxX?gIV0eI-;Lzv*00000000000001&VugnQ000SaNLh0L01m_e01m_fl`9S# z0007HNklIfvv|F`qKR_b521g?kxH)@{6i6py4ufKjRVR$A|69rTuZ_O(HM!n4kS`Vkw<|A%UWwRs|b*bo=1ViJ3xq)(eH>L9k7iM zs^6jk_^X$QpMS=ODX@;^xvcg2W_+$#AA31LooAHzNVsMipTy)YyZx;7IpF|sNlfOM zMr-;9iZaGXIZu~FN=509U%x+DtxtJZzw6@aj=SW%BUKM7Ta@Y>0yAvd|b1P;f6><6BV#1mle>%Hj1GnWb6`m#I+ z>i(PP1Aoo9(1yNwN6X~VgKrM9gGkdH#%8=IdJ@nW1~mT zS02`fU&C`v-gE9kA-aLn#hlU#)FShQWzmdGEC92@J2h^J0Nkw#mu6BfTuiwrb%pM{ zNp0iwyR4IQ7!VmKO~bm4oo7AQ1l~8fUJ|jX=v!6m-XHVEpLJto!qno0esd?&$2B-T z#W%*lw3D`-=~Cy4cgtnjpb)%@e&^`1Y1Opf`8pe^f>d{lWVzLa$$#-T`+s4709{=6 UBlOHmqW}N^07*qoM6N<$g2k9!qW}N^ diff --git a/graphics/pokemon/muk/normal.pal b/graphics/pokemon/muk/normal.pal index 43d09a88d..f35af64a4 100644 --- a/graphics/pokemon/muk/normal.pal +++ b/graphics/pokemon/muk/normal.pal @@ -2,16 +2,16 @@ JASC-PAL 0100 16 152 208 160 -120 72 128 -224 184 232 -192 160 200 -160 120 168 -88 48 112 +123 74 131 +230 189 238 +197 164 205 +164 123 172 +90 49 115 16 16 16 248 248 248 -152 184 208 -64 72 96 -120 128 152 +172 180 189 +65 74 90 +131 139 156 224 208 232 0 0 0 0 0 0 diff --git a/graphics/pokemon/nidoking/anim_front.png b/graphics/pokemon/nidoking/anim_front.png index 1645f15e048ea60250e63935cddf8ac86036e92e..79d0a35426e8f43edd3186de28187c9967e37e64 100644 GIT binary patch delta 1712 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 Ef~;$7oB#j- diff --git a/graphics/pokemon/nidoking/front.png b/graphics/pokemon/nidoking/front.png index cc9ad6d0898478733f32aafca4709ee390e34ea9..e230190a25ff5c311112ac3f09ccf4f6d59f5f93 100644 GIT binary patch delta 1006 zcmV1t(7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hFDQe!7 z_7D&d)pPEoQj{rslmJR%L6pV+|Nq6sq^uACb8}keK{4j$)#&KhcK$W#000AaNkl|Npn6E6K)TX{hd+w^3D6S$q%LVSk$b+oh4e)9s_%9}`2K zGhge|2Z8;p4qK!!Z`Y<@Jq78Fv8c=|Es{`9qEF04COh z$uou*07B2_GYHpJSOJI%*7fT)_xHMD1e2c>|Z_4+`FAb$c*Mv%m1*07yG*#Pj6@hPGZ zT;@Zr-`UfkrX-LYsmkLg_APCuxoHKg?n7?LK*SZ0CI>e5e;{a%H%rj^2mJ9^sfAm{Xqv%iW zHOlcLqknK3Of6MtM#pJc*t}cFzLnAm=A3wm@;uwdH5UYcqW?;4J^fIZWuYbq!4MQp zfrd~3X+v2O0ElLv2EbC^?=m1L{0IU7N{A46(4*gjps!%`fwCldgBu`O2y9a@bR{#y z+HZ!ax()^aeDF_X0PBeA-93#A#+6}pP2)=Ngnx)N_GEO zcf-vm04x?vHTzu1>89PgU;$ZogV5%R4guBIpmc6qOIq)^(bvZ)q7b(F&1u%CU9xvx5#MLE&0 zfGwc`P=^LM?xA)o6&?^(U04BPi8$5|06{mnTz6gr*lzH*L%rW3+u&fD)x?U=-2n^Z z{2n_@p5Kr?E69K7zmvNQs~%=!NZIa+pJ)FZ8b&7&<1quoHv10HCYZKv#w}Vd2rfT( z5Fvl+*haUr(`OjJsmXj4-95u|j^F`jAKh()*b@@k`X_R=8i1ebo$wnyiah^HKOvXD c)Bh9u3t!nOhaifDHvj+t07*qoM6N<$f*=;yng9R* delta 1034 zcmV+l1oiv)2a^bp7=Hu<00013M{Ml?001yhOjJdf(4c5Ac-WBe5D*a1aOj{=kSKVN z7(`$|kihu(_`txRs1N{fa9HR-F!1pB=;+vDQA_6l000SaNLh0L01m_e01m_fl`9S# z000AtNkl$WIVE zy@5n+N*<6x5L|>fB*+`YFj80$;%5lb1p%*j5oDIqohZ=|kS^0u+W9oQ^Uu!}WB7ycEM6_@<*amw(SeSZ$S#e5H<#5dq3%wAmU8}1#>&QKUGK@K7!yl0g98W_Cf;dbSW3#Zk%gZDV zAsJ3yaMP!L6FH<)r4f~I&2*><2LOjl6oLRQxoa$CosqLzk3J{X^^yKU06LOSUFWLa z!vk7E8-GKdKKtHm_W(%9GK^-j%Q{IhLF}h-`s@dMQm#nU)HMYqN#4PfZGIbQ417qR z3k=GVmJyX9(F$$)9ckI-twlPk{;K-J<;#^oBX9!Qr5>z1k}A+Ix;0RJ{8STUe9{Z7 z9^7c!;yt-v<4Vv+@DXCVO>_kds4v8sVUC8dr>xwG%D_d~sE04BODl$6<#zjpxbp_Dep zFJjWW-*8_4cDtqg?TQX)$626|26Ql%C$2tL)wbMjN}lzFg_)#R;c!=YTwMQD5mEj1 zmVa^z9- z%`r+!5D*Z(tXgwgDRWvWoYmgY(9rn!_`R%J=FN-l=A>{aDCmHAO1bbq000E*NklwKx7D`1N||Ir}qj0GS&TlpQaFSfFLMAK#XvIJRZa_LI8{p7ywy- z$HN!~2}lPqV#LQN0b>n*k>L4!8k}_L1Oqp~xH+f-4CoNq2&6odflYx!HXw$C2epTg z^y6>HU|{$R3V&w!00pU0UXRo3Eu4cgQ zyawif$qfjvQPD||?O!;OxKgJkfbhu^TmU8Lk^o>@r+@5BB|)DOAiUpGEd5CWTs3*h zAOY}xuZbawKVdTE8H1#flEBt!J%Ym&mrb0j|1o$oVD+O<O$5ouM$m}Xw3MbFAdsRSo zrF=M{WD$Zl4OLb0f61>Wr{D^O(s(62WDzO^+SXEKne3#5!r#iZA>X0q)o$|5B_x%p z=#bo^QEziZ;5P#cr{W#pA@x=CA)8V1a-lkP>gxN!-UFs$)E+N;Gjn4DE$&>tD19qs z5`Qzk4i-EU*d?|v@$c#90f7|od4_!%btRrvSdP58c16_wfPT)$CAz5~59;}Zp-ru_ z;h6|W3}~`kB)DA${+@p{`a9a{!|3R*<@aBV{#0BpDl07V}&us#6mAnf??*uOro-a`fO<-y4GFP-s+4h@gKJQ!Oa zkh+CJyAyAjy76)VKlquh6Oi~MLy7NL9~7yZdXUf04-ZaTGaOCMGBZAvg8Nj#uYcZ~ zovsfg_}Gh?f(WQrCp`KN;cR{2L!$&C_p;^di|M~9K+w5N8F+fv@xlWkq&B}fHv7;h z-F&e=urUX1OsErVhDLg*nEo;4NU+JRJ~zKMop7-};6cpOEH>?!hsI1`>jR!Si&-Tz ze9db*G$wqpK0w?Mu!$7^onK^Vw0|VHT_4ER6M?%D>=F#BBm3VeXw1r+3mGtv_#mg4;CYli5Ye8en7BaAJ~XQ#F7@ot=a^z zUmv7!RF^hwwg|r02Sqq5g@4uB2F1$yU~?-E@wx!=%x-;9v<%Kr9o`1k2VZRsgueAb z%LFRi`TC%p+;luYT^}^P&|>FoeQ+?mCKVm74-N`l*ZSb7PnmCV##& oU>Ct(+#kU2{y-Rh_Xq9s2k2ciX~i0U_W%F@07*qoM6N<$f}9_ao&W#< delta 1427 zcmV;E1#J553YiO#7=Hu<0000=PdZqd*6q2*abEsHAWvlRBu7Wf^1~0QqU>zTzAo0Sbs~#0$!5Y(87*}7c*0X zPSw<+OM#4C+q*}}=5wD^6dBr~90Hl|Jvo2%!VUNUDkS{;{QUXpCLqB$KHmgD z$m`pH-5IZAB!9pQ<=P>@>iOdQ)t7Fd3D{*5Km+$7ytLUyOn@J9u6uoKV{*yM!|?zPjQ_|d8-=W?{l$4(~^Og%hIf)<)u~`r&@r$cgvDwJ%V~w z>7zNnXn&Q305|h$y$--L$-$tw#`ycPNXdk&mh;Ayk~bOg<|97k8_6ge@Yi1WSLO@j zTRbX`48Ymyu8sKLh8k3A0E|hIxf_QMfJXPwcZ^NE2hjwyO@V@QV@(`uj;MeAud0O2cj(5#~=8rTVis%$fa-m1H@4aF5mAoQK z<$sT`zU&3BQ*mr%QhtZp1_%x=?{BO)sg(t=;n(wfmjdn&Fnk0Ab(bXL!@0Nl3D_KM z13a<6p{1`(Y+L*R+$s+G7Ux@?m8G(b5*RqkovN{zMJ|A46hEy~Gk6_aaQ{$z{U-~s`^v*Z>g2=EPYcl(Zos49C&lvMa8GlS{-mk!^i&x5I~Jq0s}+|JZffAc1cf;xfsK}5~%s06BZqC7_c}{JqPg5 h^n?CiKRBL00XjUv7tpRp;0yo&002ovPDHLkV1oKPu?PSF diff --git a/graphics/pokemon/nidoqueen/front.png b/graphics/pokemon/nidoqueen/front.png index b668096123bd429afe4a0eee47f8d7dd009a3d5b..f4592932e07a67056b7fca94ec9cd65f6cac439e 100644 GIT binary patch delta 848 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 BVW0p2 diff --git a/graphics/pokemon/nidoran_f/front.png b/graphics/pokemon/nidoran_f/front.png index 1e84b1d997e8a9e9c67cf55f2fb10ba4528a281b..d47802a0da7a2ef8a3b34df66b962b49f1ae56b5 100644 GIT binary patch delta 475 zcmV<10VMwN1L*^h7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hegRELX zgRHF0)z$wrZL>j(<`57N`1ts}F-q?4|Nl}!-rn8-0000000000R#jjj0004JNkl_-jgtERzqcSz>`o6B(@PK9NhYx;`wR%kwtp=xEiL_b5&ix)FKomN zH``03j35TH6G#AY5l{n!U;r^jhhUxo9zqxsA+v-Z0ALX65zx(#DC#W1f6vqb`*9q* z->CR|)uF24?}QS7{ow3vfFo4PU{jVj{Tra-hfoqkdJ6l_tOWq2nH{sco3-MHj0C7t zhJAV>F#Jutr+-Pi-`aYn6aDmF;cu@1LZEdiQ4hYTZQzxn;D(9pQKX{^{9AYI`MN>pj0(%sGA_@}4(bIvMc;I&3I3@| R@CyI{002ovPDHLkV1k`x-su1U delta 484 zcmV{M2C=z0cuTo~aMt|Kw^Z}5XIcf)s5tRX+ zfu~{OwfLQakciEO#L$zR<-Yv>@66aqC;gQsXJ4PVDz4dtl_o_@G*FeoIU^DP09`6e zh^S(KBml|@L4-{MmH=gw6N)fENFCiF6KD!|(QSo{4q(cN+S^Un-6R0%j9c5T>+TT; z@+DO;0Pz)=;(v~`>9)6R94N_#yS_u)$3u{Bj9Udi`d|SlpEzcoW#zcZOgzwl7Xkpk z$9RiNO9SldA=F*ee4I1i5wOBE09rO$(n0dVwm+IpG*=5OykTcE$1C$7jn8Rw6E?c@GYzq=>> aYkdHjGE>8q7_7el0000FK>(z4&CSjKYEu9I|K33WMphU`(48h`f0+lQ=-IYPUTettcD%OJZ5 z+cX{sHehN_Mn}Q9Xu*h0kAJa8TbjH-ClM;UZ00K2hL_t(oh3!^LZrm^o)xf#{ zE#&~=Oueo~Qy|UCvb89hT>)R92s{@UbPmuidW|4GXi3edDSz_pu8Wvjc)@4#iKNYE z%wqqg(LemF^%eOZ12$G4m7xIx0(Y%EZsM?k{)(9eu)5hY2CSHG+k$(f76G=*{KlJRT+l2+%OEAhW7_*`-pOM3Xno2-;;wZ zd60%SkJJ-S2TWxbm_I%%fE*;z zNrs0facV`;Ev#gC(6`A2cumV?BAk-|-k~pJyH}O2==)EsLgqT zW7f!@@3Hp?F#}C6r9ke#Q9+`@mFY3Ss zP>3q)?td@pAWrPG+@IBf>}L4G*X3W-furmJ$+G-U>cGnZo4G9iCpvFdKth-QNgW8$ z9pGTgLM?!Z`yI-=LE^`dkP?%Aiv-j6WANzfvvF5uB8q~*9l!e#&hmk9$M1W07D*G! zJy+!p9A>sZrBKfTyiGOtv-&{>BhTsw5g3bpco)O=8~odrpeLlA`2YX_07*qoM6N<$ Ef~$}&(f|Me diff --git a/graphics/pokemon/nidoran_m/front.png b/graphics/pokemon/nidoran_m/front.png index c94dfdc0e07e632d9ec5a921535731803e3413b2..3b1084e3dcf6daa14838b1b49cbc6796825781ca 100644 GIT binary patch delta 505 zcmVc0004VQb$4nuFf3k0000mP)t-sn9!iTV#Vg1 z)nY+v5D*aVz3u>FK>(z4&CSjKYEu9I|K33Zhzgn^+^%E>1VkjFF(Bm zU_pBmv#;v}K!_P!3ABo=E90f*+0U-x(8FbT&4}Dj7;qbi(u4?riUVd>r3oTb{AM63 zegotPr2qkNmb&*{0Z8T`)o%yF{JRP18c6jkq5CHQdMZ@_4*}%c0HRJ90!aIR0-Q0E zK{1QU02^MOIVB#h#!0bj)0Ji|3Atedm2Jk+ZA42Jspk-vX47mG+ z@_qE_Z;A^=dH>a}sRt$JFHLm2lsEApazzxFVkG6LI6`?+RRqUMkgu}=B8+4ebeLi% zKF(?^rASXhB!CBXfaC+HfF8P(R)DfsQES)(ua9^cb8>__ka2$_e2*ZTgf|W2Vko`L z?*zzkjDDH8%ON?@I@l^Q13;u<4E_tCPA>v5GmXyxtEc_X0_kz=fcV~)i>|Xnj;Xb1 vV^jgY4^0yR4Bsp3oU#52d&__8)<4lVgtZ9l)5LP(00000NkvXXu0mjf9&y}l delta 485 zcmVUZ00DkUL_t(YiS3g?PQx$|MO`Hq znA$x+r;*pVW&x~X#|s2Iq+9@1=>;ls05)6$m4h-9pkna@OMisa@xqJ$@@G6VG3Ffq zGUyk5u{n_!7-(v}DnmU60_Rq)RqPw6SIjKHVzp%qEST5r#Oz?PYuF`0)UIiSZS zuLU6X0w4=95J2(_`=?ZJjU*1)@5eEr8Y(d$Dm;ucfXSj$R^ULWNRt$Bn&IG(L;VE| z0w9B0WE(I2;D1Nh22BzBhsHnpnHo*9ecv~p_Xldbh;n2Fq*2LrWMP%u%Rv2(I)c-R zDr-9n!9JYy7zp*Dl2yb;~Yv@{g(ETma) zsx7q?49M0MOFR$AluSq5;AwsWHL)v%{;UZQ=fv&p6?UkP6F_Y#Gc^` z?m1dw5D*ZH#myKwb2neGNPzJF|Nqw3*2N$Y|D22NN;!jrg8%>kxyJ_A0009yNkl>w742+PR1l#@p-@V!Z+t(~^U(xAtYr+iLpkZFGX@AqE-5BTt&SRJNCO#m~ z4|IZua2n_l;CZ^h$MHfC!a~OZeqSCquq^!J07!Tq7^DE3ZUh)m@b7mS>YyPL=ya5D zK5w?qAb})s$pjd5d9|@DFhU7XO$i(?E{rh<9Lxv9f4`qcE-(<5V3iBu%Xl^=7^(vL z!pgt|hW}~^V}E6&0|6%dXV?KDNO-Nr`(q9arci@85h%lO1{HtyfEl5fff|%eDu0@U*8sj!du| z2qc>8S#@LJ*~5L?4|x=qz$(-xz)JxfopXUX50wK7kADnAC5b5;8DFc39AN_EaA}SI zGXOchT2w7Q+4MDqfCzvG7pQqo6QNH=(x)~Blpsj)bplN_oAe-iej>9!y7)uTyt4mW z&=IKzozq#vv&&i!FAFGvBtv_mESC9OtIc|=T?F# z3QG4_xR+p35}domP?cb^f&x7kAe9htjdUgemk*l9qf0Q`w*4d_z?MeWALMsvQpi;o zwtt^}-^tIGq~Tze4?>$lB4Iq58sr)dg{(galgczL0t>c?KbQmvC>d?ZD7Fo72}w~( z3P#FDk3h;Gm*k?sxBy}DftR^~_pT*85)}EMT}v;YbiK$~NyJeGmk-+4R|Z9IILbLJ z0>prRz$Zak0#CBnuzqm3@4E_=KX|GiBq|jsz5YT!5OmQ%exV;+Cr|xgTGjpmaM&dI TQ<1Q;00000NkvXXu0mjf*^ixs delta 928 zcmV;R17G~R2dW2<7=Hu<0000x9jz7ec|aMgG2~Xi7NwKdjM(yeX?G!Z)#5lLN)pYz~y@F zt&tGf0B_#j`ntqEcM+hz0!2~}P&R&CEk%N;A0r4?;s|sGX~Cz7ABaLY`)Ff~d{uk~ z2=$kZ0YaRJ;M8sN8+y*Ze6T>I=ZQOZ1Ke%>^M@_71b?o3bD7{E?Tne9%v7OTfV53k zGvn0I%oJ@m6O4|alFMyqU&l1)%RAjlsPOp%x_QjO%qMlmTSq#VP|-Z<0*O#6 zEwpYh(1qyEZXj%Rn&Y+5*h=9{e}ZlDmB6`)%0ibiETNkrGb?~og+K*aDKp&#f;$W^ z5y&uglz#!wN~eVML7rkE#~3J|V73g3?&Q&p*}r5VAr%OeArzew2r+*Ht`_OmhJjL% zz6C5<UPVNCZ z8V7f!r!U$XXBFX!X%~3bI3)s7xLMj72M;Wr^-hbH#wkNY+@)x19Bb}@)Y3StA)F8` zje{b{m{UYs<5&q3I&Bz@qviQ_2ZTHZ=g2{g^ZM(rI}32gxP-(ZlzjF3v4|THgaQK< zoqv05#gE@%ZbZ;{0tjdj&cPSUu(Ap%nV4pu^w@Kq8uWZ6cM8N*;sPLJo=>pf90i7i zF*u)?6>#$gU?9tJ*!3G3G$v}kiXay=#@W~@kgK&f3`nhn?4LL8a1T=0000c0004VQb$4nuFf3k0000mP)t-snbM?Ml(fa> z?m1dw5D*ZH#myKwb2neGNPzJF|Nqw3*2N$Y|D22NN;!jrg8%>kxyJ_A0006NNklu!TE425y*6q5G+pLf0`1XjRk|0b*o4Vv?Dd`Z@6dVk`HC%y#e1-8$2_ow=V zygt!Jp3>&Q6#%!(MIP4+Af-&>1HR8U4CKro7eLeVgCGKIxdAYt=wGk((S;g1K$oMW zGru_IAV3P3I{=fuUL#foRww{96ySQX5F>~j%!BEdWxi#Bg^-hVE~SO_90~|^0sX~F zV1VftO(E7s8h-%T^mEvN0GeLA@tVy*u!Ne#2B3s+1y#Rwzy$7t%`pb62&3Faifk%l zedHMsJ?J>eg(w5Re78j}09o~=!s-H|Tl%dczTmqQY(Ds>cMWiLuLbrx92`(M5{T9!wts4L{ZUWk2oo8nOSSwa0J;9K zsoH$9<+Y`N2!MkHIz6X}&=(`=RfhuBBuMqg04+6#%pg18!0eAp{g5=j+5au*6X^$S z%Xy?{%i0fb3n)N}p)+x2p!eSPwFBG$N_p_qKy~ZrCkuMUNp&CqI5oiS7j>_uCoH4} z5IZLWO@F2DI81UQg-;H!siyOd-M{1xa5oE5q1B5{WAK2K@k^p61%TD2kMng9|1tt1 zuO^V#X8?o&Mv#zH$nFsC1JH8rxcJYdN#EK_)_HNjM3rjo0_LG+bB8dlr;3$%^$uW9 lE9ItxFN{B^pZM4D1BrSPwcfAy9{>OV07*qoL=lFH|bKkOn;Fom&$_Fj7EO_|2Y(ZpLVu$K00;X3+(m$_1MIAA+j}3Wz%olZAl|lZv`5BN4_tpd#HOS*5DuVV@oXP>>_i`T3YXNx6FZ z+ySNiAkS@=&}rM>zq&RX6!yZGl8kf;9xgg`VO{{L8-LQRf@rb#RQ7V1G#{f=+hfta zPGv}252jV{ zRbe%c0c^!N7sk-Ccoh()=ibG1maVwyOYz9R5n{Xj78WBa6D`3q(@nR1|9u+=PGL63 iS28?j`m6ju#vdlApkwN7n3?#k) diff --git a/graphics/pokemon/nidorina/normal.pal b/graphics/pokemon/nidorina/normal.pal index 1ad762c66..bab15d82f 100644 --- a/graphics/pokemon/nidorina/normal.pal +++ b/graphics/pokemon/nidorina/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 153 210 164 -91 143 173 -186 220 226 -44 76 114 +90 148 180 +197 230 238 +57 90 98 16 16 16 -141 190 201 -24 56 112 -16 96 176 +139 197 205 +24 57 115 +55 95 176 72 128 240 255 255 255 214 214 214 -192 32 16 -248 144 112 -232 72 56 +197 32 16 +255 156 139 +238 74 57 131 131 131 0 0 0 diff --git a/graphics/pokemon/nidorino/anim_front.png b/graphics/pokemon/nidorino/anim_front.png index 30369bf7e8160950684435865a48e3188b0a3faf..9fd1786bc33fc3a306b8dc136b6d3d052869e302 100644 GIT binary patch delta 972 zcmV;-12g=c2kHlq7&Zt40001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hFIbzL& z-VhKF=B)0NTC@O^VoJ@VkwF-LT8}WH000AMNkl%BjE7@ zAiI!w*+Ktc&>I1^_ zu&xb#4cbWCc%davB#V;-z_BQ-L-}H`qq|rT`AxlYh`u4Hsvs>7vNg9B%zr>ZE5iE5 z8x9ZhO2~O2p#a}iAAmLjo;rQYZ7C35Ctf<0w1g#3yVgX3>{t-#oF#u;ng|N7x1W}a z?3q%xuUDJ3EcqXQY5>rpY!!v739@ai3;f@14W#r6{ysw}j4nf&_Q>3pCVqGZDyl^7 ziTMxuf!%g8U6=$#1O3mp@@I-^QQg9OpR4hvO9gKPvv`0ovk! z$~_3h|FnDX!{YxFfH(0!?H=$3klw}rz&#j>{|Wb?QWQsj@ju}n)RN>N{y%XK4&tAu z+=D>;&$$PY`2Wy7Xo>$B_h2CY=iGyi_%BL$l*gXjgHXu4_y2MuNU~;KJYoQf8gSu{qj572SfkBnQr?O(uud*bizM)pJoU{^&j{L u!$WXcxpn-5fp@c?+U9op2j}?j$6tg)BtyqjnkfJa0000j5D*aHsOXSjm;jJq zNXVd(P8fgH176_(00SsVL_t(oh3%F-Zrd;vfFY!nDk6fh@&{Pg}LL0?s!*BdW&;=I0m1E4*c zP2*}GqyBOns25SN7#L&owuh+}X zw=JxAFjUn^61M~JcC+2;fzkL1k{HdDL3I*fi-WZ46(0hsGXmUoGF54n(jpv_LTx0& z-KBp31~?mpBaNt+p@d5$kg;WhXk=7c-!8Xz=uxSWp;t)}GHcSBy05w$&?s$al~ySU z0LQTd8ZazFSrHnhePSU;4393IL$y1X{ZTrYE|M3bhV?G6j6>e2aGqqSZ>~dNc^SgQ zjSA-+*SNS2u|KUl;D8XbN`b~&0dCBD;OT#<2@u|zqzLQqhQ9BBa61s^b3%P_#a2>i z(+c6zHo~BcJme>-UV4!@kbNA()ce)F+$tBqL@voua~J~Az4S45)^oe!6z~D?QXesC zwqDxerwDNJ448nd^HL=EzH*QJ{1T#ZJRkt|G7``7^~%<>YF~gW;Fi6eHY^xLVR(OW z56ur!cF((!^UtRG{CM$lL(PYPwQ)gN12YnZqeptqL&WtwtRAdA2H58Fk>ee6;{3eM z>*V_X?4Srlc2LlV%npkB@V9nQ2KIJP)Q8j#a(&3{;7}hjJ2=#b)DB+JhrJz?^dYf> zl0Kw%@R~ln*ukMb|^dYi?qCO;c zP|}Cg4$KZXVh6K6Bt<56FzZ7y>(~zD2R!Kms-)>1b|=%AAZXV3#^R%<{QZTLF_<%{3S|W;iSlL zZ|)D0+>#V-of}o?@W3CettPE$U<_cvANqN(W|M!JnLofOf5-)B-i^YY{o&uNKe?GR UU^vjwZ2$lO07*qoM6N<$f;B~{CjbBd diff --git a/graphics/pokemon/nidorino/front.png b/graphics/pokemon/nidorino/front.png index 67cfc49229aad5992b290bcf95739172ea87ebdd..16b304216e80830c08f2c4d27401629e61721ad5 100644 GIT binary patch delta 658 zcmV;D0&V?`1+xW^7&Zt40001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hFIbzL& z-VhKF=B)0NTC@O^VoJ@VkwF-LT8}WH0006pNklU~6VjjjXkUk#Y@g2W%03Yg${00DCAa4hTQi{B~!156QSgw7I0ObrY zx$ED_4)sM(0B+9-5q%e6h_*E31%UnoKsDEz-1Q1h#pFB_XF$q9dDG8-eIWG*fO1_| z55VW3Q$W+_Y6D=kL77j%qPa1k+5k@*y%T`$ppFcfI`1EQ;wCtTXZ3l| zt_g5?Zpn|{xebEou$cwn$PE|UbB~L#A3(cWMp+=kd@PDTC&00PH~jCWjl7MkR9h&a zV*-#Ynbx7b7~<&G5J}$Dhlkl4Lb?h{-6i&XwxIokOj;4qH`#F5B`d-6AhdvtY7CI4 zflQr0ye)~yI%yqLG7?rY?OqcH#jz0aHPt@WOM>J5_VaQ{%(?Y=y~e6q?TcIhq`F(D zNVkAtdtH!Uhc#eP=^g%a1ufiNhFrFrw|dE+o`KG)$aQia^W2{y*WMJCAPn&L)ZIGD s9+~9t#uk5L?H~SxeSE6_j{kc61*pUk$g2Y)8UO$Q07*qoM6N<$f}QU#dH?_b delta 620 zcmV-y0+ao-1&sxe7%2n;00013M{Ml?001yhOjJdf(4bg2V90>j5D*aHsOXSjm;jJq zNXVd(P8fgH176_(00J0EL_t(YiS3gyZsRZzMMd}mOUg7B=`;>|Nd$qw-5S2Yh?(@; zcxzWWK$;w3TO-)Ur`%7;fkoMHnsmFY2+q@=Kc7@l{9j+Z^e1(-{sN%9+s#n(p`m`< z2h?&RHU-)-z~g4D*jK`aoJF)yqBK#{cW#MU}9fvnjWu6~-TC8v$!CU=Pjmb$L8+)`SOXC{mt z&RIZql&&t%p&08p?=Zoz$sUBV+ff*C;6$Y{a95aV3b5kCB3Mxa4=Z$1KpX zv!A0KX5YNxQ*5j-hpdN^6aw=r=IAOPrEDYzVge%kv9J*zF_yeffPgy?w(LWMNgL}T z9OZP8SOjUwTCNdE6#Tt7I_dHPY^;&RDVFH7b_p&30000 z_R)ee0(;oRJ6iCF{se^9R`G^D0FTlL;x9`SfrBIQ^$8XNK@I(A8YEtZQ=98%z&z$YT` zd~m|&Q%Us5e##)*0vMsvbgN;up0K`03G~Cx-~^hBHkkv1;WGj#|4JhG+r?0a$pjHX zA%K;AndOu%1xYf;534By062wU$zW_|Vn)#LOJ(!wn(v*M{tnVX8f_4w#3IX*5cJYLc zfrpit1iGMN_cqxp*H}Z_V!0$hO`Dg&NgcG)Qh%FWq$2`d50mXvLa>1aAb|gaJRL z4S)D@O3d-H5D&ZK==-0~&(D&{3V%(2c1?);!SksMm7=s4cs*dHqJt3xzJ~_^T`CbB zyniVHlD8KB&_7(kv!TJ0Hb_>Wj%eXYvM!avhBxs)?Qgcb`X8!(zd>N73rZQ> zT@WGvi+tb2N9k?l`yM{3Z-q-`*zpfKp?|DZH;VF_e-QZ7eG{9`EK=O*5HB)ISo ziumT#|8{4mwGb?aCcf;6HJ|9{*5!65&4{ew~d@A?O${NMEt8u?#h-0}}j^1m|d z_y;HXpA0+xK`Z}DuO0sYRiR*r-F^R{{JE3=%l<*G4s5I7vVUNg7}gO$F)>O!YyJW1 zHYBU($ank$GBvK+*B12+|G+ev5xnOgpdM0h`3EMP-|-JZy5IK?A|H4C11l$Z!#{`! o?)wKNfZP5-W%}_C{wM$74=n0Dji;{$x&QzG07*qoM6N<$f`qPor~m)} delta 1244 zcmV<21S9*o3giip7=Hu<0000Vs1N`E00000000000001K!yB3a00eJIL_t(oh2@q(va>b}$9aq| zU=#Mw1{UoO6nDCW1UBs|Ho8KO&rAJ-d6@+LElaX& z|FY~~e?C6HuoY>+2iqj{DZ4D-lkCUTa0$>E`ZyS4_5=k$TLC=-ec4guWGdKxv z=TNII42Sm2pQeEBNl|oN9LhSwUmq1YbVYRGDhN_iZ0*K7wY+y#R03>V2-!HP5kR50 zZWYLli^0GJCx24ZBcg-XIRuSDve^#C34@F7pe0nxB3LoU?2~7n7-;qNslU0}%VXMi)Zto-z#~M8WL912j*G)MscZz<$uv?7X+I zmZDu}04Pat)Owm6dh9$r&LOP4H0XgmOxRGVqM$R?8h^xyHBuc1O^K4A@jjN~p6HmP zrEXEGEH!KVQVMl16%RTpsY_R~0GAHBxoB+gAosM zgH$F4P~Gap`LI=90bnFpkF4zwGLFO10LuE zpl1$C85PZ4AP#772m%ZXS-lEQi@+H=b>seYYbAqVXf$mw$2DjRc46(K;G_(7>#Z9r zZ_)J+9%Ox6C3f!-?+!T4aXbw_eEV~;TizZU2Wqmtkm~x4<77KN32Fd3AAY(19TfaD z4}UXcqiXx1zFu#363l(JRn(a{U9a^xj=}E4_+SsukJr#aESX=e6v%b$uyJQJ3;x=B zyM13MQAM$0RxZdpZ z16>XAA`55J4nGvD!1A7a;fI{w>f#(uF@HKkUim>N?{qPdZ=~(8!w;DzJSf8LKY85Y zhlmH%sZbp!+~Wtn+;N`J(}6$j@Pn!7a<{W+_$I2OV9O8U40O5Exh?`8nB@q(^Ftnn z@J^jr(7`i52)_ypo_G0S{NAj1aNgyI?APxNpI#)GcKIO_-vb^DH6OM+{E(eW$A71% zt_foH_#vCz81W!n{X6_1`hW*?*`)Yk#e+0Itay;-2mUp`;fI2M5gw%YVa09_V-cz<7}4hZPT!{BXmA6hGYXAjuB_5BOz*9~L}-G(SW<;MXaBhZo7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!ijoJxaY z8209S5D*aN#Zt5o0RR90|7t1!tTF$T5U3CU000000000000000YEel*0008$Nklf2xIIz)29wAU3O#6wr&WrZGZp$ApV(*%D(`p$?T@c z=W0_qz;8a(huZYaaYw>Fp6Xp)h)Wwn^_xeCs-u$nen$@sVVGWqL8&*F;_{6HT=?+L zE+0s@4%mA}8#I&$v#tumUZ*A?K28VXsJ|iz5vu`+Ni{rB+^F&lAi5x6rkY$d5G;aQ zLp(BJlbB}!mwy$7?ZFrbH`#2nK!`U($i_%OxO1^W?b+)U05eBAz|7z|n=2#i>Fdu6 zdi4cV38VG*aj?fsH>X@k-R`taFJpkaNK?ne1F$VKQaD7@p?XLwwzb%IDrV3RP8i1ax%WS9WAxOwt zf2yW5faqX?2Sa(t#0oI*t+PdUiVrYELnd+}tpMb<$^=mOQ6`4+*#k8Il}1QFxH0LM z0IeHjEq|tr1cjb+!>GNZRiYDAGZ(@`Ah1--k5s;=H4dhHnNYA=>c z03&SC1{ZzMcS}559i*!TsE5V!X{Ps0e4%#$h7tH}^le@(Z-D)8?1G7azNG3@(Pg4Um|cmE&#B^81);zxRU2!mnXJDo=8J6 p$`kVZCzR|T|6H31Kh*!C@fYwK9rlTr9WMX?002ovPDHLkV1nkckqiI; delta 829 zcmV-D1H%032FM1G7=Hu<00013M{Ml?001yhOjJdf(4feeNPu7%@Zfk55D?(NP_Rfa z`1ttvXejugIOu>Vs1N`E00000000000001K!yB3a00PrVL_t(YiM^CDvYRjvhIt+? zAYu9^2^C2Pi!v#}fhL_L_6j*dE|4RndVQL3%Ir#D1NNI#iGMu9c-T+7|NdH$W&eG> zy#6Itybru^OhETuTomw1@%Fv#0-(|KIBTt+0R=#9fL2d`o)9Mr6&!E*QEPpaYMQtm z>M#7%1vCeuXqvQ@In96f#0i=rrSJwKO2js`oQ>D6u(o8YLuP@(=**p^@qf)FiO$)j0VO9IRH^B5;GZYK!5mI3c0LJ}fb#K3<4TP?05t+W^-hS`}pw09wa6OTZ-n z#zrn&Lw|}=cnZ@s!fxpTm(E%x*$N@kip9abGY?WQR ztX3y`Yr)0W?6)EbQRDrva;tz&k+X7%c+1W9EOM#AC!xKNIteg0pZNaL$j4c8y;O^W zhGzX%qd()6fJtGhPpXdqi@-^03`-GQeITpOcz>oZ0Iew=Wg_ey$j_*;j{wGlG>^b# z0lcQKZn~d-but3IRdm5Tdr%jg!nr+gk(#FUHjO4Y^xZClsBWjk=>y_D0k=5}m;S@s z&n52odTbKN(RI0y^Be2rI39osfW8l3=iiawWp@>_LDpSg&GRizz|>`1qRR5iJXgao z#5TCkhh03bk8_+LMyAIo37OXk8=mZD;McRa+x2wYzh8d<-@N}LT0w7|00000NkvXX Hu0mjf@5X#A diff --git a/graphics/pokemon/ninetales/normal.pal b/graphics/pokemon/ninetales/normal.pal index e0dfb21c5..021c15775 100644 --- a/graphics/pokemon/ninetales/normal.pal +++ b/graphics/pokemon/ninetales/normal.pal @@ -2,16 +2,16 @@ JASC-PAL 0100 16 152 208 160 -200 152 72 -128 96 24 -240 224 120 +205 156 74 +131 98 24 +246 230 123 16 16 16 -224 192 80 -176 72 48 -248 248 248 -248 104 40 -248 160 56 -232 128 40 +230 197 82 +180 16 0 +255 255 255 +255 106 41 +255 172 49 +255 148 16 168 16 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/oddish/anim_front.png b/graphics/pokemon/oddish/anim_front.png index cd1f5e16cf008cec6f9d2e35f1d92c4eecfe0a98..9634703b10ff03480c36c6bb327ff77ce3859609 100644 GIT binary patch delta 653 zcmV;80&@NH1(^kq7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-s_`tx6tT9Sj zAe_}o#pZhu5D;2wgL9Oml(fa}IWZ|YO0rye)|IRP0000000000yEIXZ0006PNklGn?r-Zvj_sw0Xhp|Rf`W!67;D>3D5wV*9PiH-g+p-+vtEgo|pM)3%cG0 z0NKRBEr=x)TYvI10$abF=|P77IzE8v@qi5zWao-?Ap@`m0y9MLnYY>7k0okw5SFP# zBm;!m4gx`RX$hkfrv5C@my{u54ddJR5nsA?|^IY41NHvxBNUn=XbaCMHkHy zsAX@@PcMNwA-RHsg}}^l5-0;`i=b5gI4ZqY0`Nh|=^*#JQukY^vDSh{H|4-?= zUjQfoa{3+@0D66p)c3dmP-)ERd%FODtiHDk0L<%qTmYo?yN~FJJFM!vZ+cZg zR^Jt2|9|r{B=ue7(cPB=F{$t2@7>;KKhDkHv-Ym`d_Vf0P?jdo_k#a-c~023N9pxy z`N<`iyG!z$k}F`b&Wro?!MymHHS=41dKX-H7yP~c0?Z!+A@G|2TdMhgBHxR(lO=cN nMR~V*uG#yx|6RNOP5l6xffPbKgftKU00000580f2dc1%JsD=~C!@C0-z}mt*gC_?j|O!j+Ja&Zqn1Db5k%TK{tu@`7GgniUDZs$S6z2b2?0wAGTh zA%(5QY|$>=h5-h(l`R1L)8~5>6adv$00t^CWzdqg#(b>WW~ih(-*d2Pr7@7Cbfm4Z8yaP08MI5G3dPCf5DE7E=Grg_YY{1JQKA$ z9G*e2pL_Hz0zUPOZ-5UYGC=Qt1iioG0q-CEe*eG$oqzZF4&(mmgoo&OpzDL)u}g|= z7mEjmQD-Nh9CXJw5T~tk?*4_<#~$sE-8~P4`Nw|G&v2OkId?^

tXNTGzVP-zwg^ z-}QQ#C5ly5vk9V@z&;mk(pKMq8V+5xbH@Rtoy-70PCKVCWsL~{V4ddx@_{L(U9_v4 z4e7+5$bSc>iOxDFok}SoA4rPUE7R_de4tDO*2#Df@_`IM?Q|l-h_`$Y69}BUOr06> zfr$x(@#c^ZRAcL@)Od$7;qGW14%n!W9}@8(xc^*|BQ9VB;zQT{q_6{%2uHhT{{%vE ziE$V6fnz^+u>YL7i~cdj1Kt;dyCVRw=05WN^k52eW?c>H*WYmeo&jL~{(GP4Fy8kV zkg_ZK^Ux*lY8RvDkFy`$G55z@|xdb9YMz{bBF99N#VXpPh Z*B^YPtDAF7|9Sub002ovPDHLkV1kCQR(Svb diff --git a/graphics/pokemon/oddish/front.png b/graphics/pokemon/oddish/front.png index 345e4c5090ae13392f9efb869afc1140bf6984df..3ced8e7058e74ec08341b45a37e0302add1a0834 100644 GIT binary patch delta 440 zcmV;p0Z0DZ1I7c87=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-s_`tx6tT9Sj zAe_}o#pZhu5D;2wgL9Oml(fa}IWZ|YO0rye)|IRP0000000000yEIXZ0003*NklV>dO03sux`ztc@A^=Gdp#A{FJyYV@p56f%0Rn)QBNN1?21K>%iyS~$ z80}`N2&|+C!~j?q%3`-Cn*@6*83881{1$*Se$PM@F)je-{o0>Juz4o{bcx9oj1kC3 zzANzg^-L!j@qcx^0UY)LOA~Z+UsQ zSo&L#kIE5ahWr|D{~#!0`R6R{324bP_yV+te;r``eW$xglU0ID?>GF*BgjSAoS<|i z^xnrwkR8ArLbm*+uspQ^coBB|N*D+|g**1%*{mw*eKE)H?Qygz8-zZyciYC+7C5qV i-*53vIyyS~^ZEha`U)a`p6q1+0000ge!-hh>< zL!Xj!80!l&qQ4Z$(*NoH|1LsY^`BM9U;IiL)&%-gvw>R*`t62Xs-w;bta|sV4Ssg%C|Eu^<~d;ajxA;om)hyjcF?a?m@PCj2td}4YQ16V%Bv1*^(pAnG0BAGkE&=2SYyli$mxKn`Ro21Q7<#(Q zqEtRDV1UNBHrGPKKGu{#K%1*6%81xMQAfrX^I zgu@r>FObHc;(-TJ{;BKvj6nI1Q(Gj>LYVZg`qTObjd)dFE5c+$00000NkvXXu0mjf DPrS{& diff --git a/graphics/pokemon/oddish/normal.pal b/graphics/pokemon/oddish/normal.pal index 0a9d87c1a..30c3a2645 100644 --- a/graphics/pokemon/oddish/normal.pal +++ b/graphics/pokemon/oddish/normal.pal @@ -2,16 +2,16 @@ JASC-PAL 0100 16 248 192 192 -48 136 16 -32 88 8 -56 184 32 -136 200 88 +139 172 49 +74 90 32 +156 213 74 +197 230 123 16 16 16 -56 96 136 -112 144 168 -136 168 192 -232 56 48 -40 56 72 +90 106 131 +115 148 164 +148 180 197 +238 57 49 +41 57 74 178 92 121 214 149 172 0 0 0 diff --git a/graphics/pokemon/omanyte/anim_front.png b/graphics/pokemon/omanyte/anim_front.png index d6d8d67051eacf6590214e025f40624300d7fb8c..9a51401e8de392c7d29507d9a1260545b5b50c50 100644 GIT binary patch delta 774 zcmV+h1Nr>M29gGl7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hNQZbl- zXy)F7#jJDx?!^EA06}W3IYEPBz4ker&G`8Ez`($0XlR(=@Bjb+!m}DK0007zNkl!Uic_ga#22m|9?h@kB_OTsi~wWbTgWn zm(VQ)(Ymh2AbhN41TCMgo`4ag7|&fqi;r(li9j3)e8%`ps}U;%dd2(rEFvYqS%Ap_ z7EMA00xioigR2n)lOY8F1ArBilF6`?}c6fOL`%ODG;RZDcs3`eF2?F1pto~ z2&N!i!uu3RjDMfa;0joy`V!zZg?@}81K&rtN+4`QO78nvwu|e#zHEh#q)*0!SgV z1P%~+TEUP0_dEfqC3L_h$e^is22W{fC8#8~Knudt;(t}`jd=geZbI2W5Z#cseP{>d z2`FO&08-1La;4hfdL`Iw6l(B!41`a9iw8wi;sKBo;B%3_kgZ%B+~Yr-ARrWf7R4DJ zBLEae|IRpGccQ1JrlzK*rv7I!{i=gt#v6`-U>oY;eD(j;Ea-GS-TxOm2z2rP(Lt!> zF!=xIAb(T%9&{`2T1i(bIreBd_~^?tPSG3ABvwWTi;7X9oh&wiEIMZT5ey zc?uq^Ks4K(=@g*WI>4g^k?AJNA=@_=(`Nr+YUi;G9`ASWy*r=u|6A5pTWt_y?Cpl-D)_$NEGH_i0M3LcC2H;VC*Nn{psWC( z*q(5MBN}k_^9roxI$mjqw!bGFC264O01Z)xxVw{}sRjRD~Bn-~c5+F(X5OcQ&

y#?;xktW=7>Whf#{&WHRrd$=eLcI<{Z{% zMBx4MxwE@`{yZ@$taq^WbfAv$8{`0S3%1sS<@5M>`G2z)n`pg&WnJp&<9!@GF2-?8 zK9|1MDltZNV+5#+-kE8w4eI+iqTf>&iR+vgcOw!=W;1X-O>P& zyArR7pno(#6!wn=+<-1oDe{8|FhI~ib>+>0rwGd_I_zVCy+(k(R|=qcx9R{L8hABt z0FN-GKM_Tu^U^?Jy{!Q19&}29Jb^geAzi8Z8vq)3$uI{Xr6gMv8HT$Bu%SXw2iYNk z{7+zqyaj!V+G<@02a^vQKwnP~Fri7w4p&JIged|U30x$J#{7_`BV*18 z;55RznCdV+4bwA40jM`41Wd1omrAaqlzlWRTifd2*Dr;F4#a8c0004VQb$4nuFf3k0000mP)t-sn9!hNQZbl- zXy)F7#jJDx?!^EA06}W3IYEPBz4ker&G`8Ez`($0XlR(=@Bjb+!m}DK0004RNkl;WVyQz14clyz8n%+e1CgV1S!M7ee7SP8ZkqVSH16F0HgqC0Fwi(S|AC6 zEX%Wl)d*lSkN^|{cmj5mho3|USx)&Z903Z#2l3Sc(7s!^;-L5eI#CjU@|^%|K{ z3o!PNI`{!?4=O>G5lQzXIK zRr~_;BV_ia5U}z#gbeg9i)`D*(cxOFu506M3Ib$*;ITnuQ!xJy}w3>5S;{Qr(AD)(E|`CFh(bUQuC1cq}t~C zNw97tGI$>c!kgd5!w{Kz0&oJn7vT@G#kI}7{^kUbko;SOGrR@_BzAviJeMogQ&Us_ Zpg+jM57L%BFC72?002ovPDHLkV1jO}*VzC7 delta 492 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 delta 782 zcmV+p1M&Q-2AKws7=Hu<0000BjE6vr|r<9ek~yf@OT3eQ|P@qESt?b(oq6b*!#2! zSXXbgkV*<3Y&#o_Znf55q{4)|8f?6~n`D{JdMFcYIqHM)-I!Vc$PRXrWgyjKetN4R z9Ssu~u+h)PSL2%$F774<@XwYSz{ULpAf-XqDBehA0e=GxA4fNIjx^|6z-Nivo&Zq? z=p1Q~fPPk&SYH5W_t^NLBYAoM1Ns_{`3cT%BcukgY<`39I0}J2_Bi$ywh>Z;7*DUh z4zV5fbrzj;nHSFi5)iraCe5F1pC)8oA8QMMj~IK3@%t9@&4ifAn9YBO-^LoNG1fNI zXhMzoi+=~@fg*t3n9uR-Q6k{E`CSPJjL((NFD`40QAl+J)m>w zuB!*Zpt{zvr3d6N1WW}(rG2e4I9b#Kl7ggFn+k@cIt{E_2jQpYGB<(|nmWX`9Y98X#fBK diff --git a/graphics/pokemon/paras/back.png b/graphics/pokemon/paras/back.png index a0e9981f5e61845826ba1c2baa7d1501c47dedaf..8e22aadc51bd946d20df71ddbe2832913fb2d89f 100644 GIT binary patch delta 471 zcmV;|0Vw{}1fK+u7#0Wv0001;w}I>c0004VQb$4nuFf3kkv=|u0i8)iK~z|U?Ucci z10e`RM@E~PGV}kxy8=2MdXSMwu%Oenni_Ew$7!_cg{Sgj*PYqU@5RU97$&>wR=Ee0;#K zj$p}&U!r;|{%oKhf+l(5esdW<+5ybJ0<_NHVjj@)Eb|&*6^(8`7yx*;`0Qa=h_PYs zsO$U!%Kp1DM*}yBlz}ExSR%0o=nGUx9l4rrPhi<@LWb*quM#LF)*x@8C5+ z3jAApde_%BWJOayw;50V6j~eYAx;Uf1laB02Fp(ydELX-*4EZ9=nq26BjbVIWc2_5 N002ovPDHLkV1meJ*DC-3 delta 525 zcmV+o0`mQz1l0tP7$yV*00013M{Ml?0004VQb$4nuFf3k00004XF*Lt006O%3;baP zkuE-e010qNS#tmY4#NNd4#NS*Z>VGd00FK^L_t(Y$L*58PQx$|#sfpDZXBe{P#^;v z^a%oafeOM*JJ?dQbaDiK2_}#QbCL1@@o-O2DG$Y6948H|jQxhh=kJ&M<2cxBum9Hp z9PLB^fBebA%~|iyX47B5Bzu^31o;4G1OIS;mO*rX+XfSu%;EGG0Fb69?yK`h$TD~u z02gzBD1~PSq?94bo_B$(6aW$j9MXdDA#lk6I3R>Z$zYB}0x87HATXv-Y^Mo#IW}(| zpbp~e&Dhj+{jrEBN(mT!)t(^WZdH~qHER(i48$W2jRQjZpezeC#(dR^x}*|PBLQ1~ z4O52T?!m;E4&8MGMNTr)CwE1f(gvecl>(5v=H;1jYoA7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!iTK|x|E zDfVh=#k3&*)lv`;5O7EsIVlk4gDL;^|FmKt|EywKT3XG`&7`EwihXq20005RNklDk$bSyuiYudK z&+{@(uPgD4{&u^~^KE$+;lOc3oE@+{0bBrK9yP^uOc^s&lIM`&NtLRSFC^0iJYBo=e^C_qw(kyoXee z5;C&Z4dprjO*GhX!We*hLw3Q({0QC76Oht?9-?)H-aLP^(@s^{j$=S`tth(>VYj0k zhaxP07|O+$PhqzMIrk(vVz-Li^%=L(ir+jww|~R*+!I4RdDlm>hdyPb6|@p6fAib`icrZ3SNBgAaU4MA{d>`YF!Yi)0;-BLK6H6ILj%h=x00000NkvXX Hu0mjfJrIr3s;?-aJ z;qIHKV#C{Ct5x^*w;sW5FR@vx?iRq>UNzkD0%0gb#Ms+fHQe6vC4{0Ai*}Kp^Xgm_hg5ex(@Jqqb3C;_kOaz)SPd zDQ&cpqU1Fg+&breYJ+|0Gg$vL99ipZ7j++-p8iEX%*g^kx3S%y2Qrt-lUoPb;HvKf z)_XR;%x^L{AC3xupUxS;`FI47QP4H2586BfE*yLv+<(v>Dd<|k4~_D90wisqJyMW@ zo;}ofI0Ml1SpVV@{e657JqHbWgwtchWRU9P-*AV680fK$G?*D9CW91DE`MENEABa) z9CcWbP5~Mar3psI4=qj!w!<-+0XSkB7$(O}#*2iM>6A^sgSRkZ5o4_)jS?cpXBWX? zf@`o~2tuGQrq!5SH3FU$=R!bXdO8mTlPkApk9EKnC{CJ-T2BUvT-v9fe|dkU|5|?l X((_?U3+VnK^JAk{G##k9r$|NrKsoV|N{h`q%7000EiNklyG0f425fBT9qWt`@ik@MnXbJX!~ciDkH6?J3Sx97=I^++wJQC@SPq*_=G?@ z6c9svlOWPNj}Qn1@E&0ihY)#yh0sk{)X|59K%E4lzyJWq@`yJDFrfp$avrKClN0J6 z`a&q=4j|Wi2-q(dJ@0_8fc3<%^AI4YK4yJRVg@MTECeW~&k4wSPXXnONNw+{8_Ma4 zwt9;oqNjw#4}YBwwgA)H%BkD}AyCW&RzE^~=m6XU^2!AeR=ux*0RT_di#YLkJP>yQ z_!^>B;u?Vy@M+Vt_{l>UhA04`NI~4L0iRK)H?@tF^h-qwHoH&)RL|4r$&m;DGVpJ^ z6=XobG6}@rR=tZ5ll+^8VMw?GkQOnPWy3kZLE1ukihn>iR0t_1K|r|xscDM)suO~A z1(TBz1QBBzaFfDn{R3t&Eds8=`rM)DUo(qk|4<2<2R}vOEPSsCP`VfKcHkOA660xeyDqmtT6wO$rMGkT1R zzL?#kSHeLSrJS?gBEX^t7i1yrK2Edv>@;&4|In_Jj z?gR7)21~s5OnC@j5pK8u1hHmMm)%8xdojo#L4Qm8<`a8`*Z}UNwO4kY^E3(|mHs@}T;7YMt>s8qpOmm7_${C!pk{I|&+bf`y_*LxSVtf1?d7<$ zIzZQnHB9(1)4B#nn#;l+p}OfbD(P^<@8H9UuBYDZtj z0sJ$~^0Z$6lV$e$b*Z--nFA7c^G`Iz!O$uf2_4B%_rU7<9+yQWRGtdUmA)r3pO$VJX z*2;_UqyEx#&^ZZLkD8`~z6M-4=qtdbgH`}G0n(1>)Io#RAhz_QdEYY!4MtjRZ3oSL z_D;KD)Exr5dV#R~_$bp8LpLDN?bnkHfgO`khx;-8;`zWp5ZZ}g5o2>?s1Av{^i P00000NkvXXu0mjflfZMF delta 1360 zcmV-W1+V(l3fBsd7=Hu<0000rXwU^vLYc=+(J z`0#l6m~i-DKzJY^z&IGdu)z5E`1r8Ez=(j7r|$j$00iPmL_t(oh3%HVZ`(!`$Bzg9 z0VZU%2nsaJSsHAoR%Mdt>XLU}TEq}}uLhE_t@hS~fczN-ihn}((mDtVQ(5XQ;^e?% zf1pLy1gO#3fep=J-yJE6q$md{&>}-_v)_mB`@P2#zemWMma+T>V70rjw8Z%~A#Ha- zizU9(|I%3|?XXu{S7qCU9-$%Bwc!0emO%j^YFcooZ#JR4g`cyDJv!n+wNjrhGzSAcpF zI|S&(F!yaUHQPV|lt+*HLDG`Y@{ITQ_XdM+tPD`{5<*WufZJ?+dTa2>;9>OBx0bS? zCnN<A?QQXi9(sy9`2HHUgSmz#L z(c}B4smI)b1|B^)ed0SfuJs7mbP6+o0{`sE3*WZ435_1FsyPafE(B8v$}cbee9nA( zi;#7u6@Mfbp_d;5dhhZT^BA*jMi{>7uq>cv*-EbZ9&0%qA-xAbebdv`X3YE=Sc`k< zQ2~xqVn2}MTqEecLJebDUj!^c zKmEOctO2M+mRy)Ff6fH$T$8rA0q9)awpd=r)5OYyq`xOuY=Xxy%z*VcK4yhB^qF}( zNq;=44?ExwW)#J7JTA1kn_MNH#hCsih+tzJDVho}K;r`ju8)JAc40TG7CCFQ0E-WTx5hVD3~BN?CG|OU^x? z?(%i*|7Yu?-);uzi)S}CSfKoF{Rbf7Ap%w@zKxzzPAy2Z&<$` z0eR4t;=75HN$>pBDgt?YH$g)67gUPxIiMQfRbVc@n-G+M&SbY7-z%`)E=e3~jPFS~ zzJCT*j&HtOj_)5~qY~efN_?}q_@1ba|3iG=yE(qkpTGS3#`r!ze;40x^ZExC!G}Q} SL*x?x0000c0004VQb$4nuFf3k0000mP)t-sn9!hFIVlhj z5UhJzb5cs?v||6}i}>((_?U3+VnK^JAk{G##k9r$|NrKsoV|N{h`q%70009sNkl_C@=s3syyOD0Zh07U^$1X$>fCkANNw| zn zBDy6ke(G|t2Y;B}DyM!6gg~(pSp5v+Qv>h_sFe#KYXEGt-383FOs180D?0#Q!$vgol3HZFzG5(svN6@XYPbZ2HiVr-53eX`Es7(RRN_s1u^-=^C^cl zw&6#Fp8*|V8^d3v5aX8s-ua!{2)6*X$=%iW8G*-1L3{6f1zpGP;f3X zQaKH(Z@2?M?zo)ZQgG&h3IZu)RWyKpV7*?G?Cr1Uy987sbWPSjguBI8q z#((xMlCf4ZVSQ44>CbKIAboC&s@|36aKKnio;Gd<)ZN2@GW%m5~Q*S#$ zGjb98UC~(8aSJVIi N002ovPDHLkV1mYWx!M2# delta 1001 zcmVpIOi4sRRDVdvrIgQ46G0TmrxX4F zHi*WHY+l<$3R+;=$Pu?QTr?WCGyVhW-jzcWj&h*E8y8);7(57DPTc68;OviRyka7M z0Hnk->zmo_Lg^L~eYf`enfHC~&6_3HMsD~TAU{1&8sdD8kYaT}iXlGlJ+BOtVtpY~ z*D|ZB1w!j8D}M#|Jd~9Nl*mZIE1orqy0Q_F{QzgoQWA9se-ve(htV~_Z4D@4XX#4R zE6OE=N_nY>9And{%Q_Zm0Kwf$z_hMU#5L+Jq|_dkl>j45>s$l+BxZ22mYlW7tau3g-Y-{L#)~jj=gGgRQ)tqfoM{+^z-X$45VYLXFK3QUc>3xu`qo z63{2dC*S}u1_bb?>%9hgmW8O}IZ&u@giH^$_@=v21h8HzC~zlU6~%E%@PTZm9&Q=W zIX4i%RjKGzkPx%`4q diff --git a/graphics/pokemon/pidgeot/normal.pal b/graphics/pokemon/pidgeot/normal.pal index 7231eedde..c387bd5b8 100644 --- a/graphics/pokemon/pidgeot/normal.pal +++ b/graphics/pokemon/pidgeot/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -88 64 40 +90 57 41 16 16 16 -192 144 80 -152 96 56 -200 192 120 -248 240 176 +172 123 90 +115 82 74 +230 180 98 +255 230 139 248 240 120 248 152 112 -248 96 64 -120 32 32 -192 56 24 -192 176 192 -248 248 248 -248 176 192 -192 136 128 +238 98 65 +139 57 32 +213 49 24 +197 180 197 +255 255 255 +230 164 156 +189 123 123 diff --git a/graphics/pokemon/pidgeotto/anim_front.png b/graphics/pokemon/pidgeotto/anim_front.png index 9d28c7568abe6bfa9127dfcddfdc5c26dd713a91..ddae428c47845e9e6234e3696417fbcf92d51ae9 100644 GIT binary patch delta 981 zcmV;`11kL12;T>g7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hmF(Ab; zDehuHARr)+KuCj9G5GlSK`9`3c!2+`bJf+}tb1DKy;}d~i>!NEncTq3000ABNklyo1&5QPJFwPfV-{%^Z|0hI)!kg3|LUHiwxnelu!NPiPfKOT4dn_+$dV9gg4 zGZ{Ng)&dLzU@{Ve2s?q9Bq)oa1SZx?3iQ#9AQkI02V=UEFqY>KGzDRF5+DN%AR@?Q zbfy5515suMICwCkp8)WjK?wYNC&2tr`ZGL12&@I$r~jde^BzD50|0)5CWL@1;L!yD zdV{PFK>)5tTYnG=K$!y^S<4t>Ff=K!)2ololS}P^WlXL`#99f!!XF~KUpXeF1 zRzK+_2doIzl3sV2p!YNgtcsbClG_6iLe5_0yii&Imw)Lr2$yOA?QYf@FaIU!$xi1|*hSjp<;obQpGHz%A(71u#WV zqdA|1xChXh4k3wN_Nv1obvr;#A^!|scd3*5mQv38G6tsrA$(RVA(WL;5ePtp3jiUk z;q>W_XMcbI0|Y@hPttHX1)hf*A?XX_D#2sL00?;m!CwRL-8^`o3G_XM8F6iw=1205 zfkiKW!*Y2Eq2~$+d(rta+5z&p1bEqB6>VXtTA?QOsJY^8IV5%i;K^dC*hLQqeFRt* z09&e-zpAD7I{>6I^HQc8crdp2m}QprewgXNM1N^k0!lK& z`aABp<1fbDeYm?1clY5px)1zS{;~UTYMp87#Tsp6s6wqXeI6fJjWjTzbPs9-nKp53 z$IdtFOZVXg!KN?k509)+bsuVknO1%DP3J44B%ilSKzt))JteSt--BvL+}qW1$v2DM z>VNaeytbVyyZ6)zw*NM)dL!1gX}&Ru@m9-P+y4-<-mAW~$Z>Q3*s}lJ1MzvoYLywA zrPX$}?7va>EIUPO5-a1|u>Yj@CLg4mub=`n?0+`z$G+ti@MizbC-obkVgFA()8@RJ z_TQg=u;|Ji7NWB=a~z4o8pwyzK)_TPVL z|0QLz|9;f|H~I&UPW#{LAN0iCKe+n`d(_=O_+R1=q;5#_#?t5c00000NkvXXu0mjf DjH1hT delta 1101 zcmV-T1hV_z2i6FX7=Hu<0000z~7k{ z(XF{V(Lz$0-brf%=V!VloaD#3iBr5Z1meZR@z7BF7X1Mof`9N3B}<{uy^A#&Y&vKv zm`+l`C72F+Dt3*?U_Dw0B1?1q-kmI+q!_SQcn%s)(`lp1dsxttpexN zt12dh*eE~+#uOt$}g^f8?4uo;GsuRe`?d~~YKoUecd zk_f`rKxkI)%p{+0CkqUF14)Eo=)1_gCu~BN`)(2tqJJMoG4wSe^LIr%0R+2341!@q zu*#itLY$ru7n1@Z0OI#IG2s7NjPjgLfH&}2^k0ks!?u1A!kFX{u0mc6B4Ef^#VSCa zkef4rs7D1DD;M|)oM0xaoi@Q)L(CMZCU-F;X*8p_s4iIii58ge_bvQpp z*yG(40MRWMJ?uoOx$6|gjYBBYI!a5$@dyC4k$+Y@{{5rzA|FnMK}|XWmGe~kN;0-ivcTJ zK}>_#sn6ROSkrYqizt=}A-1a?ftW8DVzfV2b+!e);`>juoDa`;V*nuyBrTB{v|D2tntn-(2 zyxP&uwvN~oar*%LgR#-w(0T@OgrCT3U?^0sqnId&B3T|BCtG;CeUDuc+P!lqa4Fmb z5e%iENJoHg&E6jbR_jFq$OX|(mG7@z?SHN)IzpT!HZKZ-a2&q&**RH;{K{nW=7w)Y zKM1e%fJ1>xlUS<>KyJ-otOs@h@+7gEy&W;72No=ELK3Sv-pms{D0E?YCy#IpO!R;o zc4_K}UjbKoaAMQsMH&NRJ($~Bxm_`(2S3f^VRMUVJ(va1rdXf{R4PiA9^k*FSVm>( z0p*MIU`(j=0Mia%pac0004VQb$4nuFf3kks&^R0%J);K~z|U?Uvb+ z+#n1^Tlf~Eqzd!@e;X};F^~-Isl2u3VcIUAgFtMr*C#&lB!UF}$N)NyBM|+-VhWSI zYajv%4&XhS5K7Q<1xeG5H^nnNNY8`zUq?}75>E_*8ZQ6nF!-54`HEW^f^}!R7nLtb zxIvTH7kKYI31~cjG8Eo$AX>nBusOA<@fDX~ZGUq{A~+9JY%!}+V17;YlFpBa&c&o%9kV%C)HFfG@HF_G%#V`tF z)fGXE>BPEyw)bx6Xn7z#wrzFDs!3-=UJ1}WF?WKq9Q`IZ?Qd27`ow(-@=F+*n8l!z zOrJ3c2EL|$ARk8zf^!f!F9a*zj)$6p166R8=SVaNWDiK{FkZ7@uYVW}H3iv@GvOLD zd#P)H3-1PM1SWy*I91@h34~@`eYgyC?}G_3^I4Y|-vqQwp%>^L-1yQ9omH0m6jKwFDxftA@*9|ZQv~EEvL|ryWgzQht_E3s;x4fLCfVy!@WyB76LcioTy}$Q zQa3@U0*)gu8K7THgd;@7N+~9Kus|5`MnGKC;m_T0b^q~mg8S4IV?ybvC1da&M|#f7;HC$aLi-KE5GX2z{Qx~k@Ur#VuTf|} z$bu|hMp@W;b50^&mh^e@qDvij&xOuq4$m*Y|MN^HsZ{>2v#Um|7YL8G_4*40AkTjR zRkNWp_k3M92`uw0p<6!5h%@y@yFuHQt`nkG)M$fJ#~{Qfwi0MMSf`X&zNJ#ss6m}3 zg*l0>%&4_#8|o%w5TeRxHYwB@=bRB!b>uKXUgxoIt4`Agfyc8oA)W#V92(|z&V1ET z8Ad0`>k<2+0ICjsT?($Q6@b=p4hetnuN6ILw%aWe*!Rz;*G6+Mp*Y@wfZfPns(W?0 zpEg_qphIIz5Qw3`HWAQ3zL^8i6C$86e1w9P5MmzV zL1hYYn*%-q2?`zoSVZ}ass^o|fDBu#eA2}ha)B5oll*OKeycZc05C!))+-*5@(uv% zmiIyP&6Nkhme|6S1AO2JC;-TkBM58xl$wP3^E@&Et;07*qo IM6N<$f*+Gf0RR91 diff --git a/graphics/pokemon/pidgeotto/front.png b/graphics/pokemon/pidgeotto/front.png index bc3d853882da77b4f03414fd685c2aa7e7646111..aecc7f2422eedbb2ff79729d8a9d4d883543b2e2 100644 GIT binary patch delta 682 zcmV;b0#*Ic1-1o{7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hmF(Ab; zDehuHARr)+KuCj9G5GlSK`9`3c!2+`bJf+}tb1DKy;}d~i>!NEncTq30006sNkl>~ zQt1<+7Y!jj&N=&t5gqI0CT@u0pN0^jR5t`0Q7zIDAZt`<4XuRfT^{8b(yQ2Hv1*hQR~Eqc1Ros;9bQwv8x{r#t68sh@nlbepTD-4**03 z%i79~noJlyX2JTn9~U_=$(dsrJS#r07KPzD2qV~`+zhU>fM#Y|{~x~;pMm-#=_)B} Qa{vGU07*qoM6N<$g0C?wnE(I) delta 708 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 diff --git a/graphics/pokemon/pidgey/normal.pal b/graphics/pokemon/pidgey/normal.pal index 4488d161d..da639746d 100644 --- a/graphics/pokemon/pidgey/normal.pal +++ b/graphics/pokemon/pidgey/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 128 72 48 -216 152 40 -184 112 64 -120 104 48 -200 184 96 +205 131 90 +164 98 90 +164 98 90 +230 189 98 16 16 16 -240 232 152 +255 238 156 128 128 128 -128 56 64 +189 41 32 184 184 184 -224 160 160 +255 172 115 248 248 248 -192 112 120 -176 152 88 +238 98 65 +205 131 90 64 32 16 diff --git a/graphics/pokemon/pikachu/anim_front.png b/graphics/pokemon/pikachu/anim_front.png index 494c29e17776ac12417704b29cd9a6557fb5c470..6deb20d71bb8c57ff6b7019f99214487706945ba 100644 GIT binary patch delta 961 zcmV;y13vuI2g?VL7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!gA001c| zDPu7RQc_y?y&;@Z0Qcrn-jo3U_oe^;|K?gk#UUA}Fc9ESH~;_uyqg6g0009?Nkl_78u}6?PUwdL1wh1)$0J5I zxe>sea6uPfM+O~ zPip|@)Q$-_L4S%0O4)_pB{M&}d&<>XTWlpYMs?x!-8yVq2#0*IUh zP*M6lfc$FP!A(#J-x@3UzaA$7`CB2prF6P|M8|OvJJV(=3wmsbZphq_^i(-)a_MDHrPnH|9?CRd;`b^Odi%Wdd}+xkaH;~4=kHt zvFbbWMBrjT5j7KR1n+TOG|j>)J%b!G$$8*c-{s8%v&`)P-|sp#>7{CW~`1iBBtX#XXj j{7d$&dvLoBcbtho2IVRFqv3a!00000NkvXXu0mjfP|v)t delta 969 zcmV;)12+822h#_T7=Hu<00007GERJ{KN zUKFIzECgO|#?P8IV6V3xHupM~XzV>4 zb3{Blww9#TzkgaTzmp$F!tb8yKq*@;mm9y6Omx5%&TfEnFMrZQybTEWP{EOW%1q$! zCjtJ60?IVj=Xg^eXJQKRc{#HHUlNf7-b|@pa;O0%#PJaE+s&<~^3{_lT~Ckhc=mZk zKw<@MA-wwq5{P#I@bx#q3OpA;7EDVrRseuUBUl%7%YSG)L*ar0`EK|Hplnp4x30ON zELHw!L_2TsI}8;;$(7*L^b;V6nasY`vjAnJ`b=qgV~5RbKpis$px0O*U=5g{2ohm+ zF}t)R*-${5rH#dTc!vi1w;{m&F=*Al%zlrz`6(*HfF2y)^Py1umX+`{R_WJ{=WS_ zEWPDoaaF#sRf(*fT*~B25ZWU!Uu_VpCk0n7vsU5Bp6t<^%L{jMoYYJWwU1* zz{7K722e49`*T$8$)d8^mn+TZMZmr`gO)_48Gk+uu)VD|Cuh+5GO4h?K(iSceVK0A zkNMCgp|%gGUv#ZCz!TDGugvSd1>s`OPlZl9>zqJW_tW)CDhwxF=(Ll-)-;oIA=6Tk zz8_oqft#J@I?neT7Qmqa;JMUs)5CmG`YPgeOOv`GFtZ%|P(lyWf$v!YID=y)^f2x7 z3x9uR-uLbOND4jbdST2PbDbdZp@be%#~OwgT<^RrPw|ET;NgJlZHrywIFUk+fH}lw z_g{sraEPSi2nY!g`fttGxA^yGd<#+blqBIC~g~flH*n1K6~F1(>aO zBObyXKs^<%Sq@kPMjg{`4M+j?b_k3%ra~Tj-9{W#tpbBhfvVpiEq374jGdBY5C?!& rA@ZCc-YpN_TU{X|x$W00000NkvXXu0mjfcoVoJ diff --git a/graphics/pokemon/pikachu/front.png b/graphics/pokemon/pikachu/front.png index 9b1b6b0a0194ec82d23cdc6ce1bd7a7fe5401037..9a320c28660762bfa26544b95942c82083d7bcc7 100644 GIT binary patch delta 574 zcmV-E0>S;~1j_`F7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gA001c| zDPu7RQc_y?y&;@Z0Qcrn-jo3U_oe^;|K?gk#UUA}Fc9ESH~;_uyqg6g0005WNkl2rBe>fX15gKGrX&6eV3S>v>VSV3Pyx(xzu!|5w>tsC zOQQfWyAz6<-NM=OsIbC&33e|jZh(|leovYb_8YkYW`t17I`&)TuYb}SoXe&ZzZpTI0BBBW3vd1) z!DqnrBY6@~L`X2UugeNRVtuWC!C(r2=iqYyoHquM@U9GH^csp+0CSK4X3GBuFkihL z!UVJMyo_A@9zhHMtG@R|@byEE)-h4JFc z;R#G1z(?@J*_&r?Tzw8_yFg4C(-^Nz(q_v4@$c;Hv_kCSk0JAbedpi6K~4$PT;On% z?^QXV)?TO8T9a{;mvFSwo6Tl}0bm8FYXX=ZX~0%WC`8skh&rfwf>T6%YOpP-cjrm+ zLOO<8w{Nq66@Mp5ve88_$O5(&TOLlG)l=5u+#}#>AH(!1-Ug0e32-kAP@p`!#!0y! z>m~H>g_r^E16>3zhSaY#%>Wi+{{iuN@$Q&g#O=C?NG`NZacRIpKgZ#s)yAvL4_JFhFhMV{tYaGeuSm5XDhtHf9V& ziTnu}VC2r&sV>p~!>@9|0atIlcYx99Bme*a07*qoM6N<$f+XDvI{*Lx diff --git a/graphics/pokemon/pikachu/normal.pal b/graphics/pokemon/pikachu/normal.pal index 3d734a17d..8f402fd44 100644 --- a/graphics/pokemon/pikachu/normal.pal +++ b/graphics/pokemon/pikachu/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -16 16 16 -40 40 40 -88 56 32 -80 80 80 -248 192 32 -152 80 0 -248 232 80 -224 144 0 -248 248 168 -248 248 248 -232 88 64 -200 32 24 +0 0 0 +41 41 41 +99 49 8 +82 82 90 +247 189 33 +156 82 0 +247 230 82 +222 148 0 +255 247 165 +255 255 255 +230 90 66 +197 33 25 168 48 16 224 80 56 0 0 0 diff --git a/graphics/pokemon/pinsir/anim_front.png b/graphics/pokemon/pinsir/anim_front.png index 00a5050da7ba2fef39550f4cad6d48c9a27f3e34..9dd53e423fd9fda59240d15b97bee0b09b66be78 100644 GIT binary patch delta 1457 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 M07*qoM6N<$g6xc=K>z>% diff --git a/graphics/pokemon/pinsir/front.png b/graphics/pokemon/pinsir/front.png index b0543cab827900c561ed31db246abf049680da5d..6ef852cffb712d51ed081345950c2306e7d99abb 100644 GIT binary patch delta 840 zcmV-O1GoIn2Ga(R7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!g~K{E|*0000000000!T1{80008fNklQ~bsR$l zP|mKWOs1bOz!rAbQ?@}VVJ6&noYD)yo}UOr4@m&bp-BMWNDfE|L=S1VAaIVrEuebb zS*kL`>;!^26RQJ?D}5lLFy;s(4=fpYGypNLAo1WO`hW3$_zt8LIYIYf+afLm!hbyj zN&+}MkdUkl-d2wHlimQp&(~iO^3Xsn2r3@{NSV9>H4s@{m;nlq8Cmq!0;)d=kvazw z9|DQK6*&YTY43Al{LtpW0f+nz0NuPfIAy?kCA8?7f7=E$sm4y-E~o?3cg;KqL63}1 z0yPVf4}X)e+`*x_*P#0P4|ped8(0HU-+n_tUsb&h`X1AmEkvw!9=HO$1OQEoj?shZ1kb1uP8Co+ ze^pxx&})grc}T_9d;&l(SAe*dJp~3R0b@;sx_>~ZUWCxh%K-G|kd6)sicA`SPEF(n z#6N(PVYd)~8PH%Mz``#KSfI<}Xv203tIn?wb5@U~J}8;%K>h}*MF9GH0JShVUS#up z(e{VR%H}wT=ji|}M|h`R102qW#9BEfN0+vh=eGci!6cEU3(~WXv73k30Cau7P!C{S zltHq&H0a-DV0$9%AS=#<%R*(IZFvzX1?JG;yW3hAy-C5a<1eQM{k!yUydOXOl`MUt STZr)h0000a zygUC$8k=T>TXOOH`1`)!cW1-+2Ww+%4PfrC1K8H~8eso^jplP!3+xn|-6nHtd@fo0 z3(zjNo6I??>CDQvOt!lQXt&);4|4W&p>R+IDBDi)aFaEwfO*K+lTwVi6%zy$Ih)N7 z&hgQzgvr=(v42&7>#qXsvhT(rbKJ+37K>;ExbE8uaKM~xMF4yukJS`pt?g2b@B%fk zYQZobGUxc&R(N@VW3o^S(0kp>OVmKkS(pk)eq10XKiz5w^8VU!y9pxBPNT2ysvQjD z5ef7LIPy+0ifaIKp8)R!&(Gf@!my^rw%Z-QIY)qye18gF*Mop-)N35WyhfvokaDho zD4Ym6HRK9G8NPq?fB=aYgOE6_0Kd4Fh(l@;M|d}kO~9FV<_*SD0tgU6dIxAE1bCdE zi7Ole47qQFqvd*-L@2ZZP9Ol4GZ`(vk4Yp`r4SOJ>&pNn3dlX+^)(3f^eQUfrz#&r zIt3|wgMVz+jWR|9Bj2z{W%RP+;e-@4V3$CsM`BTo-<&!~DW@wy*38!Dpr!!2VyF2i zAEcRG3sK0JGEj;;F&g>M?SV{D*J)DfIInK99*s$+7zU~=q>TGn7n#rUcAOv92!N`@ z#G$%X%9FqFsQ$*vpz44i=SC~VtoZ^6AO~Wc2!Frz3CA5(ky?kOaTIG0bAjY$+WIVI zM|sP1XiOsJF?kSNs1qCR*`CjJLAMyF+YIx7ZVIWP9`}s2O#;-f(WmbLq;K+o5R zXFLFf=?kxu16Kafu)UMwjs@OcFf0ER%i`sSU=hpfzTk4r@2&oC>klyGc>=4H>x}>a N002ovPDHLkV1hXsk4^vp diff --git a/graphics/pokemon/pinsir/normal.pal b/graphics/pokemon/pinsir/normal.pal index 118638fc1..9e89703bd 100644 --- a/graphics/pokemon/pinsir/normal.pal +++ b/graphics/pokemon/pinsir/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -72 64 56 -128 112 96 -216 216 216 -176 160 144 -184 176 184 +74 65 57 +131 115 98 +238 230 205 +180 164 148 +213 197 180 248 248 248 0 0 0 -120 96 88 -168 152 136 -200 184 176 -80 56 48 -152 136 112 +131 106 82 +197 172 139 +230 213 180 +90 65 49 +164 139 106 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/poliwag/anim_front.png b/graphics/pokemon/poliwag/anim_front.png index ab30eaa66ca1234d937e15e332fe536388796f5e..53a5e375401851931d18fe8d3847c58cc412df67 100644 GIT binary patch delta 747 zcmVZ89!StS{56B#OKl=&G{!fUX&(f^`qU1~8!AAmts(=_N zgg{k91|$*!AAf^X5VOZ)T|(FZ@Gc_XJYT}cKne2(SnG8H%zSy^mH7lHlb3`(T^1yK6lHvs78nY1s@K|mQn>MKBd$wTWF(EFK?_#sHdgCOx6 zzX9U1JhbjW2?AJu4uD7`_0q3>3OfKr+5winya8x#VSgrYGk1yaBT_1WNB~kN`qtMG zBG(hjAy@}MIU2c6N~q4i5_kjk!iaeQge58I?}>S>{z}l3qSgHqZo{b3S)0Do*+&J!>lka2E!^Kt_H(Ks2L0kp=vPf zfV07{_=Bp!umI`?<49-=h^E2V1MUSx#b9iJ4gpay7@NYl6A*QSu_=su0Z}&?MPb|u zh=#$Kj{@PVfM^+vEC6l=MB89w0bmgjCxgL&E@T1GG8o$L6cAN|;kyMy-Cz_2(IX&g z1|vI!UIB427#?z=S3uy&V0hyy{0H dFf#H#6@c6Lc*m$_;==eBrr~m)}0000wyOO~G000SaNLh0L01m_e01m_fl`9S# z0007pNklq<6o#P@ZPr}kaa`diAcx7gaiQ@>6@M;LNTd{lSSZMh8!iP+ zX3VAF1(Ggxs?=1OFfzruGNtt{Il3UNqFrSsRSNwDh5wIpj&Px`R4P*BUsERJRc?QF z1+5&SeAaA29#MOX0D+eJ0BByd%qplx5UUFCdiX&(qCV*ZG^~+oMEO1Qf$1Oza7fi) z2*`I-&n^ASw|^GvDgnKE@%4L+5CHiOe1r?O!_Nem&F+O0@b7PSyZWyLm~Hv`UIeax z?tV;{NZc4v&-qFOmWh3!>OKn ziV%3@0brNr8>(N5H{y=YV&QUkyLdpL^0}s;Z&Mrah)4IpMtqDLSP%QnMmRCtalp%_ z2TFT{5bQTAmiljLl&{%v`#>9{!Gb#VeGH>`)gBjM!&s)q5sXnvSuNX~j-WPvQKN>U z*MQo=DSuQkq7O!RD<}Y`9nSs)iXBcg+VK>C7X2*hD^HR90!4}xDe||VfsouD4FqzC z&_HsC$Uu~W5gUj~Fk%ByjYtecK0+`MC2%qjg+C+)q5uQ~iFTv}BV`~VkP(c;Kw44% zhhW480!LdS7=nS^_&`Q51OxH#-IEav(LjzqkbMyh(LfN$2u8|4&<_-X5g7=zC4wOu zh#?gW!9Wa|U70QCSTmz>*o za^N=71MRsj-4R=Xc6XE?5#Q#hBqpB4^7|tHZGHoUonC|FkI*3i0000c0004VQb$4nuFf3k0000mP)t-sn9!gYIdhAo z=2C;jIa-7N|NjsW5Mp9tw5+}Vy{!LgYQ0)Y&CSg@bF2UW00000KYn4)0004+Nkl}N(e8K>b32OIDe8K>kGgSd)A{jLR8npH%u&)L@?4CN{4_`U&(y`HVIZ2+-kA$7dqB3SdPdxDZg*p|`b zBGKTRVBrxD1caq%@ctcS@)jKLg4#O5(Gdu-D5-q}Vq?x^MHHU`Zsp; z;`qYv-NH(stSdp|#c?d;X=Lyy#eyosJMh-xBqUi z0Y(v~+5ka|w3zRR?}pf<;K6xssKamQFi_i*7lqAc<*0Ar z_k2n#hH%v2|Hv!C1SyRPFl|aw*$BT8Y+LpZbnpx>H+5o+ABh($00>D%PDHLkV1i(K^bG(2 delta 558 zcmV+}0@3}P1iJ)~7=Hu<00013M{Ml?001yhOjJdf(4ZJNaEPGbP=LTVSb+HW_z(~f zU|?{-z|i>6@c6Lc*m$_;==eBrr~m)}0000wyOO~G000SaNLh0L01m_e01m_fl`9S# z00058Nkl4u36<7|MmACNBILSWE;u z^b6?b?BvX3B(=kH($RhwFD*!kJO(!t&d{Of*K^K$&15#(=&#BOv9;FUK7{fbBD-BG z!8#&;#DIXZdH|FT%a#tR2x030JIxDaM4?>=DB3MmMD~oPK&P<=aD;9W1FJjqUE8>S zEK^kp82aABQ-59vfYlv*ggqMba{+X_H>nByet$eJye@#QFGn|N;N)fe+!-)&YR-Hq zhiPCyqF|8^5KV#H)R$rH2lxPc(4pR?3(@Bk=*d_MAUYXUEz2JC-Xk=VfJr3x z5jFigEQ%t<_R{w(LS8lD0(OXg*&IQHh?M{B%tv62Kh)4v_!?j>o`Q;qI+)2;Pyo(x wl6?(|4ku?8?L-Pdn_Y`~y)|PRpK>z>%07*qoM6N<$g8u0Dn*aa+ diff --git a/graphics/pokemon/poliwag/normal.pal b/graphics/pokemon/poliwag/normal.pal index ce4fa2191..09bad1cd3 100644 --- a/graphics/pokemon/poliwag/normal.pal +++ b/graphics/pokemon/poliwag/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -24 56 112 -136 160 224 -80 128 192 -56 88 128 -248 248 248 +24 57 115 +139 164 230 +82 131 197 +57 90 131 +255 255 255 16 16 16 -96 96 112 -192 192 208 -248 208 240 -248 176 224 -216 120 184 -232 232 248 -56 112 168 +98 98 98 +180 172 189 +255 189 172 +255 106 106 +189 90 74 +205 205 205 +57 115 172 0 0 0 0 0 0 diff --git a/graphics/pokemon/poliwhirl/anim_front.png b/graphics/pokemon/poliwhirl/anim_front.png index 1f3d22d94cfeedfa96e2c3121f870612185b10b7..87cb52b3a54a1dac4ead794760ba16192bd2f588 100644 GIT binary patch delta 1132 zcmV-y1e5!t3H1n&7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!ggIbu>; zgL8w$`1ts9gT+u#P`J3j4-XHBpx}6Tc!-#w@bLK6)!qOA0000072*_4000B?Nklz1S{422D7pecC&*PZMH@KRNZ(|^u7V^&SI+U(CHqJOe`rs;_%o;V32+Uz;! zZpxkaz9V$c(W&B~_w(%iQVHZ`SN3lZ{LCB{XD5Z8nePx>knt>f3(?OUg)rO)3XwUw z9}SNLk^+1j2Q+yF#CQ+jyBzx7gK>cL?dOL?PToSV!kr8dPCvVFV+8Ww!i^AO)rZ+4 zYzcHZ6{P)S@_&#l!k%%8z{NNH{7P#C>)?uDo+kX_O`bCuK=rkRq?Z0aBi<6Y0JwU3 z3+TBfF!)dep(0o}xF#_AP&I-DYd>!4(a~1}^z`Y59td)k@p6BomnujYZTiXtzf*wf zp=cLE_wN9Rj+2J&^bpU*W#9E^m5i-0$X?0I5r41@y_qn!$`63W13XYiY^~poCCgwL zdb@tQ?(q}#Dr7XU3^yTzLZoZGxn5>Ya70ID;KvN~TvIz~|nXFs2e#&lME_ z$Ai|NcxU)pn4Y45%|yUrPz{f(*7IYir}O5!uz=l8MZ7yp+2}(xHQ^1TfRAt5sPAy| z&bfQ%BSVeX*Y`A;KJUD9&O5m~d(D%Usek%rEp>C1)5R)*s&~${hEQ*_s=r=jXaZ35 z3gFdK?Zbd&K>}F>t%hKPp27$K;}cE_@2rH>QW$Ve^7KIhP?~oZbxUE$cA0lphBi>7 z`r)l}y#lCru6ca&&gXy;?|hNMwRgS(Tzltp!iaaiOyTj){}1mhW$eB4ZMzfo`DIlN z*lq9K-1q0bp`hKgqtQvYD*X1ksqMV;-ve;q{#O7v_yYhh{9%1OKEg=><2m3@0LQD) y78s+1!*w<()Pve7HXo-jTo3Kk>wWJ^lb|%|dMVWXO^L0000V delta 1179 zcmV;M1Z4a52%`y*7=Hu<00002KXo2s%*6V^{I7g(3wINExL-~B( z@w}j}t>TBE{eRPBa*e%NP=BcfDEK8n_W+LcPcW7>Xn{PQ98MgJp$k0#zG4+Ct6pUN zCVpVma>j2#fST*Nr;5mD{38d~P8nl2?pqx}Mg@#tF%}a^3}P_0^>e#`k3KO-(O}bh z3{*JbJRw*lf%nWEGWM>)RETFhUK4WAg1DDJ6bImZF1|k^jm{|{rwkT+j4l>m zptcwgy?<4U0??v#+#YOz1F;ff1w|eRBE+3lqTr(b2FMwf_^T)GWSdta2HLH__xlj1 zEo*?#V}IO_U%NFI_ZPw@>y6EevJAMpN{)MpT3tRWIu?H6jJyU zN_Yd?paDvKD$S>@4{?T!jeH;iza9A605Sw*@P7&Q-{=Dv2K@*?TPAp_^&7_J&p?2` zpbr35JhkN}(>)ms3zaQs9wH#B)16>UT5nZZTpYeEC3yD9$xO>%fu-Cy8qF>Z95?P=d-iqN0-myHKpB5 zO@C?#kWBTIc0W;LR0fEc9NM7W)rZ<0ayGwHKyMjB2+(fyP`hD7ukKZbUYsMP-BJWr zauNfuT1(|fX*X1M+e-k^IbY7w+D+EWnb-iWAqc~+cEi(~z5Ulrry_*kQ*ByfP$X1%sDIrR2Unkqn}OOWIM@Oqsol`oa;xvp#rC+v zakc@dEu}JZrQH~ncaFFT8U9q-&6OYRjsP={Pd+iJq%8a_{e|?1$b)us(C%}1bMk_b z86ggi!bqmzB!ntZ=Bnk?79j%_ABKzWXDx6-qRx_#C4)uQkOu6N&Y}z2-JQY30)J~% z4YYd^cFrTR=ql~b0>L1JApdB0%Cg#>vaEJzfQ)vhEUVq=D!&=+w#rJowH3qwl5Jd! z_5!1g^6pDvt5;-a-;^@58ut&ns{i|7nAiUT9BzQ(M4Q9feC&2{q77jct4S9{{pBCp tQyXBRJ%F{D2m3c-OMcz|X#b7<4HR*pFhD)_rxE}F002ovPDHLkV1ix0I~xE1 diff --git a/graphics/pokemon/poliwhirl/front.png b/graphics/pokemon/poliwhirl/front.png index f61d52be2d2f001927ee43cad49a69353e72463e..38ae21a4be10c0f9ae98687c3afe5ea632534bca 100644 GIT binary patch delta 703 zcmV;w0zm!$1c0004VQb$4nuFf3k0000mP)t-sn9!ggIbu>; zgL8w$`1ts9gT+u#P`J3j4-XHBpx}6Tc!-#w@bLK6)!qOA0000072*_40006>Nklz+&kTJ3I&du}^l*A>eACLwC4>3^%QzIr1fdK#saZrW4M zc}Mst(ObvGpXWK}r4cCG(8f0id1jU+#YN#~<~xKWww}!&GXKnKgyA}nD6^)ADV~N5kSd5C#5k0<=>P>2-^HIhvb<+A6vo7 zPhpo5k~8Bi0)Lwy{&_8jBr13yn5PL}yx6ym0^t6ZLh;iRVcW2F+fIm5w$cHz!Xy3i z7Xrb$g$@E{WZNov0C4OX%+^LF>X6dnfVy?@liyTpMF7_ObI(D7&_Y0sZBf|)<>W5_ zENI-h;G&EU2BEYN><-s6poLI8D-k15S`Yx7Y*9F?g@0gnlWHyX0)SueX9(L!0RSHq z5KjhtSW<{4<+>B9wU4#1fSZoL8~ zTZ-j4wjP4lCv*a!o9u7}cqbzS;o1XeGY5bp1gM?jUjV|PNEY87Hxah57EI_W9=bgj zap(b@0DpGV*`?0+HZqPAgy8s=1N(SAGWaA9p`{RocnRPGAhpYf;O7>=;6o9FhG0M8 z7QpC3H3%X0dffD*qH722;nNL25R@8YO@HxQ7G#XxzSiJ(5^z5peItB)2S9Xf8oEwatD3EE(W|JUFzM{mQwGAgkXVzMlX9002ovPDHLkV1n@rL*W1b delta 755 zcmVBjE6vxjL!qLgHC`}+ktq`2jDL$LDvwwvQ?w0lgbTB7jnk5N3 z<8(+gNC&}_CvP2u1BbnI3G@RrU@k)!H-z4I={s3A1)V#0$Xm|n|KtDu@A(d)r}`hu zDrblDYJ*-Ohvn?3myLR<(P~<75Vv(`1fF^RaTOuELA%6gQKOz?S(fd2am$$EWgNU7 zk4MCt#I3hRfPaIo0lopSwLT_9XD|X58Sjj3LSPCr0NP%iEUSK5)Jx>Asvi_|3$aDKRnQ}w9JPfIH}08|dYh6~Vr14!qi;hTJ8E`16lsO^h8n_Vd zK#22>SX%7Lsg&}o)}PBe`O_wyw4+P3TgdTmPE0uIu2u9krOq=D((Kvh2WylyBa-HA)xrsEt8XDeVj|1xKT zsMhn+-g$?5UFtiIQ^hC0LBEHcf1b;Q&!Sq~Pr+moCjCSMXsB)=TL!3;h0g)-IZuNA z3fNK$rGFL>a!XOA9&n9=#MufcBdmU%s0TgfP-Q^i$Bc#G6X*wP`p9t#?*?jT1Q#s_J``UT!h2-xu>WpUe7zX*=e@3!A^;Pv lK3;9!WnP^BTYoA;{Q)=N6N-EKVBi1%002ovPDHLkV1iD4R}ugK diff --git a/graphics/pokemon/poliwhirl/normal.pal b/graphics/pokemon/poliwhirl/normal.pal index 94840ecf3..ac25d75a6 100644 --- a/graphics/pokemon/poliwhirl/normal.pal +++ b/graphics/pokemon/poliwhirl/normal.pal @@ -2,11 +2,11 @@ JASC-PAL 0100 16 152 208 160 -24 56 112 -56 88 128 -80 128 192 +32 57 98 +82 90 131 +115 131 197 248 248 248 -56 112 168 +115 131 197 80 80 80 184 184 192 15 15 15 @@ -14,6 +14,6 @@ JASC-PAL 120 120 120 136 152 160 240 240 248 -208 208 216 +213 213 222 0 0 0 0 0 0 diff --git a/graphics/pokemon/poliwrath/anim_front.png b/graphics/pokemon/poliwrath/anim_front.png index 2e320c58997b066e4385e44d86baa5a5994a8ee3..3e63a0c1a6dcb5c84274ea7e95f6bfc90b6d1fb3 100644 GIT binary patch delta 1224 zcmV;(1ULKm3D60U7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h7T7$H` z<{&v*bA!bY5D@?W|JBvry}i9sQc`<+d+6x+q@<((0000000000pUeu-000C|Nklr$AJC+-@AQcJm%c7Ht{-}Y^Pv4s$RCx1Sl zAzpZ&07?FQy`BfL7=sZiS;@K1PCyA z2)y>VVll`v@_%1A^(z4CAk4}8A$5;{5Il%E9C&}P~9+yd~V?fX_0 z^rc1c)sXkSC;~TkCV=U;{ob}Kp^9uX<(%;dU$Lq`GPlDJCm}{Cr6eU3I#_5HStcG@ zd4s4Pa1c;UQ3FLyoCd0pK^F_E7g=UNu~`IA0|&_urGFR!mz6K)7eHMa0q~e9<%EkM z020~^{71m6YjH3b-3sM#CPw82G`x41g0LdLnEr zC;dY#0Ds8m$g0L~Y5*^yB-7q#B)J2UG|;<&P#HfgGnN5>Hqp;%fK+rCKyN3pZ~zig z!9#}96_DQNkcO~rvw-$-Cqa~<26Vha<98p@)dKLk5$bBdEN2)zudjAwKMh==x<5LQGAw8`<~EB!m;uJk6W{B!B2{K#Z5isaMaZvK88s$ZtR|xjM3L zegu#!M%oGe#K4HUY%%t`%Bni$J%GzXj8<9=01E<@6e9vSP9=o;b36o0mjRmM@F#%v zT71j^=cUs*#x)NT#heL^_vyL%@)hHZGqoqgK!s6Cd%;fPRbVSXcIt2PUje**w7(PmZY z_0e#eD`^Z!TPk%Dmxat+H!``1K6C;HsvFfN&9)sUQ?*;9`Xp1-y_B51KXiwtD_B_F$ zR|2f%ar}0T*gI(XyiPEpR$a{;xS~ZUxDt$e;fk+|0tH8c0rYNo2k43eo1Y~ZF?MQ* z3ZVD8d4dsQw+M+9&;%I$1S3>^TdKh6V3}Z?Wy}T88dxM4Hq_;&twoq8!MGbBLVq;C zI>ES)F9?fJT6r(Q;NknPeBeni_-g6N?QE#5n_%#}^P<|FCK#Q?`w3Vi7^^UCnP9By zOhA^2RtbjF!X&|PT9_pm9>OBQSOEU}1OwtA!Eh!JI)$H) zK)(ZhIlCqp;I`1l2Tg*Zr*{b$$3X|K0AUs%cmjl3eBcQXrtyI%K$yh`t^i>cANT@< mS$yCN5N7egH$eEdS^EPSlt|fujvc4~0000Q delta 1264 zcmVr7&vfHfWQzC5cv4` z$jI2Ru)s)APQTPsZZKfR9wF=#rly)FY;#weXQ5v5EaNZ4) zb`3y=Oam`E_b*C{XppR3IdAmcR#o~t*S zfS+Q%MPjbhjn4v_jMd|Kqf?|!rQlxpEah!GpwA(4FMs6%37sPP{?oO(@t!L6NlAE4 zU+egez!U-f0U{qjVXIVe8-v0IgZC0Ne+MA`21uxHu2u+KBoJHNN%^pmO07vqVvb@6 zj8$2@V*tnplz=ZNA|zDEYo&h1MW~5<$B4RujT0h|DUAy5kV zDYLN}72GHNJmdK*fM#64oyVMWc&kAmADb$#9 z7_(xA3OHrP0U&)OAPH{C)N=+SK_BbV@w$@*DKrt06M)A+I*N8XwnhOLx(niNsslix z%`wVZeFh(=ah)2iQ#jto>VQUgoP9z9=lDbX2>5OhjTla*3D_EOhf=c!d!arwuqr?z zYk!Fte*{1Qy1-c#(7({(szp1rS_LHK+_-{1Qw4lp-8`qB*W=(vy;H&!01r1Sc*TMjr zY76h5b)FjemKES?f^+*ao7d&FS}$|MfqygwD6G^Z-{a8tp_!TvWcC}DwFjh7TkNT( z18FXQnv5~4u5o!anu)aPKr%7A8ZD=LK!_~29EdM6F%i4H{dBU-b8b5j?hj_uU|({c z!GatI(&PK%)f|X|rLF@BAJ3mpq4A}T1L3VB0JZm+p&d9aUeAsmIJYY z|K5T4q2WM!H2_FB+t~uzeCI%Tt!YPzbmiKC;F296sw~a5Ad&g(v9_NSFy%c=*75qjQD%qp}COU+9tx>6?Rl}mQY5FS#n%E_%G_}|C> aZ{sgC_H7Ls4c<-w0000c0004VQb$4nuFf3k0000mP)t-sn9!h7T7$H` z<{&v*bA!bY5D@?W|JBvry}i9sQc`<+d+6x+q@<((0000000000pUeu-0007sNkl$0mL427GKy3uPDqUo>%Nx}Ad9x|TT|$t5n;Qb?0XG_ z40j_?>bL!8Y-d6f<&aA$a>jOS=#OG?B%%`#sn*ItsCu$$6~zmOQ9dA=2T4MqsbQdo ziEf|?4Ro>)dY2Ug)T{z13>+#yf|3Mjt8M3nsI|rcmVcAEur$E|D$EM}pIbnyQl=Jm zW{Dn(z7_)jxPi1m?4oZP}eLf|T=5)~cr**#?3ev~kp*EMEeY5D52?cf_eDixZHC$P0Py z$>fBN8181103pOP0P%D?oz>e?j>5bX%^Qd<*LX6=@FRfl7>^G9#K0Z(Z6IDx^{!6J zuK-gP5cAdQ2JnWUuM~F#npjGL_Bg%;ylevvFNgmFOdl^FuK<1PT%5Ca9wFRU(YD~l xlxE>&Bk5Xv_BVY={iI(O_Zi|>@^AcE`~wRDBiAr7&vfHfWQzC5cv4` z$jI2Ru)s)APw4v1mvchfNvbc%5B{ zDiFkytBE5HVX&I9eeF1|h+rX@i9Ob>1uHmD$^{_$Qx`Z)fWU?c=98ZZ%DW&%5Neh zlq^0NWc~yYy#3YswRE`~Oq8}nEiqNxZ(q&SR$KF#v;1b}(u2wc!aAfz@|M4x#Q zbZO2LL36`{O;O@j;E7gFxA1mGn8jpzlXz5q{ZVjAIi?wa6x~f`xt%64pv%I{#}7Ce z(wJw;-hVoGTm;eCFcErCnDTKx2B!fe49qkhW!k5+T)Cn%NY&s7&`4=4XP6@VOn0#i zTI&H8qm%cB&=fcZRGMo}Kq)=w0`Ro@)zjZorqDuHX*<#q@Nv-P@Mx%dTID?eEyqnS zb>3a>iUdulk=DcBAic1Q?WVa}*;1S_RH#ut;(r9bwW;E66o-c5A?B3g=7mDD@9e4FQK(Yl1?xTFqf1k1Zy!mGUg z(3gN)ZK4t3&0GbZXGFe~t35oQsEZHSIv~PlQ)K-KKmxu3`|E&xLVx}>r7zdJfT>a| v|0?jESqEITzIisS*Hfuw-X`J&{a>r!08TKgyGxat00000NkvXXu0mjfh);XM diff --git a/graphics/pokemon/poliwrath/normal.pal b/graphics/pokemon/poliwrath/normal.pal index f3ae4d584..e1f44100a 100644 --- a/graphics/pokemon/poliwrath/normal.pal +++ b/graphics/pokemon/poliwrath/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -56 88 128 -136 160 224 -24 56 112 -80 128 192 +82 90 131 +180 189 230 +32 57 90 +115 131 197 16 16 16 -248 248 248 -200 200 216 -176 176 192 -72 80 80 -120 120 128 +255 255 255 +213 213 222 +189 189 189 +82 82 82 +123 123 123 232 232 248 -144 160 168 +164 164 164 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/primeape/anim_front.png b/graphics/pokemon/primeape/anim_front.png index e07e1e7d75350cb9d9c51e308b9ecbd96e48f719..dbb5d7f0d926b6f22279fccfc13488dcd89e1239 100644 GIT binary patch delta 1295 zcmV+q1@QWX3YH3x7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hFF#w!u zYR!vU0001DN+AE{v_U~Z=DnPIdwc)?)&G=Q`1ts}N-_VGTHvsVJtqb7000D(Nkl3ZWJ3^X9Hoy2|r$E_}on9Ftc*M3pkZR*VoLI{Z=%YX8<|ImyvAEB*t?lyxl zP7H416>jZ)0xJgI-@pR`4WbRe;zNVMFGJ5(;IRQ{{18HRLSOg*8&9siPU{XfPQZkR z4Pi?_e&HXF5Qu<6)u32+WxxsGn=LWWE5sv#C;anCk2KWwOo0SDkjZGzCo@0*PrrkI z1dER{L7gqI?|&;A6F_(p!)CVt7!LYDJU+1*@6L-2knlqA#G&~+C>{w42dZoVUIL99 zG6WkQ_!Z3tnZbf9twA_3$SN`%7YqU6K^8Iv5rDjp@ht))6Ck+aO9l!G%~e**!urm@ zzG)02UVU)*MTP{hC$;{zia7R(QzcV^F+TA2`ms zfnzc4JQ2>wS zUY=pji4W0%4J?JZU$;Q;NbusiK;PcK3Or|FV>=e1;J3bBj$nj_mk?}dl7_>=85hC1 z1C3nSm46^GUQ@XyNR=uw96xBsfi6oVN(Nic0CJ6hh!=_w!D6_6rm+S9smiDa$MFM1 zaX>+!%U>sfalDt9zyMYvtVI+8q!5BMemihRHaMp7y7Dg>?O={A<86mQdJ-{UlFP14 z4#QTOZ6q)UFf9)-0g`QP>!e>=97mfJ=}a5maets-peSg`st51Ku-J%902SVHKzcDO zoe%;zkB<+e5Dpr2VxTvb3^Xobr$-M^0{Me*o8R;wh}~pPU{lS)sF5RC&50orW>-~rS;q1|3fH|NFgC?^ zApaMw?|Vg%b^TEO69H*XJZ`+>!RGcklz;z`;oM{(rHC^_`LC0x#lMDt;xm^2OY1a7 zkBpU@ESSpwrEb!C!jAn{M(oIc)Lb;udoI&uLOce}sK??9W~yP{H3b_C#7f1z6bNMKl}x3=vi z?Fofazu;|+=Oi$<@hY+}hpWY)x2|{biR7!)zxEgV1zNH`cJ@OSk^lez00>D%PDHLk FV1nkPU7Y{` delta 1277 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 diff --git a/graphics/pokemon/primeape/normal.pal b/graphics/pokemon/primeape/normal.pal index 9e19a46d7..015a68508 100644 --- a/graphics/pokemon/primeape/normal.pal +++ b/graphics/pokemon/primeape/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -88 48 0 -152 104 104 -200 136 88 +90 49 0 +156 106 106 +205 139 90 0 0 0 -96 72 32 -248 224 176 -64 64 64 -224 184 152 -120 120 120 -248 248 208 -248 144 88 +98 74 32 +255 230 180 +65 65 65 +230 189 156 +123 123 123 +255 255 213 +255 148 90 248 248 248 -224 120 120 -248 168 168 +189 74 49 +255 148 90 224 176 136 diff --git a/graphics/pokemon/psyduck/anim_front.png b/graphics/pokemon/psyduck/anim_front.png index 4129b5ea9d0023bc1c9768e6e2090975ca8585ad..0b89ba3742e93899ff8da9be51a02234b5cb314c 100644 GIT binary patch delta 821 zcmV-51Iqlt2EYc87=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hmdwUQN z5R_UF=A=^p)k^>7q~5er|NsAkS^)p?Mru#);uz%Toy`FmNf2lXw_Y#0s z07bmifB=^CLZG*|hfuy=!Ae_jPD0?oMA0e)uUr5{{-;z!`1MisjSzhV)yJU&AvgvR zm?@<=SBQjmq55rWgjA}0zGD~y*fy$!f-103UNNp0z_#U_RWE-e!e>DNMVI$|&(?qe zq61I}IqiE&nSX5vc3B*RtoocjWgKM^*$K$fzUue=lSo@~0A4C@Wq`UZFv5*~0U-La zqg?=+8wh$`nafII5Rm2uq=NkdXR++0_W3ga-jGDeimJX6U_jZrRy>tMf7Bs&+)+lr zfWYr+GoT}2z**lB`lR>{V2B`V3LxA9V!M>z0gkl*O@Bn-+sgp!^_Fy52C|{xC){ZT zwgw!JxAP*_24KD3M=$#TU&wYtoe(736GsqrM6JHL@g_vo|2?OEe}a3EA0w}fi^|-f z9bAAivx_Iar=EK1so$?<)4gVz-?Zl1tLt8Ag4Fph0@j`f&TI&)GS_rq2=(k=(qp?000000002S^O&Om00PWOL_t(oh3%HTZrd;vg=uN> znkP_c2?{b9mOOMTBpOB6#EhRHegGi>9e2xOW-E#mhCF65%71KKioRVgDcKH?LwRX| z4!)!B=X>}Eox|9v{#Es&UUUQqx`7}%>y`+j?g5PP555s$$g(UO@_>7QJm*r%tC6qI za(+F(A!6uLDCB%Tw=;YL66q#LIl==(dMBG258!}ev7+Wo-HotFUg&cgvCylr`~(#W zt?M5%eXc9G2!8?=kLKr0YXUAIAkwu_Pb5)D8KE_ZdbwTysnx9ysExV*YJSJU1N4n6 z0ul)qv2p#EN^}F;xXe7jMWZmtMLd}n07xA`3L+N*0fDjuS^({Waivrh6Ht19G3VU& z1y*38dkRzAFX4a&XbAW!Tfh+z7|R1uvaACjqRhaM1AidxMmqp2K_c%LIcfjy&Jrv$ z6qB|sL=4u*SbK{0pnw2XuqO(54)wa)-9&`?^dy_R6g;gU!7V`->TVqp8=l(V`%C+< z;0P8tt>?{i{S9uTt*HOKt9`0d{nhG4N7_dKc6P-184p;u_XoV^HRcuwx+NIz9zf|J zW7wG4aDT|c%zmS?@gM^Iuq?yn|@JE?^4nKYZJV0VChfr>jT%$i=Qr3MDwpKpYC)7JWPR{Q?D$eyw%{&JP>2 zZ7&H=eh4ls(Ul+i&)lU3Z+@U}Y}A0K{P3UFD>$cE6r=?v<^TWy07*qoM6N<$f{3Yj Ap#T5? diff --git a/graphics/pokemon/psyduck/front.png b/graphics/pokemon/psyduck/front.png index 138c13a95cabb0b75d4a2e376e8773df2e4d9417..523d337814990af697f51418acdc67db3d9681d9 100644 GIT binary patch delta 481 zcmV<70UrMK1MdTn7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hmdwUQN z5R_UF=A=^p)k^>7q~5er|NsAkS^)pECN#kqC5*T zcvGmqlujTPUq7%60h9tefl&-Y{*?TF0hCf}Rlj^8@K-?r?5nM{Y5@$80{|veYK^ES zTY_y%fKb(6>3_}Z;3B3Vph|r8xArE`NCCj6_AUeLW8ouw@Gk(w&l4R2z#IT|UsK{v zN=^XH0YqqT&MNXG_3O_7_do)W33mTZa07UBO=(iVf9S9WPLwm?gz%qgGhiUxfUAEX z^iJ^|zz`@sIw3|f@?4tMFm9w2agyEd@~aQpQf zz0HBYk?la85Fq2}M*s}Ot})#H5aJp?uQbjlcLsSm^LSmrwecpn0j08w|MVU``s4Zq XLSPcZ_!sh!00000NkvXXu0mjfFg4b> delta 487 zcmV=(qp?000000002S^O&Om00DqWL_t(YiS3d>PQx$|MO|mr zEhjK;s#L71CfOs$y#Uno1kC{=DwlGAnjJ!*DqVI{5e|U39e-md&;?_&>aKs8dHH`l zGlZOVD)m^8{R7Z2K-on&g0ipyA^g&35k(|T(=n&q17sOjO5IL;b&~PBaskBHmmpMG zme#{(FjUS#sR?c%lcj2v4^RWK+CXuxmlHfB6J`V!E3?VfHJTudso&;iWGb`?09H@U z``j1+Zcsob+kZyCLWEF?VLixteb|20`rZfBP4n>Be8$oP^cyDth6-(B=jtDo3&yNE`qOGLsSmsI~?jfW3lnt#uUxPDQDVmv`@O%mhlN@Y>azB`ef^9+qZ8}D dgvw`~O5ar3ppUpW`O^RZ002ovPDHLkV1ihh*OmYP diff --git a/graphics/pokemon/psyduck/normal.pal b/graphics/pokemon/psyduck/normal.pal index 78d95442f..7e2179a0b 100644 --- a/graphics/pokemon/psyduck/normal.pal +++ b/graphics/pokemon/psyduck/normal.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -120 120 120 +123 123 123 16 16 16 -144 88 16 -224 160 80 -248 208 72 -248 224 160 -216 176 80 -248 248 248 -128 88 0 -248 232 184 -240 216 136 +148 90 16 +230 164 82 +255 213 74 +255 230 164 +222 180 82 +255 255 255 +131 90 0 +255 238 189 +246 222 139 248 232 184 0 0 0 0 0 0 diff --git a/graphics/pokemon/raichu/anim_front.png b/graphics/pokemon/raichu/anim_front.png index 57ee98c404c08b9e474dd7b63d180ce1b11f81d8..792c3ffa63ea79e50ae9e36695fccfb34c446206 100644 GIT binary patch delta 1369 zcmV-f1*ZCt3*ZWn7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hFDJhF$ z5C8xGb3rlxy#SO!LI2)b_N*!1dolm+)xBCVy%-4p)mma=YB@PUz`UR;000EuNklz14<5QQy3lxDhp|F=DL;i`aiJU^1Pre>{Vy5s(=0)IqmXIXyZJ^0+N4MMwpD4VZ9o9Kb2w{-NAk^7 z7YzVb2R(%aV?@8!fny+jRB_d2oQi%P-%K;6XC2q>lv^*2ViJ%w+Jf|)LH_R z+w&~o1?%dpk;kw#UQ|N?Fv`1P74JLhX*j)VZZK+P0)JkVQ*an1!CCoe8Wj*BL;`3y z0V2mYcQ_LPc`h{R->=uZ)_0~d0dfipR{Y|a&=-UZ&_Q1iP~Y1J8#UPX>qKzQ_V>|i z3O4EEIP?o>rBEagQy2n-U~&pj0#XWh0G(4PDkxI0V}e>z3RMCT;Oz|nrCI>6Hvp(7 zz=xwrAb+V4>Xmd1=2X*o*|(IjLotTm0BBcyzflJ+ z$Q>Mc_Kp#N3EqQsLXy9n*GD3Z^+@m>0N&$`y?^NO)p`ixxYN^IGC^}N0YBi^j6nIs z>5&oPI$)eELXLZRM8r!A+I#?wTZCEfM^AH8zZcsu&&yW;ey!$}!^``Nb3e!nI^U8H zY|}M>yvS9NGbrb#TL(}`IJF9LN}rxSJVu-j>gpT7f@exF)oMW=66d?0%VGnAbv^37 zjDMz|KL;#dJORJ)8-Hayu|NJ7{X@W`EuagSw?LMb2O~DdWMZ_lo=p^zud{^-z?5Go zW7cM~-Uk%riV3osfuxy%NgvrnIRggygfUP_uY!qEI~ZdhC>uf1#aXF`o&%u9CL<^& zz*A66!x)fE403T~1Q<|TAbmpFforybE`RzVpz7cQ;IasNE)MB+Q2`lIM7X@)IxY@H z?PO637k6=(f`!V-VjHOSe(k29^1WZ;inR}VEfh-P-7bgOISppk5%_G9q z#R*@tm9+;ai}GB1fU}E}#{dtzT3VhF;OgRVRLdxMN$pe4)x{A&O(1;-&~QLFfq#<| z0WqSJI-QxNAbxhS|D z`6)n7fu7z3;QoPKl%bbZ@AaQ@c2*cO}3?dEd#Y zT%0rDg|Uo2;R=i-Qy)CGhdylzUCnrurV;D+?uLzI;F1Y}s6c%aSvl~@7LAe7TyCB+EPEeY~VlCg= zFl4(RLY$x!UWeLmeHgJ}pfYl31avfV#zTOClVOvS6O0@WIyyNcz4!-m$5J@zz%a;8 z&PdPx0YQ?4ld`i;j`#?-jO9{m5Q_yji4r delta 1418 zcmV;51$Fx13Xlts7=Hu<0000Krr~Y0AN5M z_}EzRs3_ogF!<=uz*sP-7zp6FfM8%~I58%QmXCy8EM$tR!qhH}av@z8g?}Qo*ev}xRivyej)=-~ zT5&)O(!wo&B8k;9Od%hrTCk z-^Vk*ogMEyCgeX@nlU=OZ%)6WPiKb$23;DSz$}J<0i~FM+WrihL7@hT5P&E}#~BmX zGBQvxjB$)obbs7nvY9CrU4pAKUE202$a|~AXfUUTn zIlKey!}%TCaovhJ2z(^I|DJ`w7}5N(XPWUGKQLx6W?8H}Z4r_U05<}%?j93UutV%u zgL$L4B-3O@ogs9X2%d4H5ZZnA@O-TB!1ZJx457jN4}Z`9WUl-5A*qbU0E8&wCv%#y zz4HP9YX^B+iH4YIZe>;lKwIK2TxacbO5=?+Q@iT})w70Jhi{xZ`#rI7O3h};!DZDr z7XUkgk?eTuW*jI4^oam~^8SdoW)=Z)BlE5O_ER6=i5nGw2$5s$cH19-C-?Sp22 zJQf2Skbe{)mOFRR_J{C}q+eGyOqs(zrjTcdQ*H|2@c;mGtcnn?3*ZT6NCTgV5MKxY zL+}j=$U0NY5JJ0%fNmOC)Bz|&z+QcWTwY!#=2#@}u98Loz?0xdm(Q*D|B8WGqL)5o zKJXi6;1*nZ5k<|yr+4PqZVYs>r$3jH+-Ca%Xn$aay7=;?bhkS51W>>ou`Vu+qyWAf z0>RV1A+OgwKY9i$UBIQj2H=hTr+fnX{EaKT(w709A9wC?e#ALH{-BQo{7vLq==D02 zX9s7TcdUM&+~}uYnfhd}XIa)HKRzKq^evJuAmB^dWbcF!AP4$LK#OPys7vG6(!cCp z_kY4J@KOJEt^o|@iHF2I^_gMNn>!*2V;ib|9$w!fop$rPH&p?rt7g%El~bw$baOg5 zEKD^(%9SNQyjiuCfNljhmp9GfCtto?9)7av%E$13{nIu4F~Mee)c^{qkOvs9I1-># z6cTJ(>{F`BYuZaue?>I~0E=QOYWv63Ab;Q=x!@?P%8)REEe2Swg+L|^;02R9Zj<_# zWD7Ej!jsT~R`OE{Kzj>4X`Pm8&C%eoq<~XlLDl7&GfILHwvs?joU1!_$yo{0$v`6l zqBT!i5XmhBqE&UGUuVLC;8*FJ7%SVcJ|rxNko7yECe0>*M2NS26JzW+3B)15lYe{@ zOCG(k1tD-Mrg+dyp3RX30epXZ98Jt^t|fucffgVkuq;1@H3^1-;-6$w;*s*Jb&G*lzwuMay8$A0+E7$29l=d>L>fNO{uK?PYrRNW&|(Cfip8EyThOWuz(U9tq+6dhyo=D2d=E-l zkX7)3UxXPWFmgqtT3}+1N8*8_NsP#*MKrH<5dfZVwJC|w&-f+~+pTEF41ZV-?`%Hv z4mj4yl|qBSVLC>SPeQ+E^{>(%1@BgC4n64h8Siyw!Glr*fIq-DG5vV2H-;W04*>p< zr?;>}v~iUOfj`iqji)yJSG=VXrEi&_`~pjzIrc0004VQb$4nuFf3k0000mP)t-sn9!hFDJhF$ z5C8xGb3rlxy#SO!LI2)b_N*!1dolm+)xBCVy%-4p)mma=YB@PUz`UR;0007`Nkl$c(`427G7auI9a|7|A;SG4j-TX+Kj=k{ z^qb!NpkG9P2EY-2rw7eR;|}5sNNTfkK=U;2D4lI9Whc!a#Wq{VdCE#09 zDS`q36hLBz41WTp`kNjwvS6I^(YGnc`yn@-U~B>1D%ZEthnO+LT3uKG$sjzRPaw{M zhxjl9oGn1gT>#IdcTNFjuml947O=EeHW76lRj+_G1OOwGdqh~7fNKlD;ATi%!$Jt&SXIC z1&MxpJhonc(aHj-78cI

ads5GsHUeM4aV)jl}L!ETQeAq0E9kG@;5MW5?%oxsRK zV<20Y0usSg3(x|Jg--yg7Mcti3wBPxrC8_;WI(hZ04${h06ze*UH~tRAwi^xU{8RM zt7us(8-L{MwGRO5k9bj9-veT4L*5o?f4ygOEE7V#9}NMq7J&wY@|$cTjRjk3*jDj1 zBgo|{0Lq@w&E+|OSMxidpGo_qrzG{VTS~)2Q^RinvMX*I>mVHR0DJA;J_9HrMzA4~ z(w`7%FNC?C2~h(eM!s-NdcL*p39*0DOD~l`8h=XQ5B#+vSbpR5sEA`6C@xJxjnDFo z$U__2{Q#+3hS?Zrt9hvR%{Huk`3j)7)jD%@dVg{5hjfFkm(&B>?HnN8$g%MZ7{cvG z2S6sA9u?9l{dW8K7;!qN<2QhX&y--g*}^;~-hcXen`~e>ub-a249V;70m~OF;Gc^> Y3=`2Lx9OQr-2eap07*qoM6N<$f()Z#;{X5v delta 852 zcmV-a1FQU{2Hysd7=Hu<00013M{Ml?001yhOjJdf(4bf-D2QMX5D*Y>Krr~Y0AN5M z_}EzRs3_ogF!<=uz*sP-7zp6FfM8%~I5|8*y24GiF#ed>2SqKnY1Q{E})iPfT11cX0cvH-jIbU{xO+O!L+`)8XX{%^)p4Z2L zNA&$&Qvx$gacXDlevc0T8h~j+E@d(nbph@HQN9Dz0va-3aQk|?EK&!p3KD7ziAT66 zp}c~_)0xCOZU=#Zgo6DKPrm`@uNy2s?E@&0mcR5Az<{|Fzm1X z(TqxfCbG1@+d6XqF*H#ENFoNUR?8_MhR^ou08qCPIHCf3Yy_a?j-9uh5_U82?}`pA zV=^x-f`1)+%NGP3jRDxBL=x8s_$(bpfyX5Ai~uPiDghvB&8?z@a_#}0QD9j`AmIT! z)e7tNdP6;y+3gamxd85jX!b75`#*eOfvK5?-~gYbgD`REx2GD#U$+)v+Xp%_r(Oh1 zZo)1BHR({Lk9&dHs$dh4kSAh;hOUeNVtW9%yMH|uT(2e3{EjP~kV}0DAZoj3Vixn_ z`cFC14+5$(@ctkV}?ZE zWTSxuexxM3$BZF4mX`#km?DAjP=rjW&pVf0*a{3Gv>F*1fUX@ zk4@wCO?Jxs`x{|`se+z%u5!Z&15`cbJ{Ed7z;gK&M_w-!Ljl!vCl}ZC$uD0#mz(^u esiE8O@8SK|ASg7_V%Ri&2w{ebEJbY@8P@C000BzNkl;g&FDT)BAKwl1y%PTP8q6jeuc6h! zbY|EZXx-8T!>_>%gDF&?jt!v2OM>XfTwxfp$sW%q0w9ner0q;evEBd9|So~uMdgQa&D&U~Sp;$jD zI8fZUn4b+&4VD8AsH6mmVa!U4LTZP{ZC2;+o&6;*ndMQ zt#hv3z#=;;Sf7OY^?JQK>=fX=xBm4=a;T}T1x`X)I6(CB9%Tf1p#y~vk`oc}-+A^S z@E-C~2TI>0q=$ir{P~cM<5B_|;KTr5bR1<01|;WM zv5iPbp@cD(fTjcs_;F$};^VYj0e08TByF6Q5*%S`9q+81rNnowp6`3*Uq$B~`iLcr zQ);7+?cjbAXW?rBm4Dftr?3(1u;`OIE3_-0X@8<;2cNcarZ@F&I9gH!@l2s0fBqsu zA*9n(srM+tW?#OT%hj0o{kj3PJ#W_y2gTR8YwM4pZmGZVjo%&Dhv%r*Cnk-$#XX0v zdak!S+^zxV-RDdA^z7WVjg9*ye0&Xe=YMtE;BFUBEn$lfPB0MDmGFUppe6$hp+$Vq z{C`0zg1g8!w}^aeo;8g1YhL%VUJ%FCV%I|F9bi#hy0@85cx&G4<&xF>Z`*$1B{3t z{2Ra67EtaZCH$~X%p1L`@&jQg^E4&;;EM>W$`7OqC#`p5%v@O$)BE^DTOQ jQoutixT$!2;~$J)CNn~Fbc}Yy00000NkvXXu0mjfG;1eq delta 1162 zcmV;51aS3XmD_FpnxzW2x&?H00bRLL_t(oh3%KIZ`(!`#*YR$ zY3Y$hJQXO90y=`h{F#mDR$sKgl$Qxmf6Cay<5RALCNN-xF%`w5 z-%ABQvZ)x2KaCczc-a(RCqMlu@-G&2P!vQ_bdbDWEdSz=Pc6{2MPspy7t5O@NnS7M z)6_yYdw*M^d7RwL-hE1vIC}AFGwFno%w^*$Ii5YclO)k%Ip7oO)0_aI@b>IE6(u0m z`_AtUcvllN=GT|cX$U3Y))sDhZ6RnX`8fV?L7~SY;*)l#Dc(N|RLx z3VKbN?T+gz0yB6S9?#x^i4|SE{1n@6U^}j-e19<;EA!38rEr;0@kbGD1wF;&JTT+; z7atQDF%_3UqZEi?&{!0>hTFAIaU+0hCJcE)Q5crwH%=*~O=Oxo1>(FQcz0F^?B>qn zSw_zZdX*=m>9ngHKp3<#{eOH>7}X!FSb6nJv1aEXyZYt$8*3AhZ)ya)wqhE4Uht1i z)PL=6=Sz2Y8hfpvT42-)NR41e3oE_qlnE>}%mi+UV0fRMq!!8^6s*_L<~wZo`-QY+ z$=$zJICinaP_F*90((UZa(~MR3{32NhYUb~4s4g?3#b6XU>(@X3`GEejf0f}c>s|+ zOFgi30FivbwF6B9kb&e2ZS&>|-84GCU9f0(_AHi0oi1{LqL5UxXU~ z*;-KX0EL1tk~M&=qoeUd{luQgkq8x0Du^6Koo$r zc@npZzXm4R3G9;uDCkj#mI#ctL&bD361Xpz6q7mut%iet cIXZj>hY&F+>kA&@00000NkvXXt^-0~g0;;PWdHyG diff --git a/graphics/pokemon/raticate/front.png b/graphics/pokemon/raticate/front.png index 8e9f34722b3aed08744e435a0861eddb7516f1e2..3d2d33ea5c7d6a91064074992f860e105785e3e2 100644 GIT binary patch delta 706 zcmV;z0zLif1c0004VQb$4nuFf3k0000mP)t-sn9!hK|ASg7_V%Ri&2w{ebEJbY@8P@C0006^NklAK$t2rrYGcW!hKIc*sDpbe)=At5&BLxRsCAiM{ zXMnY5LU8i&&U@EzU|s{LUh{lk!evbfS; z0M$c~BEjsm^^iqWdjc$0{SJU*EEs12 zAY~7^r+?gOEaYXj0$PNe0_J%fR|^avDu53A-uNES>+9;dVvlMdI>gB%Iek;ZlnIlIS=Ne-waY&w!E^;kE`^_E`@*;$= z>Z|(BXxBc|R4;^7*SO$8eOM7|i!5G{4W;)lB0I>XNn^+FtIEs1d@S3XmD_FpnxzW2x&?H00MSNL_t(YiRF~BZ`wc<#_h_U zSb8Q3QwN_dbp~6VZFn-2ik3(zsGaTOA8>n>qK-xU0bSA|Q-3DrN*x@OwNlJxbs^U- zS+cYXYeeq|0RzU&Ri9)D-S@lieeY~elK$gD2tCe`A8D3lm2(KAf{8;2*b_?q@unD&@5+94{Kit%iPmrf65&val8a7Ss_%_fB30kXG?BNoldZ7 zu?47sN(h1bb${8|c6d!Z4iJAX$mPv3yUHix!vi5}m4glcUW53aPv(S#G+keHP}?GY zzfZh?&YMsdYdB>flB=CQ@d+w{AbKIz(-B>A%;zKA0F{JAkJ751PM{omZLSmV2x02I z=Q^#LDFeklYy=`&4{120Q~+W63>1VKJR$Ledq7mUHh-aeFc|bnK;I$!bOF${Q&do6 zFd%OzJ;Jn}32+AzeChIapjm+A4G4ML?9x=N0Wu#U0AU_|%LG1QPU7*5F?KzMlVybJ>T8Kc37ZXX?ifp=i>t+? zA;zneg@3QCIsE*Ju_zwbX$Tf<0Fu;tIXnkp!KKo}ELBTkx$FWE!>r z%#@xazfXbph$9->uB+Rjo(4vf7r&n00}8@n^7s+c?o#QkSqVo^%twC4@*@E R(4_zX002ovPDHLkV1igdPdWeq diff --git a/graphics/pokemon/raticate/normal.pal b/graphics/pokemon/raticate/normal.pal index 88e7b2244..b02c703c2 100644 --- a/graphics/pokemon/raticate/normal.pal +++ b/graphics/pokemon/raticate/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -144 76 8 -192 128 80 -248 200 152 +148 82 16 +197 131 82 +255 205 156 16 16 16 -104 56 0 -208 160 64 -176 120 64 -224 184 80 -184 192 200 -248 248 248 -128 88 40 -240 224 144 -208 192 104 -112 112 112 -160 128 48 +106 57 0 +197 148 57 +164 115 41 +222 180 74 +180 180 180 +255 255 255 +131 90 41 +246 246 164 +238 205 115 +115 115 115 +164 131 49 diff --git a/graphics/pokemon/rattata/anim_front.png b/graphics/pokemon/rattata/anim_front.png index 08f52ed8965eb46897a4335b51d3355818e6c6b2..47d2ebff134ed2c73ffe2f9a40248c999bb1f309 100644 GIT binary patch delta 30 mcmZ3zWZ0Osp9uiR@CzWZ0Osj1d6AqYNSd diff --git a/graphics/pokemon/rattata/normal.pal b/graphics/pokemon/rattata/normal.pal index 87fc380cb..8c69af29f 100644 --- a/graphics/pokemon/rattata/normal.pal +++ b/graphics/pokemon/rattata/normal.pal @@ -12,8 +12,8 @@ JASC-PAL 205 205 205 164 115 8 230 90 115 -248 248 248 +255 255 255 164 24 57 98 74 8 -88 88 88 -120 80 136 +90 90 90 +0 0 0 diff --git a/graphics/pokemon/rhydon/anim_front.png b/graphics/pokemon/rhydon/anim_front.png index d93763b8d1c9555e79635db5b4296123d8753d5f..bd8e5391e0b38f1ecab1eeb11b041a33e9609327 100644 GIT binary patch delta 1696 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 delta 1083 zcmV-B1jPHa2-OIX7%T(>0000$SK~z|U?UuoA;z$rc4MNJfnjU-|7ae=|NW3Cf+|vtl z-AJQ3!&v2O;t+cOVD}gHZ?~!e<0im$wVIS75z)`p<#OYCN%9f@(-;8W2F4GtNRk`W zI0Kywo~{#n-~lAh#S+Sl*T&gxKwG#9aE*u1*8!uQbASACafjb5Ah|Vwd%ww$FB#s~ zmZ)ZciO=WR)gsC7sb11rA(vXIxEF(Yrfof?yaqKbRR!9`-C_XDa!fwA)7fOLEL2rQ zj5oZonv>ssnN5g5InL6rLjc;$sikT{%?rbshT=H_h^9oj;mcnirB`+pm%xd~L>o=( zv?NZUGk+ZeBsoY znrllTr`EV>3EO@fjwJvp1oBlmgQoXD2lJdukR1?!3$%!w2A^Yq|0)c7fHp4>0YhHp zD%Nt?1c2qEr0IZmNU-4qbvSKXzLhm^q>C=WD}R!#QxOtaBOfi_a0l#4!7U;Y5fQUuEf$|Lpx65#&N32_4MGGB}yv);qr{a6#WFp&gu9$|~< zeXo%PZTP^XTg59}K$RMc{Wc^!m-B^h*~**MmdoE7!$tIf5lMn?nX*{%Pr@Q^5!G;) zH-DfjNIl9ey3`MC3?y5rENvHe?n#=E?#oC zU>}RCfU5XCQGvQhFre~!3G%wSxXJiI@qa6QDSA<gLHFc-RCvfJ{Y$x3dQnIpB%siZ%w0_JAS>m^uIY*auGbV1I)g z7+cQLUJVC(ILX165+>K|L9rZIg`B470VjJn$N^0Hz_~qWBh&R9=-C6y0sm)Dh7#LD zkON840kJ)_dpY0~-EGA7;CQt1@aGgV1VhC3fbzRY+oDbJ*vd0|V3mZe#iB(#>=D^R zIIyWPw&2-(ETU%*A|ILywX3!_ynhe&;1#q2zzWUCqBYeKIM_qsdH5GR=B-&IBU>+< zVfM5?_|MB3&FTiO5{GvS_drtfH@4xsVja+E=`|&RJ@B)r+ zD+tEo9grlFTD}j0abaEjVxQ|E7&qcWF#fan7eCN6het|N-~a#s07*qoLc0004VQb$4nuFf3k0000mP)t-sn9!h$l$>H> zgWl%mIXP1J`1qu~#Sjn>tT`!I2mk;800000000000000000000v*W0x0006fNklH5IX9 z-9Sm`lOTuQKwJUmcH!F`mW4+H*LL#fA({00ZtS4uB8%yXW<$E_aH$o zLLZS86Wh;7>3^AS=mGFBwPGZ4^E1D188UM7I;wI;|&R~oQc`P6F-7HYEwtPDWm`F;R!AlyYd z_JB_Y;2#!Jk0xSEiSJJE*#O?kE{-~yP%Zsy14Ew!;D42TMtadz9Vehhu;dqlIh$+; z(2}NJ?A%AA0eUu*tpKh80AK4ECZ|3(iS)s;g#m9=4tZC<=v61KnqdLxtxYwKc@Pkt z9p#$5~v0fQPhJ!fBZ^ z z#g5pF&VQZ5xYsii83Twoj#IL&;hVT2dE$vb85aKlGSv}*t9S3;00000NkvXXu0mjf D6Dc&j delta 698 zcmV;r0!96)1;z!C7=Hu<00013M{Ml?0004VQb$4nuFf3k00004XF*Lt006O%3;baP z0000mP)t-sn9!hjh?r1VaKO;mFfc&)`1qKxzz`4+ph!Si7#IKm000000000000000 z00000M~A6J00009a7bBm000id000id0mpBsWB>pHA4x<(RDVdv?UO-o+b|4;m7qY* zlm+`bGm5io>LI=se5KPH?Ta60HQfjVfpy+L9%kYu>}@R zh#Et6RuW5?+>8N|2`w0a<4OPx7-cmPXZ4yY37||n{(tHZ%d7YhvRSfE3*3uQk7 zNG!DMErWu3>*pm5aSVSg0BQsZRk?!B#vTi{AQKRP4LU@Y!NVBfr^3q&F!mWnz?8e} zqLyV70JaYza|QY-LBj&=W!nb6O3j1J@+xpdl0Gdj0?x{-=L=tfbBWxh?h&AY-U^WM z(qva)_J35a*}>=UKzWAXc%cGf43GeepDD2br_6^jU><$!^HWXOLn;EYk1!yH5CyrU zh8HFqGz4C?F)K6uJ^!R`jOKUm8qBH)fh;76_(^b07*qoM6N<$f?u~N{{R30 diff --git a/graphics/pokemon/rhyhorn/normal.pal b/graphics/pokemon/rhyhorn/normal.pal index afba6e501..19493646a 100644 --- a/graphics/pokemon/rhyhorn/normal.pal +++ b/graphics/pokemon/rhyhorn/normal.pal @@ -2,14 +2,14 @@ JASC-PAL 0100 16 152 208 160 -120 136 152 -80 88 112 -192 208 216 -48 48 64 +139 148 156 +98 98 131 +222 230 230 +57 57 82 248 248 248 -152 176 192 +164 189 197 16 16 16 -168 56 40 +172 57 41 88 8 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/sandshrew/anim_front.png b/graphics/pokemon/sandshrew/anim_front.png index 907d47dd2d17e99299b042f74bd5b26e81dca076..be1d3765034242711bf728e3e7d1374cc32b54a6 100644 GIT binary patch delta 824 zcmV-81IPS{2EzuB7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!huVi4}$ z5Y4@`5D*Z}v;eSx5a{U05IA`F`1mMz$mrO}fPjF=$jEa_7ytkOP_l5_0008PNklW-Kfq#i-nuZM<_J6l z{Oxqfg9s4k1L*!LaZLc1E?Rl(=YzZil_p~cN77(42ZxYA#gSZz^|TxImiU-iMsNbBW0|^^o z-8T8*-Neu%0MG_K%_ril{u`{|*8!4bAn171>zoOI`hRR{*yLce;X;5Ub3(Im8i1q; z>gEcPO15_pQM(NV0?=991*8_ZPd2tl0vE7>ByZ6DD-*$SvDxW(Nk_-^+0 zXg0Y*Vt=5B|JwE^N)1Bd{0Z8+u6qa65!*5|4UgwRYo%obK0;d8_WgZBV3M5N^0!Of z@*g&A*sx*4hTXG2!BBKHxWiE3CPRV2P<}I%bP_)pN*;myV}_Dd_+ThG{P4+8Y-4)v z?x8Cj8Hxjl=k6Za`pSW!l#&-HJBH%^&+R_|4}TniycmiS6x;gP1wzZ0ZLY>pfIC6) zEJA2?HUR`({2S}}&M%lido1*x;0$EPFUSanbw)^_I0JEhQTatMf;Rx~qH6p?3B;RV z#5!9u$NXX#JAx5qaz>(_0tbQ-Y>6j7a0ap`7}1t;exM3Rf|1z&_0{SDK%_d_`N3O( zk}&|`#Sab&SNMS;L1_tTNx+Nzz_)0I+}% z=;+80IC%K@_$YYD=-9}BfPl!z$N&HU0002j;r-D700NXrL_t(oh3%HTZWJ*PfY;KN z6xoHnQzR&E6kkPi>_L-;TYJM#(%fptNz3VM@c^KU#1qg{fPa(+pg%<8iWHHMC@JAx z81E)2V*8*ax@qV0%y_)geo3;8TN&A3@(gxZMiASH0gpyGK*sXD81OhZW&!zV83QH= zzzq)D*boH=X!xsD6v#Cqa5a1yYcYlf3`ZRW7Ssat2H-gXTxu1YA$_kjoP4O2ij+v- zFTk99JW#O`?0+SV@cOfe_F$(p!l^6^9UF7l@Z;5bYD@%3hi{Kp@5-4*6Ml_!xuX1Z z4j37t8Xr;vQ8Y22)=N7TSwqY2hVVYH18k+3Rvb*XZN_hodVoVwzQ{RO-7a$vNZW71 z9t}{bf+}PS^e!vk?AzS|wzGLL%c#*!fT6VZ%SBrw&VTFi7`V&B?w!qMm!{SlJfEK9pCCorZ}n!q+w-If%ShJa=0%S;Ot4$uls zi_*)}9!yKbR2hSHD4(zl9YK2to==ho=NzS!Df%nu3;a6kPu8Pw0rvee~Ycd^uU$FM2Ea`n7E?+tHZ>4Tsus} zFRmSCfQEXoK#NO~#(U+$jnJf8n)u4pTSE&@~tj{(0?mM*n`T zmdQYefSD8*jS~=^jRV_a_0hdfKyY4E+W+|{YrM)zeKmq3u&QY9Tm|))dgL4!o7~ulW vA6$v3U^st}qLkI>DBPm+hg5F;;TFdqcGT*1?|1z800000NkvXXu0mjfbB<-V diff --git a/graphics/pokemon/sandshrew/front.png b/graphics/pokemon/sandshrew/front.png index 7d373f12280c1758246eb5249b3b645f39e7699b..a3a6ea88f65adce03e2650c87627521f1c334c23 100644 GIT binary patch delta 569 zcmV-90>=He1jYoA7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!huVi4}$ z5Y4@`5D*Z}v;eSx5a{U05IA`F`1mMz$mrO}fPjF=$jEa_7ytkOP_l5_0005RNklC-G>xp;|fMWv`sBaK(blPwFqXPs4=V*ZH4jACD7HYHy!DBmcJPwrjC8Qn8fp!4J zQWbBZ(Ex3&jek<$p$-AS@KNr1@ln=@kEm!{USRJknkJZg80&cWyNUvQ@ME}KbT{xr zINdJ{pGA-Z06f(7b&`_Lnt|^C(11<@@@ina$iJN328t;tW7x-fO;vUWB7C5yb^wj~ zAzjvWM9mBc*CVfU1`uin3)2pUFBcW4?FqVZ+JM<4Wq&M!Sy_D!2KC$Mg$B5bH^8z` z_hzf!$%PB}Lb4fbeUZGP>@8ezAo+K~A`}OFZ?<~zSuzNW!765Py(e5vv`y`WARa?D z4^HQTo;l#ZZv=EL1k+!XC;w*l0Bypm>+&Se>9dDdT7_)0I+}% z=;+80IC%K@_$YYD=-9}BfPl!z$N&HU0002j;r-D700F^CL_t(YiS3fVZWJ*P#@Eu8 z6j`IaRU{~GgtwwOcA-hboxP{TAa)P~o{c#`#`u#M@SHo>0U!4+Jke;v%Hw5J{*qz1n^425ljpqAnNANS0>t3a*=2zd-ddRFH$(yA zRp3?~RR9*4iN`k>mIQ9rQ3Md9G?1tJ)B6|PEQ8Smm`VxEG7UT-7o#wmfC$6{l%Ijb zc}*S5;4HjBZhvb~fJQ`^6oh!Vm=a@=WzJZmIFE)BnuVrZP6n|o4nf27x94Zh<&;+e z;})(Tmo)M@&J$QLb)&qE7*{Uw7)JuYQ$Rdk6a^xyzu+tf0J-@B>jt0C2NIUq(=oux zDJ%w7F9Oxrbu1^V3I0R?;P21uc$|?qnBy8~5vT%2Mt{I16C5hFBLOMF@}a;o>cR%7 zC-S5YTM__Sl98Wp@dm3GaXg3ua8+x(&l}o}+q$mGi-bu5&fN1t=Zf~V6Y0(pDueaZxcrz*rr za#Dmq=P5xR2*~y>^3()~_nvt@bj1hZ@!oljV3oF{utfpuY==hy97Dan zsLGmxXMxSu0@c+(e7&sr!k_}1Zv=Li0b=n55gz^V%UDz`4?nAXxsa}fANwG?k2GJFJAT=`yu-mujpS4 z*$<6>F=RjV{EI>Rq46&U?1!#@F=#(D{>7O6Q27@Nw1GQa^e^KHW_Ct`iv+*w? zerZ2w+qL&EWZLE?It`ArU3>px?$P}sNZYmdFX$_}&EwFFy0ajsYyX0l6mO2a29NEB zsKd9X#@k>lDi9@3?1v%~`oF+?tSX9)rrXpJ^LXQaPt~a@k!voe#ipYaZ&)(34C(T zXwP_Vt2A86cLWaIz)%Q8Kdlfj7d%O@2Dho<^Jx^s%DMQM#Kq|Np%_9>;L<-}Ru-Gl z9@>~>U|ib|JM$o&)_J_{-TUSNTQtt5yZ#!!XC6$q{euJZV7l)g9DedW{(+|O_y_-M Z`~%OTM_vV{Ii~;s002ovPDHLkV1l0EL|p&? delta 1228 zcmV;-1T*`?3DgOY7=Hu<0000;Bu_=t#z*vPoZ$j~q_NKjBv0002c3O&jI00du2L_t(oh3%G4Z{kK2zy}#A z(jL&7)u!h);?6SIVH+B)1Z9zWN-TeZVTY)PsOlf+JrSKdJ%7{@+RI9nQ1?c(myvSe zP$jaswBI0?QV^e^?~VV&#&&Y-B_o1R-p}tnzX8vWkf*h?o~u{>D!d|viu#~ubLCg0 zTp=}5C>ynm@LN)@7L1Bkfp`{BWQCLJYs08lM&IWHb)#Azin>wBsL@8~=Gq5UPq`B#5SbrX(lVx2?}gaSanktXy8ajNnph$i$P<($LBsp;2o z5?wq)U=E{(L_s)l8^!i-5I>ZhH=Cjz#A6AHT{d$il~VFPr1}Yy(0G9^=ZBK=wUnQG z2tcbeUVor;$6+5C`w~(hFo1c##1{9y^MTdW;;?EZDX&gp%Lce3F9;b82Yv$g_D%uh z4|&B$@Ckc3{^Cc@2SI|F3n>^OYk9@I;fPx}(0w4^Dqwc&0>Ekr%s1}D8(O&SHUO%J z5+s;f7~g~2Sh*kEKRGuYeP1QTA>O*)g5zBe1ApL>^LM)66|T)}x~Qp*>3%EawR?%c z0ONiFvRN&BvdGT>xVdzH4}f5nN7LZL9*0?8-+T%I7JZvY1e~p}Z&pwN0TynC7VQcQ z<814#CJ1y{`Y}Q&MB2-n2JBs%X2dPtfWUG=DDP)Hg*4CKkQ&4q-BB87Z9V9rt=MqL ziGKu3&$Ie|W!(Hh3fL@Y_;a+FMNn9vd4AywNUmQ50+Q<&p@7sYW#bV6(aV{B5edkCzF#N-d5r>+;}@ZTnAv`DFCck- z5eZ1PU)&2wo?k=)lH(VFfQ(t5Uz9=t$$#^URU{zUeo^}MUO+PaVl{~bB-<}$i%>wa z{h~Des03s#=h=So>~<0gh#%kei_Of91O($LzkpLM6cD)1O#20#YN3FVf7uqfKyHL1>|#YY;iS4y5o8T1ca#h#gl%aRtqvP0crT3TUUu!DZeAGGBL<`9Sn?WFyowSgwvp&n%T q!;uHo!@61ipv8ZRPyX<~tp5O}I$~e5`0qae0000XE2ABqr7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!g~IS{Oa zF%S?ClzRY+Vi?t|AX-WQ_SGQ&|No1Ni{90=$jHzzFi28TQUCw|^V!`i0007(Nkl$?0K(M_=6FJPWL#Qq5z&6a+uO zd?JBlhAIegYezT4*zqg(PN;()u@ERY?*dW4Xg+nZ=TpH>FeMWNdD22_iWn{5*z;UI zY`lfQ?|-PAqe`$HPG5$0+i(2pud%5KP_j&m1l#fUb@l-mFIA|U6s-tF<|RN)1a`c4 zae4s4=d8R>#n21Zq(R3@cYHCP*WP-BtCX4{RY8d1fM)^c(D#>A*+a-GNTC;WPeb^= zt@Od-f|P#=o*w5n(R3gPrKq4Z-UYu-!@=?JoqsB&WKOU)NRSR1ypVQAI6}xA1Bm>u z!8^Uf?cbXMERe5TQ2sS6JO{ly6|nDWlSI)Uz*AoGhKIaOKez9I&(@T*&$os2(g0cB zMmH_hm+L|ZhjoUWYq?(X=iV&Iy)T$P7kEc}62gaq)>7Z`zm0#BN+g4LY?f;P0000< LMFvhpu0mjfrNeJ? delta 826 zcmV-A1I7H92E_)D7=Hu<00013M{Ml?001yhOjJdf(4a^-5U7AK5D*Z6XgG*q7|^I7 zSV#cy&>;Bu_=t#z*vPoZ$j~q_NKjBv0002c3O&jI00PiSL_t(YiS3lJYTHm0hOdzz z&>>U~N#{s-SA8wjY0?rfRScaHai8FtW78p&(%KK;;NCq;Wq(YULcz3~LzfF#G!z@* zrG0};CMM6&b0s;oY$cfsJ=j9{N-x&E^ahDV=Vv|DA zv~%P`QY;lrOS4eV19VGoD&CuXDtO7MjqgIPfS)7 zy|QWKcpy;ivVW4_5?!`s<^dcZc9<^&KQ=Mt+9*7Zn!{YY;4w>-*+!Ppxg~neD;GFr zX32Max^h^(#Q`b})P2U7@0ZagJB|8BXtYI-It~JOF-@PW0!KphI72|0;5DP`;tc9S z07vE6Fcd)PGN4t(ndnjl7~A+&HW>@8B81rcB1bHK8h;x(EE7^Y7vgL$l%upiGgkJY z{Su=4;=rrO9BA)R(JF$gACF+je_3+UjT%5ePTJwP)x7zSv; z3AvURJZg8qRRi5Y@-PO5lK=s3D_}Ga&ZD-g*6t$^XV^r8fvfZlJjN{e9Q*`un6VR^ zsv%B-CC`vTy%zb0}EoL*m!XV^gje6bAeb}KlH)0=2^t^kj(zeXrUr8XT`aCbGD zqq|T+VHy$&jhwfT79|U@QLA{Jb>QG8!VI;TT?{#6FpVO&k#tteZ>|CJkS_j?E_dk~ zKr@zNy9Z&E_qP4(b}+pkAP)j+826U;5J2qvJN$F?2decsKszx#p8x;=07*qoM6N<$ Eg4C&R{{R30 diff --git a/graphics/pokemon/sandslash/normal.pal b/graphics/pokemon/sandslash/normal.pal index 21eebe9eb..ff473ca5e 100644 --- a/graphics/pokemon/sandslash/normal.pal +++ b/graphics/pokemon/sandslash/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -72 56 16 -168 128 48 +74 57 16 +172 131 49 16 16 16 -128 104 56 -136 96 24 -208 168 32 -88 72 0 -240 208 32 -248 248 248 -136 136 136 -216 200 184 +148 123 0 +139 98 24 +213 172 32 +90 74 0 +246 213 32 +255 255 255 +139 139 139 +222 213 180 200 200 208 48 48 72 -80 80 80 +82 82 82 0 0 0 diff --git a/graphics/pokemon/scyther/anim_front.png b/graphics/pokemon/scyther/anim_front.png index eb115b910eed85ec1ea19a83acad062fa8e423ff..c253d771b7967a2cf66060fd2a6a4d56fca185fe 100644 GIT binary patch delta 1283 zcmV+e1^oKC3X2Mm7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-s0I=vmS|GjV za}W>^oQpC4_SK8cbLQ2oTAWJW-roQJ|GmAvb8~a(*s$Qxr~m)}Bd7sg000DuNkl^G!$kQVM zjnnI|3c#NTsC!}01Vl8tP6IjN_XeRyH%-$`LHc~eU)_8ZOtTS!kAnB|sel*HCLqIa z3+5;Q|GLMEV1CU}fVcBaf$=6_)Wpz=|m5)rWOK}Q`5-0}+EdzLw%4o_a@;u;3Rgq`wUaVLx5@e+&S-t z-<1gm#gUZ93-D4DKoLOVx$2kE5MVoi$HL`JO%RN(Aqa9S!3yZT7iZp1BjeX`i(Lr7n_%F0=T@H5TTa(T ztAOHHCV#+c4x6DW_~tz}j|rp{@Sn;Qb^==fWirAznHSG(5Pb83hfr2cOc%2_2xuYY zLs-}HkaWEaG!_EFMa82N{QX{!f~yiX0eD0X|TPx5WJ5I z|81%KO_t!@;;ZAaV4#QmZxB4>|BpX9s6TU`GDMFtl(xMKa|bpNeT8-omp)qXhBRK!~Fy(C{47_r|9NLNmdp@XS-m zPk9c_1f0XOrf()>*De2dB{y)FB0;aQsr)#v0ifs~z*vT}H~?m@S}(jrj`&)UntiRclKM(>z?Ie!ba z0pJ^9LBbAJpa{Qg;aO9x<^P6Y6!^Uq;aPW(j|GgQZwg$_N!o+pxSHBQ_)tA;*cxy# zY%6Gb=T3or`J_u)9{acOj21$J$5jI;4+M`beRH(|VD*O>*y2ERD$+ORR1Iu<+Op3( z6iD@+PMURh!!)JfvVQwCX3W4c?z#`_!e{;3_2aU>_{ezaE**|CrTK$6--|Qc> t1g-u-ThQnqv_`Xk&}VtT{vUs4`~pDIIc;LMI(Yy9002ovPDHLkV1jbOdA$Gt delta 1330 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 bH$T4twFv>oRoh7U00000NkvXXu0mjfW2I6k diff --git a/graphics/pokemon/scyther/normal.pal b/graphics/pokemon/scyther/normal.pal index 6030b0486..c1e4c692e 100644 --- a/graphics/pokemon/scyther/normal.pal +++ b/graphics/pokemon/scyther/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 0 176 232 -64 88 24 -184 224 112 +65 90 32 +189 230 115 16 16 16 -136 120 80 -248 232 208 -136 200 112 -224 208 168 -88 152 72 -208 232 232 -248 248 248 -160 176 200 -104 104 112 +156 139 49 +255 246 213 +139 205 115 +230 213 172 +90 156 74 +222 222 222 +255 255 255 +189 189 189 +115 115 115 232 216 176 224 208 168 0 0 0 diff --git a/graphics/pokemon/seadra/anim_front.png b/graphics/pokemon/seadra/anim_front.png index d141ec042c5e2bb5328b9ef070c649552db979de..5c64799f7bcb8228fed9256c6bf21e5a755e3d1e 100644 GIT binary patch delta 995 zcmV<9104MS2ki%t7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hVgPclg zgRIr=5D*Z9tj&93ApifY`1ttV#ZoXhV1TH|000000000000000&VV~v000APNklyo4(424Y$An*Uen+rkg?r9_bnB6T?Q`0rme#Zn5Ie%G}C;syQyobYjO90kY z1rSZfKd&wo&@BJd+#Grd(L z0<56_r&3Eb9wk6iR#M^vt(2^N`zDtx0?M|i9zW2g;D3D1HP_A#_!n9g{Qgow<`qN- zg%f%YE`SAO6x(F91fqMA7GM?d9Y=|vf{u2{O+X66OA0yyGF{jNOv9>(3<5v*neQc+ z!*D%sYheYd^1~Mcy?l{_3YIPNZ&y=nCPl%ffA*BHui; zQz;A^<9}2Nyo<=20bw=;@D~D33JB*SFe_khqy%>au=7_3(KAqXY8w0C;p9SU@QsII z-->4+Cc=CCE`hWBqFYb&HS)w0PyCh9_rh7a9r>r)4?8`{H^1&}hl_z^w2Q<+1m_Xg zp@yJ_=8I-n85@ToREODQme|zZ9q>>F>{H1u_kS~u8!yG*joBxGUOD?a+%|W7X6(-1 z3|zSyH9b{{VRpxiCK0gO9-8*hGteW3^Iw$AVjlYh)-*|d8X{c_LO4oTUAV-$780-R z3f3SU*I?IR9FASXa5gXzfyGSvvGan_wuMVjb^&Zg{0h&(ezCPI5{c`S8lrAfQxK=5 z#eb`cdj4-6hYty`WhZTX44sob&WbV5F9O!YJM#5>VXNooyIcP)wYEcRI-KK@K`q&j zsXPrs+aPveV_RD4cuKv7%N$m%0ea)1Mw2%I?Hc5E#O3G9yBcvLBTO182Y|Rrf?i9}Na{fU5`<_(`NbvKR%lzVJWQtW=k2PP#Wsj<5(_!BUzpY^r%0791C!-C=Wr1!0VI8oANfLrv4mt zeK6?IA^SmnQWGl!ur7)R00^vx(E>);>cGc|=P=~71-M0i(Auv@&h@@+A@?0@O?L>nMW4QntmjDM^igN5|%x-*zaAPm+`;YTGqdN|eI4eULf>Z^lq$_5PY zCv1p4Y(s#E|Lj1d5b1XTu&eI60U6PbA<==-j@RtrfUIModbIxLZ6gpet3LUTKbBi< z3cEo~gdI8%!n9vr>K`op9xv>&Lt*PeG_dLe)PG~U0Y(SbVG#0|Az~ES1?kj^YUTY)bWo-c4$Kv`MK$lte*aE^xaW21p zhwD%RF>L{OolX?1?)^yO&hvhAf!!9>nL)w{f@@{S9`j*MFm)djL-xSar!E%q@Vy~A zz<;gTlmxxlv;iV8SyaT8AzM_$0)Y^&cvAX z1b!7?s%rIFuK`erESqG}8ZXda7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hVgPclg zgRIr=5D*Z9tj&93ApifY`1ttV#ZoXhV1TH|000000000000000&VV~v0005qNklr9`k*4{mnDTa=;=KUuSuF9fWU*<`To<76+lH#3;O`5(j;E-B@rENY zR{?)Eoq5MM#ku0?b1^2c8Em+WPlXr!h7Y8quAtrF65??Djz=k4`Hjv3t0Ud>D$oRw z_AZdoEk^i28-L00xE~Tg06h!0^WT>(_O=K|?v9^?Vq3i7(iHDf$De&8j0BF|%_ ze=(kU^y)1OG4M-V1@`EA;u1;&)>dXO;u!gw5en$*UOrIHDtL=$rk9FTAO`!MQcl@< z)BsD_NR3};qjc^2FPvBf#+Jx6-q3ESJagvU*aQB7Hh)7MUn^i)L3A?Q&^@F85oj07 zWRwI(_arO8E07V7ia~>QJ8=N9`d9xY^ff$pu9g7sb8*$s_9a{^0{X^;ODP;S#-$Ww7txae zVKoJ)2TKAj3Y4o7SQYq*w80YrHh#8=H3MUprm-~-7Z*~2A3O|wD_(t=2%qs?fvbG5 gt!MNY`NrSI56s#UdErks9{>OV07*qoM6N<$f*E`Y7XSbN delta 636 zcmV-?0)zeE1c?QZ7=Hu<00013M{Ml?001yhOjJdf(4at=z&L1#sOb0*5D;j{=zwTo z_~^j+`1shcfG{{L64g-5QPmws8<6y^cEb@_F7!-Y}Q1ZV}D&nRc}#MfpV{6aqT~7 z6(#b&?U;~l6m0h1eaR(ypWi$thLATXZ~2NJzXHU3NfOUa1gIIvO^d(7-DJW?48ZfSY0(S2 zY67fyZhR?P#(^HOX(*AS<%{O&7QRNxY0`L|&1g?|&&yVQJfTs@M9*O_Q26xc@^> z8KWqT`ghzYFn6Tg?^Am9Z;u-x9;)*x%?$AV?)a$iaMmZCE3)La)=rG+txLY61jmf6_X+RNm|3G(sG=+ha1)8(W0d$H$k)6H|a}HSS<( zsehHvaCMQ1+xOy9B4LRhWiFMRnc)rZZt9-l4Yv;OlnYpVDcQozaFsyQeB3||28reX ze5*ds12U&GB~1dQGmq(;f^23{KE2#|R|P^IhbuqxX9dGc;SRVE*^G~bu)Qz;f&Kz6 W)SKX=`m;Cy0000HQc_wF5D@>~y~RN(lrb3Qb3yi$V&2~7T3TYHIYIx$&Gvg*qRs}%000F-NklF42B1S4@n@?_kY{-B5@2{Xq0oxipA zy98s(RmuPRfDKI<2yl0TdCrRg#BdTo4={R#CxR7(Ljd%E#NXxww`BqXx)ieiM}QRq z0&e~Qjz7#f-2vz>LAW*m_ICi#0B!}TLf9Gr`U3?3TMOv(sR1>C{6StdKnP|Gz*I^R z?ABNT{Am}~`+t20jgxAT2u9wx`4fQuae_hx6eYHgt0DgJR0ar2^^Z+p-ocIr1Qvu-h!5@(PVMu@tZ!vgZ=SG$A zw39%Kh=12de|$Oz2BfD+M{r;7x5EhV16>SA0J3?r}hc?brU-RM?w|FM#fT<-T z0BHz#Ah^|Y&E(nJF@T3I?XU)byP8r75Uj&slVNk4GrHbDe<%t@Dgqy^6Tm=!C?d*d zz)*jvBoOHmf(A7NjP(Zwuz(=|JKu?8{ec@|(H{z6*5*z1heg0xe_#PZ1dLCBqJKXW zfUgCN1ekB+q(7Vk{ecCH@EE{Qf2aiv6Fvb3`a>;XD8N1d#`;4NFbF_ZcmVh;A7uTZ z7BD^nvV2hK53PV@IDe9%KLT)M z9m)?RBL+b{p6%!z2l9jAG6WgEp9e6TAaPERB26s1KEXfW`y($L63`AJmH}RqvVx#O)>40hg>$N2kW>?M8mj<-F0{~Gm z?0T2h0z^c>TLDo&1IP&O<~Kdk2Y}A-I=cV+fT9ht{P2UxJpgN)JQ( Y2NCW@(?jesqW}N^07*qoM6N<$f<4!&(f|Me delta 1550 zcmV+p2J!jC3zH0x7=Hu<0000LCl! zLI}9Iwu#s(J+(zR?lG{)pd&1o;LXl}mwP;!v}gD8JNpl@bZ`$Jm!&{HUV z2Z5N+yk9f3@2e>PP0KG{y{PM%AWf(y5w}@2 z1XTJ5sf6di0DrJpEd;bIfP9o{`q%-M!IH5ez$Cyb>7fG)odD3rMA;NU0zd`FMhJm% zqyVsF4w~)QP6(*5u^0oUSrY#YkQM;<17iNW4n;LhOP481WK-^3xexai75C`)`Bnu3 zKm$`05d!Mo-rl|aW3oqr0E(f35#>nr5wQ2O0Di9^B7XsD-;7fr`;34C0X(O5bS!-g zY$~yf_7MSG0BEt*zL9jG%&qJ_;JoK@-oXxHZ3>_m2b@2I=iI{sa-sXDkOrRYbKc!J z*V-O7Iv(zXz-9!rIp;rV_D=5*cRjD(^hE>~1M|lMaF+2V$K69-ZwY`w66jG16#Qc< zgY$g>uzzHTAs=#nw2V6vXmnlQXUQC{y%~;P1xXU%HCk@-)E9s~21cXNYtA3TO)h|L ztKD4dgH6PCNH{h7^|Ky#+a4v!TlJ?^zYmyj@x|!wYxsooLnNS!4c3$qFzVE`(VGhb zkZQ!bi`4+IYf+53;RV1g(Pt0$-KQ)7#Dy6HvVXDEEYHJl@`y!BA+T|lWeIq=+p2$0 zn-MbsI*9!a0phw>#C^jUpctp@hU>cM`h8m#D3WlZ^VX{L>IG1D>CrFKq65iRs!+V~ ztpr^6X zfnh02MbvFbTv>ITZy+!>mkL!KQa~sU#tMWUxDG}l1j&a8pe&{VQGWs;p~P0fFnCsdO$vn{b=zD5&TW4Zm=gk|3%A;&4u}vy zF$KK$gapLH5C0VEfSm03Yi8QRJb$T!!wtX>Xto|U5T}60Brp!`4RqQaJZNCcUo%o= zUi(bP_)3*`;SZ{};i?P1oq<W&=`RY>UpbmwxtC4Qm#_WSuFXx}H1D{K|zup+q8uT?Np5FB?|?By)s( z`1b&nc_#G5?Ab4X+*QEBIsMGeF|^z}r7r#fWky;>F8M`J00000Ne4wvM6N<$f>d+P ADgXcg diff --git a/graphics/pokemon/seaking/front.png b/graphics/pokemon/seaking/front.png index 6f728a24b97ebe520eb76a7e720c6ef59c4063d7..f61a6a0fc2c1841a48ab404e188adb68f347b3fc 100644 GIT binary patch delta 872 zcmV-u1DE`j2lEDy7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hmgNwbr z&Gz>HQc_wF5D@>~y~RN(lrb3Qb3yi$V&2~7T3TYHIYIx$&Gvg*qRs}%00082j+u42AKc%52H|zwOoL6_e8GuRBvsmKJh8bR>bjEPsFTUxah+cY5#rPYKS| ztFr#*fIwjk0>mr9efA{)W<*V31US3GCxTZ*Bmj(n%n$d37z%*^gN3617T}dYfQud= z%E{vC3Lv>A5&Hy09|52PTnf^p5IO+qffInx14chBpe3*#^xXoK;N}3bQj6e27Zvc; zHx@A^uspdInSbE)z(vmlMtlhZaos2|MyXW;$a?ER3t)nTOSoAu!4O7pSq~Te5)JT` zwh|&&CjxMLoBsePgtQg_0(67{(CZ5U*GyPfs0421zJJm$(P;t{+e(F`;7%kZJOD@v zqF<5DZ;W7o<-z*>z5*O6B{aP|4i`{8P#*F<0IvE))qj+Dkb!lZc~}{M(CEFN0g%h4 z00@o?hvtEN0W!fC`3+z*2UhuH9vE5x-rra_&voTDH^GVL3ZNGv?rg%})!=-+&-3*< z`ywiUUT7YulR01nXeeQ$A4p9VK-ULcA?smEfIznxyv{9fC6FfxtcY}d($mv<7eIcR z421Z8y?-KQKqssjkO6#8tn_r=s{w%wWndF;)(1hq0>(t&<|-=5Pus0N(U4n+GzPl`MT<Abs!kbTDrT;99s=uO(;@D)-bs_W&R}5zhC}@yqfkGvq!4WX;mult1_Y zF-&cDfo2dV&6ha1Q^#=>fH1&Jxh3vJe@8e(M}z{%|ML+Z;yit~WoSXgn(Yx`=eB_^ z&0(JjJx(@>2ip--ytc{|Jta8LTeO-}%qdKkrMaHB$qfK>e{omHnFBuo+;-x7K-~gA yEW$D9YYI=Rcnob_K8iPCl delta 907 zcmV;619bfJ29*bp7=Hu<00013M{Ml?001yhOjJdf(4dHbn7F{u@bLIhP*4yM5a7U| zz(6RFFc{!)K=6=Y*x2A$Sa5(yQ1Gb0xOkA59)FMk000SaNLh0L01m_e01m_fl`9S# z0009ENklHq;6aa8r0%b`gh?_2*{0Pd>Ecn?<+kYvA(6I%~6CkE266)Fy z1ZEIzsD{8;1UN^& zYDNjDfVQd?1AmKwoj1b-Hn{;XB2lnpkpSrEI)ovJDh0q+Js6JbxFOInmzo00%FCw= zstCYdAeKIKxvFK^rfN}R_fjC&FfbGM z$n!C1eUsovk%$=RLu=Xs#|sAg5*+h7xwaXBZEc#ObAQA@NI*6`8fIn_Xo-id*Fp?D zA-dEhs@?)zV_%4Ocr1L{=M?7X6z9R$o)G=qh0*b;(ekEio2jA&%CltU#mhjYcrr!^-t| z@+WALfq&mY@`Z_j zI#@m|-={ZeqAa%%MAT(L0iWva+9%#jv=Hz`^nbbx&kGU&lvNASqDp`Sq2Tpw)3^n!DnR;oU9GQInm=y<9W4NJQ`6`(K#?zkPsxr4 z;D1=g+{L*BT9UYynP4!z1{oJ;+A?eg7+^CwlxOJ9qzI8J$A8J>uTqjf{<${eIM2da zvZN(3Lj`9MSlt1Ys*rJ}7cmn$adDaE~#-dx82bFY59<95;CvSPsY4sunJs hVj4sX&*9&UzY0n{hG%Y)T>t<807*qoLQiGJ7 zwC3ja)y?h@5D@tI_$jQUYFZGqltK39y@)U%&~RAzsHn)WfB*mhr3gz40009@NkllVaEXe7PSw$3g5I`>1?vm>HtJpk^B_M!wX$82^{8K0Ln<-CW z7;fGM#&Nju9DkKWE>7S^`@bTT`FIb2bw1xB82KFluJmPA+-v>@V5h&>hrQn6l@y?% zzXAZaBk-DVp$}y>u?butKwLQX`r$rc1Rw!y^rHaY%;Gu?|~t0RR4y%>dt6l7G*c^Z^(j-FWx;MM((nGzJLW z4xr2FGTR{PrgTB=y+5?g-F2DM|Z^n7#KOH#6h&@%)-G z1L9c;Kn@$b&8g1VsP}#*V!4J8^d3wpaCbha^L6%!z6OF2*7~CqX(0tvp zd>0OWCwluELF*1|5gFju@&f5TlEi&j0*zdHh@f8_C!ToXi6@?T;)(w?e!IcL&SsXf z+*t6bew!}ZJR5lUF;SH zjq5VDEsqEF3xmdW8QYd`dA~5Iu1mw%wlru|3Mog0!Q{GjwyoUNGWG|B!Q{Gjw#`+- z`F}&8u4`}G?BJie2z6Z{_>FB_&7L!Wx~{!#Gy17hh7i}qrpMSe^_^MXuVav!u43D8 z8$CeC0N<2%0RXfV+t!fx3K{8Xfu{6Sk9pZh#e({G2w+DF6QU_U(mS^z#1UwB;NZU# zx{hILzbxIu`U>D_7uTDNGxtO4FeinB_&daEsezw*n+`|?VZe&VD^eXp9$%?U;XMa0 k6DXx~Gio|dJn1Ta;jT> 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 W7*9y@7IxSG0000hno7#R4#u=x1+ z*x1lmSXhvdkbqbqxVX6Z@UZaMfY6{|=ujv^0Qvs_000SaNLh0L01m_e01m_fl`9S# z000GoNklg)P@sGI-cgG0Xfso%pf}jD?$f)w zcR$`2%le|4{dNA!F6rOkHT6q0Tekxh&H5Mu<6+}NfJGPW$j%7?0+v7m)S1}$X)DDA_HK)Yggek zQ$ReOC&~HP%oO}=+dcpS96F=XP!PX(WK5g{&aAT zLn-5EqJIz4ZYY8dokIhFl##I+_2#DFd{dpu-4$T~Lg1CC)iKNpkipp4EdoSMAVkZU zBruMoo=Q*kR&WG|W;ubE$FidXZTzZe&`0!aT_FFr)$N`3lxaGlTPao1G>0h-<)4m1p z!-}KgvU?9}Vf6-JQ8CHU!O=Hi|0ZzV{C^&Vt`D0M*;@VN*#rT=nwZp!%++gVKelH zA9^8QJ4(l5M%|lzNYi%%jIa(6JP-7T@=p3DeSP7Fk8%JNBS1yahS*bj@cXaNa(@67 zgY9D7x_+kia>H2iHNXON5UqT(%M*B?UR+YW!M~>G0o6Ud>_N|lzj6aXKn|%o2S(ZJ z+BTdj1HlPKQ(1Hn^atDD&vF1JRR7P12CziIs44?#vEY0(x*;k1HVQ^Y2GR;>0;5U6 zL0E=@p$r75GEb8@Fdc;9I}6_G8Gj`pF>ABcZmtCbN1!PrMjG(M>4K5WF-UBVpai3` z77XPNbfi!?q(u1p$`XTuN8HgQdliWCbkPF6= zfLt)_z%-CtFqZZ0Pl^(2z<(#fSSpVqpgJ@aWhEFVT%9bB*Mg3zC@aCp^??3QW*W#R z!B_#9Mbkj81>+c0004VQb$4nuFf3k0000mP)t-sn9!hmF)`+9 zd;gS_7#JA;y{!27_}JLcQc_xrl$3*7Ahf-`|L(Nz)q~BXV(3sPYruLJ0008~Nklxt-)xM`Y*@9K%zO!X7pBCt5%=6M#WbMm?k;Ax%<0WkT!7Xw3B^ai-+!Grx&Z1D>z z;g%i%U-e!IeAWN@;-U`);5}Fu|2g0lG^zaKrC+oysiKQ z{Jhtvl%HyuIe(eH5KN$Yaiimf%nm}Tj03=H&>VyiVcgO4_H1n1Hf{iGV8jpqW%^D4 zylp4_mMcM|@>1)~uY{bmjPj=XoKpp8`pmix2!TCI3jibK+ya8QuX?0mu#ONqC3tnj z08-vT?K1!b$X~CQyj4AMi9bpr;mpv5%%X?6oQj?-{(l(PvI=7ta@HVnS%M2d5FY>% zI*boJ9V?(5U4`CemVTluNv-joLfOfp4QppJk~X4h^>4NmN)bfKB8Og0!U1<6_O@1I zuoOxVJ-y6X39jjjdlm|!3(#&}b@qM%h&c4iX$MRv2NWPl#FmVMb!0lEy8~R)h{SXB zUVIp>;eTYoU-YB}t&KJgia~QoYyfKYq^S!*90>hlu+h?&*-lwN7W=pqg&9K z*q3vf>dvYgK$o$X11V-{1kf+)gXs%F4E-i*MfYM@c=6%@%e&*m<)Bmos1bnJFK7n< z=GS8MKxA9j3V>JWGoy~+=9D%wbvLsd^%X#N`+q>c>m@;MCTIpbBEf-j*Vq9x1WXuf z5uhF7nA-u=0+>5`OISG*ED=;fpe6)4T1NolROH$f_Y@jHrtj%%C4i7h6vs9)z0e$lev=~3hQH*lGJ^^YueRW}l-q-mL2jJ2qk8c2InL=ot zMTfyx^7!V;T>sHHd4>C?lgGU~cSG>f$|F{Q!&`CbK;xfB66a002ov JPDHLkV1itZq*4F? delta 912 zcmV;B18@BP2AT(u7=Hu<00013M{Ml?001yhOjJdf(4crQFz9G__>hno7#R4#u=x1+ z*x1lmSXhvdkbqbqxVX6Z@UZaMfY6{|=ujv^0Qvs_000SaNLh0L01m_e01m_fl`9S# z0009JNklFD1L^|u#s5HZRIIV{TtCp*!ZGg4c=`co1<`!V5!O#N&bPGUU zGRB_vs7bdZNq>9<2L2lgHxCM+`wju$eX(-T)V#0&yqcUcA3ZEn@P^|8&^k-Loepk+ zb{r0eiv8|1Ns@W1M=8c2m_a;?azW0LpP!TDD@dUIR%-^FdrF$*dm_%4)RDjijAy_> zaX?ZDr0JYei;U05aU81-H0@vkaG0i7*+&F;8|`tJ1AmBX>jq3S2}I*r9AAv`O2G$R zcL5Nf&6*r0?Po*AOb$hD@EpyudjbC&;i8^c#KsPq&)ng>ls$L0^(V* z8E}|oLMI8}nPC;G)`UHQrJY(L$CwB8JLd}Eu$nMd@YBK^hnz>@i5jF)m4vu-mIwfx zhq-1{YJX)$X<6RN_KL^>jNwR_6?C%#xHrmmO90Gd2#GRIVi<*7mC}*c5=O8@mM8H3 zm^W3Rfv>Wvh=5vI<8$9V4st>{jM}V9r2}el9{4=ShoJP;#73ho)bNntQ4S!~?x!w} zxKm*g0N_y$u)A>CvoQh|LM?#qt{16EkpAG{5`PAEtAPVXsoM{C!(6|OK3rwV?Br&=!u(Lh6Ka8D3NX@U6vUGMz84C3rkk zBY&XM;wgq$0jTv*y)L+jZwNUVqMhpdLP_!5fYwC1z~Ka~aIn?5V+jCu)YxDr4P9;@ zdHHay7wy`<&Xxc{AvP?0^7=?5DSnxyn!W*W{gNg9k_ShoZ>#~D_%m6egWf~GzYg3U mw+nv#Zvbxj^&0;1`2*bJN%$U&y*B^=00{s|MNUMnLSTX){I2l; diff --git a/graphics/pokemon/slowbro/normal.pal b/graphics/pokemon/slowbro/normal.pal index 83a239b6d..ae4d12a99 100644 --- a/graphics/pokemon/slowbro/normal.pal +++ b/graphics/pokemon/slowbro/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -120 48 48 -232 104 120 -248 144 144 +123 49 49 +230 106 123 +255 148 148 24 24 24 -248 192 176 +255 189 172 248 248 248 216 216 208 -88 88 88 -144 144 144 -128 88 32 -184 184 184 -248 240 176 -240 216 128 -208 160 96 +82 82 90 +139 148 148 +131 90 32 +180 189 189 +255 238 180 +238 213 131 +205 164 98 232 80 40 diff --git a/graphics/pokemon/snorlax/anim_front.png b/graphics/pokemon/snorlax/anim_front.png index 94d9d4784b694694927487039e72124fafbd0861..cfcd8e4aedc4966086f3a214199c3a9306c9fc69 100644 GIT binary patch delta 1207 zcmV;o1W5b)3cm@E7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!gQ5C{-C zK~jsXFyqOr3`Q*si%Dp||Kkn<1mYryH-ENfo9?Qabo?C)0)IH117iQmNa@0MB0!fcvg*PVzSA>9S!@gZKMh0a5|?oiFPPh=4+v12F%7=gTIW zDkFeWQ$Wh&Rr94x0KhK@@DBgG@=qjqUcd}+#7rqKLWqFhJaZT1JZ8Gy0X6!d?|YR` z34i&$G9Ge%-O^hB>JSU73V+*wzx^tVUxo3vDvTXq_?E;K#s`44!uX(owZizQ2MdLf zFIqibWQFmW$5|?jc)`@;FrKV1jOcNyLZK373d6)F|J36!g>py=BgV~1lAx;~DHNr0 z38KO%`PQP4LO}%*%aj!cZ4j-;DGG%)fPYqDj0QvZ6)49INHiFY!k8i2FS~}yOYwa3 zdi<~hq5HPnpl36&cR_;(+T~lqmh6f#FVh|2fcu3j=sqrJQENNAlZY3K7S~A zh=8OJn&Uej$`45&usj}`O;!lB1$Xv977zr;3Zd-by*&^GM6VFa9zL@NO}0ww?e002ovPDHLkV1jDhCei=^ delta 1396 zcmV-)1&jK>3Hu6=7=Hu<0000857Sa={nU~s6w z*ub#(=+OB1_;7G=pnz!T(74FR$Y4-F5HL8fhY%G2000SaNLh0L01m_e01m_fl`9S# z000E>NklK!Nj=FdrF;E0p38pw`mMC{R~27h^mE|2JIPJT}SGmH;JBYEB9( zflhJk+!2Jb&g((7NB~(dDXl46wA3v*>NddI=PDp70 zhOd_k2hi~XxLDEKyhbv@AJ7_K9+;jON*6;Q9uBY(J6gK`TZAljlqDKHu7$s4;G1X+_4 zrQWr*!^DmTK>(@cyn6%pFvANGJ_E2cC^-3++VRzE7^N*dgBG_msL3BUJE_d6Y=5f- z8HLdx)+7OW2=I-LzfbLfj3Uz@_KMQsJ$V>^zz5t-ZXia3*jJ>YWFYwbrMXcM*-o`6 zAsGlhVQH?6jprCi@x)dG5yCu4wSa6G2*&fX@WiHp*m0erY#?C-o#LQC9F1&%YQ#hP zw82S01`_VpgHL6_DCt2e7|!%B0e_1PJ#gcjf>G)*6AY^f*B^{vWTP4Np+Yb+0QG^% zvS2jh7_ufvADDCnLngC0x=jJ24~}3E5ZtCVXY|1l3>jPk0(z`i`k?FUcyh5;i4QZ~ zgQE|rK*+YT2 zkc-dw*X%S)`ar-`+Vj7p4;nzjn6L8jo#_KyYkxq2NT#WRK+#W00009y7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gQ5C{-C zK~jsXFvpUl425SSG@=ae|F|dNCUTo&=V#Nd)mqsfJD9}j>won(0{Bj^HvNd_v^kM^On}xq z1%lo=GU2}gqUX>_&+(7|O+lu!J`*m$y0&o%bHpr=#jsd0K$R36{6k$9U=?75F*Oi1 zQGV1(M1a(mF@JLhlEG0Bdka8(z5@ptIXHp@;BB*BcMjOLMfl?la8PxM;yc$DR12_X zGtpK&#E|@9aWhcrQ+8_r(t-vhhr=Gkj*5M`hx=X%aLt)<7sBVu+u|COh8(^)!2yG3vgqc1Q)O<1p0%!_Q*`t~g zurg4RFpKHf&4GahvzjKaCBVg|6vD6c!9sjvP6;0Y<|}|B^#Slne*q>0xRw4(fD7HV z&H*$BM1TDZAcY~{G$kbcEC-p=^1`GUA?OhZJn%*U3;PCWOmIki=kb#tJn zq|eK`nTGT9D?l{heOlHU2!KKu14MtGY1v??Rs<+D1Vp{88n(>!`{i}asv2yt9_y?1nHg>$p SY7O@Q0000%V delta 829 zcmV-D1H$~D2FM1G7=Hu<00013M{Ml?001yhOjJdf(4Y_y2oNwhP>857Sa={nU~s6w z*ub#(=+OB1_;7G=pnz!T(74FR$Y4-F5HL8fhY%G2000SaNLh0L01m_e01m_fl`9S# z0008MNklBWTtr ztZV-CYk_{x81Ue@4iNNepNkrx!H+~7$D9jsb4G)UC#Nqs4@8YcBjEg$-me4LKycL6 zNYrF7F&Xec>wi~ufIHN0`A};;s>yK2S_{{ zg!aV*OMjYf2WBB7`+6}*YsFq$T5CE8~joHi|Sn2 z0B(D;Tq{}Jht6_s1IhVvd8K6e@h-_??_ml2A)vBs%8)(is4*5cNx-@auy2YC8FVIC z&^E>hOsHO2$O0K)(YZI40TI?C^=ldI7V|1cxS4?4^=kbCi`>r56H*fg00000NkvXX Hu0mjfz3O<2 diff --git a/graphics/pokemon/snorlax/normal.pal b/graphics/pokemon/snorlax/normal.pal index 5b782626d..b639f9037 100644 --- a/graphics/pokemon/snorlax/normal.pal +++ b/graphics/pokemon/snorlax/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 16 16 8 -16 48 56 -80 136 168 -48 88 120 -32 64 96 -112 168 192 -216 192 176 -248 232 208 +16 57 65 +82 139 172 +49 90 123 +16 57 65 +115 164 189 +230 197 172 +246 230 189 248 248 248 112 112 112 -160 128 104 -232 208 184 +164 115 82 +246 213 189 200 200 200 -96 80 64 +98 65 32 16 48 56 diff --git a/graphics/pokemon/spearow/anim_front.png b/graphics/pokemon/spearow/anim_front.png index 055e846776866754eeea6a8322345e995ccc5af3..c52e1ce2af7c98dfdadf025873569dc7297abae5 100644 GIT binary patch delta 845 zcmV-T1G45k(d5QI70U`&Abf7`8Yd}OsFrD3F*{Xt2ICnHzUZhwyGi!n<}OFtrO`_=i` zfQ=KJ+hzkC2e@t8F9CL&4e$=NZx#X8IZHDM7~Am+Z!`X$AQ{dX56$_d1jo-aJehRb zJ+a%7${&J>G2SJ_=x9%Ry9vh;_|+pk9Y;)*^nMeM zAZu+Qez%?|es*68;gWbo6oWFLs zig~cSb8&08!$RcQt`0DsCk*#?!B)A1O0|*7&qY{o>3>}`D2`(@|ys8V>7Yo(?SfSGSTtz0`=p)cSO)z_Z_?HRWXADBQ{PeZsdoAitw8oqzZWj#0yNc;K0s-Y@vp2E4=bD13L( zJba%4cMHbhn}vRT1HLWK*f-$Y_Psw1-*$7B$#ojOuR{y`JrCcepT=Lpx02kv(0kgk z5%+Y%_YUw&seQJyAEVLUaG11R8puyjGVHr1fcn8fgfodJl6zQ6%n@lC|HE29PwMc^ z=SC7{QDuKmin;$30U>M9EhXG*hw==5*Lnp|9{3ID5t?=vplbg=dPdc?e`#rH>38)9 X$*ClwYrPOA00000NkvXXu0mjfd!dqM delta 836 zcmV-K1H1g#2G0hN7=Hu<0000`y zs6a@-u$cJx`1sJs_@IdY{{VO>D2RAqU{FY1suSe^00P=cL_t(oh3%F>OB+ELhQB1N z(u0W`o1>+U$-OmQayH%GV`LIT$VQNCAW{&DS-N}ZNl;4l2Y(dwrZ9WxsfkUH{smiT z3M~;Yq1eLOOQ7u`>5PIxcV>F%$&&Yy!24vr-PsAx0*rEF6PN@D-jf0I5RA)!;5@`1 z%0>j|1G)^DL%OO*XEH({q^I?C{E=jd2f7|l-%TdPE6|`>ghV%@(0(?H(4xN@TejBN z2rIG0?V+|`+kdBoMxGW>f;Ye>jn)B#EK)5XG|M3z;@a+7s^vDG%pt_th;c$3vXW{a zb>1U{IU~kfq}edD#m?g_cL8u5V%E({EN8xpa(BU|zpt7VbsDRxmgkLd>n6>DN|Ud0 zfQd%+3W%9&f7StYvSVHWYVOzv=reiNS2aq+u;ssvsDGZYXm8;~HO2)(QIxkVYaRF0 zJ4SzX&+897uh-`S z8U}^7LyQOFQ*Uf~H0NTVyt$3>kUQZr%I0>)@WcyHpa+rH;vOP&hk8f8Cv_eB7{V{x z&686>-+v{?5b2i=cX#=H_-pGG`z-J9PBqQh^TOMUFM=L^_HRkHfF=TpWD7{Ze< zSBhPc+?kuHnqwbI^d@*}hEGk?tXEXb6py!3)57+dB3}9 zCQO;!X%wm48BmwX9bhUim3u(_i`;MPC?S)3AU&lm%H$qOvR4SH+}Vk~mV5Zr--nP^ zc+uTra$h<*+v6;dfTdsLhv5yq(wn^N*kukotn;A}j z5k1ABZyC5K(fdcX14Xgj!(S+%G{yhj$OfBpD7pfgi{F;T{V1dSYkmXE=Qj?v6r#oe O0000l9 diff --git a/graphics/pokemon/spearow/front.png b/graphics/pokemon/spearow/front.png index 68621040ab237cc1015f52f49db1ae18461486fc..052422e9ad18f9010f8043c388c4ea2757ab8d71 100644 GIT binary patch delta 548 zcmV+<0^9w?1hE8=7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h{QW(W* zAZkGv?yOP(008b%N~}Rj=GC>|KE1cpr>upV@JDiTj7Vn9WjQ4TH`%JwC}mSn0(@ijgCCU ziv(4DMNp0Wk>~Ls`!043MdE$e%z2&i*7x*f zkgJ^aVwFijEoc6p0>ZbvH(19|MSe+OhWcKBeQ#l}(!{5NF$FrY4rC`6T?Yhd_IJ;^shI!aOBQd m`MkFJryb$`pie#Zzv~lpM-qND1Tvoh0000X&% delta 568 zcmV-80>}Na1jPi97=Hu<00013M{Ml?001yhOjJdf(4d%57{F*CKqwgKs8A3P5a>`y zs6a@-u$cJx`1sJs_@IdY{{VO>D2RAqU{FY1suSe^00GcRL_t(YiS3d>OB+EH$6pds z>A}QF*<(wcBzHAkJSUyrHDL@vvJr~AAQS>chbCVjrC>im!GEKL$)Tsl5($2V=pi@7 z%O3PFIqkvAZYLHjm^XVZ1%H=a`2Y63oi`8QiT{?w5qu zc<)#nw*1tfMSrY8M-GPHAtj{OpfrydUD@yS+v~&r;Nu#l$RHM^?8^7+r=!UQr5tIo zFq9_)x4J#~P(=$sw=3NPch}l-&vWP$I{JIh-6bzMA$A>W(LZoCn?zIh5MgoPJqVWD zejF#r(!_lb$kupHV9WJc?%CR~xR^gijunN@1+Nhc6@OAWS{Fj>bDz9&f_>yC6ECcp z&#qR_|k6s5MKR1hlV2dH3kNb5A>JTz~;(^HzM zS!neRIgii|e@OQZHymXypambYKg~I0^@RM<+)e$ZGltB!)03-fLw+g8kPVu@j*jp= zb36Podoi}YVq2}b`O-MMe=+267d(#{fhG&-m=Qej&-o3%51i|e#{=*H0000I*i;_A4OjWOq!0%Q9OWlDi3n-wU0fPA6;rHs@8n4~@jsxKMnSOt4Y`k6$~e8jq9CMTN1&16-I zkVrz9-g?48J%9Peg=j@!c}s|+fSSE0e|4|GnJ0AgKS$s4q{Ug9B#T5 zF=f0W+W@-JbalZG_Qk{!)z6kcT9|9|>u^O9fFe}{mp4RMUPhWWERR_zJCLASLwx== zM+h~Jvk^SsZNsuP`vyRnV0q#i^qTQZSH|rG)!qvxN}D-c!q31FBSwrEF`_4i{U7#! z*#Ey_|9@KvzuW(2z|;OW>+Rd^&HndH(`EnFGPNHHOqcz4$I*mPck1@v3kluzn637SU=rw(Zl|qA~@h<&jVv6mbY=$G+>?2xanh+ zKivNT=ZyP0c_sA){t;zp-m7QP73My?*6qT z_LlY02)u1|yZW(NHuulP#=8FV11aXS?f$^LdwKu@*GOfn#r-QnoKP-5IIxBK@7rd1 zB(v{+JP0mh_gMX%bm delta 796 zcmV+%1LORt2B!v)7=Hu<0000VN>93>f!qKx`sBKTDc6;1T1zD_(&Wh!Hq?@y-rB#uSG&fNPpOdjHl6cn1t~ zBw$aGnJGa4{eMQ-CfvKbUY>;ElMm2lWT%lYn#VUcBWN-n^sD{`Mjy0BBk(hxQh-@R zH^2&Co^g7XxQWCU;zUK9?!yIunbvB~5+E|5g|JuXm7HRlANWL^p4eN-nO+5OJaIyv zw5vp+ms+pBis8h?nG$EQ29&xUP6GNi*Fb^57+4x5)qhf@#wxY?GCT!{QUWLzQb}EY zdoux_aiZA*Ba}sX^?D3VYU_=44U0>E-vY4Sx(mGfbAUlLLxcB}RO%9UVwNVV892up z)f|BV311oSV4{UyXOK;?XHG&hH7ySvOHo^rX4;B%( z5N?F>K&dISokYY@9xUV>EE`8bfbw9e=YRxtn5axP@&GGMiD5N3Yyfp7AS7ntrVtk; z23V@=pX66Dh zFx(}o{1GJrg-`~yA6ME}7@(f5QG_&|utJEFuhW!Bs#!d8iJr=nWFc0004VQb$4nuFf3kkv<>;fH(k=VHJN?xP6@f z00E>)L_t(oh3%Hxj)O1^L>q4gs;C|Q|8FFLGZ(w_ok^G))!4+U_kx4z zO0$4ey}GpoR(7%BN1oQ-u7$yV*00013M{Ml?0004VQb$4nuFf3k00004XF*Lt006O%3;baP zkuD$u$WWk>Q5An;jXo3r000SaNLh0L01m?d01m?e$8V@)0005aNkl zKx3OuY`vk&|M~8}>s_36{9kMU{H<>h;&1=06S8k7P(ObJLJn+t2cH7~8Jt*vkdQqD zV9>JwJ7ger=pI`$Kox<-0yJUi^anUMyL7*Si&a3f0`PCmfG5HlxHAIYd~!3bh+QKv zpG;_05wWpNAw)qlRi%4m(Anah5xW9mLwKB^k+z++{_$}RWXFtGo2vJ*iT*g%w)=7H5 zfXV35(Ib^Z5~-x-SI?Tq6T{nJ2HdZKMKo~)1mKO`frbnWxf z00B(|9phmI?YmRQ76F`5N{6PakxLrjPt;td?JKzsOE}IKQ1t;}t?czS00000NkvXX Iu0jG}f`C}_W&i*H diff --git a/graphics/pokemon/squirtle/front.png b/graphics/pokemon/squirtle/front.png index f8854997d46af0e49db218d4950bf44b788b3167..2148e227fdcc9c4f91d3149f267367f643297c00 100644 GIT binary patch delta 514 zcmV+d0{#7-1ds%f7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hFoTMpp zgS6)Ei^a_l5D?JF$oTm9gDC)5Kp?$p0L^7}pF*~1=u^92}*%YX9d(W5^uQZfI+{!*nh zi*P$MMc~^%Md0-2pCPb2X%fKH{Tc-RM+q#w0$Ep3WE8M@2_mvGO#s9JS@Jdo$lk&> z2jH&=bIu!$1LTGI`xt2gutU|%WC@pb#gg*lxJ^G*e1a+ekjnZ8;{r~^~07*qoM6N<$ Ef{-rh)&Kwi delta 529 zcmV+s0`C2g1fB$t7=Hu<00013M{Ml?001yhOjJdf(4a`5$S7!#fY|tO!0-?d5YWiT z`1tt9C@@$+Ah2K%pnx#Qs95meh)^&n&~OmK`2-XI00F56gj z8Eai28rwMh)Zqea77>XiMp=XcLJATTX%L)(meL0ZWeOxJ$A3j4(ZIq5l9i~qMi^UE zc-AEa%5?VoG;e0#Sk|ikX#qsddb=%}2pe@F0yD7L-a{ZU>dt=IprM6>B5wjh6d5q# znSfT=;bg#l6R^#MIFOfM1X>7mPVdaX4q6;G08Y7N=l<3RxO)seIG8Pt%U6OBx^@&0 z^4gl)<59Hx0Dl1^H;p~%_m|5Id?vzfUAM7&x}Ig=9gBnl${-FxobYTQ=(ofqxF_Yg ziUqxg0{|1P)r@f<9IztTDD*skLYq(gB2G_k%=3w!htMBek>Ej{DD=D5^A|ZBJNTx= zSyX^hU&C=o-)03A2#kOwF|UuBYn)Q6$KeG)oDe|qmVc{UFJ5oP;4wigTVRJpvG}+i zflsAwS2Mg#y)6U4j;by2?ymsSx`Qo_RIbz%Gbuxpbq67EMm0kqrSvlJb*1tr1X_}c z%f%QorJk7~Zp%v1Ig>Ip-Zd)nha+`|$9`$;;^oj6Bi-u1%X=*v_yw-&&+8lOdXy8V Tdo;8F015yANkvXXu0mjf1CZ`E diff --git a/graphics/pokemon/squirtle/normal.pal b/graphics/pokemon/squirtle/normal.pal index c66f21e48..b2282cee8 100644 --- a/graphics/pokemon/squirtle/normal.pal +++ b/graphics/pokemon/squirtle/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -72 160 200 -40 104 144 -128 216 248 -112 192 240 +90 156 164 +41 115 131 +180 230 238 +139 197 205 16 16 16 208 200 200 248 248 248 -200 40 48 +131 41 0 88 64 32 -176 96 16 -160 128 48 -200 168 88 -240 224 136 -80 48 40 -208 112 16 +189 106 0 +205 123 41 +230 172 90 +255 213 106 +98 41 0 +213 148 82 diff --git a/graphics/pokemon/squirtle/shiny.pal b/graphics/pokemon/squirtle/shiny.pal index f069e2dfa..ff20b8f51 100644 --- a/graphics/pokemon/squirtle/shiny.pal +++ b/graphics/pokemon/squirtle/shiny.pal @@ -9,7 +9,7 @@ JASC-PAL 16 16 16 208 200 200 248 248 248 -200 80 160 +128 56 0 128 56 0 88 168 40 200 136 32 diff --git a/graphics/pokemon/starmie/anim_front.png b/graphics/pokemon/starmie/anim_front.png index 5bc72ff51f1e670c1d6a665afcd5fc48f25243dc..0a912a022536e93cc96b5af194affed60c47defd 100644 GIT binary patch delta 1170 zcmV;D1a13?37QFz7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hFQk*e4 zbJeWwi*voSi`4)C09rvY?!`*~=9I;hAe3`K_Ql@KAX@fPbBhpCbArl3000CSNkl&>Y;&COKVtd9`>*MGcTzw$pQ#y-@)-7|uF zJM%06<32*LotTclxle$#uALX__CK080d{?`#@P-4tJes}fGPxRzNbe3R@e~6vwjPK z8nDJd6Ci|)5P;j7Cw(7~352lThY+0ff%`}L-o)4dNU%P{7;+!DdDiy=*oWW?zyW?2 z{Uv}2^v8!`7=JT>gjwI8+6+kbd5`k)J7Bg8RsnJAE961@swIAn=nqMn321d0tRWs&rMROT=u0~2BG z^(;ySry%QR)-MYZMoy)({e>hEQ2x37d0yAQB@+@1F@oe+D0K0+&J9Am)LEhzXZ;Pd#Zm+3d%7_gwzQgKpKN`AFvXF29N^)N^H5&2tjdeHSet{*sfGIcjB6m07+E= zh<{*IePDo8gKD@fhoCr_>RL5`R=W~VRocxLA}EHTvt?No;3oW6e&ttM<@#27rRN9d zegA-8xljB90^nujzJI{?h*SSS3ox_=-Usky>%>3!3Sd6`gKq&x|KLl2Irsq|KJ{=@(*qR4*tPcX*l%{zJDMz{DX>Mb7=w2{R3NyG5I3dB{ckl>gn`x zUEUE|{=uehKYhCX0WI&om0%cuSUz3ZR)2ZeFlKj5zP{ezxZ7#;sWAtyrHKY!2z zTK<6!(D4sc`ksHF0`&X?O$c58Km$1V2d|xfpy@;9ALMCQ`v;1*bLAgM?aDt;0YqQD zdW(OcdA;ZN|E|BqKe)d7ihpo8I*Wgx1bl`n{(%l~y6Y$ZK=J>9){M1kKy$~UHF2HA k3;*ERJLcyf{71__NU=UDqBk}*01E&B07*qoM6N<$g02`Q%>V!Z delta 1152 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 Hu0mjfpv`;b diff --git a/graphics/pokemon/starmie/normal.pal b/graphics/pokemon/starmie/normal.pal index 82ffa3fa9..2a266fc3f 100644 --- a/graphics/pokemon/starmie/normal.pal +++ b/graphics/pokemon/starmie/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -88 80 152 -48 56 112 -208 184 240 -144 128 184 -176 152 216 +90 82 156 +49 57 115 +213 172 238 +139 115 189 +180 139 213 0 0 0 -88 64 48 -232 216 80 -248 248 152 -176 160 48 -144 112 64 -240 192 216 -200 32 88 -240 80 112 -136 16 80 +90 65 49 +238 197 74 +255 230 148 +197 148 32 +148 115 65 +246 197 222 +205 32 90 +246 82 115 +139 16 82 diff --git a/graphics/pokemon/staryu/anim_front.png b/graphics/pokemon/staryu/anim_front.png index ad2250818c8bd835d5a4de59cb9c766167c92998..38d62ffc8a00e073d2e198694bf9bce2db447316 100644 GIT binary patch delta 997 zcmVK{4*$G0l`I_CZ1R#l5T`5cv4`6OkVu000ARNklyk=Dcx!>D`;30~$hP<4j*RZPWZ7Dl9 zjvxe)#Z@1(e1AOb3hbgJ5mXl>67(rl`B6<7my98Qvc?=!n%QUhVOx@Jy8)2EJjss) zJNMobn<*goDJ=KLW0A$!UdGm@B*>Ba^7E4kQp=jcF@UiE?BG2EbRz`Pd{>YFVw}R` zF8Tr}YiI$mi!lKJ`5jAO)@|h0+mfvaivT2vSxS+TKz}%KA0RCf(n!$fXgwFm8gb6$ zPy%ZTt$-NyW`dZtm6H~c8v$~Xh&Bd%sz}ky+;y^%m%fSUU|V=?(n03E0zDf^++Z^8?_8fcIk;0QPewWPLk;&A-x9K4Zs&ruo-O zpz@H|QHBB#1N^LSe>!0GzvjT*=P|^7sC)J5SAXQ!+Z3Wr5BF#eK6V3Gz3*HA)%AAl zA-t=&JzWA!L+sMSdCtZAPwE}k~?mJccpNe_+ z`y;3)J!u73`yX^4U|bwEKwvwyg{u8m2N|+)aqfTteblU1`>*C-Zi&HWO!Yqf5Dt19 zV1E?*KUp_LHzG1+i=g8!)-H;u-%Y9nPWn$*@*H(CLLb=)(~P zzvvk&&;eFVHpl?uV2)=&RCY0H9;_oQd0yXfAPFVrLxj0b0y-TV1K`)X^gBL|T*n4q zPNq)-w6g}^^`-cpLdWc6D}^(FjgFzDDY$dD-Th=}mOxWFJ-`1trd26_ho00V=hdZBO7 z@&q)m(9RkPI9@wQRZnFui8Md&jCaTTeTwoJ|0XiC6M$TP!UE;&Bmga?S16i zwTX=J03fx?c>q$o)XOLpQ1KlwHycf%sarsFsg{h_5#X7zh?FPq1u)%!$BSF#=-ZUm zD|pWFc6`6>cz??!jLU0dB?<<{ju$Z2qb-avyiK%M4cQe;C;$%iA#caFqlDI9^r%N% z+By~a*oK;@(1fQc-9H*uAs;(46(ImTGW3S5izM5nAw-DxZS=Lr7;DEXKoi8F2fr?_ zntMJoWq{c{rXK)+KK9zO15um(&c`1k0kFOd&}NQ0AAd(z-O zmp80I0`TeL!u7a_cm>gfLwkf$mk+F(6!0CdLmRZkO_Y}b`Y!!Eu=uO}L)k6}An3b{ z^MTlDDNqc$oSksKngFPH+q8x!+{#;p1OPq>i=QJT22;{xMgVy}K*jjHUH4cQQ*bmu z7;mKjHGi(d$VxAXB2++@W?8x%2zz`g{%JbYh`)wfzsUn31+@B~yrL}QvIMxx!}v)6 z#kx=H6K+dITbcko#$!B2ED|h&J$3UZW6a6&YHsl+pObyN0x+(Z$QiaAC>Wd91iNYnmlcM(z?{$?5SJHmHje1KgogIOWv3uIo7u6UQL#^HXb+mKyJdi@ z!hex9GWsr~p0EeB#rg%?HVkpJcTvLI%-f^n0t`qKv=iC3y%8yZ*DROUC;|ER+Cu+O z_I?Q++d>itE0pk6){f;>EJSnW=!8=bZd=?&CJ93I63a)CB)>uL+sAh&1s4Aguz__-jC!-$>6Z)$Iwu c|LR_T13ObstNcb}rvLx|07*qoM6N<$f;+U=Q~&?~ diff --git a/graphics/pokemon/staryu/front.png b/graphics/pokemon/staryu/front.png index ffb70b69d98fd651df071624bad1d7de192e3ad4..6739b8cb70244bd0a6fa71101e1731a5c010262f 100644 GIT binary patch delta 575 zcmV-F0>J&&1k41G7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h{YB^#t zG2XOd0001cQaRO}QiEzi|MsL>K{4*$G0l`I_CZ1R#l5T`5cv4`6OkVu0005XNkl90U2(-!3W88~5~82AOi(H!Vr0Y@!RtonlhieCXlYZ(z%e*rWCk=A9IKpoO9 z43XFXB3#vYg?GytQ2+r#BI$dHk~D%ov#AxiKHD=PswfQ>c zOP{K|+nfrmB7aPX=>(BgpQXvSddj+_le)9Tka8Y4R{7>wl9jyx)WFc=gWwQ8XJXNU zdhcbN9*+^plv*b5P?E~k`uKcS0(#jjYy(&m&Tl zN?8FapELz#DXe;3k1KiS7!i4m0n%*(hRel1^|*ybZD!5EOvDhZkWN02xH|9QF-hj~upc zl6OEo_;8VJ{^r}!M+h?@D1c4xxXeBcAWHwrb$AG%7AVF>Z~;QoV{UZ*n05i00eY=2 z2q%Gxo;co@vLC<-ppS)IeknbGZ}Rem4{%#Naxii3KjRAfiYxv>`~X6#6Y3@uGX?+v N002ovPDHLkV1hQN`hoxe delta 585 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 diff --git a/graphics/pokemon/tangela/front.png b/graphics/pokemon/tangela/front.png index 34f9ff5fb3fbc901060b2d46cd491cd54f7efc15..6115b5b62d4f661ad48897f43e1daf9ac8a78abf 100644 GIT binary patch delta 629 zcmV-*0*d|f1cC*S7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!g>dz6&b z_FAOPAVE?P5D-#QQna+R`1ts9DJiTeLH~n;-b!i!0000000000HBwo#00062Nkld1+<$e~UH@Hz`ip!VODUqi z)fei$^b%t0S*Y~do}CnLJN~JKTBzkpBRUpkAF(zmTO(a=uw&Ra;#qX>K+#eMfq*im ze@aS}I9ECl3e||FX=71mrIo@rO@MG&jq#x$xingcHyuMzU(7Vdae#j&q)EV(E)_Ud z6=EXswJ`+Tmwy1DZOPsV1G&`#!^_1ZLff*D#oUwt9PWms`??lwFrDf#11#7wR|#r+ zq|bef2I4Y=BSkC&lub0YVbJ~56$VEEfUA+AvlOvpqyr=v&+`V*xKI<~Tc^6#vaa-#+2yjwZJDL*SZ$uRP-3mfZ@kGRVt6A6WES^! z*(Ftf0h{gMg2X5xq7sH+aTmaHyMT>y{rC_OB54XDbJ>L|ti&(vF~-MZbdG}~Qw;!i zIv(0K-n8vKJ3}T8@|jvY6%ugUwqFwv#zw;6aCq!giVCBu zvY|aYqF*r1XIaw3cx7a+^`wDweCRNJVy4f}`RDGbuhBit1K)oB>Z%y4yz8E4ftS;% zOU3WHAE#Ln0DbMd@27bn|Knc%@(M5^-{W74-wo}OiF7x-VE_OC07*qoM6N<$g7mN# ArvLx| diff --git a/graphics/pokemon/tangela/normal.pal b/graphics/pokemon/tangela/normal.pal index d90fcacca..03893711c 100644 --- a/graphics/pokemon/tangela/normal.pal +++ b/graphics/pokemon/tangela/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -40 88 128 -80 152 192 -56 112 168 -16 40 72 +65 123 148 +148 213 246 +90 164 205 +32 65 82 16 16 16 -80 80 80 -176 176 176 +82 82 82 +180 180 180 248 248 248 -112 40 40 -168 40 64 -248 128 128 -216 72 104 +115 41 41 +172 41 65 +255 131 131 +222 74 106 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/tauros/anim_front.png b/graphics/pokemon/tauros/anim_front.png index 1d186f77bff3f7e058bff2eabc88b3bf17a493e5..1b0092dd3a88d929b2af5dc6cfd89f35590f4b2b 100644 GIT binary patch delta 1483 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 Ef&=iu?*IS* diff --git a/graphics/pokemon/tauros/front.png b/graphics/pokemon/tauros/front.png index 587db94cdfd09593c202ad71747bdbe92b9e1f8b..0d47d8939b133e0eaa00535af7854f326e7dc845 100644 GIT binary patch delta 831 zcmV-F1Hk<62FeDI7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!g(IZA43 zg8%>kN;xTuYEoiKF^gg#-lR&bi*wD*-khAQQaKRj#e1}aG5GlS+S4t-0008WNklBDC^wn)}rqT0_n;x zN$6yy3`p)huVTUkKo7gh5x_4_4Pf53f?xu~F<>79fPeSTTlRE(*MMwmz|sn!E)$0? z@gjiQQTrUAed(9Q%cNKqrzpdpg}Y5=7h zz=U55q;dlx<6;mo^{C%5dD;0=7A@L<5`8vqV(wjhjl+M?&AtBxDZ5{`Pg z&Qe5CNPl4jP{JL6FFG#^-5|h61AKCr05%3d zov)C#ZD2qw3<11eSMedxIbsiJBAirFGSDZareTNNy?D~ki=aOFQMqE6J_gL5$;^a4 zKuh)UY7WsD;Qp9hB|$(%U^xWrx`s2D-6TbzGXNqSKS-%5ufDS2vtJpZ(6`;~H+EZ& zc{rFY_%FVY6|fJph08DGo^X@xUC2lFkAQEpodEtI+kf#}{0FbiDVwphQ8WMm002ov JPDHLkV1ktfd>;S+ delta 868 zcmV-q1DpKH2JZ%t7=Hu<00013M{Ml?001yhOjJdf(4aUtNN8w)0000;I4F2%U{FXv zh+rVtph%dIh{(v;n3$+gI1u2#c(8yl`1tstHVvu(00R0+L_t(YiOrR_fB^vM+olf! zu3eZRtK@R6X#rESM}%H*EoTz2$g-VIx>2S#z^>fgY(u!NE@&5i*{k2Lg!%_9@*= zkBK6RVFf+-zL<2Bq`RWV5g-WJNZIZjV>{6`v(8h1?|(-`Hd0T3ogQzLN)S?n5Qv+0 z_`Snud5KWv8zz>^XkvSbo(=gR3r}*$N>c=sp)JI3t^H%_P$$ZWM z7*b+LV01Kd%6hR6I*tbc+)M5_S+Miz)F9;2`o060bv;2U)? zRDo^<_W>hthjfF$K@auh?A1Sv0b?3?%p1XTc{EQ50v(vk0E0#y-hEcR!A5%47BeBEg94mi|BfMJbg`LX=7tL u^PeJ$W;~`0&7L%#0%jSjz-;6HfBXS6+h6+mXhenp0000sG)+wex<5<#mGlH`A=q_td%WMI zpXVmR89)iljeu!&6@Ut`u>Lv0I7z_!9iXv32Z+ARB8^~a1b9b(Jo(IVUgn?$Kud@b z(u{PKE|}J}1%KdOmRSb)mGwk;s(*pYfHkMEivIaDY86Q)MKBDb{~J0Hygu0KbP&N? z@DCRxZ$RL^sanZXQN4%f+3)(?5EKR;>Oo}QXcO{-b3D|`=p|)+v}x6A`OK!A18}cL z#7ry&_`2nliuQ2|;%@VT3A0f>>?h4f%V!GrOfkG{JC

6z{Cp$; zUAc~Q;dk5`SAZBw_E8yGE(m>ZuGSL9l$0QIps#xdln{^QY9=ueA=Y<59h|~VFG1qe zvHHN&0Dpwrwa9njIR#_NI3PY*O8EOBbrs^%-Qb_RG z-2ZU@!~GBU|0mu5LFjV-d+@LG4)=fP6aT7icYptto_`dR!D@5=2SASzn%(~%RDhS7 z);9NlB#;jQ%*p-7JNJ*}00%?m;1Bl?7%$yF&0J77q9fP|B?EQupJ$S+e_#ZbLx_V= zx%aE%3pPdSs}5Ila{mC~axKE{tE#(d_irHFoIbEMBUg96tFFQg;G?g~A8UVo5phod z`%JuNC;$vy?h{LUun!I$1S|=}F9DQ5>N|ztT}m#UdfBIF!KGil))0_N^!CI5d$kQQ d&HzSyiXXbpHRpjT*ZKee002ovPDHLkV1mV7l2`x$ delta 1120 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 in^u-Gt=xDXH! z*ieAzxXAeU_^2R2(9qCOP*|9dplEPtxVX6bO#0UV000SaNLh0L01m_e01m_fl`9S# z000FFNkll*O6vxjndJ~5-Fg11%;=M(Xy2<8(`hNg|eHuEQiue^tcqaq~ zs(ysVAD~FvsXze(`U+k+apIBNO*{)(Zj#welT`K{B}J5EB~yn0J_DqD@2B_PJwEFF z3Hc0{?|;JHZu^H%_L>jBX}8;*pN9L0!;?4d_T%0!@AeVTuKsGbkI&w|8x6m{*TJu& zzY%!#_G&b`ynhdPJ{lc;|G0y4QrrxJsgdOyTH-Oa2Pn?6h91ym;4^!=T5-FPVmYBPg`4dzcadg z5uQEi1}?^McoA&6I0#RB{V;rX^%Tzm*TZkSthYg60e^z?F#K+KfmtvB#@Kmx!@*)b zzjQ#zn9neqFV_HN=QVH!tiJosL)ZWa;5U5???C46U7v-g%_QiH(;gDe?mHr2th;$q z%HXDde$-+94H6xfXm7I;054w$0rOwqK+p})2wTPUH2irHv|hjb4f>4jRGJW#K)rsi zujvj!O@D^_er>gom6L6P79|>vYe4r~P}(g(XiIPV$394~ci?jfVM^h@itwgX=UJjyVH^av;<>-WO378RT|`@$Bav%H7!9Hh$c<@ zEaCKh`?%`>$tASJcp9yXh;|cuLHoExWKtlY{eKpWryr8YXEB&0I|>=66FN>UH9jXW zn0;^%Q*F|+2CNcQ8Vh_Kq6Vk6{gNjqL0LGP^&;k<) zSbr}@K*rP`R7o|ZY6T=UATL;#JAl&`tujmz7D=jV9+9X@q{UWKSZLno3C3NWlBn@q z6Pl~kVhjW|7$8srxOiBcITuNz<9|2;t}Z~NGTH%#(~X{60tB1Y0m5jqxhU?y z!kK$1?*sTp{=H`h$oAUZd07AJdJq^70)spVjK)eoAuuAdAux9A)WD=6Fq#h1`YH+> zWh;RpO~Zp%j}4r4RG6i}z`y!O({mP_s-=ri(0raiEim*Q`fxwQvL63~%1uvC=YMk` zPGCfl5whQMF0uxoiVF2X-w6z^rcm}pOlTRq1icy%`P34M0s|(v1JYs))F_@oZv1Zz zWSsO-U_?04^2DM@NiYQm5alk>9H*%h7*4q4)5%v>nA8$=8@tg_?^#be{eXZsnPp&G zcP35isX|SGVWo}AH6X1UZpPf!<$q9Bnol!ZE(Au5rz>bFAp>)}7<o^ZuFh27ps9LxCY~u^y;-TBRW>c0004VQb$4nuFf3k0000mP)t-sn9!ggQiFrd z=7SIrYP9A-l&laC5cWY*|GljL|NpcpAl22?Qc@tataF2dLFUz@&E1+p0009WNklSJwox_|D^{Xaluo%-yZb4}SsPXUmxo{3?XdXFDdC^_it|<(}ZrNLGRqcep$P&hE;e`yu641|gCw zEPsiJx>*iYI&;Ojmk!He$m&SHSYj$mDXBEeb6uVSJmWkZwEQ_#kUsvuu|S5yw);>JHlU#kIDpli*V?t5S;P~sEr52 zF#!QUjGxKvltaV6DF_`AhXkj-6kwbm6#yWmnordJV*>psr*{MJnp8ccv>Xr$>~^E) zWc(~L0Dl*NiBvI2D6ix*DmI*Mi@T>%&q7Q6~5Kr`_bX=eyLW@&KdK4C~)Y=-`5Da)f>eWL4P~{E4u{A2` zB&}_@BPf1NAy&g{0Ycw#CRE)L<3T-OdqM=D3V-0ryA6P%E)vHpbwPl#1w;VI-D{w_ ztiyxt5}?!mQWUpVLEQO0V44&H0kQkB)U0Rc-RMV-$IPw(#ut&b5Zd`M2jHPMUkNPk z9#DJ*Aa@;}z5w`-bA`991-nrYp>n=lRb)1CghdUxeW=&!4=oU&Y7ccH6wbn&L;zeX z&VK{&2F<_s rU%rMP0^Wu98^B@mpS%3o&i(-{MmIyW*AC(@00000NkvXXu0mjfR{WzC delta 953 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 N002ovPDHLkV1kD=D69Yg diff --git a/graphics/pokemon/vaporeon/front.png b/graphics/pokemon/vaporeon/front.png index e0e27655693fe76dce9a500023b6f328bf8e4f96..1ab0c7e466eba15458f1cbd985be244368eabf23 100644 GIT binary patch delta 683 zcmV;c0#yCG1-Au|7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gQN@5Um zl)bE4YGNRZi;EBt5dZ)G|K_C4&COcH=7Zkl| zC$McW?)w4-8k)C>mfp5Z#lA)Yg3tvy2z66iasvhh)=cD6f&n=A*)6>x)h($&01hGQ z`20wqitH?xH-DxeInNf*i^x)FD5V(Nz;<4kNf^XRNq9kE&R?j&yP#SkFc)^Q0?$C# z>U>%$U{O~E_eeqSceRQ%t{BJ*1ndC>rBq!ODCPyKOK*X<5j+j^Cy{5^urAtwKU9EO z-skadsNdfzX3j4c1!1tCAL73La*d||ML+PX>(hWc0)GxHU*3De#++;Sd_=T5DgwwxOEAd6vziGMo{c z;U9S8VUQ4DOKn`hD_;Fwg#sT*ei{j)Q*m)H$}Y_D(s<_Wg4z;LX}k;so%hPQwkH4_ zlBlPi8GjCZ+TqD)h9~pZLT-h+hcXA7ATT R9rgeK002ovPDHLkV1gWfMYjL| delta 687 zcmV;g0#N<81-k{17=Hu<00013M{Ml?001yhOjJdf(4Y`VU=VPSxTsiYU?7Nyh!7AE z`1ttv;GoFJ$XLMOfY|szn7B|7aCitP&`@ywgwS6A00KryL_t(YiS3dxZ<|0EhCyKqyF2E$M{J&n1>+$!Bok| zv*A1nC8uX~XaVxgEWX_&fZT2D`kul`6!zm4Boi>*FOB%l4TViOhzao%uOBx8H0>g$ zpJ1>u9m}Ib)ql%&-1y8In3P&{*xaCsa97l!HYKO7szG+V{!Y6*C8u$7#i}E=`8nr| z3~$uu-Eo0){sU5X*p@JVIN9Z; z`db>&;vwLVML9{7T+`-Z{@Y`@zityS;{Hz#lVqgkD1VF=lD7qDnjd|I$zCAjMUxXh z`W!{;1mA&hu81*VK1KmAt&T_Dz&dewHV$Epk9Ji8p?1L_5HbM2N!H}#u3#(|VyfwP zyr{1rIcGRq6c((}pznFkSk{{wHvZHFhjT1QkqGcGsMesHU0&oiOLxpGJq$?e0tR6H zF59udBY)+Nv9fkVU0J~FObCmJX|T%=1%v(*L{NIYQZs~n+5ZKH7X*bA7sP<3Fq12Q z5L+-EA;SY94m!N50swihdeo>1hUrvGq}0y$*>Kolq}2I_r(ilvl>3VUhZlQ6sOb>X zv6%=IHwgtsD5c2rvfQc!gE2yg{6>MWRDuSqnkdW@y{S^z8@L#Nn#;A@+4DR-e*s_m V3JNhL&~5+#002ovPDHLkV1oGOMB)Gd diff --git a/graphics/pokemon/vaporeon/normal.pal b/graphics/pokemon/vaporeon/normal.pal index 3655a6b0d..90de2a96c 100644 --- a/graphics/pokemon/vaporeon/normal.pal +++ b/graphics/pokemon/vaporeon/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -16 72 96 -16 112 144 -184 168 88 -104 96 32 -136 136 136 +16 74 98 +16 115 148 +189 172 90 +106 98 32 +139 139 139 16 16 16 -248 248 248 -248 224 160 -200 200 200 -88 192 224 -128 216 248 -64 152 184 -80 16 112 -120 8 40 -208 80 112 +255 255 255 +255 230 164 +205 205 205 +90 197 230 +131 222 255 +65 156 189 +82 16 115 +123 8 41 +213 82 115 diff --git a/graphics/pokemon/venomoth/anim_front.png b/graphics/pokemon/venomoth/anim_front.png index c0c2cd3401b9d798722f2f29386f289e774707ea..834bf6fbcbcd2ce08189bfb06a0fd4fef6c43753 100644 GIT binary patch delta 1108 zcmV-a1grb-2;B&f7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hbSa_U^ zz4qS!)vVqS5D?X@-eO8~?#2I{i@o^x_^idnVp2JzgL}oSi{Rkkma%w*000BqNklFB7_c1!shWqWsAdwUyYE2@IDeLwn!TT@yjn2Laag9E4P1fU-iL0vm=Ar}C;fWOk&g(HBMuhljZMIvd4IdQ&?pq1PG zWBfy@qy04K3hSByu@a)E5}jF@YQ-B9V<7zlq8qHIUo_Q|u&Po~rX>cF zHhN?0)XAr2vnnbs0#?eQPXVyrauA1YcmU9!qEr~s0e{g~L0ssCurdG6vBw4wQzTKe)hAU{UiIj zDOI<(;Tr%p5yNZNdNW8+Rr59lFfCxPrLDexmH!ridOt=`v}j2)dcuYB+RwyLUhDfu zihmW_q~cvg1_pI&J1MmKmbLa00-d*0N#lnn!R7$T|-#_Z334cZeI35BZfL?GX^gd))6AbFZ8G+}avli6^ zLnXb(^Ux2-6AZlruAAk96%z~s?E20$784AW0lL48BIbp z!5H@8Fu@olEbRni7(ktOIl-6!EcFCq22f2f<~%4S7!!bcf-wWACm3^tYJxF~_)Rc= a)@OgJ6E1K96sczb0000+6s;h-7t_cvR z2q0ajj?6De{2Ma6{D?ldRCmAup29BX*>`3~yWCe%?&H4-)Z7B-#ulRG8e0H@>m^#m zkw_p-YYL#02v+i%jFiw@5p1H-;|)N<;Sg6kP%@yK0Wb+spy<)c0jtwx=h4{b8`TXD z22+HY?YxB_-*5o-fpELyl=(~m0E$n3XZ>SnQ#Yt<@_&?z`7ra*=@vb?Vm;6R0cv_# ze-L}cXkF{%4I41100Ok*SgREjMBQH)yBYVmmX+5ih9II%uNh;vLq%`9koSr~{{SAp zkJy{Pj?XXv7VU_vxuk%M4-tDmnOqsv!jyWR%hP2G{0E#I_x}hc{WI64lwz2aW3B-0 zmy`bBpMU55R~Gb$sc6CcQ2}angLl6L@A?Bwk2I|O7dFe9XXTtyK#E}4y%KnbF0jA7u=%TxA z05}0#Rze$PfGGp`J_Cdg>j1Tfuu}tEUT}b1$^iS(c*p@$Hf#M6e>UZSqVtE@c8ce^ z8qixcz%GBeTcbl#38+JEQJVT|+c~TTu78wh{HnRzGh?Uv1DOFA0N9m-P}wjV|GGOq zu`#Q3j}LA*5Dl1Z$D?M|hdg&642aQw)kZQ0@`S}P8(mfc!hskZh?gJrG8)2x7*K&# z-yPvV&NvWPz9kQG2f{E2RE-Md4kU&ioT?ujpLHFqGkZD1c% zABfz6;8>DZ3I`I)4wPCr5J_H9O9vt&N(Um9C>+Sg8bUY_DWIsC1F3m>a|a>^atBhQ tkU0=JkUJ1LkUNkXAa@|O#JvNN#CO5xj1jDN{}uoM002ovPDHLkV1nQs63+kt diff --git a/graphics/pokemon/venomoth/front.png b/graphics/pokemon/venomoth/front.png index b4eba1b5cbec918a6139157030e9a98e0e8b566a..895d4aeb97f62c46447127a7e12495ad1695af82 100644 GIT binary patch delta 724 zcmV;_0xSK42H*vd7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hbSa_U^ zz4qS!)vVqS5D?X@-eO8~?#2I{i@o^x_^idnVp2JzgL}oSi{Rkkma%w*0007BNklz1l83`Qw5)_iiqQv487+@r(Z?Lim#J`|lKC zh@$vPFbrQAAo$o2G**J0f#@yWYq-Nx*cj+>CaAPKIvqosLV6qvDjlOB(Yqf&Zw%@A zNau7M*5QU>V-UeEfkV0o@Mjppc>*W62_yx1tFI~S1-kr}j&3x>+TcA&&$faVkISWh z&?Xrv!B7Q>>VNVT@0(J}NhT*<*|$nd0SXjIKI$^8TtgA|cy94Qma zEScjf+<(!(`=22OjZ8CBnqM#Gy7|pPZ*d4_SvqHCF^B+)ItNv}#kC7Cknk^>k;041 z^0uLG7>HSZXW?gNe$A{~$e$tC0_nObW(f4)v(w{s0vg2VB7P(Z>W8Yh!xQcRNkEDq zOM+KV;|qbn)RFXzX0HJ!E(KgB;9o4DQQVrqfnw50000VF({=u!!JKuWr0v-<=z z&(L$PUvcIbBkz6 z*9}4}9XSLF3$3+uoXDywDk(G0Tg%6(&p-f-6d9H7$>MR!WYt9zwzQ~p!&1lNKAQuE z?=S&$+NHsQE`I>k@okYY2lUe3#h|(v)Uk1!6+Y`xo$0Q$35!()XH^M&77a+9%whzf zGIzUYb#RDEOEiFjBOu|lqZB|;0JsSmQ1(b?0CfX?*6D^~P{ZI`$d0P+vRFKdU(Ox923w0 zT!$_vC@OgGIKS?;gcqG6EGu) zu0BRrNq?I_L)T5&r4uaNVYE1J4+lxVp_>2=LjvI>*AAv00X3p{}QMRJ! zC{DjkN8&M{$<~UlY-NMND2u04;Xx=gR&>RT?=Q!{<3A4%sETc`zGyXQrp-y7jsD(w zVh!tniA0=dd44CZ8e4nuI9-rtahi|ze;yj3o{#esFEeBM8i9a z3So{h!VnKI$oJDCFv^c@z*hs#EqyaUv~x?<0OCngdG=Hd-~x;j8vv*$f=2+DCjr8> z8^F~RykNvHKuSHk$p)CmV=s`aM?hzSe7V?-5I~?9m~m3t!}HK#W)A1 a%43r6PS z6ZZ_SGsd_qs(<1gp74|s!55F{+5^m`lzccBt)r|Od0p3BluLBoNGukGl-IJB0?O0n znpI(=vKUB39Ebp$SxGH9b^=Q-ya+6yX3qI+CV^C>WD)6F43rG!&BP=Qlt{Vc=BrI& zOPLC2`%o;19T7m;$WIFN1j;!jv5ikVIm>-T{r!=rhkp*zV<(c01Uz1r0>q;sKhJ>_ z5cm-mXHfv<5uY9XNujcUpd!Ful9DzD^-r=f4=Xn9~=K7P+NYp@g%S{YuLzb#wV*lm&U1O9A7=W_t54P z;H`XJe1EyctUNa(FCOU7JofJS$3k~QWrauC zt?;s7WT>j4&QgJqcV4nH^2UDGU3dMS8a+UWLk9?w7za)eDF27xN}KOI&%gf&Vl@5> z?+csX@UFD>T9E`$Lq?G5Fd*5RJ3-G5oaYx2G=DD#IXd89(bG{+1IRe?t2PAtnG`nJ zJHi>BgSn%c?0rl`!;Zb9&g>oU?0skNJA2>R`-l23*}GQ$*v6l}$==7uq0sQ0m0E$W z><#-7;d`_9CD5C_CH28T_6ENI=q=F*R8RIkZQwB#SxU{p_NuaQvWRTK|C(~fWth5R zr!O8MxUq)cNuiDi$Zg#(AcqixdHc@mcm1*Y2Q1$(2y-{FMgRZ+07*qoM6N<$g4g|t AV*mgE delta 1083 zcmV-B1jPHn2E+)E7=Hu<00002?sb8ChZq6r96Po@m;GVyMKy{L`Y%|eFvvGKwKSg z?ZvWE>tfP%fQWj5#H>;zNZ}?$+#OxHG>t3NUBYL`a7hP;>?~bf6J!d*;Qaf~%u3=n zjD3^gEH~#{-g>jZ-MHCo(BZvigXZ%nXg<$cYgZVwy7fP%VcqI^%P|d$EdU;OJ#T|- z23xR)%<Dy`g>oAWz%axw$qY}A#`s5uKnM=g zcu&fwsZvPYW9e|7^yTR2=oQM2k9C8kc^dcS?`eAUf`6Xl*EmLpeRM#BvD@mA$(oL9!BG2CU(#u3M7R7*9Mm0clHki zY(>!&@S=RJO%AvDoi6xWkpQd!n#Bj;;CC@`7e5Qap?xke!J&>_twK9Lga3x!WO1Sr zwa2mMz<&k{bubsS0SZ*c&+1CLgQcDiiiOFc65K14(OcbsS-a|F)#MvWz~SxXjDpCc z!WZ==nFNDHJ))prg;`z*fn~&i{^7LGvx|Q%pZmO6kOC{q^9Ad%-oPMW_wzGV`m`v> z7I04Wyq#wkwBWLrJUeU3<9E+$H25ChRybGWSAROq8;0X`8W(_8$JtnI61Wa)+%T?O z58P$jfYdJrK~n*CZOulMIF9iu+~q*_Ry@yJH{8XFkn)zd%H0mVfV8ke=&eF9TpbpFKYLn?`rV?0b23o}ZBHuHau3l|Xl>1*eNaQHWi_fC)uz zE|h@!)^nlo508t2QwC^JZ3ezkfIp{7@XIo1>yvd7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hmdwc)? z|JBvi5D*YzN_&fHq*4$Nv_V?`T3Y|Cv@t1Cb3rNYy_~(2YLJM?xOuOA0005tNklf6*vC&(=rN2_ z2m!iyfKL8Bt%6>@uK~XUG`9330Mm^vwE&1G&DGLV3xG2S&g=-lGcmRZKzJ4~Zqoow zLm?Z+{0wY*(@hB=Jnp?fsW$?<6O_x@AA|u0HNb>}(Jj0zJx;>mG@p3WM&OJ=_;BDY z%iA4em}j%JE`QH>jFI7sM{Mc=Qc8*T!4*>C>a;|x>C#@L!>1wDS`2PxsVw$ zmnT3>nm`2-W?@@w=maK8vI!!vFz5YbmmnrB-9*0D0ExieOpKbqh)9X5uRcYN#0A_w z)Cd|!1*naDGVlpR6r;w*BMy;1S3KX3JRds9$4=lF5r1So(gMVNAfNAn4G40Cg-H!y zJmN9YPlh4_MO7eQqLID?Wi7BjJ8)cF<(P!BuIq2`s^=}(wo?E8Cd-~#WWxo)M;y;A zL&YPMH-_rx+g9iC@i#%K`RwCakgGkcblG{bDs(wcmveo~@Hs=dQ6R0nZ@xZaUS5V# zHVtt>{OZ=@-cGNCrmqtz@ui@CybIzRFy-X2Wg6I8d=bFUtfy j@4OtR=Z*ba|Dt{XYI_(LF4liF00000NkvXXu0mjf{u&co delta 634 zcmV-=0)_qJ1cwEX7=Hu<00013M{Ml?001yhOjJdf(4csDc=-7E(9qZr5D-W}kZ^Fg zP#7?5NpH z7igR(Xgq^DWNk+?WyDP0D)||DaEyew$L?Ov5JmU@&v*WF?L>(GviiH-y5a118|>jh zH{g{VbpyKl$(z!+qW`5J6}- zbQMza8FwuVZGT>CA_Vw>76EwQZm>rdAhHQ8uoXtHtpG7(`z^EqKSmEa3lJh02hkzv z`~aGOV~h?-=hv`cdJ*B60MN3;=X62clPP^*1dQP-OD+(obZmaV??dwfX}BFuICiIF8JS{zB^}7}t##$o?udEvj#RJGtD}LTg(g|jL?p0+Q zVQY9>)pMX59U#opx^o-ynlnhadE8MkIyrpRTvD6CE1MM+|5un7l~OcDdHfHjcbDJ) zF@5RFs$>mjUKFJmiILZ05bugjJ^Hq)*a);|ecmhbd*1MvrN}p3I=y>lC*Y;lUrtBN U2(r-bH~;_u07*qoM6N<$g0X5H7XSbN diff --git a/graphics/pokemon/venonat/normal.pal b/graphics/pokemon/venonat/normal.pal index 42a121e7c..237a56d26 100644 --- a/graphics/pokemon/venonat/normal.pal +++ b/graphics/pokemon/venonat/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -120 120 120 -248 248 248 -208 208 216 +123 123 123 +255 255 255 +213 213 213 16 16 16 -72 64 144 -112 112 184 -80 24 48 -176 64 88 -232 104 160 -240 144 200 -48 48 80 -112 64 40 -232 184 152 -184 144 104 +98 74 123 +139 106 164 +82 16 16 +180 65 90 +255 90 90 +255 172 180 +49 41 82 +115 65 41 +238 189 156 +189 148 106 144 136 200 diff --git a/graphics/pokemon/victreebel/anim_front.png b/graphics/pokemon/victreebel/anim_front.png index 119d4105c721408016bde6f471f456b3ef4c8212..a8ecbdb468dab349a63b5d0e3da9d5896ca47c5b 100644 GIT binary patch delta 1329 zcmV-11z3 zAvm}xpEwwSa*7*-BxeNc0l*FCVC5L72OncZ#t^~#sLGfC5H*Gfd^P8u^o~9%VI&3M zgrmam<*6abZ+?|;mMv1;08Z^hVk*aR?i{};?N_-N(yA0iBP0I#N!o>a_11Q^^{HU`k5 zNa_q2+E=#sn*k63x&UuCy(0h)G4mkc>Q;5Cv=+kxaNHeF-aKzKI+Q}OXHhrXfDg+Z zzS3VwfJf2S6>_XCB78rrN5B^+k4A-B@aZoh1 zlJn3?C!CY+qZ|`hq>z$4uhCl0&8(48e7{wX3mNs%${YIBJ=LYyU|A?x1VppTO)Y&C zJZx6}bp%*=Kd|}=;N^)R8zF4l%*k)4|AvJF3Voe`kC0mNGMt5t!+qhiEI;e|vn)QQ zn=}*fet$0#kASa}_Tq!#rAIs8lmJ7hACuegG zxdzP*-1`R2%@rVoltRA1(LGy$d|t5n)c{hs>6B0=&;wKi z=l}w?9SLqdb^@Au2CTB(6)EiFzZ2wwY8MF7$baWi-vaCeTo8=|TgZ)dA5@rv9RNUvgZYPXHf&ft36rmm@2whfdoN)L@v)p;bI* zJ%71#`TzKL;+HcEYF=;p-$JhC{Ui&}y4FL}pyk<*u|S!pT>{1k*1JR5^ASSr-CZ&M zm!6~V-G>OL-hHGKBi{Wyg%R(5H4K;DeZae2c=zj>$f~w?M*y8EM-tfQ(|UJcpK%Xh zy*rjlym0ZS-rdv3!$H4{mUn08i%!yWk$+u$jj%PmyP7U-=_R0Rc$=Y6qcs%QM+ez> z3g9)&mMdC0Y-$_Rz;=g#nmq$b@2zkbKn|2gGnJT{kpjE4!FPI*jq#!A}Y<;csg|fE$38--`oPRHU zOHcyZeMlQR)XtX{gO7H3wo}kS_SX8c^NkU=*Yc}}79hLwmh&9}cW&4_!9Jv!eS0?u=d)OZU*000000NkvXXu0mjf7dVRY delta 1388 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 Ef~@3?ivR!s diff --git a/graphics/pokemon/vileplume/front.png b/graphics/pokemon/vileplume/front.png index 1a14c31a3f7b2ab9412fe5570b56904784845a4e..4b0663612b371bd813cdb5be8f98c27356e0d9f0 100644 GIT binary patch delta 692 zcmV;l0!#hx1;7Q67=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!iTF-m(F z5dUIg|IO9zF){Y6v=9&w|D-9jVjw6eD8-8)7%56QQc_xCgD5B{3*l#_0006$NklJGdLO()_X%<(2^8t;l#TXgmb30q61&mL%BrF7o>9P@b6y6Td=vO1v|$i~ zinX-twc|aI1OPYJ#fH4cbOj6y+NcD8O>^@hK(k;o*#as!$bDEWpueg)kjnuuA?CaZ zbLBv#%}bz7^m!q?uUgr5Vy=XRIsgM;s)5s3n~>k*@PC_h-d>US{ijj7kRC7)bQ)AJ z#}L{yH0iH`ZveaW&|ZftzKlTg6%1P8(`zmB4W4n zacFm+0bSiEFb>l332_#vu~GVR7l^Tq^F+v-xxIzlyd#gnA10s^>RIB)-%eIU9;E$E zo{wRJi}7VXc#H5JibJY*b_=3u=`mgcPnM$|sO6Ab$zV^a;qCLW+f9Fohe@ zCvcP-#1}{aH97!Yv(czcWA7OSkVZEh)2*YsB-nZ)S zLaNz#*rajJhe0@<5i)7eM?#1t#{g~e$^!K$MuCw!Ckr%m0ql=-D-jqo=4i-kA3qXe zr4=MN57YSrXpieaYJW5a3A%&jPw)V8qG+x$#FI<8$X0$2iLi>0q5z#g*pf|a! z0fu)&KSHK)pw}c^3%yMZV8tWzOk9AOZz94dVS%VVC#}MESwMphfEI>GVgn>E0UwFJ zjagQp7=L)@gh3XAid>|gOGu`X1zTIM1v>+fAQQ$0M52ywj#}(JA3jRd23e`S@Xayk zsKY*k34oLtK&ri@8_-d3Km`jSNHI>zvwW`r_y+K(nd2X?p`=s_3OFF38UfE&N<9~k za8#;j1*&Q!{9`3Q9h-@)0w7bcZvw#TAfXZPfm{ZB1}MFkORy#N7NATURZY;M4$a*r zq{Izp?FL>}(qB7JKv_{OI#6>4EfyWz07*U^_HBTk-v{;7Y*B4TwgENy#zFtr`U~VN VQ9@tg(ait=002ovPDHLkV1l8VJGuY> diff --git a/graphics/pokemon/vileplume/normal.pal b/graphics/pokemon/vileplume/normal.pal index 817796bf8..f7f01cae2 100644 --- a/graphics/pokemon/vileplume/normal.pal +++ b/graphics/pokemon/vileplume/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -192 48 72 -152 56 64 -248 96 96 -248 200 208 -240 48 48 -240 168 176 +189 49 74 +123 24 16 +255 98 98 +255 205 213 +238 49 49 +246 172 180 16 16 16 -248 160 40 -176 96 32 +255 164 41 +180 98 32 40 40 40 -200 144 32 -24 40 64 -48 72 112 -80 112 152 +197 139 32 +24 41 74 +57 82 82 +90 98 131 40 40 40 diff --git a/graphics/pokemon/voltorb/anim_front.png b/graphics/pokemon/voltorb/anim_front.png index d1928a1221a1f7e9b64770f606cacf646bae01f2..740cfa4f3d340fd6570410de84bc44331e65284f 100644 GIT binary patch delta 584 zcmV-O0=NCr1l0tP7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!gQ5DTK}w^)iFWd)z!4Dz4-X}SWr-ifPer100000mld}M0005gNkl5l6l428i4%JTm2J7!C>ppi|a(Uq=G)%-gj#z{+#jek+8RI2|(wrST50O&}# z#{lr|5Xuo}dq=$UO9@ZEjIi=c2-P1#*e3w_KcCN&zy!1cmH=i6RKObG1%PW0U=+Xu ztZo4e0E+;NI|zLTGJtoZ3*$Fc3lIUKYi$5X=>TLFfO>$(zR6w+&K>Xo*v;(=wv+*= zeioqqkpQ_PU4K$(0N)E>`VCcWb0tJbWfsu8zIAs>Vm}dj_ex1$yTo4!T{-XhiI8s+9}M<_*gBi+WV|>Y-yNjsZ{@@ z+KW5vyXj54C56rTL2!sOb8XBID0s$mYLm_nD7xZEO@BSWhzK?4g#d1Zw(oJHnIar*{Ixi+AR)%mu96q?%pWfTz6!SkcS=;%5R@egVMPm;NO{ zls*>#VL^O-5Tx<<4v^>P3t=n&AM=A@PxKMa4=#(#{nz%?gU{LTlQ22Ow z_^6o3Fkslw(6Feu`1tr(P*8|~fB*mh0001jokGq400G@eL_t(oh3%FxPlHetg@Ion zaZ;B0N==AU3sXA@ms;oIU|bvY2bgp>4qfdAowO5djp<NdJrfh-!dcJP zb005xJy+9Owfax#rg@_BSr?#hD*Omgfs`-`9|_r%9#rb91EdjkfF#0*#<4QOfXDf4 zPf$Rw2~aca1`yIfbp{*HKmdo2^bv564`Dz9m`Z@~1`okJ09OJ`#xr1v0EPq*1tQ!} zxCbE#cs>ID1%F2%aC73O7_%qrcEfoD)8RXD56;^MEF8{1aY9Z3U9`}1F(4-a!^I@dW!7;{h2FjQNBOSpUT#g{n1^{2Y+ZY2G^1SUTlN!EIqp0@c=m9 zzY@JecDpft_P{PWi{2lMI1VN+D~pTb2|5H2;S#k7PTgVyp=PjTS@-*t0-Q~~e}FqU z_Vv-G=sfJLE!qD1=oR3B7y4RLK>6!JyL?RnwT}SNYx+JPMHZia2%rJYYEGc4)oKPP zft>`<8$JPKIqQu8$^KB@qP+f#{Q>)i1i{()%!!1W$OJQP22sU)$jEU=#>>p T(=M0L00000NkvXXu0mjfnS2R- diff --git a/graphics/pokemon/voltorb/front.png b/graphics/pokemon/voltorb/front.png index 0bf80d9acf59b9026255c00a6e0bc7547da0896c..ad4385d1bb1d5b7ae22ed66641ee99f6479e6e6b 100644 GIT binary patch delta 365 zcmV-z0h0dw0{jAy7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gQ5DTK}w^)iFWd)z!4Dz4-X}SWr-ifPer100000mld}M0002`Nkl|UkHW0AYvPf{%DSt+H@A(NT&aJGhtbhDTe9bHk02nwp=KzS| z4B8c+xG0|SR>L=MGmLnPq43+b%^QIEec!(gN$Mh@nlPeN&}?NpOTZ27r`KK~@QP26(QUaU$$1&R=*9x$=uIom5e$HwEk1^g}rkE|fYx{o3^#bQ*ZbGMI z=Gh?ABT8@F!WV-i=Q*AY`4;oR;4g})v&nbIgX8hp;kvT2@>_WUU#Sf`Ui73#00000 LNkvXXu0mjfwhW&` delta 365 zcmV-z0h0dw0{jAy7=Hu<00013M{Ml?001yhOjJdf(4Y_y5P%R6&>%?gU{LTlQ22Ow z_^6o3Fkslw(6Feu`1tr(P*8|~fB*mh0001jokGq4009R{L_t(YiS3iIZo)7ShFw2F zJpvOZ88Sx6lrgygok<7w2p*xY(3R0JwWGJH>U1yH3r$NT?tk173FTk^Pv4y_ol;}Q z+%gZwJcfF^07y-sZ-7#Xgg*B~NK<0ylZFMN;!hwbbhF$A6&m(0?JvOr@etrm@V{fQ^1(A8eH_O)akmlYc}A4fgGo&v+XjFs(9)s@ zVEHT-$Vy9qJAXvE`377(%M+S9=M3>(f#%WHs{?lr()^a2LD+TDaR5Y0FT%Xlzxa1% z@ZJfp2AIP}PX@2o3wT39-09sml8$~rHegN(Ne)pBN)~*`ofN>weFcWd1 zd>SbfJtgqcJxDOf;-TpI)wZ)`Fx%cI#H1y_APy{56Mx!ZkbBWK_=qIm38blVsUGC5 z)55J@45TpA1iP2u8Kj+@4X_+&kP}=krhAsD@wk|p^i|H~MC~DO1$CmS7l&m@sp#qD z!$41jv%WZB`ixo+$dNoTkf+kYLlfeLY8~J7zK5u!|7Uu(Sl5FAYK>RqVsNy;E6S}y zsbgK?zJCFr%IIFK#o)Gs7|gIDq$epP)Vm3gv!1DRseLs_BA1KqL#D+a7-V^}vp#1W zfS=B{3?OC7fJBf{UT+(aKt+6ZAm23*G5wT}D0$p6K#=0g=Zj}}<3Rsj@0Q*0_(|WR zM~@yodi0QJ;*SC@P6>vCKa4<}6O0!A7>)$Nb$@8#kA~iNXyA{b5{NT`(Z(MvR{~Kc zPH*;Z;}6kq2XCKXwDHHFQ*(G5xCFz+A7%D0le~CjO{@C?oF|g3-nw zxPQe5I{bSCe fJ3r{r<9hrDZw4_vRp#`t00000NkvXXu0mjf4Di8p delta 932 zcmV;V16%yZ2d)Q@7=Hu<0000UfpF3w&R;_dM zFl3jEF}DD4!cXf09&0hinJK$PC3I@1q~!u|1kvRd5UJ|>I-~SFL}Urn7;D`7YaM=JComx=G!IZFWUTe=DCw{!0MNv<031Dam-+$72?orOE00d6k6&Wyt6Mu*!Si*Az5r7DJ$+!jRRZS2& zktV-j&5p2!>@M^9#H=PEhgaIRfnb@dNyVJ@1rY!=g?$bx{G*jp{xDrg2$-ZHtz$sJ z_h-l_ky-(87+)v2Ofsn z8zuc-QUc)X?oY2b^2&h(A}n!I2J`?h+-Ot=43c~EDdp}QVL7@hiPp926&>nOhkDzU z3CfY!VIa1kv>4wukW5fE0+BP2Oi)q-X>JKdCVwc%scjpGB`CcBFn2i zZy=VSI2{4yGq{%X24V?H1s2jX0(M{<$VO0B`Y`Vh zl7BalwV=RtH%$RiFpxlpQzIw<00E*>G!U#lKWj@LCbVcE{?%_~1DF;K#DBJd7;PJf z^dpPt?=leV-=u!A2+9lu`;g7Y1}G5>IS!QmG`K4TqS)73j!OLjgJ5axfj>mMfy#A^ z_xeLGxkLN>0j!~q_W1+8hoATQgB(DY{T==Q&mR2YE!RJ_M5D<=(CFI$0000c0004VQb$4nuFf3k0000mP)t-sn9!heAOQcA zTHbRhy-Fz%5D;@Q0KIcs=9FrzS_sX1DgXcfpm=bo008#AdjJ3cSH}j@0005^NklSQLORS5E7P7;3236TNj2H_YBO84#aT`nrx^7 z=Oe{k0gDLI*A9RNuR=Ah1nr?G0H4M&MeR0o&Y9U#4;8I^+7=K?z|zJODV|NiO4bCl zL&&W!(Bc&ru77kXh0?tO&tsc+gLaQ3-|;F451s57h#Bc6%4>eo@2cRw6TKQJhZPUO zG)<%%64C?TZ6i2bWE+r07&s*tv@CSUJ1J0In|@57yyG?$Rbm$8vynpMk-+48AT-$G zq49dJ+qoskb?=2)yaXD|pr}i*!DQ!RTksTOzX@O#+<&Sk``BsWnm2(JR+&)GCG`aI zfUAJpK$A^yJDA;BM&tQbY48iKG0${fKMR&1v)5Z56~JqKz}miLhS{dZazaEEjyGon9+NPCe0E{#9N86ywoHnLv)&00000 LNkvXXu0mjf3t1ts diff --git a/graphics/pokemon/vulpix/normal.pal b/graphics/pokemon/vulpix/normal.pal index acc496df3..aefc8e87c 100644 --- a/graphics/pokemon/vulpix/normal.pal +++ b/graphics/pokemon/vulpix/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -112 32 0 -248 144 88 -216 112 40 -184 72 40 +115 32 0 +255 148 90 +222 115 41 +189 74 41 16 16 16 -112 48 0 -184 112 88 -224 144 104 -168 88 8 -200 120 40 -248 248 248 +115 49 0 +189 115 90 +230 148 106 +172 90 8 +205 123 41 +255 255 255 160 120 112 168 0 0 -240 184 120 +246 189 123 0 0 0 diff --git a/graphics/pokemon/wartortle/anim_front.png b/graphics/pokemon/wartortle/anim_front.png index a732c60dbe7d18df4fd383853c9659b36eb66587..3cd3f59e18076dc6e109d395e306f2cb5d8d0944 100644 GIT binary patch delta 1105 zcmV-X1g`tl2-*mc7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-snbM?-toHx^ z{}2!my~XA!L26=q#ntZiti}IoN*I)4Vyuf|F+ob+#f!)=0E=26(RIcT000BnNkl4<`ahHG#;k>&~QL07Vn=0H{9+ zPz`7~iy(mROaKlrxg%0M8-S*y_wXVxf3#Bp=>2~GbwH{Cm_a0PcoL1EVWvk2Y;!

+)xSpbAV3E%V7bU&tYP+Xsjm0F{WE$XTV* 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 XH?|fkihmN#00000NkvXXu0mjfK=dzu diff --git a/graphics/pokemon/weedle/front.png b/graphics/pokemon/weedle/front.png index 7c0d0140053bb8ce0f7afb92c72f13d5f0530cc9..12182258f850b6d598bd0e0a0cf3e3b135cd4c45 100644 GIT binary patch delta 437 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 TmO-Y^00000NkvXXu0mjfOGyM1 delta 630 zcmV-+0*U?71cL>T7=Hu<00013M{Ml?001yhOjJbxu;>U_FgU1KnAm_|NHCyyFc1(B z`0%Ls;Am*TP|(0ocql0N`1r6uNa&cT$Y_AXoA`(T00It4L_t(YiS5%dOCv!P2k;4~ zjZLCh*q!TfU~xrmE4wT9ybvrb63ju05RQRM6f2p003$=XLw_yCE=9JO4-iB+)8wqS zw%hvxfk~Gp+>P(;B$&-kv^ucxRe|^0_x>}RCFHGMUuE9C0M@r&0&aTxbIG#73^OM#>5n)GU-`RMc_d*0uVB@ z?Ph1i8uYJn+?4c5=E8N&#Z5Li0Ls5jza{;YK=AZ(0PG0S-_K0}oEbzm4zBKxa=ckA z0cgX#*Z=^|&Lx6!(C1R(rHR=H5Ylnpm;1aKctKA3B7dr%v10-_%kyTR9_3}#fY?32 z4orxkCf5vz-)Hq>7y<}rQ1cxdSpB0Ei2dMRw(-mf&{I%1{A{l#s|Lg}5^{%N07sMn zq8%UN8&p)c696Nec`%?bWH13(a~V~af*95Sw5?z;qQ?(P;|@RS$2SmiqUmvXqDQ!c zCI=ws)^Ed}9wVrLNPHM8dPKtqjXOFOLMM6KEGQIWww=J=Qo0CbuikUdJrT2)95C|W~UVjqGm+Rl9VQ(aVq)>Ph z_zNB!KN0-Ot}g`XS4sh!fUha_x2LsPqh630Os_M;Y}V**0K<>BF9_y(P%EaLK$UtBsKs?Ev-{d2ZbpBfS zoC&hx8$&s-a-P-ifG-4@{a#dg6jY%E0#O2%cvLwXL4G{ygF=zZNC2Wqzc@KA7r~$B z^FjFQS!=ftu&)6*j_YcnYA>frQUBZj=kx3tf-=|ret%teaW}_K703_rL9MwlYzPj- z-xZ%Ty(zsWIoHzu_5_C4H`#o^_$GBrkVyf$k@3wT8JErh-b^Sv0?WEAV3mR#SAI2l zH-fze;_S?6Q=1fF!2bx&?^pY@!)MwzE1=Xc`{_ zXCNpU35ph>6#*{Zq*xI+4WDTz7p`&u8-hxPbARD$ESGMeE)h5mYlfD62+!qByT)U$ z8W_RS4V8<~RWR${#6aoK3UCxOlhB400Vf{8@a4q>3Zrad3jkn|3*};)QGe1P*nzkj zGI51x6=mfPf62OapU9#@X0XsW{`v_SRiJ&J|AcQU6r*^(%!P*kxdX47Grat}3GTyy z|9^o2Z9pw7eDC)FU+tpK2HyHb?e_xmrElwX;G)r9J!_0$nSYajTQdgf0;4 zL3eeXzJ3RF#=CpEzHg5gh6RUpLR$vy+UdM9-v(^Lp1^x_;hAoLopQbcA9HTYF8}xe zuPvuG{tHdNhd>#W;1B0TSK$}wx@TCntbe~|0MLWNpYX27f5C66?f+1IE}lQYB_00; zhmg=t@`bJ6qLd0Zoge6_9C&}NBh(-FoWPFMG7q?I>PeS+05e0(4Y4S?dyMjNlB1RACWZPukF$pFGN(9)11fj%5&ODtk^3x8M0 zG>GxdeWqFrW)Y0*H)&70@F^0Qz0h%vc<>W^rG zkpL5Pd_-sjGUTFpZ#ltm0t^;XDS+m10Cm5JMSJ5`<$y3_}el@|6gCh}1uO|g>WY|qGd>W(qs(%FT1vKc} z1S1fDRLqV5gZgEHfhSR8NcQB>M39Ya6O4c_V$P-W3*Y2Mpi}I_CK$E_=p>IEWCBx& z5s51%c!#V(lw*I<2?osq^yu0IoIwfv5gtaLI>C_KwT#k42<6KjyF$>=ZRvkhKIP#A z>H~ZJ9ZaBJqzMKs37`ax&3_0mF|*g&K%fngj6kG9!e<`BkS99@Al3 zj68&q6CfS`H5(b9LPvE}tb3pd&vmg>9!m1u0*`U=+!4+QwCE`&wyJD{-OCkNbOo*f zr{!L%R%7USR++n|~0TsJ{;g1CM~- zqJ{_1GWts|crTGckF{VJ@Lt%hL$*v_E8(U_)4(o78!H!_)Aq!pziZR+Q&8$ zSS9N5;(xn35gbE&f`kYzzK#s>+I*XQ-r}bL&wNwx`(`w-y)dpbeDyC$Vo6#N!&FTG O0000m!j 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 delta 679 zcmV;Y0$BZ?1+xW^7=Hu<00013M{Ml?001yhOjJdf(4dGwK=}ChaBy(o*x(Ql5csIL z@OY5OXkhr*$QW?I5J-p+u;_3=7~n840001u!u!qu00KTqL_t(YiOrP1Z<|mM$6-L~ z7%JsCYhQm^wz^bF_B2FUZPA0SPUQnHmF(2Kj76$2>DH*Klz%lt7yk+PFUZ*4ONWm6 z8+wn}IKb6xRc`_D{cv~Ry9b8x&%$odO}WzmynfOE95wlDOQH_BH_R<|A!6Cr@QQ3xd4mKjji5SHA9>D)ror~Weq7H$AbXSe5 zld!}+;DyuxDAlV1)LBG&;31y7NaQC%eso zEMox^C-WP;z7FQut&CWJY+gzEB5#uEk_Me#(kYT{ZIcH^a=BdolovE82B1w`$yaxG zzvOr1029Lz<^S-Ty7&u#kL4;*54387fbkmmiX0FH1<=+fr#6U|DoO|pn0@wbSpb3Z z>VP*Y0DoTrW5YWufak#Z^fv$*rDIz?_15Gepz5E6_3=%iKRaasXH7T`2N-W1Cr9X_ zfoWAYd}k9ZV3mPd1>HmuT!K;!F2TbTr_8snqrV1@c6nXJpL0Fl!2V?9{3;uSzQTn+knO?#`GfOQGbGa$ABMfm(2nNm*H%GcEuC N002ovPDHLkV1h?7G*e3Y~S9Nmd4)^$eJLcm8YziUb1mIhsoOHv4ir_1B=%nnHD znJWj9-|l9I;azDKmyHG;o+mbE7ve(YfV*X(Pa^qAyr*S3W zrg9+TE3Z^-0| z^=YrKwGy_>5huRKx85-U*y*>8a}7P$`ym=e#7y{~TAIC}=c9^^qJpj`IKt`h;8%yN?V{GokB>}rhHht)XD5~4F z^7V?q-N<^3|2XOECDDHJ9r0lZj+D>eQe02gI{^CE(t{UO`qiUb$KcrjAO>XQ5WZ#) z@PPmudIW~r6#?;s2*e1yY67C36RSG(R|K6V0Dtg{1P+}4o&cD5uYb3b)Hb30i468Z zedLvZNsSke>v(5aLQ??D7pn(@DhTG6^&%Ey5c%k`+s1mp{EUts&k5Ma@Blk8yQ*A+ z6aj##vGMDaP=*I_7zE)cWQLz%dGoIJO$*At+*NK!5_{s*m+oJU!VEB;2G-pNfUky? zxPR#iH^_Ap!}PbT<;vzabG;GXA;g&_mxIQAf}hrSK8ZIA-B6y1nhDDD61DNV)Ywlo zwG(jcz}tXlGAWqEMRd6qYQ4sp%>6KbMRnJ*O*g0~CqJ!Io>y-Jlt*IUCOiLj)7W3O z$l+BZKD)(lhwy-3}=7Z;iBBACWuXG<~|7fY86mvn~m)kGH(aeJ3n0`E&k>J_t)1 z=tYrxy+E#CosmkKC(QvZGPi726B?(pWZa76yRWMbjae5`6jpO|7;viW=X_in)qjlJ zIA9Mrud2)r?DPGz=0iS=JlksJeG@^vdNENB$)72XSPj{3rFXd>Os7BaA@frsf#osP zP%}$Fa^T6gd1=fp2|OH^oIS01w|PlNXTW*R&huQAF_+ZUkjt800=V+3B)I}80mae@ zK)g~|17vnUS^#rJGwoey1|0PPsDFEK2Cxbc2`4g6aR(eA7XYv67QG=qij1}DK|TkR z!X8^x{O<=#CHvMb;Cxe}z8_fsKn$u^5SAVUCY?@0IM92d&80xX49G2jc?2W(p1cU6 zMHx}r1h6Oo81>4QrPQk%0TxO67zq-#=2RTG288~L`9F6fA8$rPalpHBT7QZXU%^r1 z;HuUK6UUUgva<)^dl$qD1*RTPoQ$#|rY;=tyzd;q_n$9$0KNc-locVikj?<*{TX{k zlCmKS0cC5~&g)^{1N@FfNXwdiqXz--KceXOfVg3$*u7@o9Xb^Gvvhi${mp-TS+j4( zcZ5Oe8fp-oRUbY3P65z_JX5&ggs`T^bM{>TT*-G&DUp3g7qqDydH^u{RtI1Le*p08 zTQlEnA0*!_ZvWtnR+)SXz`OM$JpjMy|G#g40ms-sox6jKcmMzZ07*qoM6N<$f>%M! AHvj+t delta 1476 zcmV;#1v~oS3(5+7a-*Rp;l+?Kz63bY0pqISs;gifDDI1 zjR=o5lX(gN7eEO>BGhCA!Va9MF;SaM^TYvwIPFiwx1rP0RDciy6!xP}69Nd0sdk*YGl5EXc%W_h8m7Qq0VL+ znzmIDn12J2eL7opVmgXxw2`R4p9UdyAL!X^Y~vhQreLxU+*}0c>o)gtD|pi#ix*>> znN{$ndmi6z0ZR1(fWczUxoapZ_zVjITC8{H?XM>%*W?D4oq+@mYQl2)%R32}Wjg z^M4fa{2(~+mJHK4x_MdL%d8v0iL!XNN&!On+0MeXTmr8e6|ys42#3_FTCIckR0N?j zEtN1#4`PfgCuHs7b<3?Xn$}0iM9eMhMQVeV#zjV8p6{7P>*&gB9$z%|y@1{qwd3L1C@Bzj0p)nV|KPEn776=C zcqrhBQ5x<(w-^YR|EK$U5F0g+L07j4yJ)RI4d4V~q5N2(L=%vJni}tu@Okz|jlF$H zX=cY-#n>~^da%iMTBCHeW!{>l1%y^MRm{p>_`IIw^^#%8HVc1xc+G1Uqa^7O0e_R> zX?G_3{2DB2FDU4LwMZ+Cu$WZwilo*ruV(BIyu&z9kPssDo8#{9EFO1C^0J_Wr!&mj zH*-6-Lk{F56u`ufDbXI&u@!d^$R~baY1+2%a~XRDKn-M>Zh=;eZf5VUQJsxaV2Hgm z>qUT9q*+zaE(avWlr3O2SrK3vjsohFN7%*Zti21kM8f4h ztTqF9GD6^LAnpKl!U4R!8U}o-_z(^+Nd6Mx|L}+go|_T%As&BOIRBM&VFqerj6mDG zC<5uj(~dYW*4?~+W1?n0qCI|CQm}4;qsj&KAy^;O`s2#?c0004VQb$4nuFf3k0000mP)t-sn9!h{dl3KT zq*6H$0002htOy7Y5dYOd`1tt$y=wN97{zKBn20dm-ri_vXrnMNDRxVJ0009FNkl~uKt^QbJjXlV1I-pAb+>p|Mo9i`c*$kfBc*^ z4BY?&>hCtsZEPp>$CP(~vpdnE^Q=^L0v@IPj*`Z06S^8rsSy;T+we4*19F~ha3Fj4 zygCf;+O%j^8gv*>teFeZFgW0DY3OrGHc{`*28{!ZLa`(PSUE90r}BBI&bI1<0F9sv zq-0PB0MB$FC4Y%%!U5`q>Ot?0S|Cigpa9Sn{NpQEY6y$Ts;23-IEj{wPGKP9m93Ox zq<}-;B$>U?cY<;9X?u=;0#|^Y)JE(2nF&p7~!5^38 z;Y=QcJ%e5!Jpm*~8dUB@Dx-?YfzXrQ(m4-};RGo~sErJ$jvkz9;K(4L7Rg=O>{{v; znJ;BfhJT%s_eKvuJpsu0P>+LUaDX+oF5;4a)5KJ6Qc*?YyxLx`2t18+LHtXV$0No3 z*-ylqqByd>|4MN`>EZzBAAJQ6s^qy~S?A)}0U!pXFociQ13VC*_XUL^dPP9}paKzr z$4EfcGqED~<%%G+0)QV97&!l}095uZuTGNDDu3p$WN;1Qkrx80C>ziF_+Z#VH2~_H z)r&y{1odXQsKp2(hxXGp_5<=$99`ZMaE@UB7qPl3+=CPWfYfMtz9qEqpbmqO7zJbb zDYiFzW%+1B>C;{1ft2D*tV>(|RTNf$@;0!YJ^(yF*onKP@POP7F{J;Ky*$|ZWgZX0 zZ+r-GXR&tC_@3amHQrC+%R)DVccPC8!ut}n@wt>ZPbGg&z_kNk1K!C}!(?uv%e^q_ zCGKSIhx#XKzLxElK|MJ(=`6gjehm;_iT#+I{q0NRdO0U=`}6Ia<-hRcC;J(2`&IuR Zus;|xBph^g@mv4^002ovPDHLkV1lu_uGIhl delta 898 zcmV-|1AY9C2aN}i7=Hu<00013M{Ml?001yhOjJdf(4d%j5cuGzNH7opAUM#d2nY}m z_|QQ3`1ts^Xz-92z-Snlh%ngL*l1{IqcAWy#E%6400S6FL_t(YiRF~BZ`wc<#?K=0 z(j^9gJ7md4g4N*^ql8pKD#}jL#jB~q1wj{cvfo@qin4U-Qh#+tVt^3|Rbi^Kdd|?l zrtf?>N(^bbb?B3FT>O3SclUhHN67ydd#~ump&G5Nn)PVVu4l2+BBZG3#sLmxZ7}wp z|k! zj|-I5D+nQ!U+4G(*&d+8*qR~mwM)iMPnj)yQ0Csc3`#SKAv}mKPA1Dn%zH79)`-eu z8H7}>fPbG(`WIM(&;(aJkrf2^-LXUMP6w0WA}RAuxkO07yxjL?3ioz0JWCK@?K|Y%4X4i$=IvBW z=bscINgVT=+x?hB3}$ROJxhLazMn927M$GV5r56aGFT+{yqnxF%w_Y3EBt4MH*B?P zE)&N2+5O60tXRIxlQ|j!M*6&a)*P)CZcfKdj#f)G!P78@^VOZ7GhF+H)k3{6&-2M} zwj4g>44BZIY3Z?r=iMOtd$Jr#lU##<504IswO@}xN4ylz$O^v0DQdLrR( zoJAVvb*dmea9b~wQ9ry4YSs5O=S73lF3@VLzP(DdP0}Jor&V~-pecV+|He>wMgJG^ Y8)ZK+hD%wl!vFvP07*qoM6N<$g4)!vrT_o{ diff --git a/graphics/pokemon/zapdos/normal.pal b/graphics/pokemon/zapdos/normal.pal index 5551ab973..7f2ac1295 100644 --- a/graphics/pokemon/zapdos/normal.pal +++ b/graphics/pokemon/zapdos/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -152 120 16 -248 224 168 -72 48 16 -0 32 56 -208 168 8 +156 123 16 +255 230 164 +82 57 16 +0 0 0 +213 172 8 8 16 16 -248 208 64 +255 213 65 248 248 248 -248 184 104 -240 144 24 -192 104 24 +255 189 106 +246 148 24 +197 106 24 152 136 48 -216 216 216 +222 222 222 104 104 104 163 48 48 diff --git a/graphics/pokemon/zubat/anim_front.png b/graphics/pokemon/zubat/anim_front.png index b6b8092712557f39eaf25f5c443898767734048f..6cdc6af981cabcb40d18352790cbcbbbbc122f8a 100644 GIT binary patch delta 927 zcmV;Q17Q5W2dM{;7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!gQ5D;T~ zwY|>&jJ5AdLVII-wY5^5b0J#RbG`rn|IpCTV`F0g0000000000@0Zao0009gNkl~5)nDpdQl@j9;{uK9FlWWl^nTo6)yq3$!k5Up{PT8#1=rf%j5b6 zkn^~HCvXCr{t8g*cfcIhGhmZ5iiQDO0zB%lEthHtf(huP2>}W~S8rxaC;?e8Ao8-9 zX|~l1@Ze8R0e>WVAZ<_NONOckfjvNyKe!%6G&Tei=UE60V8NOVVCsCSm#0CKumn~C zaKEz31L_T739JQ>Bgr=iB$Q^?y$3^j84Bcq%X<%Ede~1v1`rRu0^)i-M`ZEoTnK=b zBMIaM^&lhLinee8W3wkAE%F4E1C3`QYbv?7{GfN}Pk(vMS@gc80T3jib_1wZzyG`& zm;iHqq&SFnscGThb~3%31keI@>9N=vk*)iD@e@=7>UPiXMP7vb#52_dy$a#9-74PC z^yb(B)^Yj&>OOP;5hKz|0Z_tjsb62q#^6EJ)oe2Bx4pq> zk?miE8GrIBa4_V~xFVd*Sa3e?xZ{pH?zrQQJG#+%p&ki&bN_{a?mWNNyYu|M{o*{o z3oz&TH32Mvp8(?fegT;E90T;N=SZt=J)yFmBY>{;9Epzg?AH~K2_M$e{8}7wU_G&^ zEfxpbhaOnZQWtX*WuNx<$%plnr^yPT8&hrA!GAvcu%6%$Z8%_F&3dMf6vF0}J)0A( z1R(V-(x$J)MiA#&0Hr7;9T4*yKVIDYk^_+3y2c>I{F2#3BUIk?65{4J$dwlZ|!Y;;x>aA!A2l!Ow%|4 zW^9Ym4In@u{Oc!;RMoY%+R~Z6`c1<=vIDBFZe0NUSDAI$K252ioDy`uQtuTbZE@ZS z-SWS^Vw9t2^c|r^Bwvi*BE0r?Ic*n=e;B{`_6Kg*9*1@NdvO2&002ovPDHLkV1h^* BvyA`% delta 949 zcmV;m14{g<2fqi97=Hu<00005QYt^r5ti#QIM)C2N>*%GhQjZ)_;r@j$ph>pP=U)8adoh z)X44|kY~uLkC1E9hw98OCdRwKF&732A?DlP>-FsZW6wLq2S-Z?`%i%Cmk?cmj+Kwb z)#!;#l(O@(Z-!ssPjz$e$m2}sF;X{qzG~##luxw&WUTT$w*-a~4dBO|cL-nwOpAR2 zsOON4atELV41cgFoLA5SQL-1{D@?{AuT54ur@(mys!ssGsB}zWqEb+_*1l9K{R*>P zz?T>TgwfT5zRNr7IrxYGu#oxPW*M4u^i&WNaFwqKpedHkyyvADhtc(N?JcJHy*1tt zVU$0uc^RB}y1h&mPb)7gtTm`6noY~6l`jj2KwB4MmVcDXl|OX}3?oeGMv^jLEu6sU zmqbP7Kr0-St|^}7zhkO63?EZ`+%9taeHVCt${_;?agv4RFMt4XyED$#LsKyf%{U8) zaeZ$+L^4!?0aDKHrn#cjv*;PX3~ua9KM`Mq$ao|Sz_o8*FaNzTKo4~wtX;`~x_tSY zaa92AYkvoE?zLW?xhP10iJ6VOi4^Bu7<6d&cOkSzUKI`~r`M(>93n0JUOQ4)q$weG zj+~aTPM}kq;uNPi6mTRTNBx8OPtpBhU~-*1&d0hyzFZvw+LDd)Kn$;r0pE%v06FU( zpysT5#??yR+*awoRVN|xs&>VM9P{c7TMwC1cqqOBJ;ty^`Ym9qwz zB`RfbAbK^0t+NL7Ndw9@9fzD%12HDp9XR~xbxziMfsn`~cG}gscS!)ZTbK%$uM$Gu zoG?INp$lPeo(l*i&b9Sg2z&GAj_7gw>~v@L=23@RM^v6h8XDxyz0r!AT3RI5Z&_`I z=zp|}4S(WW>B-qKom*UyuOLH0mjt-+HW5m!-Bh6f6Nct2?V2pBz*2< zVBosKm=;H={Qzwo%FGPlx&}?5EKA+IJ0;q3({dZYmf)6K0~cr{nuK{Zx#fqTdpe8A zLV9^x-ttdD#fR23T0lg#|LIlFs%uZc=q|_!LLJ>dNKw;XFb00000NkvXXu0mjfE&RJz diff --git a/graphics/pokemon/zubat/front.png b/graphics/pokemon/zubat/front.png index 83ba7c583be86509cda59fc936c23d850542819a..36d62770c779798142b0db2ebaf577856878c530 100644 GIT binary patch delta 544 zcmV+*0^j}91g!*+7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gQ5D;T~ zwY|>&jJ5AdLVII-wY5^5b0J#RbG`rn|IpCTV`F0g0000000000@0Zao00052NklNz2VBprq)o`3ks7%dX-5#l3j59rcB zR7yDtz;Y?fVv)hQ=Z$85y}(YBrf>|^;f%o@o)UcEJr9~Ho#L5~0^x?|`GY|9KHm&T zVCSy{J>LW+%|o!`P|0n7MVGVISKl|`*}RxQHaa>;FU-j{scIENjU(x3iNDxik|C& zDAe_h5C4pJw0?-_xNLRIXl-rP(R)rWTL1Z!thIr`NTUbRob`wSo`6ODo&mNwn2C)5 zt$_ztb##Z;Ab%^~1$c+~RB>%g6HS420=jVkz@&+!FsBm8)jHKgX7>(oDK=eQh!S&^eSh4G)xtgm@t#nbJ?yy*QQaNS z==x9zQwKFTC2AJUp-OcfG3d3;Xo}{sN*6JMQHG^ENPp4TY83@0_ZrEygRAhkiKW=L zKXcb{sCFgpUW?rOKLz4fGhzTCFO2fP0LF-~lhNOge8(`fWEBwex3jg)w4$*GN>QDw#$pBp+e;e)!aC03YK8fV`#7*H0 zm{^9$A3s^*j{yv?-1HAXg(lC0L#MU1No2$%!EbM#6gKHv$g?LWk--aeS(hcmKmM?W UiSYlAPyhe`07*qoM6N<$f*#Wc;s5{u diff --git a/graphics/pokemon/zubat/normal.pal b/graphics/pokemon/zubat/normal.pal index f21f16cf5..13f001cc1 100644 --- a/graphics/pokemon/zubat/normal.pal +++ b/graphics/pokemon/zubat/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 16 16 16 -96 120 176 -184 200 248 -136 176 232 -72 64 120 -96 120 176 -176 80 152 -112 32 88 -208 112 184 -248 248 248 +99 123 181 +189 206 255 +140 181 239 +74 66 123 +99 123 181 +181 82 156 +115 33 90 +214 115 189 +255 255 255 208 208 208 -96 96 96 +99 99 99 0 0 0 0 0 0 0 0 0 From 04ce8ec2132e5eba279c02d13ec794c743628218 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 6 Feb 2023 11:55:59 +0100 Subject: [PATCH 037/125] Fix Volt Absorb not activating on Thunderwave --- data/battle_scripts_1.s | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 9ff5838b1..833d01348 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -4139,6 +4139,7 @@ BattleScript_EffectParalyze: BattleScript_BattleScript_EffectParalyzeNoTypeCalc: jumpifmovehadnoeffect BattleScript_ButItFailed jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_AlreadyParalyzed + jumpifabsorbaffected BS_TARGET, BattleScript_VoltAbsorbHeal tryparalyzetype BS_ATTACKER, BS_TARGET, BattleScript_NotAffected jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents @@ -4152,6 +4153,11 @@ BattleScript_BattleScript_EffectParalyzeNoTypeCalc: resultmessage waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd + +BattleScript_VoltAbsorbHeal: + copybyte gBattlerAbility, gBattlerTarget + tryhealquarterhealth BS_TARGET BattleScript_MonMadeMoveUseless @ Check if max hp + goto BattleScript_MoveHPDrain BattleScript_AlreadyParalyzed: setalreadystatusedmoveattempt BS_ATTACKER From 2f412b206ac42914400e9ba95b25c5879999013a Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 7 Feb 2023 00:40:37 +0100 Subject: [PATCH 038/125] Fix Strange Steam anim --- data/battle_anim_scripts.s | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 06a24c592..f279a1a1f 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -3036,24 +3036,24 @@ Move_MUD_BOMB: end Move_PSYCHO_CUT: - loadspritegfx ANIM_TAG_SPIRAL - loadspritegfx ANIM_TAG_PSYCHO_CUT + loadspritegfx ANIM_TAG_SPIRAL + loadspritegfx ANIM_TAG_PSYCHO_CUT loadspritegfx ANIM_TAG_CROSS_IMPACT - monbg ANIM_ATK_PARTNER + monbg ANIM_ATK_PARTNER createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_CROSS_IMPACT, 0, 9, 9, RGB_PURPLE createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 2, ANIM_ATTACKER createsprite gPsychoCutSpiralSpriteTemplate, 2, 4, 0, 0, 0, 0 createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 0, 4, RGB_BLACK createvisualtask AnimTask_BlendBattleAnimPal, 1, 2, 2, 0, 10, RGB(20, 12, 23) delay 30 - clearmonbg ANIM_ATK_PARTNER - waitforvisualfinish - monbg ANIM_TARGET - splitbgprio ANIM_TARGET - setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, + clearmonbg ANIM_ATK_PARTNER + waitforvisualfinish + monbg ANIM_TARGET + splitbgprio ANIM_TARGET + setalpha 12, 8 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, createsprite gPsychoCutSpriteTemplate, ANIM_TARGET, 2, 20, 0, -8, 0, 20 - waitforvisualfinish + waitforvisualfinish createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 7, 0, 9, 1 createsprite gCrossImpactSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 20 createvisualtask AnimTask_BlendBattleAnimPal, 1, 1, 2, 4, 0, RGB_BLACK @@ -14003,11 +14003,12 @@ Move_STRANGE_STEAM:: clearmonbg ANIM_DEF_PARTNER end StrangeSteamCloud: - launchtemplate gStrangeSteamPinkCloudTemplate 0x82 0x5 0xf 0xf 0x14 0x0 0x0 - launchtemplate gStrangeSteamGreenCloudTemplate 0x82 0x5 0xf 0xf 0x14 0xa 0x5 - launchtemplate gStrangeSteamPinkCloudTemplate 0x82 0x5 0xf 0xf 0x14 0xfff6 0xfffb - launchtemplate gStrangeSteamGreenCloudTemplate 0x82 0x5 0xf 0xf 0x14 0x14 0xa - launchtemplate gStrangeSteamBlueCloudTemplate 0x82 0x5 0xf 0xf 0x14 0xffec 0xfff6 + createsprite gStrangeSteamPinkCloudTemplate, ANIM_TARGET, 2, 0xf, 0xf, 0x14, 0, 0 + createsprite gStrangeSteamGreenCloudTemplate, ANIM_TARGET, 2, 0xf, 0xf, 0x14, 0xa, 0x5 + createsprite gStrangeSteamPinkCloudTemplate, ANIM_TARGET, 2, 0xf, 0xf, 0x14, 0xfff6, 0xfffb + delay 0x1 + createsprite gStrangeSteamGreenCloudTemplate, ANIM_TARGET, 2, 0xf, 0xf, 0x14, 0x14, 0xa + createsprite gStrangeSteamBlueCloudTemplate, ANIM_TARGET, 2, 0xf, 0xf, 0x14, 0xffec, 0xfff6 delay 0x2 return From 0c4c3fbbb7527019ef45b40f417794af2eddc964 Mon Sep 17 00:00:00 2001 From: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Date: Tue, 7 Feb 2023 06:14:36 -0500 Subject: [PATCH 039/125] Fix Poison Gas Anim for MOVE_TARGET_BOTH (#2608) * poison gas anim handles MOVE_TARGET_BOTH * fix sprite position fields * fix it again --------- Co-authored-by: ghoulslash --- data/battle_anim_scripts.s | 4 ++++ src/battle_anim_ice.c | 21 ++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 06a24c592..03b317dc7 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -21119,7 +21119,11 @@ Move_POISON_GAS: createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 40 loopsewithpan SE_M_MIST, SOUND_PAN_TARGET, 28, 6 +.if B_UPDATED_MOVE_DATA >= GEN_5 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_DEF_SIDE, 6, 2, 0, 12, RGB(26, 0, 26) +.else createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 6, 2, 0, 12, RGB(26, 0, 26) +.endif waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index 3712fb727..44c1a4f22 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -1289,6 +1289,18 @@ static void InitPoisonGasCloudAnim(struct Sprite *sprite) sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + +#if B_UPDATED_MOVE_DATA >= GEN_5 + { + s16 x, y; + SetAverageBattlerPositions(gBattleAnimTarget, gBattleAnimArgs[7], &x, &y); + sprite->data[1] = sprite->x + gBattleAnimArgs[1]; + sprite->data[2] = x + gBattleAnimArgs[3]; + sprite->data[3] = sprite->y + gBattleAnimArgs[2]; + sprite->data[4] = y + gBattleAnimArgs[4]; + sprite->data[7] |= GetBattlerSpriteBGPriority(gBattleAnimTarget) << 8; + } +#else if (gBattleAnimArgs[7]) { sprite->data[1] = sprite->x + gBattleAnimArgs[1]; @@ -1305,6 +1317,7 @@ static void InitPoisonGasCloudAnim(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[4]; sprite->data[7] |= GetBattlerSpriteBGPriority(gBattleAnimTarget) << 8; } +#endif if (IsContest()) { @@ -1333,8 +1346,14 @@ static void MovePoisonGasCloud(struct Sprite *sprite) if (sprite->data[0] <= 0) { + #if B_UPDATED_MOVE_DATA >= GEN_5 + s16 x, y; + SetAverageBattlerPositions(gBattleAnimTarget, 0, &x, &y); + sprite->x = x; + #else + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + #endif sprite->data[0] = 80; - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); sprite->data[1] = sprite->x; sprite->data[2] = sprite->x; sprite->y += sprite->y2; From 0dc5e1e6852fca11dd3dab5b3600b88a12ef5910 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 7 Feb 2023 13:01:56 +0100 Subject: [PATCH 040/125] aftermath damp pop-ups and string --- data/battle_scripts_1.s | 10 +++++++ include/battle_scripts.h | 1 + include/constants/battle_string_ids.h | 4 +-- src/battle_message.c | 3 +- src/battle_util.c | 41 ++++++++++++++++----------- 5 files changed, 40 insertions(+), 19 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 833d01348..113318f1f 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -7900,6 +7900,16 @@ BattleScript_AftermathDmg:: waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER return + +BattleScript_DampPreventsAftermath:: + pause B_WAIT_TIME_SHORT + call BattleScript_AbilityPopUp + pause 40 + copybyte gBattlerAbility, sBATTLER + call BattleScript_AbilityPopUp + printstring STRINGID_PKMNSABILITYPREVENTSABILITY + waitmessage B_WAIT_TIME_LONG + return BattleScript_MoveUsedIsAsleep:: printstring STRINGID_PKMNFASTASLEEP diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 8acf6e8ef..18c1911e5 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -451,6 +451,7 @@ extern const u8 BattleScript_EarthEaterActivates[]; extern const u8 BattleScript_MimicryActivates_End3[]; extern const u8 BattleScript_IceFaceNullsDamage[]; extern const u8 BattleScript_BattlerFormChangeWithStringEnd3[]; +extern const u8 BattleScript_DampPreventsAftermath[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index f63aa79bc..3f8853024 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -638,8 +638,9 @@ #define STRINGID_ELECTRICTERRAINACTIVATEDABILITY 636 #define STRINGID_ABILITYWEAKENEDFSURROUNDINGMONSSTAT 637 #define STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN 638 +#define STRINGID_PKMNSABILITYPREVENTSABILITY 639 -#define BATTLESTRINGS_COUNT 639 +#define BATTLESTRINGS_COUNT 640 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, @@ -740,7 +741,6 @@ // gUproarAwakeStringIds #define B_MSG_CANT_SLEEP_UPROAR 0 #define B_MSG_UPROAR_KEPT_AWAKE 1 -#define B_MSG_STAYED_AWAKE_USING 2 // gUproarOverTurnStringIds #define B_MSG_UPROAR_CONTINUES 0 diff --git a/src/battle_message.c b/src/battle_message.c index 34542e58d..7ec079e72 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -306,6 +306,7 @@ static const u8 sText_PreventedFromWorking[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_ static const u8 sText_PkmnsXMadeItIneffective[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nmade it ineffective!"); static const u8 sText_PkmnsXPreventsFlinching[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_EFF_ABILITY}\nprevents flinching!"); static const u8 sText_PkmnsXPreventsYsZ[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\nprevents {B_DEF_NAME_WITH_PREFIX}'s\l{B_DEF_ABILITY} from working!"); +static const u8 sText_PkmnsAbilityPreventsAbility[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nprevents {B_DEF_NAME_WITH_PREFIX}'s\l{B_DEF_ABILITY} from working!"); static const u8 sText_PkmnsXCuredItsYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); static const u8 sText_PkmnsXHadNoEffectOnY[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nhad no effect on {B_EFF_NAME_WITH_PREFIX}!"); const u8 gText_StatSharply[] = _("sharply "); @@ -1402,6 +1403,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_PKMNTOOKTARGETHIGH - BATTLESTRINGS_TABLE_START] = sText_PkmnTookTargetHigh, [STRINGID_TARGETTOOHEAVY - BATTLESTRINGS_TABLE_START] = sText_TargetTooHeavy, [STRINGID_ATTACKERLOSTELECTRICTYPE - BATTLESTRINGS_TABLE_START] = sText_AttackerLostElectricType, + [STRINGID_PKMNSABILITYPREVENTSABILITY - BATTLESTRINGS_TABLE_START] = sText_PkmnsAbilityPreventsAbility, }; const u16 gZEffectStringIds[] = @@ -1592,7 +1594,6 @@ const u16 gUproarAwakeStringIds[] = { [B_MSG_CANT_SLEEP_UPROAR] = STRINGID_PKMNCANTSLEEPINUPROAR2, [B_MSG_UPROAR_KEPT_AWAKE] = STRINGID_UPROARKEPTPKMNAWAKE, - [B_MSG_STAYED_AWAKE_USING] = STRINGID_PKMNSTAYEDAWAKEUSING, }; const u16 gStatUpStringIds[] = diff --git a/src/battle_util.c b/src/battle_util.c index 4333d0b44..b030b8563 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -3814,7 +3814,7 @@ u8 AtkCanceller_UnableToUseMove(void) { SetRandomMultiHitCounter(); } - + PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) } else if (gBattleMoves[gCurrentMove].flags & FLAG_TWO_STRIKES) @@ -3841,7 +3841,7 @@ u8 AtkCanceller_UnableToUseMove(void) party = gPlayerParty; else party = gEnemyParty; - + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&party[i], MON_DATA_HP) @@ -5487,7 +5487,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); break; } - + gLastUsedAbility = gBattleMons[gBattlerAttacker].ability; gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gLastUsedAbility; @@ -5566,17 +5566,26 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move } break; case ABILITY_AFTERMATH: - if (!IsAbilityOnField(ABILITY_DAMP) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBattlerTarget].hp == 0 && IsBattlerAlive(gBattlerAttacker) && IsMoveMakingContact(move, gBattlerAttacker)) { - gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_AftermathDmg; + u8 battler; + if ((battler = IsAbilityOnField(ABILITY_DAMP))) + { + gBattleScripting.battler = battler - 1; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_DampPreventsAftermath; + } + else + { + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_AftermathDmg; + } effect++; } break; @@ -6858,7 +6867,7 @@ static u8 ItemEffectMoveEnd(u32 battlerId, u16 holdEffect) { u8 effect = 0; u32 i; - + switch (holdEffect) { #if B_HP_BERRIES >= GEN_4 @@ -7027,7 +7036,7 @@ static u8 ItemEffectMoveEnd(u32 battlerId, u16 holdEffect) && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY) && HasEnoughHpToEatBerry(battlerId, GetBattlerItemHoldEffectParam(battlerId, gLastUsedItem), gLastUsedItem)) { - gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; gBattleScripting.battler = battlerId; gPotentialItemEffectBattler = battlerId; BattleScriptPushCursor(); @@ -7036,7 +7045,7 @@ static u8 ItemEffectMoveEnd(u32 battlerId, u16 holdEffect) } break; } - + return effect; } @@ -7053,7 +7062,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gLastUsedItem = gBattleMons[battlerId].item; battlerHoldEffect = GetBattlerHoldEffect(battlerId, TRUE); } - + atkItem = gBattleMons[gBattlerAttacker].item; atkHoldEffect = GetBattlerHoldEffect(gBattlerAttacker, TRUE); atkHoldEffectParam = GetBattlerHoldEffectParam(gBattlerAttacker); @@ -8184,7 +8193,7 @@ u32 GetBattlerHoldEffect(u8 battlerId, bool32 checkNegating) return ItemId_GetHoldEffect(gBattleMons[battlerId].item); } -// +// static u32 GetBattlerItemHoldEffectParam(u8 battlerId, u16 item) { if (item == ITEM_ENIGMA_BERRY) @@ -8234,7 +8243,7 @@ bool32 IsBattlerProtected(u8 battlerId, u16 move) else if (gProtectStructs[battlerId].protected) return FALSE; } - + if (move == MOVE_TEATIME) { return FALSE; From 47ebf2e167d3616e78ce27fc836b750f982c0ed5 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 7 Feb 2023 13:33:43 +0100 Subject: [PATCH 041/125] hmm --- include/constants/battle_string_ids.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 3f8853024..636bcb94b 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -741,6 +741,7 @@ // gUproarAwakeStringIds #define B_MSG_CANT_SLEEP_UPROAR 0 #define B_MSG_UPROAR_KEPT_AWAKE 1 +#define B_MSG_STAYED_AWAKE_USING 2 // gUproarOverTurnStringIds #define B_MSG_UPROAR_CONTINUES 0 From f762ed728d13180f0929441244f207bfe21659c6 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 7 Feb 2023 15:10:20 +0100 Subject: [PATCH 042/125] remove pointless timers from disable struct --- include/battle.h | 9 ++------- src/battle_main.c | 1 - src/battle_script_commands.c | 31 ++++++++++++++----------------- src/battle_util.c | 26 ++++++++++++-------------- 4 files changed, 28 insertions(+), 39 deletions(-) diff --git a/include/battle.h b/include/battle.h index 110c252bc..79413441c 100644 --- a/include/battle.h +++ b/include/battle.h @@ -70,20 +70,15 @@ struct DisableStruct s8 stockpileBeforeDef; s8 stockpileBeforeSpDef; u8 substituteHP; - u8 disableTimer:4; - u8 disableTimerStartValue:4; u8 encoredMovePos; + u8 disableTimer:4; u8 encoreTimer:4; - u8 encoreTimerStartValue:4; u8 perishSongTimer:4; - u8 perishSongTimerStartValue:4; u8 furyCutterCounter; u8 rolloutTimer:4; u8 rolloutTimerStartValue:4; u8 chargeTimer:4; - u8 chargeTimerStartValue:4; u8 tauntTimer:4; - u8 tauntTimer2:4; u8 battlerPreventingEscape; u8 battlerWithSureHit; u8 isFirstTurn; @@ -99,8 +94,8 @@ struct DisableStruct u8 healBlockTimer; u8 laserFocusTimer; u8 throatChopTimer; - u8 usedMoves:4; u8 wrapTurns; + u8 usedMoves:4; u8 noRetreat:1; u8 tarShot:1; u8 octolock:1; diff --git a/src/battle_main.c b/src/battle_main.c index f316846c6..90540fa92 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3124,7 +3124,6 @@ void SwitchInClearSetData(void) gDisableStructs[gActiveBattler].substituteHP = disableStructCopy.substituteHP; gDisableStructs[gActiveBattler].battlerWithSureHit = disableStructCopy.battlerWithSureHit; gDisableStructs[gActiveBattler].perishSongTimer = disableStructCopy.perishSongTimer; - gDisableStructs[gActiveBattler].perishSongTimerStartValue = disableStructCopy.perishSongTimerStartValue; gDisableStructs[gActiveBattler].battlerPreventingEscape = disableStructCopy.battlerPreventingEscape; } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index ccec3f6a6..478608cd8 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -2790,7 +2790,7 @@ void SetMoveEffect(bool32 primary, u32 certain) u32 flags = 0; u16 battlerAbility; - if (gSpecialStatuses[gBattlerAttacker].parentalBondState == PARENTAL_BOND_1ST_HIT + if (gSpecialStatuses[gBattlerAttacker].parentalBondState == PARENTAL_BOND_1ST_HIT && gBattleMons[gBattlerTarget].hp != 0 && IsFinalStrikeEffect(gCurrentMove)) { @@ -2825,7 +2825,7 @@ void SetMoveEffect(bool32 primary, u32 certain) // Just in case this flag is still set gBattleScripting.moveEffect &= ~MOVE_EFFECT_CERTAIN; - + if ((battlerAbility == ABILITY_SHIELD_DUST || GetBattlerHoldEffect(gEffectBattler, TRUE) == HOLD_EFFECT_COVERT_CLOAK) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) @@ -9361,7 +9361,7 @@ static void Cmd_various(void) gBattleCommunication[MULTISTRING_CHOOSER] = 3; else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) && CanSleep(gBattlerTarget)) gBattleCommunication[MULTISTRING_CHOOSER] = 4; - else + else { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); return; @@ -9864,10 +9864,10 @@ static void Cmd_various(void) gBattlescriptCurrInstr += 4; return; } - + if (gBattlescriptCurrInstr[3]) gLastUsedItem = gBattleMons[gActiveBattler].item; - + gBattleScripting.battler = gEffectBattler = gBattlerTarget = gActiveBattler; // Cover all berry effect battlerId cases. e.g. ChangeStatBuffs uses target ID if (ItemBattleEffects(ITEMEFFECT_USE_LAST_ITEM, gActiveBattler, FALSE)) return; @@ -10065,7 +10065,7 @@ static void Cmd_various(void) // Check taunt if (gDisableStructs[gActiveBattler].tauntTimer != 0) { - gDisableStructs[gActiveBattler].tauntTimer = gDisableStructs[gActiveBattler].tauntTimer2 = 0; + gDisableStructs[gActiveBattler].tauntTimer = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_TAUNT; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_TAUNT); } @@ -10073,7 +10073,7 @@ static void Cmd_various(void) if (gDisableStructs[gActiveBattler].encoreTimer != 0) { gDisableStructs[gActiveBattler].encoredMove = 0; - gDisableStructs[gActiveBattler].encoreTimerStartValue = gDisableStructs[gActiveBattler].encoreTimer = 0; + gDisableStructs[gActiveBattler].encoreTimer = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_ENCORE; // STRINGID_PKMNENCOREENDED } // Check torment @@ -10091,7 +10091,7 @@ static void Cmd_various(void) // Check disable if (gDisableStructs[gActiveBattler].disableTimer != 0) { - gDisableStructs[gActiveBattler].disableTimer = gDisableStructs[gActiveBattler].disableTimerStartValue = 0; + gDisableStructs[gActiveBattler].disableTimer = 0; gDisableStructs[gActiveBattler].disabledMove = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_DISABLE; } @@ -10970,7 +10970,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr { RecordItemEffectBattle(gActiveBattler, HOLD_EFFECT_CLEAR_AMULET); } - + if (flags == STAT_CHANGE_ALLOW_PTR) { if (gSpecialStatuses[gActiveBattler].statLowered) @@ -11897,7 +11897,7 @@ static void Cmd_transformdataexecution(void) for (i = 0; i < offsetof(struct BattlePokemon, pp); i++) battleMonAttacker[i] = battleMonTarget[i]; - + gBattleStruct->overwrittenAbilities[gBattlerAttacker] = GetBattlerAbility(gBattlerTarget); for (i = 0; i < MAX_MON_MOVES; i++) { @@ -12105,7 +12105,6 @@ static void Cmd_disablelastusedattack(void) #else gDisableStructs[gBattlerTarget].disableTimer = 4; #endif - gDisableStructs[gBattlerTarget].disableTimerStartValue = gDisableStructs[gBattlerTarget].disableTimer; // used to save the random amount of turns? gBattlescriptCurrInstr += 5; } else @@ -12140,7 +12139,7 @@ static void Cmd_trysetencore(void) gDisableStructs[gBattlerTarget].encoredMove = gBattleMons[gBattlerTarget].moves[i]; gDisableStructs[gBattlerTarget].encoredMovePos = i; gDisableStructs[gBattlerTarget].encoreTimer = 3; - gDisableStructs[gBattlerTarget].encoreTimerStartValue = gDisableStructs[gBattlerTarget].encoreTimer; + gDisableStructs[gBattlerTarget].encoreTimer; gBattlescriptCurrInstr += 5; } else @@ -12615,7 +12614,6 @@ static void Cmd_trysetperishsong(void) { gStatuses3[i] |= STATUS3_PERISH_SONG; gDisableStructs[i].perishSongTimer = 3; - gDisableStructs[i].perishSongTimerStartValue = 3; } } @@ -13200,7 +13198,6 @@ static void Cmd_setcharge(void) { gStatuses3[gBattlerAttacker] |= STATUS3_CHARGED_UP; gDisableStructs[gBattlerAttacker].chargeTimer = 2; - gDisableStructs[gBattlerAttacker].chargeTimerStartValue = 2; gBattlescriptCurrInstr++; } @@ -13290,7 +13287,7 @@ static void Cmd_settaunt(void) u8 turns = 2; #endif - gDisableStructs[gBattlerTarget].tauntTimer = gDisableStructs[gBattlerTarget].tauntTimer2 = turns; + gDisableStructs[gBattlerTarget].tauntTimer = turns; gBattlescriptCurrInstr += 5; } else @@ -15022,7 +15019,7 @@ void BS_JumpIfHoldEffect(void) { u8 battler = gBattlescriptCurrInstr[5]; u16 holdEffect = T1_READ_16(gBattlescriptCurrInstr + 6); - + if (GetBattlerHoldEffect(battler, TRUE) == holdEffect) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 8); @@ -15070,7 +15067,7 @@ static bool32 CriticalCapture(u32 odds) bool8 IsMoveAffectedByParentalBond(u16 move, u8 battlerId) { - if (gBattleMoves[move].split != SPLIT_STATUS + if (gBattleMoves[move].split != SPLIT_STATUS && !(sForbiddenMoves[move] & FORBIDDEN_PARENTAL_BOND)) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) diff --git a/src/battle_util.c b/src/battle_util.c index 4333d0b44..2bbd2f530 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -3814,7 +3814,7 @@ u8 AtkCanceller_UnableToUseMove(void) { SetRandomMultiHitCounter(); } - + PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) } else if (gBattleMoves[gCurrentMove].flags & FLAG_TWO_STRIKES) @@ -3841,7 +3841,7 @@ u8 AtkCanceller_UnableToUseMove(void) party = gPlayerParty; else party = gEnemyParty; - + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&party[i], MON_DATA_HP) @@ -5487,7 +5487,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); break; } - + gLastUsedAbility = gBattleMons[gBattlerAttacker].ability; gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gLastUsedAbility; @@ -5758,11 +5758,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move { gStatuses3[battler] |= STATUS3_PERISH_SONG; gDisableStructs[battler].perishSongTimer = 3; - gDisableStructs[battler].perishSongTimerStartValue = 3; } gStatuses3[gBattlerAttacker] |= STATUS3_PERISH_SONG; gDisableStructs[gBattlerAttacker].perishSongTimer = 3; - gDisableStructs[gBattlerAttacker].perishSongTimerStartValue = 3; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_PerishBodyActivates; effect++; @@ -6815,7 +6813,7 @@ static bool32 GetMentalHerbEffect(u8 battlerId) // Check taunt if (gDisableStructs[battlerId].tauntTimer != 0) { - gDisableStructs[battlerId].tauntTimer = gDisableStructs[battlerId].tauntTimer2 = 0; + gDisableStructs[battlerId].tauntTimer = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_TAUNT; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_TAUNT); ret = TRUE; @@ -6824,7 +6822,7 @@ static bool32 GetMentalHerbEffect(u8 battlerId) if (gDisableStructs[battlerId].encoreTimer != 0) { gDisableStructs[battlerId].encoredMove = 0; - gDisableStructs[battlerId].encoreTimerStartValue = gDisableStructs[battlerId].encoreTimer = 0; + gDisableStructs[battlerId].encoreTimer = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_ENCORE; // STRINGID_PKMNENCOREENDED ret = TRUE; } @@ -6845,7 +6843,7 @@ static bool32 GetMentalHerbEffect(u8 battlerId) // Check disable if (gDisableStructs[battlerId].disableTimer != 0) { - gDisableStructs[battlerId].disableTimer = gDisableStructs[battlerId].disableTimerStartValue = 0; + gDisableStructs[battlerId].disableTimer = 0; gDisableStructs[battlerId].disabledMove = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_DISABLE; ret = TRUE; @@ -6858,7 +6856,7 @@ static u8 ItemEffectMoveEnd(u32 battlerId, u16 holdEffect) { u8 effect = 0; u32 i; - + switch (holdEffect) { #if B_HP_BERRIES >= GEN_4 @@ -7027,7 +7025,7 @@ static u8 ItemEffectMoveEnd(u32 battlerId, u16 holdEffect) && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY) && HasEnoughHpToEatBerry(battlerId, GetBattlerItemHoldEffectParam(battlerId, gLastUsedItem), gLastUsedItem)) { - gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; gBattleScripting.battler = battlerId; gPotentialItemEffectBattler = battlerId; BattleScriptPushCursor(); @@ -7036,7 +7034,7 @@ static u8 ItemEffectMoveEnd(u32 battlerId, u16 holdEffect) } break; } - + return effect; } @@ -7053,7 +7051,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gLastUsedItem = gBattleMons[battlerId].item; battlerHoldEffect = GetBattlerHoldEffect(battlerId, TRUE); } - + atkItem = gBattleMons[gBattlerAttacker].item; atkHoldEffect = GetBattlerHoldEffect(gBattlerAttacker, TRUE); atkHoldEffectParam = GetBattlerHoldEffectParam(gBattlerAttacker); @@ -8184,7 +8182,7 @@ u32 GetBattlerHoldEffect(u8 battlerId, bool32 checkNegating) return ItemId_GetHoldEffect(gBattleMons[battlerId].item); } -// +// static u32 GetBattlerItemHoldEffectParam(u8 battlerId, u16 item) { if (item == ITEM_ENIGMA_BERRY) @@ -8234,7 +8232,7 @@ bool32 IsBattlerProtected(u8 battlerId, u16 move) else if (gProtectStructs[battlerId].protected) return FALSE; } - + if (move == MOVE_TEATIME) { return FALSE; From 5bf607049e9365fa1e765ffad05999046438abbd Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 7 Feb 2023 16:41:30 +0100 Subject: [PATCH 043/125] Fix Pollen Puff score --- src/battle_ai_main.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 560457dcc..bcf4801ee 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -2427,6 +2427,13 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; } break; + case EFFECT_HEAL_PULSE: // and floral healing + if (!IsTargetingPartner(battlerAtk, battlerDef)) // Don't heal enemies + { + score -= 10; + break; + } + // fallthrough case EFFECT_HIT_ENEMY_HEAL_ALLY: // pollen puff if (IsTargetingPartner(battlerAtk, battlerDef)) { @@ -2436,20 +2443,6 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score -= 10; else if (gBattleMons[battlerDef].hp > gBattleMons[battlerDef].maxHP / 2) score -= 5; - break; - } - // fallthrough - case EFFECT_HEAL_PULSE: // and floral healing - if (!IsTargetingPartner(battlerAtk, battlerDef)) // Don't heal enemies - { - score -= 10; - } - else - { - if (AtMaxHp(battlerDef)) - score -= 10; - else if (gBattleMons[battlerDef].hp > gBattleMons[battlerDef].maxHP / 2) - score -= 5; } break; case EFFECT_ELECTRIFY: From ff088752e744019884a115fd5df6069be59b365f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 7 Feb 2023 18:47:23 +0100 Subject: [PATCH 044/125] Insomnia ability pop-up (#2643) * Insomnia ability pop-up * remove B_MSG_STAYED_AWAKE_USING constant --- asm/macros/battle_script.inc | 2 +- data/battle_scripts_1.s | 27 ++++++++++++++++++++------- include/constants/battle_string_ids.h | 1 - src/battle_script_commands.c | 22 ++++------------------ 4 files changed, 25 insertions(+), 27 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 4d0b9a614..2d7bd436f 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -731,7 +731,7 @@ .4byte \ptr .endm - .macro jumpifcantmakeasleep ptr:req + .macro jumpifuproarwakes ptr:req .byte 0x84 .4byte \ptr .endm diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 113318f1f..25386dbf0 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3167,7 +3167,9 @@ BattleScript_EffectSleep:: ppreduce jumpifsubstituteblocks BattleScript_ButItFailed jumpifstatus BS_TARGET, STATUS1_SLEEP, BattleScript_AlreadyAsleep - jumpifcantmakeasleep BattleScript_CantMakeAsleep + jumpifuproarwakes BattleScript_CantMakeAsleep + jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_InsomniaProtects + jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_InsomniaProtects jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_LeafGuardProtects jumpifflowerveil BattleScript_FlowerVeilProtects @@ -3264,6 +3266,14 @@ BattleScript_LeafGuardProtects: call BattleScript_LeafGuardProtectsRet orhalfword gMoveResultFlags, MOVE_RESULT_FAILED goto BattleScript_MoveEnd + +BattleScript_InsomniaProtects: + pause B_WAIT_TIME_SHORT + call BattleScript_AbilityPopUp + printstring STRINGID_PKMNSTAYEDAWAKEUSING + waitmessage B_WAIT_TIME_LONG + orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + goto BattleScript_MoveEnd BattleScript_AlreadyAsleep:: setalreadystatusedmoveattempt BS_ATTACKER @@ -3826,7 +3836,9 @@ BattleScript_EffectRest:: ppreduce jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep jumpifability BS_ATTACKER, ABILITY_COMATOSE, BattleScript_RestIsAlreadyAsleep - jumpifcantmakeasleep BattleScript_RestCantSleep + jumpifuproarwakes BattleScript_RestCantSleep + jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_InsomniaProtects + jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_InsomniaProtects trysetrest BattleScript_AlreadyAtFullHp pause B_WAIT_TIME_SHORT printfromtable gRestUsedStringIds @@ -5856,9 +5868,9 @@ BattleScript_EffectYawn:: attackcanceler attackstring ppreduce - jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective - jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective - jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_PrintBankAbilityMadeIneffective + jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBattlerAbilityMadeIneffective + jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBattlerAbilityMadeIneffective + jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_PrintBattlerAbilityMadeIneffective jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_LeafGuardProtects jumpifflowerveil BattleScript_FlowerVeilProtects jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects @@ -5866,17 +5878,18 @@ BattleScript_EffectYawn:: jumpifsubstituteblocks BattleScript_ButItFailed jumpifsafeguard BattleScript_SafeguardProtected accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON - jumpifcantmakeasleep BattleScript_ButItFailed + jumpifuproarwakes BattleScript_ButItFailed setyawn BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNWASMADEDROWSY waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_PrintBankAbilityMadeIneffective:: +BattleScript_PrintBattlerAbilityMadeIneffective:: copybyte sBATTLER, gBattlerAbility BattleScript_PrintAbilityMadeIneffective:: pause B_WAIT_TIME_SHORT + call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXMADEITINEFFECTIVE waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 636bcb94b..3f8853024 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -741,7 +741,6 @@ // gUproarAwakeStringIds #define B_MSG_CANT_SLEEP_UPROAR 0 #define B_MSG_UPROAR_KEPT_AWAKE 1 -#define B_MSG_STAYED_AWAKE_USING 2 // gUproarOverTurnStringIds #define B_MSG_UPROAR_CONTINUES 0 diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 849206c48..be5e2ee21 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -451,7 +451,7 @@ static void Cmd_manipulatedamage(void); static void Cmd_trysetrest(void); static void Cmd_jumpifnotfirstturn(void); static void Cmd_setmiracleeye(void); -static void Cmd_jumpifcantmakeasleep(void); +static void Cmd_jumpifuproarwakes(void); static void Cmd_stockpile(void); static void Cmd_stockpiletobasedamage(void); static void Cmd_stockpiletohpheal(void); @@ -710,7 +710,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_trysetrest, //0x81 Cmd_jumpifnotfirstturn, //0x82 Cmd_setmiracleeye, //0x83 - Cmd_jumpifcantmakeasleep, //0x84 + Cmd_jumpifuproarwakes, //0x84 Cmd_stockpile, //0x85 Cmd_stockpiletobasedamage, //0x86 Cmd_stockpiletohpheal, //0x87 @@ -10692,26 +10692,12 @@ bool8 UproarWakeUpCheck(u8 battlerId) return TRUE; } -static void Cmd_jumpifcantmakeasleep(void) +static void Cmd_jumpifuproarwakes(void) { - const u8 *jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 1); - u32 ability = GetBattlerAbility(gBattlerTarget); - if (UproarWakeUpCheck(gBattlerTarget)) - { - gBattlescriptCurrInstr = jumpPtr; - } - else if (ability == ABILITY_INSOMNIA || ability == ABILITY_VITAL_SPIRIT) - { - gLastUsedAbility = ability; - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAYED_AWAKE_USING; - gBattlescriptCurrInstr = jumpPtr; - RecordAbilityBattle(gBattlerTarget, gLastUsedAbility); - } + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else - { gBattlescriptCurrInstr += 5; - } } static void Cmd_stockpile(void) From 6c30c5490cfdb61e7e45a29de94b6b3e67862465 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Wed, 8 Feb 2023 00:51:59 -0300 Subject: [PATCH 045/125] Test PR --- src/battle_ai_switch_items.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 5bcd17716..0ae1c8a9a 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -205,7 +205,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON && i == (CalculateEnemyPartyCount()-1)) continue; - + species = GetMonData(&party[i], MON_DATA_SPECIES); if (GetMonData(&party[i], MON_DATA_ABILITY_NUM) != 0) From 8c257bde9940ade994e1e64afed71f35407c0493 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 8 Feb 2023 10:24:19 +0100 Subject: [PATCH 046/125] Fix 1 vs 2 battles with eggs --- src/battle_gfx_sfx_util.c | 3 +++ src/battle_main.c | 2 +- src/battle_script_commands.c | 5 ++++- src/reshow_battle_screen.c | 4 +++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 193452613..389832fb2 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -557,6 +557,9 @@ static void BattleLoadMonSpriteGfx(struct Pokemon *mon, u32 battlerId, bool32 op if (illusionMon != NULL) mon = illusionMon; + if (GetMonData(mon, MON_DATA_IS_EGG)) // Don't load GFX of egg pokemon. + return; + monsPersonality = GetMonData(mon, MON_DATA_PERSONALITY); if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE) { diff --git a/src/battle_main.c b/src/battle_main.c index 90540fa92..b23d8af55 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3655,7 +3655,7 @@ static void TryDoEventsBeforeFirstTurn(void) { for (i = 0; i < gBattlersCount; i++) { - if (gBattleMons[i].hp == 0 || gBattleMons[i].species == SPECIES_NONE) + if (gBattleMons[i].hp == 0 || gBattleMons[i].species == SPECIES_NONE || GetMonData(GetBattlerPartyData(i), MON_DATA_IS_EGG)) gAbsentBattlerFlags |= gBitTable[i]; } } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index be5e2ee21..3227168dc 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4036,6 +4036,8 @@ static void Cmd_getexp(void) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE || GetMonData(&gPlayerParty[i], MON_DATA_HP) == 0) continue; + if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) + continue; if (gBitTable[i] & sentIn) viaSentIn++; @@ -4125,7 +4127,8 @@ static void Cmd_getexp(void) gBattleStruct->wildVictorySong++; } - if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP)) + if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP) + && !GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_IS_EGG)) { if (gBattleStruct->sentInPokes & 1) gBattleMoveDamage = *exp; diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 16310a7c3..b24db3f87 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -258,6 +258,8 @@ static void CreateBattlerSprite(u8 battler) { if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0) return; + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_IS_EGG)) + return; SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler)); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler)); @@ -311,7 +313,7 @@ static void CreateHealthboxSprite(u8 battler) } else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) { - if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0 || GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_IS_EGG)) SetHealthboxSpriteInvisible(healthboxSpriteId); } } From 896b575c07171c76c3a146f369447f836f47cca2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 8 Feb 2023 12:42:38 +0100 Subject: [PATCH 047/125] Fix volt switch breaking ace pokemon --- data/battle_scripts_1.s | 2 +- include/battle.h | 1 + src/battle_ai_switch_items.c | 90 +++++++++++++++++++++++------------- src/battle_script_commands.c | 3 ++ src/data/trainer_parties.h | 32 +++++++++++-- src/data/trainers.h | 4 +- 6 files changed, 92 insertions(+), 40 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 25386dbf0..a707d7bce 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3055,7 +3055,7 @@ BattleScript_EffectHitEscape: jumpifbyte CMP_NOT_EQUAL gBattleOutcome 0, BattleScript_HitEscapeEnd jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_HitEscapeEnd jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_HitEscapeEnd - jumpifemergencyexited BS_TARGET, BattleScript_HitEscapeEnd + jumpifemergencyexited BS_TARGET, BattleScript_HitEscapeEnd openpartyscreen BS_ATTACKER, BattleScript_HitEscapeEnd switchoutabilities BS_ATTACKER waitstate diff --git a/include/battle.h b/include/battle.h index 79413441c..cfeec4663 100644 --- a/include/battle.h +++ b/include/battle.h @@ -643,6 +643,7 @@ struct BattleStruct struct StolenItem itemStolen[PARTY_SIZE]; // Player's team that had items stolen (two bytes per party member) u8 blunderPolicy:1; // should blunder policy activate u8 swapDamageCategory:1; // Photon Geyser, Shell Side Arm, Light That Burns the Sky + u8 forcedSwitch:4; // For each battler u8 ballSpriteIds[2]; // item gfx, window gfx u8 stickyWebUser; u8 appearedInBattle; // Bitfield to track which Pokemon appeared in battle. Used for Burmy's form change diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 5bcd17716..f976b47e3 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -27,6 +27,15 @@ static bool32 AiExpectsToFaintPlayer(void); static bool32 AI_ShouldHeal(u32 healAmount); static bool32 AI_OpponentCanFaintAiWithMod(u32 healAmount); +static bool32 isAceMon(u32 battlerId, u32 monPartyId) +{ + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON + && !(gBattleStruct->forcedSwitch) + && monPartyId == CalculateEnemyPartyCount()-1) + return TRUE; + return FALSE; +} + void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId) { if (BATTLE_TWO_VS_ONE_OPPONENT && (battlerId & BIT_SIDE) == B_SIDE_OPPONENT) @@ -109,8 +118,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) continue; if (i == gBattlerPartyIndexes[gActiveBattler]) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) + if (isAceMon(gActiveBattler, i)) continue; for (opposingBattler = GetBattlerAtPosition(opposingPosition), j = 0; j < MAX_MON_MOVES; j++) @@ -202,10 +210,9 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) continue; if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) + if (isAceMon(gActiveBattler, i)) continue; - + species = GetMonData(&party[i], MON_DATA_SPECIES); if (GetMonData(&party[i], MON_DATA_ABILITY_NUM) != 0) @@ -267,7 +274,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) ) switchMon = FALSE; - if (IsBattlerAlive(BATTLE_PARTNER(gActiveBattler)) + if (IsBattlerAlive(BATTLE_PARTNER(gActiveBattler)) && (gBattleMoves[AI_DATA->partnerMove].effect == EFFECT_MISTY_TERRAIN || gBattleMoves[AI_DATA->partnerMove].effect == EFFECT_ELECTRIC_TERRAIN) && IsBattlerGrounded(gActiveBattler) @@ -277,15 +284,14 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) if (*(gBattleStruct->AI_monToSwitchIntoId + BATTLE_PARTNER(gActiveBattler)) != PARTY_SIZE) //Partner is switching { GetAIPartyIndexes(gActiveBattler, &firstId, &lastId); - + if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; - + for (i = firstId; i < lastId; i++) { - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) - break; + if (isAceMon(gActiveBattler, i)) + continue; //Look for mon in party that is able to be switched into and has ability that sets terrain if (GetMonData(&party[i], MON_DATA_HP) != 0 @@ -305,7 +311,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) } } } - + //Check if Active Pokemon can KO opponent instead of switching //Will still fall asleep, but take out opposing Pokemon first if (AiExpectsToFaintPlayer()) @@ -328,7 +334,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) && AI_DATA->abilities[opposingBattler] != ABILITY_UNAWARE && AI_DATA->abilities[opposingBattler] != ABILITY_KEEN_EYE && !(gBattleMons[gActiveBattler].status2 & STATUS2_FORESIGHT) - && !(gStatuses3[gActiveBattler] & STATUS3_MIRACLE_EYED)) + && !(gStatuses3[gActiveBattler] & STATUS3_MIRACLE_EYED)) switchMon = FALSE; } @@ -343,7 +349,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) && gBattleMons[gActiveBattler].hp >= (gBattleMons[gActiveBattler].maxHP / 3) && (Random() % (moduloChance*chanceReducer)) == 0) switchMon = TRUE; - + //Cursed moduloChance = 2; //50% if (gBattleMons[gActiveBattler].status2 & STATUS2_CURSED @@ -370,7 +376,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) //Todo //Pass Wish Heal - + //Semi-Invulnerable if (gStatuses3[opposingBattler] & STATUS3_SEMI_INVULNERABLE) { @@ -416,7 +422,7 @@ static bool8 ShouldSwitchIfAbilityBenefit(void) switch(AI_DATA->abilities[gActiveBattler]) { case ABILITY_NATURAL_CURE: moduloChance = 4; //25% - //Attempt to cure bad ailment + //Attempt to cure bad ailment if (gBattleMons[gActiveBattler].status1 & (STATUS1_SLEEP | STATUS1_FREEZE | STATUS1_TOXIC_POISON) && GetMostSuitableMonToSwitchInto() != PARTY_SIZE) break; @@ -432,17 +438,17 @@ static bool8 ShouldSwitchIfAbilityBenefit(void) case ABILITY_REGENERATOR: moduloChance = 2; //50% //Don't switch if ailment - if (gBattleMons[gActiveBattler].status1 & STATUS1_ANY) - return FALSE; + if (gBattleMons[gActiveBattler].status1 & STATUS1_ANY) + return FALSE; if ((gBattleMons[gActiveBattler].hp <= ((gBattleMons[gActiveBattler].maxHP * 2) / 3)) && GetMostSuitableMonToSwitchInto() != PARTY_SIZE && Random() % (moduloChance*chanceReducer) == 0) break; - + return FALSE; default: - return FALSE; + return FALSE; } *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = PARTY_SIZE; @@ -576,8 +582,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u16 flags, u8 moduloPercent) continue; if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) + if (isAceMon(gActiveBattler, i)) continue; @@ -619,6 +624,7 @@ bool32 ShouldSwitch(void) struct Pokemon *party; s32 i; s32 availableToSwitch; + bool32 hasAceMon = FALSE; if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) return FALSE; @@ -668,15 +674,22 @@ bool32 ShouldSwitch(void) continue; if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && i == (CalculateEnemyPartyCount()-1)) + if (isAceMon(gActiveBattler, i)) + { + hasAceMon = TRUE; continue; + } availableToSwitch++; } if (availableToSwitch == 0) - return FALSE; + { + if (hasAceMon) // If the ace mon is the only available mon, use it + availableToSwitch++; + else + return FALSE; + } //NOTE: The sequence of the below functions matter! Do not change unless you have carefully considered the outcome. //Since the order is sequencial, and some of these functions prompt switch to specific party members. @@ -694,14 +707,14 @@ bool32 ShouldSwitch(void) return TRUE; if (ShouldSwitchIfAbilityBenefit()) return TRUE; - + //Removing switch capabilites under specific conditions //These Functions prevent the "FindMonWithFlagsAndSuperEffective" from getting out of hand. if (HasSuperEffectiveMoveAgainstOpponents(FALSE)) return FALSE; if (AreStatsRaised()) return FALSE; - + //Default Function //Can prompt switch if AI has a pokemon in party that resists current opponent & has super effective move if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 2) @@ -758,8 +771,7 @@ void AI_TrySwitchOrUseItem(void) continue; if (monToSwitchId == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && monToSwitchId == (CalculateEnemyPartyCount()-1)) + if (isAceMon(gActiveBattler, monToSwitchId)) continue; break; @@ -916,7 +928,7 @@ u8 GetMostSuitableMonToSwitchInto(void) s32 lastId = 0; // + 1 struct Pokemon *party; s32 i, j, aliveCount = 0; - u8 invalidMons = 0; + u32 invalidMons = 0, aceMonId = PARTY_SIZE; if (*(gBattleStruct->monToSwitchIntoId + gActiveBattler) != PARTY_SIZE) return *(gBattleStruct->monToSwitchIntoId + gActiveBattler); @@ -958,12 +970,19 @@ u8 GetMostSuitableMonToSwitchInto(void) || gBattlerPartyIndexes[battlerIn2] == i || i == *(gBattleStruct->monToSwitchIntoId + battlerIn1) || i == *(gBattleStruct->monToSwitchIntoId + battlerIn2) - || (GetMonAbility(&party[i]) == ABILITY_TRUANT && IsTruantMonVulnerable(gActiveBattler, opposingBattler)) // While not really invalid per say, not really wise to switch into this mon. - || ((AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON) - && i == (CalculateEnemyPartyCount() - 1))) //Save Ace Pokemon for last + || (GetMonAbility(&party[i]) == ABILITY_TRUANT && IsTruantMonVulnerable(gActiveBattler, opposingBattler))) // While not really invalid per say, not really wise to switch into this mon.) + { invalidMons |= gBitTable[i]; + } + else if (isAceMon(gActiveBattler, i))// Save Ace Pokemon for last. + { + aceMonId = i; + invalidMons |= gBitTable[i]; + } else + { aliveCount++; + } } bestMonId = GetBestMonBatonPass(party, firstId, lastId, invalidMons, aliveCount); @@ -978,6 +997,11 @@ u8 GetMostSuitableMonToSwitchInto(void) if (bestMonId != PARTY_SIZE) return bestMonId; + // If ace mon is the last available Pokemon and U-Turn/Volt Switch was used - switch to the mon. + if (aceMonId != PARTY_SIZE + && (gBattleMoves[gLastUsedMove].effect == EFFECT_HIT_ESCAPE || gBattleMoves[gLastUsedMove].effect == EFFECT_PARTING_SHOT)) + return aceMonId; + return PARTY_SIZE; } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index be5e2ee21..0e447bbfc 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6844,6 +6844,7 @@ static void Cmd_switchineffects(void) gBattlerFainted++; } } + gBattleStruct->forcedSwitch &= ~(gBitTable[gActiveBattler]); gBattlescriptCurrInstr += 2; } } @@ -11410,6 +11411,8 @@ static void Cmd_forcerandomswitch(void) *(gBattleStruct->battlerPartyIndexes + gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; gBattlescriptCurrInstr = BattleScript_RoarSuccessSwitch; + gBattleStruct->forcedSwitch |= gBitTable[gBattlerTarget]; + do { i = Random() % monsCount; diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h index 1759120b7..d04d25009 100644 --- a/src/data/trainer_parties.h +++ b/src/data/trainer_parties.h @@ -1706,12 +1706,36 @@ static const struct TrainerMonNoItemCustomMoves sParty_Jessica5[] = { } }; -static const struct TrainerMonItemDefaultMoves sParty_Winston1[] = { +static const struct TrainerMonItemCustomMoves sParty_Winston1[] = { { .iv = 0, - .lvl = 7, - .species = SPECIES_ZIGZAGOON, - .heldItem = ITEM_NUGGET + .lvl = 10, + .species = SPECIES_EMOLGA, + .heldItem = ITEM_NONE, + .moves = {MOVE_VOLT_SWITCH, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + }, + /* + { + .iv = 0, + .lvl = 4, + .species = SPECIES_ABRA, + .heldItem = ITEM_NONE, + .moves = {MOVE_VOLT_SWITCH, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + }, + { + .iv = 0, + .lvl = 8, + .species = SPECIES_KADABRA, + .heldItem = ITEM_NONE, + .moves = {MOVE_VOLT_SWITCH, MOVE_NONE, MOVE_NONE, MOVE_NONE}, + }, + */ + { + .iv = 250, + .lvl = 24, + .species = SPECIES_ZEBSTRIKA, + .heldItem = ITEM_SITRUS_BERRY, + .moves = {MOVE_VOLT_SWITCH, MOVE_VOLT_SWITCH, MOVE_VOLT_SWITCH, MOVE_VOLT_SWITCH}, } }; diff --git a/src/data/trainers.h b/src/data/trainers.h index 75f7edc8b..6ffdee13a 100644 --- a/src/data/trainers.h +++ b/src/data/trainers.h @@ -1641,8 +1641,8 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_FLAG_CHECK_BAD_MOVE, - .party = ITEM_DEFAULT_MOVES(sParty_Winston1), + .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_ACE_POKEMON, + .party = ITEM_CUSTOM_MOVES(sParty_Winston1), }, [TRAINER_MOLLIE] = From 84d7024add9a0e7e21896dea61b87ad9a3768f95 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 8 Feb 2023 12:48:48 +0100 Subject: [PATCH 048/125] cleanup --- src/data/trainer_parties.h | 32 ++++---------------------------- src/data/trainers.h | 4 ++-- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h index d04d25009..1759120b7 100644 --- a/src/data/trainer_parties.h +++ b/src/data/trainer_parties.h @@ -1706,36 +1706,12 @@ static const struct TrainerMonNoItemCustomMoves sParty_Jessica5[] = { } }; -static const struct TrainerMonItemCustomMoves sParty_Winston1[] = { +static const struct TrainerMonItemDefaultMoves sParty_Winston1[] = { { .iv = 0, - .lvl = 10, - .species = SPECIES_EMOLGA, - .heldItem = ITEM_NONE, - .moves = {MOVE_VOLT_SWITCH, MOVE_NONE, MOVE_NONE, MOVE_NONE}, - }, - /* - { - .iv = 0, - .lvl = 4, - .species = SPECIES_ABRA, - .heldItem = ITEM_NONE, - .moves = {MOVE_VOLT_SWITCH, MOVE_NONE, MOVE_NONE, MOVE_NONE}, - }, - { - .iv = 0, - .lvl = 8, - .species = SPECIES_KADABRA, - .heldItem = ITEM_NONE, - .moves = {MOVE_VOLT_SWITCH, MOVE_NONE, MOVE_NONE, MOVE_NONE}, - }, - */ - { - .iv = 250, - .lvl = 24, - .species = SPECIES_ZEBSTRIKA, - .heldItem = ITEM_SITRUS_BERRY, - .moves = {MOVE_VOLT_SWITCH, MOVE_VOLT_SWITCH, MOVE_VOLT_SWITCH, MOVE_VOLT_SWITCH}, + .lvl = 7, + .species = SPECIES_ZIGZAGOON, + .heldItem = ITEM_NUGGET } }; diff --git a/src/data/trainers.h b/src/data/trainers.h index 6ffdee13a..75f7edc8b 100644 --- a/src/data/trainers.h +++ b/src/data/trainers.h @@ -1641,8 +1641,8 @@ const struct Trainer gTrainers[] = { .trainerName = _("WINSTON"), .items = {ITEM_FULL_RESTORE, ITEM_NONE, ITEM_NONE, ITEM_NONE}, .doubleBattle = FALSE, - .aiFlags = AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_ACE_POKEMON, - .party = ITEM_CUSTOM_MOVES(sParty_Winston1), + .aiFlags = AI_FLAG_CHECK_BAD_MOVE, + .party = ITEM_DEFAULT_MOVES(sParty_Winston1), }, [TRAINER_MOLLIE] = From 41d64ea41e0070fa5c1bde0a3a7ee60baa971fc5 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 8 Feb 2023 13:02:41 +0100 Subject: [PATCH 049/125] heal pulse effect in double battles --- src/battle_ai_main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 560457dcc..2fb89bff3 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -3009,6 +3009,13 @@ static s16 AI_DoubleBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) RETURN_SCORE_PLUS(1); } break; + case EFFECT_HEAL_PULSE: + case EFFECT_HIT_ENEMY_HEAL_ALLY: + if (AI_WhoStrikesFirst(battlerAtk, FOE(battlerAtk), move) == AI_IS_FASTER + && AI_WhoStrikesFirst(battlerAtk, BATTLE_PARTNER(FOE(battlerAtk)), move) == AI_IS_FASTER + && gBattleMons[battlerAtkPartner].hp < gBattleMons[battlerAtkPartner].maxHP / 2) + RETURN_SCORE_PLUS(1); + break; } // attacker move effects } // check partner protecting From 8381b14c510bd76566d54193797a91bb226c5d37 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Wed, 8 Feb 2023 11:54:12 -0300 Subject: [PATCH 050/125] Implemented Xhyzi's RHH copyright intro (with config) (#2415) * Rhh & Pret Copyright Screen * Porygon recovered his voice * Expansion text --------- Co-authored-by: Xhyzi Co-authored-by: Jaizu --- graphics/rhh_copyright/credits.pal | 259 ++++++++++++++ graphics/rhh_copyright/powered_by.bin | Bin 0 -> 2048 bytes graphics/rhh_copyright/powered_by.png | Bin 0 -> 336 bytes graphics/rhh_copyright/rhh_credits.bin | Bin 0 -> 2048 bytes graphics/rhh_copyright/rhh_credits.png | Bin 0 -> 1703 bytes graphics/rhh_copyright/sprites/dizzy_egg.png | Bin 0 -> 1085 bytes graphics/rhh_copyright/sprites/porygon.png | Bin 0 -> 1423 bytes graphics/rhh_copyright/sprites/shiny.pal | 19 + include/config.h | 3 + include/rhh_copyright.h | 13 + ld_script.txt | 2 + src/battle_controller_player.c | 2 +- src/intro.c | 72 ++++ src/rhh_copyright.c | 345 +++++++++++++++++++ sym_ewram.txt | 1 + 15 files changed, 715 insertions(+), 1 deletion(-) create mode 100644 graphics/rhh_copyright/credits.pal create mode 100644 graphics/rhh_copyright/powered_by.bin create mode 100644 graphics/rhh_copyright/powered_by.png create mode 100644 graphics/rhh_copyright/rhh_credits.bin create mode 100644 graphics/rhh_copyright/rhh_credits.png create mode 100644 graphics/rhh_copyright/sprites/dizzy_egg.png create mode 100644 graphics/rhh_copyright/sprites/porygon.png create mode 100644 graphics/rhh_copyright/sprites/shiny.pal create mode 100644 include/rhh_copyright.h create mode 100644 src/rhh_copyright.c diff --git a/graphics/rhh_copyright/credits.pal b/graphics/rhh_copyright/credits.pal new file mode 100644 index 000000000..cdff46971 --- /dev/null +++ b/graphics/rhh_copyright/credits.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +198 231 214 +255 255 255 +222 222 222 +222 222 214 +198 198 198 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +247 247 247 +231 231 231 +222 222 222 +222 222 214 +214 214 214 +198 198 198 +181 181 181 +165 165 165 +148 148 148 +132 132 132 +115 115 115 +99 99 99 +82 82 82 +66 66 66 +49 49 49 +33 33 33 +16 16 16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/rhh_copyright/powered_by.bin b/graphics/rhh_copyright/powered_by.bin new file mode 100644 index 0000000000000000000000000000000000000000..13187db91138588bc182c956dbcc52c7b8619df6 GIT binary patch literal 2048 zcmZQzARjO?Fp{qssB>`YXJTMxU}0coU}InhVh*4?IT^SZxUu+jaJnChLvaX=x_>yP WUmTH*MR+v+K_M^-M?+xbh5!HwhXL>a literal 0 HcmV?d00001 diff --git a/graphics/rhh_copyright/powered_by.png b/graphics/rhh_copyright/powered_by.png new file mode 100644 index 0000000000000000000000000000000000000000..b422f6e568b80accc444bed5e8a737323d80791e GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^2|&!j!VDz82tKy~QtTz3zOL*~S=gB6xTTXDn}I^& zC9V-A!TD(=<%vb94DLQIKw}ijQi~Lf^-Ky|mplX+QBvUN4wNwlvKhP@H06O5OS+@4 zBLl<6e(pbstU$g&fKQ0)vFF$R|Nnmv1g;%Bb_}E(FL0f%cLS(^G0EHA<^NLlPe*~A z5>FS$kcv4=yAN_Y8}c}BZsL!7;H++N^MIU!@0R~sQ!mwX+19MMaCpHJQ-j`vhqu(X zB&JCpFNkA2c#+-yho;4w?o$Upc7HDZ5@`%ea2>C~X*ci(~>!{F)a=d#Wzp$P!&LvYFf literal 0 HcmV?d00001 diff --git a/graphics/rhh_copyright/rhh_credits.bin b/graphics/rhh_copyright/rhh_credits.bin new file mode 100644 index 0000000000000000000000000000000000000000..629a2e9544af1ebc9589eb6c6fbe444fb87cad6e GIT binary patch literal 2048 zcmeIuS5I6)3_#&;Vd=g177{}5z1Jj!un;;V^xpsf8&@kpyT5=3t}RQ}%p6;D2;(yw zh)9ttDowf!nX+Wdkt_0^dGZw~RHRsm(%`%-L0Ck&3YDr~qNUgUZ-4mV zr(c%+w&G84x0=Mq#HYr{r#GhxD(Z98`D*>_+qy6;~S|KFh_$3dPrb>`fK e%LM+)wHvqY+oZ*&9^= literal 0 HcmV?d00001 diff --git a/graphics/rhh_copyright/rhh_credits.png b/graphics/rhh_copyright/rhh_credits.png new file mode 100644 index 0000000000000000000000000000000000000000..177022a9d607fee02efd627816b253b4fa37481a GIT binary patch literal 1703 zcmeAS@N?(olHy`uVBq!ia0vp^4M1$c!3-psDj6OEDVB6cUq=RpjeRx011B>uFf#=B zgt#7ie(nGN|Mx)P+OcEDfXWC0p!)CMzdwKe9HQ&mHIT-wTemJ)RRKlU5nV~kdtNDShr?_ml4p^A^nG<$ANZ@OtQh@R#?eWY0|BCYmx^y@S!@ zvH5flExE`0P8_?C709ajiAAs>@8*p)GkR;K75on{mfaL#j9J5VL3KLAtt74a#~6BY zycz7mm}gv4dy^x4tebs}u%UyIS>cbvMhC1^jOH%<=ew6Xp~rpe)t=Hl*EAd695;HM z_FS<-x$r=e4*RRgAFl;PvbSBh(K$uJ!Ezd-!pTnz41UMHq!=z_m>R)#Azv|YKI4JI zDVD0PS%xx)?>8Phe#)qt`+?Ym48@mB3?KB4I{>r%TdGCzRPZ@XJDlW%bF<oQ$-UB+Q!YfQg^%&XsRbUQs)rU_@jWJLa+LL@c3{mX z&JQbY9)0mIaE9NG1u@?P;*M*1Nbrl=s?T|Fy!54s(<0teM_wM5^;$12UhpZzSy%j9er}}Twp9X7?9VirS1!7Ee)R+X2bUTCGt3g2wpHR! R^aW6!_H^}gS?83{1OUen%w_-p literal 0 HcmV?d00001 diff --git a/graphics/rhh_copyright/sprites/dizzy_egg.png b/graphics/rhh_copyright/sprites/dizzy_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..cd03ffc152edbf7cad5e516d947b6ba70028f2fa GIT binary patch literal 1085 zcmV-D1j74?P)^i>gQq|9UaTM`v!0}p4ryf8KC3bpiFycTx@Z+~Yi0fCXphJ?_M3{XU)N_<;aY z`tvr3)9OlK1R>H+XD9qUMtNF*%v4E(td}9f^uJ;0fL+RZdIP=6Q~;wt*&Q_o zV1mvI&PIpO+-#)}+*<~JP1pRPmjb$Lu8oWIyIG6x^-Q#{t0Cc_|Q6+RDu3|nT`#uJs^_l)Gz_z)~t<~z)9`9;zn~-;FLT(}qk+oab2?=14x8?y+9ox96 zaLFVOt^=*>E{^~mJ|meof|bWsDTuG<+h9@<_dWhJhXqzakMU$LU=pk|*$zPr8Qi36P{(AKs*ooz@51iI3nl zeX##sA20o5rToLTe$GEWZXYe$hmm0#w2v(TAGQw*`pG^XLF;3ZhXYg}Xdey`ee6*m z8?BGBz$Mv3F!nf$^(WPf0P=0NFUz;ObKWjLBk=P00000NkvXXu0mjf Dk!;cK literal 0 HcmV?d00001 diff --git a/graphics/rhh_copyright/sprites/porygon.png b/graphics/rhh_copyright/sprites/porygon.png new file mode 100644 index 0000000000000000000000000000000000000000..020198df673f62c41868f8591cb0c0afefaed2a4 GIT binary patch literal 1423 zcmV;A1#tR_P)43#3!JsfdYXvD9z3Y+DjSU zTb`sj5RV45#E8rj&qlzdmq%;yjkd9O(p$V1*0RaSm3y*^H*UAz>AmnI93HX>q zZ%lhHWR-HpA_0FMnBEu2v`RVf&my+@e{q{~@|n$Db;>z_`4-VoTK&D~vV%*UZ!pQM z?iuus^91M1&zE-lU7chK=aW;yo`W0$!c45jqOH#nc&lB@)6f);I zKB;@sMU5IYYCL#=s~tKCFWvb<2aJ}jz}TXT31p9!fPk?B0fVklbifF09moc~qef$g z*=v*yp$Q3OKeQAW)o-qNv&k`{7y;zt*}NiPz-T9C$SD%dr~<}M!j!-YWbSPPMk-?C z8rX0EBe>EDBsD{hP6yr>y_2%XUrCu7x1j^Z#dF>tLj-{cV7ePf{PsNjj!j1KFh8}K zZy~#k!Dm$*<<@u*K)z5A(oWxt+}yh zgSKYRpH=G#%9`!zY6XK>>ITELpYYd`TEX0i zP%D@lP%D@kHEKL`Jd9!=&D~w>f4HaEZ~kwJeam=vi+yV2epBrKd%&&4ZLx19+%5Jg ziQCr~2#MR*7wm)plE>!t1%e=@$e4b8fh45jg7Xel>;oYa6Ch0OcY!yWosRkI^4dX& z-Yg69{~H$jQIt!X0Qmq3F-d@HKmd^=`uzozSDEcil^X)cD@T9`P(E;M7<`w!hD*M> d#wRQ={sB@%CTxEQK7s%M002ovPDHLkV1nt{jMV@D literal 0 HcmV?d00001 diff --git a/graphics/rhh_copyright/sprites/shiny.pal b/graphics/rhh_copyright/sprites/shiny.pal new file mode 100644 index 000000000..1950f6e0b --- /dev/null +++ b/graphics/rhh_copyright/sprites/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +199 225 209 +248 248 248 +197 197 197 +139 213 238 +89 189 230 +7 172 213 +7 131 164 +7 89 114 +246 213 246 +238 172 238 +255 97 207 +197 56 165 +123 40 88 +0 0 0 +0 0 0 +0 0 0 diff --git a/include/config.h b/include/config.h index 3a2461717..b785d5878 100644 --- a/include/config.h +++ b/include/config.h @@ -73,4 +73,7 @@ #define GEN_9 6 #define GEN_LATEST GEN_8 +// General settings +#define RHH_COPYRIGHT_INTRO TRUE // If TRUE, a custom RHH intro will play instead of the vanilla copyright screen. + #endif // GUARD_CONFIG_H diff --git a/include/rhh_copyright.h b/include/rhh_copyright.h new file mode 100644 index 000000000..5dc9576e4 --- /dev/null +++ b/include/rhh_copyright.h @@ -0,0 +1,13 @@ +#ifndef GUARD_RHH_COPYRIGHT_H +#define GUARD_RHH_COPYRIGHT_H + +#if RHH_COPYRIGHT_INTRO == TRUE +void RhhIntro_InitCopyrightBgs(); +void RhhIntro_LoadCopyrightBgGraphics(); +void RhhIntro_ShowRhhCredits(); +void RhhIntro_LoadCopyrightSpriteGraphics(); +void RhhIntro_CreateCopyRightSprites(); +void RhhIntro_DestroyRhhCreditSprites(); +#endif + +#endif /* GUARD_RHH_COPYRIGHT_H */ diff --git a/ld_script.txt b/ld_script.txt index 4c3085f59..e3f9703b4 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -343,6 +343,7 @@ SECTIONS { src/battle_transition_frontier.o(.text); src/international_string_util.o(.text); src/pokemon_debug.o(.text); + src/rhh_copyright.o(.text); } =0 script_data : @@ -709,6 +710,7 @@ SECTIONS { src/m4a_tables.o(.rodata); data/sound_data.o(.rodata); src/pokemon_debug.o(.rodata); + src/rhh_copyright.o(.rodata); } =0 song_data : diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index a57bd2995..e0d47630a 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -2917,7 +2917,7 @@ static void PlayerHandleChoosePokemon(void) *(&gBattleStruct->battlerPreventingSwitchout) = gBattleResources->bufferA[gActiveBattler][1] >> 4; *(&gBattleStruct->prevSelectedPartySlot) = gBattleResources->bufferA[gActiveBattler][2]; *(&gBattleStruct->abilityPreventingSwitchout) = (gBattleResources->bufferA[gActiveBattler][3] & 0xFF) | (gBattleResources->bufferA[gActiveBattler][7] << 8); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); gBattlerControllerFuncs[gActiveBattler] = OpenPartyMenuToChooseMon; gBattlerInMenuId = gActiveBattler; } diff --git a/src/intro.c b/src/intro.c index fd9c12467..e75d4e1bb 100644 --- a/src/intro.c +++ b/src/intro.c @@ -23,6 +23,7 @@ #include "sound.h" #include "util.h" #include "title_screen.h" +#include "rhh_copyright.h" #include "constants/rgb.h" #include "constants/battle_anim.h" @@ -1024,6 +1025,18 @@ static const struct SpritePalette sSpritePalette_RayquazaOrb[] = {}, }; +#if RHH_COPYRIGHT_INTRO == TRUE +static void VBlankCB_PretIntro() +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + ScanlineEffect_InitHBlankDmaTransfer(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); +} +#endif static void VBlankCB_Intro(void) { @@ -1080,11 +1093,14 @@ static u8 SetUpCopyrightScreen(void) CpuFill32(0, (void *)OAM, OAM_SIZE); CpuFill16(0, (void *)(PLTT + 2), PLTT_SIZE - 2); ResetPaletteFade(); +#if RHH_COPYRIGHT_INTRO == FALSE LoadCopyrightGraphics(0, 0x3800, BG_PLTT_ID(0)); +#endif ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); +#if RHH_COPYRIGHT_INTRO == FALSE BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) @@ -1094,14 +1110,59 @@ static u8 SetUpCopyrightScreen(void) EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(VBlankCB_Intro); REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON; +#else + SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) + | BGCNT_CHARBASE(0) + | BGCNT_SCREENBASE(7) + | BGCNT_16COLOR + | BGCNT_TXT256x256); + EnableInterrupts(INTR_FLAG_VBLANK); + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON; + + gMain.state++; + break; + case 1: + RhhIntro_InitCopyrightBgs(); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_WHITEALPHA); + SetVBlankCallback(VBlankCB_PretIntro); +#endif SetSerialCallback(SerialCB_CopyrightScreen); GameCubeMultiBoot_Init(&gMultibootProgramStruct); default: +#if RHH_COPYRIGHT_INTRO == TRUE + RunTasks(); + UpdatePaletteFade(); + gMain.state++; + GameCubeMultiBoot_Main(&gMultibootProgramStruct); + break; + case 30: + RhhIntro_LoadCopyrightBgGraphics(); + BeginNormalPaletteFade(0x00000001, 0, 0x10, 0, RGB_BLACK); + UpdatePaletteFade(); + GameCubeMultiBoot_Main(&gMultibootProgramStruct); + gMain.state++; + break; + case 31: + RhhIntro_LoadCopyrightSpriteGraphics(); + RhhIntro_CreateCopyRightSprites(); + UpdatePaletteFade(); + GameCubeMultiBoot_Main(&gMultibootProgramStruct); + gMain.state++; + break; + case 45: + RhhIntro_ShowRhhCredits(); + UpdatePaletteFade(); + GameCubeMultiBoot_Main(&gMultibootProgramStruct); + gMain.state++; + break; + case 253: +#else UpdatePaletteFade(); gMain.state++; GameCubeMultiBoot_Main(&gMultibootProgramStruct); break; case 140: +#endif GameCubeMultiBoot_Main(&gMultibootProgramStruct); if (gMultibootProgramStruct.gcmb_field_2 != 1) { @@ -1109,9 +1170,20 @@ static u8 SetUpCopyrightScreen(void) gMain.state++; } break; +#if RHH_COPYRIGHT_INTRO == TRUE + case 254: + if (UpdatePaletteFade()) + break; + RhhIntro_DestroyRhhCreditSprites(); + gMain.state++; + break; + + case 255: +#else case 141: if (UpdatePaletteFade()) break; +#endif CreateTask(Task_Scene1_Load, 0); SetMainCallback2(MainCB2_Intro); if (gMultibootProgramStruct.gcmb_field_2 != 0) diff --git a/src/rhh_copyright.c b/src/rhh_copyright.c new file mode 100644 index 000000000..c16cb0eda --- /dev/null +++ b/src/rhh_copyright.c @@ -0,0 +1,345 @@ +#include "global.h" +#include "bg.h" +#include "clear_save_data_menu.h" +#include "decompress.h" +#include "palette.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "gpu_regs.h" +#include "trig.h" +#include "rhh_copyright.h" +#include "constants/rgb.h" +#include "constants/songs.h" + +#if RHH_COPYRIGHT_INTRO == TRUE + +static const u32 sBgTiles_PoweredBy[] = INCBIN_U32("graphics/rhh_copyright/powered_by.4bpp.lz"); +static const u32 sBgTiles_RhhCredits[] = INCBIN_U32("graphics/rhh_copyright/rhh_credits.8bpp.lz"); +static const u32 sBgMap_PoweredBy[] = INCBIN_U32("graphics/rhh_copyright/powered_by.bin.lz"); +static const u32 sBgMap_RhhCredits[] = INCBIN_U32("graphics/rhh_copyright/rhh_credits.bin.lz"); +static const u32 sBgPal_Credits[] = INCBIN_U32("graphics/rhh_copyright/credits.gbapal.lz"); +static const u32 sSpriteTiles_DizzyEgg[] = INCBIN_U32("graphics/rhh_copyright/sprites/dizzy_egg.4bpp.lz"); +static const u32 sSpriteTiles_Porygon[] = INCBIN_U32("graphics/rhh_copyright/sprites/porygon.4bpp.lz"); +static const u16 sSpritePal_DizzyEgg[] = INCBIN_U16("graphics/rhh_copyright/sprites/dizzy_egg.gbapal"); +static const u16 sSpritePal_Porygon[] = INCBIN_U16("graphics/rhh_copyright/sprites/porygon.gbapal"); +static const u16 sSpritePal_PorygonShiny[] = INCBIN_U16("graphics/rhh_copyright/sprites/shiny.gbapal"); + + +#define TAG_DIZZY 20000 +#define TAG_PORYGON 20001 + +#define PAL_TAG_DIZZY 20000 +#define PAL_TAG_PORYGON 20001 + +#define DIZZY_POS_X 300 +#define DIZZY_POS_Y 138 +#define DIZZY_COLLISION_POS_X 172 +#define PORY_POS_X -32 +#define PORY_POS_Y 115 +#define PORYGON_COLLISION_POS_X 140 +#define PORYGON_WAIT_TIME 99 + +#define DIZZY_ANIM_SPEED 4 +#define DIZZY_STARS_SPEED 12 + +static void SpriteCallbacK_DizzyWalking(struct Sprite* sprite); +static void SpriteCallback_PorygonFlying(struct Sprite* sprite); + +static const union AnimCmd sAnimCmd_DizzyWalking[] = { + ANIMCMD_FRAME(32, DIZZY_ANIM_SPEED), + ANIMCMD_FRAME(16, DIZZY_ANIM_SPEED), + ANIMCMD_FRAME(0, DIZZY_ANIM_SPEED), + ANIMCMD_FRAME(16, DIZZY_ANIM_SPEED), + ANIMCMD_FRAME(32, DIZZY_ANIM_SPEED), + ANIMCMD_FRAME(48, DIZZY_ANIM_SPEED), + ANIMCMD_FRAME(64, DIZZY_ANIM_SPEED), + ANIMCMD_FRAME(48, DIZZY_ANIM_SPEED), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sAnimCmd_DizzyisDizzy[] = { + ANIMCMD_FRAME(80, DIZZY_STARS_SPEED), + ANIMCMD_FRAME(96, DIZZY_STARS_SPEED), + ANIMCMD_FRAME(112, DIZZY_STARS_SPEED), + ANIMCMD_FRAME(96, DIZZY_STARS_SPEED), + ANIMCMD_JUMP(0), +}; + +enum {ANIM_DIZZY_WALKING, ANIM_DIZZY_DIZZY}; + +static const union AnimCmd *const sAnimCmdTable_DizzyEgg[] = { + [ANIM_DIZZY_WALKING] = sAnimCmd_DizzyWalking, + [ANIM_DIZZY_DIZZY] = sAnimCmd_DizzyisDizzy, +}; + +static const union AnimCmd sAnimCmd_PorygonIdle[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sAnimCmd_PorygonHitted[] = { + ANIMCMD_FRAME(64, 0), + ANIMCMD_END, +}; + +static const union AnimCmd sAnimCmd_PorygonGoUp[] = { + ANIMCMD_FRAME(64, 20), + ANIMCMD_FRAME(128, 10), + ANIMCMD_END, +}; + +enum {ANIM_PORY_IDLE, ANIM_PORY_HIT, ANIM_PORY_GO_UP}; + +static const union AnimCmd *const sAnimCmdTable_Porygon[] = { + [ANIM_PORY_IDLE] = sAnimCmd_PorygonIdle, + [ANIM_PORY_HIT] = sAnimCmd_PorygonHitted, + [ANIM_PORY_GO_UP] = sAnimCmd_PorygonGoUp, +}; + +static const union AffineAnimCmd sAffineAnimCmd_PorygonScale[] = { + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const sAffineAnimCmdTable_Porygon[] = { + sAffineAnimCmd_PorygonScale, +}; + +static const struct CompressedSpriteSheet sSpriteSheet_DizzyEgg = { + .data = sSpriteTiles_DizzyEgg, + .size = 0x1000, + .tag = TAG_DIZZY, +}; + +static const struct CompressedSpriteSheet sSpriteSheet_Porygon = { + .data = sSpriteTiles_Porygon, + .size = 0x2800, + .tag = PAL_TAG_PORYGON, +}; + +static const struct SpritePalette sSpritePalette_DizzyEgg = { + .data = sSpritePal_DizzyEgg, + .tag = PAL_TAG_DIZZY, +}; + +static const struct SpritePalette sSpritePalette_Porygon = { + .data = sSpritePal_Porygon, + .tag = PAL_TAG_PORYGON, +}; + +static const struct OamData sOamData_DizzyEgg = { + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .priority = 0, +}; + +static const struct OamData sOamData_Porygon = { + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = 0, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), + .priority = 0, +}; + +static const struct SpriteTemplate sSpriteTemplate_DizzyEgg = { + .tileTag = TAG_DIZZY, + .paletteTag = PAL_TAG_DIZZY, + .oam = &sOamData_DizzyEgg, + .anims = sAnimCmdTable_DizzyEgg, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbacK_DizzyWalking, +}; + +static const struct SpriteTemplate sSpriteTemplate_Porygon = { + .tileTag = TAG_PORYGON, + .paletteTag = PAL_TAG_PORYGON, + .oam = &sOamData_Porygon, + .anims = sAnimCmdTable_Porygon, + .images = NULL, + .affineAnims = sAffineAnimCmdTable_Porygon, + .callback = SpriteCallback_PorygonFlying, +}; + +enum {BG_0, BG_1, BG_2, BG_3}; + +static const struct BgTemplate sBgTemplates_RhhCopyrightScreen[] = { + [BG_0] = { + .bg = BG_0, + .charBaseIndex = 3, + .mapBaseIndex = 24, + .screenSize = 2, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + [BG_1] = { + .bg = BG_1, + .charBaseIndex = 3, + .mapBaseIndex = 24, + .screenSize = 2, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, + [BG_2] = { + .bg = BG_2, + .charBaseIndex = 1, + .mapBaseIndex = 20, + .screenSize = 2, + .paletteMode = 1, + .priority = 0, + .baseTile = 0, + }, + [BG_3] = { + .bg = BG_3, + .charBaseIndex = 0, + .mapBaseIndex = 22, + .screenSize = 2, + .paletteMode = 0, + .priority = 0, + .baseTile = 0, + }, +}; + +static EWRAM_DATA u8 sDizzyId = 0; +static EWRAM_DATA u8 sPoryId = 0; + +static void Task_ShowRhhCredits(u8 taskId); + +void RhhIntro_InitCopyrightBgs() +{ + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBgTemplates_RhhCopyrightScreen, ARRAY_COUNT(sBgTemplates_RhhCopyrightScreen)); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_EFFECT_DARKEN); + SetGpuReg(REG_OFFSET_BLDY, 0x1F); + HideBg(0); + HideBg(1); + HideBg(2); + ShowBg(3); +} + +void RhhIntro_LoadCopyrightBgGraphics() +{ + LZ77UnCompVram(sBgTiles_PoweredBy, (void*) BG_CHAR_ADDR(sBgTemplates_RhhCopyrightScreen[BG_3].charBaseIndex)); + LZ77UnCompVram(sBgMap_PoweredBy, (u16*) BG_SCREEN_ADDR(sBgTemplates_RhhCopyrightScreen[BG_3].mapBaseIndex)); + LZ77UnCompVram(sBgTiles_RhhCredits, (void*) BG_CHAR_ADDR(sBgTemplates_RhhCopyrightScreen[BG_2].charBaseIndex)); + LZ77UnCompVram(sBgMap_RhhCredits, (u16*) BG_SCREEN_ADDR(sBgTemplates_RhhCopyrightScreen[BG_2].mapBaseIndex)); + LoadCompressedPalette(sBgPal_Credits, 0x00, 0x60); +} + +void RhhIntro_LoadCopyrightSpriteGraphics() +{ + LoadCompressedSpriteSheet(&sSpriteSheet_DizzyEgg); + LoadCompressedSpriteSheet(&sSpriteSheet_Porygon); + LoadSpritePalette(&sSpritePalette_DizzyEgg); + LoadSpritePalette(&sSpritePalette_Porygon); +} + +void RhhIntro_CreateCopyRightSprites() +{ + sDizzyId = CreateSprite(&sSpriteTemplate_DizzyEgg, 0, DIZZY_POS_Y, 0); + gSprites[sDizzyId].x2 = DIZZY_POS_X; + + sPoryId = CreateSprite(&sSpriteTemplate_Porygon, 0, PORY_POS_Y, 0); + gSprites[sPoryId].x2 = PORY_POS_X; +} + +void RhhIntro_ShowRhhCredits() +{ + ShowBg(2); + CreateTask(Task_ShowRhhCredits, 0); +} + +static void Task_ShowRhhCredits(u8 taskId) +{ + if (GetGpuReg(REG_OFFSET_BLDY) != 0) + { + SetGpuReg(REG_OFFSET_BLDY, GetGpuReg(REG_OFFSET_BLDY) - 1); + } + else + { + SetGpuReg(REG_OFFSET_BLDCNT, 0); + DestroyTask(taskId); + } +} + +#define sTimer data[0] +static void SpriteCallbacK_DizzyWalking(struct Sprite* sprite) +{ + sprite->x2--; + + if (sprite->x2 <= DIZZY_COLLISION_POS_X) + { + StartSpriteAnim(sprite, ANIM_DIZZY_DIZZY); + sprite->callback = SpriteCallbackDummy; + } + + if (sprite->sTimer % 16 == 0 && sprite->sTimer / 16 > 2) + PlaySE(SE_BIKE_HOP); + + sprite->sTimer++; +} + + +static void SpriteCallback_PorygonHit(struct Sprite* sprite) +{ + sprite->x2-=2; + sprite ->y2 = Sin2(180 + sprite->sTimer * 4) / 128; + + if (sprite->sTimer >= 48) + { + StartSpriteAnim(sprite, ANIM_PORY_GO_UP); + sprite->callback = SpriteCallbackDummy; + } + + if (sprite->sTimer % 8 == 0) + { + if (sprite->sTimer % 16 == 0) + LoadPalette(sSpritePal_PorygonShiny, 0x10 * (16 + sprite->oam.paletteNum), 0x20); + else + LoadPalette(sSpritePal_Porygon, 0x10 * (16 + sprite->oam.paletteNum), 0x20); + } + + sprite->sTimer++; +} + +static void SpriteCallback_PorygonFlying(struct Sprite* sprite) +{ + if (sprite->sTimer >= PORYGON_WAIT_TIME) + { + sprite->x2 += 6; + + if (sprite->sTimer % 32 >= 16) + sprite->y2--; + else + sprite->y2++; + + if (sprite->x2 >= PORYGON_COLLISION_POS_X) + { + StartSpriteAnim(sprite, ANIM_PORY_HIT); + sprite->callback = SpriteCallback_PorygonHit; + sprite->sTimer = 0; + PlaySE(SE_M_DOUBLE_SLAP); + PlayCryInternal(SPECIES_PORYGON, 0, 120, 10, 0); + } + } + sprite->sTimer++; +} +#undef sTimer + +void RhhIntro_DestroyRhhCreditSprites() +{ + DestroySpriteAndFreeResources(&gSprites[sDizzyId]); + DestroySpriteAndFreeResources(&gSprites[sPoryId]); +} + +#endif //RHH_COPYRIGHT_INTRO diff --git a/sym_ewram.txt b/sym_ewram.txt index 914501a08..4611fa241 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -149,3 +149,4 @@ .include "src/trainer_hill.o" .include "src/rayquaza_scene.o" .include "src/debug.o" + .include "src/rhh_copyright.o" From 0048e59e0599e4a7f8f2a3e0632a422011dd1efc Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 8 Feb 2023 22:08:12 +0100 Subject: [PATCH 051/125] Fix SpeciesInfo struct offsets --- include/pokemon.h | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/include/pokemon.h b/include/pokemon.h index 89910d6ee..05b9d1ac9 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -294,7 +294,7 @@ struct BattlePokemon /*0x59*/ u8 metLevel; }; -struct SpeciesInfo +struct SpeciesInfo /*0x24*/ { /* 0x00 */ u8 baseHP; /* 0x01 */ u8 baseAttack; @@ -304,25 +304,26 @@ struct SpeciesInfo /* 0x05 */ u8 baseSpDefense; /* 0x06 */ u8 types[2]; /* 0x08 */ u8 catchRate; - /* 0x09 */ u16 expYield; - /* 0x0A */ u16 evYield_HP:2; - /* 0x0A */ u16 evYield_Attack:2; - /* 0x0A */ u16 evYield_Defense:2; - /* 0x0A */ u16 evYield_Speed:2; - /* 0x0B */ u16 evYield_SpAttack:2; - /* 0x0B */ u16 evYield_SpDefense:2; - /* 0x0C */ u16 itemCommon; - /* 0x0E */ u16 itemRare; - /* 0x10 */ u8 genderRatio; - /* 0x11 */ u8 eggCycles; - /* 0x12 */ u8 friendship; - /* 0x13 */ u8 growthRate; - /* 0x14 */ u8 eggGroups[2]; - /* 0x16 */ u16 abilities[NUM_ABILITY_SLOTS]; - /* 0x19 */ u8 safariZoneFleeRate; - /* 0x1A */ u8 bodyColor : 7; + /* 0x09 padding */ + /* 0x0A */ u16 expYield; // expYield was changed from u8 to u16 for the new Exp System. + /* 0x0C */ u16 evYield_HP:2; + u16 evYield_Attack:2; + u16 evYield_Defense:2; + u16 evYield_Speed:2; + /* 0x0D */ u16 evYield_SpAttack:2; + u16 evYield_SpDefense:2; + /* 0x0E */ u16 itemCommon; + /* 0x10 */ u16 itemRare; + /* 0x12 */ u8 genderRatio; + /* 0x13 */ u8 eggCycles; + /* 0x14 */ u8 friendship; + /* 0x15 */ u8 growthRate; + /* 0x16 */ u8 eggGroups[2]; + /* 0x18 */ u16 abilities[NUM_ABILITY_SLOTS]; // 3 abilities, no longer u8 because we have over 255 abilities now. + /* 0x1E */ u8 safariZoneFleeRate; + /* 0x1F */ u8 bodyColor : 7; u8 noFlip : 1; - /* 0x1B */ u16 flags; + /* 0x20 */ u16 flags; }; struct BattleMove From 9f7267e48d7e4274cb692a7398e64ba7adac5073 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Thu, 9 Feb 2023 11:29:29 +0100 Subject: [PATCH 052/125] Fix Giga Impact on contests. --- data/battle_anim_scripts.s | 1 - .../backgrounds/giga_impact_contest.bin | 6 +++--- .../backgrounds/giga_impact_contest.png | Bin 0 -> 1251 bytes include/graphics.h | 1 + src/data/battle_anim.h | 2 +- src/graphics.c | 1 + 6 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 graphics/battle_anims/backgrounds/giga_impact_contest.png diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 9080c075e..f97853d84 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -2644,7 +2644,6 @@ GigaImpactContinuity: delay 11 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 26, 0, 0, 5 delay 6 - waitbgfadeout createsprite gBasicHitSplatSpriteTemplate, 4, 4, -10, 0, 1, 0 playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 1 diff --git a/graphics/battle_anims/backgrounds/giga_impact_contest.bin b/graphics/battle_anims/backgrounds/giga_impact_contest.bin index 03c709bb9..ce383cf24 100644 --- a/graphics/battle_anims/backgrounds/giga_impact_contest.bin +++ b/graphics/battle_anims/backgrounds/giga_impact_contest.bin @@ -1,3 +1,3 @@ -ˆ$‡$†$…$„$ƒ$‚$$€$€ ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž D!E!F!G!H!I!@!˜$—$–$•$”$“$’$‘$$ ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ ú û ü ý þ ÿ ò ¨$§$¦$¥$¤$£$¢$¡$ $  ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ -! ! ! !!!!¸$·$¶$µ$´$³$²$±$°$° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ !!!!!!!È$Ç$Æ$Å$Ä$Ã$Â$Á$À$À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï *!+!,!-!.!/!"!Ø$×$Ö$Õ$Ô$Ó$Ò$Ñ$Ð$Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß :!;!!?!2!è$ç$æ$å$ä$ã$â$á$à$à á â ã ä å æ ç è é ê ë ì í î ï J!K!L!M!N!O!B!è,ç,æ,å,ä,ã,â,á,à,à(á(â(ã(ä(å(æ(ç(è(é(ê(ë(ì(í(î(ï(J)K)L)M)N)O)B)Ø,×,Ö,Õ,Ô,Ó,Ò,Ñ,Ð,Ð(Ñ(Ò(Ó(Ô(Õ(Ö(×(Ø(Ù(Ú(Û(Ü(Ý(Þ(ß(:);)<)=)>)?)2)È,Ç,Æ,Å,Ä,Ã,Â,Á,À,À(Á(Â(Ã(Ä(Å(Æ(Ç(È(É(Ê(Ë(Ì(Í(Î(Ï(*)+),)-).)/)")¸,·,¶,µ,´,³,²,±,°,°(±(²(³(´(µ(¶(·(¸(¹(º(»(¼(½(¾(¿()))))))¨,§,¦,¥,¤,£,¢,¡, , (¡(¢(£(¤(¥(¦(§(¨(©(ª(«(¬(­(®(¯( -) ) ) ))))˜,—,–,•,”,“,’,‘,,(‘(’(“(”(•(–(—(˜(™(š(›(œ((ž(Ÿ(ú(û(ü(ý(þ(ÿ(ò(ˆ,‡,†,…,„,ƒ,‚,,€,€((‚(ƒ(„(…(†(‡(ˆ(‰(Š(‹(Œ((Ž((D)E)F)G)H)I)@) \ No newline at end of file +         $$ $$$$$ +             $$ $$$$$        ! " # $ % & ' (  ) * + , ,$+$*$)$ ($'$&$%$- . / 0 1 2 3 4 5 6 7 8 9 : ; < = > >$=$<$;$:$9$8$7$6$ ? @ A B C D E E F F$E E D$C$B$A$@$?$G H I J K L M N O P Q E E E E Q$P$O$N$M$L$K$R S T U V W X Y Z [ \ ] ^ _ ` a b E E E E E E E E b$a$`$_$^$ c d e f g h i j k ^(_(`(a(b(E E E E E E E E b,a,`,_,^, c(d(e(f(g(h(i(j(k( K(L(M(N(O(P(Q(E E E E Q,P,O,N,M,L,K,R(S(T( U(V(W(X(Y(Z([(\(](?(@(A(B(C(D(E E F(F,E E D,C,B,A,@,?,G(H(I(J( 6(7(8(9(:(;(<(=(>(>,=,<,;,:,9,8,7,6, %(&('((( )(*(+(,(,,+,*,), (,',&,%,-(.( /(0(1( 2(3(4(5( ((((( ((,, ,,,,, ((( (((( ( !("(#($( ((((( ((,, ,,,,, +( ( ( (( (( \ No newline at end of file diff --git a/graphics/battle_anims/backgrounds/giga_impact_contest.png b/graphics/battle_anims/backgrounds/giga_impact_contest.png new file mode 100644 index 0000000000000000000000000000000000000000..80698b8d8b0fdcfd59d445b67b55efd8025fa751 GIT binary patch literal 1251 zcmV<91RVQ`P)Px#Fi=cXMF0Q*@QAqRXsCz?DEJs?*dSowNQj^SFxUV<$S7FA064H9fUp=ym=HL~ zFi_YypqBQ*z5oCOVM#X5n|(h|(ACl>@q_qLG1#{4z=!ht7v`F&29OBYe=2%Na8x1+0PW!wfTKnL zB7vI-^6rvBe%=|t_7?!>mH@`FAXK>nUBL7U0LH*Q25_S>02AOd6VxDp0Dv(#o&iki z6M*?RfxtBvoI?m&44wc;@)JNLnDj9XfO)`eGzK$(bK~K6-}RgG zy9+c;0+>TE>EDN7v3*nJ8^Fi$1IW<^rCDf;_DQSv{Jof)xOfr(Ja^UjX=?W82}qfbJjD05AzO1EAagqL05*gM1-q2>axKng*vYNx%R= zbpKksggafTIWQ2M;B?OiuM|Xku*5@SgKI(ffCufL#V6EQ8qkW*1ME)^2r|I2HHF`FJ zoFvW{ljYX{Og-&CeRapSur~rXbqPRyYbO9V$}a#0^&@rZoZ0&>5s)G|nhO$uMgSY# zG0eQ7Cf^J&svqT$D6Lf>(5z3O3zBAz0mL`S9kA%OBfun&-zx`nxB*z^Lik9NLZB0(>j=yNHUBkK{TvesKoUsOVKJm+i#2&Nf-Sx%0Rs5w z0tC=Az>UNg;}@kuu#sNuYXK$#TLIvg0A`vK*qmD0aoxD9vi7F{hEEDeun`wD0tCm#Pwps;UzZ)O`&J3!q#0%K5l{{T$bm7YSeKH1Wn5pQJ3irYb_#_0L5x^24 zgv<4L96Q4`jdXm?1TdVbC4U_faQ$XX`y$guvdb8`JGDKwHH8ph`4$2%MUn!H;zgeT zNC<-m#?cpBSR+^g2;z7h(ahjlWq}eVZ>%403&FwzK~#s!2msSL(fq3Bn@8ot)1$Qx zZn8Sc8*`o)ED?N}cT%oV4r(ONT=yoHXvh<7; zcJ@v^&Jbk2$Or0lnsbk<98W?(_1z2gC?{S)I|%{U2LN(N*{1(W{HYZTN>BkTXbSL5 zy~OCP`tU~|We3aM`=NHTNAmsK^v^yM!2V5Mu77apwX$Ql6x?~>UOyZQ{WZZbP>)BS zVr`0aAVGW4{BHE4xcX+jSphvG>F&bvcK|-eK9~3%0Q12A0Pz0<;2%7;iBYWO5gq^l N002ovPDHLkV1hd`D|-L{ literal 0 HcmV?d00001 diff --git a/include/graphics.h b/include/graphics.h index e5a47ca88..55174442c 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -9981,6 +9981,7 @@ extern const u32 gBattleAnimBgTilemap_GigaImpactPlayer[]; extern const u32 gBattleAnimBgTilemap_GigaImpactOpponent[]; extern const u32 gBattleAnimBgTilemap_GigaImpactContest[]; extern const u32 gBattleAnimBgImage_GigaImpact[]; +extern const u32 gBattleAnimBgImage_GigaImpactContest[]; extern const u32 gBattleAnimBgPalette_GigaImpact[]; extern const u32 gBattleAnimBgImage_SpacialRend[]; extern const u32 gBattleAnimBgPalette_SpacialRend[]; diff --git a/src/data/battle_anim.h b/src/data/battle_anim.h index 5be53fe66..b1f158310 100644 --- a/src/data/battle_anim.h +++ b/src/data/battle_anim.h @@ -1937,7 +1937,7 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = [BG_MAGMA_STORM] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_MagmaStorm, gBattleAnimBgTilemap_InAir}, [BG_GIGA_IMPACT_OPPONENT] = {gBattleAnimBgImage_GigaImpact, gBattleAnimBgPalette_GigaImpact, gBattleAnimBgTilemap_GigaImpactOpponent}, [BG_GIGA_IMPACT_PLAYER] = {gBattleAnimBgImage_GigaImpact, gBattleAnimBgPalette_GigaImpact, gBattleAnimBgTilemap_GigaImpactPlayer}, - [BG_GIGA_IMPACT_CONTEST] = {gBattleAnimBgImage_GigaImpact, gBattleAnimBgPalette_GigaImpact, gBattleAnimBgTilemap_GigaImpactContest}, + [BG_GIGA_IMPACT_CONTEST] = {gBattleAnimBgImage_GigaImpactContest, gBattleAnimBgPalette_GigaImpact, gBattleAnimBgTilemap_GigaImpactContest}, [BG_TRICK_ROOM] = {gBattleAnimBgImage_TrickRoom, gBattleAnimBgPalette_TrickRoom, gBattleAnimBgTilemap_TrickRoom}, [BG_ROCK_WRECKER] = {gBattleAnimBgImage_Hurricane, gBattleAnimBgPalette_RockWrecker, gBattleAnimBgTilemap_Hurricane}, [BG_SPACIAL_REND_ON_OPPONENT] = {gBattleAnimBgImage_SpacialRend, gBattleAnimBgPalette_SpacialRend, gBattleAnimBgTilemap_GigaImpactOpponent}, diff --git a/src/graphics.c b/src/graphics.c index c8040a827..f1ffeb56c 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1381,6 +1381,7 @@ const u32 gBattleAnimBgTilemap_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_ const u32 gBattleAnimBgTilemap_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact_opponent.bin.lz"); const u32 gBattleAnimBgTilemap_GigaImpactContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact_contest.bin.lz"); const u32 gBattleAnimBgImage_GigaImpact[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact.4bpp.lz"); +const u32 gBattleAnimBgImage_GigaImpactContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact_contest.4bpp.lz"); const u32 gBattleAnimBgPalette_GigaImpact[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact.gbapal.lz"); const u32 gBattleAnimBgImage_SpacialRend[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend.4bpp.lz"); From 513ecd50babab17346208ab409df4f7da140bfbc Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 9 Feb 2023 13:24:23 +0100 Subject: [PATCH 053/125] Fix Spacial Rend animation --- data/battle_anim_scripts.s | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 9080c075e..d4053adec 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -4333,12 +4333,12 @@ Move_SPACIAL_REND: waitbgfadein loopsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET, 3, 5 createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, SOUND_PAN_ATTACKER, 0xb0, 0x28 - createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0xff40, 0xf0, 0x28 - createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, SOUND_PAN_ATTACKER, 0xff60, 0x28 - createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0xff40, 0xff90, 0x28 - createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0xa0, 0x30, 0x28 - createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0xff20, 0xffe0, 0x28 - createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 5, 0, 10, 0x70, 0xff80, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, 0xff40, 0xf0, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, SOUND_PAN_ATTACKER, 0xff60, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, 0xff40, 0xff90, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, 0xa0, 0x30, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, 0xff20, 0xffe0, 0x28 + createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, 0x70, 0xff80, 0x28 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 waitforvisualfinish restorebg From 4bcbb7c9e1a5bb66ad6450fb05fd740a5337fdb7 Mon Sep 17 00:00:00 2001 From: sbird Date: Wed, 8 Feb 2023 22:32:54 +0100 Subject: [PATCH 054/125] [intro] refactor expansion intro --- .../credits.pal | 2 +- .../powered_by.bin | Bin .../powered_by.png | Bin .../rhh_credits.bin | Bin .../rhh_credits.png | Bin .../sprites/dizzy_egg.png | Bin .../sprites/porygon.png | Bin .../sprites/shiny.pal | 0 include/config.h | 2 +- include/expansion_intro.h | 9 + include/intro.h | 3 + include/rhh_copyright.h | 13 - ld_script.txt | 4 +- src/{rhh_copyright.c => expansion_intro.c} | 254 +++++++++++------- src/intro.c | 83 +----- sym_ewram.txt | 1 - 16 files changed, 178 insertions(+), 193 deletions(-) rename graphics/{rhh_copyright => expansion_intro}/credits.pal (99%) rename graphics/{rhh_copyright => expansion_intro}/powered_by.bin (100%) rename graphics/{rhh_copyright => expansion_intro}/powered_by.png (100%) rename graphics/{rhh_copyright => expansion_intro}/rhh_credits.bin (100%) rename graphics/{rhh_copyright => expansion_intro}/rhh_credits.png (100%) rename graphics/{rhh_copyright => expansion_intro}/sprites/dizzy_egg.png (100%) rename graphics/{rhh_copyright => expansion_intro}/sprites/porygon.png (100%) rename graphics/{rhh_copyright => expansion_intro}/sprites/shiny.pal (100%) create mode 100644 include/expansion_intro.h delete mode 100644 include/rhh_copyright.h rename src/{rhh_copyright.c => expansion_intro.c} (57%) diff --git a/graphics/rhh_copyright/credits.pal b/graphics/expansion_intro/credits.pal similarity index 99% rename from graphics/rhh_copyright/credits.pal rename to graphics/expansion_intro/credits.pal index cdff46971..5f6c06d72 100644 --- a/graphics/rhh_copyright/credits.pal +++ b/graphics/expansion_intro/credits.pal @@ -1,7 +1,7 @@ JASC-PAL 0100 256 -198 231 214 +0 0 0 255 255 255 222 222 222 222 222 214 diff --git a/graphics/rhh_copyright/powered_by.bin b/graphics/expansion_intro/powered_by.bin similarity index 100% rename from graphics/rhh_copyright/powered_by.bin rename to graphics/expansion_intro/powered_by.bin diff --git a/graphics/rhh_copyright/powered_by.png b/graphics/expansion_intro/powered_by.png similarity index 100% rename from graphics/rhh_copyright/powered_by.png rename to graphics/expansion_intro/powered_by.png diff --git a/graphics/rhh_copyright/rhh_credits.bin b/graphics/expansion_intro/rhh_credits.bin similarity index 100% rename from graphics/rhh_copyright/rhh_credits.bin rename to graphics/expansion_intro/rhh_credits.bin diff --git a/graphics/rhh_copyright/rhh_credits.png b/graphics/expansion_intro/rhh_credits.png similarity index 100% rename from graphics/rhh_copyright/rhh_credits.png rename to graphics/expansion_intro/rhh_credits.png diff --git a/graphics/rhh_copyright/sprites/dizzy_egg.png b/graphics/expansion_intro/sprites/dizzy_egg.png similarity index 100% rename from graphics/rhh_copyright/sprites/dizzy_egg.png rename to graphics/expansion_intro/sprites/dizzy_egg.png diff --git a/graphics/rhh_copyright/sprites/porygon.png b/graphics/expansion_intro/sprites/porygon.png similarity index 100% rename from graphics/rhh_copyright/sprites/porygon.png rename to graphics/expansion_intro/sprites/porygon.png diff --git a/graphics/rhh_copyright/sprites/shiny.pal b/graphics/expansion_intro/sprites/shiny.pal similarity index 100% rename from graphics/rhh_copyright/sprites/shiny.pal rename to graphics/expansion_intro/sprites/shiny.pal diff --git a/include/config.h b/include/config.h index b785d5878..2ad84f29c 100644 --- a/include/config.h +++ b/include/config.h @@ -74,6 +74,6 @@ #define GEN_LATEST GEN_8 // General settings -#define RHH_COPYRIGHT_INTRO TRUE // If TRUE, a custom RHH intro will play instead of the vanilla copyright screen. +#define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen. #endif // GUARD_CONFIG_H diff --git a/include/expansion_intro.h b/include/expansion_intro.h new file mode 100644 index 000000000..7d8d31677 --- /dev/null +++ b/include/expansion_intro.h @@ -0,0 +1,9 @@ +#ifndef GUARD_EXPANSION_INTRO_H +#define GUARD_EXPANSION_INTRO_H + +#if EXPANSION_INTRO == TRUE +void CB2_ExpansionIntro(void); +void Task_HandleExpansionIntro(u8 taskId); +#endif + +#endif /* GUARD_EXPANSION_INTRO_H */ diff --git a/include/intro.h b/include/intro.h index 8ba030a28..1c89c6595 100644 --- a/include/intro.h +++ b/include/intro.h @@ -9,5 +9,8 @@ void CB2_InitCopyrightScreenAfterBootup(void); void CB2_InitCopyrightScreenAfterTitleScreen(void); void PanFadeAndZoomScreen(u16, u16, u16, u16); +void MainCB2_Intro(void); +void Task_Scene1_Load(u8); + #endif // GUARD_INTRO_H diff --git a/include/rhh_copyright.h b/include/rhh_copyright.h deleted file mode 100644 index 5dc9576e4..000000000 --- a/include/rhh_copyright.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef GUARD_RHH_COPYRIGHT_H -#define GUARD_RHH_COPYRIGHT_H - -#if RHH_COPYRIGHT_INTRO == TRUE -void RhhIntro_InitCopyrightBgs(); -void RhhIntro_LoadCopyrightBgGraphics(); -void RhhIntro_ShowRhhCredits(); -void RhhIntro_LoadCopyrightSpriteGraphics(); -void RhhIntro_CreateCopyRightSprites(); -void RhhIntro_DestroyRhhCreditSprites(); -#endif - -#endif /* GUARD_RHH_COPYRIGHT_H */ diff --git a/ld_script.txt b/ld_script.txt index e3f9703b4..dcce51a0f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -343,7 +343,7 @@ SECTIONS { src/battle_transition_frontier.o(.text); src/international_string_util.o(.text); src/pokemon_debug.o(.text); - src/rhh_copyright.o(.text); + src/expansion_intro.o(.text); } =0 script_data : @@ -710,7 +710,7 @@ SECTIONS { src/m4a_tables.o(.rodata); data/sound_data.o(.rodata); src/pokemon_debug.o(.rodata); - src/rhh_copyright.o(.rodata); + src/expansion_intro.o(.rodata); } =0 song_data : diff --git a/src/rhh_copyright.c b/src/expansion_intro.c similarity index 57% rename from src/rhh_copyright.c rename to src/expansion_intro.c index c16cb0eda..63bcce4e9 100644 --- a/src/rhh_copyright.c +++ b/src/expansion_intro.c @@ -8,23 +8,13 @@ #include "task.h" #include "gpu_regs.h" #include "trig.h" -#include "rhh_copyright.h" +#include "main.h" +#include "intro.h" +#include "expansion_intro.h" #include "constants/rgb.h" #include "constants/songs.h" -#if RHH_COPYRIGHT_INTRO == TRUE - -static const u32 sBgTiles_PoweredBy[] = INCBIN_U32("graphics/rhh_copyright/powered_by.4bpp.lz"); -static const u32 sBgTiles_RhhCredits[] = INCBIN_U32("graphics/rhh_copyright/rhh_credits.8bpp.lz"); -static const u32 sBgMap_PoweredBy[] = INCBIN_U32("graphics/rhh_copyright/powered_by.bin.lz"); -static const u32 sBgMap_RhhCredits[] = INCBIN_U32("graphics/rhh_copyright/rhh_credits.bin.lz"); -static const u32 sBgPal_Credits[] = INCBIN_U32("graphics/rhh_copyright/credits.gbapal.lz"); -static const u32 sSpriteTiles_DizzyEgg[] = INCBIN_U32("graphics/rhh_copyright/sprites/dizzy_egg.4bpp.lz"); -static const u32 sSpriteTiles_Porygon[] = INCBIN_U32("graphics/rhh_copyright/sprites/porygon.4bpp.lz"); -static const u16 sSpritePal_DizzyEgg[] = INCBIN_U16("graphics/rhh_copyright/sprites/dizzy_egg.gbapal"); -static const u16 sSpritePal_Porygon[] = INCBIN_U16("graphics/rhh_copyright/sprites/porygon.gbapal"); -static const u16 sSpritePal_PorygonShiny[] = INCBIN_U16("graphics/rhh_copyright/sprites/shiny.gbapal"); - +#if EXPANSION_INTRO == TRUE #define TAG_DIZZY 20000 #define TAG_PORYGON 20001 @@ -43,10 +33,47 @@ static const u16 sSpritePal_PorygonShiny[] = INCBIN_U16("graphics/rhh_copyright/ #define DIZZY_ANIM_SPEED 4 #define DIZZY_STARS_SPEED 12 -static void SpriteCallbacK_DizzyWalking(struct Sprite* sprite); -static void SpriteCallback_PorygonFlying(struct Sprite* sprite); +enum +{ + EXPANSION_INTRO_BG2, + EXPANSION_INTRO_BG3 +}; -static const union AnimCmd sAnimCmd_DizzyWalking[] = { +enum +{ + ANIM_PORY_IDLE, + ANIM_PORY_HIT, + ANIM_PORY_GO_UP +}; + +enum +{ + ANIM_DIZZY_WALKING, + ANIM_DIZZY_DIZZY +}; + +static const u32 sBgTiles_PoweredBy[] = INCBIN_U32("graphics/expansion_intro/powered_by.4bpp.lz"); +static const u32 sBgTiles_RhhCredits[] = INCBIN_U32("graphics/expansion_intro/rhh_credits.8bpp.lz"); +static const u32 sBgMap_PoweredBy[] = INCBIN_U32("graphics/expansion_intro/powered_by.bin.lz"); +static const u32 sBgMap_RhhCredits[] = INCBIN_U32("graphics/expansion_intro/rhh_credits.bin.lz"); +static const u32 sBgPal_Credits[] = INCBIN_U32("graphics/expansion_intro/credits.gbapal.lz"); +static const u32 sSpriteTiles_DizzyEgg[] = INCBIN_U32("graphics/expansion_intro/sprites/dizzy_egg.4bpp.lz"); +static const u32 sSpriteTiles_Porygon[] = INCBIN_U32("graphics/expansion_intro/sprites/porygon.4bpp.lz"); +static const u16 sSpritePal_DizzyEgg[] = INCBIN_U16("graphics/expansion_intro/sprites/dizzy_egg.gbapal"); +static const u16 sSpritePal_Porygon[] = INCBIN_U16("graphics/expansion_intro/sprites/porygon.gbapal"); +static const u16 sSpritePal_PorygonShiny[] = INCBIN_U16("graphics/expansion_intro/sprites/shiny.gbapal"); + +static void SpriteCallback_DizzyWalking(struct Sprite* sprite); +static void SpriteCallback_PorygonFlying(struct Sprite* sprite); +static void Task_ExpansionIntro_HandleBlend(u8 taskId); +static void VBlankCB_ExpansionIntro(void); +static void ExpansionIntro_InitBgs(); +static void ExpansionIntro_StartBlend(); +static void ExpansionIntro_LoadGraphics(); +static void ExpansionIntro_CreateSprites(); + +static const union AnimCmd sAnimCmd_DizzyWalking[] = +{ ANIMCMD_FRAME(32, DIZZY_ANIM_SPEED), ANIMCMD_FRAME(16, DIZZY_ANIM_SPEED), ANIMCMD_FRAME(0, DIZZY_ANIM_SPEED), @@ -58,7 +85,8 @@ static const union AnimCmd sAnimCmd_DizzyWalking[] = { ANIMCMD_JUMP(0), }; -static const union AnimCmd sAnimCmd_DizzyisDizzy[] = { +static const union AnimCmd sAnimCmd_DizzyisDizzy[] = +{ ANIMCMD_FRAME(80, DIZZY_STARS_SPEED), ANIMCMD_FRAME(96, DIZZY_STARS_SPEED), ANIMCMD_FRAME(112, DIZZY_STARS_SPEED), @@ -66,69 +94,77 @@ static const union AnimCmd sAnimCmd_DizzyisDizzy[] = { ANIMCMD_JUMP(0), }; -enum {ANIM_DIZZY_WALKING, ANIM_DIZZY_DIZZY}; - -static const union AnimCmd *const sAnimCmdTable_DizzyEgg[] = { +static const union AnimCmd *const sAnimCmdTable_DizzyEgg[] = +{ [ANIM_DIZZY_WALKING] = sAnimCmd_DizzyWalking, [ANIM_DIZZY_DIZZY] = sAnimCmd_DizzyisDizzy, }; -static const union AnimCmd sAnimCmd_PorygonIdle[] = { +static const union AnimCmd sAnimCmd_PorygonIdle[] = +{ ANIMCMD_FRAME(0, 0), ANIMCMD_END, }; -static const union AnimCmd sAnimCmd_PorygonHitted[] = { +static const union AnimCmd sAnimCmd_PorygonHitted[] = +{ ANIMCMD_FRAME(64, 0), ANIMCMD_END, }; -static const union AnimCmd sAnimCmd_PorygonGoUp[] = { +static const union AnimCmd sAnimCmd_PorygonGoUp[] = +{ ANIMCMD_FRAME(64, 20), ANIMCMD_FRAME(128, 10), ANIMCMD_END, }; -enum {ANIM_PORY_IDLE, ANIM_PORY_HIT, ANIM_PORY_GO_UP}; - -static const union AnimCmd *const sAnimCmdTable_Porygon[] = { +static const union AnimCmd *const sAnimCmdTable_Porygon[] = +{ [ANIM_PORY_IDLE] = sAnimCmd_PorygonIdle, [ANIM_PORY_HIT] = sAnimCmd_PorygonHitted, [ANIM_PORY_GO_UP] = sAnimCmd_PorygonGoUp, }; -static const union AffineAnimCmd sAffineAnimCmd_PorygonScale[] = { +static const union AffineAnimCmd sAffineAnimCmd_PorygonScale[] = +{ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sAffineAnimCmdTable_Porygon[] = { +static const union AffineAnimCmd *const sAffineAnimCmdTable_Porygon[] = +{ sAffineAnimCmd_PorygonScale, }; -static const struct CompressedSpriteSheet sSpriteSheet_DizzyEgg = { +static const struct CompressedSpriteSheet sSpriteSheet_DizzyEgg = +{ .data = sSpriteTiles_DizzyEgg, .size = 0x1000, .tag = TAG_DIZZY, }; -static const struct CompressedSpriteSheet sSpriteSheet_Porygon = { +static const struct CompressedSpriteSheet sSpriteSheet_Porygon = +{ .data = sSpriteTiles_Porygon, .size = 0x2800, .tag = PAL_TAG_PORYGON, }; -static const struct SpritePalette sSpritePalette_DizzyEgg = { +static const struct SpritePalette sSpritePalette_DizzyEgg = +{ .data = sSpritePal_DizzyEgg, .tag = PAL_TAG_DIZZY, }; -static const struct SpritePalette sSpritePalette_Porygon = { +static const struct SpritePalette sSpritePalette_Porygon = +{ .data = sSpritePal_Porygon, .tag = PAL_TAG_PORYGON, }; -static const struct OamData sOamData_DizzyEgg = { +static const struct OamData sOamData_DizzyEgg = +{ .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -138,7 +174,8 @@ static const struct OamData sOamData_DizzyEgg = { .priority = 0, }; -static const struct OamData sOamData_Porygon = { +static const struct OamData sOamData_Porygon = +{ .affineMode = ST_OAM_AFFINE_NORMAL, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = 0, @@ -148,17 +185,19 @@ static const struct OamData sOamData_Porygon = { .priority = 0, }; -static const struct SpriteTemplate sSpriteTemplate_DizzyEgg = { +static const struct SpriteTemplate sSpriteTemplate_DizzyEgg = +{ .tileTag = TAG_DIZZY, .paletteTag = PAL_TAG_DIZZY, .oam = &sOamData_DizzyEgg, .anims = sAnimCmdTable_DizzyEgg, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbacK_DizzyWalking, + .callback = SpriteCallback_DizzyWalking, }; -static const struct SpriteTemplate sSpriteTemplate_Porygon = { +static const struct SpriteTemplate sSpriteTemplate_Porygon = +{ .tileTag = TAG_PORYGON, .paletteTag = PAL_TAG_PORYGON, .oam = &sOamData_Porygon, @@ -168,53 +207,75 @@ static const struct SpriteTemplate sSpriteTemplate_Porygon = { .callback = SpriteCallback_PorygonFlying, }; -enum {BG_0, BG_1, BG_2, BG_3}; - -static const struct BgTemplate sBgTemplates_RhhCopyrightScreen[] = { - [BG_0] = { - .bg = BG_0, - .charBaseIndex = 3, - .mapBaseIndex = 24, - .screenSize = 2, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, - }, - [BG_1] = { - .bg = BG_1, - .charBaseIndex = 3, - .mapBaseIndex = 24, - .screenSize = 2, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, - }, - [BG_2] = { - .bg = BG_2, +static const struct BgTemplate sBgTemplates_RhhCopyrightScreen[] = +{ + [EXPANSION_INTRO_BG2] = { + .bg = 2, .charBaseIndex = 1, .mapBaseIndex = 20, .screenSize = 2, - .paletteMode = 1, - .priority = 0, - .baseTile = 0, + .paletteMode = 1 }, - [BG_3] = { - .bg = BG_3, - .charBaseIndex = 0, + [EXPANSION_INTRO_BG3] = { + .bg = 3, .mapBaseIndex = 22, - .screenSize = 2, - .paletteMode = 0, - .priority = 0, - .baseTile = 0, + .screenSize = 2 }, }; -static EWRAM_DATA u8 sDizzyId = 0; -static EWRAM_DATA u8 sPoryId = 0; +void CB2_ExpansionIntro(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} -static void Task_ShowRhhCredits(u8 taskId); +#define tState gTasks[taskId].data[0] +#define tFrameCounter gTasks[taskId].data[1] +void Task_HandleExpansionIntro(u8 taskId) +{ + switch (tState) + { + case 0: + SetVBlankCallback(VBlankCB_ExpansionIntro); + ExpansionIntro_InitBgs(); + ExpansionIntro_LoadGraphics(); + CpuFastFill16(RGB_BLACK, gPlttBufferFaded, 32); + ShowBg(3); + BeginNormalPaletteFade(1, 0, 16, 0, RGB_BLACK); + ExpansionIntro_StartBlend(); + ExpansionIntro_CreateSprites(); + tState++; + break; + case 1: + if (!gPaletteFade.active) + tState++; + break; + case 2: + if (tFrameCounter == 208 || gMain.newKeys != 0) + tState++; + else + tFrameCounter++; + break; + case 3: + ResetSpriteData(); + DestroyTask(taskId); + CreateTask(Task_Scene1_Load, 0); + SetMainCallback2(MainCB2_Intro); + break; + } +} +#undef tState -void RhhIntro_InitCopyrightBgs() +static void VBlankCB_ExpansionIntro(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void ExpansionIntro_InitBgs(void) { ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBgTemplates_RhhCopyrightScreen, ARRAY_COUNT(sBgTemplates_RhhCopyrightScreen)); @@ -224,42 +285,41 @@ void RhhIntro_InitCopyrightBgs() HideBg(0); HideBg(1); HideBg(2); - ShowBg(3); + HideBg(3); } -void RhhIntro_LoadCopyrightBgGraphics() +static void ExpansionIntro_LoadGraphics(void) { - LZ77UnCompVram(sBgTiles_PoweredBy, (void*) BG_CHAR_ADDR(sBgTemplates_RhhCopyrightScreen[BG_3].charBaseIndex)); - LZ77UnCompVram(sBgMap_PoweredBy, (u16*) BG_SCREEN_ADDR(sBgTemplates_RhhCopyrightScreen[BG_3].mapBaseIndex)); - LZ77UnCompVram(sBgTiles_RhhCredits, (void*) BG_CHAR_ADDR(sBgTemplates_RhhCopyrightScreen[BG_2].charBaseIndex)); - LZ77UnCompVram(sBgMap_RhhCredits, (u16*) BG_SCREEN_ADDR(sBgTemplates_RhhCopyrightScreen[BG_2].mapBaseIndex)); + LZ77UnCompVram(sBgTiles_PoweredBy, (void*) BG_CHAR_ADDR(sBgTemplates_RhhCopyrightScreen[EXPANSION_INTRO_BG3].charBaseIndex)); + LZ77UnCompVram(sBgMap_PoweredBy, (u16*) BG_SCREEN_ADDR(sBgTemplates_RhhCopyrightScreen[EXPANSION_INTRO_BG3].mapBaseIndex)); + LZ77UnCompVram(sBgTiles_RhhCredits, (void*) BG_CHAR_ADDR(sBgTemplates_RhhCopyrightScreen[EXPANSION_INTRO_BG2].charBaseIndex)); + LZ77UnCompVram(sBgMap_RhhCredits, (u16*) BG_SCREEN_ADDR(sBgTemplates_RhhCopyrightScreen[EXPANSION_INTRO_BG2].mapBaseIndex)); LoadCompressedPalette(sBgPal_Credits, 0x00, 0x60); -} -void RhhIntro_LoadCopyrightSpriteGraphics() -{ LoadCompressedSpriteSheet(&sSpriteSheet_DizzyEgg); LoadCompressedSpriteSheet(&sSpriteSheet_Porygon); LoadSpritePalette(&sSpritePalette_DizzyEgg); LoadSpritePalette(&sSpritePalette_Porygon); } -void RhhIntro_CreateCopyRightSprites() +static void ExpansionIntro_CreateSprites(void) { - sDizzyId = CreateSprite(&sSpriteTemplate_DizzyEgg, 0, DIZZY_POS_Y, 0); - gSprites[sDizzyId].x2 = DIZZY_POS_X; + u32 dizzyId, poryId; - sPoryId = CreateSprite(&sSpriteTemplate_Porygon, 0, PORY_POS_Y, 0); - gSprites[sPoryId].x2 = PORY_POS_X; + dizzyId = CreateSprite(&sSpriteTemplate_DizzyEgg, 0, DIZZY_POS_Y, 0); + gSprites[dizzyId].x2 = DIZZY_POS_X; + + poryId = CreateSprite(&sSpriteTemplate_Porygon, 0, PORY_POS_Y, 0); + gSprites[poryId].x2 = PORY_POS_X; } -void RhhIntro_ShowRhhCredits() +static void ExpansionIntro_StartBlend(void) { ShowBg(2); - CreateTask(Task_ShowRhhCredits, 0); + CreateTask(Task_ExpansionIntro_HandleBlend, 0); } -static void Task_ShowRhhCredits(u8 taskId) +static void Task_ExpansionIntro_HandleBlend(u8 taskId) { if (GetGpuReg(REG_OFFSET_BLDY) != 0) { @@ -273,7 +333,7 @@ static void Task_ShowRhhCredits(u8 taskId) } #define sTimer data[0] -static void SpriteCallbacK_DizzyWalking(struct Sprite* sprite) +static void SpriteCallback_DizzyWalking(struct Sprite* sprite) { sprite->x2--; @@ -336,10 +396,4 @@ static void SpriteCallback_PorygonFlying(struct Sprite* sprite) } #undef sTimer -void RhhIntro_DestroyRhhCreditSprites() -{ - DestroySpriteAndFreeResources(&gSprites[sDizzyId]); - DestroySpriteAndFreeResources(&gSprites[sPoryId]); -} - -#endif //RHH_COPYRIGHT_INTRO +#endif //EXPANSION_INTRO diff --git a/src/intro.c b/src/intro.c index e75d4e1bb..38b2f0027 100644 --- a/src/intro.c +++ b/src/intro.c @@ -23,7 +23,7 @@ #include "sound.h" #include "util.h" #include "title_screen.h" -#include "rhh_copyright.h" +#include "expansion_intro.h" #include "constants/rgb.h" #include "constants/battle_anim.h" @@ -38,7 +38,6 @@ */ // Scene 1 main tasks -static void Task_Scene1_Load(u8); static void Task_Scene1_FadeIn(u8); static void Task_Scene1_WaterDrops(u8); static void Task_Scene1_PanUp(u8); @@ -1025,18 +1024,6 @@ static const struct SpritePalette sSpritePalette_RayquazaOrb[] = {}, }; -#if RHH_COPYRIGHT_INTRO == TRUE -static void VBlankCB_PretIntro() -{ - LoadOam(); - ProcessSpriteCopyRequests(); - TransferPlttBuffer(); - ScanlineEffect_InitHBlankDmaTransfer(); - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); -} -#endif static void VBlankCB_Intro(void) { @@ -1046,7 +1033,7 @@ static void VBlankCB_Intro(void) ScanlineEffect_InitHBlankDmaTransfer(); } -static void MainCB2_Intro(void) +void MainCB2_Intro(void) { RunTasks(); AnimateSprites(); @@ -1093,14 +1080,11 @@ static u8 SetUpCopyrightScreen(void) CpuFill32(0, (void *)OAM, OAM_SIZE); CpuFill16(0, (void *)(PLTT + 2), PLTT_SIZE - 2); ResetPaletteFade(); -#if RHH_COPYRIGHT_INTRO == FALSE LoadCopyrightGraphics(0, 0x3800, BG_PLTT_ID(0)); -#endif ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); -#if RHH_COPYRIGHT_INTRO == FALSE BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) @@ -1110,59 +1094,14 @@ static u8 SetUpCopyrightScreen(void) EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(VBlankCB_Intro); REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON; -#else - SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) - | BGCNT_CHARBASE(0) - | BGCNT_SCREENBASE(7) - | BGCNT_16COLOR - | BGCNT_TXT256x256); - EnableInterrupts(INTR_FLAG_VBLANK); - REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON; - - gMain.state++; - break; - case 1: - RhhIntro_InitCopyrightBgs(); - BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_WHITEALPHA); - SetVBlankCallback(VBlankCB_PretIntro); -#endif SetSerialCallback(SerialCB_CopyrightScreen); GameCubeMultiBoot_Init(&gMultibootProgramStruct); default: -#if RHH_COPYRIGHT_INTRO == TRUE - RunTasks(); - UpdatePaletteFade(); - gMain.state++; - GameCubeMultiBoot_Main(&gMultibootProgramStruct); - break; - case 30: - RhhIntro_LoadCopyrightBgGraphics(); - BeginNormalPaletteFade(0x00000001, 0, 0x10, 0, RGB_BLACK); - UpdatePaletteFade(); - GameCubeMultiBoot_Main(&gMultibootProgramStruct); - gMain.state++; - break; - case 31: - RhhIntro_LoadCopyrightSpriteGraphics(); - RhhIntro_CreateCopyRightSprites(); - UpdatePaletteFade(); - GameCubeMultiBoot_Main(&gMultibootProgramStruct); - gMain.state++; - break; - case 45: - RhhIntro_ShowRhhCredits(); - UpdatePaletteFade(); - GameCubeMultiBoot_Main(&gMultibootProgramStruct); - gMain.state++; - break; - case 253: -#else UpdatePaletteFade(); gMain.state++; GameCubeMultiBoot_Main(&gMultibootProgramStruct); break; case 140: -#endif GameCubeMultiBoot_Main(&gMultibootProgramStruct); if (gMultibootProgramStruct.gcmb_field_2 != 1) { @@ -1170,22 +1109,16 @@ static u8 SetUpCopyrightScreen(void) gMain.state++; } break; -#if RHH_COPYRIGHT_INTRO == TRUE - case 254: - if (UpdatePaletteFade()) - break; - RhhIntro_DestroyRhhCreditSprites(); - gMain.state++; - break; - - case 255: -#else case 141: if (UpdatePaletteFade()) break; -#endif +#if EXPANSION_INTRO == TRUE + SetMainCallback2(CB2_ExpansionIntro); + CreateTask(Task_HandleExpansionIntro, 0); +#else CreateTask(Task_Scene1_Load, 0); SetMainCallback2(MainCB2_Intro); +#endif if (gMultibootProgramStruct.gcmb_field_2 != 0) { if (gMultibootProgramStruct.gcmb_field_2 == 2) @@ -1232,7 +1165,7 @@ void CB2_InitCopyrightScreenAfterTitleScreen(void) #define sBigDropSpriteId data[0] -static void Task_Scene1_Load(u8 taskId) +void Task_Scene1_Load(u8 taskId) { SetVBlankCallback(NULL); sIntroCharacterGender = Random() & 1; diff --git a/sym_ewram.txt b/sym_ewram.txt index 4611fa241..914501a08 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -149,4 +149,3 @@ .include "src/trainer_hill.o" .include "src/rayquaza_scene.o" .include "src/debug.o" - .include "src/rhh_copyright.o" From dac138cef66c4dcb01b01b41a8264c0be75b1c4f Mon Sep 17 00:00:00 2001 From: sbird Date: Fri, 3 Feb 2023 00:22:02 +0100 Subject: [PATCH 055/125] [test] add some ability tests --- test/ability_cloud_nine.c | 16 +++++++ test/ability_compound_eyes.c | 37 +++++++++++++++ test/ability_damp.c | 54 ++++++++++++++++++++++ test/ability_drizzle.c | 24 ++++++++++ test/ability_insomnia.c | 59 ++++++++++++++++++++++++ test/ability_intimidate.c | 50 +++++++++++++++++++++ test/ability_limber.c | 16 +++++++ test/ability_oblivious.c | 68 ++++++++++++++++++++++++++++ test/ability_sand_veil.c | 30 +++++++++++++ test/ability_speed_boost.c | 20 +++++++++ test/ability_stench.c | 34 ++++++++++++++ test/ability_volt_absorb.c | 85 +++++++++++++++++++++++++++++++++++ test/ability_water_absorb.c | 87 ++++++++++++++++++++++++++++++++++++ 13 files changed, 580 insertions(+) create mode 100644 test/ability_cloud_nine.c create mode 100644 test/ability_compound_eyes.c create mode 100644 test/ability_damp.c create mode 100644 test/ability_drizzle.c create mode 100644 test/ability_insomnia.c create mode 100644 test/ability_intimidate.c create mode 100644 test/ability_limber.c create mode 100644 test/ability_oblivious.c create mode 100644 test/ability_sand_veil.c create mode 100644 test/ability_speed_boost.c create mode 100644 test/ability_stench.c create mode 100644 test/ability_volt_absorb.c create mode 100644 test/ability_water_absorb.c diff --git a/test/ability_cloud_nine.c b/test/ability_cloud_nine.c new file mode 100644 index 000000000..02da15ee1 --- /dev/null +++ b/test/ability_cloud_nine.c @@ -0,0 +1,16 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Cloud Nine prevents weather effects") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SANDSTORM].effect == EFFECT_SANDSTORM); + PLAYER(SPECIES_PSYDUCK) { Ability(ABILITY_CLOUD_NINE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SANDSTORM); } + TURN {} + } SCENE { + NONE_OF { HP_BAR(player); } + } +} diff --git a/test/ability_compound_eyes.c b/test/ability_compound_eyes.c new file mode 100644 index 000000000..97ab84dd2 --- /dev/null +++ b/test/ability_compound_eyes.c @@ -0,0 +1,37 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Compound Eyes raises accuracy") +{ + PASSES_RANDOMLY(91, 100); + GIVEN { + ASSUME(gBattleMoves[MOVE_THUNDER].accuracy == 70); + PLAYER(SPECIES_BUTTERFREE) { Ability(ABILITY_COMPOUND_EYES); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_THUNDER); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDER, player); + HP_BAR(opponent); + } +} + +// This fails even though the ability works correctly. The failure is due to +// a statistical anomaly in the test system where FISSURE hits 3 times more often +// than we expect. +SINGLE_BATTLE_TEST("Compound Eyes does not affect OHKO moves") +{ + KNOWN_FAILING; + PASSES_RANDOMLY(30, 100); + GIVEN { + ASSUME(gBattleMoves[MOVE_FISSURE].accuracy == 30); + ASSUME(gBattleMoves[MOVE_FISSURE].effect == EFFECT_OHKO); + PLAYER(SPECIES_BUTTERFREE) { Ability(ABILITY_TINTED_LENS); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_FISSURE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FISSURE, player); + HP_BAR(opponent, hp: 0); + } +} diff --git a/test/ability_damp.c b/test/ability_damp.c new file mode 100644 index 000000000..33d1ae466 --- /dev/null +++ b/test/ability_damp.c @@ -0,0 +1,54 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Damp prevents explosion-like moves from enemies") +{ + u32 move; + PARAMETRIZE { move = MOVE_EXPLOSION; } + PARAMETRIZE { move = MOVE_SELF_DESTRUCT; } + PARAMETRIZE { move = MOVE_MIND_BLOWN; } + PARAMETRIZE { move = MOVE_MISTY_EXPLOSION; } + GIVEN { + PLAYER(SPECIES_PARAS) { Ability(ABILITY_DAMP); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, move); } + } SCENE { + ABILITY_POPUP(player, ABILITY_DAMP); + NONE_OF { HP_BAR(player); HP_BAR(opponent); } + } +} + +SINGLE_BATTLE_TEST("Damp prevents explosion-like moves from self") +{ + u32 move; + PARAMETRIZE { move = MOVE_EXPLOSION; } + PARAMETRIZE { move = MOVE_SELF_DESTRUCT; } + PARAMETRIZE { move = MOVE_MIND_BLOWN; } + PARAMETRIZE { move = MOVE_MISTY_EXPLOSION; } + GIVEN { + PLAYER(SPECIES_PARAS) { Ability(ABILITY_DAMP); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, move); } + } SCENE { + ABILITY_POPUP(player, ABILITY_DAMP); + NONE_OF { HP_BAR(player); HP_BAR(opponent); } + } +} + +SINGLE_BATTLE_TEST("Damp prevents damage from aftermath") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_TACKLE].flags & FLAG_MAKES_CONTACT); + PLAYER(SPECIES_PARAS) { Ability(ABILITY_DAMP); }; + OPPONENT(SPECIES_VOLTORB) { Ability(ABILITY_AFTERMATH); HP(1); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); SEND_OUT(opponent, 1); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_AFTERMATH); + ABILITY_POPUP(player, ABILITY_DAMP); + NONE_OF { HP_BAR(player); } + } +} diff --git a/test/ability_drizzle.c b/test/ability_drizzle.c new file mode 100644 index 000000000..1b9932476 --- /dev/null +++ b/test/ability_drizzle.c @@ -0,0 +1,24 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Drizzle summons rain", s16 damage) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_DRIZZLE; } + PARAMETRIZE { ability = ABILITY_DAMP; } + + GIVEN { + PLAYER(SPECIES_POLITOED) { Ability(ability); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_BUBBLE); } + } SCENE { + if (ability == ABILITY_DRIZZLE) { + ABILITY_POPUP(player, ABILITY_DRIZZLE); + MESSAGE("Politoed's Drizzle made it rain!"); + } + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[1].damage, Q_4_12(1.5), results[0].damage); + } +} diff --git a/test/ability_insomnia.c b/test/ability_insomnia.c new file mode 100644 index 000000000..b9fe38753 --- /dev/null +++ b/test/ability_insomnia.c @@ -0,0 +1,59 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Insomnia prevents sleep") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_DROWZEE) { Ability(ABILITY_INSOMNIA); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SPORE); } + } SCENE { + ABILITY_POPUP(player, ABILITY_INSOMNIA); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + STATUS_ICON(player, sleep: TRUE); + } + } +} + +SINGLE_BATTLE_TEST("Insomnia prevents yawn") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_YAWN].effect == EFFECT_YAWN); + PLAYER(SPECIES_DROWZEE) { Ability(ABILITY_INSOMNIA); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SPORE); } + TURN { } + TURN { } + } SCENE { + ABILITY_POPUP(player, ABILITY_INSOMNIA); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + STATUS_ICON(player, sleep: TRUE); + } + } +} + +SINGLE_BATTLE_TEST("Insomnia prevents rest") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_REST].effect == EFFECT_REST); + PLAYER(SPECIES_DROWZEE) { Ability(ABILITY_INSOMNIA); HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_REST); } + } SCENE { + ABILITY_POPUP(player, ABILITY_INSOMNIA); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_REST, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + STATUS_ICON(player, sleep: TRUE); + HP_BAR(player); + } + } +} diff --git a/test/ability_intimidate.c b/test/ability_intimidate.c new file mode 100644 index 000000000..450ca6402 --- /dev/null +++ b/test/ability_intimidate.c @@ -0,0 +1,50 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); +} + +SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after switch out", s16 damage) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_INTIMIDATE; } + PARAMETRIZE { ability = ABILITY_RECKLESS; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_STARAPTOR) { Ability(ability); }; + } WHEN { + TURN { SWITCH(opponent, 1); } + TURN { MOVE(player, MOVE_TACKLE); } + } SCENE { + if (ability == ABILITY_INTIMIDATE) + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after KO", s16 damage) +{ + u32 ability; + KNOWN_FAILING; + PARAMETRIZE { ability = ABILITY_INTIMIDATE; } + PARAMETRIZE { ability = ABILITY_RECKLESS; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(2); }; + OPPONENT(SPECIES_WOBBUFFET) { HP(1); Speed(1); }; + OPPONENT(SPECIES_STARAPTOR) { Ability(ABILITY_INTIMIDATE); Speed(1); }; + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); SEND_OUT(opponent, 1); } + TURN { MOVE(player, MOVE_TACKLE); } + } SCENE { + if (ability == ABILITY_INTIMIDATE) + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} diff --git a/test/ability_limber.c b/test/ability_limber.c new file mode 100644 index 000000000..4b428d0c1 --- /dev/null +++ b/test/ability_limber.c @@ -0,0 +1,16 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Limber prevents paralysis") +{ + GIVEN { + PLAYER(SPECIES_PERSIAN) { Ability(ABILITY_LIMBER); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_THUNDER_SHOCK); } + } SCENE { + HP_BAR(player); + NONE_OF { ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, player); } + NONE_OF { STATUS_ICON(player, paralysis: TRUE); } + } +} diff --git a/test/ability_oblivious.c b/test/ability_oblivious.c new file mode 100644 index 000000000..0708845ed --- /dev/null +++ b/test/ability_oblivious.c @@ -0,0 +1,68 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Oblivious prevents Infatuation") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_ATTRACT].effect == EFFECT_ATTRACT); + PLAYER(SPECIES_SLOWPOKE) { Ability(ABILITY_OBLIVIOUS); Gender(MON_MALE); }; + OPPONENT(SPECIES_WOBBUFFET) { Gender(MON_FEMALE); }; + } WHEN { + TURN { MOVE(opponent, MOVE_ATTRACT); } + } SCENE { + ABILITY_POPUP(player, ABILITY_OBLIVIOUS); + NONE_OF { ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_INFATUATION, player); } + MESSAGE("It doesn't affect Slowpoke…"); + } +} + +SINGLE_BATTLE_TEST("Oblivious prevents Captivate") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_CAPTIVATE].effect == EFFECT_CAPTIVATE); + PLAYER(SPECIES_SLOWPOKE) { Ability(ABILITY_OBLIVIOUS); Gender(MON_MALE); }; + OPPONENT(SPECIES_WOBBUFFET) { Gender(MON_FEMALE); }; + } WHEN { + TURN { MOVE(opponent, MOVE_ATTRACT); } + } SCENE { + ABILITY_POPUP(player, ABILITY_OBLIVIOUS); + NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } + MESSAGE("It doesn't affect Slowpoke…"); + } +} + +SINGLE_BATTLE_TEST("Oblivious prevents Taunt") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_TAUNT].effect == EFFECT_TAUNT); + ASSUME(B_OBLIVIOUS_TAUNT >= GEN_6); + PLAYER(SPECIES_SLOWPOKE) { Ability(ABILITY_OBLIVIOUS); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_TAUNT); } + TURN { MOVE(player, MOVE_SPORE); } + } SCENE { + ABILITY_POPUP(player, ABILITY_OBLIVIOUS); + NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_TAUNT, opponent); } + MESSAGE("It doesn't affect Slowpoke…"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + } +} + +SINGLE_BATTLE_TEST("Oblivious prevents Intimidate") +{ + GIVEN { + ASSUME(B_UPDATED_INTIMIDATE >= GEN_8); + PLAYER(SPECIES_SLOWPOKE) { Ability(ABILITY_OBLIVIOUS); }; + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }; + } WHEN { + TURN { SWITCH(opponent, 1); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + ABILITY_POPUP(player, ABILITY_OBLIVIOUS); + NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } + MESSAGE("Slowpoke's attack was not lowered!"); + } +} diff --git a/test/ability_sand_veil.c b/test/ability_sand_veil.c new file mode 100644 index 000000000..5d2325140 --- /dev/null +++ b/test/ability_sand_veil.c @@ -0,0 +1,30 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Sand Veil prevents damage from sandstorm") +{ + GIVEN { + PLAYER(SPECIES_SANDSHREW) { Ability(ABILITY_SAND_VEIL); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SANDSTORM); } + TURN {} + } SCENE { + NONE_OF { HP_BAR(player); } + } +} + +SINGLE_BATTLE_TEST("Sand Veil reduces accuracy during sandstorm") +{ + PASSES_RANDOMLY(4,5); + GIVEN { + ASSUME(gBattleMoves[MOVE_POUND].accuracy == 100); + PLAYER(SPECIES_SANDSHREW) { Ability(ABILITY_SAND_VEIL); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SANDSTORM); } + TURN { MOVE(opponent, MOVE_POUND); } + } SCENE { + HP_BAR(player); + } +} diff --git a/test/ability_speed_boost.c b/test/ability_speed_boost.c new file mode 100644 index 000000000..b3e128931 --- /dev/null +++ b/test/ability_speed_boost.c @@ -0,0 +1,20 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Speed Boost gradually boosts speed") +{ + GIVEN { + PLAYER(SPECIES_TORCHIC) { Ability(ABILITY_SPEED_BOOST); Speed(99); }; + OPPONENT(SPECIES_WOBBUFFET) { Speed(100); }; + } WHEN { + TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_CELEBRATE); } + TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_CELEBRATE); } + } SCENE { + MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("Torchic used Celebrate!"); + ABILITY_POPUP(player, ABILITY_SPEED_BOOST); + MESSAGE("Torchic's Speed Boost raised its SPEED!"); + MESSAGE("Torchic used Celebrate!"); + MESSAGE("Foe Wobbuffet used Celebrate!"); + } +} diff --git a/test/ability_stench.c b/test/ability_stench.c new file mode 100644 index 000000000..7285ee768 --- /dev/null +++ b/test/ability_stench.c @@ -0,0 +1,34 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Stench has a 10% chance to flinch") +{ + PASSES_RANDOMLY(1,10); + GIVEN { + ASSUME(gBattleMoves[MOVE_TACKLE].power > 0); + PLAYER(SPECIES_STUNKY) { Ability(ABILITY_STENCH); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_CELEBRATE); } + } SCENE { + MESSAGE("Foe Wobbuffet flinched!"); + } +} + +SINGLE_BATTLE_TEST("Stench does not stack with King's Rock") +{ + PASSES_RANDOMLY(1,10); + GIVEN { + ASSUME(gItems[ITEM_KINGS_ROCK].holdEffect == HOLD_EFFECT_FLINCH); + ASSUME(gBattleMoves[MOVE_TACKLE].power > 0); + + PLAYER(SPECIES_STUNKY) { Ability(ABILITY_STENCH); Item(ITEM_KINGS_ROCK); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_CELEBRATE); } + } SCENE { + MESSAGE("Foe Wobbuffet flinched!"); + } +} + +// TODO: Test against interaction with multi hits diff --git a/test/ability_volt_absorb.c b/test/ability_volt_absorb.c new file mode 100644 index 000000000..f485f6557 --- /dev/null +++ b/test/ability_volt_absorb.c @@ -0,0 +1,85 @@ +#include "global.h" +#include "test_battle.h" + +#define TEST_MAX_HP (100) + +SINGLE_BATTLE_TEST("Volt Absorb heals 25% when hit by electric type moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_THUNDER_SHOCK].type == TYPE_ELECTRIC); + PLAYER(SPECIES_JOLTEON) { Ability(ABILITY_VOLT_ABSORB); HP(1); MaxHP(TEST_MAX_HP); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_THUNDER_SHOCK); } + } SCENE { + ABILITY_POPUP(player, ABILITY_VOLT_ABSORB); + HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Jolteon restored HP using its Volt Absorb!"); + } +} + +SINGLE_BATTLE_TEST("Volt Absorb does not activate if protected") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_THUNDER_SHOCK].type == TYPE_ELECTRIC); + PLAYER(SPECIES_JOLTEON) { Ability(ABILITY_VOLT_ABSORB); HP(1); MaxHP(TEST_MAX_HP); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_PROTECT); MOVE(opponent, MOVE_THUNDER_SHOCK); } + } SCENE { + NONE_OF { ABILITY_POPUP(player, ABILITY_VOLT_ABSORB); HP_BAR(player); MESSAGE("Jolteon restored HP using its Volt Absorb!"); } + } +} + +SINGLE_BATTLE_TEST("Volt Absorb activates on status moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_THUNDER_WAVE].type == TYPE_ELECTRIC); + ASSUME(gBattleMoves[MOVE_THUNDER_WAVE].split == SPLIT_STATUS); + PLAYER(SPECIES_JOLTEON) { Ability(ABILITY_VOLT_ABSORB); HP(1); MaxHP(TEST_MAX_HP); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_THUNDER_WAVE); } + } SCENE { + ABILITY_POPUP(player, ABILITY_VOLT_ABSORB); + HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Jolteon restored HP using its Volt Absorb!"); + } +} + +SINGLE_BATTLE_TEST("Volt Absorb is only triggered once on multi strike moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_FURY_SWIPES].type == TYPE_NORMAL); + ASSUME(gBattleMoves[MOVE_FURY_SWIPES].effect == EFFECT_MULTI_HIT); + PLAYER(SPECIES_JOLTEON) { Ability(ABILITY_VOLT_ABSORB); HP(1); MaxHP(TEST_MAX_HP); }; + OPPONENT(SPECIES_GRAVELER_ALOLAN) { Ability(ABILITY_GALVANIZE); }; + } WHEN { + TURN { MOVE(opponent, MOVE_FURY_SWIPES); } + } SCENE { + ABILITY_POPUP(player, ABILITY_VOLT_ABSORB); + HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Jolteon restored HP using its Volt Absorb!"); + } +} + +SINGLE_BATTLE_TEST("Volt Absorb prevents Cell Battery from activating") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_THUNDER_SHOCK].type == TYPE_ELECTRIC); + PLAYER(SPECIES_JOLTEON) { Ability(ABILITY_VOLT_ABSORB); HP(1); MaxHP(TEST_MAX_HP); Item(ITEM_CELL_BATTERY); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_THUNDER_SHOCK); } + } SCENE { + ABILITY_POPUP(player, ABILITY_VOLT_ABSORB); + HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Jolteon restored HP using its Volt Absorb!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Using Cell Battery, the attack of Jolteon rose!"); + } + + } +} diff --git a/test/ability_water_absorb.c b/test/ability_water_absorb.c new file mode 100644 index 000000000..1748ee7ff --- /dev/null +++ b/test/ability_water_absorb.c @@ -0,0 +1,87 @@ +#include "global.h" +#include "test_battle.h" + +#define TEST_MAX_HP (100) + +SINGLE_BATTLE_TEST("Water Absorb heals 25% when hit by water type moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_BUBBLE].type == TYPE_WATER); + PLAYER(SPECIES_POLIWAG) { Ability(ABILITY_WATER_ABSORB); HP(1); MaxHP(TEST_MAX_HP); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_BUBBLE); } + } SCENE { + ABILITY_POPUP(player, ABILITY_WATER_ABSORB); + HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Poliwag restored HP using its Water Absorb!"); + } +} + +SINGLE_BATTLE_TEST("Water Absorb does not activate if protected") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_BUBBLE].type == TYPE_WATER); + PLAYER(SPECIES_POLIWAG) { Ability(ABILITY_WATER_ABSORB); HP(1); MaxHP(TEST_MAX_HP); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_PROTECT); MOVE(opponent, MOVE_BUBBLE); } + } SCENE { + NONE_OF { ABILITY_POPUP(player, ABILITY_WATER_ABSORB); HP_BAR(player); MESSAGE("Poliwag restored HP using its Water Absorb!"); } + } +} + +SINGLE_BATTLE_TEST("Water Absorb activates on status moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SOAK].type == TYPE_WATER); + ASSUME(gBattleMoves[MOVE_SOAK].split == SPLIT_STATUS); + PLAYER(SPECIES_POLIWAG) { Ability(ABILITY_WATER_ABSORB); HP(1); MaxHP(TEST_MAX_HP); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SOAK); } + } SCENE { + ABILITY_POPUP(player, ABILITY_WATER_ABSORB); + HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Poliwag restored HP using its Water Absorb!"); + } +} + +SINGLE_BATTLE_TEST("Water Absorb is only triggered once on multi strike moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_WATER_SHURIKEN].type == TYPE_WATER); + ASSUME(gBattleMoves[MOVE_WATER_SHURIKEN].effect == EFFECT_MULTI_HIT); + PLAYER(SPECIES_POLIWAG) { Ability(ABILITY_WATER_ABSORB); HP(1); MaxHP(TEST_MAX_HP); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_WATER_SHURIKEN); } + } SCENE { + ABILITY_POPUP(player, ABILITY_WATER_ABSORB); + HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Poliwag restored HP using its Water Absorb!"); + } +} + +SINGLE_BATTLE_TEST("Water Absorb prevents Items from activating") +{ + u32 item; + PARAMETRIZE { item = ITEM_ABSORB_BULB; } + PARAMETRIZE { item = ITEM_LUMINOUS_MOSS; } + GIVEN { + ASSUME(gBattleMoves[MOVE_BUBBLE].type == TYPE_WATER); + PLAYER(SPECIES_POLIWAG) { Ability(ABILITY_WATER_ABSORB); HP(1); MaxHP(TEST_MAX_HP); Item(item); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_BUBBLE); } + } SCENE { + ABILITY_POPUP(player, ABILITY_WATER_ABSORB); + HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Poliwag restored HP using its Water Absorb!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + } + + } +} From 074f1b544e4cc86c3a05381f365ebc8fb0ba3710 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Wed, 8 Feb 2023 07:43:49 +0000 Subject: [PATCH 056/125] Use variable in patchelf invocation --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 696820cd9..8df33de4c 100644 --- a/Makefile +++ b/Makefile @@ -459,7 +459,7 @@ $(TESTELF): $(OBJ_DIR)/ld_script_test.ld $(OBJS) $(TEST_OBJS) libagbsyscall @echo "cd $(OBJ_DIR) && $(LD) -T ld_script_test.ld -o ../../$@ " @cd $(OBJ_DIR) && $(LD) $(TESTLDFLAGS) -T ld_script_test.ld -o ../../$@ $(OBJS_REL) $(TEST_OBJS_REL) $(LIB) $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent - $(PATCHELF) pokeemerald-test.elf gTestRunnerArgv "$(TESTS)\0" + $(PATCHELF) $(TESTELF) gTestRunnerArgv "$(TESTS)\0" ifeq ($(GITHUB_REPOSITORY_OWNER),rh-hideout) TEST_SKIP_IS_FAIL := \x01 From d59e576b5106c1a22851478b0e2864316a3b5f73 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Thu, 9 Feb 2023 22:54:11 +0000 Subject: [PATCH 057/125] Hydra: remove tmpnam (#2668) * Use a PID-based filename instead of tmpnam * Use FILENAME_MAX over L_tmpnam --------- Co-authored-by: Martin Griffin Co-authored-by: Philipp AUER --- tools/mgba-rom-test-hydra/main.c | 96 ++++++++++++++++---------------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/tools/mgba-rom-test-hydra/main.c b/tools/mgba-rom-test-hydra/main.c index f9c51d505..5dfc99517 100644 --- a/tools/mgba-rom-test-hydra/main.c +++ b/tools/mgba-rom-test-hydra/main.c @@ -30,7 +30,7 @@ struct Runner { pid_t pid; int outfd; - char rom_path[L_tmpnam]; + char rom_path[FILENAME_MAX]; char test_name[256]; size_t input_buffer_size; size_t input_buffer_capacity; @@ -234,53 +234,6 @@ int main(int argc, char *argv[]) perror("pipe failed"); exit(2); } - if (!tmpnam(runners[i].rom_path)) - { - perror("tmpnam rom_path failed"); - exit(2); - } - int tmpfd; - if ((tmpfd = open(runners[i].rom_path, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR)) == -1) - { - perror("open tmpfd failed"); - _exit(2); - } - if ((write(tmpfd, elf, elfst.st_size)) == -1) - { - perror("write tmpfd failed"); - _exit(2); - } - pid_t patchelfpid = fork(); - if (patchelfpid == -1) - { - perror("fork patchelf failed"); - _exit(2); - } - else if (patchelfpid == 0) - { - char n_arg[5], i_arg[5]; - snprintf(n_arg, sizeof(n_arg), "\\x%02x", nrunners); - snprintf(i_arg, sizeof(i_arg), "\\x%02x", i); - if (execlp("tools/patchelf/patchelf", "tools/patchelf/patchelf", runners[i].rom_path, "gTestRunnerN", n_arg, "gTestRunnerI", i_arg, NULL) == -1) - { - perror("execlp patchelf failed"); - _exit(2); - } - } - else - { - int wstatus; - if (waitpid(patchelfpid, &wstatus, 0) == -1) - { - perror("waitpid patchelfpid failed"); - _exit(2); - } - if (!WIFEXITED(wstatus) || WEXITSTATUS(wstatus) != 0) - { - fprintf(stderr, "patchelf exited with an error\n"); - _exit(2); - } - } pid_t pid = fork(); if (pid == -1) { perror("fork mgba-rom-test failed"); @@ -310,15 +263,60 @@ int main(int argc, char *argv[]) perror("close pipefds[1] failed"); _exit(2); } + char rom_path[FILENAME_MAX]; + sprintf(rom_path, "/tmp/file%05d", getpid()); + int tmpfd; + if ((tmpfd = open(rom_path, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR)) == -1) + { + perror("open tmpfd failed"); + _exit(2); + } + if ((write(tmpfd, elf, elfst.st_size)) == -1) + { + perror("write tmpfd failed"); + _exit(2); + } + pid_t patchelfpid = fork(); + if (patchelfpid == -1) + { + perror("fork patchelf failed"); + _exit(2); + } + else if (patchelfpid == 0) + { + char n_arg[5], i_arg[5]; + snprintf(n_arg, sizeof(n_arg), "\\x%02x", nrunners); + snprintf(i_arg, sizeof(i_arg), "\\x%02x", i); + if (execlp("tools/patchelf/patchelf", "tools/patchelf/patchelf", rom_path, "gTestRunnerN", n_arg, "gTestRunnerI", i_arg, NULL) == -1) + { + perror("execlp patchelf failed"); + _exit(2); + } + } + else + { + int wstatus; + if (waitpid(patchelfpid, &wstatus, 0) == -1) + { + perror("waitpid patchelfpid failed"); + _exit(2); + } + if (!WIFEXITED(wstatus) || WEXITSTATUS(wstatus) != 0) + { + fprintf(stderr, "patchelf exited with an error\n"); + _exit(2); + } + } // stdbuf is required because otherwise mgba never flushes // stdout. - if (execlp("stdbuf", "stdbuf", "-oL", argv[1], "-l15", "-ClogLevel.gba.dma=16", "-Rr0", runners[i].rom_path, NULL) == -1) + if (execlp("stdbuf", "stdbuf", "-oL", argv[1], "-l15", "-ClogLevel.gba.dma=16", "-Rr0", rom_path, NULL) == -1) { perror("execl stdbuf mgba-rom-test failed"); _exit(2); } } else { runners[i].pid = pid; + sprintf(runners[i].rom_path, "/tmp/file%05d", runners[i].pid); runners[i].outfd = pipefds[0]; if (close(pipefds[1]) == -1) { From f933ad31837cf34e4cd968f74659d1867621a4ce Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Wed, 8 Feb 2023 17:35:28 +0000 Subject: [PATCH 058/125] Build patchelf and hydra only for check --- Makefile | 21 +++++++++++++++------ make_tools.mk | 3 +-- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 8df33de4c..8e3ff2975 100644 --- a/Makefile +++ b/Makefile @@ -142,7 +142,8 @@ ROMTESTHYDRA := tools/mgba-rom-test-hydra/mgba-rom-test-hydra$(EXE) PERL := perl -TOOLDIRS := $(filter-out tools/mgba tools/agbcc tools/binutils,$(wildcard tools/*)) +TOOLDIRS := tools/aif2pcm tools/bin2c tools/gbafix tools/gbagfx tools/jsonproc tools/mapjson tools/mid2agb tools/preproc tools/ramscrgen tools/rsfont tools/scaninc +CHECKTOOLDIRS = tools/patchelf tools/mgba-rom-test-hydra TOOLBASE = $(TOOLDIRS:tools/%=%) TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE)) @@ -158,7 +159,7 @@ MAKEFLAGS += --no-print-directory # Secondary expansion is required for dependency variables in object rules. .SECONDEXPANSION: -.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) libagbsyscall modern tidymodern tidynonmodern check +.PHONY: all rom clean compare tidy tools check-tools mostlyclean clean-tools clean-check-tools $(TOOLDIRS) $(CHECKTOOLDIRS) libagbsyscall modern tidymodern tidynonmodern check infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) @@ -176,9 +177,9 @@ endif ifeq (,$(MAKECMDGOALS)) SCAN_DEPS ?= 1 else - # clean, tidy, tools, mostlyclean, clean-tools, $(TOOLDIRS), tidymodern, tidynonmodern don't even build the ROM + # clean, tidy, tools, check-tools, mostlyclean, clean-tools, clean-check-tools, $(TOOLDIRS), $(CHECKTOOLDIRS), tidymodern, tidynonmodern don't even build the ROM # libagbsyscall does its own thing - ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) tidymodern tidynonmodern libagbsyscall,$(MAKECMDGOALS))) + ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) clean-check-tools $(CHECKTOOLDIRS) tidymodern tidynonmodern libagbsyscall,$(MAKECMDGOALS))) SCAN_DEPS ?= 0 else SCAN_DEPS ?= 1 @@ -229,11 +230,16 @@ all: rom tools: $(TOOLDIRS) +check-tools: $(CHECKTOOLDIRS) + syms: $(SYM) $(TOOLDIRS): @$(MAKE) -C $@ +$(CHECKTOOLDIRS): + @$(MAKE) -C $@ + rom: $(ROM) ifeq ($(COMPARE),1) @$(SHA1) rom.sha1 @@ -242,11 +248,14 @@ endif # For contributors to make sure a change didn't affect the contents of the ROM. compare: all -clean: mostlyclean clean-tools +clean: mostlyclean clean-tools clean-check-tools clean-tools: @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) +clean-check-tools: + @$(foreach tooldir,$(CHECKTOOLDIRS),$(MAKE) clean -C $(tooldir);) + mostlyclean: tidynonmodern tidymodern rm -f $(SAMPLE_SUBDIR)/*.bin rm -f $(CRY_SUBDIR)/*.bin @@ -455,7 +464,7 @@ LD_SCRIPT_TEST := ld_script_test.txt $(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT_TEST) > ld_script_test.ld -$(TESTELF): $(OBJ_DIR)/ld_script_test.ld $(OBJS) $(TEST_OBJS) libagbsyscall +$(TESTELF): $(OBJ_DIR)/ld_script_test.ld $(OBJS) $(TEST_OBJS) libagbsyscall check-tools @echo "cd $(OBJ_DIR) && $(LD) -T ld_script_test.ld -o ../../$@ " @cd $(OBJ_DIR) && $(LD) $(TESTLDFLAGS) -T ld_script_test.ld -o ../../$@ $(OBJS_REL) $(TEST_OBJS_REL) $(LIB) $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent diff --git a/make_tools.mk b/make_tools.mk index 36dbe8c90..5a5291b77 100644 --- a/make_tools.mk +++ b/make_tools.mk @@ -1,7 +1,6 @@ - MAKEFLAGS += --no-print-directory -TOOLDIRS := $(filter-out tools/mgba tools/agbcc tools/binutils,$(wildcard tools/*)) +TOOLDIRS := tools/aif2pcm tools/bin2c tools/gbafix tools/gbagfx tools/jsonproc tools/mapjson tools/mid2agb tools/preproc tools/ramscrgen tools/rsfont tools/scaninc .PHONY: all $(TOOLDIRS) From ce416be29723bc672c734663f79b7da58bd510b3 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 11 Feb 2023 18:32:07 +0100 Subject: [PATCH 059/125] z_move switch move bug --- src/battle_controller_player.c | 2 ++ src/battle_util.c | 18 +++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index a57bd2995..aeb0203c2 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -882,6 +882,7 @@ static void HandleMoveSwitching(void) if (JOY_NEW(A_BUTTON | SELECT_BUTTON)) { + struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleResources->bufferA[gActiveBattler][4]); PlaySE(SE_SELECT); if (gMoveSelectionCursor[gActiveBattler] != gMultiUsePlayerCursor) @@ -973,6 +974,7 @@ static void HandleMoveSwitching(void) MoveSelectionDisplayPpString(); MoveSelectionDisplayPpNumber(); MoveSelectionDisplayMoveType(); + GetUsableZMoves(gActiveBattler, moveInfo->moves); } else if (JOY_NEW(B_BUTTON | SELECT_BUTTON)) { diff --git a/src/battle_util.c b/src/battle_util.c index 4333d0b44..17784935c 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -3814,7 +3814,7 @@ u8 AtkCanceller_UnableToUseMove(void) { SetRandomMultiHitCounter(); } - + PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) } else if (gBattleMoves[gCurrentMove].flags & FLAG_TWO_STRIKES) @@ -3841,7 +3841,7 @@ u8 AtkCanceller_UnableToUseMove(void) party = gPlayerParty; else party = gEnemyParty; - + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&party[i], MON_DATA_HP) @@ -5487,7 +5487,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_ABILITY_SHIELD); break; } - + gLastUsedAbility = gBattleMons[gBattlerAttacker].ability; gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gLastUsedAbility; @@ -6858,7 +6858,7 @@ static u8 ItemEffectMoveEnd(u32 battlerId, u16 holdEffect) { u8 effect = 0; u32 i; - + switch (holdEffect) { #if B_HP_BERRIES >= GEN_4 @@ -7027,7 +7027,7 @@ static u8 ItemEffectMoveEnd(u32 battlerId, u16 holdEffect) && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY) && HasEnoughHpToEatBerry(battlerId, GetBattlerItemHoldEffectParam(battlerId, gLastUsedItem), gLastUsedItem)) { - gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; + gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; gBattleScripting.battler = battlerId; gPotentialItemEffectBattler = battlerId; BattleScriptPushCursor(); @@ -7036,7 +7036,7 @@ static u8 ItemEffectMoveEnd(u32 battlerId, u16 holdEffect) } break; } - + return effect; } @@ -7053,7 +7053,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gLastUsedItem = gBattleMons[battlerId].item; battlerHoldEffect = GetBattlerHoldEffect(battlerId, TRUE); } - + atkItem = gBattleMons[gBattlerAttacker].item; atkHoldEffect = GetBattlerHoldEffect(gBattlerAttacker, TRUE); atkHoldEffectParam = GetBattlerHoldEffectParam(gBattlerAttacker); @@ -8184,7 +8184,7 @@ u32 GetBattlerHoldEffect(u8 battlerId, bool32 checkNegating) return ItemId_GetHoldEffect(gBattleMons[battlerId].item); } -// +// static u32 GetBattlerItemHoldEffectParam(u8 battlerId, u16 item) { if (item == ITEM_ENIGMA_BERRY) @@ -8234,7 +8234,7 @@ bool32 IsBattlerProtected(u8 battlerId, u16 move) else if (gProtectStructs[battlerId].protected) return FALSE; } - + if (move == MOVE_TEATIME) { return FALSE; From d363ed8152678b5945b4a428dc79207e1c2f0cc6 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 11 Feb 2023 19:55:08 +0100 Subject: [PATCH 060/125] z indicator in double battles --- src/battle_z_move.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_z_move.c b/src/battle_z_move.c index 2eccd82f5..2406c6bb3 100644 --- a/src/battle_z_move.c +++ b/src/battle_z_move.c @@ -372,7 +372,7 @@ static void ShowZMoveTriggerSprite(void) { struct Sprite *sprite = &gSprites[gBattleStruct->zmove.triggerSpriteId]; gBattleStruct->zmove.viable = TRUE; - CreateZMoveTriggerSprite(sprite->tBattler, TRUE); + CreateZMoveTriggerSprite(gActiveBattler, TRUE); } void DestroyZMoveTriggerSprite(void) From 2b32bfcdc1a4fc16641ea1651e5a7355f49b7605 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 12 Feb 2023 19:39:14 +0100 Subject: [PATCH 061/125] add battlerId arg to ShowZMoveTriggerSprite --- src/battle_z_move.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/battle_z_move.c b/src/battle_z_move.c index 2406c6bb3..bdbf5674c 100644 --- a/src/battle_z_move.c +++ b/src/battle_z_move.c @@ -50,7 +50,7 @@ static u16 GetSignatureZMove(u16 move, u16 species, u16 item); static u16 GetTypeBasedZMove(u16 move, u8 battler); static void ZMoveSelectionDisplayPpNumber(void); static void ZMoveSelectionDisplayPower(u16 move, u16 zMove); -static void ShowZMoveTriggerSprite(void); +static void ShowZMoveTriggerSprite(u8 battleId); static bool32 AreStatsMaxed(u8 battlerId, u8 n); static u8 GetZMoveScore(u8 battlerAtk, u8 battlerDef, u16 baseMove, u16 zMove); static void ZMoveSelectionDisplayMoveType(u16 zMove); @@ -258,7 +258,7 @@ bool32 TryChangeZIndicator(u8 battlerId, u8 moveIndex) if (gBattleStruct->zmove.viable && !viableZMove) HideZMoveTriggerSprite(); // Was a viable z move, now is not -> slide out else if (!gBattleStruct->zmove.viable && viableZMove) - ShowZMoveTriggerSprite(); // Was not a viable z move, now is -> slide back in + ShowZMoveTriggerSprite(battlerId); // Was not a viable z move, now is -> slide back in } #define SINGLES_Z_TRIGGER_POS_X_OPTIMAL (29) @@ -368,11 +368,11 @@ void HideZMoveTriggerSprite(void) gBattleStruct->zmove.viable = FALSE; } -static void ShowZMoveTriggerSprite(void) +static void ShowZMoveTriggerSprite(u8 battlerId) { struct Sprite *sprite = &gSprites[gBattleStruct->zmove.triggerSpriteId]; gBattleStruct->zmove.viable = TRUE; - CreateZMoveTriggerSprite(gActiveBattler, TRUE); + CreateZMoveTriggerSprite(battlerId, TRUE); } void DestroyZMoveTriggerSprite(void) From 0577d8d04d439a0fded1ecb80e3ac89f6e0b0aa0 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 13 Feb 2023 14:44:34 +0100 Subject: [PATCH 062/125] Fix Mirror Armor against Clear Body --- data/battle_scripts_1.s | 2 +- include/constants/battle_script_commands.h | 1 + src/battle_script_commands.c | 11 ++++++----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 25386dbf0..7fecdccd5 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3584,7 +3584,7 @@ BattleScript_MirrorArmorReflect:: call BattleScript_AbilityPopUp jumpifsubstituteblocks BattleScript_AbilityNoSpecificStatLoss BattleScript_MirrorArmorReflectStatLoss: - statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_MirrorArmorReflectEnd + statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_MIRROR_ARMOR | STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_MirrorArmorReflectEnd jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_MirrorArmorReflectAnim goto BattleScript_MirrorArmorReflectWontFall BattleScript_MirrorArmorReflectAnim: diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 123fb5d49..935121394 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -273,6 +273,7 @@ // Cmd_statbuffchange #define STAT_CHANGE_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange +#define STAT_CHANGE_MIRROR_ARMOR (1 << 1) // Stat change redirection caused by Mirror Armor ability. #define STAT_CHANGE_NOT_PROTECT_AFFECTED (1 << 5) #define STAT_CHANGE_UPDATE_MOVE_EFFECT (1 << 6) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index be5e2ee21..c9488167f 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -10877,8 +10877,9 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr bool32 certain = FALSE; bool32 notProtectAffected = FALSE; u32 index; - bool32 affectsUser = (flags & MOVE_EFFECT_AFFECTS_USER); u16 activeBattlerAbility; + bool32 affectsUser = (flags & MOVE_EFFECT_AFFECTS_USER); + bool32 mirrorArmored = (flags & STAT_CHANGE_MIRROR_ARMOR); if (affectsUser) gActiveBattler = gBattlerAttacker; @@ -10889,10 +10890,10 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr gSpecialStatuses[gActiveBattler].changedStatsBattlerId = gBattlerAttacker; - flags &= ~MOVE_EFFECT_AFFECTS_USER; + flags &= ~(MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_MIRROR_ARMOR); if (flags & MOVE_EFFECT_CERTAIN) - certain++; + certain = TRUE; flags &= ~MOVE_EFFECT_CERTAIN; if (flags & STAT_CHANGE_NOT_PROTECT_AFFECTED) @@ -10948,7 +10949,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr || activeBattlerAbility == ABILITY_CLEAR_BODY || activeBattlerAbility == ABILITY_FULL_METAL_BODY || activeBattlerAbility == ABILITY_WHITE_SMOKE) - && !affectsUser && !certain && gCurrentMove != MOVE_CURSE) + && (!affectsUser || mirrorArmored) && !certain && gCurrentMove != MOVE_CURSE) { if (GetBattlerHoldEffect(gActiveBattler, TRUE) == HOLD_EFFECT_CLEAR_AMULET) { @@ -11010,7 +11011,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr } return STAT_CHANGE_DIDNT_WORK; } - else if (activeBattlerAbility == ABILITY_MIRROR_ARMOR && !affectsUser && gBattlerAttacker != gBattlerTarget && gActiveBattler == gBattlerTarget) + else if (activeBattlerAbility == ABILITY_MIRROR_ARMOR && !affectsUser && !mirrorArmored && gBattlerAttacker != gBattlerTarget && gActiveBattler == gBattlerTarget) { if (flags == STAT_CHANGE_ALLOW_PTR) { From 2b4d2a76950f90b7b7481dadc3978a0c8c52caa9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 13 Feb 2023 16:27:21 +0100 Subject: [PATCH 063/125] Fix Jaw Lock locking player pokemon --- src/battle_script_commands.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index be5e2ee21..38fb1e069 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3634,7 +3634,7 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_BothCanNoLongerEscape; } - if (!gBattleMons[gBattlerTarget].status2 & STATUS2_ESCAPE_PREVENTION) + if (!(gBattleMons[gBattlerTarget].status2 & STATUS2_ESCAPE_PREVENTION)) gDisableStructs[gBattlerTarget].battlerPreventingEscape = gBattlerAttacker; if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_ESCAPE_PREVENTION)) From 908b509401e497f1df540c5565c5ab498e2bbef1 Mon Sep 17 00:00:00 2001 From: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Date: Tue, 14 Feb 2023 10:49:50 -0500 Subject: [PATCH 064/125] Fix Round's Base Power calc, Add Turn order effects (#2602) * fix round base power calc, add turn order change * remove unused callnative cmd * fix round turn order update * fix moveTarget getting set incorrectly in HandleAction_UseMove. also redirection doesn't affect MOVE_TARGET_ALL_BATTLERS --------- Co-authored-by: ghoulslash --- data/battle_scripts_1.s | 6 +++- include/constants/battle.h | 3 +- src/battle_script_commands.c | 55 +++++++++++++++++++++++++++++++++++- src/battle_util.c | 24 ++++++++++++---- src/data/battle_moves.h | 2 +- 5 files changed, 81 insertions(+), 9 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 25386dbf0..c404dc37d 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -250,7 +250,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectHit @ EFFECT_GYRO_BALL .4byte BattleScript_EffectHit @ EFFECT_ECHOED_VOICE .4byte BattleScript_EffectHit @ EFFECT_PAYBACK - .4byte BattleScript_EffectHit @ EFFECT_ROUND + .4byte BattleScript_EffectRound @ EFFECT_ROUND .4byte BattleScript_EffectHit @ EFFECT_BRINE .4byte BattleScript_EffectHit @ EFFECT_VENOSHOCK .4byte BattleScript_EffectHit @ EFFECT_RETALIATE @@ -3082,6 +3082,10 @@ BattleScript_EffectPlaceholder: printstring STRINGID_NOTDONEYET goto BattleScript_MoveEnd +BattleScript_EffectRound: + setmoveeffect MOVE_EFFECT_ROUND + goto BattleScript_EffectHit + BattleScript_EffectHit:: BattleScript_HitFromAtkCanceler:: attackcanceler diff --git a/include/constants/battle.h b/include/constants/battle.h index be44c21cb..c24178cd0 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -371,8 +371,9 @@ #define MOVE_EFFECT_RELIC_SONG 69 #define MOVE_EFFECT_TRAP_BOTH 70 #define MOVE_EFFECT_DOUBLE_SHOCK 71 +#define MOVE_EFFECT_ROUND 72 -#define NUM_MOVE_EFFECTS 72 +#define NUM_MOVE_EFFECTS 73 #define MOVE_EFFECT_AFFECTS_USER 0x4000 #define MOVE_EFFECT_CERTAIN 0x8000 diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 38fb1e069..d1c0a7c77 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -318,6 +318,7 @@ static void SpriteCB_MonIconOnLvlUpBanner(struct Sprite *sprite); static bool32 CriticalCapture(u32 odds); static void BestowItem(u32 battlerAtk, u32 battlerDef); static bool8 IsFinalStrikeEffect(u16 move); +static void TryUpdateRoundTurnOrder(void); static void Cmd_attackcanceler(void); static void Cmd_accuracycheck(void); @@ -3660,6 +3661,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_DoubleShockRemoveType; break; + case MOVE_EFFECT_ROUND: + TryUpdateRoundTurnOrder(); // If another Pokémon uses Round before the user this turn, the user will use Round directly after it + gBattlescriptCurrInstr++; + break; } } } @@ -14960,7 +14965,7 @@ static void Cmd_callnative(void) func(); } -// Callnative Funcs +// Callnative Funcs void BS_CalcMetalBurstDmg(void) { u8 sideAttacker = GetBattlerSide(gBattlerAttacker); @@ -15089,3 +15094,51 @@ static bool8 IsFinalStrikeEffect(u16 move) } return FALSE; } + +static void TryUpdateRoundTurnOrder(void) +{ + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + u32 i; + u32 j = 0; + u32 k = 0; + u32 currRounder; + u8 roundUsers[3] = {0xFF, 0xFF, 0xFF}; + u8 nonRoundUsers[3] = {0xFF, 0xFF, 0xFF}; + for (i = 0; i < gBattlersCount; i++) + { + if (gBattlerByTurnOrder[i] == gBattlerAttacker) + { + currRounder = i + 1; // Current battler going after attacker + break; + } + } + + // Get battlers after us using round + for (i = currRounder; i < gBattlersCount; i++) + { + if (gChosenMoveByBattler[gBattlerByTurnOrder[i]] == MOVE_ROUND) + roundUsers[j++] = gBattlerByTurnOrder[i]; + else + nonRoundUsers[k++] = gBattlerByTurnOrder[i]; + } + + // update turn order for round users + for (i = 0; roundUsers[i] != 0xFF && i < 3; i++) + { + gBattlerByTurnOrder[currRounder] = roundUsers[i]; + gActionsByTurnOrder[currRounder] = gActionsByTurnOrder[roundUsers[i]]; + gProtectStructs[roundUsers[i]].quash = TRUE; // Make it so their turn order can't be changed again + currRounder++; + } + + // Update turn order for non-round users + for (i = 0; nonRoundUsers[i] != 0xFF && i < 3; i++) + { + gBattlerByTurnOrder[currRounder] = nonRoundUsers[i]; + gActionsByTurnOrder[currRounder] = gActionsByTurnOrder[nonRoundUsers[i]]; + currRounder++; + } + } +} + diff --git a/src/battle_util.c b/src/battle_util.c index c51585185..4503c9208 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -259,7 +259,7 @@ bool32 IsAffectedByFollowMe(u32 battlerAtk, u32 defSide, u32 move) void HandleAction_UseMove(void) { u32 i, side, moveType, var = 4; - u16 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + u16 moveTarget; gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; if (gBattleStruct->absentBattlerFlags & gBitTable[gBattlerAttacker] || !IsBattlerAlive(gBattlerAttacker)) @@ -323,6 +323,8 @@ void HandleAction_UseMove(void) { gCurrentMove = gBattleStruct->zmove.toBeUsed[gBattlerAttacker]; } + + moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); if (gBattleMons[gBattlerAttacker].hp != 0) { @@ -346,7 +348,7 @@ void HandleAction_UseMove(void) } else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gSideTimers[side].followmeTimer == 0 - && (gBattleMoves[gCurrentMove].power != 0 || moveTarget != MOVE_TARGET_USER) + && (gBattleMoves[gCurrentMove].power != 0 || (moveTarget != MOVE_TARGET_USER && moveTarget != MOVE_TARGET_ALL_BATTLERS)) && ((GetBattlerAbility(*(gBattleStruct->moveTarget + gBattlerAttacker)) != ABILITY_LIGHTNING_ROD && moveType == TYPE_ELECTRIC) || (GetBattlerAbility(*(gBattleStruct->moveTarget + gBattlerAttacker)) != ABILITY_STORM_DRAIN && moveType == TYPE_WATER))) { @@ -944,6 +946,10 @@ void HandleAction_ActionFinished(void) { u8 battler1 = gBattlerByTurnOrder[i]; u8 battler2 = gBattlerByTurnOrder[j]; + + if (gProtectStructs[battler1].quash || gProtectStructs[battler2].quash) + continue; + // We recalculate order only for action of the same priority. If any action other than switch/move has been taken, they should // have been executed before. The only recalculation needed is for moves/switch. Mega evolution is handled in src/battle_main.c/TryChangeOrder if((gActionsByTurnOrder[i] == B_ACTION_USE_MOVE && gActionsByTurnOrder[j] == B_ACTION_USE_MOVE)) @@ -2141,7 +2147,9 @@ u8 DoFieldEndTurnEffects(void) s32 j; for (j = i + 1; j < gBattlersCount; j++) { - if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], FALSE)) + if (!gProtectStructs[i].quash + && !gProtectStructs[j].quash + && GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], FALSE)) SwapTurnOrder(i, j); } } @@ -8689,8 +8697,14 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef) basePower *= 2; break; case EFFECT_ROUND: - if (gChosenMoveByBattler[BATTLE_PARTNER(battlerAtk)] == MOVE_ROUND && !(gAbsentBattlerFlags & gBitTable[BATTLE_PARTNER(battlerAtk)])) - basePower *= 2; + for (i = 0; i < gBattlersCount; i++) + { + if (i != battlerAtk && IsBattlerAlive(i) && gLastMoves[i] == MOVE_ROUND) + { + basePower *= 2; + break; + } + } break; case EFFECT_FUSION_COMBO: if (gBattleMoves[gLastUsedMove].effect == EFFECT_FUSION_COMBO && move != gLastUsedMove) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index c34ad89d0..267381563 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -8914,7 +8914,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .type = TYPE_NORMAL, .accuracy = 100, .pp = 15, - .secondaryEffectChance = 0, + .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SOUND, From 7885941d3c37d811dde77a56e85a1fb6f2065053 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Mon, 13 Feb 2023 19:27:52 -0300 Subject: [PATCH 065/125] Tweaked Task_HandleExpansionIntro to fix the water drops glitch Thanks to Tustin2121. --- src/expansion_intro.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/expansion_intro.c b/src/expansion_intro.c index 63bcce4e9..fa4d44601 100644 --- a/src/expansion_intro.c +++ b/src/expansion_intro.c @@ -260,6 +260,7 @@ void Task_HandleExpansionIntro(u8 taskId) break; case 3: ResetSpriteData(); + FreeAllSpritePalettes(); DestroyTask(taskId); CreateTask(Task_Scene1_Load, 0); SetMainCallback2(MainCB2_Intro); From 3f0f7c6b7f1c286bf997d62e055553c3a8e02b84 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Feb 2023 15:30:29 +0100 Subject: [PATCH 066/125] Fix Battle Bond activating multiple times in battle --- include/battle.h | 1 + src/battle_script_commands.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/include/battle.h b/include/battle.h index 79413441c..01dc8d7e0 100644 --- a/include/battle.h +++ b/include/battle.h @@ -653,6 +653,7 @@ struct BattleStruct u8 targetsDone[MAX_BATTLERS_COUNT]; // Each battler as a bit. u16 overwrittenAbilities[MAX_BATTLERS_COUNT]; // abilities overwritten during battle (keep separate from battle history in case of switching) bool8 allowedToChangeFormInWeather[PARTY_SIZE][2]; // For each party member and side, used by Ice Face. + u8 battleBondTransformed[2]; // Bitfield for each party. }; #define F_DYNAMIC_TYPE_1 (1 << 6) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index d1c0a7c77..905bf2b61 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -9851,8 +9851,10 @@ static void Cmd_various(void) case VARIOUS_TRY_ACTIVATE_BATTLE_BOND: if (gBattleMons[gBattlerAttacker].species == SPECIES_GRENINJA_BATTLE_BOND && HasAttackerFaintedTarget() - && CalculateEnemyPartyCount() > 1) + && CalculateEnemyPartyCount() > 1 + && !(gBattleStruct->battleBondTransformed[GET_BATTLER_SIDE2(gBattlerAttacker)] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]])) { + gBattleStruct->battleBondTransformed[GET_BATTLER_SIDE2(gBattlerAttacker)] |= gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]; PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species); gBattleStruct->changedSpecies[gBattlerPartyIndexes[gBattlerAttacker]] = gBattleMons[gBattlerAttacker].species; gBattleMons[gBattlerAttacker].species = SPECIES_GRENINJA_ASH; @@ -14965,7 +14967,7 @@ static void Cmd_callnative(void) func(); } -// Callnative Funcs +// Callnative Funcs void BS_CalcMetalBurstDmg(void) { u8 sideAttacker = GetBattlerSide(gBattlerAttacker); From 9c1c59816085a8e773bc60a18382d673d698a8ff Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 15 Feb 2023 09:49:33 -0500 Subject: [PATCH 067/125] GROUPTYPE_NONE to unsigned --- src/wireless_communication_status_screen.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index dc60f591d..3ce866479 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -32,7 +32,7 @@ enum { #define GROUPTYPE_BATTLE 1 #define GROUPTYPE_UNION 2 #define GROUPTYPE_TOTAL 3 -#define GROUPTYPE_NONE -1 +#define GROUPTYPE_NONE 0xFF #define NUM_GROUPTYPES 4 struct WirelessCommunicationStatusScreen @@ -382,7 +382,7 @@ static u32 CountPlayersInGroupAndGetActivity(struct RfuPlayer * player, u32 * gr for (i = 0; i < ARRAY_COUNT(sActivityGroupInfo); i++) { #ifdef UBFIX - // GROUPTYPE_NONE is -1, and shouldn't be used as an index into groupCounts. + // GROUPTYPE_NONE is 0xFF, and shouldn't be used as an index into groupCounts. // In theory the only activity with this group type (ACTIVITY_SEARCH) wouldn't // satisfy the condition below, but not necessarily. if (group_type(i) == GROUPTYPE_NONE) From e4045a7a5f4b2d8b4e83195aeafc67397625325c Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Wed, 15 Feb 2023 16:19:09 +0100 Subject: [PATCH 068/125] z move pp color (#2690) --- src/battle_message.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/battle_message.c b/src/battle_message.c index 7ec079e72..e6344d733 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -3913,8 +3913,13 @@ void SetPpNumbersPaletteInMoveSelection(void) { struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct *)(&gBattleResources->bufferA[gActiveBattler][4]); const u16 *palPtr = gPPTextPalette; - u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]], + u8 var; + + if (!gBattleStruct->zmove.viewing) + var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]], chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]); + else + var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]], gBattleMoves[gMoveSelectionCursor[gActiveBattler]].pp); gPlttBufferUnfaded[92] = palPtr[(var * 2) + 0]; gPlttBufferUnfaded[91] = palPtr[(var * 2) + 1]; From 94651e77a5719c96cd1e68271cb0426c13c7b049 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Feb 2023 22:18:18 +0100 Subject: [PATCH 069/125] Fix Clang Scales target and effect --- data/battle_scripts_1.s | 5 +++++ src/data/battle_moves.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index c404dc37d..0deb12658 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1283,8 +1283,13 @@ BattleScript_JungleHealingTryRestoreAlly: goto BattleScript_MoveEnd BattleScript_EffectAttackerDefenseDownHit: + @ Lower the Torchic's stat only once + jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_NoMoveEffect setmoveeffect MOVE_EFFECT_DEF_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN goto BattleScript_EffectHit +BattleScript_NoMoveEffect: + setmoveeffect 0 + goto BattleScript_EffectHit BattleScript_EffectRelicSong: setmoveeffect MOVE_EFFECT_RELIC_SONG | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 267381563..eed91d524 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -11554,7 +11554,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .accuracy = 100, .pp = 5, .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, + .target = MOVE_TARGET_BOTH, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SOUND, .split = SPLIT_SPECIAL, From f6a0c882d161d6668aa7e0c951affd95ccf530ae Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Feb 2023 23:44:00 +0100 Subject: [PATCH 070/125] Fix Shield Down Ability pop-up --- data/battle_scripts_1.s | 52 ++++++++++++++++++------------------ src/battle_script_commands.c | 8 +++++- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index c404dc37d..617059d46 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3174,12 +3174,12 @@ BattleScript_EffectSleep:: jumpifuproarwakes BattleScript_CantMakeAsleep jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_InsomniaProtects jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_InsomniaProtects - jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects - jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_LeafGuardProtects + jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_AbilityProtectsDoesntAffect + jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_AbilityProtectsDoesntAffect jumpifflowerveil BattleScript_FlowerVeilProtects jumpifability BS_TARGET_SIDE, ABILITY_SWEET_VEIL, BattleScript_SweetVeilProtects - jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects - jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects + jumpifleafguardprotected BS_TARGET, BattleScript_AbilityProtectsDoesntAffect + jumpifshieldsdown BS_TARGET, BattleScript_AbilityProtectsDoesntAffect jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed jumpifterrainaffected BS_TARGET, STATUS_FIELD_ELECTRIC_TERRAIN, BattleScript_ElectricTerrainPrevents jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents @@ -3259,15 +3259,15 @@ BattleScript_PastelVeilProtects: orhalfword gMoveResultFlags, MOVE_RESULT_FAILED goto BattleScript_MoveEnd -BattleScript_LeafGuardProtectsRet:: +BattleScript_AbilityProtectsDoesntAffectRet:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp printstring STRINGID_ITDOESNTAFFECT waitmessage B_WAIT_TIME_LONG return -BattleScript_LeafGuardProtects: - call BattleScript_LeafGuardProtectsRet +BattleScript_AbilityProtectsDoesntAffect: + call BattleScript_AbilityProtectsDoesntAffectRet orhalfword gMoveResultFlags, MOVE_RESULT_FAILED goto BattleScript_MoveEnd @@ -3777,12 +3777,12 @@ BattleScript_EffectToxic:: attackstring ppreduce jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected - jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects - jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_LeafGuardProtects + jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_AbilityProtectsDoesntAffect + jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_AbilityProtectsDoesntAffect jumpifability BS_TARGET_SIDE, ABILITY_PASTEL_VEIL, BattleScript_PastelVeilProtects jumpifflowerveil BattleScript_FlowerVeilProtects - jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects - jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects + jumpifleafguardprotected BS_TARGET, BattleScript_AbilityProtectsDoesntAffect + jumpifshieldsdown BS_TARGET, BattleScript_AbilityProtectsDoesntAffect jumpifsubstituteblocks BattleScript_ButItFailed jumpifstatus BS_TARGET, STATUS1_POISON | STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed @@ -4118,12 +4118,12 @@ BattleScript_EffectPoison:: attackstring ppreduce jumpifability BS_TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected - jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects - jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_LeafGuardProtects + jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_AbilityProtectsDoesntAffect + jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_AbilityProtectsDoesntAffect jumpifability BS_TARGET_SIDE, ABILITY_PASTEL_VEIL, BattleScript_PastelVeilProtects jumpifflowerveil BattleScript_FlowerVeilProtects - jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects - jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects + jumpifleafguardprotected BS_TARGET, BattleScript_AbilityProtectsDoesntAffect + jumpifshieldsdown BS_TARGET, BattleScript_AbilityProtectsDoesntAffect jumpifsubstituteblocks BattleScript_ButItFailed jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned jumpifstatus BS_TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned @@ -4145,11 +4145,11 @@ BattleScript_EffectParalyze: attackstring ppreduce jumpifability BS_TARGET, ABILITY_LIMBER, BattleScript_LimberProtected - jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects - jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_LeafGuardProtects + jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_AbilityProtectsDoesntAffect + jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_AbilityProtectsDoesntAffect jumpifflowerveil BattleScript_FlowerVeilProtects - jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects - jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects + jumpifleafguardprotected BS_TARGET, BattleScript_AbilityProtectsDoesntAffect + jumpifshieldsdown BS_TARGET, BattleScript_AbilityProtectsDoesntAffect jumpifsubstituteblocks BattleScript_ButItFailed typecalc BattleScript_BattleScript_EffectParalyzeNoTypeCalc: @@ -5581,11 +5581,11 @@ BattleScript_EffectWillOWisp:: jumpiftype BS_TARGET, TYPE_FIRE, BattleScript_NotAffected jumpifability BS_TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents jumpifability BS_TARGET, ABILITY_WATER_BUBBLE, BattleScript_WaterVeilPrevents - jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects - jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_LeafGuardProtects + jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_AbilityProtectsDoesntAffect + jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_AbilityProtectsDoesntAffect jumpifflowerveil BattleScript_FlowerVeilProtects - jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects - jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects + jumpifleafguardprotected BS_TARGET, BattleScript_AbilityProtectsDoesntAffect + jumpifshieldsdown BS_TARGET, BattleScript_AbilityProtectsDoesntAffect jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE @@ -5875,10 +5875,10 @@ BattleScript_EffectYawn:: jumpifability BS_TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBattlerAbilityMadeIneffective jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBattlerAbilityMadeIneffective jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_PrintBattlerAbilityMadeIneffective - jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_LeafGuardProtects + jumpifability BS_TARGET, ABILITY_PURIFYING_SALT, BattleScript_AbilityProtectsDoesntAffect jumpifflowerveil BattleScript_FlowerVeilProtects - jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects - jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects + jumpifleafguardprotected BS_TARGET, BattleScript_AbilityProtectsDoesntAffect + jumpifshieldsdown BS_TARGET, BattleScript_AbilityProtectsDoesntAffect jumpifsubstituteblocks BattleScript_ButItFailed jumpifsafeguard BattleScript_SafeguardProtected accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index d1c0a7c77..04092d3b6 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3908,6 +3908,7 @@ static void Cmd_jumpifability(void) gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 4); RecordAbilityBattle(battlerId, gLastUsedAbility); gBattlerAbility = battlerId; + while (1); } else { @@ -8352,9 +8353,14 @@ static void Cmd_various(void) return; case VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED: if (IsShieldsDownProtected(gActiveBattler)) + { + gBattlerAbility = gActiveBattler; gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + } else + { gBattlescriptCurrInstr += 7; + } return; case VARIOUS_JUMP_IF_NO_HOLD_EFFECT: if (GetBattlerHoldEffect(gActiveBattler, TRUE) != gBattlescriptCurrInstr[3]) @@ -14965,7 +14971,7 @@ static void Cmd_callnative(void) func(); } -// Callnative Funcs +// Callnative Funcs void BS_CalcMetalBurstDmg(void) { u8 sideAttacker = GetBattlerSide(gBattlerAttacker); From 97f9c0a4d9a274000e17b6ae1b0350e4e3efb3db Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Feb 2023 23:45:53 +0100 Subject: [PATCH 071/125] oof --- src/battle_script_commands.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 04092d3b6..15183c0b5 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3908,7 +3908,6 @@ static void Cmd_jumpifability(void) gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 4); RecordAbilityBattle(battlerId, gLastUsedAbility); gBattlerAbility = battlerId; - while (1); } else { From fea54c9277808c8de4c4a21078598dc9926d5d31 Mon Sep 17 00:00:00 2001 From: sbird Date: Wed, 15 Feb 2023 01:06:24 +0100 Subject: [PATCH 072/125] [intro] add fading, refactor abort, align intro gfx --- graphics/expansion_intro/rhh_credits.bin | Bin 2048 -> 2048 bytes graphics/expansion_intro/rhh_credits.png | Bin 1703 -> 1708 bytes src/expansion_intro.c | 31 ++++++++++++++++++----- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/graphics/expansion_intro/rhh_credits.bin b/graphics/expansion_intro/rhh_credits.bin index 629a2e9544af1ebc9589eb6c6fbe444fb87cad6e..44ec5e7e42e213a791b665e36f5402f490cf21cf 100644 GIT binary patch literal 2048 zcmeH@S5pE(5QIN;%>ff86fj`M958?ZOsAX?6v3SJ|Gzu8cvQ(B;KALg?WyhQuAOQy z=RYUl!9xX=D5|KYhFa>Vr-4S{3)Mt3URr3CcN^`39r*Oj$<5Jp(nU8t^x~(FegXtF zA7ViFL53J6%m|~5363+NdDkCQlS~m|ni*!9WB%8_z@pYIvCIllR#{_RaHGT@Bd&Fu zY_To1Lrl5b7kYvuyQ0}+U+{oKt#|*ousD)yag3!>*x2esD;)PJXPnE-=7LMoWVqt` vk3Y)|Ir37s+;PtXk31Fq&%E$TR@gV*`QVc;zKecm2XjmUCIOQ`ITH8*HG>;N literal 2048 zcmeIuS5I6)3_#&;Vd=g177{}5z1Jj!un;;V^xpsf8&@kpyT5=3t}RQ}%p6;D2;(yw zh)9ttDowf!nX+Wdkt_0^dGZw~RHRsm(%`%-L0Ck&3YDr~qNUgUZ-4mV zr(c%+w&G84x0=Mq#HYr{r#GhxD(Z98`D*>_+qy6;~S|KFh_$3dPrb>`fK e%LM+)wHvqY+oZ*&9^= diff --git a/graphics/expansion_intro/rhh_credits.png b/graphics/expansion_intro/rhh_credits.png index 177022a9d607fee02efd627816b253b4fa37481a..02e1dd3b6e871eec5fa91898acff1c787af20a39 100644 GIT binary patch delta 890 zcmV-=1BLvj4Xh2YKm&hQNkliTgDL+>V$C07|Te6N_8$5sNcT_t5VYa5}d z2S0MDlc962s>tpt_4T8;1t~#2*(p)oHFJ6wkP&|@)?|}4f?0uzX1A1W zC!FJ!?saCabc>zT>|-|nE_v4D|N(r<*A z;F=AL@2hcNo&cVc|IS@4G*j?kYMnp>Sl~Ojtuco>MFtsa%!8?P0tH~HP3BC~y$hfd zWX?35Doua31rQdG^3)8#rEcm>)2Z^vgRlufm=+JH69QoM3i836X*xyLK1xlQx59@tSvf8f>{8B zzA^xtjBDbT{ult3I@nH=i34C?5un@R#050XWM2jF&8&Z@$;A2Ii9LGGiqENERzl=~DnTruUddzES#~1Neo-;J(mkHe+>PXEHo( zH2)D`%ykCG;CF@Kq`tNUuzCP(m110q8F1{lQ;q|OTd$;)57PoBhB^~0E`X*KR17HeZLgI9gVF5FvH^szXYxc+u?q+ z_O_^dAK-)YPLp4N(*f}Gh0KR*1xg!FWgArR@ic(wFkbP+z$&JIx6=TwSO0c%HxT>V z)d@6jsKS4*2op{Nz{f%GL?~SG<@;^ypr$!*3!>c=gndpG`}P0Jf`1i&?wv7LGXoTJu0Zf)C zF{fg~;zM6bZye6^-6Xv)0t8Qp!5=Tv)8=TO+J>l55#iqf_+t45`0)UL0GaWSgubl8 QhX4Qo07*qoM6N<$f?7ME7XSbN delta 885 zcmV-*1B(2t4W|vTKm&hLNklYCJ4K)C1sxQ&ED!VnP;{YWSb|50W{+`mq;oe z0e0CG0bHyK&?SGD0NP?IpT+=;Y)b$>Rs)#QChTkz#)}866EQ$CHgWjFGQc_{GM%CR zO}z_Xj7PQAjCH)$DS+(9GV5mNA$TKkz+x;1>XY%-QdtLv(AbHT7(h9e0U*ip002(L z^kgxi0F_t@&~G78p8>$bWH}{8YB3zc-+{)*$})Qk;1++7Xd&qW0PrrvZoF%YvCR5J z%-o)vP&rD3{XmfRBe|OLM63>A!i}%(^H%dQW=SQJs}TSyu>*j8mTeDQ_djPkjN>OD zQ^Oaj#f|_L(U^?E9G4ahG`dXr&DzbibcP|zl>svVxV75>zUPgY z^W_1$*$;nGyw|ZFv9}&Ek@*qP_DhPKFApF?yabS_1Qbd}e+obx&Oo|OEav<+T%#`o z1Z(IGr+5hxgO2TA1Ypy?1h8_QJPFWl4qz&&AhD5(>L~yc#W_9LKv+X5KFHanVm?*} zz&X{Y0dSq^wwD3m_CuZrfUhFX@d^N()7cJu0$_iEpDu6;%pu*9!WY{?@fh*t06t}Z z06z|38%x2hV1If$fGb2_-NV@10WKGOx|$8e{&X=0hgWdD9l-ra1ius6SNBjq15g6N z_y3;?ejk89O$aMca9US*Ymc3jf=78h2_94;gbo47%AiOUCBmT8O~w^8#RcgrQGD_V z@ThIs#pwP~m`=E$T=!63$0|q|4;4KpoZ!cG=`=#34a&sn!yQVm8y9f$Q9)TYM+J?A zlazaB(}?(almdi$tgdtWADvkdwyF?92j(dQsiM)(tKbjd(*XYfni7_^82nq%00000 LNkvXXu0mjfJt3GW diff --git a/src/expansion_intro.c b/src/expansion_intro.c index fa4d44601..8fdb7c1cb 100644 --- a/src/expansion_intro.c +++ b/src/expansion_intro.c @@ -1,6 +1,5 @@ #include "global.h" #include "bg.h" -#include "clear_save_data_menu.h" #include "decompress.h" #include "palette.h" #include "sound.h" @@ -10,6 +9,7 @@ #include "trig.h" #include "main.h" #include "intro.h" +#include "m4a.h" #include "expansion_intro.h" #include "constants/rgb.h" #include "constants/songs.h" @@ -253,17 +253,34 @@ void Task_HandleExpansionIntro(u8 taskId) tState++; break; case 2: - if (tFrameCounter == 208 || gMain.newKeys != 0) + if (tFrameCounter == 208) + { tState++; + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + } + else if (gMain.newKeys != 0) + { + CpuFill16(0, gPlttBufferFaded, sizeof(gPlttBufferFaded)); + if (IsCryPlaying()) + StopCry(); + m4aSongNumStop(SE_BIKE_HOP); + m4aSongNumStop(SE_M_DOUBLE_SLAP); + tState++; + } else + { tFrameCounter++; + } break; case 3: - ResetSpriteData(); - FreeAllSpritePalettes(); - DestroyTask(taskId); - CreateTask(Task_Scene1_Load, 0); - SetMainCallback2(MainCB2_Intro); + if (!gPaletteFade.active) + { + ResetSpriteData(); + FreeAllSpritePalettes(); + DestroyTask(taskId); + CreateTask(Task_Scene1_Load, 0); + SetMainCallback2(MainCB2_Intro); + } break; } } From 1c970afd6a651f4e8e1c3929fa9c36ac14e3272b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Feb 2023 10:53:29 +0100 Subject: [PATCH 073/125] fix follow me working in singles (#2644) * fix follow me working in singles --- data/battle_scripts_1.s | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index c404dc37d..bfcc3dc72 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -5677,6 +5677,9 @@ BattleScript_EffectFollowMe:: attackcanceler attackstring ppreduce + .if B_UPDATED_MOVE_DATA >= GEN_6 + jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_ButItFailed + .endif setforcedtarget attackanimation waitanimation From 4c18ed2bd40fb5a4672b27fb88a36cb78617a245 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Feb 2023 15:11:48 +0100 Subject: [PATCH 074/125] remove comment --- data/battle_scripts_1.s | 1 - 1 file changed, 1 deletion(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 0deb12658..053ef2fc1 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1283,7 +1283,6 @@ BattleScript_JungleHealingTryRestoreAlly: goto BattleScript_MoveEnd BattleScript_EffectAttackerDefenseDownHit: - @ Lower the Torchic's stat only once jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_NoMoveEffect setmoveeffect MOVE_EFFECT_DEF_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN goto BattleScript_EffectHit From 978d34295356e255eea3bcdfca18122ce97c42dd Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Feb 2023 15:26:26 +0100 Subject: [PATCH 075/125] use NUM_BATTLE_SIDES --- include/battle.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/battle.h b/include/battle.h index 01dc8d7e0..764c292bf 100644 --- a/include/battle.h +++ b/include/battle.h @@ -653,7 +653,7 @@ struct BattleStruct u8 targetsDone[MAX_BATTLERS_COUNT]; // Each battler as a bit. u16 overwrittenAbilities[MAX_BATTLERS_COUNT]; // abilities overwritten during battle (keep separate from battle history in case of switching) bool8 allowedToChangeFormInWeather[PARTY_SIZE][2]; // For each party member and side, used by Ice Face. - u8 battleBondTransformed[2]; // Bitfield for each party. + u8 battleBondTransformed[NUM_BATTLE_SIDES]; // Bitfield for each party. }; #define F_DYNAMIC_TYPE_1 (1 << 6) From 0d78b29902c8595219cd211482ddf7f75692165f Mon Sep 17 00:00:00 2001 From: sbird Date: Wed, 8 Feb 2023 17:06:44 +0100 Subject: [PATCH 076/125] [test, output] display KNOWN_FAILING in yellow --- test/test_runner.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/test_runner.c b/test/test_runner.c index a10a3a89d..3cb1f7c21 100644 --- a/test/test_runner.c +++ b/test/test_runner.c @@ -187,7 +187,17 @@ void CB2_TestRunner(void) switch (gTestRunnerState.result) { - case TEST_RESULT_FAIL: result = "FAIL"; break; + case TEST_RESULT_FAIL: + if (gTestRunnerState.expectedResult == TEST_RESULT_FAIL) + { + result = "KNOWN_FAILING"; + color = "\e[33m"; + } + else + { + result = "FAIL"; + } + break; case TEST_RESULT_PASS: result = "PASS"; break; case TEST_RESULT_SKIP: result = "SKIP"; break; case TEST_RESULT_INVALID: result = "INVALID"; break; From d7f68a3893045acff68bf37a892af0e7225ab7b4 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Feb 2023 15:57:15 +0100 Subject: [PATCH 077/125] IsAceMon - not isAceMon --- src/battle_ai_switch_items.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index f976b47e3..a8c09c40b 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -27,7 +27,7 @@ static bool32 AiExpectsToFaintPlayer(void); static bool32 AI_ShouldHeal(u32 healAmount); static bool32 AI_OpponentCanFaintAiWithMod(u32 healAmount); -static bool32 isAceMon(u32 battlerId, u32 monPartyId) +static bool32 IsAceMon(u32 battlerId, u32 monPartyId) { if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON && !(gBattleStruct->forcedSwitch) @@ -118,7 +118,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) continue; if (i == gBattlerPartyIndexes[gActiveBattler]) continue; - if (isAceMon(gActiveBattler, i)) + if (IsAceMon(gActiveBattler, i)) continue; for (opposingBattler = GetBattlerAtPosition(opposingPosition), j = 0; j < MAX_MON_MOVES; j++) @@ -210,7 +210,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) continue; if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (isAceMon(gActiveBattler, i)) + if (IsAceMon(gActiveBattler, i)) continue; @@ -290,7 +290,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(void) for (i = firstId; i < lastId; i++) { - if (isAceMon(gActiveBattler, i)) + if (IsAceMon(gActiveBattler, i)) continue; //Look for mon in party that is able to be switched into and has ability that sets terrain @@ -582,7 +582,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u16 flags, u8 moduloPercent) continue; if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (isAceMon(gActiveBattler, i)) + if (IsAceMon(gActiveBattler, i)) continue; @@ -674,7 +674,7 @@ bool32 ShouldSwitch(void) continue; if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (isAceMon(gActiveBattler, i)) + if (IsAceMon(gActiveBattler, i)) { hasAceMon = TRUE; continue; @@ -771,7 +771,7 @@ void AI_TrySwitchOrUseItem(void) continue; if (monToSwitchId == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) continue; - if (isAceMon(gActiveBattler, monToSwitchId)) + if (IsAceMon(gActiveBattler, monToSwitchId)) continue; break; @@ -974,7 +974,7 @@ u8 GetMostSuitableMonToSwitchInto(void) { invalidMons |= gBitTable[i]; } - else if (isAceMon(gActiveBattler, i))// Save Ace Pokemon for last. + else if (IsAceMon(gActiveBattler, i))// Save Ace Pokemon for last. { aceMonId = i; invalidMons |= gBitTable[i]; From 6cdca24c31c0a8f216c176b01b86aeeb5038b535 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Feb 2023 21:58:00 +0100 Subject: [PATCH 078/125] use forced switch battler bit --- src/battle_ai_switch_items.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index a8c09c40b..b43927819 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -30,7 +30,7 @@ static bool32 AI_OpponentCanFaintAiWithMod(u32 healAmount); static bool32 IsAceMon(u32 battlerId, u32 monPartyId) { if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_ACE_POKEMON - && !(gBattleStruct->forcedSwitch) + && !(gBattleStruct->forcedSwitch & gBitTable[battlerId]) && monPartyId == CalculateEnemyPartyCount()-1) return TRUE; return FALSE; From d637ee3b133220876be0c49aa8d55a86bd2c1773 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 16 Feb 2023 21:59:36 +0100 Subject: [PATCH 079/125] Fix After You for gen8 (#2646) Fix After You --- include/battle.h | 1 + src/battle_script_commands.c | 3 ++- src/battle_util.c | 50 +++++++++++++++++++----------------- test/move_effect_after_you.c | 1 - 4 files changed, 29 insertions(+), 26 deletions(-) diff --git a/include/battle.h b/include/battle.h index 764c292bf..8be922384 100644 --- a/include/battle.h +++ b/include/battle.h @@ -191,6 +191,7 @@ struct SpecialStatus u8 weatherAbilityDone:1; u8 terrainAbilityDone:1; u8 emergencyExited:1; + u8 afterYou:1; }; struct SideTimer diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index b7adc22ae..57311e671 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -9394,7 +9394,7 @@ static void Cmd_various(void) break; case VARIOUS_AFTER_YOU: if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget) - || GetBattlerTurnOrderNum(gBattlerAttacker) == GetBattlerTurnOrderNum(gBattlerTarget) + 1) + || GetBattlerTurnOrderNum(gBattlerAttacker) + 1 == GetBattlerTurnOrderNum(gBattlerTarget)) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); } @@ -9419,6 +9419,7 @@ static void Cmd_various(void) gBattlerByTurnOrder[2] = gBattlerTarget; gBattlerByTurnOrder[3] = data[2]; } + gSpecialStatuses[gBattlerTarget].afterYou = 1; gBattlescriptCurrInstr += 7; } return; diff --git a/src/battle_util.c b/src/battle_util.c index 4503c9208..8d350553d 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -323,7 +323,7 @@ void HandleAction_UseMove(void) { gCurrentMove = gBattleStruct->zmove.toBeUsed[gBattlerAttacker]; } - + moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); if (gBattleMons[gBattlerAttacker].hp != 0) @@ -909,9 +909,8 @@ void HandleAction_NothingIsFainted(void) void HandleAction_ActionFinished(void) { #if B_RECALC_TURN_AFTER_ACTIONS >= GEN_8 - u8 i, j; - u8 battler1 = 0; - u8 battler2 = 0; + u32 i, j; + bool32 afterYouActive = gSpecialStatuses[gBattlerByTurnOrder[gCurrentTurnActionNumber + 1]].afterYou; #endif *(gBattleStruct->monToSwitchIntoId + gBattlerByTurnOrder[gCurrentTurnActionNumber]) = PARTY_SIZE; gCurrentTurnActionNumber++; @@ -938,29 +937,32 @@ void HandleAction_ActionFinished(void) gBattleResources->battleScriptsStack->size = 0; #if B_RECALC_TURN_AFTER_ACTIONS >= GEN_8 - // i starts at `gCurrentTurnActionNumber` because we don't want to recalculate turn order for mon that have already - // taken action. It's been previously increased, which we want in order to not recalculate the turn of the mon that just finished its action - for (i = gCurrentTurnActionNumber; i < gBattlersCount - 1; i++) + if (!afterYouActive) { - for (j = i + 1; j < gBattlersCount; j++) + // i starts at `gCurrentTurnActionNumber` because we don't want to recalculate turn order for mon that have already + // taken action. It's been previously increased, which we want in order to not recalculate the turn of the mon that just finished its action + for (i = gCurrentTurnActionNumber; i < gBattlersCount - 1; i++) { - u8 battler1 = gBattlerByTurnOrder[i]; - u8 battler2 = gBattlerByTurnOrder[j]; - - if (gProtectStructs[battler1].quash || gProtectStructs[battler2].quash) - continue; - - // We recalculate order only for action of the same priority. If any action other than switch/move has been taken, they should - // have been executed before. The only recalculation needed is for moves/switch. Mega evolution is handled in src/battle_main.c/TryChangeOrder - if((gActionsByTurnOrder[i] == B_ACTION_USE_MOVE && gActionsByTurnOrder[j] == B_ACTION_USE_MOVE)) + for (j = i + 1; j < gBattlersCount; j++) { - if (GetWhoStrikesFirst(battler1, battler2, FALSE)) - SwapTurnOrder(i, j); - } - else if ((gActionsByTurnOrder[i] == B_ACTION_SWITCH && gActionsByTurnOrder[j] == B_ACTION_SWITCH)) - { - if (GetWhoStrikesFirst(battler1, battler2, TRUE)) // If the actions chosen are switching, we recalc order but ignoring the moves - SwapTurnOrder(i, j); + u8 battler1 = gBattlerByTurnOrder[i]; + u8 battler2 = gBattlerByTurnOrder[j]; + + if (gProtectStructs[battler1].quash || gProtectStructs[battler2].quash) + continue; + + // We recalculate order only for action of the same priority. If any action other than switch/move has been taken, they should + // have been executed before. The only recalculation needed is for moves/switch. Mega evolution is handled in src/battle_main.c/TryChangeOrder + if((gActionsByTurnOrder[i] == B_ACTION_USE_MOVE && gActionsByTurnOrder[j] == B_ACTION_USE_MOVE)) + { + if (GetWhoStrikesFirst(battler1, battler2, FALSE)) + SwapTurnOrder(i, j); + } + else if ((gActionsByTurnOrder[i] == B_ACTION_SWITCH && gActionsByTurnOrder[j] == B_ACTION_SWITCH)) + { + if (GetWhoStrikesFirst(battler1, battler2, TRUE)) // If the actions chosen are switching, we recalc order but ignoring the moves + SwapTurnOrder(i, j); + } } } } diff --git a/test/move_effect_after_you.c b/test/move_effect_after_you.c index 400fc053f..a488d7a8c 100644 --- a/test/move_effect_after_you.c +++ b/test/move_effect_after_you.c @@ -8,7 +8,6 @@ ASSUMPTIONS DOUBLE_BATTLE_TEST("After You makes the target move after user") { - if (B_RECALC_TURN_AFTER_ACTIONS >= GEN_8) KNOWN_FAILING; // #2615. GIVEN { PLAYER(SPECIES_WOBBUFFET) { Speed(4); } PLAYER(SPECIES_WYNAUT) { Speed(1); } From a60b179bcb656fea173f3cd6ecab311551ab6a90 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 16 Feb 2023 18:20:54 -0300 Subject: [PATCH 080/125] Incorporated fixes from upstream --- src/frontier_pass.c | 2 +- src/wireless_communication_status_screen.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 5c90d258a..07e06ad3b 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -35,7 +35,7 @@ // after gFrontierPassBg_Pal (by default, gFrontierPassBg_Gfx) as a palette. // Nothing uses these colors (except the Trainer Card, which correctly writes them) // so in practice this bug has no effect on the game. -#ifdef BUGFIX_ +#ifdef BUGFIX #define NUM_BG_PAL_SLOTS 8 #else #define NUM_BG_PAL_SLOTS 13 diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index d1fd20202..f80e2356e 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -392,7 +392,7 @@ static u32 CountPlayersInGroupAndGetActivity(struct RfuPlayer * player, u32 * gr for (i = 0; i < ARRAY_COUNT(sActivityGroupInfo); i++) { -#ifdef UBFIX_ +#ifdef UBFIX // GROUPTYPE_NONE is 0xFF, and shouldn't be used as an index into groupCounts. // In theory the only activity with this group type (ACTIVITY_SEARCH) wouldn't // satisfy the condition below, but not necessarily. From 0573aa455a140c07e5d66c2ba0750aa3fc69a08e Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Fri, 17 Feb 2023 09:47:13 +0000 Subject: [PATCH 081/125] Introduce macros to parse battle script arguments CMD_ARGS for regular commands, VARIOUS_ARGS for various commands, and NATIVE_ARGS for callnative commands. --- asm/macros/battle_script.inc | 894 +++++------ src/battle_script_commands.c | 2800 +++++++++++++++++++++++----------- 2 files changed, 2357 insertions(+), 1337 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 2d7bd436f..4f11fc78b 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -3,9 +3,9 @@ .byte 0x0 .endm - .macro accuracycheck failPtr:req, move:req + .macro accuracycheck failInstr:req, move:req .byte 0x1 - .4byte \failPtr + .4byte \failInstr .2byte \move .endm @@ -116,11 +116,11 @@ .4byte NULL .endm - .macro tryfaintmon_spikes battler:req, ptr:req + .macro tryfaintmon_spikes battler:req, instr:req .byte 0x19 .byte \battler .byte TRUE - .4byte \ptr + .4byte \instr .endm .macro dofaintanimation battler:req @@ -133,65 +133,65 @@ .byte \battler .endm - .macro jumpifstatus battler:req, status1:req, ptr:req + .macro jumpifstatus battler:req, flags:req, jumpInstr:req .byte 0x1c .byte \battler - .4byte \status1 - .4byte \ptr + .4byte \flags + .4byte \jumpInstr .endm - .macro jumpifstatus2 battler:req, status2:req, ptr:req + .macro jumpifstatus2 battler:req, flags:req, jumpInstr:req .byte 0x1d .byte \battler - .4byte \status2 - .4byte \ptr + .4byte \flags + .4byte \jumpInstr .endm - .macro jumpifability battler:req, ability:req, ptr:req + .macro jumpifability battler:req, ability:req, jumpInstr:req .byte 0x1e .byte \battler .2byte \ability - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifsideaffecting battler:req, sidestatus:req, ptr:req + .macro jumpifsideaffecting battler:req, flags:req, jumpInstr:req .byte 0x1f .byte \battler - .4byte \sidestatus - .4byte \ptr + .4byte \flags + .4byte \jumpInstr .endm - .macro jumpifstat battler:req, ifflag:req, stat:req, value:req, ptr + .macro jumpifstat battler:req, comparison:req, stat:req, value:req, jumpInstr:req .byte 0x20 .byte \battler - .byte \ifflag + .byte \comparison .byte \stat .byte \value - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifstatus3condition battler:req, status3:req, condition:req, ptr:req + .macro jumpifstatus3condition battler:req, flags:req, jumpIfTrue:req, jumpInstr:req .byte 0x21 .byte \battler - .4byte \status3 - .byte \condition - .4byte \ptr + .4byte \flags + .byte \jumpIfTrue + .4byte \jumpInstr .endm - .macro jumpbasedontype battler:req, type:req, case:req, ptr:req + .macro jumpbasedontype battler:req, type:req, jumpIfType:req, jumpInstr:req .byte 0x22 .byte \battler .byte \type - .byte \case - .4byte \ptr + .byte \jumpIfType + .4byte \jumpInstr .endm - .macro jumpiftype battler:req, type:req, ptr:req - jumpbasedontype \battler, \type, 1, \ptr + .macro jumpiftype battler:req, type:req, jumpInstr:req + jumpbasedontype \battler, \type, TRUE, \jumpInstr .endm - .macro jumpifnottype battler:req, type:req, ptr:req - jumpbasedontype \battler, \type, 0, \ptr + .macro jumpifnottype battler:req, type:req, jumpInstr:req + jumpbasedontype \battler, \type, FALSE, \jumpInstr .endm .macro getexp battler:req @@ -199,9 +199,9 @@ .byte \battler .endm - .macro checkteamslost ptr:req + .macro checkteamslost jumpInstr:req .byte 0x24 - .4byte \ptr + .4byte \jumpInstr .endm .macro movevaluescleanup @@ -213,72 +213,72 @@ .byte \value .endm - .macro decrementmultihit value:req + .macro decrementmultihit loopInstr:req .byte 0x27 - .4byte \value + .4byte \loopInstr .endm - .macro goto ptr:req + .macro goto instr:req .byte 0x28 - .4byte \ptr + .4byte \instr .endm - .macro jumpifbyte ifflag:req, val:req, byte:req, ptr:req + .macro jumpifbyte comparison:req, bytePtr:req, value:req, jumpInstr:req .byte 0x29 - .byte \ifflag - .4byte \val - .byte \byte - .4byte \ptr + .byte \comparison + .4byte \bytePtr + .byte \value + .4byte \jumpInstr .endm - .macro jumpifhalfword ifflag:req, val:req, hword:req, ptr:req + .macro jumpifhalfword comparison:req, halfwordPtr:req, value:req, jumpInstr:req .byte 0x2a - .byte \ifflag - .4byte \val - .2byte \hword - .4byte \ptr + .byte \comparison + .4byte \halfwordPtr + .2byte \value + .4byte \jumpInstr .endm - .macro jumpifword ifflag:req, val:req, word:req, ptr:req + .macro jumpifword comparison:req, wordPtr:req, value:req, jumpInstr:req .byte 0x2b - .byte \ifflag - .4byte \val - .4byte \word - .4byte \ptr + .byte \comparison + .4byte \wordPtr + .4byte \value + .4byte \jumpInstr .endm - .macro jumpifarrayequal val1:req, val2:req, size:req, ptr:req + .macro jumpifarrayequal array1:req, array2:req, size:req, jumpInstr:req .byte 0x2c - .4byte \val1 - .4byte \val2 + .4byte \array1 + .4byte \array2 .byte \size - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifarraynotequal val1:req, val2:req, size:req, ptr:req + .macro jumpifarraynotequal array1:req, array2:req, size:req, jumpInstr:req .byte 0x2d - .4byte \val1 - .4byte \val2 + .4byte \array1 + .4byte \array2 .byte \size - .4byte \ptr + .4byte \jumpInstr .endm - .macro setbyte ptr:req, byte:req + .macro setbyte bytePtr:req, value:req .byte 0x2e - .4byte \ptr - .byte \byte + .4byte \bytePtr + .byte \value .endm - .macro addbyte ptr:req, byte:req + .macro addbyte bytePtr:req, value:req .byte 0x2f - .4byte \ptr - .byte \byte + .4byte \bytePtr + .byte \value .endm - .macro subbyte ptr:req, byte:req + .macro subbyte bytePtr:req, value:req .byte 0x30 - .4byte \ptr - .byte \byte + .4byte \bytePtr + .byte \value .endm .macro copyarray dest:req, src:req, size:req @@ -288,53 +288,53 @@ .byte \size .endm - .macro copyarraywithindex dest:req, src:req, index:req, size:req + .macro copyarraywithindex dest:req, src:req, indexPtr:req, size:req .byte 0x32 .4byte \dest .4byte \src - .4byte \index + .4byte \indexPtr .byte \size .endm - .macro orbyte ptr:req, byte:req + .macro orbyte bytePtr:req, value:req .byte 0x33 - .4byte \ptr - .byte \byte + .4byte \bytePtr + .byte \value .endm - .macro orhalfword ptr:req, hword:req + .macro orhalfword halfwordPtr:req, value:req .byte 0x34 - .4byte \ptr - .2byte \hword + .4byte \halfwordPtr + .2byte \value .endm - .macro orword ptr:req, word:req + .macro orword wordPtr:req, value:req .byte 0x35 - .4byte \ptr - .4byte \word + .4byte \wordPtr + .4byte \value .endm - .macro bicbyte ptr:req, byte:req + .macro bicbyte bytePtr:req, value:req .byte 0x36 - .4byte \ptr - .byte \byte + .4byte \bytePtr + .byte \value .endm - .macro bichalfword ptr:req, hword:req + .macro bichalfword halfwordPtr:req, value:req .byte 0x37 - .4byte \ptr - .2byte \hword + .4byte \halfwordPtr + .2byte \value .endm - .macro bicword ptr:req, word:req + .macro bicword wordPtr:req, value:req .byte 0x38 - .4byte \ptr - .4byte \word + .4byte \wordPtr + .4byte \value .endm - .macro pause time:req + .macro pause frames:req .byte 0x39 - .2byte \time + .2byte \frames .endm .macro waitstate @@ -362,53 +362,53 @@ .byte 0x3f .endm - .macro jumpifaffectedbyprotect ptr:req + .macro jumpifaffectedbyprotect failInstr:req .byte 0x40 - .4byte \ptr + .4byte \failInstr .endm - .macro call ptr:req + .macro call instr:req .byte 0x41 - .4byte \ptr + .4byte \instr .endm .macro setroost .byte 0x42 .endm - .macro jumpifabilitypresent ability:req, ptr:req + .macro jumpifabilitypresent ability:req, jumpInstr:req .byte 0x43 .2byte \ability - .4byte \ptr + .4byte \jumpInstr .endm .macro endselectionscript .byte 0x44 .endm - .macro playanimation battler:req, animType:req, arg=NULL + .macro playanimation battler:req, animId:req, argPtr=NULL .byte 0x45 .byte \battler - .byte \animType - .4byte \arg + .byte \animId + .4byte \argPtr .endm - .macro playanimation_var battler:req, animType:req, arg=NULL + .macro playanimation_var battler:req, animIdPtr:req, argPtr=NULL .byte 0x46 .byte \battler - .4byte \animType - .4byte \arg + .4byte \animIdPtr + .4byte \argPtr .endm .macro setgraphicalstatchangevalues .byte 0x47 .endm - .macro playstatchangeanimation battler:req, stats:req, statchange:req + .macro playstatchangeanimation battler:req, stats:req, flags:req .byte 0x48 .byte \battler .byte \stats - .byte \statchange + .byte \flags .endm .macro moveend endMode:req, endState:req @@ -449,9 +449,9 @@ moveend 2, \to .endm - .macro sethealblock ptr:req + .macro sethealblock failInstr:req .byte 0x4a - .4byte \ptr + .4byte \failInstr .endm .macro returnatktoball @@ -468,22 +468,22 @@ .byte \battler .endm - .macro switchinanim battler:req, dontclearsubstitutebit:req + .macro switchinanim battler:req, dontClearSubstitute:req .byte 0x4e .byte \battler - .byte \dontclearsubstitutebit + .byte \dontClearSubstitute .endm - .macro jumpifcantswitch battler:req, ptr:req + .macro jumpifcantswitch battler:req, jumpInstr:req .byte 0x4f .byte \battler - .4byte \ptr + .4byte \jumpInstr .endm - .macro openpartyscreen battler:req, ptr:req + .macro openpartyscreen battler:req, failInstr:req .byte 0x50 .byte \battler - .4byte \ptr + .4byte \failInstr .endm .macro switchhandleorder battler:req, state:req @@ -526,21 +526,21 @@ .byte \battler .endm - .macro handlelearnnewmove learnedMovePtr:req, nothingToLearnPtr:req, isFirstMove:req + .macro handlelearnnewmove learnedMoveInstr:req, nothingToLearnInstr:req, isFirstMove:req .byte 0x59 - .4byte \learnedMovePtr - .4byte \nothingToLearnPtr + .4byte \learnedMoveInstr + .4byte \nothingToLearnInstr .byte \isFirstMove .endm - .macro yesnoboxlearnmove forgotMovePtr:req + .macro yesnoboxlearnmove forgotMoveInstr:req .byte 0x5a - .4byte \forgotMovePtr + .4byte \forgotMoveInstr .endm - .macro yesnoboxstoplearningmove noPtr:req + .macro yesnoboxstoplearningmove noInstr:req .byte 0x5b - .4byte \noPtr + .4byte \noInstr .endm .macro hitanimation battler:req @@ -607,9 +607,9 @@ .byte 0x68 .endm - .macro setgravity ptr:req + .macro setgravity failInstr:req .byte 0x69 - .4byte \ptr + .4byte \failInstr .endm .macro removeitem battler:req @@ -647,9 +647,9 @@ .byte 0x71 .endm - .macro jumpifplayerran ptr:req + .macro jumpifplayerran jumpInstr:req .byte 0x72 - .4byte \ptr + .4byte \jumpInstr .endm .macro hpthresholds battler:req @@ -684,14 +684,14 @@ .byte 0x79 .endm - .macro jumpifnexttargetvalid ptr:req + .macro jumpifnexttargetvalid jumpInstr:req .byte 0x7a - .4byte \ptr + .4byte \jumpInstr .endm - .macro tryhealhalfhealth ptr:req, battler:req + .macro tryhealhalfhealth failInstr:req, battler:req .byte 0x7b - .4byte \ptr + .4byte \failInstr .byte \battler .endm @@ -716,24 +716,24 @@ .byte \mode .endm - .macro trysetrest ptr:req + .macro trysetrest failInstr:req .byte 0x81 - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifnotfirstturn ptr:req + .macro jumpifnotfirstturn jumpInstr:req .byte 0x82 - .4byte \ptr + .4byte \jumpInstr .endm - .macro setmiracleeye ptr:req + .macro setmiracleeye failInstr:req .byte 0x83 - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifuproarwakes ptr:req + .macro jumpifuproarwakes jumpInstr:req .byte 0x84 - .4byte \ptr + .4byte \jumpInstr .endm .macro stockpile id:req @@ -741,24 +741,24 @@ .byte \id .endm - .macro stockpiletobasedamage ptr:req + .macro stockpiletobasedamage failInstr:req .byte 0x86 - .4byte \ptr + .4byte \failInstr .endm - .macro stockpiletohpheal ptr:req + .macro stockpiletohpheal failInstr:req .byte 0x87 - .4byte \ptr + .4byte \failInstr .endm .macro setdrainedhp .byte 0x88 .endm - .macro statbuffchange flags:req, jumpptr:req + .macro statbuffchange flags:req, failInstr:req .byte 0x89 .2byte \flags - .4byte \jumpptr + .4byte \failInstr .endm .macro normalisebuffs @@ -773,23 +773,23 @@ .byte 0x8c .endm - .macro setmultihitcounter val:req + .macro setmultihitcounter value:req .byte 0x8d - .byte \val + .byte \value .endm .macro initmultihitstring .byte 0x8e .endm - .macro forcerandomswitch ptr:req + .macro forcerandomswitch failInstr:req .byte 0x8f - .4byte \ptr + .4byte \failInstr .endm - .macro tryconversiontypechange ptr:req + .macro tryconversiontypechange failInstr:req .byte 0x90 - .4byte \ptr + .4byte \failInstr .endm .macro givepaydaymoney @@ -800,9 +800,9 @@ .byte 0x92 .endm - .macro tryKO ptr:req + .macro tryKO failInstr:req .byte 0x93 - .4byte \ptr + .4byte \failInstr .endm .macro damagetohalftargethp @@ -817,9 +817,9 @@ .byte 0x96 .endm - .macro tryinfatuating ptr:req + .macro tryinfatuating failInstr:req .byte 0x97 - .4byte \ptr + .4byte \failInstr .endm .macro updatestatusicon battler:req @@ -843,9 +843,9 @@ .byte 0x9c .endm - .macro mimicattackcopy ptr:req + .macro mimicattackcopy failInstr:req .byte 0x9d - .4byte \ptr + .4byte \failInstr .endm .macro metronome @@ -860,48 +860,48 @@ .byte 0xa0 .endm - .macro counterdamagecalculator ptr:req + .macro counterdamagecalculator failInstr:req .byte 0xa1 - .4byte \ptr + .4byte \failInstr .endm - .macro mirrorcoatdamagecalculator ptr:req + .macro mirrorcoatdamagecalculator failInstr:req .byte 0xa2 - .4byte \ptr + .4byte \failInstr .endm - .macro disablelastusedattack ptr:req + .macro disablelastusedattack failInstr:req .byte 0xa3 - .4byte \ptr + .4byte \failInstr .endm - .macro trysetencore ptr:req + .macro trysetencore failInstr:req .byte 0xa4 - .4byte \ptr + .4byte \failInstr .endm - .macro painsplitdmgcalc ptr:req + .macro painsplitdmgcalc failInstr:req .byte 0xa5 - .4byte \ptr + .4byte \failInstr .endm - .macro settypetorandomresistance ptr:req + .macro settypetorandomresistance failInstr:req .byte 0xa6 - .4byte \ptr + .4byte \failInstr .endm .macro setalwayshitflag .byte 0xa7 .endm - .macro copymovepermanently ptr:req + .macro copymovepermanently failInstr:req .byte 0xa8 - .4byte \ptr + .4byte \failInstr .endm - .macro trychoosesleeptalkmove ptr:req + .macro trychoosesleeptalkmove failInstr:req .byte 0xa9 - .4byte \ptr + .4byte \failInstr .endm .macro setdestinybond @@ -912,56 +912,56 @@ .byte 0xab .endm - .macro settailwind ptr:req + .macro settailwind failInstr:req .byte 0xac - .4byte \ptr + .4byte \failInstr .endm - .macro tryspiteppreduce ptr:req + .macro tryspiteppreduce failInstr:req .byte 0xad - .4byte \ptr + .4byte \failInstr .endm .macro healpartystatus .byte 0xae .endm - .macro cursetarget ptr:req + .macro cursetarget failInstr:req .byte 0xaf - .4byte \ptr + .4byte \failInstr .endm - .macro trysetspikes ptr:req + .macro trysetspikes failInstr:req .byte 0xb0 - .4byte \ptr + .4byte \failInstr .endm .macro setforesight .byte 0xb1 .endm - .macro trysetperishsong ptr:req + .macro trysetperishsong failInstr:req .byte 0xb2 - .4byte \ptr + .4byte \failInstr .endm .macro handlerollout .byte 0xb3 .endm - .macro jumpifconfusedandstatmaxed stat:req, ptr:req + .macro jumpifconfusedandstatmaxed stat:req, jumpInstr:req .byte 0xb4 .byte \stat - .4byte \ptr + .4byte \jumpInstr .endm .macro handlefurycutter .byte 0xb5 .endm - .macro setembargo ptr:req + .macro setembargo failInstr:req .byte 0xb6 - .4byte \ptr + .4byte \failInstr .endm .macro presentdamagecalculation @@ -976,23 +976,23 @@ .byte 0xb9 .endm - .macro jumpifnopursuitswitchdmg ptr:req + .macro jumpifnopursuitswitchdmg jumpInstr:req .byte 0xba - .4byte \ptr + .4byte \jumpInstr .endm .macro setsunny .byte 0xbb .endm - .macro maxattackhalvehp ptr:req + .macro maxattackhalvehp failInstr:req .byte 0xbc - .4byte \ptr + .4byte \failInstr .endm - .macro copyfoestats ptr:req + .macro copyfoestats unused:req .byte 0xbd - .4byte \ptr + .4byte \unused .endm .macro rapidspinfree @@ -1003,29 +1003,29 @@ .byte 0xbf .endm - .macro recoverbasedonsunlight ptr:req + .macro recoverbasedonsunlight failInstr:req .byte 0xc0 - .4byte \ptr + .4byte \failInstr .endm - .macro setstickyweb ptr:req + .macro setstickyweb failInstr:req .byte 0xc1 - .4byte \ptr + .4byte \failInstr .endm .macro selectfirstvalidtarget .byte 0xc2 .endm - .macro trysetfutureattack ptr:req + .macro trysetfutureattack failInstr:req .byte 0xc3 - .4byte \ptr + .4byte \failInstr .endm - .macro trydobeatup endPtr=NULL, failPtr=NULL + .macro trydobeatup endInstr, failInstr .byte 0xc4 - .4byte \endPtr - .4byte \failPtr + .4byte \endInstr + .4byte \failInstr .endm .macro setsemiinvulnerablebit @@ -1044,9 +1044,9 @@ .byte 0xc8 .endm - .macro trymemento ptr:req + .macro trymemento failInstr:req .byte 0xc9 - .4byte \ptr + .4byte \failInstr .endm .macro setforcedtarget @@ -1061,105 +1061,105 @@ .byte 0xcc .endm - .macro cureifburnedparalysedorpoisoned ptr:req + .macro cureifburnedparalysedorpoisoned failInstr:req .byte 0xcd - .4byte \ptr + .4byte \failInstr .endm - .macro settorment ptr:req + .macro settorment failInstr:req .byte 0xce - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifnodamage ptr:req + .macro jumpifnodamage jumpInstr:req .byte 0xcf - .4byte \ptr + .4byte \jumpInstr .endm - .macro settaunt ptr:req + .macro settaunt failInstr:req .byte 0xd0 - .4byte \ptr + .4byte \failInstr .endm - .macro trysethelpinghand ptr:req + .macro trysethelpinghand failInstr:req .byte 0xd1 - .4byte \ptr + .4byte \failInstr .endm - .macro tryswapitems ptr:req + .macro tryswapitems failInstr:req .byte 0xd2 - .4byte \ptr + .4byte \failInstr .endm - .macro trycopyability ptr:req + .macro trycopyability failInstr:req .byte 0xd3 - .4byte \ptr + .4byte \failInstr .endm - .macro trywish turnNumber:req, ptr:req + .macro trywish turnNumber:req, failInstr:req .byte 0xd4 .byte \turnNumber - .4byte \ptr + .4byte \failInstr .endm - .macro settoxicspikes ptr:req + .macro settoxicspikes failInstr:req .byte 0xd5 - .4byte \ptr + .4byte \failInstr .endm - .macro setgastroacid ptr:req + .macro setgastroacid failInstr:req .byte 0xd6 - .4byte \ptr + .4byte \failInstr .endm - .macro setyawn ptr:req + .macro setyawn failInstr:req .byte 0xd7 - .4byte \ptr + .4byte \failInstr .endm - .macro setdamagetohealthdifference ptr:req + .macro setdamagetohealthdifference failInstr:req .byte 0xd8 - .4byte \ptr + .4byte \failInstr .endm .macro setroom .byte 0xd9 .endm - .macro tryswapabilities ptr:req + .macro tryswapabilities failInstr:req .byte 0xda - .4byte \ptr + .4byte \failInstr .endm - .macro tryimprison ptr:req + .macro tryimprison failInstr:req .byte 0xdb - .4byte \ptr + .4byte \failInstr .endm - .macro setstealthrock ptr:req + .macro setstealthrock failInstr:req .byte 0xdc - .4byte \ptr + .4byte \failInstr .endm - .macro setuserstatus3 flags:req, ptr:req + .macro setuserstatus3 flags:req, failInstr:req .byte 0xdd .4byte \flags - .4byte \ptr + .4byte \failInstr .endm - .macro assistattackselect ptr:req + .macro assistattackselect failInstr:req .byte 0xde - .4byte \ptr + .4byte \failInstr .endm - .macro trysetmagiccoat ptr:req + .macro trysetmagiccoat failInstr:req .byte 0xdf - .4byte \ptr + .4byte \failInstr .endm - .macro trysetsnatch ptr:req + .macro trysetsnatch failInstr:req .byte 0xe0 - .4byte \ptr + .4byte \failInstr .endm .macro unused2 ptr:req @@ -1172,10 +1172,10 @@ .byte \battler .endm - .macro jumpifhasnohp battler:req, ptr:req + .macro jumpifhasnohp battler:req, jumpInstr:req .byte 0xe3 .byte \battler - .4byte \ptr + .4byte \jumpInstr .endm .macro getsecretpowereffect @@ -1194,29 +1194,29 @@ .byte 0xe7 .endm - .macro settypebasedhalvers ptr:req + .macro settypebasedhalvers failInstr:req .byte 0xe8 - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifsubstituteblocks ptr:req + .macro jumpifsubstituteblocks jumpInstr:req .byte 0xe9 - .4byte \ptr + .4byte \jumpInstr .endm - .macro tryrecycleitem ptr:req + .macro tryrecycleitem failInstr:req .byte 0xea - .4byte \ptr + .4byte \failInstr .endm - .macro settypetoterrain ptr:req + .macro settypetoterrain failInstr:req .byte 0xeb - .4byte \ptr + .4byte \failInstr .endm - .macro pursuitdoubles ptr:req + .macro pursuitdoubles failInstr:req .byte 0xec - .4byte \ptr + .4byte \failInstr .endm .macro snatchsetbattlers @@ -1235,18 +1235,18 @@ .byte 0xf0 .endm - .macro trysetcaughtmondexflags ptr:req + .macro trysetcaughtmondexflags failInstr:req .byte 0xf1 - .4byte \ptr + .4byte \failInstr .endm .macro displaydexinfo .byte 0xf2 .endm - .macro trygivecaughtmonnick ptr:req + .macro trygivecaughtmonnick successInstr:req .byte 0xf3 - .4byte \ptr + .4byte \successInstr .endm .macro subattackerhpbydmg @@ -1270,9 +1270,9 @@ .byte \position .endm - .macro settelekinesis ptr:req + .macro settelekinesis failInstr:req .byte 0xf9 - .4byte \ptr + .4byte \failInstr .endm .macro swapstatstages stat:req @@ -1285,9 +1285,9 @@ .byte \stat .endm - .macro jumpifoppositegenders ptr:req + .macro jumpifoppositegenders jumpInstr:req .byte 0xfc - .4byte \ptr + .4byte \jumpInstr .endm .macro unused ptr:req @@ -1295,9 +1295,9 @@ .4byte \ptr .endm - .macro tryworryseed ptr:req + .macro tryworryseed failInstr:req .byte 0xfe - .4byte \ptr + .4byte \failInstr .endm .macro callnative func:req @@ -1306,16 +1306,16 @@ .endm @ callnative macros - .macro metalburstdamagecalculator ptr:req + .macro metalburstdamagecalculator failInstr:req callnative BS_CalcMetalBurstDmg - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifholdeffect battler:req, holdEffect:req, ptr:req + .macro jumpifholdeffect battler:req, holdEffect:req, jumpInstr:req callnative BS_JumpIfHoldEffect .byte \battler .2byte \holdEffect - .4byte \ptr + .4byte \jumpInstr .endm @ various command changed to more readable macros @@ -1480,82 +1480,82 @@ .2byte \move .endm - .macro setluckychant battler:req, ptr:req + .macro setluckychant battler:req, failInstr:req various \battler VARIOUS_SET_LUCKY_CHANT - .4byte \ptr + .4byte \failInstr .endm - .macro suckerpunchcheck ptr:req + .macro suckerpunchcheck failInstr:req various BS_ATTACKER, VARIOUS_SUCKER_PUNCH_CHECK - .4byte \ptr + .4byte \failInstr .endm - .macro setabilitysimple battler:req, ptr:req + .macro setabilitysimple battler:req, failInstr:req various \battler VARIOUS_SET_SIMPLE_BEAM - .4byte \ptr + .4byte \failInstr .endm - .macro tryentrainment ptr:req + .macro tryentrainment failInstr:req various BS_ATTACKER, VARIOUS_TRY_ENTRAINMENT - .4byte \ptr + .4byte \failInstr .endm .macro setlastusedability battler:req various \battler, VARIOUS_SET_LAST_USED_ABILITY .endm - .macro tryhealpulse battler:req, ptr:req + .macro tryhealpulse battler:req, failInstr:req various \battler, VARIOUS_TRY_HEAL_PULSE - .4byte \ptr + .4byte \failInstr .endm - .macro tryquash ptr:req + .macro tryquash failInstr:req various BS_ATTACKER, VARIOUS_TRY_QUASH - .4byte \ptr + .4byte \failInstr .endm - .macro tryafteryou ptr:req + .macro tryafteryou failInstr:req various BS_ATTACKER, VARIOUS_AFTER_YOU - .4byte \ptr + .4byte \failInstr .endm - .macro trybestow ptr:req + .macro trybestow failInstr:req various BS_ATTACKER, VARIOUS_BESTOW - .4byte \ptr + .4byte \failInstr .endm .macro invertstatstages battler:req various \battler, VARIOUS_INVERT_STAT_STAGES .endm - .macro setterrain ptr:req + .macro setterrain failInstr:req various BS_ATTACKER, VARIOUS_SET_TERRAIN - .4byte \ptr + .4byte \failInstr .endm - .macro trymefirst ptr:req + .macro trymefirst failInstr:req various BS_ATTACKER, VARIOUS_TRY_ME_FIRST - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifbattleend ptr:req + .macro jumpifbattleend jumpInstr:req various BS_ATTACKER, VARIOUS_JUMP_IF_BATTLE_END - .4byte \ptr + .4byte \jumpInstr .endm - .macro tryelectrify ptr:req + .macro tryelectrify failInstr:req various BS_ATTACKER, VARIOUS_TRY_ELECTRIFY - .4byte \ptr + .4byte \failInstr .endm - .macro tryreflecttype ptr:req + .macro tryreflecttype failInstr:req various BS_ATTACKER, VARIOUS_TRY_REFLECT_TYPE - .4byte \ptr + .4byte \failInstr .endm - .macro trysoak ptr:req + .macro trysoak failInstr:req various BS_ATTACKER, VARIOUS_TRY_SOAK - .4byte \ptr + .4byte \failInstr .endm .macro handlemegaevo battler:req, case:req @@ -1573,33 +1573,33 @@ .byte \case .endm - .macro jumpifcantuselastresort battler:req, ptr:req + .macro jumpifcantuselastresort battler:req, jumpInstr:req various \battler, VARIOUS_TRY_LAST_RESORT - .4byte \ptr + .4byte \jumpInstr .endm .macro argumentstatuseffect various BS_ATTACKER, VARIOUS_ARGUMENT_STATUS_EFFECT .endm - .macro tryhitswitchtarget ptr:req + .macro tryhitswitchtarget failInstr:req various BS_ATTACKER, VARIOUS_TRY_HIT_SWITCH_TARGET - .4byte \ptr + .4byte \failInstr .endm - .macro tryautotomize battler:req, ptr:req + .macro tryautotomize battler:req, failInstr:req various \battler, VARIOUS_TRY_AUTOTOMIZE - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifcantusesynchronoise ptr:req + .macro jumpifcantusesynchronoise jumpInstr:req various BS_ATTACKER, VARIOUS_TRY_SYNCHRONOISE - .4byte \ptr + .4byte \jumpInstr .endm - .macro trycopycat ptr:req + .macro trycopycat failInstr:req various BS_ATTACKER, VARIOUS_TRY_COPYCAT - .4byte \ptr + .4byte \failInstr .endm .macro showabilitypopup battler:req @@ -1610,20 +1610,20 @@ various \battler, VARIOUS_UPDATE_ABILITY_POPUP .endm - .macro defogclear battler:req, clear:req, ptr:req + .macro defogclear battler:req, clear:req, failInstr:req various \battler, VARIOUS_DEFOG .byte \clear - .4byte \ptr + .4byte \failInstr .endm - .macro jumpiftargetally ptr:req + .macro jumpiftargetally jumpInstr:req various BS_ATTACKER, VARIOUS_JUMP_IF_TARGET_ALLY - .4byte \ptr + .4byte \jumpInstr .endm - .macro trypsychoshift ptr:req + .macro trypsychoshift failInstr:req various BS_ATTACKER, VARIOUS_PSYCHO_SHIFT - .4byte \ptr + .4byte \failInstr .endm .macro curestatus battler:req @@ -1638,14 +1638,14 @@ various BS_ATTACKER, VARIOUS_ARGUMENT_TO_MOVE_EFFECT .endm - .macro jumpifnotgrounded battler:req, ptr:req + .macro jumpifnotgrounded battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_NOT_GROUNDED - .4byte \ptr + .4byte \jumpInstr .endm - .macro handletrainerslidemsg battler:req, field:req + .macro handletrainerslidemsg battler:req, case:req various \battler, VARIOUS_HANDLE_TRAINER_SLIDE_MSG - .byte \field + .byte \case .endm .macro trytrainerslidefirstdownmsg battler:req @@ -1660,14 +1660,14 @@ various \battler, VARIOUS_SET_AURORA_VEIL .endm - .macro trysetthirdtype battler:req, ptr:req + .macro trysetthirdtype battler:req, failInstr:req various \battler, VARIOUS_TRY_THIRD_TYPE - .4byte \ptr + .4byte \failInstr .endm - .macro tryaccupressure battler:req, ptr:req + .macro tryaccupressure battler:req, failInstr:req various \battler, VARIOUS_ACUPRESSURE - .4byte \ptr + .4byte \failInstr .endm .macro setpowder battler:req @@ -1682,24 +1682,24 @@ various \battler, VARIOUS_GRAVITY_ON_AIRBORNE_MONS .endm - .macro checkgrassyterrainheal battler:req, ptr:req + .macro checkgrassyterrainheal battler:req, failInstr:req various \battler, VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifnotberry battler:req, ptr:req + .macro jumpifnotberry battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_NOT_BERRY - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifroarfails ptr:req + .macro jumpifroarfails jumpInstr:req various BS_ATTACKER, VARIOUS_JUMP_IF_ROAR_FAILS - .4byte \ptr + .4byte \jumpInstr .endm - .macro tryinstruct ptr:req + .macro tryinstruct failInstr:req various BS_ATTACKER, VARIOUS_TRY_INSTRUCT - .4byte \ptr + .4byte \failInstr .endm .macro settracedability battler:req @@ -1714,19 +1714,19 @@ various \battler, VARIOUS_TRY_ILLUSION_OFF .endm - .macro spriteignore0hp val:req + .macro spriteignore0hp value:req various BS_ATTACKER, VARIOUS_SET_SPRITEIGNORE0HP - .byte \val + .byte \value .endm - .macro getstatvalue battler:req, statId:req + .macro getstatvalue battler:req, stat:req various \battler, VARIOUS_GET_STAT_VALUE - .byte \statId + .byte \stat .endm - .macro jumpiffullhp battler:req, ptr:req + .macro jumpiffullhp battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_FULL_HP - .4byte \ptr + .4byte \jumpInstr .endm .macro losetype battler:req, type:req @@ -1738,60 +1738,60 @@ various \battler, VARIOUS_TRY_FRISK .endm - .macro jumpifshieldsdown battler:req, ptr:req + .macro jumpifshieldsdown battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED - .4byte \ptr + .4byte \jumpInstr .endm - .macro trypoisontype attacker:req, target:req, ptr:req + .macro trypoisontype attacker:req, target:req, failInstr:req various \attacker, VARIOUS_POISON_TYPE_IMMUNITY .byte \target - .4byte \ptr + .4byte \failInstr .endm - .macro tryparalyzetype attacker:req, target:req, ptr:req + .macro tryparalyzetype attacker:req, target:req, failInstr:req various \attacker, VARIOUS_PARALYZE_TYPE_IMMUNITY .byte \target - .4byte \ptr + .4byte \failInstr .endm - .macro trysetfairylock ptr:req + .macro trysetfairylock failInstr:req various BS_ATTACKER, VARIOUS_TRY_FAIRY_LOCK - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifnoally battler:req, ptr:req + .macro jumpifnoally battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_NO_ALLY - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifnoholdeffect battler:req, holdEffet:req, ptr:req + .macro jumpifnoholdeffect battler:req, holdEffect:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_NO_HOLD_EFFECT - .byte \holdEffet - .4byte \ptr + .byte \holdEffect + .4byte \jumpInstr .endm - .macro infatuatewithbattler battler1:req, battler2:req - various \battler1, VARIOUS_INFATUATE_WITH_BATTLER - .byte \battler2 + .macro infatuatewithbattler battler:req, infatuateWith:req + various \battler, VARIOUS_INFATUATE_WITH_BATTLER + .byte \infatuateWith .endm .macro setlastuseditem battler:req various \battler, VARIOUS_SET_LAST_USED_ITEM .endm - .macro jumpifabsent battler:req, ptr:req + .macro jumpifabsent battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_ABSENT - .4byte \ptr + .4byte \jumpInstr .endm .macro destroyabilitypopup various BS_ABILITY_BATTLER, VARIOUS_DESTROY_ABILITY_POPUP .endm - .macro gettotemboost ptr:req + .macro gettotemboost jumpInstr:req various BS_ATTACKER, VARIOUS_TOTEM_BOOST - .4byte \ptr + .4byte \jumpInstr .endm .macro tryactivategrimneigh, battler:req @@ -1802,9 +1802,9 @@ various BS_ATTACKER, VARIOUS_SET_Z_EFFECT .endm - .macro consumeberry battler:req, frombattler:req + .macro consumeberry battler:req, fromBattler:req various \battler, VARIOUS_CONSUME_BERRY - .byte \frombattler + .byte \fromBattler .endm .macro activateitemeffects battler:req @@ -1815,44 +1815,44 @@ various 0, VARIOUS_PICKPOCKET .endm - .macro doterrainseed battler:req, ptr:req + .macro doterrainseed battler:req, failInstr:req various \battler, VARIOUS_TERRAIN_SEED - .4byte \ptr + .4byte \failInstr .endm .macro makeinvisible battler:req various \battler, VARIOUS_MAKE_INVISIBLE .endm - .macro tryroomservice battler:req, ptr:req + .macro tryroomservice battler:req, failInstr:req various \battler, VARIOUS_ROOM_SERVICE - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifterrainaffected battler:req, terrainFlags:req, ptr:req + .macro jumpifterrainaffected battler:req, terrainFlags:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_TERRAIN_AFFECTED .4byte \terrainFlags - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifpranksterblocked battler:req, ptr:req + .macro jumpifpranksterblocked battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_PRANKSTER_BLOCKED - .4byte \ptr + .4byte \jumpInstr .endm - .macro eeriespellppreduce ptr:req + .macro eeriespellppreduce failInstr:req various BS_TARGET, VARIOUS_EERIE_SPELL_PP_REDUCE - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifteamhealthy battler:req, ptr:req + .macro jumpifteamhealthy battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_TEAM_HEALTHY - .4byte \ptr + .4byte \jumpInstr .endm - .macro tryhealquarterhealth battler:req, ptr:req + .macro tryhealquarterhealth battler:req, failInstr:req various \battler, VARIOUS_TRY_HEAL_QUARTER_HP - .4byte \ptr + .4byte \failInstr .endm .macro removeterrain @@ -1867,73 +1867,73 @@ various BS_TARGET, VARIOUS_SET_ATTACKER_STICKY_WEB_USER .endm - .macro getrototillertargets ptr:req + .macro getrototillertargets failInstr:req various BS_ATTACKER, VARIOUS_GET_ROTOTILLER_TARGETS - .4byte \ptr + .4byte \failInstr .endm - .macro jumpifnotrototilleraffected battler:req, ptr:req + .macro jumpifnotrototilleraffected battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED - .4byte \ptr + .4byte \jumpInstr .endm .macro tryactivatebattlebond battler:req various \battler, VARIOUS_TRY_ACTIVATE_BATTLE_BOND .endm - .macro jumpifcantreverttoprimal ptr:req + .macro jumpifcantreverttoprimal jumpInstr:req various BS_ATTACKER, VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL - .4byte \ptr + .4byte \jumpInstr .endm .macro applyplasmafists various BS_ATTACKER, VARIOUS_APPLY_PLASMA_FISTS .endm - .macro jumpifweatheraffected battler:req, weather:req, ptr:req + .macro jumpifweatheraffected battler:req, flags:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_WEATHER_AFFECTED - .4byte \weather - .4byte \ptr + .4byte \flags + .4byte \jumpInstr .endm - .macro jumpifspecies battler:req, species:req, ptr:req + .macro jumpifspecies battler:req, species:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_SPECIES .2byte \species - .4byte \ptr + .4byte \jumpInstr .endm .macro tryendneutralizinggas battler:req various \battler, VARIOUS_TRY_END_NEUTRALIZING_GAS .endm - .macro trynoretreat battler:req, ptr:req + .macro trynoretreat battler:req, failInstr:req various \battler, VARIOUS_TRY_NO_RETREAT - .4byte \ptr + .4byte \failInstr .endm - .macro trytarshot battler:req, ptr:req + .macro trytarshot battler:req, failInstr:req various \battler, VARIOUS_TRY_TAR_SHOT - .4byte \ptr + .4byte \failInstr .endm - .macro cantarshotwork battler:req, ptr:req + .macro cantarshotwork battler:req, failInstr:req various \battler, VARIOUS_CAN_TAR_SHOT_WORK - .4byte \ptr + .4byte \failInstr .endm - .macro checkpoltergeist battler:req, ptr:req + .macro checkpoltergeist battler:req, failInstr:req various \battler, VARIOUS_CHECK_POLTERGEIST - .4byte \ptr + .4byte \failInstr .endm - .macro setoctolock battler:req, ptr:req + .macro setoctolock battler:req, failInstr:req various \battler, VARIOUS_SET_OCTOLOCK - .4byte \ptr + .4byte \failInstr .endm - .macro cutonethirdhpraisestats ptr:req + .macro cutonethirdhpraisestats failInstr:req various BS_ATTACKER, VARIOUS_CUT_1_3_HP_RAISE_STATS - .4byte \ptr + .4byte \failInstr .endm .macro photongeysercheck battler:req @@ -1944,34 +1944,34 @@ various BS_ATTACKER, VARIOUS_SHELL_SIDE_ARM_CHECK .endm - .macro jumpifrodaffected battler:req, ptr:req + .macro jumpifrodaffected battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_ROD - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifabsorbaffected battler:req, ptr:req + .macro jumpifabsorbaffected battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_ABSORB - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifmotoraffected battler:req, ptr:req + .macro jumpifmotoraffected battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_MOTOR - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifteanoberry ptr:req + .macro jumpifteanoberry jumpInstr:req various BS_ATTACKER, VARIOUS_TEATIME_TARGETS - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifteainvulnerable battler:req, ptr:req + .macro jumpifteainvulnerable battler:req, jumpInstr:req various \battler, VARIOUS_TEATIME_INVUL - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpifcantfling battler:req, ptr:req + .macro jumpifcantfling battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_CANT_FLING - .4byte \ptr + .4byte \jumpInstr .endm .macro curecertainstatuses battler:req @@ -1982,15 +1982,15 @@ various \battler, VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES .endm - .macro jumpiflastuseditemberry ptr:req + .macro jumpiflastuseditemberry jumpInstr:req various BS_ATTACKER, VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY - .4byte \ptr + .4byte \jumpInstr .endm - .macro jumpiflastuseditemholdeffect battler:req, holdEffect:req, ptr:req + .macro jumpiflastuseditemholdeffect battler:req, holdEffect:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT .byte \holdEffect - .4byte \ptr + .4byte \jumpInstr .endm .macro savebattleritem battler:req @@ -2021,19 +2021,19 @@ various \battler, VARIOUS_GET_BATTLER_SIDE .endm - .macro checkparentalbondcounter counter:req, ptr:req + .macro checkparentalbondcounter counter:req, jumpInstr:req various BS_ATTACKER, VARIOUS_CHECK_PARENTAL_BOND_COUNTER .byte \counter - .4byte \ptr + .4byte \jumpInstr .endm .macro swapstats stat:req various BS_ATTACKER, VARIOUS_SWAP_STATS .byte \stat .endm - .macro trywindriderpower battler:req, ptr:req + .macro trywindriderpower battler:req, failInstr:req various \battler, VARIOUS_TRY_WIND_RIDER_POWER - .4byte \ptr + .4byte \failInstr .endm .macro activateweatherchangeabilities battler:req @@ -2044,9 +2044,9 @@ various \battler, VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES .endm - .macro jumpifnovalidtargets ptr:req + .macro jumpifnovalidtargets jumpInstr:req various BS_ATTACKER, VARIOUS_JUMP_IF_NO_VALID_TARGETS - .4byte \ptr + .4byte \jumpInstr .endm @ helpful macros @@ -2091,44 +2091,44 @@ copyarray \dst, \src, 0x4 .endm - .macro jumpifbytenotequal byte1:req, byte2:req, jumpptr:req - jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr + .macro jumpifbytenotequal byte1:req, byte2:req, jumpInstr:req + jumpifarraynotequal \byte1, \byte2, 0x1, \jumpInstr .endm - .macro jumpifbyteequal byte1:req, byte2:req, jumpptr:req - jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr + .macro jumpifbyteequal byte1:req, byte2:req, jumpInstr:req + jumpifarrayequal \byte1, \byte2, 0x1, \jumpInstr .endm - .macro jumpifmove move:req, jumpptr:req - jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpptr + .macro jumpifmove move:req, jumpInstr:req + jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpInstr .endm - .macro jumpifnotmove move:req, jumpptr:req - jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpptr + .macro jumpifnotmove move:req, jumpInstr:req + jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpInstr .endm - .macro jumpifnotchosenmove move:req, jumpptr:req - jumpifhalfword CMP_NOT_EQUAL, gChosenMove, \move, \jumpptr + .macro jumpifnotchosenmove move:req, jumpInstr:req + jumpifhalfword CMP_NOT_EQUAL, gChosenMove, \move, \jumpInstr .endm - .macro jumpifstatus3 battler:req, status:req, jumpptr:req - jumpifstatus3condition \battler, \status, FALSE, \jumpptr + .macro jumpifstatus3 battler:req, flags:req, jumpInstr:req + jumpifstatus3condition \battler, \flags, FALSE, \jumpInstr .endm - .macro jumpifnostatus3 battler:req, status:req, jumpptr:req - jumpifstatus3condition \battler, \status, TRUE, \jumpptr + .macro jumpifnostatus3 battler:req, flags:req, jumpInstr:req + jumpifstatus3condition \battler, \flags, TRUE, \jumpInstr .endm - .macro jumpifmovehadnoeffect jumpptr:req - jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr + .macro jumpifmovehadnoeffect jumpInstr:req + jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpInstr .endm - .macro jumpifbattletype flags:req, jumpptr:req - jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr + .macro jumpifbattletype flags:req, jumpInstr:req + jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpInstr .endm - .macro jumpifnotbattletype flags:req, jumpptr:req - jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr + .macro jumpifnotbattletype flags:req, jumpInstr:req + jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpInstr .endm .macro dmg_1_8_targethp @@ -2147,42 +2147,42 @@ manipulatedamage DMG_1_2_ATTACKER_HP .endm - .macro jumpifflowerveil jumpptr:req + .macro jumpifflowerveil jumpInstr:req jumpifnottype BS_TARGET, TYPE_GRASS, 1f - jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpptr + jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpInstr 1: .endm - .macro jumpifflowerveilattacker jumpptr:req + .macro jumpifflowerveilattacker jumpInstr:req jumpifnottype BS_ATTACKER, TYPE_GRASS, 1f - jumpifability BS_ATTACKER_SIDE, ABILITY_FLOWER_VEIL, \jumpptr + jumpifability BS_ATTACKER_SIDE, ABILITY_FLOWER_VEIL, \jumpInstr 1: .endm - .macro setallytonexttarget jumpptr:req + .macro setallytonexttarget jumpInstr:req jumpifbyte CMP_GREATER_THAN, gBattlerTarget, 0x1, 1f addbyte gBattlerTarget, 0x2 - goto \jumpptr + goto \jumpInstr 1: subbyte gBattlerTarget, 0x2 - goto \jumpptr + goto \jumpInstr .endm - .macro jumpifleafguardprotected battler:req, jumpptr:req + .macro jumpifleafguardprotected battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED - .4byte \jumpptr + .4byte \jumpInstr .endm - .macro jumpifsafeguard jumpptr:req + .macro jumpifsafeguard jumpInstr:req jumpifability BS_ATTACKER, ABILITY_INFILTRATOR, 1f - jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, \jumpptr + jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, \jumpInstr 1: .endm @ Will jump to script pointer if the target weighs less than 200 kg, or 441 lbs. - .macro jumpifunder200 battler:req, ptr:req + .macro jumpifunder200 battler:req, failInstr:req various \battler, VARIOUS_JUMP_IF_UNDER_200 - .4byte \ptr + .4byte \failInstr .endm @ Sets the sky drop status and does all other necessary operations @@ -2192,9 +2192,9 @@ @ Clears the sky drop status and does all other necessary operations. @ If the target fainted in before this script is called, it goes to the given script. - .macro clearskydrop ptr:req + .macro clearskydrop failInstr:req various 0, VARIOUS_CLEAR_SKY_DROP - .4byte \ptr + .4byte \failInstr .endm @ Accounts for if the target of Sky Drop was in confuse_lock when the attacker falls asleep due to Yawn. @@ -2238,7 +2238,7 @@ waitmessage B_WAIT_TIME_LONG .endm - .macro jumpifemergencyexited battler:req, ptr:req + .macro jumpifemergencyexited battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_EMERGENCY_EXITED - .4byte \ptr + .4byte \jumpInstr .endm diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 57311e671..985146fab 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -60,6 +60,37 @@ #include "battle_util.h" #include "constants/pokemon.h" +// Helper for accessing command arguments and advancing gBattlescriptCurrInstr. +// +// For example accuracycheck is defined as: +// +// .macro accuracycheck failInstr:req, move:req +// .byte 0x1 +// .4byte \failInstr +// .2byte \move +// .endm +// +// Which corresponds to: +// +// CMD_ARGS(const u8 *failInstr, u16 move); +// +// The arguments can be accessed as cmd->failInstr and cmd->move. +// gBattlescriptCurrInstr = cmd->nextInstr; advances to the next instruction. +#define CMD_ARGS(...) const struct __attribute__((packed)) { u8 opcode; MEMBERS(__VA_ARGS__) const u8 nextInstr[0]; } *const cmd = (const void *)gBattlescriptCurrInstr +#define VARIOUS_ARGS(...) CMD_ARGS(u8 battler, u8 id, ##__VA_ARGS__) +#define NATIVE_ARGS(...) CMD_ARGS(void (*func)(void), ##__VA_ARGS__) + +#define MEMBERS(...) VARARG_8(MEMBERS_, __VA_ARGS__) +#define MEMBERS_0() +#define MEMBERS_1(a) a; +#define MEMBERS_2(a, b) a; b; +#define MEMBERS_3(a, b, c) a; b; c; +#define MEMBERS_4(a, b, c, d) a; b; c; d; +#define MEMBERS_5(a, b, c, d, e) a; b; c; d; e; +#define MEMBERS_6(a, b, c, d, e, f) a; b; c; d; e; f; +#define MEMBERS_7(a, b, c, d, e, f, g) a; b; c; d; e; f; g; +#define MEMBERS_8(a, b, c, d, e, f, g, h) a; b; c; d; e; f; g; h; + extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; extern const u8 *const gBattleScriptsForMoveEffects[]; @@ -1413,6 +1444,8 @@ static bool32 TryAegiFormChange(void) static void Cmd_attackcanceler(void) { + CMD_ARGS(); + s32 i, moveType; u16 attackerAbility = GetBattlerAbility(gBattlerAttacker); @@ -1603,16 +1636,16 @@ static void Cmd_attackcanceler(void) gMultiHitCounter = 0; } gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (gProtectStructs[gBattlerTarget].beakBlastCharge && IsMoveMakingContact(gCurrentMove, gBattlerAttacker)) { gProtectStructs[gBattlerAttacker].touchedProtectLike = TRUE; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -1637,15 +1670,17 @@ static bool32 JumpIfMoveFailed(u8 adder, u16 move) static void Cmd_jumpifaffectedbyprotect(void) { + CMD_ARGS(const u8 *failInstr); + if (IsBattlerProtected(gBattlerTarget, gCurrentMove)) { gMoveResultFlags |= MOVE_RESULT_MISSED; - JumpIfMoveFailed(5, 0); + JumpIfMoveFailed(sizeof(*cmd), MOVE_NONE); gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED; } else { - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -1836,7 +1871,9 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u static void Cmd_accuracycheck(void) { - u16 type, move = T2_READ_16(gBattlescriptCurrInstr + 5); + CMD_ARGS(const u8 *failInstr, u16 move); + + u16 type, move = cmd->move; u16 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, move); if (move == ACC_CURR_MOVE) @@ -1845,18 +1882,18 @@ static void Cmd_accuracycheck(void) if (move == NO_ACC_CALC_CHECK_LOCK_ON) { if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker) - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; else if (gStatuses3[gBattlerTarget] & (STATUS3_SEMI_INVULNERABLE)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; else if (!JumpIfMoveAffectedByProtect(0)) - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (gSpecialStatuses[gBattlerAttacker].parentalBondState == PARENTAL_BOND_2ND_HIT || (gSpecialStatuses[gBattlerAttacker].multiHitOn && (gBattleMoves[move].effect != EFFECT_TRIPLE_KICK || GetBattlerAbility(gBattlerAttacker) == ABILITY_SKILL_LINK))) { // No acc checks for second hit of Parental Bond or multi hit moves, except Triple Kick/Triple Axel - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else { @@ -1889,6 +1926,8 @@ static void Cmd_accuracycheck(void) static void Cmd_attackstring(void) { + CMD_ARGS(); + if (gBattleControllerExecFlags) return; @@ -1897,12 +1936,14 @@ static void Cmd_attackstring(void) PrepareStringBattle(STRINGID_USEDMOVE, gBattlerAttacker); gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; gBattleCommunication[MSG_DISPLAY] = 0; } static void Cmd_ppreduce(void) { + CMD_ARGS(); + s32 i, ppToDeduct = 1; if (gBattleControllerExecFlags) @@ -1962,7 +2003,7 @@ static void Cmd_ppreduce(void) } gHitMarker &= ~HITMARKER_NO_PPDEDUCT; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } // The chance is 1/N for each stage. @@ -2031,6 +2072,8 @@ s8 GetInverseCritChance(u8 battlerAtk, u8 battlerDef, u32 move) static void Cmd_critcalc(void) { + CMD_ARGS(); + u16 partySlot; s32 critChance = CalcCritChanceStage(gBattlerAttacker, gBattlerTarget, gCurrentMove, TRUE); gPotentialItemEffectBattler = gBattlerAttacker; @@ -2052,30 +2095,36 @@ static void Cmd_critcalc(void) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gBattlerAttacker) == B_POSITION_PLAYER_LEFT)) gPartyCriticalHits[partySlot]++; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_damagecalc(void) { + CMD_ARGS(); + u8 moveType; GET_MOVE_TYPE(gCurrentMove, moveType); gBattleMoveDamage = CalculateMoveDamage(gCurrentMove, gBattlerAttacker, gBattlerTarget, moveType, 0, gIsCriticalHit, TRUE, TRUE); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_typecalc(void) { + CMD_ARGS(); + u8 moveType; GET_MOVE_TYPE(gCurrentMove, moveType); CalcTypeEffectivenessMultiplier(gCurrentMove, moveType, gBattlerAttacker, gBattlerTarget, TRUE); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_adjustdamage(void) { + CMD_ARGS(); + u8 holdEffect, param; u32 moveType; u32 friendshipScore = GetBattlerFriendshipScore(gBattlerTarget); @@ -2158,7 +2207,7 @@ static void Cmd_adjustdamage(void) #endif END: - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMoveDamage >= 1) gSpecialStatuses[gBattlerAttacker].damagedMons |= gBitTable[gBattlerTarget]; @@ -2201,6 +2250,8 @@ END: static void Cmd_multihitresultmessage(void) { + CMD_ARGS(); + if (gBattleControllerExecFlags) return; @@ -2226,7 +2277,7 @@ static void Cmd_multihitresultmessage(void) return; } } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; // Print berry reducing message after result message. if (gSpecialStatuses[gBattlerTarget].berryReduced @@ -2240,6 +2291,8 @@ static void Cmd_multihitresultmessage(void) static void Cmd_attackanimation(void) { + CMD_ARGS(); + u16 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); if (gBattleControllerExecFlags) @@ -2251,7 +2304,7 @@ static void Cmd_attackanimation(void) // In a wild double battle gotta use the teleport animation if two wild pokemon are alive. && !(gCurrentMove == MOVE_TELEPORT && WILD_DOUBLE_BATTLE && GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT && IsBattlerAlive(BATTLE_PARTNER(gBattlerAttacker)))) { - BattleScriptPush(gBattlescriptCurrInstr + 1); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_Pausex20; gBattleScripting.animTurn++; gBattleScripting.animTargetsHit++; @@ -2260,7 +2313,7 @@ static void Cmd_attackanimation(void) { if (gSpecialStatuses[gBattlerAttacker].parentalBondState == PARENTAL_BOND_2ND_HIT) // No animation on second hit { - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; return; } @@ -2269,7 +2322,7 @@ static void Cmd_attackanimation(void) || moveTarget & MOVE_TARGET_DEPENDS) && gBattleScripting.animTargetsHit) { - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; return; } if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) @@ -2294,11 +2347,11 @@ static void Cmd_attackanimation(void) gBattleScripting.animTurn++; gBattleScripting.animTargetsHit++; MarkBattlerForControllerExec(gBattlerAttacker); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - BattleScriptPush(gBattlescriptCurrInstr + 1); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_Pausex20; } } @@ -2306,18 +2359,22 @@ static void Cmd_attackanimation(void) static void Cmd_waitanimation(void) { + CMD_ARGS(); + if (gBattleControllerExecFlags == 0) - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_healthbarupdate(void) { + CMD_ARGS(u8 battler); + if (gBattleControllerExecFlags) return; if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || (gHitMarker & HITMARKER_PASSIVE_DAMAGE)) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (DoesSubstituteBlockMove(gBattlerAttacker, gActiveBattler, gCurrentMove) && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { @@ -2335,11 +2392,13 @@ static void Cmd_healthbarupdate(void) } } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_datahpupdate(void) { + CMD_ARGS(u8 battler); + u32 moveType; if (gBattleControllerExecFlags) @@ -2354,7 +2413,7 @@ static void Cmd_datahpupdate(void) if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || (gHitMarker & HITMARKER_PASSIVE_DAMAGE)) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (DoesSubstituteBlockMove(gBattlerAttacker, gActiveBattler, gCurrentMove) && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { if (gDisableStructs[gActiveBattler].substituteHP >= gBattleMoveDamage) @@ -2374,7 +2433,7 @@ static void Cmd_datahpupdate(void) // check substitute fading if (gDisableStructs[gActiveBattler].substituteHP == 0) { - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SubstituteFade; return; @@ -2383,7 +2442,7 @@ static void Cmd_datahpupdate(void) else if (DoesDisguiseBlockMove(gBattlerAttacker, gActiveBattler, gCurrentMove)) { gBattleMons[gActiveBattler].species = SPECIES_MIMIKYU_BUSTED; - BattleScriptPush(gBattlescriptCurrInstr + 2); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_TargetFormChange; } else @@ -2405,7 +2464,7 @@ static void Cmd_datahpupdate(void) else { gTakenDmg[gActiveBattler] += gBattleMoveDamage; - if (gBattlescriptCurrInstr[1] == BS_TARGET) + if (cmd->battler == BS_TARGET) gTakenDmgByBattler[gActiveBattler] = gBattlerAttacker; else gTakenDmgByBattler[gActiveBattler] = gBattlerTarget; @@ -2429,7 +2488,7 @@ static void Cmd_datahpupdate(void) { gProtectStructs[gActiveBattler].physicalDmg = gHpDealt; gSpecialStatuses[gActiveBattler].physicalDmg = gHpDealt; - if (gBattlescriptCurrInstr[1] == BS_TARGET) + if (cmd->battler == BS_TARGET) { gProtectStructs[gActiveBattler].physicalBattlerId = gBattlerAttacker; gSpecialStatuses[gActiveBattler].physicalBattlerId = gBattlerAttacker; @@ -2444,7 +2503,7 @@ static void Cmd_datahpupdate(void) { gProtectStructs[gActiveBattler].specialDmg = gHpDealt; gSpecialStatuses[gActiveBattler].specialDmg = gHpDealt; - if (gBattlescriptCurrInstr[1] == BS_TARGET) + if (cmd->battler == BS_TARGET) { gProtectStructs[gActiveBattler].specialBattlerId = gBattlerAttacker; gSpecialStatuses[gActiveBattler].specialBattlerId = gBattlerAttacker; @@ -2463,15 +2522,17 @@ static void Cmd_datahpupdate(void) } else { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (gSpecialStatuses[gActiveBattler].dmg == 0) gSpecialStatuses[gActiveBattler].dmg = 0xFFFF; } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_critmessage(void) { + CMD_ARGS(); + if (gBattleControllerExecFlags == 0) { if (gIsCriticalHit == TRUE && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) @@ -2479,12 +2540,14 @@ static void Cmd_critmessage(void) PrepareStringBattle(STRINGID_CRITICALHIT, gBattlerAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_effectivenesssound(void) { + CMD_ARGS(); + if (gBattleControllerExecFlags) return; @@ -2528,11 +2591,13 @@ static void Cmd_effectivenesssound(void) break; } } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_resultmessage(void) { + CMD_ARGS(); + u32 stringId = 0; if (gBattleControllerExecFlags) @@ -2639,7 +2704,7 @@ static void Cmd_resultmessage(void) if (stringId) PrepareStringBattle(stringId, gBattlerAttacker); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; // Print berry reducing message after result message. if (gSpecialStatuses[gBattlerTarget].berryReduced @@ -2653,42 +2718,48 @@ static void Cmd_resultmessage(void) static void Cmd_printstring(void) { + CMD_ARGS(u16 id); + if (gBattleControllerExecFlags == 0) { - u16 var = T2_READ_16(gBattlescriptCurrInstr + 1); + u16 id = cmd->id; - gBattlescriptCurrInstr += 3; - PrepareStringBattle(var, gBattlerAttacker); + gBattlescriptCurrInstr = cmd->nextInstr; + PrepareStringBattle(id, gBattlerAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } } static void Cmd_printselectionstring(void) { + CMD_ARGS(u16 id); + gActiveBattler = gBattlerAttacker; - BtlController_EmitPrintSelectionString(BUFFER_A, T2_READ_16(gBattlescriptCurrInstr + 1)); + BtlController_EmitPrintSelectionString(BUFFER_A, cmd->id); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; gBattleCommunication[MSG_DISPLAY] = 1; } static void Cmd_waitmessage(void) { + CMD_ARGS(u16 time); + if (gBattleControllerExecFlags == 0) { if (!gBattleCommunication[MSG_DISPLAY]) { - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - u16 toWait = T2_READ_16(gBattlescriptCurrInstr + 1); + u16 toWait = cmd->time; if (++gPauseCounterBattle >= toWait) { gPauseCounterBattle = 0; - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; gBattleCommunication[MSG_DISPLAY] = 0; } } @@ -2697,12 +2768,14 @@ static void Cmd_waitmessage(void) static void Cmd_printfromtable(void) { + CMD_ARGS(const u16 *ptr); + if (gBattleControllerExecFlags == 0) { - const u16 *ptr = (const u16 *) T1_READ_PTR(gBattlescriptCurrInstr + 1); + const u16 *ptr = cmd->ptr; ptr += gBattleCommunication[MULTISTRING_CHOOSER]; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; PrepareStringBattle(*ptr, gBattlerAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } @@ -2710,16 +2783,18 @@ static void Cmd_printfromtable(void) static void Cmd_printselectionstringfromtable(void) { + CMD_ARGS(const u16 *ptr); + if (gBattleControllerExecFlags == 0) { - const u16 *ptr = (const u16 *) T1_READ_PTR(gBattlescriptCurrInstr + 1); + const u16 *ptr = cmd->ptr; ptr += gBattleCommunication[MULTISTRING_CHOOSER]; gActiveBattler = gBattlerAttacker; BtlController_EmitPrintSelectionString(BUFFER_A, *ptr); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; gBattleCommunication[MSG_DISPLAY] = 1; } } @@ -3674,6 +3749,8 @@ void SetMoveEffect(bool32 primary, u32 certain) static void Cmd_seteffectwithchance(void) { + CMD_ARGS(); + u32 percentChance; if (GetBattlerAbility(gBattlerAttacker) == ABILITY_SERENE_GRACE) @@ -3698,7 +3775,7 @@ static void Cmd_seteffectwithchance(void) } else { - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } gBattleScripting.moveEffect = 0; @@ -3707,17 +3784,23 @@ static void Cmd_seteffectwithchance(void) static void Cmd_seteffectprimary(void) { + CMD_ARGS(); + SetMoveEffect(TRUE, 0); } static void Cmd_seteffectsecondary(void) { + CMD_ARGS(); + SetMoveEffect(FALSE, 0); } static void Cmd_clearstatusfromeffect(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler); + + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (gBattleScripting.moveEffect <= PRIMARY_STATUS_MOVE_EFFECT) gBattleMons[gActiveBattler].status1 &= (~sStatusFlagsForMoveEffects[gBattleScripting.moveEffect]); @@ -3725,52 +3808,53 @@ static void Cmd_clearstatusfromeffect(void) gBattleMons[gActiveBattler].status2 &= (~sStatusFlagsForMoveEffects[gBattleScripting.moveEffect]); gBattleScripting.moveEffect = 0; - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; gBattleScripting.multihitMoveEffect = 0; } static void Cmd_tryfaintmon(void) { - const u8 *BS_ptr; + CMD_ARGS(u8 battler, bool8 isSpikes, const u8 *instr); + const u8 *instr; - if (gBattlescriptCurrInstr[2] != 0) + if (cmd->isSpikes != 0) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) { - BS_ptr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + instr = cmd->instr; BattleScriptPop(); - gBattlescriptCurrInstr = BS_ptr; + gBattlescriptCurrInstr = instr; gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED | SIDE_STATUS_TOXIC_SPIKES_DAMAGED | SIDE_STATUS_STEALTH_ROCK_DAMAGED | SIDE_STATUS_STICKY_WEB_DAMAGED); } else { - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } } else { u8 battlerId; - if (gBattlescriptCurrInstr[1] == BS_ATTACKER) + if (cmd->battler == BS_ATTACKER) { gActiveBattler = gBattlerAttacker; battlerId = gBattlerTarget; - BS_ptr = BattleScript_FaintAttacker; + instr = BattleScript_FaintAttacker; } else { gActiveBattler = gBattlerTarget; battlerId = gBattlerAttacker; - BS_ptr = BattleScript_FaintTarget; + instr = BattleScript_FaintTarget; } if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]) && gBattleMons[gActiveBattler].hp == 0) { gHitMarker |= HITMARKER_FAINTED(gActiveBattler); - BattleScriptPush(gBattlescriptCurrInstr + 7); - gBattlescriptCurrInstr = BS_ptr; + BattleScriptPush(cmd->nextInstr); + gBattlescriptCurrInstr = instr; if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { gHitMarker |= HITMARKER_PLAYER_FAINTED; @@ -3813,27 +3897,31 @@ static void Cmd_tryfaintmon(void) } else { - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } } } static void Cmd_dofaintanimation(void) { + CMD_ARGS(u8 battler); + if (gBattleControllerExecFlags == 0) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); BtlController_EmitFaintAnimation(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_cleareffectsonfaint(void) { + CMD_ARGS(u8 battler); + if (gBattleControllerExecFlags == 0) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || gBattleMons[gActiveBattler].hp == 0) { @@ -3843,44 +3931,50 @@ static void Cmd_cleareffectsonfaint(void) } FaintClearSetData(); // Effects like attractions, trapping, etc. - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_jumpifstatus(void) { - u8 battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2); - const u8 *jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 6); + CMD_ARGS(u8 battler, u32 flags, const u8 *jumpInstr); + + u8 battlerId = GetBattlerForBattleScript(cmd->battler); + u32 flags = cmd->flags; + const u8 *jumpInstr = cmd->jumpInstr; if (gBattleMons[battlerId].status1 & flags && gBattleMons[battlerId].hp != 0) - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = jumpInstr; else - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumpifstatus2(void) { - u8 battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2); - const u8 *jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 6); + CMD_ARGS(u8 battler, u32 flags, const u8 *jumpInstr); + + u8 battlerId = GetBattlerForBattleScript(cmd->battler); + u32 flags = cmd->flags; + const u8 *jumpInstr = cmd->jumpInstr; if (gBattleMons[battlerId].status2 & flags && gBattleMons[battlerId].hp != 0) - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = jumpInstr; else - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumpifability(void) { + CMD_ARGS(u8 battler, u16 ability, const u8 *jumpInstr); + u32 battlerId; bool32 hasAbility = FALSE; - u32 ability = T2_READ_16(gBattlescriptCurrInstr + 2); + u32 ability = cmd->ability; - switch (gBattlescriptCurrInstr[1]) + switch (cmd->battler) { default: - battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + battlerId = GetBattlerForBattleScript(cmd->battler); if (GetBattlerAbility(battlerId) == ability) hasAbility = TRUE; break; @@ -3905,103 +3999,113 @@ static void Cmd_jumpifability(void) if (hasAbility) { gLastUsedAbility = ability; - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 4); + gBattlescriptCurrInstr = cmd->jumpInstr; RecordAbilityBattle(battlerId, gLastUsedAbility); gBattlerAbility = battlerId; } else { - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_jumpifsideaffecting(void) { + CMD_ARGS(u8 battler, u32 flags, const u8 *jumpInstr); + u8 side; u32 flags; - const u8 *jumpPtr; + const u8 *jumpInstr; - if (gBattlescriptCurrInstr[1] == BS_ATTACKER) + if (cmd->battler == BS_ATTACKER) side = GET_BATTLER_SIDE(gBattlerAttacker); else side = GET_BATTLER_SIDE(gBattlerTarget); - flags = T2_READ_32(gBattlescriptCurrInstr + 2); - jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 6); + flags = cmd->flags; + jumpInstr = cmd->jumpInstr; if (gSideStatuses[side] & flags) - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = jumpInstr; else - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumpifstat(void) { - bool32 ret = 0; - u8 battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - u8 statId = gBattlescriptCurrInstr[3]; - u8 cmpTo = gBattlescriptCurrInstr[4]; - u8 cmpKind = gBattlescriptCurrInstr[2]; + CMD_ARGS(u8 battler, u8 comparison, u8 stat, u8 value, const u8 *jumpInstr); - ret = CompareStat(battlerId, statId, cmpTo, cmpKind); + bool32 ret = 0; + u8 battlerId = GetBattlerForBattleScript(cmd->battler); + u8 stat = cmd->stat; + u8 value = cmd->value; + u8 comparison = cmd->comparison; + + ret = CompareStat(battlerId, stat, value, comparison); if (ret) - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 5); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 9; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumpifstatus3condition(void) { - u32 status; - const u8 *jumpPtr; + CMD_ARGS(u8 battler, u32 flags, bool8 jumpIfTrue, const u8 *jumpInstr); - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - status = T2_READ_32(gBattlescriptCurrInstr + 2); - jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 7); + u32 flags; + const u8 *jumpInstr; - if (gBattlescriptCurrInstr[6]) + gActiveBattler = GetBattlerForBattleScript(cmd->battler); + flags = cmd->flags; + jumpInstr = cmd->jumpInstr; + + if (cmd->jumpIfTrue) { - if ((gStatuses3[gActiveBattler] & status) != 0) - gBattlescriptCurrInstr += 11; + if ((gStatuses3[gActiveBattler] & flags) != 0) + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = jumpInstr; } else { - if ((gStatuses3[gActiveBattler] & status) != 0) - gBattlescriptCurrInstr = jumpPtr; + if ((gStatuses3[gActiveBattler] & flags) != 0) + gBattlescriptCurrInstr = jumpInstr; else - gBattlescriptCurrInstr += 11; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_jumpbasedontype(void) { - u8 battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - u8 type = gBattlescriptCurrInstr[2]; - const u8 *jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 4); + CMD_ARGS(u8 battler, u8 type, u8 jumpIfType, const u8 *jumpInstr); + + u8 battlerId = GetBattlerForBattleScript(cmd->battler); + u8 type = cmd->type; + const u8 *jumpInstr = cmd->jumpInstr; // jumpiftype - if (gBattlescriptCurrInstr[3]) + if (cmd->jumpIfType) { if (IS_BATTLER_OF_TYPE(battlerId, type)) - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = jumpInstr; else - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; } // jumpifnottype else { if (!IS_BATTLER_OF_TYPE(battlerId, type)) - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = jumpInstr; else - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_getexp(void) { + CMD_ARGS(u8 battler); + u16 item; s32 i; // also used as stringId u8 holdEffect; @@ -4009,7 +4113,7 @@ static void Cmd_getexp(void) s32 viaExpShare = 0; u32 *exp = &gBattleStruct->expValue; - gBattlerFainted = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gBattlerFainted = GetBattlerForBattleScript(cmd->battler); sentIn = gSentPokesToOpponent[(gBattlerFainted & 2) >> 1]; switch (gBattleScripting.getexpState) @@ -4307,7 +4411,7 @@ static void Cmd_getexp(void) // not sure why gf clears the item and ability here gBattleMons[gBattlerFainted].item = ITEM_NONE; gBattleMons[gBattlerFainted].ability = ABILITY_NONE; - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } break; } @@ -4393,6 +4497,8 @@ bool32 NoAliveMonsForEitherParty(void) // sets gBattleOutcome accordingly, if necessary. static void Cmd_checkteamslost(void) { + CMD_ARGS(const u8 *jumpInstr); + if (gBattleControllerExecFlags) return; @@ -4437,21 +4543,21 @@ static void Cmd_checkteamslost(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { if (emptyOpponentSpots + emptyPlayerSpots > 1) - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { if (emptyOpponentSpots != 0 && emptyPlayerSpots != 0) - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } else { - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -4467,315 +4573,361 @@ static void MoveValuesCleanUp(void) static void Cmd_movevaluescleanup(void) { + CMD_ARGS(); + MoveValuesCleanUp(); - gBattlescriptCurrInstr += 1; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setmultihit(void) { - gMultiHitCounter = gBattlescriptCurrInstr[1]; - gBattlescriptCurrInstr += 2; + CMD_ARGS(u8 value); + + gMultiHitCounter = cmd->value; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_decrementmultihit(void) { + CMD_ARGS(const u8 *loopInstr); + if (--gMultiHitCounter == 0) - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->loopInstr; } static void Cmd_goto(void) { - gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1); + CMD_ARGS(const u8 *instr); + + gBattlescriptCurrInstr = cmd->instr; } static void Cmd_jumpifbyte(void) { - u8 caseID = gBattlescriptCurrInstr[1]; - const u8 *memByte = T2_READ_PTR(gBattlescriptCurrInstr + 2); - u8 value = gBattlescriptCurrInstr[6]; - const u8 *jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 7); + CMD_ARGS(u8 comparison, const u8 *bytePtr, u8 value, const u8 *jumpInstr); - gBattlescriptCurrInstr += 11; + u8 comparison = cmd->comparison; + const u8 *bytePtr = cmd->bytePtr; + u8 value = cmd->value; + const u8 *jumpInstr = cmd->jumpInstr; - switch (caseID) + gBattlescriptCurrInstr = cmd->nextInstr; + + switch (comparison) { case CMP_EQUAL: - if (*memByte == value) - gBattlescriptCurrInstr = jumpPtr; + if (*bytePtr == value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_NOT_EQUAL: - if (*memByte != value) - gBattlescriptCurrInstr = jumpPtr; + if (*bytePtr != value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_GREATER_THAN: - if (*memByte > value) - gBattlescriptCurrInstr = jumpPtr; + if (*bytePtr > value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_LESS_THAN: - if (*memByte < value) - gBattlescriptCurrInstr = jumpPtr; + if (*bytePtr < value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_COMMON_BITS: - if (*memByte & value) - gBattlescriptCurrInstr = jumpPtr; + if (*bytePtr & value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_NO_COMMON_BITS: - if (!(*memByte & value)) - gBattlescriptCurrInstr = jumpPtr; + if (!(*bytePtr & value)) + gBattlescriptCurrInstr = jumpInstr; break; } } static void Cmd_jumpifhalfword(void) { - u8 caseID = gBattlescriptCurrInstr[1]; - const u16 *memHword = T2_READ_PTR(gBattlescriptCurrInstr + 2); - u16 value = T2_READ_16(gBattlescriptCurrInstr + 6); - const u8 *jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 8); + CMD_ARGS(u8 comparison, const u16 *halfwordPtr, u16 value, const u8 *jumpInstr); - gBattlescriptCurrInstr += 12; + u8 comparison = cmd->comparison; + const u16 *halfwordPtr = cmd->halfwordPtr; + u16 value = cmd->value; + const u8 *jumpInstr = cmd->jumpInstr; - switch (caseID) + gBattlescriptCurrInstr = cmd->nextInstr; + + switch (comparison) { case CMP_EQUAL: - if (*memHword == value) - gBattlescriptCurrInstr = jumpPtr; + if (*halfwordPtr == value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_NOT_EQUAL: - if (*memHword != value) - gBattlescriptCurrInstr = jumpPtr; + if (*halfwordPtr != value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_GREATER_THAN: - if (*memHword > value) - gBattlescriptCurrInstr = jumpPtr; + if (*halfwordPtr > value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_LESS_THAN: - if (*memHword < value) - gBattlescriptCurrInstr = jumpPtr; + if (*halfwordPtr < value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_COMMON_BITS: - if (*memHword & value) - gBattlescriptCurrInstr = jumpPtr; + if (*halfwordPtr & value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_NO_COMMON_BITS: - if (!(*memHword & value)) - gBattlescriptCurrInstr = jumpPtr; + if (!(*halfwordPtr & value)) + gBattlescriptCurrInstr = jumpInstr; break; } } static void Cmd_jumpifword(void) { - u8 caseID = gBattlescriptCurrInstr[1]; - const u32 *memWord = T2_READ_PTR(gBattlescriptCurrInstr + 2); - u32 value = T1_READ_32(gBattlescriptCurrInstr + 6); - const u8 *jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 10); + CMD_ARGS(u8 comparison, const u32 *wordPtr, u32 value, const u8 *jumpInstr); - gBattlescriptCurrInstr += 14; + u8 comparison = cmd->comparison; + const u32 *wordPtr = cmd->wordPtr; + u32 value = cmd->value; + const u8 *jumpInstr = cmd->jumpInstr; - switch (caseID) + gBattlescriptCurrInstr = cmd->nextInstr; + + switch (comparison) { case CMP_EQUAL: - if (*memWord == value) - gBattlescriptCurrInstr = jumpPtr; + if (*wordPtr == value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_NOT_EQUAL: - if (*memWord != value) - gBattlescriptCurrInstr = jumpPtr; + if (*wordPtr != value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_GREATER_THAN: - if (*memWord > value) - gBattlescriptCurrInstr = jumpPtr; + if (*wordPtr > value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_LESS_THAN: - if (*memWord < value) - gBattlescriptCurrInstr = jumpPtr; + if (*wordPtr < value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_COMMON_BITS: - if (*memWord & value) - gBattlescriptCurrInstr = jumpPtr; + if (*wordPtr & value) + gBattlescriptCurrInstr = jumpInstr; break; case CMP_NO_COMMON_BITS: - if (!(*memWord & value)) - gBattlescriptCurrInstr = jumpPtr; + if (!(*wordPtr & value)) + gBattlescriptCurrInstr = jumpInstr; break; } } static void Cmd_jumpifarrayequal(void) { - const u8 *mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1); - const u8 *mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5); - u32 size = gBattlescriptCurrInstr[9]; - const u8 *jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 10); + CMD_ARGS(const u8 *array1, const u8 *array2, u8 size, const u8 *jumpInstr); + + const u8 *array1 = cmd->array1; + const u8 *array2 = cmd->array2; + u32 size = cmd->size; + const u8 *jumpInstr = cmd->jumpInstr; u8 i; for (i = 0; i < size; i++) { - if (*mem1 != *mem2) + if (*array1 != *array2) { - gBattlescriptCurrInstr += 14; + gBattlescriptCurrInstr = cmd->nextInstr; break; } - mem1++, mem2++; + array1++, array2++; } if (i == size) - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = jumpInstr; } static void Cmd_jumpifarraynotequal(void) { + CMD_ARGS(const u8 *array1, const u8 *array2, u8 size, const u8 *jumpInstr); + u8 equalBytes = 0; - const u8 *mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1); - const u8 *mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5); - u32 size = gBattlescriptCurrInstr[9]; - const u8 *jumpPtr = T2_READ_PTR(gBattlescriptCurrInstr + 10); + const u8 *array1 = cmd->array1; + const u8 *array2 = cmd->array2; + u32 size = cmd->size; + const u8 *jumpInstr = cmd->jumpInstr; u8 i; for (i = 0; i < size; i++) { - if (*mem1 == *mem2) + if (*array1 == *array2) equalBytes++; - mem1++, mem2++; + array1++, array2++; } if (equalBytes != size) - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = jumpInstr; else - gBattlescriptCurrInstr += 14; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setbyte(void) { - u8 *memByte = T2_READ_PTR(gBattlescriptCurrInstr + 1); - *memByte = gBattlescriptCurrInstr[5]; + CMD_ARGS(u8 *bytePtr, u8 value); - gBattlescriptCurrInstr += 6; + u8 *bytePtr = cmd->bytePtr; + *bytePtr = cmd->value; + + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_addbyte(void) { - u8 *memByte = T2_READ_PTR(gBattlescriptCurrInstr + 1); - *memByte += gBattlescriptCurrInstr[5]; - gBattlescriptCurrInstr += 6; + CMD_ARGS(u8 *bytePtr, u8 value); + + u8 *bytePtr = cmd->bytePtr; + *bytePtr += cmd->value; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_subbyte(void) { - u8 *memByte = T2_READ_PTR(gBattlescriptCurrInstr + 1); - *memByte -= gBattlescriptCurrInstr[5]; - gBattlescriptCurrInstr += 6; + CMD_ARGS(u8 *bytePtr, u8 value); + + u8 *bytePtr = cmd->bytePtr; + *bytePtr -= cmd->value; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_copyarray(void) { - u8 *dest = T2_READ_PTR(gBattlescriptCurrInstr + 1); - const u8 *src = T2_READ_PTR(gBattlescriptCurrInstr + 5); - s32 size = gBattlescriptCurrInstr[9]; + CMD_ARGS(u8 *dest, const u8 *src, u8 size); + + u8 *dest = cmd->dest; + const u8 *src = cmd->src; + s32 size = cmd->size; s32 i; for (i = 0; i < size; i++) dest[i] = src[i]; - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_copyarraywithindex(void) { - u8 *dest = T2_READ_PTR(gBattlescriptCurrInstr + 1); - const u8 *src = T2_READ_PTR(gBattlescriptCurrInstr + 5); - const u8 *index = T2_READ_PTR(gBattlescriptCurrInstr + 9); - s32 size = gBattlescriptCurrInstr[13]; + CMD_ARGS(u8 *dest, const u8 *src, const u8 *indexPtr, u8 size); + + u8 *dest = cmd->dest; + const u8 *src = cmd->src; + const u8 *indexPtr = cmd->indexPtr; + s32 size = cmd->size; s32 i; for (i = 0; i < size; i++) - dest[i] = src[i + *index]; + dest[i] = src[i + *indexPtr]; - gBattlescriptCurrInstr += 14; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_orbyte(void) { - u8 *memByte = T2_READ_PTR(gBattlescriptCurrInstr + 1); - *memByte |= gBattlescriptCurrInstr[5]; - gBattlescriptCurrInstr += 6; + CMD_ARGS(u8 *bytePtr, u8 value); + + u8 *bytePtr = cmd->bytePtr; + *bytePtr |= cmd->value; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_orhalfword(void) { - u16 *memHword = T2_READ_PTR(gBattlescriptCurrInstr + 1); - u16 val = T2_READ_16(gBattlescriptCurrInstr + 5); + CMD_ARGS(u16 *halfwordPtr, u16 value); - *memHword |= val; - gBattlescriptCurrInstr += 7; + u16 *halfwordPtr = cmd->halfwordPtr; + u16 value = cmd->value; + + *halfwordPtr |= value; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_orword(void) { - u32 *memWord = T2_READ_PTR(gBattlescriptCurrInstr + 1); - u32 val = T2_READ_32(gBattlescriptCurrInstr + 5); + CMD_ARGS(u32 *wordPtr, u32 value); - *memWord |= val; - gBattlescriptCurrInstr += 9; + u32 *wordPtr = cmd->wordPtr; + u32 value = cmd->value; + + *wordPtr |= value; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_bicbyte(void) { - u8 *memByte = T2_READ_PTR(gBattlescriptCurrInstr + 1); - *memByte &= ~(gBattlescriptCurrInstr[5]); - gBattlescriptCurrInstr += 6; + CMD_ARGS(u8 *bytePtr, u8 value); + + u8 *bytePtr = cmd->bytePtr; + *bytePtr &= ~cmd->value; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_bichalfword(void) { - u16 *memHword = T2_READ_PTR(gBattlescriptCurrInstr + 1); - u16 val = T2_READ_16(gBattlescriptCurrInstr + 5); + CMD_ARGS(u16 *halfwordPtr, u16 value); - *memHword &= ~val; - gBattlescriptCurrInstr += 7; + u16 *halfwordPtr = cmd->halfwordPtr; + u16 value = cmd->value; + + *halfwordPtr &= ~value; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_bicword(void) { - u32 *memWord = T2_READ_PTR(gBattlescriptCurrInstr + 1); - u32 val = T2_READ_32(gBattlescriptCurrInstr + 5); + CMD_ARGS(u32 *wordPtr, u32 value); - *memWord &= ~val; - gBattlescriptCurrInstr += 9; + u32 *wordPtr = cmd->wordPtr; + u32 value = cmd->value; + + *wordPtr &= ~value; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_pause(void) { + CMD_ARGS(u16 frames); + if (gBattleControllerExecFlags == 0) { - u16 value = T2_READ_16(gBattlescriptCurrInstr + 1); + u16 value = cmd->frames; if (++gPauseCounterBattle >= value) { gPauseCounterBattle = 0; - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; } } } static void Cmd_waitstate(void) { + CMD_ARGS(); + if (gBattleControllerExecFlags == 0) - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_healthbar_update(void) { - if (gBattlescriptCurrInstr[1] == BS_TARGET) + CMD_ARGS(u8 battler); + + if (cmd->battler == BS_TARGET) gActiveBattler = gBattlerTarget; else gActiveBattler = gBattlerAttacker; BtlController_EmitHealthBarUpdate(BUFFER_A, gBattleMoveDamage); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_return(void) @@ -4785,6 +4937,8 @@ static void Cmd_return(void) static void Cmd_end(void) { + CMD_ARGS(); + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) BattleArena_AddSkillPoints(gBattlerAttacker); @@ -4795,6 +4949,8 @@ static void Cmd_end(void) static void Cmd_end2(void) { + CMD_ARGS(); + gActiveBattler = 0; gCurrentActionFuncId = B_ACTION_TRY_FINISH; } @@ -4802,6 +4958,8 @@ static void Cmd_end2(void) // Pops the main function stack static void Cmd_end3(void) { + CMD_ARGS(); + BattleScriptPop(); if (gBattleResources->battleCallbackStack->size != 0) gBattleResources->battleCallbackStack->size--; @@ -4810,12 +4968,16 @@ static void Cmd_end3(void) static void Cmd_call(void) { - BattleScriptPush(gBattlescriptCurrInstr + 5); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + CMD_ARGS(const u8 *instr); + + BattleScriptPush(cmd->nextInstr); + gBattlescriptCurrInstr = cmd->instr; } static void Cmd_setroost(void) { + CMD_ARGS(); + gBattleResources->flags->flags[gBattlerAttacker] |= RESOURCE_FLAG_ROOST; // Pure flying type. @@ -4846,35 +5008,41 @@ static void Cmd_setroost(void) gBattleStruct->roostTypes[gBattlerAttacker][1] = gBattleMons[gBattlerAttacker].type2; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumpifabilitypresent(void) { - if (IsAbilityOnField(T1_READ_16(gBattlescriptCurrInstr + 1))) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + CMD_ARGS(u16 ability, const u8 *jumpInstr); + + if (IsAbilityOnField(cmd->ability)) + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_endselectionscript(void) { + CMD_ARGS(); + *(gBattlerAttacker + gBattleStruct->selectionScriptFinished) = TRUE; } static void Cmd_playanimation(void) { - const u16 *argumentPtr; - u8 animId = gBattlescriptCurrInstr[2]; + CMD_ARGS(u8 battler, u8 animId, const u16 *argPtr); - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - argumentPtr = T2_READ_PTR(gBattlescriptCurrInstr + 3); + const u16 *argPtr; + u8 animId = cmd->animId; + + gActiveBattler = GetBattlerForBattleScript(cmd->battler); + argPtr = cmd->argPtr; #if B_TERRAIN_BG_CHANGE == FALSE if (animId == B_ANIM_RESTORE_BG) { // workaround for .if not working - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; } #endif @@ -4887,13 +5055,13 @@ static void Cmd_playanimation(void) || animId == B_ANIM_SUBSTITUTE_FADE || animId == B_ANIM_PRIMAL_REVERSION) { - BtlController_EmitBattleAnimation(BUFFER_A, animId, *argumentPtr); + BtlController_EmitBattleAnimation(BUFFER_A, animId, *argPtr); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS && animId != B_ANIM_RESTORE_BG) { - BattleScriptPush(gBattlescriptCurrInstr + 7); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_Pausex20; } else if (animId == B_ANIM_RAIN_CONTINUES @@ -4901,71 +5069,75 @@ static void Cmd_playanimation(void) || animId == B_ANIM_SANDSTORM_CONTINUES || animId == B_ANIM_HAIL_CONTINUES) { - BtlController_EmitBattleAnimation(BUFFER_A, animId, *argumentPtr); + BtlController_EmitBattleAnimation(BUFFER_A, animId, *argPtr); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) { - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - BtlController_EmitBattleAnimation(BUFFER_A, animId, *argumentPtr); + BtlController_EmitBattleAnimation(BUFFER_A, animId, *argPtr); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } } // Same as playanimation, except it takes a pointer to some animation id, instead of taking the value directly static void Cmd_playanimation_var(void) { - const u16 *argumentPtr; - const u8 *animationIdPtr; + CMD_ARGS(u8 battler, const u8 *animIdPtr, const u16 *argPtr); - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - animationIdPtr = T2_READ_PTR(gBattlescriptCurrInstr + 2); - argumentPtr = T2_READ_PTR(gBattlescriptCurrInstr + 6); + const u16 *argPtr; + const u8 *animIdPtr; - if (*animationIdPtr == B_ANIM_STATS_CHANGE - || *animationIdPtr == B_ANIM_SNATCH_MOVE - || *animationIdPtr == B_ANIM_MEGA_EVOLUTION - || *animationIdPtr == B_ANIM_ILLUSION_OFF - || *animationIdPtr == B_ANIM_FORM_CHANGE - || *animationIdPtr == B_ANIM_SUBSTITUTE_FADE - || *animationIdPtr == B_ANIM_PRIMAL_REVERSION) + gActiveBattler = GetBattlerForBattleScript(cmd->battler); + animIdPtr = cmd->animIdPtr; + argPtr = cmd->argPtr; + + if (*animIdPtr == B_ANIM_STATS_CHANGE + || *animIdPtr == B_ANIM_SNATCH_MOVE + || *animIdPtr == B_ANIM_MEGA_EVOLUTION + || *animIdPtr == B_ANIM_ILLUSION_OFF + || *animIdPtr == B_ANIM_FORM_CHANGE + || *animIdPtr == B_ANIM_SUBSTITUTE_FADE + || *animIdPtr == B_ANIM_PRIMAL_REVERSION) { - BtlController_EmitBattleAnimation(BUFFER_A, *animationIdPtr, *argumentPtr); + BtlController_EmitBattleAnimation(BUFFER_A, *animIdPtr, *argPtr); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) { - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } - else if (*animationIdPtr == B_ANIM_RAIN_CONTINUES - || *animationIdPtr == B_ANIM_SUN_CONTINUES - || *animationIdPtr == B_ANIM_SANDSTORM_CONTINUES - || *animationIdPtr == B_ANIM_HAIL_CONTINUES) + else if (*animIdPtr == B_ANIM_RAIN_CONTINUES + || *animIdPtr == B_ANIM_SUN_CONTINUES + || *animIdPtr == B_ANIM_SANDSTORM_CONTINUES + || *animIdPtr == B_ANIM_HAIL_CONTINUES) { - BtlController_EmitBattleAnimation(BUFFER_A, *animationIdPtr, *argumentPtr); + BtlController_EmitBattleAnimation(BUFFER_A, *animIdPtr, *argPtr); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) { - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - BtlController_EmitBattleAnimation(BUFFER_A, *animationIdPtr, *argumentPtr); + BtlController_EmitBattleAnimation(BUFFER_A, *animIdPtr, *argPtr); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setgraphicalstatchangevalues(void) { + CMD_ARGS(); + u8 value = GET_STAT_BUFF_VALUE_WITH_SIGN(gBattleScripting.statChanger); switch (value) @@ -4997,22 +5169,24 @@ static void Cmd_setgraphicalstatchangevalues(void) } gBattleScripting.animArg1 = GET_STAT_BUFF_ID(gBattleScripting.statChanger) + value - 1; gBattleScripting.animArg2 = 0; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_playstatchangeanimation(void) { + CMD_ARGS(u8 battler, u8 stats, u8 flags); + u32 ability; u32 currStat = 0; u32 statAnimId = 0; u32 changeableStatsCount = 0; - u32 statsToCheck = 0; + u32 stats = 0; u32 startingStatAnimId = 0; - u32 flags = gBattlescriptCurrInstr[3]; + u32 flags = cmd->flags; - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); ability = GetBattlerAbility(gActiveBattler); - statsToCheck = gBattlescriptCurrInstr[2]; + stats = cmd->stats; // Handle Contrary and Simple if (ability == ABILITY_CONTRARY) @@ -5027,9 +5201,9 @@ static void Cmd_playstatchangeanimation(void) else startingStatAnimId = STAT_ANIM_MINUS1 - 1; - while (statsToCheck != 0) + while (stats != 0) { - if (statsToCheck & 1) + if (stats & 1) { if (flags & STAT_CHANGE_CANT_PREVENT) { @@ -5055,7 +5229,7 @@ static void Cmd_playstatchangeanimation(void) } } } - statsToCheck >>= 1, currStat++; + stats >>= 1, currStat++; } if (changeableStatsCount > 1) // more than one stat, so the color is gray @@ -5073,14 +5247,14 @@ static void Cmd_playstatchangeanimation(void) else startingStatAnimId = STAT_ANIM_PLUS1 - 1; - while (statsToCheck != 0) + while (stats != 0) { - if (statsToCheck & 1 && gBattleMons[gActiveBattler].statStages[currStat] < MAX_STAT_STAGE) + if (stats & 1 && gBattleMons[gActiveBattler].statStages[currStat] < MAX_STAT_STAGE) { statAnimId = startingStatAnimId + currStat; changeableStatsCount++; } - statsToCheck >>= 1, currStat++; + stats >>= 1, currStat++; } if (changeableStatsCount > 1) // more than one stat, so the color is gray @@ -5094,7 +5268,7 @@ static void Cmd_playstatchangeanimation(void) if (flags & STAT_CHANGE_MULTIPLE_STATS && changeableStatsCount < 2) { - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (changeableStatsCount != 0 && !gBattleScripting.statAnimPlayed) { @@ -5102,11 +5276,11 @@ static void Cmd_playstatchangeanimation(void) MarkBattlerForControllerExec(gActiveBattler); if (flags & STAT_CHANGE_MULTIPLE_STATS && changeableStatsCount > 1) gBattleScripting.statAnimPlayed = TRUE; - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -5165,6 +5339,8 @@ static u32 GetNextTarget(u32 moveTarget) static void Cmd_moveend(void) { + CMD_ARGS(u8 endMode, u8 endState); + s32 i; bool32 effect = FALSE; u32 moveType = 0; @@ -5178,8 +5354,8 @@ static void Cmd_moveend(void) else originallyUsedMove = gChosenMove; - endMode = gBattlescriptCurrInstr[1]; - endState = gBattlescriptCurrInstr[2]; + endMode = cmd->endMode; + endState = cmd->endState; holdEffectAtk = GetBattlerHoldEffect(gBattlerAttacker, TRUE); choicedMoveAtk = &gBattleStruct->choicedMove[gBattlerAttacker]; @@ -6035,51 +6211,59 @@ static void Cmd_moveend(void) } while (gBattleScripting.moveendState != MOVEEND_COUNT && effect == FALSE); if (gBattleScripting.moveendState == MOVEEND_COUNT && effect == FALSE) - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_sethealblock(void) { + CMD_ARGS(const u8 *failInstr); + if (gStatuses3[gBattlerTarget] & STATUS3_HEAL_BLOCK) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gStatuses3[gBattlerTarget] |= STATUS3_HEAL_BLOCK; gDisableStructs[gBattlerTarget].healBlockTimer = 5; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_returnatktoball(void) { + CMD_ARGS(); + gActiveBattler = gBattlerAttacker; if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler))) { BtlController_EmitReturnMonToBall(BUFFER_A, FALSE); MarkBattlerForControllerExec(gActiveBattler); } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_getswitchedmondata(void) { + CMD_ARGS(u8 battler); + if (gBattleControllerExecFlags) return; - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); gBattlerPartyIndexes[gActiveBattler] = *(gBattleStruct->monToSwitchIntoId + gActiveBattler); BtlController_EmitGetMonData(BUFFER_A, REQUEST_ALL_BATTLE, gBitTable[gBattlerPartyIndexes[gActiveBattler]]); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_switchindataupdate(void) { + CMD_ARGS(u8 battler); + struct BattlePokemon oldData; s32 i; u8 *monData; @@ -6087,7 +6271,7 @@ static void Cmd_switchindataupdate(void) if (gBattleControllerExecFlags) return; - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); oldData = gBattleMons[gActiveBattler]; monData = (u8 *)(&gBattleMons[gActiveBattler]); @@ -6129,15 +6313,17 @@ static void Cmd_switchindataupdate(void) PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler]); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_switchinanim(void) { + CMD_ARGS(u8 battler, bool8 dontClearSubstitute); + if (gBattleControllerExecFlags) return; - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_LINK @@ -6149,10 +6335,10 @@ static void Cmd_switchinanim(void) gAbsentBattlerFlags &= ~(gBitTable[gActiveBattler]); - BtlController_EmitSwitchInAnim(BUFFER_A, gBattlerPartyIndexes[gActiveBattler], gBattlescriptCurrInstr[2]); + BtlController_EmitSwitchInAnim(BUFFER_A, gBattlerPartyIndexes[gActiveBattler], cmd->dontClearSubstitute); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; if (gBattleTypeFlags & BATTLE_TYPE_ARENA) BattleArena_InitPoints(); @@ -6309,19 +6495,20 @@ bool32 CanBattlerSwitch(u32 battlerId) static void Cmd_jumpifcantswitch(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1] & ~SWITCH_IGNORE_ESCAPE_PREVENTION); + CMD_ARGS(u8 battler:7, u8 ignoreEscapePrevention:1, const u8 *jumpInstr); - if (!(gBattlescriptCurrInstr[1] & SWITCH_IGNORE_ESCAPE_PREVENTION) - && !CanBattlerEscape(gActiveBattler)) + gActiveBattler = GetBattlerForBattleScript(cmd->battler); + + if (!cmd->ignoreEscapePrevention && !CanBattlerEscape(gActiveBattler)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); + gBattlescriptCurrInstr = cmd->jumpInstr; } else { if (CanBattlerSwitch(gActiveBattler)) - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); + gBattlescriptCurrInstr = cmd->jumpInstr; } } @@ -6340,16 +6527,18 @@ static void ChooseMonToSendOut(u8 slotId) static void Cmd_openpartyscreen(void) { + CMD_ARGS(u8 battler:7, u8 partyScreenOptional:1, const u8 *failInstr); + u32 flags; u8 hitmarkerFaintBits; u8 battlerId; - const u8 *jumpPtr; + const u8 *failInstr; battlerId = 0; flags = 0; - jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 2); + failInstr = cmd->failInstr; - if (gBattlescriptCurrInstr[1] == BS_FAINTED_LINK_MULTIPLE_1) + if (cmd->battler == BS_FAINTED_LINK_MULTIPLE_1) { if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) || !(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { @@ -6502,9 +6691,9 @@ static void Cmd_openpartyscreen(void) } } } - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } - else if (gBattlescriptCurrInstr[1] == BS_FAINTED_LINK_MULTIPLE_2) + else if (cmd->battler == BS_FAINTED_LINK_MULTIPLE_2) { if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { @@ -6543,18 +6732,18 @@ static void Cmd_openpartyscreen(void) gSpecialStatuses[gActiveBattler].faintedHasReplacement = TRUE; } } - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } else { // Not multi or double battle - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } } else { // Multi battle - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } hitmarkerFaintBits = gHitMarker >> 28; @@ -6565,26 +6754,26 @@ static void Cmd_openpartyscreen(void) gBattlerFainted++; if (gBattlerFainted == gBattlersCount) - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = failInstr; } else { - if (gBattlescriptCurrInstr[1] & PARTY_SCREEN_OPTIONAL) + if (cmd->partyScreenOptional) hitmarkerFaintBits = PARTY_ACTION_CHOOSE_MON; // Used here as the caseId for the EmitChoose function. else hitmarkerFaintBits = PARTY_ACTION_SEND_OUT; - battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1] & ~PARTY_SCREEN_OPTIONAL); + battlerId = GetBattlerForBattleScript(cmd->battler); if (gSpecialStatuses[battlerId].faintedHasReplacement) { - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (HasNoMonsToSwitch(battlerId, PARTY_SIZE, PARTY_SIZE)) { gActiveBattler = battlerId; gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~HITMARKER_FAINTED(gActiveBattler); - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = failInstr; } else { @@ -6596,7 +6785,7 @@ static void Cmd_openpartyscreen(void) BtlController_EmitChoosePokemon(BUFFER_A, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + BATTLE_PARTNER(gActiveBattler)), ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT && gBattleResults.playerSwitchesCounter < 255) gBattleResults.playerSwitchesCounter++; @@ -6627,13 +6816,15 @@ static void Cmd_openpartyscreen(void) static void Cmd_switchhandleorder(void) { + CMD_ARGS(u8 battler, u8 state); + s32 i; if (gBattleControllerExecFlags) return; - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); - switch (gBattlescriptCurrInstr[2]) + switch (cmd->state) { case 0: for (i = 0; i < gBattlersCount; i++) @@ -6688,7 +6879,7 @@ static void Cmd_switchhandleorder(void) break; } - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; } static void SetDmgHazardsBattlescript(u8 battlerId, u8 multistringId) @@ -6709,9 +6900,11 @@ static void SetDmgHazardsBattlescript(u8 battlerId, u8 multistringId) static void Cmd_switchineffects(void) { + CMD_ARGS(u8 battler); + s32 i; - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); UpdateSentPokesToOpponentValue(gActiveBattler); gHitMarker &= ~HITMARKER_FAINTED(gActiveBattler); @@ -6838,7 +7031,7 @@ static void Cmd_switchineffects(void) gBattleStruct->hpOnSwitchout[GetBattlerSide(i)] = gBattleMons[i].hp; } - if (gBattlescriptCurrInstr[1] == BS_FAINTED_LINK_MULTIPLE_1) + if (cmd->battler == BS_FAINTED_LINK_MULTIPLE_1) { u32 hitmarkerFaintBits = gHitMarker >> 28; @@ -6852,70 +7045,84 @@ static void Cmd_switchineffects(void) gBattlerFainted++; } } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_trainerslidein(void) { - gActiveBattler = GetBattlerAtPosition(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler); + + gActiveBattler = GetBattlerAtPosition(cmd->battler); BtlController_EmitTrainerSlide(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_playse(void) { + CMD_ARGS(u16 song); + gActiveBattler = gBattlerAttacker; - BtlController_EmitPlaySE(BUFFER_A, T2_READ_16(gBattlescriptCurrInstr + 1)); + BtlController_EmitPlaySE(BUFFER_A, cmd->song); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_fanfare(void) { + CMD_ARGS(u16 song); + gActiveBattler = gBattlerAttacker; - BtlController_EmitPlayFanfareOrBGM(BUFFER_A, T2_READ_16(gBattlescriptCurrInstr + 1), FALSE); + BtlController_EmitPlayFanfareOrBGM(BUFFER_A, cmd->song, FALSE); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_playfaintcry(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler); + + gActiveBattler = GetBattlerForBattleScript(cmd->battler); BtlController_EmitFaintingCry(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_endlinkbattle(void) { + CMD_ARGS(); + gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); BtlController_EmitEndLinkBattle(BUFFER_A, gBattleOutcome); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 1; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_returntoball(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler); + + gActiveBattler = GetBattlerForBattleScript(cmd->battler); BtlController_EmitReturnMonToBall(BUFFER_A, TRUE); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_handlelearnnewmove(void) { - const u8 *learnedMovePtr = T1_READ_PTR(gBattlescriptCurrInstr + 1); - const u8 *nothingToLearnPtr = T1_READ_PTR(gBattlescriptCurrInstr + 5); + CMD_ARGS(const u8 *learnedMovePtr, const u8 *nothingToLearnPtr, bool8 isFirstMove); - u16 learnMove = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], gBattlescriptCurrInstr[9]); + const u8 *learnedMovePtr = cmd->learnedMovePtr; + const u8 *nothingToLearnPtr = cmd->nothingToLearnPtr; + + u16 learnMove = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], cmd->isFirstMove); while (learnMove == MON_ALREADY_KNOWS_MOVE) learnMove = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterMonId], FALSE); @@ -6925,7 +7132,7 @@ static void Cmd_handlelearnnewmove(void) } else if (learnMove == MON_HAS_MAX_MOVES) { - gBattlescriptCurrInstr += 10; + gBattlescriptCurrInstr = cmd->nextInstr; } else { @@ -6952,6 +7159,8 @@ static void Cmd_handlelearnnewmove(void) static void Cmd_yesnoboxlearnmove(void) { + CMD_ARGS(const u8 *forgotMovePtr); + gActiveBattler = 0; switch (gBattleScripting.learnMoveState) @@ -7030,7 +7239,7 @@ static void Cmd_yesnoboxlearnmove(void) } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->forgotMovePtr; PREPARE_MOVE_BUFFER(gBattleTextBuff2, moveId) @@ -7055,7 +7264,7 @@ static void Cmd_yesnoboxlearnmove(void) break; case 5: HandleBattleWindow(YESNOBOX_X_Y, WINDOW_CLEAR); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; break; case 6: if (gBattleControllerExecFlags == 0) @@ -7068,6 +7277,8 @@ static void Cmd_yesnoboxlearnmove(void) static void Cmd_yesnoboxstoplearningmove(void) { + CMD_ARGS(const u8 *noInstr); + switch (gBattleScripting.learnMoveState) { case 0: @@ -7097,16 +7308,16 @@ static void Cmd_yesnoboxstoplearningmove(void) PlaySE(SE_SELECT); if (gBattleCommunication[1] != 0) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->noInstr; else - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; HandleBattleWindow(YESNOBOX_X_Y, WINDOW_CLEAR); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->noInstr; HandleBattleWindow(YESNOBOX_X_Y, WINDOW_CLEAR); } break; @@ -7115,21 +7326,23 @@ static void Cmd_yesnoboxstoplearningmove(void) static void Cmd_hitanimation(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler); + + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(DoesSubstituteBlockMove(gBattlerAttacker, gActiveBattler, gCurrentMove)) || gDisableStructs[gActiveBattler].substituteHP == 0) { BtlController_EmitHitAnimation(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -7192,6 +7405,8 @@ static u32 GetTrainerMoneyToGive(u16 trainerId) static void Cmd_getmoneyreward(void) { + CMD_ARGS(); + u32 money; u8 sPartyLevel = 1; @@ -7224,13 +7439,15 @@ static void Cmd_getmoneyreward(void) } PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 5, money); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } // Command is never used static void Cmd_updatebattlermoves(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler); + + gActiveBattler = GetBattlerForBattleScript(cmd->battler); switch (gBattleCommunication[0]) { @@ -7249,7 +7466,7 @@ static void Cmd_updatebattlermoves(void) gBattleMons[gActiveBattler].moves[i] = bufferPoke->moves[i]; gBattleMons[gActiveBattler].pp[i] = bufferPoke->pp[i]; } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } break; } @@ -7257,6 +7474,8 @@ static void Cmd_updatebattlermoves(void) static void Cmd_swapattackerwithtarget(void) { + CMD_ARGS(); + gActiveBattler = gBattlerAttacker; gBattlerAttacker = gBattlerTarget; gBattlerTarget = gActiveBattler; @@ -7266,19 +7485,23 @@ static void Cmd_swapattackerwithtarget(void) else gHitMarker |= HITMARKER_SWAP_ATTACKER_TARGET; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_incrementgamestat(void) { - if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) - IncrementGameStat(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 stat); - gBattlescriptCurrInstr += 2; + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) + IncrementGameStat(cmd->stat); + + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_drawpartystatussummary(void) { + CMD_ARGS(u8 battler); + s32 i; struct Pokemon *party; struct HpAndStatus hpStatuses[PARTY_SIZE]; @@ -7286,7 +7509,7 @@ static void Cmd_drawpartystatussummary(void) if (gBattleControllerExecFlags) return; - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) party = gPlayerParty; @@ -7311,21 +7534,25 @@ static void Cmd_drawpartystatussummary(void) BtlController_EmitDrawPartyStatusSummary(BUFFER_A, hpStatuses, 1); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_hidepartystatussummary(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler); + + gActiveBattler = GetBattlerForBattleScript(cmd->battler); BtlController_EmitHidePartyStatusSummary(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumptocalledmove(void) { - if (gBattlescriptCurrInstr[1]) + CMD_ARGS(bool8 notChosenMove); + + if (cmd->notChosenMove) gCurrentMove = gCalledMove; else gChosenMove = gCurrentMove = gCalledMove; @@ -7335,9 +7562,11 @@ static void Cmd_jumptocalledmove(void) static void Cmd_statusanimation(void) { + CMD_ARGS(u8 battler); + if (gBattleControllerExecFlags == 0) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) @@ -7345,18 +7574,20 @@ static void Cmd_statusanimation(void) BtlController_EmitStatusAnimation(BUFFER_A, FALSE, gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_status2animation(void) { + CMD_ARGS(u8 battler, u32 status2); + u32 wantedToAnimate; if (gBattleControllerExecFlags == 0) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - wantedToAnimate = T1_READ_32(gBattlescriptCurrInstr + 2); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); + wantedToAnimate = cmd->status2; if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) @@ -7364,31 +7595,35 @@ static void Cmd_status2animation(void) BtlController_EmitStatusAnimation(BUFFER_A, TRUE, gBattleMons[gActiveBattler].status2 & wantedToAnimate); MarkBattlerForControllerExec(gActiveBattler); } - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_chosenstatusanimation(void) { + CMD_ARGS(u8 battler, bool8 isStatus2, u32 status); + u32 wantedStatus; if (gBattleControllerExecFlags == 0) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - wantedStatus = T1_READ_32(gBattlescriptCurrInstr + 3); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); + wantedStatus = cmd->status; if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBattler].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) { - BtlController_EmitStatusAnimation(BUFFER_A, gBattlescriptCurrInstr[2], wantedStatus); + BtlController_EmitStatusAnimation(BUFFER_A, cmd->isStatus2, wantedStatus); MarkBattlerForControllerExec(gActiveBattler); } - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_yesnobox(void) { + CMD_ARGS(); + switch (gBattleCommunication[0]) { case 0: @@ -7418,13 +7653,13 @@ static void Cmd_yesnobox(void) gBattleCommunication[CURSOR_POSITION] = 1; PlaySE(SE_SELECT); HandleBattleWindow(YESNOBOX_X_Y, WINDOW_CLEAR); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); HandleBattleWindow(YESNOBOX_X_Y, WINDOW_CLEAR); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } break; } @@ -7432,25 +7667,29 @@ static void Cmd_yesnobox(void) static void Cmd_cancelallactions(void) { + CMD_ARGS(); + s32 i; for (i = 0; i < gBattlersCount; i++) gActionsByTurnOrder[i] = B_ACTION_CANCEL_PARTNER; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setgravity(void) { + CMD_ARGS(const u8 *failInstr); + if (gFieldStatuses & STATUS_FIELD_GRAVITY) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gFieldStatuses |= STATUS_FIELD_GRAVITY; gFieldTimers.gravityTimer = 5; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -7519,16 +7758,18 @@ static bool32 TrySymbiosis(u32 battler, u32 itemId) static void Cmd_removeitem(void) { + CMD_ARGS(u8 battler); + u16 itemId = 0; if (gBattleScripting.overrideBerryRequirements) { // bug bite / pluck - don't remove current item - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; return; } - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); itemId = gBattleMons[gActiveBattler].item; // Popped Air Balloon cannot be restored by any means. @@ -7543,18 +7784,22 @@ static void Cmd_removeitem(void) ClearBattlerItemEffectHistory(gActiveBattler); if (!TryCheekPouch(gActiveBattler, itemId) && !TrySymbiosis(gActiveBattler, itemId)) - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_atknameinbuff1(void) { + CMD_ARGS(); + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_drawlvlupbox(void) { + CMD_ARGS(); + if (gBattleScripting.drawlvlupboxState == 0) { // If the Pokémon getting exp is not in-battle then @@ -7648,7 +7893,7 @@ static void Cmd_drawlvlupbox(void) SetBgAttribute(1, BG_ATTR_PRIORITY, 1); ShowBg(0); ShowBg(1); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } break; } @@ -7836,33 +8081,41 @@ static bool32 IsMonGettingExpSentOut(void) static void Cmd_resetsentmonsvalue(void) { + CMD_ARGS(); + ResetSentPokesToOpponentValue(); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setatktoplayer0(void) { + CMD_ARGS(); + gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_makevisible(void) { + CMD_ARGS(u8 battler); + if (gBattleControllerExecFlags) return; - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); BtlController_EmitSpriteInvisibility(BUFFER_A, FALSE); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_recordability(void) { - u8 battler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler); + + u8 battler = GetBattlerForBattleScript(cmd->battler); RecordAbilityBattle(battler, gBattleMons[battler].ability); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } void BufferMoveToLearnIntoBattleTextBuff2(void) @@ -7872,26 +8125,32 @@ void BufferMoveToLearnIntoBattleTextBuff2(void) static void Cmd_buffermovetolearn(void) { + CMD_ARGS(); + BufferMoveToLearnIntoBattleTextBuff2(); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumpifplayerran(void) { + CMD_ARGS(const u8 *jumpInstr); + if (TryRunFromBattle(gBattlerFainted)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_hpthresholds(void) { + CMD_ARGS(u8 battler); + u8 opposingBattler; s32 result; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); opposingBattler = BATTLE_OPPOSITE(gActiveBattler); result = gBattleMons[opposingBattler].hp * 100 / gBattleMons[opposingBattler].maxHP; @@ -7908,18 +8167,20 @@ static void Cmd_hpthresholds(void) gBattleStruct->hpScale = 3; } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_hpthresholds2(void) { + CMD_ARGS(u8 battler); + u8 opposingBattler; s32 result; u8 hpSwitchout; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); opposingBattler = BATTLE_OPPOSITE(gActiveBattler); hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBattlerSide(opposingBattler)); result = (hpSwitchout - gBattleMons[opposingBattler].hp) * 100 / hpSwitchout; @@ -7934,14 +8195,16 @@ static void Cmd_hpthresholds2(void) gBattleStruct->hpScale = 3; } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_useitemonopponent(void) { + CMD_ARGS(); + gBattlerInMenuId = gBattlerAttacker; PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, TRUE); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static bool32 HasAttackerFaintedTarget(void) @@ -8320,6 +8583,8 @@ static bool32 CanTeleport(u8 battlerId) static void Cmd_various(void) { + CMD_ARGS(u8 battler, u8 id); + struct Pokemon *mon; s32 i, j; u8 data[10]; @@ -8328,93 +8593,125 @@ static void Cmd_various(void) if (gBattleControllerExecFlags) return; - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); - switch (gBattlescriptCurrInstr[2]) + switch (cmd->id) { // Roar will fail in a double wild battle when used by the player against one of the two alive wild mons. // Also when an opposing wild mon uses it againt its partner. case VARIOUS_JUMP_IF_ROAR_FAILS: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (WILD_DOUBLE_BATTLE && GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER && GetBattlerSide(gBattlerTarget) == B_SIDE_OPPONENT && IS_WHOLE_SIDE_ALIVE(gBattlerTarget)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else if (WILD_DOUBLE_BATTLE && GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT && GetBattlerSide(gBattlerTarget) == B_SIDE_OPPONENT) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_JUMP_IF_ABSENT: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (!IsBattlerAlive(gActiveBattler)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (IsShieldsDownProtected(gActiveBattler)) { gBattlerAbility = gActiveBattler; - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; } else { - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_JUMP_IF_NO_HOLD_EFFECT: - if (GetBattlerHoldEffect(gActiveBattler, TRUE) != gBattlescriptCurrInstr[3]) + { + VARIOUS_ARGS(u8 holdEffect, const u8 *jumpInstr); + if (GetBattlerHoldEffect(gActiveBattler, TRUE) != cmd->holdEffect) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 4); + gBattlescriptCurrInstr = cmd->jumpInstr; } else { gLastUsedItem = gBattleMons[gActiveBattler].item; // For B_LAST_USED_ITEM - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_JUMP_IF_NO_ALLY: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (!IsBattlerAlive(BATTLE_PARTNER(gActiveBattler))) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_INFATUATE_WITH_BATTLER: + { + VARIOUS_ARGS(u8 infatuateWith); gBattleScripting.battler = gActiveBattler; - gBattleMons[gActiveBattler].status2 |= STATUS2_INFATUATED_WITH(GetBattlerForBattleScript(gBattlescriptCurrInstr[3])); - gBattlescriptCurrInstr += 4; + gBattleMons[gActiveBattler].status2 |= STATUS2_INFATUATED_WITH(GetBattlerForBattleScript(cmd->infatuateWith)); + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_SET_LAST_USED_ITEM: + { + VARIOUS_ARGS(); gLastUsedItem = gBattleMons[gActiveBattler].item; break; + } case VARIOUS_TRY_FAIRY_LOCK: + { + VARIOUS_ARGS(const u8 *failInstr); if (gFieldStatuses & STATUS_FIELD_FAIRY_LOCK) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { gFieldStatuses |= STATUS_FIELD_FAIRY_LOCK; gFieldTimers.fairyLockTimer = 2; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_GET_STAT_VALUE: - i = gBattlescriptCurrInstr[3]; + { + VARIOUS_ARGS(u8 stat); + i = cmd->stat; gBattleMoveDamage = *(u16 *)(&gBattleMons[gActiveBattler].attack) + (i - 1); gBattleMoveDamage *= gStatStageRatios[gBattleMons[gActiveBattler].statStages[i]][0]; gBattleMoveDamage /= gStatStageRatios[gBattleMons[gActiveBattler].statStages[i]][1]; - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_JUMP_IF_FULL_HP: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (BATTLER_MAX_HP(gActiveBattler)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_TRY_FRISK: + { + VARIOUS_ARGS(); while (gBattleStruct->friskedBattler < gBattlersCount) { gBattlerTarget = gBattleStruct->friskedBattler++; @@ -8441,54 +8738,78 @@ static void Cmd_various(void) gBattleStruct->friskedBattler = 0; gBattleStruct->friskedAbility = FALSE; break; + } case VARIOUS_POISON_TYPE_IMMUNITY: - if (!CanPoisonType(gActiveBattler, GetBattlerForBattleScript(gBattlescriptCurrInstr[3]))) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 4); + { + VARIOUS_ARGS(u8 target, const u8 *failInstr); + if (!CanPoisonType(gActiveBattler, GetBattlerForBattleScript(cmd->target))) + gBattlescriptCurrInstr = cmd->failInstr; else - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_PARALYZE_TYPE_IMMUNITY: - if (!CanParalyzeType(gActiveBattler, GetBattlerForBattleScript(gBattlescriptCurrInstr[3]))) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 4); + { + VARIOUS_ARGS(u8 target, const u8 *failInstr); + if (!CanParalyzeType(gActiveBattler, GetBattlerForBattleScript(cmd->target))) + gBattlescriptCurrInstr = cmd->failInstr; else - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_TRACE_ABILITY: + { + VARIOUS_ARGS(); gBattleMons[gActiveBattler].ability = gBattleStruct->overwrittenAbilities[gActiveBattler] = gBattleStruct->tracedAbility[gActiveBattler]; break; + } case VARIOUS_TRY_ILLUSION_OFF: + { + VARIOUS_ARGS(); if (GetIllusionMonPtr(gActiveBattler) != NULL) { - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_IllusionOff; return; } break; + } case VARIOUS_SET_SPRITEIGNORE0HP: - gBattleStruct->spriteIgnore0Hp = gBattlescriptCurrInstr[3]; - gBattlescriptCurrInstr += 4; + { + VARIOUS_ARGS(bool8 ignore0HP); + gBattleStruct->spriteIgnore0Hp = cmd->ignore0HP; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_UPDATE_NICK: + { + VARIOUS_ARGS(); if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) mon = &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]; else mon = &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]; UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], mon, HEALTHBOX_NICK); break; + } case VARIOUS_JUMP_IF_NOT_BERRY: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (ItemId_GetPocket(gBattleMons[gActiveBattler].item) == POCKET_BERRIES) - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; return; + } case VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS: + { + VARIOUS_ARGS(const u8 *failInstr); if ((gStatuses3[gActiveBattler] & (STATUS3_SEMI_INVULNERABLE | STATUS3_HEAL_BLOCK)) || BATTLER_MAX_HP(gActiveBattler) || !gBattleMons[gActiveBattler].hp || !(IsBattlerGrounded(gActiveBattler))) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -8497,17 +8818,23 @@ static void Cmd_various(void) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_GRAVITY_ON_AIRBORNE_MONS: + { + VARIOUS_ARGS(); // Cancel all multiturn moves of IN_AIR Pokemon except those being targeted by Sky Drop. if (gStatuses3[gActiveBattler] & STATUS3_ON_AIR && !(gStatuses3[gActiveBattler] & STATUS3_SKY_DROPPED)) CancelMultiTurnMoves(gActiveBattler); gStatuses3[gActiveBattler] &= ~(STATUS3_MAGNET_RISE | STATUS3_TELEKINESIS | STATUS3_ON_AIR | STATUS3_SKY_DROPPED); break; + } case VARIOUS_SPECTRAL_THIEF: + { + VARIOUS_ARGS(); // Raise stats for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) { @@ -8524,10 +8851,16 @@ static void Cmd_various(void) } } break; + } case VARIOUS_SET_POWDER: + { + VARIOUS_ARGS(); gBattleMons[gActiveBattler].status2 |= STATUS2_POWDER; break; + } case VARIOUS_ACUPRESSURE: + { + VARIOUS_ARGS(const u8 *failInstr); bits = 0; for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) { @@ -8543,17 +8876,23 @@ static void Cmd_various(void) } while (!(bits & gBitTable[statId])); SET_STATCHANGER(statId, 2, FALSE); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } return; + } case VARIOUS_CANCEL_MULTI_TURN_MOVES: + { + VARIOUS_ARGS(); CancelMultiTurnMoves(gActiveBattler); break; + } case VARIOUS_SET_MAGIC_COAT_TARGET: + { + VARIOUS_ARGS(); gBattleStruct->attackerBeforeBounce = gActiveBattler; gBattlerAttacker = gBattlerTarget; side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); @@ -8562,23 +8901,38 @@ static void Cmd_various(void) else gBattlerTarget = gActiveBattler; break; + } case VARIOUS_IS_RUNNING_IMPOSSIBLE: + { + VARIOUS_ARGS(); gBattleCommunication[0] = IsRunningFromBattleImpossible(); break; + } case VARIOUS_GET_MOVE_TARGET: + { + VARIOUS_ARGS(); gBattlerTarget = GetMoveTarget(gCurrentMove, NO_TARGET_OVERRIDE); break; + } case VARIOUS_GET_BATTLER_FAINTED: + { + VARIOUS_ARGS(); if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) gBattleCommunication[0] = TRUE; else gBattleCommunication[0] = FALSE; break; + } case VARIOUS_RESET_SWITCH_IN_ABILITY_BITS: + { + VARIOUS_ARGS(); gSpecialStatuses[gActiveBattler].traced = FALSE; gSpecialStatuses[gActiveBattler].switchInAbilityDone = FALSE; break; + } case VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP: + { + VARIOUS_ARGS(); if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterMonId || gBattlerPartyIndexes[2] == gBattleStruct->expGetterMonId) { if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterMonId) @@ -8595,7 +8949,10 @@ static void Cmd_various(void) gBattleStruct->choicedMove[gActiveBattler] = MOVE_NONE; } break; + } case VARIOUS_RESET_PLAYER_FAINTED: + { + VARIOUS_ARGS(); if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_DOUBLE)) && gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattleMons[0].hp != 0 @@ -8604,7 +8961,10 @@ static void Cmd_various(void) gHitMarker &= ~HITMARKER_PLAYER_FAINTED; } break; + } case VARIOUS_PALACE_FLAVOR_TEXT: + { + VARIOUS_ARGS(); // Try and print end-of-turn Battle Palace flavor text (e.g. "A glint appears in mon's eyes") gBattleCommunication[0] = FALSE; // whether or not msg should be printed gBattleScripting.battler = gActiveBattler = gBattleCommunication[1]; @@ -8618,7 +8978,11 @@ static void Cmd_various(void) gBattleCommunication[MULTISTRING_CHOOSER] = sBattlePalaceNatureToFlavorTextId[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)]; } break; + } case VARIOUS_ARENA_JUDGMENT_WINDOW: + { + VARIOUS_ARGS(); + i = BattleArena_ShowJudgmentWindow(&gBattleCommunication[0]); // BattleArena_ShowJudgmentWindow's last state was an intermediate step. @@ -8628,20 +8992,29 @@ static void Cmd_various(void) gBattleCommunication[1] = i; break; + } case VARIOUS_ARENA_OPPONENT_MON_LOST: + { + VARIOUS_ARGS(); gBattleMons[1].hp = 0; gHitMarker |= HITMARKER_FAINTED(1); gBattleStruct->arenaLostOpponentMons |= gBitTable[gBattlerPartyIndexes[1]]; gDisableStructs[1].truantSwitchInHack = 1; break; + } case VARIOUS_ARENA_PLAYER_MON_LOST: + { + VARIOUS_ARGS(); gBattleMons[0].hp = 0; gHitMarker |= HITMARKER_FAINTED(0); gHitMarker |= HITMARKER_PLAYER_FAINTED; gBattleStruct->arenaLostPlayerMons |= gBitTable[gBattlerPartyIndexes[0]]; gDisableStructs[0].truantSwitchInHack = 1; break; + } case VARIOUS_ARENA_BOTH_MONS_LOST: + { + VARIOUS_ARGS(); gBattleMons[0].hp = 0; gBattleMons[1].hp = 0; gHitMarker |= HITMARKER_FAINTED(0); @@ -8652,29 +9025,50 @@ static void Cmd_various(void) gDisableStructs[0].truantSwitchInHack = 1; gDisableStructs[1].truantSwitchInHack = 1; break; + } case VARIOUS_EMIT_YESNOBOX: + { + VARIOUS_ARGS(); BtlController_EmitYesNoBox(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); break; + } case VARIOUS_DRAW_ARENA_REF_TEXT_BOX: + { + VARIOUS_ARGS(); DrawArenaRefereeTextBox(); break; + } case VARIOUS_ERASE_ARENA_REF_TEXT_BOX: + { + VARIOUS_ARGS(); EraseArenaRefereeTextBox(); break; + } case VARIOUS_ARENA_JUDGMENT_STRING: - BattleStringExpandPlaceholdersToDisplayedString(gRefereeStringsTable[gBattlescriptCurrInstr[1]]); + { + CMD_ARGS(u8 id, u8 _); + BattleStringExpandPlaceholdersToDisplayedString(gRefereeStringsTable[cmd->id]); BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TEXT); break; + } case VARIOUS_ARENA_WAIT_STRING: + { + VARIOUS_ARGS(); if (IsTextPrinterActive(ARENA_WIN_JUDGMENT_TEXT)) return; break; + } case VARIOUS_WAIT_CRY: + { + VARIOUS_ARGS(); if (!IsCryFinished()) return; break; + } case VARIOUS_RETURN_OPPONENT_MON1: + { + VARIOUS_ARGS(); gActiveBattler = 1; if (gBattleMons[gActiveBattler].hp != 0) { @@ -8682,7 +9076,10 @@ static void Cmd_various(void) MarkBattlerForControllerExec(gActiveBattler); } break; + } case VARIOUS_RETURN_OPPONENT_MON2: + { + VARIOUS_ARGS(); if (gBattlersCount > 3) { gActiveBattler = 3; @@ -8693,20 +9090,35 @@ static void Cmd_various(void) } } break; + } case VARIOUS_VOLUME_DOWN: + { + VARIOUS_ARGS(); m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 0x55); break; + } case VARIOUS_VOLUME_UP: + { + VARIOUS_ARGS(); m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 0x100); break; + } case VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT: + { + VARIOUS_ARGS(); gBattleStruct->alreadyStatusedMoveAttempt |= gBitTable[gActiveBattler]; break; + } case VARIOUS_PALACE_TRY_ESCAPE_STATUS: + { + VARIOUS_ARGS(); if (BattlePalace_TryEscapeStatus(gActiveBattler)) return; break; + } case VARIOUS_SET_TELEPORT_OUTCOME: + { + VARIOUS_ARGS(); // Don't end the battle if one of the wild mons teleported from the wild double battle // and its partner is still alive. if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && IsBattlerAlive(BATTLE_PARTNER(gActiveBattler))) @@ -8727,35 +9139,59 @@ static void Cmd_various(void) gBattleOutcome = B_OUTCOME_MON_TELEPORTED; } break; + } case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC: + { + VARIOUS_ARGS(); BtlController_EmitPlayFanfareOrBGM(BUFFER_A, MUS_VICTORY_TRAINER, TRUE); MarkBattlerForControllerExec(gActiveBattler); break; + } case VARIOUS_STAT_TEXT_BUFFER: + { + VARIOUS_ARGS(); PREPARE_STAT_BUFFER(gBattleTextBuff1, gBattleCommunication[0]); break; + } case VARIOUS_SWITCHIN_ABILITIES: - gBattlescriptCurrInstr += 3; + { + VARIOUS_ARGS(); + gBattlescriptCurrInstr = cmd->nextInstr; AbilityBattleEffects(ABILITYEFFECT_NEUTRALIZINGGAS, gActiveBattler, 0, 0, 0); AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0); AbilityBattleEffects(ABILITYEFFECT_TRACE2, gActiveBattler, 0, 0, 0); return; + } case VARIOUS_SAVE_TARGET: + { + VARIOUS_ARGS(); gBattleStruct->savedBattlerTarget = gBattlerTarget; break; + } case VARIOUS_RESTORE_TARGET: + { + VARIOUS_ARGS(); gBattlerTarget = gBattleStruct->savedBattlerTarget; break; + } case VARIOUS_INSTANT_HP_DROP: + { + VARIOUS_ARGS(); BtlController_EmitHealthBarUpdate(BUFFER_A, INSTANT_HP_BAR_DROP); MarkBattlerForControllerExec(gActiveBattler); break; + } case VARIOUS_CLEAR_STATUS: + { + VARIOUS_ARGS(); gBattleMons[gActiveBattler].status1 = 0; BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gActiveBattler].status1), &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); break; + } case VARIOUS_RESTORE_PP: + { + VARIOUS_ARGS(); for (i = 0; i < 4; i++) { gBattleMons[gActiveBattler].pp[i] = CalculatePPWithBonus(gBattleMons[gActiveBattler].moves[i], gBattleMons[gActiveBattler].ppBonuses, i); @@ -8765,8 +9201,11 @@ static void Cmd_various(void) BtlController_EmitSetMonData(BUFFER_A, REQUEST_PP_DATA_BATTLE, 0, 5, data); MarkBattlerForControllerExec(gActiveBattler); break; + } case VARIOUS_TRY_ACTIVATE_MOXIE: // and chilling neigh + as one ice rider { + VARIOUS_ARGS(); + u16 battlerAbility = GetBattlerAbility(gActiveBattler); if ((battlerAbility == ABILITY_MOXIE @@ -8779,17 +9218,19 @@ static void Cmd_various(void) gBattleMons[gBattlerAttacker].statStages[STAT_ATK]++; SET_STATCHANGER(STAT_ATK, 1, FALSE); PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK); - BattleScriptPush(gBattlescriptCurrInstr + 3); + BattleScriptPush(cmd->nextInstr); gLastUsedAbility = battlerAbility; if (battlerAbility == ABILITY_AS_ONE_ICE_RIDER) gBattleScripting.abilityPopupOverwrite = gLastUsedAbility = ABILITY_CHILLING_NEIGH; gBattlescriptCurrInstr = BattleScript_RaiseStatOnFaintingTarget; return; } - } break; + } case VARIOUS_TRY_ACTIVATE_GRIM_NEIGH: // and as one shadow rider { + VARIOUS_ARGS(); + u16 battlerAbility = GetBattlerAbility(gActiveBattler); if ((battlerAbility == ABILITY_GRIM_NEIGH @@ -8801,16 +9242,18 @@ static void Cmd_various(void) gBattleMons[gBattlerAttacker].statStages[STAT_SPATK]++; SET_STATCHANGER(STAT_SPATK, 1, FALSE); PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPATK); - BattleScriptPush(gBattlescriptCurrInstr + 3); + BattleScriptPush(cmd->nextInstr); gLastUsedAbility = battlerAbility; if (battlerAbility == ABILITY_AS_ONE_SHADOW_RIDER) gBattleScripting.abilityPopupOverwrite = gLastUsedAbility = ABILITY_GRIM_NEIGH; gBattlescriptCurrInstr = BattleScript_RaiseStatOnFaintingTarget; return; } - } break; + } case VARIOUS_TRY_ACTIVATE_RECEIVER: // Partner gets fainted's ally ability + { + VARIOUS_ARGS(); gBattlerAbility = BATTLE_PARTNER(gActiveBattler); i = GetBattlerAbility(gBattlerAbility); if (IsBattlerAlive(gBattlerAbility) @@ -8832,13 +9275,16 @@ static void Cmd_various(void) default: gBattleStruct->tracedAbility[gBattlerAbility] = gBattleMons[gActiveBattler].ability; // re-using the variable for trace gBattleScripting.battler = gActiveBattler; - BattleScriptPush(gBattlescriptCurrInstr + 3); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_ReceiverActivates; return; } } break; + } case VARIOUS_TRY_ACTIVATE_BEAST_BOOST: + { + VARIOUS_ARGS(); i = GetHighestStatId(gActiveBattler); if (GetBattlerAbility(gActiveBattler) == ABILITY_BEAST_BOOST && HasAttackerFaintedTarget() @@ -8848,12 +9294,15 @@ static void Cmd_various(void) gBattleMons[gBattlerAttacker].statStages[i]++; SET_STATCHANGER(i, 1, FALSE); PREPARE_STAT_BUFFER(gBattleTextBuff1, i); - BattleScriptPush(gBattlescriptCurrInstr + 3); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_AttackerAbilityStatRaise; return; } break; + } case VARIOUS_TRY_ACTIVATE_SOULHEART: + { + VARIOUS_ARGS(); while (gBattleStruct->soulheartBattlerId < gBattlersCount) { gBattleScripting.battler = gBattleStruct->soulheartBattlerId++; @@ -8872,7 +9321,10 @@ static void Cmd_various(void) } gBattleStruct->soulheartBattlerId = 0; break; + } case VARIOUS_TRY_ACTIVATE_FELL_STINGER: + { + VARIOUS_ARGS(); if (gBattleMoves[gCurrentMove].effect == EFFECT_FELL_STINGER && HasAttackerFaintedTarget() && !NoAliveMonsForEitherParty() @@ -8884,50 +9336,62 @@ static void Cmd_various(void) SET_STATCHANGER(STAT_ATK, 2, FALSE); #endif PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK); - BattleScriptPush(gBattlescriptCurrInstr + 3); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_FellStingerRaisesStat; return; } break; + } case VARIOUS_PLAY_MOVE_ANIMATION: - BtlController_EmitMoveAnimation(BUFFER_A, T1_READ_16(gBattlescriptCurrInstr + 3), gBattleScripting.animTurn, 0, 0, gBattleMons[gActiveBattler].friendship, &gDisableStructs[gActiveBattler], gMultiHitCounter); + { + VARIOUS_ARGS(u16 move); + BtlController_EmitMoveAnimation(BUFFER_A, cmd->move, gBattleScripting.animTurn, 0, 0, gBattleMons[gActiveBattler].friendship, &gDisableStructs[gActiveBattler], gMultiHitCounter); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_SET_LUCKY_CHANT: + { + VARIOUS_ARGS(const u8 *failInstr); if (!(gSideStatuses[GET_BATTLER_SIDE(gActiveBattler)] & SIDE_STATUS_LUCKY_CHANT)) { gSideStatuses[GET_BATTLER_SIDE(gActiveBattler)] |= SIDE_STATUS_LUCKY_CHANT; gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].luckyChantBattlerId = gActiveBattler; gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].luckyChantTimer = 5; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } return; + } case VARIOUS_SUCKER_PUNCH_CHECK: + { + VARIOUS_ARGS(const u8 *failInstr); if (gProtectStructs[gBattlerTarget].obstructed) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; else if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; else if (IS_MOVE_STATUS(gBattleMons[gBattlerTarget].moves[gBattleStruct->chosenMovePositions[gBattlerTarget]])) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_SET_SIMPLE_BEAM: + { + VARIOUS_ARGS(const u8 *failInstr); if (IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability) || gBattleMons[gBattlerTarget].ability == ABILITY_SIMPLE) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else if (GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_ABILITY_SHIELD); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -8935,41 +9399,50 @@ static void Cmd_various(void) gSpecialStatuses[gBattlerTarget].neutralizingGasRemoved = TRUE; gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = ABILITY_SIMPLE; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_TRY_ENTRAINMENT: + { + VARIOUS_ARGS(const u8 *failInstr); if (IsEntrainmentBannedAbilityAttacker(gBattleMons[gBattlerAttacker].ability) || IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability)) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else if (GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_ABILITY_SHIELD); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { if (gBattleMons[gBattlerTarget].ability == gBattleMons[gBattlerAttacker].ability) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gBattleMons[gBattlerAttacker].ability; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } } return; + } case VARIOUS_SET_LAST_USED_ABILITY: + { + VARIOUS_ARGS(); gLastUsedAbility = gBattleMons[gActiveBattler].ability; break; + } case VARIOUS_TRY_HEAL_PULSE: + { + VARIOUS_ARGS(const u8 *failInstr); if (BATTLER_MAX_HP(gActiveBattler)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -8980,21 +9453,27 @@ static void Cmd_various(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = -1; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_TRY_QUASH: + { + VARIOUS_ARGS(const u8 *failInstr); if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget)) // It's true if foe is faster, has a bigger priority, or switches { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // This replaces the current battlescript with the "fail" script. + gBattlescriptCurrInstr = cmd->failInstr; // This replaces the current battlescript with the "fail" script. } else // If the condition is not true, it means we are faster than the foe, so we can set the quash bit { gProtectStructs[gBattlerTarget].quash = TRUE; - gBattlescriptCurrInstr += 7; // and then we proceed with the rest of our battlescript + gBattlescriptCurrInstr = cmd->nextInstr; // and then we proceed with the rest of our battlescript } return; + } case VARIOUS_INVERT_STAT_STAGES: + { + VARIOUS_ARGS(); for (i = 0; i < NUM_BATTLE_STATS; i++) { if (gBattleMons[gActiveBattler].statStages[i] < DEFAULT_STAT_STAGE) // Negative becomes positive. @@ -9003,14 +9482,20 @@ static void Cmd_various(void) gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE - (gBattleMons[gActiveBattler].statStages[i] - DEFAULT_STAT_STAGE); } break; + } case VARIOUS_SET_TERRAIN: + { + VARIOUS_ARGS(const u8 *failInstr); HandleTerrainMove(gCurrentMove); return; + } case VARIOUS_TRY_ME_FIRST: + { + VARIOUS_ARGS(const u8 *failInstr); if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; else if (IS_MOVE_STATUS(gBattleMons[gBattlerTarget].moves[gBattleStruct->chosenMovePositions[gBattlerTarget]])) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; else { u16 move = gBattleMons[gBattlerTarget].moves[gBattleStruct->chosenMovePositions[gBattlerTarget]]; @@ -9026,84 +9511,100 @@ static void Cmd_various(void) case MOVE_METAL_BURST: case MOVE_ME_FIRST: case MOVE_BEAK_BLAST: - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; break; default: gCalledMove = move; gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; gBattlerTarget = GetMoveTarget(gCalledMove, NO_TARGET_OVERRIDE); gStatuses3[gBattlerAttacker] |= STATUS3_ME_FIRST; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; break; } } return; + } case VARIOUS_JUMP_IF_BATTLE_END: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (NoAliveMonsForEitherParty()) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_TRY_ELECTRIFY: + { + VARIOUS_ARGS(const u8 *failInstr); if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { gStatuses4[gBattlerTarget] |= STATUS4_ELECTRIFIED; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_TRY_REFLECT_TYPE: + { + VARIOUS_ARGS(const u8 *failInstr); if (gBattleMons[gBattlerTarget].species == SPECIES_ARCEUS || gBattleMons[gBattlerTarget].species == SPECIES_SILVALLY) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else if (gBattleMons[gBattlerTarget].type1 == TYPE_MYSTERY && gBattleMons[gBattlerTarget].type2 != TYPE_MYSTERY) { gBattleMons[gBattlerAttacker].type1 = gBattleMons[gBattlerTarget].type2; gBattleMons[gBattlerAttacker].type2 = gBattleMons[gBattlerTarget].type2; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (gBattleMons[gBattlerTarget].type1 != TYPE_MYSTERY && gBattleMons[gBattlerTarget].type2 == TYPE_MYSTERY) { gBattleMons[gBattlerAttacker].type1 = gBattleMons[gBattlerTarget].type1; gBattleMons[gBattlerAttacker].type2 = gBattleMons[gBattlerTarget].type1; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (gBattleMons[gBattlerTarget].type1 == TYPE_MYSTERY && gBattleMons[gBattlerTarget].type2 == TYPE_MYSTERY) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { gBattleMons[gBattlerAttacker].type1 = gBattleMons[gBattlerTarget].type1; gBattleMons[gBattlerAttacker].type2 = gBattleMons[gBattlerTarget].type2; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_TRY_SOAK: + { + VARIOUS_ARGS(const u8 *failInstr); if (gBattleMons[gBattlerTarget].type1 == gBattleMoves[gCurrentMove].type && gBattleMons[gBattlerTarget].type2 == gBattleMoves[gCurrentMove].type) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { SET_BATTLER_TYPE(gBattlerTarget, gBattleMoves[gCurrentMove].type); PREPARE_TYPE_BUFFER(gBattleTextBuff1, gBattleMoves[gCurrentMove].type); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_HANDLE_MEGA_EVO: + { + VARIOUS_ARGS(u8 case_); + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) mon = &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]; else mon = &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]; // Change species. - if (gBattlescriptCurrInstr[3] == 0) + if (cmd->case_ == 0) { u16 megaSpecies; gBattleStruct->mega.evolvedSpecies[gActiveBattler] = gBattleMons[gActiveBattler].species; @@ -9127,7 +9628,7 @@ static void Cmd_various(void) MarkBattlerForControllerExec(gActiveBattler); } // Change stats. - else if (gBattlescriptCurrInstr[3] == 1) + else if (cmd->case_ == 1) { RecalcBattlerStats(gActiveBattler, mon); gBattleStruct->mega.alreadyEvolved[GetBattlerPosition(gActiveBattler)] = TRUE; @@ -9141,16 +9642,19 @@ static void Cmd_various(void) if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) SetBattlerShadowSpriteCallback(gActiveBattler, gBattleMons[gActiveBattler].species); } - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_HANDLE_PRIMAL_REVERSION: + { + VARIOUS_ARGS(u8 case_); if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) mon = &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]; else mon = &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]; // Change species. - if (gBattlescriptCurrInstr[3] == 0) + if (cmd->case_ == 0) { u16 primalSpecies; gBattleStruct->mega.primalRevertedSpecies[gActiveBattler] = gBattleMons[gActiveBattler].species; @@ -9169,7 +9673,7 @@ static void Cmd_various(void) MarkBattlerForControllerExec(gActiveBattler); } // Change stats. - else if (gBattlescriptCurrInstr[3] == 1) + else if (cmd->case_ == 1) { RecalcBattlerStats(gActiveBattler, mon); gBattleStruct->mega.primalRevertedPartyIds[GetBattlerSide(gActiveBattler)] |= gBitTable[gBattlerPartyIndexes[gActiveBattler]]; @@ -9182,16 +9686,19 @@ static void Cmd_various(void) if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) SetBattlerShadowSpriteCallback(gActiveBattler, gBattleMons[gActiveBattler].species); } - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_HANDLE_FORM_CHANGE: + { + VARIOUS_ARGS(u8 case_); if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) mon = &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]; else mon = &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]; // Change species. - if (gBattlescriptCurrInstr[3] == 0) + if (cmd->case_ == 0) { if (!gBattleTextBuff1) PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gActiveBattler].species); @@ -9199,7 +9706,7 @@ static void Cmd_various(void) MarkBattlerForControllerExec(gActiveBattler); } // Change stats. - else if (gBattlescriptCurrInstr[3] == 1) + else if (cmd->case_ == 1) { RecalcBattlerStats(gActiveBattler, mon); } @@ -9208,15 +9715,21 @@ static void Cmd_various(void) { UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], mon, HEALTHBOX_ALL); } - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_TRY_LAST_RESORT: + { + VARIOUS_ARGS(const u8 *failInstr); if (CanUseLastResort(gActiveBattler)) - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; return; + } case VARIOUS_ARGUMENT_STATUS_EFFECT: + { + VARIOUS_ARGS(); switch (gBattleMoves[gCurrentMove].argument) { case STATUS1_SLEEP: @@ -9243,12 +9756,15 @@ static void Cmd_various(void) } if (gBattleScripting.moveEffect != 0) { - BattleScriptPush(gBattlescriptCurrInstr + 3); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_EffectWithChance; return; } break; + } case VARIOUS_TRY_HIT_SWITCH_TARGET: + { + VARIOUS_ARGS(const u8 *failInstr); if (IsBattlerAlive(gBattlerAttacker) && IsBattlerAlive(gBattlerTarget) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) @@ -9260,38 +9776,47 @@ static void Cmd_various(void) } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } return; + } case VARIOUS_TRY_AUTOTOMIZE: + { + VARIOUS_ARGS(const u8 *failInstr); if (GetBattlerWeight(gActiveBattler) > 1) { gDisableStructs[gActiveBattler].autotomizeCount++; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } return; + } case VARIOUS_TRY_COPYCAT: + { + VARIOUS_ARGS(const u8 *failInstr); if (gLastUsedMove == 0xFFFF || (sForbiddenMoves[gLastUsedMove] & FORBIDDEN_COPYCAT)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { gCalledMove = gLastUsedMove; gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; gBattlerTarget = GetMoveTarget(gCalledMove, NO_TARGET_OVERRIDE); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_TRY_INSTRUCT: + { + VARIOUS_ARGS(const u8 *failInstr); if ((sForbiddenMoves[gLastMoves[gBattlerTarget]] & FORBIDDEN_INSTRUCT) || gLastMoves[gBattlerTarget] == 0xFFFF) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -9308,59 +9833,80 @@ static void Cmd_various(void) } } if (i != 4 || gBattleMons[gBattlerAttacker].pp[gCurrMovePos] == 0) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; else { gBattlerTarget = gBattleStruct->lastMoveTarget[gBattlerAttacker]; gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler]); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } } return; + } case VARIOUS_ABILITY_POPUP: + { + VARIOUS_ARGS(); CreateAbilityPopUp(gActiveBattler, gBattleMons[gActiveBattler].ability, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0); break; + } case VARIOUS_UPDATE_ABILITY_POPUP: + { + VARIOUS_ARGS(); UpdateAbilityPopup(gActiveBattler); break; + } case VARIOUS_DEFOG: - if (T1_READ_8(gBattlescriptCurrInstr + 3)) // Clear + { + VARIOUS_ARGS(bool8 clear, const u8 *failInstr); + if (cmd->clear) // Clear { if (ClearDefogHazards(gEffectBattler, TRUE)) return; else - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; } else { if (ClearDefogHazards(gActiveBattler, FALSE)) - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 4); + gBattlescriptCurrInstr = cmd->failInstr; } return; + } case VARIOUS_JUMP_IF_TARGET_ALLY: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; return; + } case VARIOUS_TRY_SYNCHRONOISE: + { + VARIOUS_ARGS(const u8 *failInstr); if (!DoBattlersShareType(gBattlerAttacker, gBattlerTarget)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_LOSE_TYPE: + { + VARIOUS_ARGS(u8 type); for (i = 0; i < 3; i++) { - if (*(u8 *)(&gBattleMons[gActiveBattler].type1 + i) == gBattlescriptCurrInstr[3]) + if (*(u8 *)(&gBattleMons[gActiveBattler].type1 + i) == cmd->type) *(u8 *)(&gBattleMons[gActiveBattler].type1 + i) = TYPE_MYSTERY; } - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_PSYCHO_SHIFT: + { + VARIOUS_ARGS(const u8 *failInstr); // Psycho shift works if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_POISON) && CanBePoisoned(gBattlerAttacker, gBattlerTarget)) gBattleCommunication[MULTISTRING_CHOOSER] = 0; @@ -9374,29 +9920,38 @@ static void Cmd_various(void) gBattleCommunication[MULTISTRING_CHOOSER] = 4; else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; return; } gBattleMons[gBattlerTarget].status1 = gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY; gActiveBattler = gBattlerTarget; BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gActiveBattler].status1), &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 7; - return; + gBattlescriptCurrInstr = cmd->nextInstr; + return; + } case VARIOUS_CURE_STATUS: + { + VARIOUS_ARGS(); gBattleMons[gActiveBattler].status1 = 0; BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gActiveBattler].status1), &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); break; + } case VARIOUS_POWER_TRICK: + { + VARIOUS_ARGS(); gStatuses3[gActiveBattler] ^= STATUS3_POWER_TRICK; SWAP(gBattleMons[gActiveBattler].attack, gBattleMons[gActiveBattler].defense, i); break; + } case VARIOUS_AFTER_YOU: + { + VARIOUS_ARGS(const u8 *failInstr); if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget) || GetBattlerTurnOrderNum(gBattlerAttacker) + 1 == GetBattlerTurnOrderNum(gBattlerTarget)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -9420,39 +9975,51 @@ static void Cmd_various(void) gBattlerByTurnOrder[3] = data[2]; } gSpecialStatuses[gBattlerTarget].afterYou = 1; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_BESTOW: + { + VARIOUS_ARGS(const u8 *failInstr); if (gBattleMons[gBattlerAttacker].item == ITEM_NONE || gBattleMons[gBattlerTarget].item != ITEM_NONE || !CanBattlerGetOrLoseItem(gBattlerAttacker, gBattleMons[gBattlerAttacker].item) || !CanBattlerGetOrLoseItem(gBattlerTarget, gBattleMons[gBattlerAttacker].item)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { BestowItem(gBattlerAttacker, gBattlerTarget); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_ARGUMENT_TO_MOVE_EFFECT: + { + VARIOUS_ARGS(); gBattleScripting.moveEffect = gBattleMoves[gCurrentMove].argument; break; + } case VARIOUS_JUMP_IF_NOT_GROUNDED: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (!IsBattlerGrounded(gActiveBattler)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_HANDLE_TRAINER_SLIDE_MSG: - if (gBattlescriptCurrInstr[3] == 0) + { + VARIOUS_ARGS(u8 case_); + if (cmd->case_ == 0) { gBattleScripting.savedDmg = gBattlerSpriteIds[gActiveBattler]; HideBattlerShadowSprite(gActiveBattler); } - else if (gBattlescriptCurrInstr[3] == 1) + else if (cmd->case_ == 1) { BtlController_EmitPrintString(BUFFER_A, STRINGID_TRAINERSLIDE); MarkBattlerForControllerExec(gActiveBattler); @@ -9466,27 +10033,36 @@ static void Cmd_various(void) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } } - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF: + { + VARIOUS_ARGS(); if (ShouldDoTrainerSlide(gActiveBattler, gTrainerBattleOpponent_A, TRAINER_SLIDE_FIRST_DOWN)) { gBattleScripting.battler = gActiveBattler; - BattleScriptPush(gBattlescriptCurrInstr + 3); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_TrainerSlideMsgRet; return; } break; + } case VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON: + { + VARIOUS_ARGS(); if (ShouldDoTrainerSlide(gActiveBattler, gTrainerBattleOpponent_A, TRAINER_SLIDE_LAST_SWITCHIN)) { gBattleScripting.battler = gActiveBattler; - BattleScriptPush(gBattlescriptCurrInstr + 3); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_TrainerSlideMsgRet; return; } break; + } case VARIOUS_SET_AURORA_VEIL: + { + VARIOUS_ARGS(); if (gSideStatuses[GET_BATTLER_SIDE(gActiveBattler)] & SIDE_STATUS_AURORA_VEIL || !(WEATHER_HAS_EFFECT && gBattleWeather & B_WEATHER_HAIL)) { @@ -9508,26 +10084,35 @@ static void Cmd_various(void) gBattleCommunication[MULTISTRING_CHOOSER] = 5; } break; + } case VARIOUS_TRY_THIRD_TYPE: + { + VARIOUS_ARGS(const u8 *failInstr); if (IS_BATTLER_OF_TYPE(gActiveBattler, gBattleMoves[gCurrentMove].argument)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { gBattleMons[gActiveBattler].type3 = gBattleMoves[gCurrentMove].argument; PREPARE_TYPE_BUFFER(gBattleTextBuff1, gBattleMoves[gCurrentMove].argument); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_DESTROY_ABILITY_POPUP: + { + VARIOUS_ARGS(); DestroyAbilityPopUp(gActiveBattler); break; + } case VARIOUS_TOTEM_BOOST: + { + VARIOUS_ARGS(const u8 *jumpInstr); gActiveBattler = gBattlerAttacker; if (gTotemBoosts[gActiveBattler].stats == 0) { - gBattlescriptCurrInstr += 7; // stats done, exit + gBattlescriptCurrInstr = cmd->nextInstr; // stats done, exit } else { @@ -9550,22 +10135,31 @@ static void Cmd_various(void) } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // do boost + gBattlescriptCurrInstr = cmd->jumpInstr; // do boost } return; } } - gBattlescriptCurrInstr += 7; // exit if loop failed (failsafe) + gBattlescriptCurrInstr = cmd->nextInstr; // exit if loop failed (failsafe) } return; + } case VARIOUS_SET_Z_EFFECT: + { + VARIOUS_ARGS(); SetZEffect(); //handles battle script jumping internally return; + } case VARIOUS_MOVEEND_ITEM_EFFECTS: + { + VARIOUS_ARGS(); if (ItemBattleEffects(ITEMEFFECT_NORMAL, gActiveBattler, FALSE)) return; break; + } case VARIOUS_ROOM_SERVICE: + { + VARIOUS_ARGS(const u8 *failInstr); if (GetBattlerHoldEffect(gActiveBattler, TRUE) == HOLD_EFFECT_ROOM_SERVICE && TryRoomService(gActiveBattler)) { BattleScriptPushCursor(); @@ -9573,10 +10167,13 @@ static void Cmd_various(void) } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } return; + } case VARIOUS_TERRAIN_SEED: + { + VARIOUS_ARGS(const u8 *failInstr); if (GetBattlerHoldEffect(gActiveBattler, TRUE) == HOLD_EFFECT_SEEDS) { u8 effect = 0; @@ -9600,25 +10197,32 @@ static void Cmd_various(void) if (effect) return; } - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; return; + } case VARIOUS_MAKE_INVISIBLE: + { + VARIOUS_ARGS(); if (gBattleControllerExecFlags) break; BtlController_EmitSpriteInvisibility(BUFFER_A, TRUE); MarkBattlerForControllerExec(gActiveBattler); break; + } case VARIOUS_JUMP_IF_TERRAIN_AFFECTED: { - u32 flags = T1_READ_32(gBattlescriptCurrInstr + 3); + VARIOUS_ARGS(u32 flags, const u8 *jumpInstr); + u32 flags = cmd->flags; if (IsBattlerTerrainAffected(gActiveBattler, flags)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 7); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 11; + gBattlescriptCurrInstr = cmd->nextInstr; + return; } - return; case VARIOUS_EERIE_SPELL_PP_REDUCE: + { + VARIOUS_ARGS(const u8 *failInstr); if (gLastMoves[gActiveBattler] != 0 && gLastMoves[gActiveBattler] != 0xFFFF) { s32 i; @@ -9650,48 +10254,57 @@ static void Cmd_various(void) if (gBattleMons[gActiveBattler].pp[i] == 0 && gBattleStruct->skyDropTargets[gActiveBattler] == 0xFF) CancelMultiTurnMoves(gActiveBattler); - gBattlescriptCurrInstr += 7; // continue + gBattlescriptCurrInstr = cmd->nextInstr; // continue } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // cant reduce pp + gBattlescriptCurrInstr = cmd->failInstr; // cant reduce pp } } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // cant reduce pp + gBattlescriptCurrInstr = cmd->failInstr; // cant reduce pp } return; + } case VARIOUS_JUMP_IF_TEAM_HEALTHY: + { + VARIOUS_ARGS(const u8 *jumpInstr); if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerAlive(BATTLE_PARTNER(gActiveBattler))) { u8 partner = BATTLE_PARTNER(gActiveBattler); if ((gBattleMons[gActiveBattler].hp == gBattleMons[gActiveBattler].maxHP && !(gBattleMons[gActiveBattler].status1 & STATUS1_ANY)) && (gBattleMons[partner].hp == gBattleMons[partner].maxHP && !(gBattleMons[partner].status1 & STATUS1_ANY))) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // fail + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else // single battle { if (gBattleMons[gActiveBattler].hp == gBattleMons[gActiveBattler].maxHP && !(gBattleMons[gActiveBattler].status1 & STATUS1_ANY)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // fail + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_TRY_HEAL_QUARTER_HP: + { + VARIOUS_ARGS(const u8 *failInstr); gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; if (gBattleMons[gActiveBattler].hp == gBattleMons[gActiveBattler].maxHP) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // fail + gBattlescriptCurrInstr = cmd->failInstr; // fail else - gBattlescriptCurrInstr += 7; // can heal + gBattlescriptCurrInstr = cmd->nextInstr; // can heal return; + } case VARIOUS_REMOVE_TERRAIN: + { + VARIOUS_ARGS(); gFieldTimers.terrainTimer = 0; switch (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY) { @@ -9713,14 +10326,20 @@ static void Cmd_various(void) } gFieldStatuses &= ~STATUS_FIELD_TERRAIN_ANY; // remove the terrain break; + } case VARIOUS_JUMP_IF_UNDER_200: + { + VARIOUS_ARGS(const u8 *jumpInstr); // If the Pokemon is less than 200 kg, or weighing less than 441 lbs, then Sky Drop will work. Otherwise, it will fail. if (GetBattlerWeight(gBattlerTarget) < 2000) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_SET_SKY_DROP: + { + VARIOUS_ARGS(); gStatuses3[gBattlerTarget] |= (STATUS3_SKY_DROPPED | STATUS3_ON_AIR); /* skyDropTargets holds the information of who is in a particular instance of Sky Drop. This is needed in the case that multiple Pokemon use Sky Drop in the same turn or if @@ -9740,24 +10359,30 @@ static void Cmd_various(void) gSideTimers[GetBattlerSide(gBattlerTarget)].followmeTimer = 0; break; + } case VARIOUS_CLEAR_SKY_DROP: + { + VARIOUS_ARGS(const u8 *failInstr); // Check to see if the initial target of this Sky Drop fainted before the 2nd turn of Sky Drop. // If so, make the move fail. If not, clear all of the statuses and continue the move. if (gBattleStruct->skyDropTargets[gBattlerAttacker] == 0xFF) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; else { gBattleStruct->skyDropTargets[gBattlerAttacker] = 0xFF; gBattleStruct->skyDropTargets[gBattlerTarget] = 0xFF; gStatuses3[gBattlerTarget] &= ~(STATUS3_SKY_DROPPED | STATUS3_ON_AIR); - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } // Confuse target if they were in the middle of Petal Dance/Outrage/Thrash when targeted. if (gBattleMons[gBattlerTarget].status2 & STATUS2_LOCK_CONFUSE) gBattleScripting.moveEffect = (MOVE_EFFECT_CONFUSION | MOVE_EFFECT_CERTAIN); return; + } case VARIOUS_SKY_DROP_YAWN: // If the mon that's sleeping due to Yawn was holding a Pokemon in Sky Drop, release the target and clear Sky Drop data. + { + VARIOUS_ARGS(); if (gBattleStruct->skyDropTargets[gEffectBattler] != 0xFF && !(gStatuses3[gEffectBattler] & STATUS3_SKY_DROPPED)) { // Set the target of Sky Drop as gEffectBattler @@ -9778,12 +10403,16 @@ static void Cmd_various(void) } } break; + } case VARIOUS_JUMP_IF_PRANKSTER_BLOCKED: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (BlocksPrankster(gCurrentMove, gBattlerAttacker, gActiveBattler, TRUE)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER: { bool8 shouldNotClear = FALSE; @@ -9818,15 +10447,20 @@ static void Cmd_various(void) break; } case VARIOUS_TRY_END_NEUTRALIZING_GAS: + { + VARIOUS_ARGS(); if (gSpecialStatuses[gActiveBattler].neutralizingGasRemoved) { gSpecialStatuses[gActiveBattler].neutralizingGasRemoved = FALSE; - BattleScriptPush(gBattlescriptCurrInstr + 3); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_NeutralizingGasExits; return; } break; + } case VARIOUS_GET_ROTOTILLER_TARGETS: + { + VARIOUS_ARGS(const u8 *failInstr); // Gets the battlers to be affected by rototiller. If there are none, print 'But it failed!' { u32 count = 0; @@ -9841,23 +10475,29 @@ static void Cmd_various(void) } if (count == 0) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // Rototiller fails + gBattlescriptCurrInstr = cmd->failInstr; // Rototiller fails else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (gSpecialStatuses[gActiveBattler].rototillerAffected) { gSpecialStatuses[gActiveBattler].rototillerAffected = FALSE; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // Unaffected by rototiller - print STRINGID_NOEFFECTONTARGET + gBattlescriptCurrInstr = cmd->jumpInstr; // Unaffected by rototiller - print STRINGID_NOEFFECTONTARGET } return; + } case VARIOUS_TRY_ACTIVATE_BATTLE_BOND: + { + VARIOUS_ARGS(); if (gBattleMons[gBattlerAttacker].species == SPECIES_GRENINJA_BATTLE_BOND && HasAttackerFaintedTarget() && CalculateEnemyPartyCount() > 1 @@ -9872,23 +10512,28 @@ static void Cmd_various(void) return; } break; + } case VARIOUS_CONSUME_BERRY: + { + VARIOUS_ARGS(bool8 fromBattler); if (gBattleScripting.overrideBerryRequirements == 2) { - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; return; } - if (gBattlescriptCurrInstr[3]) + if (cmd->fromBattler) gLastUsedItem = gBattleMons[gActiveBattler].item; gBattleScripting.battler = gEffectBattler = gBattlerTarget = gActiveBattler; // Cover all berry effect battlerId cases. e.g. ChangeStatBuffs uses target ID if (ItemBattleEffects(ITEMEFFECT_USE_LAST_ITEM, gActiveBattler, FALSE)) return; - gBattlescriptCurrInstr += 4; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL: { + VARIOUS_ARGS(const u8 *jumpInstr); bool8 canDoPrimalReversion = FALSE; for (i = 0; i < EVOS_PER_MON; i++) @@ -9898,35 +10543,47 @@ static void Cmd_various(void) canDoPrimalReversion = TRUE; } if (!canDoPrimalReversion) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; } case VARIOUS_JUMP_IF_WEATHER_AFFECTED: { - u32 weatherFlags = T1_READ_32(gBattlescriptCurrInstr + 3); - if (IsBattlerWeatherAffected(gActiveBattler, weatherFlags)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 7); + VARIOUS_ARGS(u32 flags, const u8 *jumpInstr); + u32 flags = cmd->flags; + if (IsBattlerWeatherAffected(gActiveBattler, flags)) + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 11; + gBattlescriptCurrInstr = cmd->nextInstr; + return; } - return; case VARIOUS_APPLY_PLASMA_FISTS: + { + VARIOUS_ARGS(); for (i = 0; i < gBattlersCount; i++) gStatuses4[i] |= STATUS4_PLASMA_FISTS; break; + } case VARIOUS_JUMP_IF_SPECIES: - if (gBattleMons[gActiveBattler].species == T1_READ_16(gBattlescriptCurrInstr + 3)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 5); + { + VARIOUS_ARGS(u16 species, const u8 *jumpInstr); + if (gBattleMons[gActiveBattler].species == cmd->species) + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 9; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_PHOTON_GEYSER_CHECK: + { + VARIOUS_ARGS(); gBattleStruct->swapDamageCategory = (GetSplitBasedOnStats(gActiveBattler) == SPLIT_SPECIAL); break; + } case VARIOUS_SHELL_SIDE_ARM_CHECK: // 0% chance GameFreak actually checks this way according to DaWobblefet, but this is the only functional explanation at the moment { + VARIOUS_ARGS(); + u32 attackerAtkStat = gBattleMons[gBattlerAttacker].attack; u32 targetDefStat = gBattleMons[gBattlerTarget].defense; u32 attackerSpAtkStat = gBattleMons[gBattlerAttacker].spAttack; @@ -9962,17 +10619,22 @@ static void Cmd_various(void) break; } case VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (IsLeafGuardProtected(gActiveBattler)) { gBattlerAbility = gActiveBattler; - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; } else { - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_SET_ATTACKER_STICKY_WEB_USER: + { + VARIOUS_ARGS(); // For Mirror Armor: "If the Pokémon with this Ability is affected by Sticky Web, the effect is reflected back to the Pokémon which set it up. // If Pokémon which set up Sticky Web is not on the field, no Pokémon have their Speed lowered." gBattlerAttacker = gBattlerTarget; // Initialize 'fail' condition @@ -9980,8 +10642,11 @@ static void Cmd_various(void) if (gBattleStruct->stickyWebUser != 0xFF) gBattlerAttacker = gBattleStruct->stickyWebUser; break; + } case VARIOUS_CUT_1_3_HP_RAISE_STATS: { + VARIOUS_ARGS(const u8 *failInstr); + bool8 atLeastOneStatBoosted = FALSE; u16 hpFraction = max(1, gBattleMons[gBattlerAttacker].maxHP / 3); @@ -9996,79 +10661,99 @@ static void Cmd_various(void) if (atLeastOneStatBoosted && gBattleMons[gBattlerAttacker].hp > hpFraction) { gBattleMoveDamage = hpFraction; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } + return; } - return; case VARIOUS_SET_OCTOLOCK: + { + VARIOUS_ARGS(const u8 *failInstr); if (gDisableStructs[gActiveBattler].octolock) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { gDisableStructs[gActiveBattler].octolock = TRUE; gBattleMons[gActiveBattler].status2 |= STATUS2_ESCAPE_PREVENTION; gDisableStructs[gActiveBattler].battlerPreventingEscape = gBattlerAttacker; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_CHECK_POLTERGEIST: + { + VARIOUS_ARGS(const u8 *failInstr); if (gBattleMons[gActiveBattler].item == ITEM_NONE || gFieldStatuses & STATUS_FIELD_MAGIC_ROOM || GetBattlerAbility(gActiveBattler) == ABILITY_KLUTZ) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { PREPARE_ITEM_BUFFER(gBattleTextBuff1, gBattleMons[gActiveBattler].item); gLastUsedItem = gBattleMons[gActiveBattler].item; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_TRY_NO_RETREAT: + { + VARIOUS_ARGS(const u8 *failInstr); if (gDisableStructs[gActiveBattler].noRetreat) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { if (!(gBattleMons[gActiveBattler].status2 & STATUS2_ESCAPE_PREVENTION)) gDisableStructs[gActiveBattler].noRetreat = TRUE; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_TRY_TAR_SHOT: + { + VARIOUS_ARGS(const u8 *failInstr); if (gDisableStructs[gActiveBattler].tarShot) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } else { gDisableStructs[gActiveBattler].tarShot = TRUE; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } return; + } case VARIOUS_CAN_TAR_SHOT_WORK: + { + VARIOUS_ARGS(const u8 *failInstr); // Tar Shot will fail if it's already been used on the target and its speed can't be lowered further if (!gDisableStructs[gActiveBattler].tarShot && CompareStat(gActiveBattler, STAT_SPEED, MAX_STAT_STAGE, CMP_LESS_THAN)) - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; return; + } case VARIOUS_JUMP_IF_CANT_FLING: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (!CanFling(gActiveBattler)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_CURE_CERTAIN_STATUSES: + { + VARIOUS_ARGS(); // Check infatuation if (gBattleMons[gActiveBattler].status2 & STATUS2_INFATUATION) { @@ -10109,43 +10794,70 @@ static void Cmd_various(void) gDisableStructs[gActiveBattler].disabledMove = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_DISABLE; } - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES: + { + VARIOUS_ARGS(); gActiveBattler = gBattlerTarget; for (i = 0; i < NUM_BATTLE_STATS; i++) if (gBattleMons[gActiveBattler].statStages[i] < DEFAULT_STAT_STAGE) gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (ItemId_GetPocket(gLastUsedItem) == POCKET_BERRIES) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT: - if (ItemId_GetHoldEffect(gLastUsedItem) == gBattlescriptCurrInstr[3]) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 4); + { + VARIOUS_ARGS(u8 holdEffect, const u8 *jumpInstr); + if (ItemId_GetHoldEffect(gLastUsedItem) == cmd->holdEffect) + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_SAVE_BATTLER_ITEM: + { + VARIOUS_ARGS(); gBattleResources->battleHistory->heldItems[gActiveBattler] = gBattleMons[gActiveBattler].item; break; + } case VARIOUS_RESTORE_BATTLER_ITEM: + { + VARIOUS_ARGS(); gBattleMons[gActiveBattler].item = gBattleResources->battleHistory->heldItems[gActiveBattler]; break; + } case VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM: + { + VARIOUS_ARGS(); gBattleMons[gActiveBattler].item = gLastUsedItem; break; + } case VARIOUS_SET_BEAK_BLAST: + { + VARIOUS_ARGS(); gProtectStructs[gActiveBattler].beakBlastCharge = TRUE; break; + } case VARIOUS_SWAP_SIDE_STATUSES: + { + VARIOUS_ARGS(); CourtChangeSwapSideStatuses(); break; + } case VARIOUS_TRY_SYMBIOSIS: //called by Bestow, Fling, and Bug Bite, which don't work with Cmd_removeitem. + { + VARIOUS_ARGS(); if (SYMBIOSIS_CHECK(gActiveBattler, BATTLE_PARTNER(gActiveBattler))) { BestowItem(BATTLE_PARTNER(gActiveBattler), gActiveBattler); @@ -10157,33 +10869,42 @@ static void Cmd_various(void) return; } break; + } case VARIOUS_CAN_TELEPORT: + { + VARIOUS_ARGS(); gBattleCommunication[0] = CanTeleport(gActiveBattler); break; + } case VARIOUS_GET_BATTLER_SIDE: + { + VARIOUS_ARGS(); if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) gBattleCommunication[0] = B_SIDE_PLAYER; else gBattleCommunication[0] = B_SIDE_OPPONENT; break; + } case VARIOUS_CHECK_PARENTAL_BOND_COUNTER: { + VARIOUS_ARGS(u8 counter, const u8 *jumpInstr); // Some effects should only happen on the first or second strike of Parental Bond, // so a way to check this in battle scripts is useful - u8 counter = T1_READ_8(gBattlescriptCurrInstr + 3); + u8 counter = cmd->counter; if (gSpecialStatuses[gBattlerAttacker].parentalBondState == counter && gBattleMons[gBattlerTarget].hp != 0) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 4); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 8; + gBattlescriptCurrInstr = cmd->nextInstr; return; } - break; case VARIOUS_SWAP_STATS: { - u8 statId = T1_READ_8(gBattlescriptCurrInstr + 3); + VARIOUS_ARGS(u8 stat); + + u8 stat = cmd->stat; u16 temp; - switch (statId) + switch (stat) { case STAT_HP: SWAP(gBattleMons[gBattlerAttacker].hp, gBattleMons[gBattlerTarget].hp, temp); @@ -10204,13 +10925,13 @@ static void Cmd_various(void) SWAP(gBattleMons[gBattlerAttacker].spDefense, gBattleMons[gBattlerTarget].spDefense, temp); break; } - PREPARE_STAT_BUFFER(gBattleTextBuff1, statId); - gBattlescriptCurrInstr += 4; + PREPARE_STAT_BUFFER(gBattleTextBuff1, stat); + gBattlescriptCurrInstr = cmd->nextInstr; return; } - break; case VARIOUS_TEATIME_TARGETS: { + VARIOUS_ARGS(const u8 *jumpInstr); u32 count = 0; for (i = 0; i < gBattlersCount; i++) @@ -10219,37 +10940,50 @@ static void Cmd_various(void) count++; } if (count == 0) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // Teatime fails + gBattlescriptCurrInstr = cmd->jumpInstr; // Teatime fails else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; + return; } - return; - case VARIOUS_TEATIME_INVUL: + case VARIOUS_TEATIME_INVUL: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (ItemId_GetPocket(gBattleMons[gActiveBattler].item) == POCKET_BERRIES && !(gStatuses3[gBattlerTarget] & (STATUS3_SEMI_INVULNERABLE))) - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; return; - case VARIOUS_JUMP_IF_ROD: + } + case VARIOUS_JUMP_IF_ROD: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (IsAbilityRodAffected()) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; - case VARIOUS_JUMP_IF_MOTOR: + } + case VARIOUS_JUMP_IF_MOTOR: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (IsAbilityMotorAffected()) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; - case VARIOUS_JUMP_IF_ABSORB: + } + case VARIOUS_JUMP_IF_ABSORB: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (IsAbilityAbsorbAffected()) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; + } case VARIOUS_TRY_WIND_RIDER_POWER: { + VARIOUS_ARGS(const u8 *failInstr); u16 ability = GetBattlerAbility(gActiveBattler); if (GetBattlerSide(gActiveBattler) == GetBattlerSide(gBattlerAttacker) && (ability == ABILITY_WIND_RIDER || ability == ABILITY_WIND_POWER)) @@ -10257,24 +10991,31 @@ static void Cmd_various(void) gLastUsedAbility = ability; RecordAbilityBattle(gActiveBattler, gLastUsedAbility); gBattlerAbility = gBattleScripting.battler = gActiveBattler; - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->failInstr; } + return; } - return; case VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES: - gBattlescriptCurrInstr += 3; + { + VARIOUS_ARGS(); + gBattlescriptCurrInstr = cmd->nextInstr; AbilityBattleEffects(ABILITYEFFECT_ON_WEATHER, gActiveBattler, 0, 0, 0); return; + } case VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES: - gBattlescriptCurrInstr += 3; + { + VARIOUS_ARGS(); + gBattlescriptCurrInstr = cmd->nextInstr; AbilityBattleEffects(ABILITYEFFECT_ON_TERRAIN, gActiveBattler, 0, 0, 0); return; + } case VARIOUS_JUMP_IF_NO_VALID_TARGETS: { + VARIOUS_ARGS(const u8 *jumpInstr); u32 count = 0; for (i = 0; i < gBattlersCount; i++) @@ -10283,24 +11024,29 @@ static void Cmd_various(void) count++; } if (count == 0) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; + return; } - return; case VARIOUS_JUMP_IF_EMERGENCY_EXITED: + { + VARIOUS_ARGS(const u8 *jumpInstr); if (gSpecialStatuses[gActiveBattler].emergencyExited) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 7; + gBattlescriptCurrInstr = cmd->nextInstr; return; - } // End of switch (gBattlescriptCurrInstr[2]) + } + } // End of switch (cmd->id) - gBattlescriptCurrInstr += 3; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setprotectlike(void) { + CMD_ARGS(); + bool32 fail = TRUE; bool32 notLastTurn = TRUE; @@ -10393,11 +11139,13 @@ static void Cmd_setprotectlike(void) gMoveResultFlags |= MOVE_RESULT_MISSED; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_tryexplosion(void) { + CMD_ARGS(); + if (gBattleControllerExecFlags) return; @@ -10414,7 +11162,7 @@ static void Cmd_tryexplosion(void) gBattleMoveDamage = gBattleMons[gActiveBattler].hp; BtlController_EmitHealthBarUpdate(BUFFER_A, INSTANT_HP_BAR_DROP); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { @@ -10427,6 +11175,8 @@ static void Cmd_tryexplosion(void) static void Cmd_setatkhptozero(void) { + CMD_ARGS(); + if (gBattleControllerExecFlags) return; @@ -10435,12 +11185,14 @@ static void Cmd_setatkhptozero(void) BtlController_EmitSetMonData(BUFFER_A, REQUEST_HP_BATTLE, 0, sizeof(gBattleMons[gActiveBattler].hp), &gBattleMons[gActiveBattler].hp); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumpifnexttargetvalid(void) { - const u8 *jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + CMD_ARGS(const u8 *jumpInstr); + + const u8 *jumpInstr = cmd->jumpInstr; for (gBattlerTarget++; gBattlerTarget < gBattlersCount; gBattlerTarget++) { @@ -10451,16 +11203,18 @@ static void Cmd_jumpifnexttargetvalid(void) } if (gBattlerTarget >= gBattlersCount) - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = jumpInstr; } static void Cmd_tryhealhalfhealth(void) { - const u8 *failPtr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + CMD_ARGS(const u8 *failInstr, u8 battler); - if (gBattlescriptCurrInstr[5] == BS_ATTACKER) + const u8 *failInstr = cmd->failInstr; + + if (cmd->battler == BS_ATTACKER) gBattlerTarget = gBattlerAttacker; gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; @@ -10469,13 +11223,15 @@ static void Cmd_tryhealhalfhealth(void) gBattleMoveDamage *= -1; if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) - gBattlescriptCurrInstr = failPtr; + gBattlescriptCurrInstr = failInstr; else - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_trymirrormove(void) { + CMD_ARGS(); + s32 validMovesCount; s32 i; u16 move; @@ -10515,12 +11271,14 @@ static void Cmd_trymirrormove(void) else // no valid moves found { gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = TRUE; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setrain(void) { + CMD_ARGS(); + if (!TryChangeBattleWeather(gBattlerAttacker, ENUM_WEATHER_RAIN, FALSE)) { gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -10530,11 +11288,13 @@ static void Cmd_setrain(void) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_RAIN; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setreflect(void) { + CMD_ARGS(); + if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_REFLECT) { gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -10554,11 +11314,13 @@ static void Cmd_setreflect(void) else gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_REFLECT_SINGLE; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setseeded(void) { + CMD_ARGS(); + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED) { gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -10576,12 +11338,14 @@ static void Cmd_setseeded(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_SET; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_manipulatedamage(void) { - switch (gBattlescriptCurrInstr[1]) + CMD_ARGS(u8 mode); + + switch (cmd->mode) { case DMG_CHANGE_SIGN: gBattleMoveDamage *= -1; @@ -10623,18 +11387,20 @@ static void Cmd_manipulatedamage(void) break; } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_trysetrest(void) { - const u8 *failJump = T1_READ_PTR(gBattlescriptCurrInstr + 1); + CMD_ARGS(const u8 *failInstr); + + const u8 *failInstr = cmd->failInstr; gActiveBattler = gBattlerTarget = gBattlerAttacker; gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP * (-1); if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) { - gBattlescriptCurrInstr = failJump; + gBattlescriptCurrInstr = failInstr; } else if (IsBattlerTerrainAffected(gBattlerTarget, STATUS_FIELD_ELECTRIC_TERRAIN)) { @@ -10654,30 +11420,34 @@ static void Cmd_trysetrest(void) gBattleMons[gBattlerTarget].status1 = STATUS1_SLEEP_TURN(3); BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gActiveBattler].status1), &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_jumpifnotfirstturn(void) { - const u8 *failJump = T1_READ_PTR(gBattlescriptCurrInstr + 1); + CMD_ARGS(const u8 *jumpInstr); + + const u8 *jumpInstr = cmd->jumpInstr; if (gDisableStructs[gBattlerAttacker].isFirstTurn) - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = failJump; + gBattlescriptCurrInstr = jumpInstr; } static void Cmd_setmiracleeye(void) { + CMD_ARGS(const u8 *failInstr); + if (!(gStatuses3[gBattlerTarget] & STATUS3_MIRACLE_EYED)) { gStatuses3[gBattlerTarget] |= STATUS3_MIRACLE_EYED; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } @@ -10710,15 +11480,22 @@ bool8 UproarWakeUpCheck(u8 battlerId) static void Cmd_jumpifuproarwakes(void) { + CMD_ARGS(const u8 *jumpInstr); + + const u8 *jumpInstr = cmd->jumpInstr; + u32 ability = GetBattlerAbility(gBattlerTarget); + if (UproarWakeUpCheck(gBattlerTarget)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = jumpInstr; else - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_stockpile(void) { - switch (gBattlescriptCurrInstr[1]) + CMD_ARGS(u8 id); + + switch (cmd->id) { case 0: if (gDisableStructs[gBattlerAttacker].stockpileCounter >= 3) @@ -10744,15 +11521,17 @@ static void Cmd_stockpile(void) break; } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_stockpiletobasedamage(void) { - const u8 *jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + CMD_ARGS(const u8 *failInstr); + + const u8 *failInstr = cmd->failInstr; if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) { - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = failInstr; } else { @@ -10766,17 +11545,19 @@ static void Cmd_stockpiletobasedamage(void) gBattleMons[gBattlerAttacker].statStages[STAT_DEF] -= gDisableStructs[gBattlerAttacker].stockpileDef; gBattleMons[gBattlerAttacker].statStages[STAT_SPDEF] -= gDisableStructs[gBattlerAttacker].stockpileSpDef; } - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_stockpiletohpheal(void) { - const u8 *jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + CMD_ARGS(const u8 *failInstr); + + const u8 *failInstr = cmd->failInstr; if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0) { - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = failInstr; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWALLOW_FAILED; } else @@ -10784,7 +11565,7 @@ static void Cmd_stockpiletohpheal(void) if (gBattleMons[gBattlerAttacker].maxHP == gBattleMons[gBattlerAttacker].hp) { gDisableStructs[gBattlerAttacker].stockpileCounter = 0; - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = failInstr; gBattlerTarget = gBattlerAttacker; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SWALLOW_FULL_HP; } @@ -10798,7 +11579,7 @@ static void Cmd_stockpiletohpheal(void) gBattleScripting.animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter; gDisableStructs[gBattlerAttacker].stockpileCounter = 0; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; gBattlerTarget = gBattlerAttacker; } @@ -10811,6 +11592,8 @@ static void Cmd_stockpiletohpheal(void) // Sign change for drained HP handled in GetDrainedBigRootHp static void Cmd_setdrainedhp(void) { + CMD_ARGS(); + if (gBattleMoves[gCurrentMove].argument != 0) gBattleMoveDamage = (gHpDealt * gBattleMoves[gCurrentMove].argument / 100); else @@ -10819,7 +11602,7 @@ static void Cmd_setdrainedhp(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static u16 ReverseStatChangeMoveEffect(u16 moveEffect) @@ -11145,14 +11928,16 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr static void Cmd_statbuffchange(void) { - u16 flags = T1_READ_16(gBattlescriptCurrInstr + 1); - const u8 *ptrBefore = gBattlescriptCurrInstr; - const u8 *jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + CMD_ARGS(u16 flags, const u8 *failInstr); - if (ChangeStatBuffs(GET_STAT_BUFF_VALUE_WITH_SIGN(gBattleScripting.statChanger), GET_STAT_BUFF_ID(gBattleScripting.statChanger), flags, jumpPtr) == STAT_CHANGE_WORKED) - gBattlescriptCurrInstr += 7; + u16 flags = cmd->flags; + const u8 *ptrBefore = gBattlescriptCurrInstr; + const u8 *failInstr = cmd->failInstr; + + if (ChangeStatBuffs(GET_STAT_BUFF_VALUE_WITH_SIGN(gBattleScripting.statChanger), GET_STAT_BUFF_ID(gBattleScripting.statChanger), flags, failInstr) == STAT_CHANGE_WORKED) + gBattlescriptCurrInstr = cmd->nextInstr; else if (gBattlescriptCurrInstr == ptrBefore) // Prevent infinite looping. - gBattlescriptCurrInstr = jumpPtr; + gBattlescriptCurrInstr = failInstr; } bool32 TryResetBattlerStatChanges(u8 battler) @@ -11176,37 +11961,45 @@ bool32 TryResetBattlerStatChanges(u8 battler) // Haze static void Cmd_normalisebuffs(void) { + CMD_ARGS(); + s32 i, j; for (i = 0; i < gBattlersCount; i++) TryResetBattlerStatChanges(i); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setbide(void) { + CMD_ARGS(); + gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS; gLockedMoves[gBattlerAttacker] = gCurrentMove; gTakenDmg[gBattlerAttacker] = 0; gBattleMons[gBattlerAttacker].status2 |= STATUS2_BIDE_TURN(2); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_confuseifrepeatingattackends(void) { + CMD_ARGS(); + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_LOCK_CONFUSE) && !gSpecialStatuses[gBattlerAttacker].dancerUsedMove) gBattleScripting.moveEffect = (MOVE_EFFECT_THRASH | MOVE_EFFECT_AFFECTS_USER); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setmultihitcounter(void) { - if (gBattlescriptCurrInstr[1]) + CMD_ARGS(u8 value); + + if (cmd->value) { - gMultiHitCounter = gBattlescriptCurrInstr[1]; + gMultiHitCounter = cmd->value; } else { @@ -11243,18 +12036,22 @@ static void Cmd_setmultihitcounter(void) } } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_initmultihitstring(void) { + CMD_ARGS(); + PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_forcerandomswitch(void) { + CMD_ARGS(const u8 *failInstr); + s32 i; s32 battler1PartyId = 0; s32 battler2PartyId = 0; @@ -11420,7 +12217,7 @@ static void Cmd_forcerandomswitch(void) if (!redCardForcedSwitch && validMons <= minNeeded) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -11462,12 +12259,14 @@ static void Cmd_forcerandomswitch(void) if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) gBattlescriptCurrInstr = BattleScript_RoarSuccessEndBattle; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_tryconversiontypechange(void) { + CMD_ARGS(const u8 *failInstr); + u8 validMoves = 0; u8 moveChecked; u8 moveType; @@ -11484,13 +12283,13 @@ static void Cmd_tryconversiontypechange(void) } if (IS_BATTLER_OF_TYPE(gBattlerAttacker, moveType)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { SET_BATTLER_TYPE(gBattlerAttacker, moveType); PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } #else // Randomly changes user's type to one of its moves' type @@ -11523,7 +12322,7 @@ static void Cmd_tryconversiontypechange(void) if (moveChecked == validMoves) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -11546,13 +12345,15 @@ static void Cmd_tryconversiontypechange(void) SET_BATTLER_TYPE(gBattlerAttacker, moveType); PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } #endif } static void Cmd_givepaydaymoney(void) { + CMD_ARGS(); + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) && gPaydayMoney != 0) { u32 bonusMoney = gPaydayMoney * gBattleStruct->moneyMultiplier; @@ -11560,17 +12361,19 @@ static void Cmd_givepaydaymoney(void) PREPARE_HWORD_NUMBER_BUFFER(gBattleTextBuff1, 5, bonusMoney) - BattleScriptPush(gBattlescriptCurrInstr + 1); + BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_PrintPayDayMoneyString; } else { - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setlightscreen(void) { + CMD_ARGS(); + if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_LIGHTSCREEN) { gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -11591,11 +12394,13 @@ static void Cmd_setlightscreen(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_LIGHTSCREEN_SINGLE; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_tryKO(void) { + CMD_ARGS(const u8 *failInstr); + bool32 lands = FALSE; u32 holdEffect = GetBattlerHoldEffect(gBattlerTarget, TRUE); u16 targetAbility = GetBattlerAbility(gBattlerTarget); @@ -11666,7 +12471,7 @@ static void Cmd_tryKO(void) gBattleMoveDamage = gBattleMons[gBattlerTarget].hp; gMoveResultFlags |= MOVE_RESULT_ONE_HIT_KO; } - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { @@ -11675,7 +12480,7 @@ static void Cmd_tryKO(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_KO_MISS; else gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_KO_UNAFFECTED; - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } } @@ -11683,15 +12488,19 @@ static void Cmd_tryKO(void) // Super Fang static void Cmd_damagetohalftargethp(void) { + CMD_ARGS(); + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp / 2; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setsandstorm(void) { + CMD_ARGS(); + if (!TryChangeBattleWeather(gBattlerAttacker, ENUM_WEATHER_SANDSTORM, FALSE)) { gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -11701,11 +12510,13 @@ static void Cmd_setsandstorm(void) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_SANDSTORM; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_weatherdamage(void) { + CMD_ARGS(); + u32 ability = GetBattlerAbility(gBattlerAttacker); gBattleMoveDamage = 0; @@ -11755,11 +12566,13 @@ static void Cmd_weatherdamage(void) } } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_tryinfatuating(void) { + CMD_ARGS(const u8 *failInstr); + struct Pokemon *monAttacker, *monTarget; u16 speciesAttacker, speciesTarget; u32 personalityAttacker, personalityTarget; @@ -11793,27 +12606,29 @@ static void Cmd_tryinfatuating(void) || GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == MON_GENDERLESS || GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) == MON_GENDERLESS) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gBattleMons[gBattlerTarget].status2 |= STATUS2_INFATUATED_WITH(gBattlerAttacker); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } } static void Cmd_updatestatusicon(void) { + CMD_ARGS(u8 battler); + if (gBattleControllerExecFlags) return; - if (gBattlescriptCurrInstr[1] != BS_ATTACKER_WITH_PARTNER) + if (cmd->battler != BS_ATTACKER_WITH_PARTNER) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + gActiveBattler = GetBattlerForBattleScript(cmd->battler); BtlController_EmitStatusIconUpdate(BUFFER_A, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } else { @@ -11832,12 +12647,14 @@ static void Cmd_updatestatusicon(void) MarkBattlerForControllerExec(gActiveBattler); } } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setmist(void) { + CMD_ARGS(); + if (gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer) { gMoveResultFlags |= MOVE_RESULT_FAILED; @@ -11850,11 +12667,13 @@ static void Cmd_setmist(void) gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_MIST; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setfocusenergy(void) { + CMD_ARGS(); + if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) { gMoveResultFlags |= MOVE_RESULT_FAILED; @@ -11865,13 +12684,15 @@ static void Cmd_setfocusenergy(void) gBattleMons[gBattlerAttacker].status2 |= STATUS2_FOCUS_ENERGY; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_GETTING_PUMPED; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_transformdataexecution(void) { + CMD_ARGS(); + gChosenMove = MOVE_UNAVAILABLE; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; if (gBattleMons[gBattlerTarget].status2 & STATUS2_TRANSFORMED || gBattleStruct->illusion[gBattlerTarget].on || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) @@ -11917,6 +12738,8 @@ static void Cmd_transformdataexecution(void) static void Cmd_setsubstitute(void) { + CMD_ARGS(); + u32 hp = gBattleMons[gBattlerAttacker].maxHP / 4; if (gBattleMons[gBattlerAttacker].maxHP / 4 == 0) hp = 1; @@ -11939,16 +12762,18 @@ static void Cmd_setsubstitute(void) gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_mimicattackcopy(void) { + CMD_ARGS(const u8 *failInstr); + if ((sForbiddenMoves[gLastMoves[gBattlerTarget]] & FORBIDDEN_MIMIC) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) || gLastMoves[gBattlerTarget] == MOVE_UNAVAILABLE) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -11972,17 +12797,19 @@ static void Cmd_mimicattackcopy(void) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattlerTarget]) gDisableStructs[gBattlerAttacker].mimickedMoves |= gBitTable[gCurrMovePos]; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } } static void Cmd_metronome(void) { + CMD_ARGS(); + #if B_METRONOME_MOVES >= GEN_9 u16 moveCount = MOVES_COUNT_GEN9; #elif B_METRONOME_MOVES >= GEN_8 @@ -12017,12 +12844,16 @@ static void Cmd_metronome(void) static void Cmd_dmgtolevel(void) { + CMD_ARGS(); + gBattleMoveDamage = gBattleMons[gBattlerAttacker].level; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_psywavedamageeffect(void) { + CMD_ARGS(); + s32 randDamage; #if B_PSYWAVE_DMG >= GEN_6 randDamage = (Random() % 101); @@ -12030,11 +12861,13 @@ static void Cmd_psywavedamageeffect(void) randDamage = (Random() % 11) * 10; #endif gBattleMoveDamage = gBattleMons[gBattlerAttacker].level * (randDamage + 50) / 100; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_counterdamagecalculator(void) { + CMD_ARGS(const u8 *failInstr); + u8 sideAttacker = GetBattlerSide(gBattlerAttacker); u8 sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].physicalBattlerId); @@ -12049,18 +12882,20 @@ static void Cmd_counterdamagecalculator(void) else gBattlerTarget = gProtectStructs[gBattlerAttacker].physicalBattlerId; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = TRUE; - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } // A copy of Cmd with the physical -> special field changes static void Cmd_mirrorcoatdamagecalculator(void) { + CMD_ARGS(const u8 *failInstr); + u8 sideAttacker = GetBattlerSide(gBattlerAttacker); u8 sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].specialBattlerId); @@ -12075,17 +12910,19 @@ static void Cmd_mirrorcoatdamagecalculator(void) else gBattlerTarget = gProtectStructs[gBattlerAttacker].specialBattlerId; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = TRUE; - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_disablelastusedattack(void) { + CMD_ARGS(const u8 *failInstr); + s32 i; for (i = 0; i < MAX_MON_MOVES; i++) @@ -12106,16 +12943,18 @@ static void Cmd_disablelastusedattack(void) #else gDisableStructs[gBattlerTarget].disableTimer = 4; #endif - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_trysetencore(void) { + CMD_ARGS(const u8 *failInstr); + s32 i; for (i = 0; i < MAX_MON_MOVES; i++) @@ -12141,16 +12980,18 @@ static void Cmd_trysetencore(void) gDisableStructs[gBattlerTarget].encoredMovePos = i; gDisableStructs[gBattlerTarget].encoreTimer = 3; gDisableStructs[gBattlerTarget].encoreTimer; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_painsplitdmgcalc(void) { + CMD_ARGS(const u8 *failInstr); + if (!(DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove))) { s32 hpDiff = (gBattleMons[gBattlerAttacker].hp + gBattleMons[gBattlerTarget].hp) / 2; @@ -12165,26 +13006,28 @@ static void Cmd_painsplitdmgcalc(void) gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp - hpDiff; gSpecialStatuses[gBattlerTarget].dmg = 0xFFFF; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } // Conversion 2 static void Cmd_settypetorandomresistance(void) { + CMD_ARGS(const u8 *failInstr); + if (gLastLandedMoves[gBattlerAttacker] == MOVE_NONE || gLastLandedMoves[gBattlerAttacker] == MOVE_UNAVAILABLE) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else if (IsTwoTurnsMove(gLastLandedMoves[gBattlerAttacker]) && gBattleMons[gLastHitBy[gBattlerAttacker]].status2 & STATUS2_MULTIPLETURNS) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -12215,27 +13058,31 @@ static void Cmd_settypetorandomresistance(void) { SET_BATTLER_TYPE(gBattlerAttacker, i); PREPARE_TYPE_BUFFER(gBattleTextBuff1, i); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; return; } } } - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_setalwayshitflag(void) { + CMD_ARGS(); + gStatuses3[gBattlerTarget] &= ~STATUS3_ALWAYS_HITS; gStatuses3[gBattlerTarget] |= STATUS3_ALWAYS_HITS_TURN(2); gDisableStructs[gBattlerTarget].battlerWithSureHit = gBattlerAttacker; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } // Sketch static void Cmd_copymovepermanently(void) { + CMD_ARGS(const u8 *failInstr); + gChosenMove = MOVE_UNAVAILABLE; if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) @@ -12256,7 +13103,7 @@ static void Cmd_copymovepermanently(void) if (i != MAX_MON_MOVES) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else // sketch worked { @@ -12278,12 +13125,12 @@ static void Cmd_copymovepermanently(void) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBattlerTarget]) - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } @@ -12322,6 +13169,8 @@ static u8 AttacksThisTurn(u8 battlerId, u16 move) // Note: returns 1 if it's a c static void Cmd_trychoosesleeptalkmove(void) { + CMD_ARGS(const u8 *failInstr); + u32 i, unusableMovesBits = 0, movePosition; for (i = 0; i < MAX_MON_MOVES; i++) @@ -12336,7 +13185,7 @@ static void Cmd_trychoosesleeptalkmove(void) unusableMovesBits = CheckMoveLimitations(gBattlerAttacker, unusableMovesBits, ~MOVE_LIMITATION_PP); if (unusableMovesBits == (1 << MAX_MON_MOVES) - 1) // all 4 moves cannot be chosen { - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else // at least one move can be chosen { @@ -12349,14 +13198,16 @@ static void Cmd_trychoosesleeptalkmove(void) gCurrMovePos = movePosition; gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; gBattlerTarget = GetMoveTarget(gCalledMove, NO_TARGET_OVERRIDE); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_setdestinybond(void) { + CMD_ARGS(); + gBattleMons[gBattlerAttacker].status2 |= STATUS2_DESTINY_BOND; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void TrySetDestinyBondToHappen(void) @@ -12373,12 +13224,16 @@ static void TrySetDestinyBondToHappen(void) static void Cmd_trysetdestinybondtohappen(void) { + CMD_ARGS(); + TrySetDestinyBondToHappen(); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_settailwind(void) { + CMD_ARGS(const u8 *failInstr); + u8 side = GetBattlerSide(gBattlerAttacker); if (!(gSideStatuses[side] & SIDE_STATUS_TAILWIND)) @@ -12390,16 +13245,18 @@ static void Cmd_settailwind(void) #else gSideTimers[side].tailwindTimer = 3; #endif - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_tryspiteppreduce(void) { + CMD_ARGS(const u8 *failInstr); + if (gLastMoves[gBattlerTarget] != MOVE_NONE && gLastMoves[gBattlerTarget] != MOVE_UNAVAILABLE) { @@ -12443,7 +13300,7 @@ static void Cmd_tryspiteppreduce(void) MarkBattlerForControllerExec(gActiveBattler); } - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; // Don't cut off Sky Drop if pp is brought to zero. if (gBattleMons[gBattlerTarget].pp[i] == 0 && gBattleStruct->skyDropTargets[gBattlerTarget] == 0xFF) @@ -12451,17 +13308,19 @@ static void Cmd_tryspiteppreduce(void) } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_healpartystatus(void) { + CMD_ARGS(); + u32 zero = 0; u8 toHeal = 0; @@ -12555,14 +13414,16 @@ static void Cmd_healpartystatus(void) MarkBattlerForControllerExec(gActiveBattler); } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_cursetarget(void) { + CMD_ARGS(const u8 *failInstr); + if (gBattleMons[gBattlerTarget].status2 & STATUS2_CURSED) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -12571,35 +13432,41 @@ static void Cmd_cursetarget(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_trysetspikes(void) { + CMD_ARGS(const u8 *failInstr); + u8 targetSide = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (gSideTimers[targetSide].spikesAmount == 3) { gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = TRUE; - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gSideStatuses[targetSide] |= SIDE_STATUS_SPIKES; gSideTimers[targetSide].spikesAmount++; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setforesight(void) { + CMD_ARGS(); + gBattleMons[gBattlerTarget].status2 |= STATUS2_FORESIGHT; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_trysetperishsong(void) { + CMD_ARGS(const u8 *failInstr); + s32 i; s32 notAffectedCount = 0; @@ -12621,13 +13488,15 @@ static void Cmd_trysetperishsong(void) PressurePPLoseOnUsingPerishSong(gBattlerAttacker); if (notAffectedCount == gBattlersCount) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; else - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_handlerollout(void) { + CMD_ARGS(); + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { CancelMultiTurnMoves(gBattlerAttacker); @@ -12647,21 +13516,25 @@ static void Cmd_handlerollout(void) gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_MULTIPLETURNS; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_jumpifconfusedandstatmaxed(void) { + CMD_ARGS(u8 stat, const u8 *jumpInstr); + if (gBattleMons[gBattlerTarget].status2 & STATUS2_CONFUSION - && !CompareStat(gBattlerTarget, gBattlescriptCurrInstr[1], MAX_STAT_STAGE, CMP_LESS_THAN)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); // Fails if we're confused AND stat cannot be raised + && !CompareStat(gBattlerTarget, cmd->stat, MAX_STAT_STAGE, CMP_LESS_THAN)) + gBattlescriptCurrInstr = cmd->jumpInstr; // Fails if we're confused AND stat cannot be raised else - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_handlefurycutter(void) { + CMD_ARGS(); + if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { gDisableStructs[gBattlerAttacker].furyCutterCounter = 0; @@ -12673,26 +13546,30 @@ static void Cmd_handlefurycutter(void) && gSpecialStatuses[gBattlerAttacker].parentalBondState != PARENTAL_BOND_1ST_HIT) // Don't increment counter on first hit gDisableStructs[gBattlerAttacker].furyCutterCounter++; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setembargo(void) { + CMD_ARGS(const u8 *failInstr); + if (gStatuses3[gBattlerTarget] & STATUS3_EMBARGO) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gStatuses3[gBattlerTarget] |= STATUS3_EMBARGO; gDisableStructs[gBattlerTarget].embargoTimer = 5; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_presentdamagecalculation(void) { + CMD_ARGS(); + u32 rand = Random() & 0xFF; /* Don't reroll present effect/power for the second hit of Parental Bond. @@ -12742,6 +13619,8 @@ static void Cmd_presentdamagecalculation(void) static void Cmd_setsafeguard(void) { + CMD_ARGS(); + if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_SAFEGUARD) { gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -12755,11 +13634,13 @@ static void Cmd_setsafeguard(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_SAFEGUARD; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_magnitudedamagecalculation(void) { + CMD_ARGS(); + u32 magnitude = Random() % 100; if (magnitude < 5) @@ -12808,11 +13689,13 @@ static void Cmd_magnitudedamagecalculation(void) break; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumpifnopursuitswitchdmg(void) { + CMD_ARGS(const u8 *jumpInstr); + if (gMultiHitCounter == 1) { if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) @@ -12845,18 +13728,20 @@ static void Cmd_jumpifnopursuitswitchdmg(void) gCurrentMove = MOVE_PURSUIT; gCurrMovePos = gChosenMovePos = *(gBattleStruct->chosenMovePositions + gBattlerTarget); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; gBattleScripting.animTurn = 1; gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->jumpInstr; } } static void Cmd_setsunny(void) { + CMD_ARGS(); + if (!TryChangeBattleWeather(gBattlerAttacker, ENUM_WEATHER_SUN, FALSE)) { gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -12867,12 +13752,14 @@ static void Cmd_setsunny(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_SUNLIGHT; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } // Belly Drum static void Cmd_maxattackhalvehp(void) { + CMD_ARGS(const u8 *failInstr); + u32 halfHp = gBattleMons[gBattlerAttacker].maxHP / 2; if (!(gBattleMons[gBattlerAttacker].maxHP / 2)) @@ -12887,17 +13774,19 @@ static void Cmd_maxattackhalvehp(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } // Psych Up static void Cmd_copyfoestats(void) { + CMD_ARGS(const u8 *unused); + s32 i; for (i = 0; i < NUM_BATTLE_STATS; i++) @@ -12905,11 +13794,13 @@ static void Cmd_copyfoestats(void) gBattleMons[gBattlerAttacker].statStages[i] = gBattleMons[gBattlerTarget].statStages[i]; } - gBattlescriptCurrInstr += 5; // Has an unused jump ptr(possibly for a failed attempt) parameter. + gBattlescriptCurrInstr = cmd->nextInstr; // Has an unused jump ptr(possibly for a failed attempt) parameter. } static void Cmd_rapidspinfree(void) { + CMD_ARGS(); + u8 atkSide = GetBattlerSide(gBattlerAttacker); if (gBattleMons[gBattlerAttacker].status2 & STATUS2_WRAPPED) @@ -12958,18 +13849,22 @@ static void Cmd_rapidspinfree(void) } else { - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setdefensecurlbit(void) { + CMD_ARGS(); + gBattleMons[gBattlerAttacker].status2 |= STATUS2_DEFENSE_CURL; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_recoverbasedonsunlight(void) { + CMD_ARGS(const u8 *failInstr); + gBattlerTarget = gBattlerAttacker; if (gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP) { @@ -12994,21 +13889,23 @@ static void Cmd_recoverbasedonsunlight(void) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_setstickyweb(void) { + CMD_ARGS(const u8 *failInstr); + u8 targetSide = GetBattlerSide(gBattlerTarget); if (gSideStatuses[targetSide] & SIDE_STATUS_STICKY_WEB) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -13016,12 +13913,14 @@ static void Cmd_setstickyweb(void) gSideTimers[targetSide].stickyWebBattlerSide = GetBattlerSide(gBattlerAttacker); // For Court Change/Defiant - set this to the user's side gSideTimers[targetSide].stickyWebAmount = 1; gBattleStruct->stickyWebUser = gBattlerAttacker; // For Mirror Armor - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_selectfirstvalidtarget(void) { + CMD_ARGS(); + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) { if (gBattlerTarget == gBattlerAttacker && !(GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove) & MOVE_TARGET_USER)) @@ -13029,14 +13928,16 @@ static void Cmd_selectfirstvalidtarget(void) if (IsBattlerAlive(gBattlerTarget)) break; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_trysetfutureattack(void) { + CMD_ARGS(const u8 *failInstr); + if (gWishFutureKnock.futureSightCounter[gBattlerTarget] != 0) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -13050,15 +13951,17 @@ static void Cmd_trysetfutureattack(void) else gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FUTURE_SIGHT; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_trydobeatup(void) { + CMD_ARGS(const u8 *endInstr, const u8 *failInstr); + #if B_BEAT_UP >= GEN_5 gBattleStruct->beatUpSlot++; - gBattlescriptCurrInstr += 9; + gBattlescriptCurrInstr = cmd->nextInstr; #else struct Pokemon *party; @@ -13069,7 +13972,7 @@ static void Cmd_trydobeatup(void) if (gBattleMons[gBattlerTarget].hp == 0) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->endInstr; } else { @@ -13086,7 +13989,7 @@ static void Cmd_trydobeatup(void) { PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattleCommunication[0]) - gBattlescriptCurrInstr += 9; + gBattlescriptCurrInstr = cmd->nextInstr; gBattleMoveDamage = gSpeciesInfo[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; gBattleMoveDamage *= gBattleMoves[gCurrentMove].power; @@ -13099,15 +14002,17 @@ static void Cmd_trydobeatup(void) gBattleCommunication[0]++; } else if (beforeLoop != 0) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->endInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 5); + gBattlescriptCurrInstr = cmd->failInstr; } #endif } static void Cmd_setsemiinvulnerablebit(void) { + CMD_ARGS(); + switch (gCurrentMove) { case MOVE_FLY: @@ -13127,25 +14032,31 @@ static void Cmd_setsemiinvulnerablebit(void) break; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_clearsemiinvulnerablebit(void) { + CMD_ARGS(); + gStatuses3[gBattlerAttacker] &= ~STATUS3_SEMI_INVULNERABLE; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setminimize(void) { + CMD_ARGS(); + if (gHitMarker & HITMARKER_OBEYS) gStatuses3[gBattlerAttacker] |= STATUS3_MINIMIZED; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_sethail(void) { + CMD_ARGS(); + if (!TryChangeBattleWeather(gBattlerAttacker, ENUM_WEATHER_HAIL, FALSE)) { gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -13156,11 +14067,13 @@ static void Cmd_sethail(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_HAIL; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_trymemento(void) { + CMD_ARGS(const u8 *failInstr); + #if B_MEMENTO_FAIL == GEN_3 if (gBattleMons[gBattlerTarget].statStages[STAT_ATK] == MIN_STAT_STAGE && gBattleMons[gBattlerTarget].statStages[STAT_SPATK] == MIN_STAT_STAGE @@ -13173,7 +14086,7 @@ static void Cmd_trymemento(void) #endif { // Failed, unprotected target already has minimum Attack and Special Attack. - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -13182,34 +14095,41 @@ static void Cmd_trymemento(void) gBattleMoveDamage = gBattleMons[gActiveBattler].hp; BtlController_EmitHealthBarUpdate(BUFFER_A, INSTANT_HP_BAR_DROP); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } // Follow Me static void Cmd_setforcedtarget(void) { + CMD_ARGS(); + gSideTimers[GetBattlerSide(gBattlerTarget)].followmeTimer = 1; gSideTimers[GetBattlerSide(gBattlerTarget)].followmeTarget = gBattlerTarget; gSideTimers[GetBattlerSide(gBattlerTarget)].followmePowder = TestMoveFlags(gCurrentMove, FLAG_POWDER); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_setcharge(void) { + CMD_ARGS(); + gStatuses3[gBattlerAttacker] |= STATUS3_CHARGED_UP; gDisableStructs[gBattlerAttacker].chargeTimer = 2; gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } // Nature Power static void Cmd_callterrainattack(void) { + CMD_ARGS(); + gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; gCurrentMove = GetNaturePowerMove(); gBattlerTarget = GetMoveTarget(gCurrentMove, NO_TARGET_OVERRIDE); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } u16 GetNaturePowerMove(void) @@ -13230,43 +14150,51 @@ u16 GetNaturePowerMove(void) // Refresh static void Cmd_cureifburnedparalysedorpoisoned(void) { + CMD_ARGS(const u8 *failInstr); + if (gBattleMons[gBattlerAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)) { gBattleMons[gBattlerAttacker].status1 = 0; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; gActiveBattler = gBattlerAttacker; BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gActiveBattler].status1), &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_settorment(void) { + CMD_ARGS(const u8 *failInstr); + if (gBattleMons[gBattlerTarget].status2 & STATUS2_TORMENT) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gBattleMons[gBattlerTarget].status2 |= STATUS2_TORMENT; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_jumpifnodamage(void) { + CMD_ARGS(const u8 *jumpInstr); + if (gProtectStructs[gBattlerAttacker].physicalDmg || gProtectStructs[gBattlerAttacker].specialDmg) - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->jumpInstr; } static void Cmd_settaunt(void) { + CMD_ARGS(const u8 *failInstr); + #if B_OBLIVIOUS_TAUNT >= GEN_6 if (GetBattlerAbility(gBattlerTarget) == ABILITY_OBLIVIOUS) { @@ -13289,16 +14217,18 @@ static void Cmd_settaunt(void) #endif gDisableStructs[gBattlerTarget].tauntTimer = turns; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_trysethelpinghand(void) { + CMD_ARGS(const u8 *failInstr); + gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker))); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE @@ -13307,17 +14237,19 @@ static void Cmd_trysethelpinghand(void) && !gProtectStructs[gBattlerTarget].helpingHand) { gProtectStructs[gBattlerTarget].helpingHand = TRUE; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } // Trick static void Cmd_tryswapitems(void) { + CMD_ARGS(const u8 *failInstr); + // opponent can't swap items with player in regular battles if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL || (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT @@ -13331,7 +14263,7 @@ static void Cmd_tryswapitems(void) #endif )))) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -13347,7 +14279,7 @@ static void Cmd_tryswapitems(void) && (gWishFutureKnock.knockedOffMons[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]] || gWishFutureKnock.knockedOffMons[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattlerTarget]])) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } // can't swap if two pokemon don't have an item // or if either of them is an enigma berry or a mail @@ -13357,7 +14289,7 @@ static void Cmd_tryswapitems(void) || !CanBattlerGetOrLoseItem(gBattlerTarget, gBattleMons[gBattlerTarget].item) || !CanBattlerGetOrLoseItem(gBattlerTarget, gBattleMons[gBattlerAttacker].item)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } // check if ability prevents swapping else if (GetBattlerAbility(gBattlerTarget) == ABILITY_STICKY_HOLD) @@ -13392,7 +14324,7 @@ static void Cmd_tryswapitems(void) gBattleStruct->choicedMove[gBattlerTarget] = MOVE_NONE; gBattleStruct->choicedMove[gBattlerAttacker] = MOVE_NONE; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; PREPARE_ITEM_BUFFER(gBattleTextBuff1, *newItemAtk) PREPARE_ITEM_BUFFER(gBattleTextBuff2, oldItemAtk) @@ -13429,6 +14361,8 @@ static void Cmd_tryswapitems(void) // Role Play static void Cmd_trycopyability(void) { + CMD_ARGS(const u8 *failInstr); + u16 defAbility = gBattleMons[gBattlerTarget].ability; if (gBattleMons[gBattlerAttacker].ability == defAbility @@ -13436,31 +14370,33 @@ static void Cmd_trycopyability(void) || IsRolePlayBannedAbilityAtk(gBattleMons[gBattlerAttacker].ability) || IsRolePlayBannedAbility(defAbility)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gBattleScripting.abilityPopupOverwrite = gBattleMons[gBattlerAttacker].ability; gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = defAbility; gLastUsedAbility = defAbility; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_trywish(void) { - switch (gBattlescriptCurrInstr[1]) + CMD_ARGS(u8 turnNumber, const u8 *failInstr); + + switch (cmd->turnNumber) { case 0: // use wish if (gWishFutureKnock.wishCounter[gBattlerAttacker] == 0) { gWishFutureKnock.wishCounter[gBattlerAttacker] = 2; gWishFutureKnock.wishPartyId[gBattlerAttacker] = gBattlerPartyIndexes[gBattlerAttacker]; - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); + gBattlescriptCurrInstr = cmd->failInstr; } break; case 1: // heal effect @@ -13476,9 +14412,9 @@ static void Cmd_trywish(void) gBattleMoveDamage *= -1; if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); + gBattlescriptCurrInstr = cmd->failInstr; else - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; break; } @@ -13486,24 +14422,28 @@ static void Cmd_trywish(void) static void Cmd_settoxicspikes(void) { + CMD_ARGS(const u8 *failInstr); + u8 targetSide = GetBattlerSide(gBattlerTarget); if (gSideTimers[targetSide].toxicSpikesAmount >= 2) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gSideTimers[targetSide].toxicSpikesAmount++; gSideStatuses[targetSide] |= SIDE_STATUS_TOXIC_SPIKES; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setgastroacid(void) { + CMD_ARGS(const u8 *failInstr); + if (IsGastroAcidBannedAbility(gBattleMons[gBattlerTarget].ability)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -13511,16 +14451,18 @@ static void Cmd_setgastroacid(void) gSpecialStatuses[gBattlerTarget].neutralizingGasRemoved = TRUE; gStatuses3[gBattlerTarget] |= STATUS3_GASTRO_ACID; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setyawn(void) { + CMD_ARGS(const u8 *failInstr); + if (gStatuses3[gBattlerTarget] & STATUS3_YAWN || gBattleMons[gBattlerTarget].status1 & STATUS1_ANY) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else if (IsBattlerTerrainAffected(gBattlerTarget, STATUS_FIELD_ELECTRIC_TERRAIN)) { @@ -13537,20 +14479,22 @@ static void Cmd_setyawn(void) else { gStatuses3[gBattlerTarget] |= STATUS3_YAWN_TURN(2); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setdamagetohealthdifference(void) { + CMD_ARGS(const u8 *failInstr); + if (gBattleMons[gBattlerTarget].hp <= gBattleMons[gBattlerAttacker].hp) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - gBattleMons[gBattlerAttacker].hp; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -13572,6 +14516,8 @@ static void HandleRoomMove(u32 statusFlag, u8 *timer, u8 stringId) static void Cmd_setroom(void) { + CMD_ARGS(); + switch (gBattleMoves[gCurrentMove].effect) { case EFFECT_TRICK_ROOM: @@ -13587,28 +14533,30 @@ static void Cmd_setroom(void) gBattleCommunication[MULTISTRING_CHOOSER] = 6; break; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } // Skill Swap static void Cmd_tryswapabilities(void) { + CMD_ARGS(const u8 *failInstr); + if (IsSkillSwapBannedAbility(gBattleMons[gBattlerAttacker].ability) || IsSkillSwapBannedAbility(gBattleMons[gBattlerTarget].ability)) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else if (GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_ABILITY_SHIELD); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -13616,16 +14564,18 @@ static void Cmd_tryswapabilities(void) gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = abilityAtk; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } } static void Cmd_tryimprison(void) { + CMD_ARGS(const u8 *failInstr); + if ((gStatuses3[gBattlerAttacker] & STATUS3_IMPRISONED_OTHERS)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -13653,38 +14603,42 @@ static void Cmd_tryimprison(void) if (attackerMoveId != MAX_MON_MOVES) { gStatuses3[gBattlerAttacker] |= STATUS3_IMPRISONED_OTHERS; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; break; } } } if (battlerId == gBattlersCount) // In Generation 3 games, Imprison fails if the user doesn't share any moves with any of the foes. - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_setstealthrock(void) { + CMD_ARGS(const u8 *failInstr); + u8 targetSide = GetBattlerSide(gBattlerTarget); if (gSideStatuses[targetSide] & SIDE_STATUS_STEALTH_ROCK) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gSideStatuses[targetSide] |= SIDE_STATUS_STEALTH_ROCK; gSideTimers[targetSide].stealthRockAmount = 1; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_setuserstatus3(void) { - u32 flags = T1_READ_32(gBattlescriptCurrInstr + 1); + CMD_ARGS(u32 flags, const u8 *failInstr); + + u32 flags = cmd->flags; if (gStatuses3[gBattlerAttacker] & flags) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 5); + gBattlescriptCurrInstr = cmd->failInstr; } else { @@ -13693,12 +14647,14 @@ static void Cmd_setuserstatus3(void) gDisableStructs[gBattlerAttacker].magnetRiseTimer = 5; if (flags & STATUS3_LASER_FOCUS) gDisableStructs[gBattlerAttacker].laserFocusTimer = 2; - gBattlescriptCurrInstr += 9; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_assistattackselect(void) { + CMD_ARGS(const u8 *failInstr); + s32 chooseableMovesNo = 0; struct Pokemon *party; s32 monId, moveId; @@ -13735,41 +14691,45 @@ static void Cmd_assistattackselect(void) gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; gCalledMove = validMoves[((Random() & 0xFF) * chooseableMovesNo) >> 8]; gBattlerTarget = GetMoveTarget(gCalledMove, NO_TARGET_OVERRIDE); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_trysetmagiccoat(void) { + CMD_ARGS(const u8 *failInstr); + gBattlerTarget = gBattlerAttacker; gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = TRUE; if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gProtectStructs[gBattlerAttacker].bounceMove = TRUE; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } // Snatch static void Cmd_trysetsnatch(void) { + CMD_ARGS(const u8 *failInstr); + gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = TRUE; if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gProtectStructs[gBattlerAttacker].stealMove = TRUE; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -13779,7 +14739,9 @@ static void Cmd_unused2(void) static void Cmd_switchoutabilities(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler); + + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (gBattleMons[gActiveBattler].ability == ABILITY_NEUTRALIZING_GAS) { gBattleMons[gActiveBattler].ability = ABILITY_NONE; @@ -13811,24 +14773,28 @@ static void Cmd_switchoutabilities(void) break; } - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_jumpifhasnohp(void) { - gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 battler, const u8 *jumpInstr); + + gActiveBattler = GetBattlerForBattleScript(cmd->battler); if (gBattleMons[gActiveBattler].hp == 0) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 6; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_getsecretpowereffect(void) { + CMD_ARGS(); + gBattleScripting.moveEffect = GetSecretPowerMoveEffect(); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } u16 GetSecretPowerMoveEffect(void) @@ -13925,6 +14891,8 @@ u16 GetSecretPowerMoveEffect(void) static void Cmd_pickup(void) { + CMD_ARGS(); + s32 i; u16 species, heldItem; u16 ability; @@ -14018,11 +14986,13 @@ static void Cmd_pickup(void) } } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_doweatherformchangeanimation(void) { + CMD_ARGS(); + gActiveBattler = gBattleScripting.battler; if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) @@ -14031,14 +15001,16 @@ static void Cmd_doweatherformchangeanimation(void) BtlController_EmitBattleAnimation(BUFFER_A, B_ANIM_CASTFORM_CHANGE, gBattleStruct->formToChangeInto); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_tryweatherformdatachange(void) { + CMD_ARGS(); + u8 form; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; form = TryWeatherFormChange(gBattleScripting.battler); if (form) { @@ -14050,6 +15022,8 @@ static void Cmd_tryweatherformdatachange(void) // Water and Mud Sport static void Cmd_settypebasedhalvers(void) { + CMD_ARGS(const u8 *failInstr); + bool8 worked = FALSE; if (gBattleMoves[gCurrentMove].effect == EFFECT_MUD_SPORT) @@ -14092,9 +15066,9 @@ static void Cmd_settypebasedhalvers(void) } if (worked) - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } bool32 DoesSubstituteBlockMove(u8 battlerAtk, u8 battlerDef, u32 move) @@ -14127,14 +15101,18 @@ bool32 DoesDisguiseBlockMove(u8 battlerAtk, u8 battlerDef, u32 move) static void Cmd_jumpifsubstituteblocks(void) { + CMD_ARGS(const u8 *jumpInstr); + if (DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_tryrecycleitem(void) { + CMD_ARGS(const u8 *failInstr); + u16 *usedHeldItem; gActiveBattler = gBattlerAttacker; @@ -14148,11 +15126,11 @@ static void Cmd_tryrecycleitem(void) BtlController_EmitSetMonData(BUFFER_A, REQUEST_HELDITEM_BATTLE, 0, sizeof(gBattleMons[gActiveBattler].item), &gBattleMons[gActiveBattler].item); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } @@ -14165,6 +15143,8 @@ bool32 CanCamouflage(u8 battlerId) static void Cmd_settypetoterrain(void) { + CMD_ARGS(const u8 *failInstr); + u8 terrainType; switch(gFieldStatuses & STATUS_FIELD_TERRAIN_ANY) { @@ -14190,17 +15170,19 @@ static void Cmd_settypetoterrain(void) SET_BATTLER_TYPE(gBattlerAttacker, terrainType); PREPARE_TYPE_BUFFER(gBattleTextBuff1, terrainType); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } // Unused static void Cmd_pursuitdoubles(void) { + CMD_ARGS(const u8 *failInstr); + gActiveBattler = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker))); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE @@ -14210,19 +15192,21 @@ static void Cmd_pursuitdoubles(void) { gActionsByTurnOrder[gActiveBattler] = B_ACTION_TRY_FINISH; gCurrentMove = MOVE_PURSUIT; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; gBattleScripting.animTurn = 1; gBattleScripting.savedBattler = gBattlerAttacker; gBattlerAttacker = gActiveBattler; } else { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } } static void Cmd_snatchsetbattlers(void) { + CMD_ARGS(); + gEffectBattler = gBattlerAttacker; if (gBattlerAttacker == gBattlerTarget) @@ -14231,12 +15215,14 @@ static void Cmd_snatchsetbattlers(void) gBattlerTarget = gBattleScripting.battler; gBattleScripting.battler = gEffectBattler; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } // Brick Break static void Cmd_removelightscreenreflect(void) { + CMD_ARGS(); + u8 side; bool32 failed; @@ -14273,7 +15259,7 @@ static void Cmd_removelightscreenreflect(void) gBattleScripting.animTargetsHit = 0; } - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } u8 GetCatchingBattler(void) @@ -14286,6 +15272,8 @@ u8 GetCatchingBattler(void) static void Cmd_handleballthrow(void) { + CMD_ARGS(); + u16 ballMultiplier = 100; s8 ballAddition = 0; @@ -14604,6 +15592,8 @@ static void Cmd_handleballthrow(void) static void Cmd_givecaughtmon(void) { + CMD_ARGS(); + if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]]) != MON_GIVEN_TO_PARTY) { if (!ShouldShowBoxWasFullMessage()) @@ -14629,27 +15619,31 @@ static void Cmd_givecaughtmon(void) GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick); gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_POKEBALL, NULL); - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_trysetcaughtmondexflags(void) { + CMD_ARGS(const u8 *failInstr); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_SPECIES, NULL); u32 personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_PERSONALITY, NULL); if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { HandleSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_SET_CAUGHT, personality); - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_displaydexinfo(void) { + CMD_ARGS(); + u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetCatchingBattler()]], MON_DATA_SPECIES, NULL); switch (gBattleCommunication[0]) @@ -14694,7 +15688,7 @@ static void Cmd_displaydexinfo(void) break; case 5: if (!gPaletteFade.active) - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; break; } } @@ -14767,6 +15761,8 @@ void BattleDestroyYesNoCursorAt(u8 cursorPosition) static void Cmd_trygivecaughtmonnick(void) { + CMD_ARGS(const u8 *successInstr); + switch (gBattleCommunication[MULTIUSE_STATE]) { case 0: @@ -14829,48 +15825,58 @@ static void Cmd_trygivecaughtmonnick(void) if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->successInstr; } break; case 4: if (CalculatePlayerPartyCount() == PARTY_SIZE) - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; else - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->successInstr; break; } } static void Cmd_subattackerhpbydmg(void) { + CMD_ARGS(); + gBattleMons[gBattlerAttacker].hp -= gBattleMoveDamage; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_removeattackerstatus1(void) { + CMD_ARGS(); + gBattleMons[gBattlerAttacker].status1 = 0; - gBattlescriptCurrInstr++; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_finishaction(void) { + CMD_ARGS(); + gCurrentActionFuncId = B_ACTION_FINISHED; } static void Cmd_finishturn(void) { + CMD_ARGS(); + gCurrentActionFuncId = B_ACTION_FINISHED; gCurrentTurnActionNumber = gBattlersCount; } static void Cmd_trainerslideout(void) { - gActiveBattler = GetBattlerAtPosition(gBattlescriptCurrInstr[1]); + CMD_ARGS(u8 position); + + gActiveBattler = GetBattlerAtPosition(cmd->position); BtlController_EmitTrainerSlideBack(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static const u16 sTelekinesisBanList[] = @@ -14898,54 +15904,62 @@ bool32 IsTelekinesisBannedSpecies(u16 species) static void Cmd_settelekinesis(void) { + CMD_ARGS(const u8 *failInstr); + if (gStatuses3[gBattlerTarget] & (STATUS3_TELEKINESIS | STATUS3_ROOTED | STATUS3_SMACKED_DOWN) || gFieldStatuses & STATUS_FIELD_GRAVITY || IsTelekinesisBannedSpecies(gBattleMons[gBattlerTarget].species)) { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gStatuses3[gBattlerTarget] |= STATUS3_TELEKINESIS; gDisableStructs[gBattlerTarget].telekinesisTimer = 3; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_swapstatstages(void) { - u8 statId = T1_READ_8(gBattlescriptCurrInstr + 1); - s8 atkStatStage = gBattleMons[gBattlerAttacker].statStages[statId]; - s8 defStatStage = gBattleMons[gBattlerTarget].statStages[statId]; + CMD_ARGS(u8 stat); - gBattleMons[gBattlerAttacker].statStages[statId] = defStatStage; - gBattleMons[gBattlerTarget].statStages[statId] = atkStatStage; + u8 stat = cmd->stat; + s8 atkStatStage = gBattleMons[gBattlerAttacker].statStages[stat]; + s8 defStatStage = gBattleMons[gBattlerTarget].statStages[stat]; - gBattlescriptCurrInstr += 2; + gBattleMons[gBattlerAttacker].statStages[stat] = defStatStage; + gBattleMons[gBattlerTarget].statStages[stat] = atkStatStage; + + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_averagestats(void) { - u8 statId = T1_READ_8(gBattlescriptCurrInstr + 1); - u16 atkStat = *(u16 *)((&gBattleMons[gBattlerAttacker].attack) + (statId - 1)); - u16 defStat = *(u16 *)((&gBattleMons[gBattlerTarget].attack) + (statId - 1)); + CMD_ARGS(u8 stat); + + u8 stat = cmd->stat; + u16 atkStat = *(u16 *)((&gBattleMons[gBattlerAttacker].attack) + (stat - 1)); + u16 defStat = *(u16 *)((&gBattleMons[gBattlerTarget].attack) + (stat - 1)); u16 average = (atkStat + defStat) / 2; - *(u16 *)((&gBattleMons[gBattlerAttacker].attack) + (statId - 1)) = average; - *(u16 *)((&gBattleMons[gBattlerTarget].attack) + (statId - 1)) = average; + *(u16 *)((&gBattleMons[gBattlerAttacker].attack) + (stat - 1)) = average; + *(u16 *)((&gBattleMons[gBattlerTarget].attack) + (stat - 1)) = average; - gBattlescriptCurrInstr += 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_jumpifoppositegenders(void) { + CMD_ARGS(const u8 *jumpInstr); + u32 atkGender = GetGenderFromSpeciesAndPersonality(gBattleMons[gBattlerAttacker].species, gBattleMons[gBattlerAttacker].personality); u32 defGender = GetGenderFromSpeciesAndPersonality(gBattleMons[gBattlerTarget].species, gBattleMons[gBattlerTarget].personality); if ((atkGender == MON_MALE && defGender == MON_FEMALE) || (atkGender == MON_FEMALE && defGender == MON_MALE)) - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->jumpInstr; else - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_unused(void) @@ -14954,32 +15968,38 @@ static void Cmd_unused(void) static void Cmd_tryworryseed(void) { + CMD_ARGS(const u8 *failInstr); + if (IsWorrySeedBannedAbility(gBattleMons[gBattlerTarget].ability)) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else if (GetBattlerHoldEffect(gBattlerTarget, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) { RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_ABILITY_SHIELD); - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = cmd->failInstr; } else { gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = ABILITY_INSOMNIA; - gBattlescriptCurrInstr += 5; + gBattlescriptCurrInstr = cmd->nextInstr; } } static void Cmd_callnative(void) { - void (*func)() = (void *)T1_READ_PTR(gBattlescriptCurrInstr + 1); + CMD_ARGS(void (*func)(void)); + void (*func)(void) = cmd->func; func(); } // Callnative Funcs void BS_CalcMetalBurstDmg(void) { + NATIVE_ARGS(const u8 *failInstr); + u8 sideAttacker = GetBattlerSide(gBattlerAttacker); u8 sideTarget = 0; @@ -14994,7 +16014,7 @@ void BS_CalcMetalBurstDmg(void) else gBattlerTarget = gProtectStructs[gBattlerAttacker].physicalBattlerId; - gBattlescriptCurrInstr += 9; + gBattlescriptCurrInstr = cmd->nextInstr; } else if (gProtectStructs[gBattlerAttacker].specialDmg && sideAttacker != (sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].specialBattlerId)) @@ -15007,12 +16027,12 @@ void BS_CalcMetalBurstDmg(void) else gBattlerTarget = gProtectStructs[gBattlerAttacker].specialBattlerId; - gBattlescriptCurrInstr += 9; + gBattlescriptCurrInstr = cmd->nextInstr; } else { gSpecialStatuses[gBattlerAttacker].ppNotAffectedByPressure = TRUE; - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 5); + gBattlescriptCurrInstr = cmd->failInstr; } } From 56c9564e7aadf45a41e9fcf3ef3a68024a26f7c8 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 17 Feb 2023 11:28:46 +0100 Subject: [PATCH 082/125] 8th gen Howl's effect (#2700) * Howl gen8 effect --- data/battle_scripts_1.s | 38 +++++++++++++ include/constants/battle_move_effects.h | 3 +- include/constants/battle_script_commands.h | 1 + src/battle_util.c | 3 + src/data/battle_moves.h | 3 +- test/move_effect_attack_up_user_ally.c | 65 ++++++++++++++++++++++ test/test_battle.h | 14 ++--- 7 files changed, 118 insertions(+), 9 deletions(-) create mode 100644 test/move_effect_attack_up_user_ally.c diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 33af9f16e..12b32c3f1 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -416,6 +416,44 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectSpecialAttackUpHit @ EFFECT_SPECIAL_ATTACK_UP_HIT .4byte BattleScript_EffectVictoryDance @ EFFECT_VICTORY_DANCE .4byte BattleScript_EffectTeatime @ EFFECT_TEATIME + .4byte BattleScript_EffectAttackUpUserAlly @ EFFECT_ATTACK_UP_USER_ALLY + +BattleScript_EffectAttackUpUserAlly: + jumpifnoally BS_ATTACKER, BattleScript_EffectAttackUp + attackcanceler + attackstring + ppreduce + jumpifstat BS_ATTACKER, CMP_NOT_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_EffectAttackUpUserAlly_Works + jumpifstat BS_ATTACKER_PARTNER, CMP_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_ButItFailed +BattleScript_EffectAttackUpUserAlly_Works: + attackanimation + waitanimation + setstatchanger STAT_ATK, 1, FALSE + statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAttackUpUserAlly_TryAlly + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectAttackUpUserAllyUser_PrintString + setgraphicalstatchangevalues + playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 +BattleScript_EffectAttackUpUserAllyUser_PrintString: + printfromtable gStatUpStringIds + waitmessage B_WAIT_TIME_LONG +BattleScript_EffectAttackUpUserAlly_TryAlly: + setallytonexttarget BattleScript_EffectAttackUpUserAlly_TryAlly_ +BattleScript_EffectAttackUpUserAlly_End: + goto BattleScript_MoveEnd +BattleScript_EffectAttackUpUserAlly_TryAlly_: + setstatchanger STAT_ATK, 1, FALSE + statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAttackUpUserAlly_End + jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectAttackUpUserAlly_AllyAnim + pause B_WAIT_TIME_SHORTEST + printstring STRINGID_TARGETSTATWONTGOHIGHER + waitmessage B_WAIT_TIME_LONG + goto BattleScript_EffectAttackUpUserAlly_End +BattleScript_EffectAttackUpUserAlly_AllyAnim: + setgraphicalstatchangevalues + playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage B_WAIT_TIME_LONG + goto BattleScript_EffectAttackUpUserAlly_End BattleScript_EffectTeatime:: attackcanceler diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 2cf8d2f9c..beab88151 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -397,7 +397,8 @@ #define EFFECT_SPECIAL_ATTACK_UP_HIT 391 #define EFFECT_VICTORY_DANCE 392 #define EFFECT_TEATIME 393 +#define EFFECT_ATTACK_UP_USER_ALLY 394 // Howl 8th Gen -#define NUM_BATTLE_MOVE_EFFECTS 394 +#define NUM_BATTLE_MOVE_EFFECTS 395 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 935121394..68e927d75 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -74,6 +74,7 @@ #define BS_PLAYER2 13 // for Cmd_updatestatusicon #define BS_OPPONENT2 14 #define BS_ABILITY_BATTLER 15 +#define BS_ATTACKER_PARTNER 16 // Cmd_accuracycheck #define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF diff --git a/src/battle_util.c b/src/battle_util.c index 8d350553d..4bded150b 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1287,6 +1287,9 @@ u8 GetBattlerForBattleScript(u8 caseId) case BS_ATTACKER: ret = gBattlerAttacker; break; + case BS_ATTACKER_PARTNER: + ret = BATTLE_PARTNER(gBattlerAttacker); + break; case BS_EFFECT_BATTLER: ret = gEffectBattler; break; diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index eed91d524..997e7f4b3 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -6073,10 +6073,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = { #if B_UPDATED_MOVE_DATA >= GEN_8 .flags = FLAG_SNATCH_AFFECTED | FLAG_SOUND, + .effect = EFFECT_ATTACK_UP_USER_ALLY, #else .flags = FLAG_SNATCH_AFFECTED, + .effect = EFFECT_ATTACK_UP, #endif - .effect = EFFECT_ATTACK_UP, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, diff --git a/test/move_effect_attack_up_user_ally.c b/test/move_effect_attack_up_user_ally.c new file mode 100644 index 000000000..e98df30d8 --- /dev/null +++ b/test/move_effect_attack_up_user_ally.c @@ -0,0 +1,65 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_HOWL].effect == EFFECT_ATTACK_UP_USER_ALLY); +} + +SINGLE_BATTLE_TEST("Howl raises user's Attack", s16 damage) +{ + bool32 raiseAttack; + PARAMETRIZE { raiseAttack = FALSE; } + PARAMETRIZE { raiseAttack = TRUE; } + GIVEN { + ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + if (raiseAttack) TURN { MOVE(player, MOVE_HOWL); } + TURN { MOVE(player, MOVE_TACKLE); } + } SCENE { + if (raiseAttack) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HOWL, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet's attack rose!"); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} + +DOUBLE_BATTLE_TEST("Howl raises user's and partner's Attack", s16 damageLeft, s16 damageRight) +{ + bool32 raiseAttack; + PARAMETRIZE { raiseAttack = FALSE; } + PARAMETRIZE { raiseAttack = TRUE; } + GIVEN { + ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + PLAYER(SPECIES_WOBBUFFET) { Speed(15); }; + PLAYER(SPECIES_WYNAUT) { Speed(10); }; + OPPONENT(SPECIES_WOBBUFFET) { Speed(13); }; + OPPONENT(SPECIES_WYNAUT) { Speed(12); }; + } WHEN { + if (raiseAttack) TURN { MOVE(playerLeft, MOVE_HOWL); } + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); } + TURN { MOVE(playerRight, MOVE_TACKLE, target: opponentRight); } + } SCENE { + if (raiseAttack) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HOWL, playerLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Wobbuffet's attack rose!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Wynaut's attack rose!"); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerLeft); + HP_BAR(opponentLeft, captureDamage: &results[i].damageLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerRight); + HP_BAR(opponentRight, captureDamage: &results[i].damageRight); + } FINALLY { + EXPECT_MUL_EQ(results[0].damageLeft, Q_4_12(1.5), results[1].damageLeft); + EXPECT_MUL_EQ(results[0].damageRight, Q_4_12(1.5), results[1].damageRight); + } +} diff --git a/test/test_battle.h b/test/test_battle.h index 8fb1ce6d3..806e7947e 100644 --- a/test/test_battle.h +++ b/test/test_battle.h @@ -112,17 +112,17 @@ * NOT STATUS_ICON(opponent, paralysis: TRUE); to say that Oddish was * not paralyzed without specifying the exact outputs which led to that. * - * As a final example, to test that Howl works you might: - * 1. Put a Wobbuffet that knows Howl and Tackle in your party. + * As a final example, to test that Meditate works you might: + * 1. Put a Wobbuffet that knows Meditate and Tackle in your party. * 2. Battle a wild Wobbuffet. * 3. Use Tackle and note the amount the HP bar reduced. * 4. Battle a wild Wobbuffet. - * 5. Use Howl and that that the stat change animation and message play. + * 5. Use Meditate and that the stat change animation and message play. * 6. Use Tackle and check that the HP bar reduced by more than in 3. * * This can be translated to an automated test as follows: * - * SINGLE_BATTLE_TEST("Howl raises Attack", s16 damage) + * SINGLE_BATTLE_TEST("Meditate raises Attack", s16 damage) * { * bool32 raiseAttack; * PARAMETRIZE { raiseAttack = FALSE; } @@ -132,11 +132,11 @@ * PLAYER(SPECIES_WOBBUFFET); * OPPONENT(SPECIES_WOBBUFFET); * } WHEN { - * if (raiseAttack) TURN { MOVE(player, MOVE_HOWL); } // 5. + * if (raiseAttack) TURN { MOVE(player, MOVE_MEDITATE); } // 5. * TURN { MOVE(player, MOVE_TACKLE); } // 3 & 6. * } SCENE { * if (raiseAttack) { - * ANIMATION(ANIM_TYPE_MOVE, MOVE_HOWL, player); + * ANIMATION(ANIM_TYPE_MOVE, MOVE_MEDITATE, player); * ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); // 5. * MESSAGE("Wobbuffet's attack rose!"); // 5. * } @@ -159,7 +159,7 @@ * of the first battle (with a small tolerance to account for rounding). * * You might notice that all the tests check the outputs the player - * could see rather than the internal battle state. e.g. the Howl test + * could see rather than the internal battle state. e.g. the Meditate test * could have used gBattleMons[B_POSITION_OPPONENT_LEFT].hp instead of * using HP_BAR to capture the damage. This is a deliberate choice, by * checking what the player can observe the tests are more robust to From 0c523f951886b7e1b85ee576fa2ece7e7543da15 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 17 Feb 2023 14:55:51 +0100 Subject: [PATCH 083/125] Fix Magic bounce powder moves against grass types (#2633) * Fix Magic bounce powder moves against grass types --- data/battle_scripts_1.s | 5 ++- include/battle_util.h | 29 +++++++++++++ src/battle_script_commands.c | 4 +- src/battle_util.c | 34 ++------------- test/ability_magic_bounce.c | 84 ++++++++++++++++++++++++++++++++++++ test/powder_moves.c | 47 ++++++++++++++++++++ 6 files changed, 171 insertions(+), 32 deletions(-) create mode 100644 test/ability_magic_bounce.c create mode 100644 test/powder_moves.c diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 12b32c3f1..ae92aba7c 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -7683,11 +7683,14 @@ BattleScript_GrudgeTakesPp:: printstring STRINGID_PKMNLOSTPPGRUDGE waitmessage B_WAIT_TIME_LONG return - + BattleScript_MagicCoatBounce:: attackstring ppreduce pause B_WAIT_TIME_SHORT + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_MagicCoatBounce_Print + call BattleScript_AbilityPopUp +BattleScript_MagicCoatBounce_Print: printfromtable gMagicCoatBounceStringIds waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP diff --git a/include/battle_util.h b/include/battle_util.h index 1c3f486cd..bf3943a9d 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -64,6 +64,35 @@ struct TypePower u16 effect; }; +enum +{ + CANCELLER_FLAGS, + CANCELLER_SKY_DROP, + CANCELLER_ASLEEP, + CANCELLER_FROZEN, + CANCELLER_TRUANT, + CANCELLER_RECHARGE, + CANCELLER_FLINCH, + CANCELLER_DISABLED, + CANCELLER_GRAVITY, + CANCELLER_HEAL_BLOCKED, + CANCELLER_TAUNTED, + CANCELLER_IMPRISONED, + CANCELLER_CONFUSED, + CANCELLER_PARALYSED, + CANCELLER_IN_LOVE, + CANCELLER_BIDE, + CANCELLER_THAW, + CANCELLER_POWDER_MOVE, + CANCELLER_POWDER_STATUS, + CANCELLER_THROAT_CHOP, + CANCELLER_MULTIHIT_MOVES, + CANCELLER_Z_MOVES, + CANCELLER_END, + CANCELLER_PSYCHIC_TERRAIN, + CANCELLER_END2, +}; + extern const struct TypePower gNaturalGiftTable[]; void HandleAction_ThrowBall(void); diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 57311e671..b5629c2cc 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1530,6 +1530,7 @@ static void Cmd_attackcanceler(void) PressurePPLose(gBattlerAttacker, gBattlerTarget, MOVE_MAGIC_COAT); gProtectStructs[gBattlerTarget].usesBouncedMove = TRUE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleStruct->atkCancellerTracker = CANCELLER_POWDER_MOVE; // Edge case for bouncing a powder move against a grass type pokemon. if (BlocksPrankster(gCurrentMove, gBattlerTarget, gBattlerAttacker, TRUE)) { // Opponent used a prankster'd magic coat -> reflected status move should fail against a dark-type attacker @@ -1547,11 +1548,12 @@ static void Cmd_attackcanceler(void) && gBattleMoves[gCurrentMove].flags & FLAG_MAGIC_COAT_AFFECTED && !gProtectStructs[gBattlerAttacker].usesBouncedMove) { - RecordAbilityBattle(gBattlerTarget, ABILITY_MAGIC_BOUNCE); gProtectStructs[gBattlerTarget].usesBouncedMove = TRUE; gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleStruct->atkCancellerTracker = CANCELLER_POWDER_MOVE; // Edge case for bouncing a powder move against a grass type pokemon. BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; + gBattlerAbility = gBattlerTarget; return; } diff --git a/src/battle_util.c b/src/battle_util.c index 4bded150b..46f8d3a3d 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -3410,35 +3410,6 @@ void TryClearRageAndFuryCutter(void) } } -enum -{ - CANCELLER_FLAGS, - CANCELLER_SKY_DROP, - CANCELLER_ASLEEP, - CANCELLER_FROZEN, - CANCELLER_TRUANT, - CANCELLER_RECHARGE, - CANCELLER_FLINCH, - CANCELLER_DISABLED, - CANCELLER_GRAVITY, - CANCELLER_HEAL_BLOCKED, - CANCELLER_TAUNTED, - CANCELLER_IMPRISONED, - CANCELLER_CONFUSED, - CANCELLER_PARALYSED, - CANCELLER_IN_LOVE, - CANCELLER_BIDE, - CANCELLER_THAW, - CANCELLER_POWDER_MOVE, - CANCELLER_POWDER_STATUS, - CANCELLER_THROAT_CHOP, - CANCELLER_MULTIHIT_MOVES, - CANCELLER_Z_MOVES, - CANCELLER_END, - CANCELLER_PSYCHIC_TERRAIN, - CANCELLER_END2, -}; - u8 AtkCanceller_UnableToUseMove(void) { u8 effect = 0; @@ -3753,7 +3724,10 @@ u8 AtkCanceller_UnableToUseMove(void) if (effect != 0) gBattlescriptCurrInstr = BattleScript_PowderMoveNoEffect; } - gBattleStruct->atkCancellerTracker++; + if (gProtectStructs[gBattlerAttacker].usesBouncedMove) // Edge case for bouncing a powder move against a grass type pokemon. + gBattleStruct->atkCancellerTracker = CANCELLER_END; + else + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_POWDER_STATUS: if (gBattleMons[gBattlerAttacker].status2 & STATUS2_POWDER) diff --git a/test/ability_magic_bounce.c b/test/ability_magic_bounce.c new file mode 100644 index 000000000..d52b93c4a --- /dev/null +++ b/test/ability_magic_bounce.c @@ -0,0 +1,84 @@ +#include "global.h" +#include "test_battle.h" + + +SINGLE_BATTLE_TEST("Magic Bounce bounces back status moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_TOXIC].effect == EFFECT_TOXIC); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_ESPEON) { Ability(ABILITY_MAGIC_BOUNCE);}; + } WHEN { + TURN { MOVE(player, MOVE_TOXIC); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_MAGIC_BOUNCE); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, player); + MESSAGE("Wynaut's Toxic was bounced back by Foe Espeon's Magic Bounce!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, opponent); + STATUS_ICON(player, badPoison: TRUE); + } +} + +SINGLE_BATTLE_TEST("Magic Bounce bounces back powder moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_STUN_SPORE].flags & FLAG_POWDER); + ASSUME(gBattleMoves[MOVE_STUN_SPORE].effect == EFFECT_PARALYZE); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_ESPEON) { Ability(ABILITY_MAGIC_BOUNCE);}; + } WHEN { + TURN { MOVE(player, MOVE_STUN_SPORE); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_MAGIC_BOUNCE); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, player); + MESSAGE("Wynaut's Stun Spore was bounced back by Foe Espeon's Magic Bounce!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, opponent); + STATUS_ICON(player, paralysis: TRUE); + } +} + +SINGLE_BATTLE_TEST("Magic Bounce cannot bounce back powder moves against Grass Types") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_STUN_SPORE].flags & FLAG_POWDER); + ASSUME(gSpeciesInfo[SPECIES_ODDISH].types[0] == TYPE_GRASS); + PLAYER(SPECIES_ODDISH); + OPPONENT(SPECIES_ESPEON) { Ability(ABILITY_MAGIC_BOUNCE);}; + } WHEN { + TURN { MOVE(player, MOVE_STUN_SPORE); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_MAGIC_BOUNCE); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); + MESSAGE("Oddish's Stun Spore was bounced back by Foe Espeon's Magic Bounce!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, opponent); + MESSAGE("It doesn't affect Oddish…"); + NOT STATUS_ICON(player, paralysis: TRUE); + } +} + + +DOUBLE_BATTLE_TEST("Magic Bounce bounces back moves hitting both foes at two foes") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_LEER].effect == EFFECT_DEFENSE_DOWN); + ASSUME(gBattleMoves[MOVE_LEER].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_ABRA); + PLAYER(SPECIES_KADABRA); + OPPONENT(SPECIES_ESPEON) { Ability(ABILITY_MAGIC_BOUNCE);}; + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(playerLeft, MOVE_LEER); } + } SCENE { + ABILITY_POPUP(opponentLeft, ABILITY_MAGIC_BOUNCE); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_LEER, playerLeft); + MESSAGE("Abra's Leer was bounced back by Foe Espeon's Magic Bounce!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_LEER, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Abra's defense fell!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Kadabra's defense fell!"); + // Also check if second original target gets hit by Leer as this was once bugged + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("Foe Wynaut's defense fell!"); + } +} diff --git a/test/powder_moves.c b/test/powder_moves.c new file mode 100644 index 000000000..cb0aee528 --- /dev/null +++ b/test/powder_moves.c @@ -0,0 +1,47 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Powder Moves are blocked by Grass Types") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_STUN_SPORE].flags & FLAG_POWDER); + ASSUME(gSpeciesInfo[SPECIES_ODDISH].types[0] == TYPE_GRASS); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_ODDISH); + } WHEN { + TURN { MOVE(player, MOVE_STUN_SPORE); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); + MESSAGE("It doesn't affect Foe Oddish…"); + } +} + +SINGLE_BATTLE_TEST("Powder Moves are blocked by Ability Overcoat") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_STUN_SPORE].flags & FLAG_POWDER); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_PINECO) { Ability(ABILITY_OVERCOAT);}; + } WHEN { + TURN { MOVE(player, MOVE_STUN_SPORE); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_OVERCOAT); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); + MESSAGE("It doesn't affect Foe Pineco…"); + } +} + +SINGLE_BATTLE_TEST("Powder Moves are blocked by Item Safety Goggles") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_STUN_SPORE].flags & FLAG_POWDER); + ASSUME(gItems[ITEM_SAFETY_GOGGLES].holdEffect == HOLD_EFFECT_SAFETY_GOGGLES); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_ABRA) { Item(ITEM_SAFETY_GOGGLES);}; + } WHEN { + TURN { MOVE(player, MOVE_STUN_SPORE); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); + MESSAGE("Foe Abra is not affected thanks to its SafetyGoggles!"); + } +} From 79ea2e80743f84a0ab09ffc294b623ed605fe45d Mon Sep 17 00:00:00 2001 From: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Date: Sat, 18 Feb 2023 05:37:29 -0500 Subject: [PATCH 084/125] add howl AI check for new effect (#2703) Co-authored-by: ghoulslash --- src/battle_ai_main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 1765af94b..a626ef49a 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -982,6 +982,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) // stat raising effects case EFFECT_ATTACK_UP: case EFFECT_ATTACK_UP_2: + case EFFECT_ATTACK_UP_USER_ALLY: if (!BattlerStatCanRise(battlerAtk, AI_DATA->abilities[battlerAtk], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) score -= 10; break; @@ -3191,6 +3192,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) // stat raising effects case EFFECT_ATTACK_UP: case EFFECT_ATTACK_UP_2: + case EFFECT_ATTACK_UP_USER_ALLY: if (MovesWithSplitUnusable(battlerAtk, battlerDef, SPLIT_PHYSICAL)) { score -= 8; @@ -4824,6 +4826,7 @@ static s16 AI_SetupFirstTurn(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) switch (gBattleMoves[move].effect) { case EFFECT_ATTACK_UP: + case EFFECT_ATTACK_UP_USER_ALLY: case EFFECT_DEFENSE_UP: case EFFECT_SPEED_UP: case EFFECT_SPECIAL_ATTACK_UP: @@ -5154,6 +5157,7 @@ static s16 AI_HPAware(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) switch (effect) { case EFFECT_ATTACK_UP: + case EFFECT_ATTACK_UP_USER_ALLY: case EFFECT_DEFENSE_UP: case EFFECT_SPEED_UP: case EFFECT_SPECIAL_ATTACK_UP: From fcf13aab2b462ecafdd670e833a7bc02cc597e43 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sun, 19 Feb 2023 06:40:55 -0300 Subject: [PATCH 085/125] Fixed evolutions that use held items to evolve not working when using Rare Candies. (#2565) --- src/party_menu.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/party_menu.c b/src/party_menu.c index 4cecc8257..8debf9f3c 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -5165,7 +5165,6 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task) u16 *itemPtr = &gSpecialVar_ItemId; bool8 cannotUseEffect; u8 holdEffectParam = ItemId_GetHoldEffectParam(*itemPtr); - u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, ITEM_NONE, NULL); sInitialLevel = GetMonData(mon, MON_DATA_LEVEL); if (sInitialLevel != MAX_LEVEL) @@ -5181,10 +5180,22 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task) PlaySE(SE_SELECT); if (cannotUseEffect) { - if (targetSpecies != SPECIES_NONE && holdEffectParam == 0) + u16 targetSpecies = SPECIES_NONE; + + // Resets values to 0 so other means of teaching moves doesn't overwrite levels + sInitialLevel = 0; + sFinalLevel = 0; + + if (holdEffectParam == 0) + targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, ITEM_NONE, NULL); + + if (targetSpecies != SPECIES_NONE) { - PartyMenuTryEvolution(taskId); RemoveBagItem(gSpecialVar_ItemId, 1); + FreePartyPointers(); + gCB2_AfterEvolution = gPartyMenu.exitCallback; + BeginEvolutionScene(mon, targetSpecies, TRUE, gPartyMenu.slotId); + DestroyTask(taskId); } else { From ec343cef02438173223b3f5d3e71d89443649015 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Sun, 19 Feb 2023 06:45:59 -0300 Subject: [PATCH 086/125] Config to have Shuckle make Berry Juice from Oran Berries (#2331) * Removed unused ifdefs and made actually check for Z Power Ring * Config to have Shuckle make Berry Juice from Oran Berries * Ordered species-specific configs --- include/config/pokemon.h | 7 +++++-- src/battle_script_commands.c | 24 ++++++++++++++++++------ src/battle_z_move.c | 4 ---- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/include/config/pokemon.h b/include/config/pokemon.h index 4cb2271d5..ce5faf2a6 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -13,11 +13,14 @@ #define P_EGG_HATCH_LEVEL GEN_LATEST // Since Gen 4, Pokémon will hatch from eggs at level 1 instead of 5. #define P_BALL_INHERITING GEN_LATEST // Since Gen 6, Eggs from the Daycare will inherit the Poké Ball from their mother. From Gen7 onwards, the father can pass it down as well, as long as it's of the same species as the mother. -// Other settings +// Species-specific settings #define P_SHEDINJA_BALL GEN_LATEST // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. -#define P_LEGENDARY_PERFECT_IVS GEN_LATEST // Since Gen 6, Legendaries, Mythicals and Ultra Beasts found in the wild or given through gifts have at least 3 perfect IVs. #define P_KADABRA_EVERSTONE GEN_LATEST // Since Gen 4, Kadabra can evolve even when holding an Everstone. #define P_HIPPO_GENDER_DIFF_ICONS TRUE // If TRUE, will give Hippopotas and Hippowdon custom icons for their female forms. +#define P_SHUCKLE_BERRY_JUICE TRUE // In Gen 2, Shuckle had a 1/16 chance of converting Berry that it's holding into Berry Juice. Setting this to TRUE will allow to do this with an Oran Berry, which is the spiritual succesor of the Berry item. + +// Other settings +#define P_LEGENDARY_PERFECT_IVS GEN_LATEST // Since Gen 6, Legendaries, Mythicals and Ultra Beasts found in the wild or given through gifts have at least 3 perfect IVs. // Flag settings // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 87feb5627..8b8d4f1e9 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -14922,7 +14922,6 @@ static void Cmd_pickup(void) heldItem = GetBattlePyramidPickupItemId(); SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); } - #if (defined ITEM_HONEY) else if (ability == ABILITY_HONEY_GATHER && species != 0 && species != SPECIES_EGG @@ -14934,7 +14933,15 @@ static void Cmd_pickup(void) SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); } } - #endif + #if P_SHUCKLE_BERRY_JUICE == TRUE + else if (species == SPECIES_SHUCKLE + && heldItem == ITEM_ORAN_BERRY + && (Random() % 16) == 0) + { + heldItem = ITEM_BERRY_JUICE; + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); + } + #endif } } else @@ -14972,7 +14979,6 @@ static void Cmd_pickup(void) } } } - #if (defined ITEM_HONEY) else if (ability == ABILITY_HONEY_GATHER && species != 0 && species != SPECIES_EGG @@ -14984,7 +14990,15 @@ static void Cmd_pickup(void) SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); } } - #endif + #if P_SHUCKLE_BERRY_JUICE == TRUE + else if (species == SPECIES_SHUCKLE + && heldItem == ITEM_ORAN_BERRY + && (Random() % 16) == 0) + { + heldItem = ITEM_BERRY_JUICE; + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); + } + #endif } } @@ -16073,10 +16087,8 @@ static bool32 CriticalCapture(u32 odds) else odds = (odds * 250) / 100; - #ifdef ITEM_CATCHING_CHARM if (CheckBagHasItem(ITEM_CATCHING_CHARM, 1)) odds = (odds * (100 + B_CATCHING_CHARM_BOOST)) / 100; - #endif odds /= 6; if ((Random() % 255) < odds) diff --git a/src/battle_z_move.c b/src/battle_z_move.c index bdbf5674c..536080aa9 100644 --- a/src/battle_z_move.c +++ b/src/battle_z_move.c @@ -204,11 +204,7 @@ bool32 IsViableZMove(u8 battlerId, u16 move) else holdEffect = ItemId_GetHoldEffect(item); - #ifdef ITEM_ULTRANECROZIUM_Z - if (holdEffect == HOLD_EFFECT_Z_CRYSTAL || item == ITEM_ULTRANECROZIUM_Z) - #else if (holdEffect == HOLD_EFFECT_Z_CRYSTAL) - #endif { u16 zMove = GetSignatureZMove(move, gBattleMons[battlerId].species, item); if (zMove != MOVE_NONE) From 4b64433816d0a2c6c29aa12dfcaabe1b03a18299 Mon Sep 17 00:00:00 2001 From: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Date: Sun, 19 Feb 2023 05:48:12 -0500 Subject: [PATCH 087/125] Add Battle Anim cmds for dynamic Task, Sprite creation + Misc. Anim Fixes (#2649) * add createvisualtaskontargets, createspriteontargets to fix electroweb, fiery wrath anims * add missing semicolon * add Cmd_createspriteontargets_onpos for heal block, fix heal block targeting * remove duplicate func * improve origin pulse anim * fix IsDoubleBattle call * venom drench acid uses average battler positions * add GetSubpriorityForMoveAnim * add GetBattleAnimMoveTargets for CreateSpriteOnTargets and Cmd_createvisualtaskontargets --------- Co-authored-by: ghoulslash --- asm/macros/battle_anim_script.inc | 44 +++++++ data/battle_anim_scripts.s | 90 +++++++------ src/battle_anim.c | 212 +++++++++++++++++++++++++++--- src/battle_anim_effects_1.c | 26 +++- src/data/battle_moves.h | 2 +- 5 files changed, 310 insertions(+), 64 deletions(-) diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index a98a344fa..6ff387690 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -270,6 +270,50 @@ .macro stopsound .byte 0x2f .endm + + @ same as createvisualtask except takes in battlerargindex, which is the battle anim arg index of the battler to loop through + .macro createvisualtaskontargets addr:req, priority:req, battlerargindex:req, argv:vararg + .byte 0x30 + .4byte \addr + .byte \priority + .byte \battlerargindex + .byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2 @ num_args +.Lcreatetask_\@_1: + .2byte \argv +.Lcreatetask_\@_2: + .endm + + @ same as createsprite except takes in battlerargindex, which is the battle anim arg index of the battler to loop through + .macro createspriteontargets template:req, anim_battler:req, subpriority_offset:req, battlerargindex:req, argv:vararg + .byte 0x31 + .4byte \template + .if \anim_battler == ANIM_TARGET + .byte 0x80 | (\subpriority_offset & 0x7F) + .else + .byte (\subpriority_offset & 0x7F) + .endif + .byte \battlerargindex + .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2 +.Lsprite_\@_1: + .2byte \argv +.Lsprite_\@_2: + .endm + + @ does not overwrite gBattleAnimArgs[battlerargindex], some sprite templates are too dependent on the value (e.g. heal block) + .macro createspriteontargets_onpos template:req, anim_battler:req, subpriority_offset:req, battlerargindex:req, argv:vararg + .byte 0x32 + .4byte \template + .if \anim_battler == ANIM_TARGET + .byte 0x80 | (\subpriority_offset & 0x7F) + .else + .byte (\subpriority_offset & 0x7F) + .endif + .byte \battlerargindex + .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2 +.Lsprite_\@_1: + .2byte \argv +.Lsprite_\@_2: + .endm @ useful macros .macro jumpreteq value:req, ptr:req diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 0ad58c49e..71bd93d70 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1492,22 +1492,22 @@ Move_HEAL_BLOCK: loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_TARGET createsoundtask SoundTask_PlaySeChangingVolume, SE_M_ABSORB_2, SOUND_PAN_TARGET, 256, -16, 0, 2 - createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 0, -5, 1, 0 + createspriteontargets_onpos gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 2, 0, -5, ANIM_TARGET, 0 delay 7 - createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, -15, 10, 1, 0 + createspriteontargets_onpos gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 2, -15, 10, ANIM_TARGET, 0 delay 7 - createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | 4, 4, 2, 12, 0, RGB_BLACK - createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 0, -5, 1, 0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_DEF_SIDE, 4, 2, 12, 0, RGB_BLACK + createspriteontargets_onpos gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 2, 0, -5, ANIM_TARGET, 0 delay 7 - createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, -15, 10, 1, 0 + createspriteontargets_onpos gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 2, -15, 10, ANIM_TARGET, 0 delay 7 - createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, -15, -15, 1, 0 + createspriteontargets_onpos gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 2, -15, -15, ANIM_TARGET, 0 delay 7 - createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 10, -5, 1, 0 + createspriteontargets_onpos gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 2, 10, -5, ANIM_TARGET, 0 delay 7 waitforvisualfinish delay 11 - createvisualtask AnimTask_BlendBattleAnimPal, 10, 1 | 4, 4, 2, 0, 12, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_DEF_SIDE, 4, 2, 0, 12, RGB_BLACK waitforvisualfinish clearmonbg ANIM_TARGET end @@ -6405,11 +6405,7 @@ Move_ELECTROWEB: clearmonbg ANIM_DEF_PARTNER delay 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 9, 0, RGB_BLACK - - @ ElectricityEffect looks ugly against both opponents, to do later - jumpifdoublebattle Move_ELECTROWEB_Wait - - call ElectricityEffect + call ElectricityEffect_OnTargets Move_ELECTROWEB_Wait: waitforvisualfinish end @@ -9278,16 +9274,16 @@ Move_EERIE_IMPULSE:: Move_VENOM_DRENCH:: loadspritegfx ANIM_TAG_POISON_BUBBLE monbg ANIM_DEF_PARTNER - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xfffb 0x1 0xfffb 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xfffb 0x1 0xfffb 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x5 0x0 0x6 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x5 0x0 0x6 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x13 0x1 0xa 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x13 0x1 0xa 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffe9 0x2 0xfff6 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffe9 0x2 0xfff6 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 call AcidDrench @@ -9296,28 +9292,28 @@ Move_VENOM_DRENCH:: clearmonbg ANIM_DEF_PARTNER end AcidDrench: - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x1c 0x1 0xa 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x1c 0x1 0xa 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xfff6 0x1 0xfffb 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xfff6 0x1 0xfffb 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xa 0x0 0x6 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xa 0x0 0x6 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x18 0x1 0xa 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x18 0x1 0xa 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffe0 0x2 0xfff6 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffe0 0x2 0xfff6 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0xffec 0x0 0xfff6 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 - launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x1e 0x2 0xa 0x0 + launchtemplate gVenomDrenchAcidTemplate 0x82, 0x4, 0x1e 0x2 0xa 1 playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 0x2 return @@ -10175,6 +10171,7 @@ Move_ORIGIN_PULSE:: launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFF2A 0xFFAA 0x10 @between left and upper left launchtemplate gOriginPulseOrbInwardTemplate 0x82 0x5 0x1 0x0 0xFFDA 0xFF94 0x10 @between up and upper left waitforvisualfinish + createvisualtaskontargets AnimTask_ShakeMon2, 5, 0, ANIM_TARGET, 2, 0, 18, 1 monbg ANIM_DEF_PARTNER launchtemplate gOriginPulseBasicSplatTemplate 0x83 0x4 0xffb0 0xfff0 0x1 0x1 stopsound @@ -23375,15 +23372,15 @@ Move_OVERHEAT: waitforvisualfinish createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, 3, ANIM_TARGET, 0 playsewithpan SE_M_FLAMETHROWER, SOUND_PAN_TARGET - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 10, 0, 25, 1 + createvisualtaskontargets AnimTask_ShakeMon, 2, 0, ANIM_TARGET, 10, 0, 25, 1 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -5, ANIM_TARGET, 0 + createspriteontargets gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 2, 8, -5, ANIM_TARGET, 0 playsewithpan SE_M_FLAMETHROWER, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 10, ANIM_TARGET, 0 + createspriteontargets gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 2, 10, 10, ANIM_TARGET, 0 playsewithpan SE_M_FLAMETHROWER, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 0 + createspriteontargets gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 2, 0, 0, ANIM_TARGET, 0 playsewithpan SE_M_FLAMETHROWER, SOUND_PAN_TARGET createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 1 delay 1 @@ -24209,21 +24206,40 @@ WaterBubblesEffectLong: ElectricityEffect: playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET ElectricityEffectNoSound: - createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0, ANIM_TARGET + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0, ANIM_TARGET delay 2 - createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1, ANIM_TARGET + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1, ANIM_TARGET delay 2 - createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 15, 20, 5, 2, ANIM_TARGET + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 15, 20, 5, 2, ANIM_TARGET delay 2 - createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -15, -10, 5, 0, ANIM_TARGET + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -15, -10, 5, 0, ANIM_TARGET delay 2 - createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 25, 0, 5, 1, ANIM_TARGET + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 25, 0, 5, 1, ANIM_TARGET delay 2 - createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -8, 8, 5, 2, ANIM_TARGET + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -8, 8, 5, 2, ANIM_TARGET delay 2 - createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 2, -8, 5, 0, ANIM_TARGET + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 2, -8, 5, 0, ANIM_TARGET delay 2 - createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -20, 15, 5, 1, ANIM_TARGET + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -20, 15, 5, 1, ANIM_TARGET + return + +ElectricityEffect_OnTargets: + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 4, 5, 0, 5, 0, ANIM_TARGET + delay 2 + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 4, -5, 10, 5, 1, ANIM_TARGET + delay 2 + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 4, 15, 20, 5, 2, ANIM_TARGET + delay 2 + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 4, -15, -10, 5, 0, ANIM_TARGET + delay 2 + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 4, 25, 0, 5, 1, ANIM_TARGET + delay 2 + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 4, -8, 8, 5, 2, ANIM_TARGET + delay 2 + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 4, 2, -8, 5, 0, ANIM_TARGET + delay 2 + createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 4, -20, 15, 5, 1, ANIM_TARGET return ConfusionEffect: diff --git a/src/battle_anim.c b/src/battle_anim.c index 610c24321..a7faec1fd 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -3,6 +3,7 @@ #include "battle_anim.h" #include "battle_controllers.h" #include "battle_interface.h" +#include "battle_util.h" #include "bg.h" #include "contest.h" #include "decompress.h" @@ -81,7 +82,9 @@ static void Cmd_visible(void); static void Cmd_teamattack_moveback(void); static void Cmd_teamattack_movefwd(void); static void Cmd_stopsound(void); - +static void Cmd_createvisualtaskontargets(void); +static void Cmd_createspriteontargets(void); +static void Cmd_createspriteontargets_onpos(void); static void RunAnimScriptCommand(void); static void Task_UpdateMonBg(u8 taskId); static void FlipBattlerBgTiles(void); @@ -169,6 +172,9 @@ static void (* const sScriptCmdTable[])(void) = Cmd_teamattack_moveback, // 0x2D Cmd_teamattack_movefwd, // 0x2E Cmd_stopsound, // 0x2F + Cmd_createvisualtaskontargets, // 0x30 + Cmd_createspriteontargets, // 0x31 + Cmd_createspriteontargets_onpos, // 0x32 }; void ClearBattleAnimationVars(void) @@ -425,29 +431,46 @@ static void Cmd_unloadspritegfx(void) ClearSpriteIndex(GET_TRUE_SPRITE_INDEX(index)); } -static void Cmd_createsprite(void) +static u8 GetBattleAnimMoveTargets(u8 battlerArgIndex, u8 *targets) { - s32 i; - const struct SpriteTemplate *template; - u8 argVar; - u8 argsCount; - s16 subpriority; - - sBattleAnimScriptPtr++; - template = (const struct SpriteTemplate *)(T2_READ_32(sBattleAnimScriptPtr)); - sBattleAnimScriptPtr += 4; - - argVar = sBattleAnimScriptPtr[0]; - sBattleAnimScriptPtr++; - - argsCount = sBattleAnimScriptPtr[0]; - sBattleAnimScriptPtr++; - for (i = 0; i < argsCount; i++) + u8 numTargets = 1; + switch (GetBattlerMoveTargetType(gBattleAnimAttacker, gAnimMoveIndex)) { - gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); - sBattleAnimScriptPtr += 2; + case MOVE_TARGET_BOTH: + targets[0] = gBattleAnimArgs[battlerArgIndex]; + numTargets = 1; + if (IsBattlerAlive(targets[0] ^ BIT_FLANK)) { + targets[1] = targets[0] ^ BIT_FLANK; + numTargets++; + } + break; + case MOVE_TARGET_FOES_AND_ALLY: + targets[0] = gBattleAnimArgs[battlerArgIndex]; + numTargets = 1; + + if (IsBattlerAlive(targets[0] ^ BIT_FLANK)) { + targets[1] = targets[0] ^ BIT_FLANK; + numTargets++; + } + + if (IsBattlerAlive(gBattleAnimAttacker ^ BIT_FLANK)) { + targets[2] = gBattleAnimAttacker ^ BIT_FLANK; + numTargets++; + } + break; + default: + targets[0] = gBattleAnimArgs[battlerArgIndex]; // original + numTargets = 1; + break; } + + return numTargets; +} +static s16 GetSubpriorityForMoveAnim(u8 argVar) +{ + s16 subpriority; + if (argVar & ANIMSPRITE_IS_TARGET) { argVar ^= ANIMSPRITE_IS_TARGET; @@ -470,6 +493,34 @@ static void Cmd_createsprite(void) if (subpriority < 3) subpriority = 3; + + return subpriority; +} + +static void Cmd_createsprite(void) +{ + s32 i; + const struct SpriteTemplate *template; + u8 argVar; + u8 argsCount; + s16 subpriority; + + sBattleAnimScriptPtr++; + template = (const struct SpriteTemplate *)(T2_READ_32(sBattleAnimScriptPtr)); + sBattleAnimScriptPtr += 4; + + argVar = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + argsCount = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + for (i = 0; i < argsCount; i++) + { + gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); + sBattleAnimScriptPtr += 2; + } + + subpriority = GetSubpriorityForMoveAnim(argVar); CreateSpriteAndAnimate( template, @@ -479,6 +530,85 @@ static void Cmd_createsprite(void) gAnimVisualTaskCount++; } +static void CreateSpriteOnTargets(const struct SpriteTemplate *template, u8 argVar, u8 battlerArgIndex, u8 argsCount, bool32 overwriteAnimTgt) +{ + u32 i; + u8 targets[MAX_BATTLERS_COUNT]; + int ntargets; + s16 subpriority; + + for (i = 0; i < argsCount; i++) + { + gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); + sBattleAnimScriptPtr += 2; + } + + subpriority = GetSubpriorityForMoveAnim(argVar); + + ntargets = GetBattleAnimMoveTargets(battlerArgIndex, targets); + + for (i = 0; i < ntargets; i++) { + + if (overwriteAnimTgt) + gBattleAnimArgs[battlerArgIndex] = targets[i]; + + CreateSpriteAndAnimate( + template, + GetBattlerSpriteCoord(targets[i], BATTLER_COORD_X_2), + GetBattlerSpriteCoord(targets[i], BATTLER_COORD_Y_PIC_OFFSET), + subpriority); + gAnimVisualTaskCount++; + } +} + +// will NOT overwrite gBattleAnimArgs +static void Cmd_createspriteontargets_onpos(void) +{ + const struct SpriteTemplate *template; + u8 argVar; + u8 argsCount; + u8 battlerArgIndex; + + sBattleAnimScriptPtr++; + template = (const struct SpriteTemplate *)(T2_READ_32(sBattleAnimScriptPtr)); + sBattleAnimScriptPtr += 4; + + argVar = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + battlerArgIndex = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + argsCount = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + CreateSpriteOnTargets(template, argVar, battlerArgIndex, argsCount, FALSE); +} + +// DOES overwrite gBattleAnimArgs +static void Cmd_createspriteontargets(void) +{ + const struct SpriteTemplate *template; + u8 argVar; + u8 argsCount; + u8 battlerArgIndex; + + sBattleAnimScriptPtr++; + template = (const struct SpriteTemplate *)(T2_READ_32(sBattleAnimScriptPtr)); + sBattleAnimScriptPtr += 4; + + argVar = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + battlerArgIndex = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + argsCount = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + CreateSpriteOnTargets(template, argVar, battlerArgIndex, argsCount, TRUE); +} + static void Cmd_createvisualtask(void) { TaskFunc taskFunc; @@ -509,6 +639,48 @@ static void Cmd_createvisualtask(void) gAnimVisualTaskCount++; } +static void Cmd_createvisualtaskontargets(void) +{ + TaskFunc taskFunc; + u8 taskPriority; + u8 taskId; + u8 numArgs; + u8 battlerArgIndex; // index in gBattleAnimArgs that has the battlerId + s32 i; + u8 targets[MAX_BATTLERS_COUNT] = {0}; + + sBattleAnimScriptPtr++; + + taskFunc = (TaskFunc)T2_READ_32(sBattleAnimScriptPtr); + sBattleAnimScriptPtr += 4; + + taskPriority = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + battlerArgIndex = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + numArgs = sBattleAnimScriptPtr[0]; + sBattleAnimScriptPtr++; + + // copy task arguments + for (i = 0; i < numArgs; i++) { + gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); + sBattleAnimScriptPtr += 2; + } + + numArgs = GetBattleAnimMoveTargets(battlerArgIndex, targets); + + for (i = 0; i < numArgs; i++) + { + gBattleAnimArgs[battlerArgIndex] = targets[i]; + taskId = CreateTask(taskFunc, taskPriority); + taskFunc(taskId); + gAnimVisualTaskCount++; + } +} + + static void Cmd_delay(void) { sBattleAnimScriptPtr++; diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 761a1886c..8dae62029 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -4806,8 +4806,8 @@ void AnimTask_CycleMagicalLeafPal(u8 taskId) void AnimNeedleArmSpike(struct Sprite *sprite) { - u8 a; - u8 b; + s16 a; + s16 b; u16 c; u16 x; u16 y; @@ -4820,13 +4820,27 @@ void AnimNeedleArmSpike(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - a = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - b = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + if (IsDoubleBattle()) + { + SetAverageBattlerPositions(gBattleAnimAttacker, TRUE, &a, &b); + } + else + { + a = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + b = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + } } else { - a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + if (IsDoubleBattle()) + { + SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &a, &b); + } + else + { + a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + } } sprite->data[0] = gBattleAnimArgs[4]; diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 997e7f4b3..415ef234c 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -6833,7 +6833,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .accuracy = 100, .pp = 15, .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, + .target = MOVE_TARGET_BOTH, .priority = 0, .split = SPLIT_STATUS, .zMovePower = 0, From c82f35d6bf649bb7930835c5be48ad4268005152 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Feb 2023 12:01:13 +0100 Subject: [PATCH 088/125] correct Cmd_pickup --- src/battle_script_commands.c | 89 +++++++++++------------------------- test/ability_guts.c | 20 ++++++++ 2 files changed, 46 insertions(+), 63 deletions(-) create mode 100644 test/ability_guts.c diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 8b8d4f1e9..8e13ebf6d 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -14895,62 +14895,18 @@ static void Cmd_pickup(void) { CMD_ARGS(); - s32 i; - u16 species, heldItem; - u16 ability; + u32 i, j; + u16 species, heldItem, ability; u8 lvlDivBy10; - if (InBattlePike()) - { - - } - else if (InBattlePyramid()) + if (!InBattlePike()) // No items in Battle Pike. { + bool32 isInPyramid = InBattlePyramid_(); for (i = 0; i < PARTY_SIZE; i++) { species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); - - ability = gSpeciesInfo[species].abilities[GetMonData(&gPlayerParty[i], MON_DATA_ABILITY_NUM)]; - - if (ability == ABILITY_PICKUP - && species != SPECIES_NONE - && species != SPECIES_EGG - && heldItem == ITEM_NONE - && (Random() % 10) == 0) - { - heldItem = GetBattlePyramidPickupItemId(); - SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); - } - else if (ability == ABILITY_HONEY_GATHER - && species != 0 - && species != SPECIES_EGG - && heldItem == ITEM_NONE) - { - if ((lvlDivBy10 + 1 ) * 5 > Random() % 100) - { - heldItem = ITEM_HONEY; - SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); - } - } - #if P_SHUCKLE_BERRY_JUICE == TRUE - else if (species == SPECIES_SHUCKLE - && heldItem == ITEM_ORAN_BERRY - && (Random() % 16) == 0) - { - heldItem = ITEM_BERRY_JUICE; - SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); - } - #endif - } - } - else - { - for (i = 0; i < PARTY_SIZE; i++) - { - species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); - lvlDivBy10 = (GetMonData(&gPlayerParty[i], MON_DATA_LEVEL)-1) / 10; //Moving this here makes it easier to add in abilities like Honey Gather + lvlDivBy10 = (GetMonData(&gPlayerParty[i], MON_DATA_LEVEL)-1) / 10; //Moving this here makes it easier to add in abilities like Honey Gather. if (lvlDivBy10 > 9) lvlDivBy10 = 9; @@ -14962,20 +14918,27 @@ static void Cmd_pickup(void) && heldItem == ITEM_NONE && (Random() % 10) == 0) { - s32 j; - s32 rand = Random() % 100; - - for (j = 0; j < (int)ARRAY_COUNT(sPickupProbabilities); j++) + if (isInPyramid) { - if (sPickupProbabilities[j] > rand) + heldItem = GetBattlePyramidPickupItemId(); + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); + } + else + { + u32 rand = Random() % 100; + + for (j = 0; j < ARRAY_COUNT(sPickupProbabilities); j++) { - SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &sPickupItems[lvlDivBy10 + j]); - break; - } - else if (rand == 99 || rand == 98) - { - SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &sRarePickupItems[lvlDivBy10 + (99 - rand)]); - break; + if (sPickupProbabilities[j] > rand) + { + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &sPickupItems[lvlDivBy10 + j]); + break; + } + else if (rand == 99 || rand == 98) + { + SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &sRarePickupItems[lvlDivBy10 + (99 - rand)]); + break; + } } } } @@ -14990,7 +14953,7 @@ static void Cmd_pickup(void) SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); } } - #if P_SHUCKLE_BERRY_JUICE == TRUE + #if P_SHUCKLE_BERRY_JUICE == TRUE else if (species == SPECIES_SHUCKLE && heldItem == ITEM_ORAN_BERRY && (Random() % 16) == 0) @@ -14998,7 +14961,7 @@ static void Cmd_pickup(void) heldItem = ITEM_BERRY_JUICE; SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); } - #endif + #endif } } diff --git a/test/ability_guts.c b/test/ability_guts.c new file mode 100644 index 000000000..259b863ec --- /dev/null +++ b/test/ability_guts.c @@ -0,0 +1,20 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Blaze boosts Fire-type moves in a pinch", s16 damage) +{ + u16 hp; + PARAMETRIZE { hp = 99; } + PARAMETRIZE { hp = 33; } + GIVEN { + ASSUME(gBattleMoves[MOVE_EMBER].type == TYPE_FIRE); + PLAYER(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); MaxHP(99); HP(hp); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_EMBER); } + } SCENE { + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_GT(results[1].damage, results[0].damage); + } +} From dcb1117470bb809d1906f8b2b1f0f71da2cf6ff4 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Feb 2023 12:01:47 +0100 Subject: [PATCH 089/125] a --- test/ability_guts.c | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 test/ability_guts.c diff --git a/test/ability_guts.c b/test/ability_guts.c deleted file mode 100644 index 259b863ec..000000000 --- a/test/ability_guts.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "global.h" -#include "test_battle.h" - -SINGLE_BATTLE_TEST("Blaze boosts Fire-type moves in a pinch", s16 damage) -{ - u16 hp; - PARAMETRIZE { hp = 99; } - PARAMETRIZE { hp = 33; } - GIVEN { - ASSUME(gBattleMoves[MOVE_EMBER].type == TYPE_FIRE); - PLAYER(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); MaxHP(99); HP(hp); } - OPPONENT(SPECIES_WOBBUFFET); - } WHEN { - TURN { MOVE(player, MOVE_EMBER); } - } SCENE { - HP_BAR(opponent, captureDamage: &results[i].damage); - } FINALLY { - EXPECT_GT(results[1].damage, results[0].damage); - } -} From 380af442c39bf2af87a0e31b23d12e12b251f6ec Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 19 Feb 2023 12:05:56 +0100 Subject: [PATCH 090/125] Fix buggy pokemon anims with Illusion (#2639) * try illusion fix * fix --- include/battle_util.h | 1 + src/battle_controller_link_opponent.c | 4 +++- src/battle_controller_opponent.c | 4 +++- src/battle_util.c | 8 ++++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/include/battle_util.h b/include/battle_util.h index bf3943a9d..0661081e4 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -181,6 +181,7 @@ void UndoMegaEvolution(u32 monId); void UndoFormChange(u32 monId, u32 side, bool32 isSwitchingOut); bool32 DoBattlersShareType(u32 battler1, u32 battler2); bool32 CanBattlerGetOrLoseItem(u8 battlerId, u16 itemId); +u32 GetIllusionMonSpecies(u32 battlerId); struct Pokemon *GetIllusionMonPtr(u32 battlerId); void ClearIllusionMon(u32 battlerId); bool32 SetIllusionMon(struct Pokemon *mon, u32 battlerId); diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 97fc21df9..908363907 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1149,7 +1149,9 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit); gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + species = GetIllusionMonSpecies(battlerId); + if (species == SPECIES_NONE) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 0a9626a13..79283b067 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1177,7 +1177,9 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) ClearTemporarySpeciesSpriteData(battlerId, dontClearSubstituteBit); gBattlerPartyIndexes[battlerId] = gBattleResources->bufferA[battlerId][1]; - species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); + species = GetIllusionMonSpecies(battlerId); + if (species == SPECIES_NONE) + species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); diff --git a/src/battle_util.c b/src/battle_util.c index 46f8d3a3d..25ba83093 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -10266,6 +10266,14 @@ void ClearIllusionMon(u32 battlerId) memset(&gBattleStruct->illusion[battlerId], 0, sizeof(gBattleStruct->illusion[battlerId])); } +u32 GetIllusionMonSpecies(u32 battlerId) +{ + struct Pokemon *illusionMon = GetIllusionMonPtr(battlerId); + if (illusionMon != NULL) + return GetMonData(illusionMon, MON_DATA_SPECIES); + return SPECIES_NONE; +} + bool32 SetIllusionMon(struct Pokemon *mon, u32 battlerId) { struct Pokemon *party, *partnerMon; From c33cc834bcaedea3552197322c07b849143e093f Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Sun, 19 Feb 2023 19:04:36 -0300 Subject: [PATCH 091/125] Updated Psyshield Bash's accuracy --- src/data/battle_moves.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 415ef234c..bf5414276 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -13294,7 +13294,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .effect = EFFECT_DEFENSE_UP_HIT, .power = 70, .type = TYPE_PSYCHIC, - .accuracy = 100, + .accuracy = 90, .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, From 53180ebf8791277339b829fc11eb26bb611180ad Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 20 Feb 2023 12:25:43 +0100 Subject: [PATCH 092/125] Update Healing wish to gen5 / gen8 mechanics (#2708) * Updated Healing Wish and added config * Fixed Lunar Dance message Co-authored-by: AgustinGDLV Co-authored-by: AgustinGDLV <103095241+AgustinGDLV@users.noreply.github.com> Co-authored-by: Martin Griffin --- asm/macros/battle_script.inc | 5 ++ data/battle_scripts_1.s | 19 +++-- include/battle.h | 2 + include/battle_scripts.h | 2 + include/config/battle.h | 2 + include/constants/battle_script_commands.h | 1 + src/battle_script_commands.c | 27 ++++++++ test/move_effect_healing_wish.c | 80 ++++++++++++++++++++++ test/move_effect_recoil_if_miss.c | 2 +- 9 files changed, 133 insertions(+), 7 deletions(-) create mode 100644 test/move_effect_healing_wish.c diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 4f11fc78b..6c985e3cd 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1322,6 +1322,11 @@ .macro cancelmultiturnmoves battler:req various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES .endm + + @ Stores Healing Wish effect. + .macro storehealingwish battler:req + various \battler, VARIOUS_STORE_HEALING_WISH + .endm .macro setmagiccoattarget battler:req various \battler, VARIOUS_SET_MAGIC_COAT_TARGET diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index ae92aba7c..6fa0cd7ad 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -2697,6 +2697,8 @@ BattleScript_EffectHealingWish: instanthpdrop BS_ATTACKER setatkhptozero tryfaintmon BS_ATTACKER + storehealingwish BS_ATTACKER +.if B_HEALING_WISH_SWITCH <= GEN_4 openpartyscreen BS_ATTACKER, BattleScript_EffectHealingWishEnd switchoutabilities BS_ATTACKER waitstate @@ -2711,11 +2713,19 @@ BattleScript_EffectHealingWish: printstring STRINGID_SWITCHINMON switchinanim BS_ATTACKER, TRUE waitstate + switchineffects BS_ATTACKER +.endif +BattleScript_EffectHealingWishEnd: + moveendall + end + +BattleScript_HealingWishActivates:: setbyte cMULTISTRING_CHOOSER, 0 - jumpifnotchosenmove MOVE_LUNAR_DANCE, BattleScript_EffectHealingWishNewMon + goto BattleScript_EffectHealingWishRestore +BattleScript_LunarDanceActivates:: setbyte cMULTISTRING_CHOOSER, 1 restorepp BS_ATTACKER -BattleScript_EffectHealingWishNewMon: +BattleScript_EffectHealingWishRestore: printfromtable gHealingWishStringIds waitmessage B_WAIT_TIME_LONG playanimation BS_ATTACKER, B_ANIM_WISH_HEAL @@ -2730,10 +2740,7 @@ BattleScript_EffectHealingWishNewMon: waitstate printstring STRINGID_HEALINGWISHHEALED waitmessage B_WAIT_TIME_LONG - switchineffects BS_ATTACKER -BattleScript_EffectHealingWishEnd: - moveendall - end + return BattleScript_EffectWorrySeed: attackcanceler diff --git a/include/battle.h b/include/battle.h index 8be922384..2c16887bf 100644 --- a/include/battle.h +++ b/include/battle.h @@ -655,6 +655,8 @@ struct BattleStruct u16 overwrittenAbilities[MAX_BATTLERS_COUNT]; // abilities overwritten during battle (keep separate from battle history in case of switching) bool8 allowedToChangeFormInWeather[PARTY_SIZE][2]; // For each party member and side, used by Ice Face. u8 battleBondTransformed[NUM_BATTLE_SIDES]; // Bitfield for each party. + u8 storedHealingWish:4; // Each battler as a bit. + u8 storedLunarDance:4; // Each battler as a bit. }; #define F_DYNAMIC_TYPE_1 (1 << 6) diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 18c1911e5..70d398e2a 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -452,6 +452,8 @@ extern const u8 BattleScript_MimicryActivates_End3[]; extern const u8 BattleScript_IceFaceNullsDamage[]; extern const u8 BattleScript_BattlerFormChangeWithStringEnd3[]; extern const u8 BattleScript_DampPreventsAftermath[]; +extern const u8 BattleScript_HealingWishActivates[]; +extern const u8 BattleScript_LunarDanceActivates[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; diff --git a/include/config/battle.h b/include/config/battle.h index 6dea72b40..a8f4a3e8b 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -95,6 +95,8 @@ #define B_BEAT_UP GEN_LATEST // In Gen5+, Beat Up uses a different formula to calculate its damage, and deals Dark-type damage. Prior to Gen 5, each hit also announces the party member's name. #define B_DARK_VOID_FAIL GEN_LATEST // In Gen7+, only Darkrai can use Dark Void. #define B_BURN_HIT_THAW GEN_LATEST // In Gen6+, damaging moves with a chance of burn will thaw the target, regardless if they're fire-type moves or not. +#define B_HEALING_WISH_SWITCH GEN_LATEST // In Gen5+, the mon receiving Healing Wish is sent out at the end of the turn. + // Additionally, in gen8+ the Healing Wish's effect will be stored until the user switches into a statused or hurt mon. // Ability settings #define B_EXPANDED_ABILITY_NAMES TRUE // If TRUE, ability names are increased from 12 characters to 16 characters. diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 68e927d75..9f18455a8 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -257,6 +257,7 @@ #define VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES 165 #define VARIOUS_JUMP_IF_NO_VALID_TARGETS 166 #define VARIOUS_JUMP_IF_EMERGENCY_EXITED 167 +#define VARIOUS_STORE_HEALING_WISH 168 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 8b8d4f1e9..48d23cf76 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6924,6 +6924,24 @@ static void Cmd_switchineffects(void) BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SwitchInAbilityMsgRet; } + // Healing Wish activates before hazards. + // Starting from Gen8 - it heals only pokemon which can be healed. In gens 5,6,7 the effect activates anyways. + else if (((gBattleStruct->storedHealingWish & gBitTable[gActiveBattler]) || (gBattleStruct->storedLunarDance & gBitTable[gActiveBattler])) + && (gBattleMons[gActiveBattler].hp != gBattleMons[gActiveBattler].maxHP || gBattleMons[gActiveBattler].status1 != 0 || B_HEALING_WISH_SWITCH < GEN_8)) + { + if (gBattleStruct->storedHealingWish & gBitTable[gActiveBattler]) + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_HealingWishActivates; + gBattleStruct->storedHealingWish &= ~(gBitTable[gActiveBattler]); + } + else // Lunar Dance + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_LunarDanceActivates; + gBattleStruct->storedLunarDance &= ~(gBitTable[gActiveBattler]); + } + } else if (!(gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES_DAMAGED) && (gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES) && GetBattlerAbility(gActiveBattler) != ABILITY_MAGIC_GUARD @@ -11040,6 +11058,15 @@ static void Cmd_various(void) gBattlescriptCurrInstr = cmd->nextInstr; return; } + case VARIOUS_STORE_HEALING_WISH: + { + VARIOUS_ARGS(); + if (gCurrentMove == MOVE_LUNAR_DANCE) + gBattleStruct->storedLunarDance |= gBitTable[gActiveBattler]; + else + gBattleStruct->storedHealingWish |= gBitTable[gActiveBattler]; + break; + } } // End of switch (cmd->id) gBattlescriptCurrInstr = cmd->nextInstr; diff --git a/test/move_effect_healing_wish.c b/test/move_effect_healing_wish.c new file mode 100644 index 000000000..98e8730b3 --- /dev/null +++ b/test/move_effect_healing_wish.c @@ -0,0 +1,80 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_HEALING_WISH].effect == EFFECT_HEALING_WISH); + ASSUME(gBattleMoves[MOVE_LUNAR_DANCE].effect == EFFECT_HEALING_WISH); +} + +#define TEST_MAX_HP (100) + +SINGLE_BATTLE_TEST("Healing Wish causes the user to faint and fully heals the replacement") +{ + GIVEN { + ASSUME(B_HEALING_WISH_SWITCH >= GEN_5); + PLAYER(SPECIES_GARDEVOIR); + PLAYER(SPECIES_WYNAUT) { HP(1); MaxHP(TEST_MAX_HP); Status1(STATUS1_POISON); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_HEALING_WISH); SEND_OUT(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEALING_WISH, player); + HP_BAR(player, hp: 0); + MESSAGE("Gardevoir fainted!"); + MESSAGE("The healing wish came true for Wynaut!"); + HP_BAR(player, hp: TEST_MAX_HP); + STATUS_ICON(player, none: TRUE); + MESSAGE("Wynaut regained health!"); + } +} + +DOUBLE_BATTLE_TEST("Lunar Dance causes the user to faint and fully heals the replacement in a double battle") +{ + GIVEN { + ASSUME(B_HEALING_WISH_SWITCH >= GEN_5); + PLAYER(SPECIES_GARDEVOIR) { Speed(300); } + PLAYER(SPECIES_WOBBUFFET) { Speed(50); } + PLAYER(SPECIES_WYNAUT) { HP(TEST_MAX_HP - 1); MaxHP(TEST_MAX_HP); Status1(STATUS1_BURN); Speed(50); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(50); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(50); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_LUNAR_DANCE); SEND_OUT(playerLeft, 2); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_LUNAR_DANCE, playerLeft); + HP_BAR(playerLeft, hp: 0); + MESSAGE("Gardevoir fainted!"); + MESSAGE("Wynaut became cloaked in mystical moonlight!"); + HP_BAR(playerLeft, hp: TEST_MAX_HP); + STATUS_ICON(playerLeft, none: TRUE); + MESSAGE("Wynaut regained health!"); + } +} + +SINGLE_BATTLE_TEST("Healing Wish effect activates only if the switched pokemon can be healed") +{ + GIVEN { + ASSUME(B_HEALING_WISH_SWITCH >= GEN_8); + PLAYER(SPECIES_GARDEVOIR) { Speed(300); } + PLAYER(SPECIES_NINJASK) { Speed(400); } + PLAYER(SPECIES_WYNAUT) { HP(TEST_MAX_HP / 2); MaxHP(TEST_MAX_HP); Status1(STATUS1_PARALYSIS); Speed(50); } + OPPONENT(SPECIES_WOBBUFFET) {Speed(50); } + } WHEN { + TURN { MOVE(player, MOVE_HEALING_WISH); SEND_OUT(player, 1); } + TURN { MOVE(player, MOVE_U_TURN); SEND_OUT(player, 2); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEALING_WISH, player); + HP_BAR(player, hp: 0); + MESSAGE("Gardevoir fainted!"); + NONE_OF { + MESSAGE("The healing wish came true for Wynaut!"); + MESSAGE("Wynaut regained health!"); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, player); + MESSAGE("Do it! Wynaut!"); + MESSAGE("The healing wish came true for Wynaut!"); + HP_BAR(player, hp: TEST_MAX_HP); + STATUS_ICON(player, none: TRUE); + MESSAGE("Wynaut regained health!"); + } +} diff --git a/test/move_effect_recoil_if_miss.c b/test/move_effect_recoil_if_miss.c index 5c1f1a61a..8a80309d7 100644 --- a/test/move_effect_recoil_if_miss.c +++ b/test/move_effect_recoil_if_miss.c @@ -42,8 +42,8 @@ SINGLE_BATTLE_TEST("Jump Kick has 50% recoil on protect") SINGLE_BATTLE_TEST("Jump Kick has no recoil if no target") { - KNOWN_FAILING; // #2596. GIVEN { + ASSUME(B_HEALING_WISH_SWITCH >= GEN_5); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WYNAUT); From 03915524c5912c1c1d4e68406dcac01252ab5291 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 20 Feb 2023 12:42:06 +0100 Subject: [PATCH 093/125] Fix switch-in abilities activating on empty field --- include/battle.h | 1 + include/battle_script_commands.h | 1 + src/battle_script_commands.c | 72 +++++++++++++++++++++++--------- src/battle_util.c | 17 +++++++- src/data/trainer_parties.h | 12 +++--- test/ability_intimidate.c | 50 ++++++++++++++++++++-- test/test_runner.c | 2 +- 7 files changed, 124 insertions(+), 31 deletions(-) diff --git a/include/battle.h b/include/battle.h index 8be922384..46c934082 100644 --- a/include/battle.h +++ b/include/battle.h @@ -644,6 +644,7 @@ struct BattleStruct struct StolenItem itemStolen[PARTY_SIZE]; // Player's team that had items stolen (two bytes per party member) u8 blunderPolicy:1; // should blunder policy activate u8 swapDamageCategory:1; // Photon Geyser, Shell Side Arm, Light That Burns the Sky + u8 switchInAbilityPostponed:4; // To not activate against an empty field, each bit for battler u8 ballSpriteIds[2]; // item gfx, window gfx u8 stickyWebUser; u8 appearedInBattle; // Bitfield to track which Pokemon appeared in battle. Used for Burmy's form change diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index 60fd9b156..c3d6831e9 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -44,6 +44,7 @@ u16 GetSecretPowerMoveEffect(void); void StealTargetItem(u8 battlerStealer, u8 battlerItem); u8 GetCatchingBattler(void); u32 GetHighestStatId(u32 battlerId); +bool32 DoSwitchInAbilitiesItems(u32 battlerId); extern void (* const gBattleScriptingCommandsTable[])(void); extern const u8 gBattlePalaceNatureToMoveGroupLikelihood[NUM_NATURES][4]; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 8b8d4f1e9..9555111b4 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6900,6 +6900,35 @@ static void SetDmgHazardsBattlescript(u8 battlerId, u8 multistringId) gBattlescriptCurrInstr = BattleScript_DmgHazardsOnFaintedBattler; } +bool32 DoSwitchInAbilitiesItems(u32 battlerId) +{ + return (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, battlerId, 0, 0, 0) + || (gBattleWeather & B_WEATHER_ANY && WEATHER_HAS_EFFECT && AbilityBattleEffects(ABILITYEFFECT_ON_WEATHER, battlerId, 0, 0, 0)) + || (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY && AbilityBattleEffects(ABILITYEFFECT_ON_TERRAIN, battlerId, 0, 0, 0)) + || ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, battlerId, FALSE) + || AbilityBattleEffects(ABILITYEFFECT_TRACE2, 0, 0, 0, 0)); +} + +bool32 ShouldPostponeSwitchInAbilities(u32 battlerId) +{ + bool32 aliveOpposing1 = IsBattlerAlive(BATTLE_OPPOSITE(battlerId)); + bool32 aliveOpposing2 = IsBattlerAlive(BATTLE_PARTNER(BATTLE_OPPOSITE(battlerId))); + // No pokemon on opposing side - postopone. + if (!aliveOpposing1 && !aliveOpposing2) + return TRUE; + + // Checks for double battle, so abilities like Intimidate wait until all battlers are switched-in before activating. + if (IsDoubleBattle()) + { + if (aliveOpposing1 && !aliveOpposing2 && !HasNoMonsToSwitch(BATTLE_OPPOSITE(battlerId), PARTY_SIZE, PARTY_SIZE)) + return TRUE; + if (!aliveOpposing1 && aliveOpposing2 && !HasNoMonsToSwitch(BATTLE_PARTNER(BATTLE_OPPOSITE(battlerId)), PARTY_SIZE, PARTY_SIZE)) + return TRUE; + } + + return FALSE; +} + static void Cmd_switchineffects(void) { CMD_ARGS(u8 battler); @@ -7016,12 +7045,17 @@ static void Cmd_switchineffects(void) gDisableStructs[gActiveBattler].truantSwitchInHack = 0; - if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0) - || (gBattleWeather & B_WEATHER_ANY && WEATHER_HAS_EFFECT && AbilityBattleEffects(ABILITYEFFECT_ON_WEATHER, gActiveBattler, 0, 0, 0)) - || (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY && AbilityBattleEffects(ABILITYEFFECT_ON_TERRAIN, gActiveBattler, 0, 0, 0)) - || ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gActiveBattler, FALSE) - || AbilityBattleEffects(ABILITYEFFECT_TRACE2, 0, 0, 0, 0)) - return; + // Don't activate switch-in abilities if the opposing field is empty. + // This could happen when a mon uses explosion and causes everyone to faint. + if (ShouldPostponeSwitchInAbilities(gActiveBattler) || gBattleStruct->switchInAbilityPostponed) + { + gBattleStruct->switchInAbilityPostponed |= gBitTable[gActiveBattler]; + } + else + { + if (DoSwitchInAbilitiesItems(gActiveBattler)) + return; + } gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED | SIDE_STATUS_TOXIC_SPIKES_DAMAGED | SIDE_STATUS_STEALTH_ROCK_DAMAGED | SIDE_STATUS_STICKY_WEB_DAMAGED); @@ -11016,21 +11050,21 @@ static void Cmd_various(void) return; } case VARIOUS_JUMP_IF_NO_VALID_TARGETS: - { - VARIOUS_ARGS(const u8 *jumpInstr); - u32 count = 0; + { + VARIOUS_ARGS(const u8 *jumpInstr); + u32 count = 0; - for (i = 0; i < gBattlersCount; i++) - { - if (GetBattlerSide(i) != GetBattlerSide(gBattlerAttacker) && IsBattlerAlive(i)) - count++; - } - if (count == 0) - gBattlescriptCurrInstr = cmd->jumpInstr; - else - gBattlescriptCurrInstr = cmd->nextInstr; - return; + for (i = 0; i < gBattlersCount; i++) + { + if (GetBattlerSide(i) != GetBattlerSide(gBattlerAttacker) && IsBattlerAlive(i)) + count++; } + if (count == 0) + gBattlescriptCurrInstr = cmd->jumpInstr; + else + gBattlescriptCurrInstr = cmd->nextInstr; + return; + } case VARIOUS_JUMP_IF_EMERGENCY_EXITED: { VARIOUS_ARGS(const u8 *jumpInstr); diff --git a/src/battle_util.c b/src/battle_util.c index 25ba83093..185575411 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -3301,7 +3301,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) return FALSE; } -#define FAINTED_ACTIONS_MAX_CASE 7 +#define FAINTED_ACTIONS_MAX_CASE 8 bool8 HandleFaintedMonActions(void) { @@ -3386,7 +3386,19 @@ bool8 HandleFaintedMonActions(void) else gBattleStruct->faintedActionsState = 4; break; - case 6: + case 6: // All battlers switch-in abilities happen here to prevent them happening against an empty field. + for (i = 0; i < gBattlersCount; i++) + { + if (gBattleStruct->switchInAbilityPostponed & gBitTable[i]) + { + if (DoSwitchInAbilitiesItems(i)) + return TRUE; + gBattleStruct->switchInAbilityPostponed &= ~(gBitTable[i]); + } + } + gBattleStruct->faintedActionsState++; + break; + case 7: if (ItemBattleEffects(ITEMEFFECT_NORMAL, 0, TRUE)) return TRUE; gBattleStruct->faintedActionsState++; @@ -4749,6 +4761,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move case ABILITY_INTIMIDATE: if (!gSpecialStatuses[battler].switchInAbilityDone) { + gBattlerAttacker = battler; gSpecialStatuses[battler].switchInAbilityDone = TRUE; SET_STATCHANGER(STAT_ATK, 1, TRUE); BattleScriptPushCursorAndCallback(BattleScript_IntimidateActivates); diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h index 1759120b7..de2d1e897 100644 --- a/src/data/trainer_parties.h +++ b/src/data/trainer_parties.h @@ -400,17 +400,17 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Rose1[] = { { .iv = 0, .lvl = 14, - .species = SPECIES_ROSELIA, + .species = SPECIES_PORYGON, }, { .iv = 0, .lvl = 14, - .species = SPECIES_SHROOMISH, + .species = SPECIES_PORYGON, }, { .iv = 0, .lvl = 14, - .species = SPECIES_ROSELIA, + .species = SPECIES_PORYGON, } }; @@ -9631,17 +9631,17 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Deandre[] = { { .iv = 0, .lvl = 14, - .species = SPECIES_ZIGZAGOON, + .species = SPECIES_PORYGON, }, { .iv = 0, .lvl = 14, - .species = SPECIES_ARON, + .species = SPECIES_PORYGON, }, { .iv = 0, .lvl = 14, - .species = SPECIES_ELECTRIKE, + .species = SPECIES_PORYGON, } }; diff --git a/test/ability_intimidate.c b/test/ability_intimidate.c index 450ca6402..a0f48776c 100644 --- a/test/ability_intimidate.c +++ b/test/ability_intimidate.c @@ -30,13 +30,12 @@ SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after switch ou SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after KO", s16 damage) { u32 ability; - KNOWN_FAILING; PARAMETRIZE { ability = ABILITY_INTIMIDATE; } PARAMETRIZE { ability = ABILITY_RECKLESS; } GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Speed(2); }; + PLAYER(SPECIES_WOBBUFFET) { Speed(2); Attack(120) ; }; OPPONENT(SPECIES_WOBBUFFET) { HP(1); Speed(1); }; - OPPONENT(SPECIES_STARAPTOR) { Ability(ABILITY_INTIMIDATE); Speed(1); }; + OPPONENT(SPECIES_STARAPTOR) { Ability(ability); Speed(1); }; } WHEN { TURN { MOVE(player, MOVE_TACKLE); SEND_OUT(opponent, 1); } TURN { MOVE(player, MOVE_TACKLE); } @@ -48,3 +47,48 @@ SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after KO", s16 EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } + +DOUBLE_BATTLE_TEST("Intimidate doesn't activate on an empty field in a double battle") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_EXPLOSION].effect == EFFECT_EXPLOSION); + PLAYER(SPECIES_WOBBUFFET) { }; + PLAYER(SPECIES_WOBBUFFET) { HP(1); }; + PLAYER(SPECIES_STARAVIA) { Ability(ABILITY_INTIMIDATE); }; + PLAYER(SPECIES_ABRA); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); }; + OPPONENT(SPECIES_WOBBUFFET) { HP(1); }; + OPPONENT(SPECIES_STARAPTOR) { Ability(ABILITY_INTIMIDATE); }; + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(playerLeft, MOVE_EXPLOSION); SEND_OUT(playerLeft, 2); SEND_OUT(opponentLeft, 2); SEND_OUT(playerRight, 3); SEND_OUT(opponentRight, 3); } + TURN { MOVE(playerLeft, MOVE_CELEBRATE);} + } SCENE { + HP_BAR(playerLeft, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); + // Leaving these messages as they're not that important to the test, to not exceed MAX_QUEUED_EVENTS. + /* + MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wobbuffet fainted!"); + MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wobbuffet fainted!"); + */ + + MESSAGE("Go! Staravia!"); + MESSAGE("2 sent out Staraptor!"); + MESSAGE("Go! Abra!"); + MESSAGE("2 sent out Wynaut!"); + + ABILITY_POPUP(playerLeft, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + MESSAGE("Staravia's Intimidate cuts Foe Staraptor's ATTACK!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("Staravia's Intimidate cuts Foe Wynaut's ATTACK!"); + + ABILITY_POPUP(opponentLeft, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Foe Staraptor's Intimidate cuts Staravia's ATTACK!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Foe Staraptor's Intimidate cuts Abra's ATTACK!"); + } +} diff --git a/test/test_runner.c b/test/test_runner.c index 3cb1f7c21..c4befb35f 100644 --- a/test/test_runner.c +++ b/test/test_runner.c @@ -7,7 +7,7 @@ #include "test.h" #include "test_runner.h" -#define TIMEOUT_SECONDS 30 +#define TIMEOUT_SECONDS 49 void CB2_TestRunner(void); From a8c0e1ebeb13de3bb037942d21b8a8c151b90d6c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 20 Feb 2023 13:15:08 +0100 Subject: [PATCH 094/125] fix intimidate --- src/data/trainer_parties.h | 12 ++++++------ test/ability_download.c | 29 +++++++++++++++++++++++++++++ test/ability_intimidate.c | 11 ++++++++++- 3 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 test/ability_download.c diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h index de2d1e897..1759120b7 100644 --- a/src/data/trainer_parties.h +++ b/src/data/trainer_parties.h @@ -400,17 +400,17 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Rose1[] = { { .iv = 0, .lvl = 14, - .species = SPECIES_PORYGON, + .species = SPECIES_ROSELIA, }, { .iv = 0, .lvl = 14, - .species = SPECIES_PORYGON, + .species = SPECIES_SHROOMISH, }, { .iv = 0, .lvl = 14, - .species = SPECIES_PORYGON, + .species = SPECIES_ROSELIA, } }; @@ -9631,17 +9631,17 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Deandre[] = { { .iv = 0, .lvl = 14, - .species = SPECIES_PORYGON, + .species = SPECIES_ZIGZAGOON, }, { .iv = 0, .lvl = 14, - .species = SPECIES_PORYGON, + .species = SPECIES_ARON, }, { .iv = 0, .lvl = 14, - .species = SPECIES_PORYGON, + .species = SPECIES_ELECTRIKE, } }; diff --git a/test/ability_download.c b/test/ability_download.c new file mode 100644 index 000000000..8380487ce --- /dev/null +++ b/test/ability_download.c @@ -0,0 +1,29 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); +} + +SINGLE_BATTLE_TEST("Download raises Attack if enemy has greater Atk than Sp.Atk", s16 damage) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_TRACE; } + PARAMETRIZE { ability = ABILITY_DOWNLOAD; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_PORYGON) { Ability(ability); }; + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + if (ability == ABILITY_DOWNLOAD) + { + ABILITY_POPUP(opponent, ABILITY_DOWNLOAD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + } + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} diff --git a/test/ability_intimidate.c b/test/ability_intimidate.c index a0f48776c..29acfe6f9 100644 --- a/test/ability_intimidate.c +++ b/test/ability_intimidate.c @@ -20,7 +20,11 @@ SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after switch ou TURN { MOVE(player, MOVE_TACKLE); } } SCENE { if (ability == ABILITY_INTIMIDATE) + { ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Foe Staraptor's Intimidate cuts Wobbuffet's ATTACK!"); + } HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); @@ -33,15 +37,20 @@ SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after KO", s16 PARAMETRIZE { ability = ABILITY_INTIMIDATE; } PARAMETRIZE { ability = ABILITY_RECKLESS; } GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Speed(2); Attack(120) ; }; + PLAYER(SPECIES_WOBBUFFET) { Speed(2); }; OPPONENT(SPECIES_WOBBUFFET) { HP(1); Speed(1); }; OPPONENT(SPECIES_STARAPTOR) { Ability(ability); Speed(1); }; } WHEN { TURN { MOVE(player, MOVE_TACKLE); SEND_OUT(opponent, 1); } TURN { MOVE(player, MOVE_TACKLE); } } SCENE { + HP_BAR(opponent); if (ability == ABILITY_INTIMIDATE) + { ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Foe Staraptor's Intimidate cuts Wobbuffet's ATTACK!"); + } HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); From a6f6c205c9fce128b76bcd56c03317c490ee8456 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 20 Feb 2023 15:41:22 +0100 Subject: [PATCH 095/125] add tests for download --- test/ability_download.c | 72 +++++++++++++++++++++++++++++++++++++-- test/ability_intimidate.c | 8 +---- 2 files changed, 70 insertions(+), 10 deletions(-) diff --git a/test/ability_download.c b/test/ability_download.c index 8380487ce..77d090a30 100644 --- a/test/ability_download.c +++ b/test/ability_download.c @@ -4,16 +4,17 @@ ASSUMPTIONS { ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TRI_ATTACK].split == SPLIT_PHYSICAL); } -SINGLE_BATTLE_TEST("Download raises Attack if enemy has greater Atk than Sp.Atk", s16 damage) +SINGLE_BATTLE_TEST("Download raises Attack if player has lower Def than Sp.Def", s16 damage) { u32 ability; PARAMETRIZE { ability = ABILITY_TRACE; } PARAMETRIZE { ability = ABILITY_DOWNLOAD; } GIVEN { - PLAYER(SPECIES_WOBBUFFET); - OPPONENT(SPECIES_PORYGON) { Ability(ability); }; + PLAYER(SPECIES_WOBBUFFET) {Defense(100); SpDefense(200); }; + OPPONENT(SPECIES_PORYGON) { Ability(ability); Attack(100); }; } WHEN { TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { @@ -21,9 +22,74 @@ SINGLE_BATTLE_TEST("Download raises Attack if enemy has greater Atk than Sp.Atk" { ABILITY_POPUP(opponent, ABILITY_DOWNLOAD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Porygon's Download raised its attack!"); + } + HP_BAR(player, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Download raises Sp.Attack if enemy has lower Sp.Def than Def", s16 damage) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_TRACE; } + PARAMETRIZE { ability = ABILITY_DOWNLOAD; } + GIVEN { + PLAYER(SPECIES_PORYGON) { Ability(ability); SpAttack(100); }; + OPPONENT(SPECIES_WOBBUFFET) {Defense(200); SpDefense(100); }; + } WHEN { + TURN { MOVE(player, MOVE_TRI_ATTACK); } + } SCENE { + if (ability == ABILITY_DOWNLOAD) + { + ABILITY_POPUP(player, ABILITY_DOWNLOAD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Porygon's Download raised its sp. attack!"); } HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } + +SINGLE_BATTLE_TEST("Download doesn't activate if target hasn't been sent out yet", s16 damagePhysical, s16 damageSpecial) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_TRACE; } + PARAMETRIZE { ability = ABILITY_DOWNLOAD; } + GIVEN { + ASSUME(gBattleMoves[MOVE_EXPLOSION].effect == EFFECT_EXPLOSION); + PLAYER(SPECIES_WOBBUFFET) { Speed(100); }; + PLAYER(SPECIES_PORYGON) { Ability(ability); Defense(400); SpDefense(300); Speed(300); Attack(100); }; + OPPONENT(SPECIES_WOBBUFFET) { HP(1); Speed(100); }; + OPPONENT(SPECIES_PORYGON2) { Ability(ability); Defense(100); SpDefense(200); Speed(200); }; + } WHEN { + TURN { MOVE(player, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 1); } + TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_TRI_ATTACK);} + } SCENE { + HP_BAR(player, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); + // Everyone faints. + + MESSAGE("Go! Porygon!"); + MESSAGE("2 sent out Porygon2!"); + + if (ability == ABILITY_DOWNLOAD) + { + ABILITY_POPUP(player, ABILITY_DOWNLOAD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Porygon's Download raised its attack!"); + ABILITY_POPUP(opponent, ABILITY_DOWNLOAD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Porygon2's Download raised its sp. attack!"); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); + HP_BAR(opponent, captureDamage: &results[i].damagePhysical); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TRI_ATTACK, opponent); + HP_BAR(player, captureDamage: &results[i].damageSpecial); + } FINALLY { + EXPECT_MUL_EQ(results[0].damagePhysical, Q_4_12(1.5), results[1].damagePhysical); + EXPECT_MUL_EQ(results[0].damageSpecial, Q_4_12(1.5), results[1].damageSpecial); + } +} diff --git a/test/ability_intimidate.c b/test/ability_intimidate.c index 29acfe6f9..f978b80ab 100644 --- a/test/ability_intimidate.c +++ b/test/ability_intimidate.c @@ -75,13 +75,7 @@ DOUBLE_BATTLE_TEST("Intimidate doesn't activate on an empty field in a double ba } SCENE { HP_BAR(playerLeft, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); - // Leaving these messages as they're not that important to the test, to not exceed MAX_QUEUED_EVENTS. - /* - MESSAGE("Foe Wobbuffet fainted!"); - MESSAGE("Wobbuffet fainted!"); - MESSAGE("Foe Wobbuffet fainted!"); - MESSAGE("Wobbuffet fainted!"); - */ + // Everyone faints. MESSAGE("Go! Staravia!"); MESSAGE("2 sent out Staraptor!"); From 7d23d5433b68e104621073021afae493f632511f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 20 Feb 2023 16:38:37 +0100 Subject: [PATCH 096/125] try fix tests failing --- test/test_runner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_runner.c b/test/test_runner.c index c4befb35f..f64dffacb 100644 --- a/test/test_runner.c +++ b/test/test_runner.c @@ -7,7 +7,7 @@ #include "test.h" #include "test_runner.h" -#define TIMEOUT_SECONDS 49 +#define TIMEOUT_SECONDS 55 void CB2_TestRunner(void); From 2eb6401d52ab0853aa71e28f090ef8e1b1504f99 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Sun, 19 Feb 2023 14:48:51 +0000 Subject: [PATCH 097/125] Test Overgrow, Swarm and Torrent --- test/ability_blaze.c | 2 +- test/ability_overgrow.c | 20 ++++++++++++++++++++ test/ability_swarm.c | 20 ++++++++++++++++++++ test/ability_torrent.c | 20 ++++++++++++++++++++ 4 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 test/ability_overgrow.c create mode 100644 test/ability_swarm.c create mode 100644 test/ability_torrent.c diff --git a/test/ability_blaze.c b/test/ability_blaze.c index 259b863ec..1e12c6b29 100644 --- a/test/ability_blaze.c +++ b/test/ability_blaze.c @@ -15,6 +15,6 @@ SINGLE_BATTLE_TEST("Blaze boosts Fire-type moves in a pinch", s16 damage) } SCENE { HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { - EXPECT_GT(results[1].damage, results[0].damage); + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } diff --git a/test/ability_overgrow.c b/test/ability_overgrow.c new file mode 100644 index 000000000..82d8dd467 --- /dev/null +++ b/test/ability_overgrow.c @@ -0,0 +1,20 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Overgrow boosts Grass-type moves in a pinch", s16 damage) +{ + u16 hp; + PARAMETRIZE { hp = 99; } + PARAMETRIZE { hp = 33; } + GIVEN { + ASSUME(gBattleMoves[MOVE_VINE_WHIP].type == TYPE_GRASS); + PLAYER(SPECIES_BULBASAUR) { Ability(ABILITY_OVERGROW); MaxHP(99); HP(hp); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_VINE_WHIP); } + } SCENE { + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} diff --git a/test/ability_swarm.c b/test/ability_swarm.c new file mode 100644 index 000000000..7709e976e --- /dev/null +++ b/test/ability_swarm.c @@ -0,0 +1,20 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Swarm boosts Bug-type moves in a pinch", s16 damage) +{ + u16 hp; + PARAMETRIZE { hp = 99; } + PARAMETRIZE { hp = 33; } + GIVEN { + ASSUME(gBattleMoves[MOVE_BUG_BITE].type == TYPE_BUG); + PLAYER(SPECIES_LEDYBA) { Ability(ABILITY_SWARM); MaxHP(99); HP(hp); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_BUG_BITE); } + } SCENE { + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} diff --git a/test/ability_torrent.c b/test/ability_torrent.c new file mode 100644 index 000000000..e5c701775 --- /dev/null +++ b/test/ability_torrent.c @@ -0,0 +1,20 @@ +#include "global.h" +#include "test_battle.h" + +SINGLE_BATTLE_TEST("Torrent boosts Water-type moves in a pinch", s16 damage) +{ + u16 hp; + PARAMETRIZE { hp = 99; } + PARAMETRIZE { hp = 33; } + GIVEN { + ASSUME(gBattleMoves[MOVE_BUBBLE].type == TYPE_WATER); + PLAYER(SPECIES_SQUIRTLE) { Ability(ABILITY_TORRENT); MaxHP(99); HP(hp); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_BUBBLE); } + } SCENE { + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} From 666e59b37f2a3a79554589c8b7667928219a75e1 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Sun, 19 Feb 2023 15:36:16 +0000 Subject: [PATCH 098/125] Test Roar The original implementation of forcerandomswitch was biased towards certain party members. --- src/battle_script_commands.c | 33 +++++------------ test/move_effect_roar.c | 70 ++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 25 deletions(-) create mode 100644 test/move_effect_roar.c diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 21dbf59e4..b4bafd215 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -12089,8 +12089,8 @@ static void Cmd_forcerandomswitch(void) s32 lastMonId = 0; // + 1 s32 monsCount; struct Pokemon *party = NULL; - s32 validMons = 0; - s32 minNeeded; + u8 validMons[PARTY_SIZE]; + s32 validMonsCount = 0; bool32 redCardForcedSwitch = FALSE; @@ -12147,7 +12147,6 @@ static void Cmd_forcerandomswitch(void) firstMonId = 0; lastMonId = 6; monsCount = 6; - minNeeded = 2; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } @@ -12166,7 +12165,6 @@ static void Cmd_forcerandomswitch(void) lastMonId = PARTY_SIZE / 2; } monsCount = PARTY_SIZE / 2; - minNeeded = 1; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } @@ -12184,7 +12182,6 @@ static void Cmd_forcerandomswitch(void) lastMonId = PARTY_SIZE / 2; } monsCount = PARTY_SIZE / 2; - minNeeded = 1; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } @@ -12195,7 +12192,6 @@ static void Cmd_forcerandomswitch(void) firstMonId = 0; lastMonId = PARTY_SIZE; monsCount = PARTY_SIZE; - minNeeded = 2; // since there are two opponents, it has to be a double battle } else { @@ -12210,7 +12206,6 @@ static void Cmd_forcerandomswitch(void) lastMonId = PARTY_SIZE / 2; } monsCount = PARTY_SIZE / 2; - minNeeded = 1; } battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; @@ -12220,7 +12215,6 @@ static void Cmd_forcerandomswitch(void) firstMonId = 0; lastMonId = PARTY_SIZE; monsCount = PARTY_SIZE; - minNeeded = 2; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } @@ -12229,7 +12223,6 @@ static void Cmd_forcerandomswitch(void) firstMonId = 0; lastMonId = PARTY_SIZE; monsCount = PARTY_SIZE; - minNeeded = 1; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; // there is only one pokemon out in single battles battler1PartyId = gBattlerPartyIndexes[gBattlerTarget]; } @@ -12238,13 +12231,15 @@ static void Cmd_forcerandomswitch(void) { if (GetMonData(&party[i], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&party[i], MON_DATA_IS_EGG) - && GetMonData(&party[i], MON_DATA_HP) != 0) + && GetMonData(&party[i], MON_DATA_HP) != 0 + && i != battler1PartyId + && i != battler2PartyId) { - validMons++; + validMons[validMonsCount++] = i; } } - if (!redCardForcedSwitch && validMons <= minNeeded) + if (validMonsCount == 0) { gBattlescriptCurrInstr = cmd->failInstr; } @@ -12252,19 +12247,7 @@ static void Cmd_forcerandomswitch(void) { *(gBattleStruct->battlerPartyIndexes + gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; gBattlescriptCurrInstr = BattleScript_RoarSuccessSwitch; - - do - { - i = Random() % monsCount; - i += firstMonId; - } - while (i == battler2PartyId - || i == battler1PartyId - || GetMonData(&party[i], MON_DATA_SPECIES) == SPECIES_NONE - || GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE - || GetMonData(&party[i], MON_DATA_HP) == 0); - - *(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i; + *(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = validMons[Random() % validMonsCount]; if (!IsMultiBattle()) SwitchPartyOrder(gBattlerTarget); diff --git a/test/move_effect_roar.c b/test/move_effect_roar.c new file mode 100644 index 000000000..2d4eadda8 --- /dev/null +++ b/test/move_effect_roar.c @@ -0,0 +1,70 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_ROAR].effect == EFFECT_ROAR); +} + +SINGLE_BATTLE_TEST("Roar switches the target with a random non-fainted replacement") +{ + PASSES_RANDOMLY(1, 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(player, MOVE_ROAR); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROAR, player); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +DOUBLE_BATTLE_TEST("Roar switches the target with a random non-battler, non-fainted replacement") +{ + PASSES_RANDOMLY(1, 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_ROAR, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROAR, playerLeft); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +SINGLE_BATTLE_TEST("Roar fails if no replacements") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_ROAR); } + } SCENE { + MESSAGE("Wobbuffet used Roar!"); + MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Roar fails if replacements fainted") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { HP(0); } + } WHEN { + TURN { MOVE(player, MOVE_ROAR); } + } SCENE { + MESSAGE("Wobbuffet used Roar!"); + MESSAGE("But it failed!"); + } +} From afe09e96532165c044848ace9a3a3ed034567041 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Sun, 19 Feb 2023 21:08:30 +0000 Subject: [PATCH 099/125] Test Dragon Tail Remove the "But it failed!" message if the foe cannot be switched. --- data/battle_scripts_1.s | 7 ++- include/battle_scripts.h | 1 - src/battle_script_commands.c | 2 +- test/move_effect_hit_switch_target.c | 72 ++++++++++++++++++++++++++++ 4 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 test/move_effect_hit_switch_target.c diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 6fa0cd7ad..53925b578 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -2128,9 +2128,9 @@ BattleScript_EffectHitSwitchTarget: moveendall jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted - tryhitswitchtarget BattleScript_EffectHitSwitchTargetMoveEnd -BattleScript_EffectHitSwitchTargetMoveEnd: - end + tryhitswitchtarget BattleScript_MoveEnd + forcerandomswitch BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_EffectClearSmog: setmoveeffect MOVE_EFFECT_CLEAR_SMOG @@ -3708,7 +3708,6 @@ BattleScript_EffectRoar:: accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed -BattleScript_ForceRandomSwitch:: forcerandomswitch BattleScript_ButItFailed BattleScript_EffectMultiHit:: diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 70d398e2a..d4e4d4b3c 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -293,7 +293,6 @@ extern const u8 BattleScript_WishMegaEvolution[]; extern const u8 BattleScript_MoveEffectRecoilWithStatus[]; extern const u8 BattleScript_EffectWithChance[]; extern const u8 BattleScript_MoveEffectClearSmog[]; -extern const u8 BattleScript_ForceRandomSwitch[]; extern const u8 BattleScript_SideStatusWoreOffReturn[]; extern const u8 BattleScript_MoveEffectSmackDown[]; extern const u8 BattleScript_MoveEffectFlameBurst[]; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index b4bafd215..fdd3d4f07 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -9792,7 +9792,7 @@ static void Cmd_various(void) && GetBattlerAbility(gBattlerTarget) != ABILITY_GUARD_DOG) { gBattleScripting.switchCase = B_SWITCH_HIT; - gBattlescriptCurrInstr = BattleScript_ForceRandomSwitch; + gBattlescriptCurrInstr = cmd->nextInstr; } else { diff --git a/test/move_effect_hit_switch_target.c b/test/move_effect_hit_switch_target.c new file mode 100644 index 000000000..9c50a4e4c --- /dev/null +++ b/test/move_effect_hit_switch_target.c @@ -0,0 +1,72 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_DRAGON_TAIL].effect == EFFECT_HIT_SWITCH_TARGET); + ASSUME(gBattleMoves[MOVE_LOCK_ON].effect == EFFECT_LOCK_ON); +} + +SINGLE_BATTLE_TEST("Dragon Tail switches the target with a random non-fainted replacement") +{ + KNOWN_FAILING; // Only 18/50. Waiting for an improved PASSES_RANDOMLY. + PASSES_RANDOMLY(90 * 1, 100 * 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(player, MOVE_DRAGON_TAIL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, player); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +DOUBLE_BATTLE_TEST("Dragon Tail switches the target with a random non-battler, non-fainted replacement") +{ + PASSES_RANDOMLY(90 * 1, 100 * 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_DRAGON_TAIL, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, playerLeft); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +SINGLE_BATTLE_TEST("Dragon Tail does not fail if no replacements") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_DRAGON_TAIL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, player); + NOT MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Dragon Tail does not fail if replacements fainted") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { HP(0); } + } WHEN { + TURN { MOVE(player, MOVE_DRAGON_TAIL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, player); + NOT MESSAGE("But it failed!"); + } +} From 29c64c82f329c45131c7e31e7e48ad69ae3fdb97 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Tue, 21 Feb 2023 10:44:58 +0000 Subject: [PATCH 100/125] Test Red Card Dragon Tail activates Red Card if the target does not switch. --- asm/macros/battle_script.inc | 4 + data/battle_scripts_1.s | 7 +- include/battle.h | 1 + include/constants/battle_script_commands.h | 1 + src/battle_script_commands.c | 10 +- test/hold_effect_red_card.c | 378 +++++++++++++++++++++ 6 files changed, 399 insertions(+), 2 deletions(-) create mode 100644 test/hold_effect_red_card.c diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 6c985e3cd..7c94f06ff 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -2247,3 +2247,7 @@ various \battler, VARIOUS_JUMP_IF_EMERGENCY_EXITED .4byte \jumpInstr .endm + + .macro hitswitchtargetfailed + various 0, VARIOUS_HIT_SWITCH_TARGET_FAILED + .endm diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 53925b578..239d22109 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -2129,7 +2129,12 @@ BattleScript_EffectHitSwitchTarget: jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted tryhitswitchtarget BattleScript_MoveEnd - forcerandomswitch BattleScript_MoveEnd + forcerandomswitch BattleScript_HitSwitchTargetForceRandomSwitchFailed + goto BattleScript_MoveEnd + +BattleScript_HitSwitchTargetForceRandomSwitchFailed: + hitswitchtargetfailed + setbyte sSWITCH_CASE, B_SWITCH_NORMAL goto BattleScript_MoveEnd BattleScript_EffectClearSmog: diff --git a/include/battle.h b/include/battle.h index 2c16887bf..c3281174d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -651,6 +651,7 @@ struct BattleStruct // When using a move which hits multiple opponents which is then bounced by a target, we need to make sure, the move hits both opponents, the one with bounce, and the one without. u8 attackerBeforeBounce:2; u8 beatUpSlot:3; + bool8 hitSwitchTargetFailed:1; u8 targetsDone[MAX_BATTLERS_COUNT]; // Each battler as a bit. u16 overwrittenAbilities[MAX_BATTLERS_COUNT]; // abilities overwritten during battle (keep separate from battle history in case of switching) bool8 allowedToChangeFormInWeather[PARTY_SIZE][2]; // For each party member and side, used by Ice Face. diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 9f18455a8..0b71c22db 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -258,6 +258,7 @@ #define VARIOUS_JUMP_IF_NO_VALID_TARGETS 166 #define VARIOUS_JUMP_IF_EMERGENCY_EXITED 167 #define VARIOUS_STORE_HEALING_WISH 168 +#define VARIOUS_HIT_SWITCH_TARGET_FAILED 169 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index fdd3d4f07..5667beb4a 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -5968,7 +5968,7 @@ static void Cmd_moveend(void) gBattleScripting.moveendState++; break; case MOVEEND_RED_CARD: - if (gBattleMoves[gCurrentMove].effect != EFFECT_HIT_SWITCH_TARGET + if ((gBattleMoves[gCurrentMove].effect != EFFECT_HIT_SWITCH_TARGET || gBattleStruct->hitSwitchTargetFailed) && IsBattlerAlive(gBattlerAttacker) && !TestSheerForceFlag(gBattlerAttacker, gCurrentMove) && GetBattlerAbility(gBattlerAttacker) != ABILITY_GUARD_DOG) @@ -6199,6 +6199,7 @@ static void Cmd_moveend(void) gBattleStruct->zmove.active = FALSE; gBattleStruct->zmove.toBeUsed[gBattlerAttacker] = MOVE_NONE; gBattleStruct->zmove.effect = EFFECT_HIT; + gBattleStruct->hitSwitchTargetFailed = FALSE; gBattleScripting.moveendState++; break; case MOVEEND_COUNT: @@ -11067,6 +11068,13 @@ static void Cmd_various(void) gBattleStruct->storedHealingWish |= gBitTable[gActiveBattler]; break; } + case VARIOUS_HIT_SWITCH_TARGET_FAILED: + { + VARIOUS_ARGS(); + gBattleStruct->hitSwitchTargetFailed = TRUE; + gBattlescriptCurrInstr = cmd->nextInstr; + return; + } } // End of switch (cmd->id) gBattlescriptCurrInstr = cmd->nextInstr; diff --git a/test/hold_effect_red_card.c b/test/hold_effect_red_card.c new file mode 100644 index 000000000..c32c489d5 --- /dev/null +++ b/test/hold_effect_red_card.c @@ -0,0 +1,378 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gItems[ITEM_RED_CARD].holdEffect == HOLD_EFFECT_RED_CARD); +} + +SINGLE_BATTLE_TEST("Red Card switches the attacker with a random non-fainted replacement") +{ + PASSES_RANDOMLY(1, 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +DOUBLE_BATTLE_TEST("Red Card switches the target with a random non-battler, non-fainted replacement") +{ + PASSES_RANDOMLY(1, 2); + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_BULBASAUR); + OPPONENT(SPECIES_CHARMANDER); + OPPONENT(SPECIES_SQUIRTLE) { HP(0); } + } WHEN { + TURN { MOVE(opponentLeft, MOVE_TACKLE, target: playerLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Foe Bulbasaur was dragged out!"); + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if holder faints") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(1); Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); SEND_OUT(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if target is behind a Substitute") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(player, MOVE_SUBSTITUTE); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card activates after the last hit of a multi-hit move") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_DOUBLE_KICK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_KICK, opponent); + HP_BAR(player); + HP_BAR(player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if no replacements") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if replacements fainted") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { HP(0); } + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if knocked off") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_KNOCK_OFF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if stolen by a move") +{ + u32 item; + bool32 activate; + PARAMETRIZE { item = ITEM_NONE; activate = FALSE; } + PARAMETRIZE { item = ITEM_POTION; activate = TRUE; } + ASSUME(gBattleMoves[MOVE_THIEF].effect == EFFECT_THIEF); + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET) { Item(item); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_THIEF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_THIEF, opponent); + if (activate) { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } else { + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if stolen by Magician") +{ + u32 item; + bool32 activate; + PARAMETRIZE { item = ITEM_NONE; activate = FALSE; } + PARAMETRIZE { item = ITEM_POTION; activate = TRUE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_FENNEKIN) { Ability(ABILITY_MAGICIAN); Item(item); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + if (activate) { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Fennekin!"); + } else { + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Fennekin!"); + } + } + } +} + +DOUBLE_BATTLE_TEST("Red Card activates for only the fastest target") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(3); Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT) { Speed(2); Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WYNAUT) { Speed(4); } + OPPONENT(SPECIES_UNOWN) { Speed(1); } + } WHEN { + TURN { + MOVE(opponentLeft, MOVE_ROCK_SLIDE); + MOVE(opponentRight, MOVE_TACKLE, target: playerRight); + } + } SCENE { + // Fastest target's Red Card activates. + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROCK_SLIDE, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Foe Unown was dragged out!"); + + // Slower target's Red Card still able to activate on other battler. + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight); + MESSAGE("Wynaut held up its Red Card against Foe Wynaut!"); + MESSAGE("Foe Wobbuffet was dragged out!"); + } +} + +DOUBLE_BATTLE_TEST("Red Card activates but fails if the attacker is rooted") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_UNOWN); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_INGRAIN); } + TURN { + MOVE(opponentLeft, MOVE_TACKLE, target: playerLeft); + MOVE(opponentRight, MOVE_TACKLE, target: playerLeft); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Foe Wobbuffet anchored itself with its roots!"); + + // Red Card already consumed so cannot activate. + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight); + MESSAGE("Wynaut held up its Red Card against Foe Wynaut!"); + } + } +} + +DOUBLE_BATTLE_TEST("Red Card activates but fails if the attacker has Suction Cups") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_OCTILLERY) { Ability(ABILITY_SUCTION_CUPS); } + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_UNOWN); + } WHEN { + TURN { + MOVE(opponentLeft, MOVE_TACKLE, target: playerLeft); + MOVE(opponentRight, MOVE_TACKLE, target: playerLeft); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); + MESSAGE("Wobbuffet held up its Red Card against Foe Octillery!"); + MESSAGE("Foe Octillery anchors itself with Suction Cups!"); + + // Red Card already consumed so cannot activate. + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight); + MESSAGE("Wynaut held up its Red Card against Foe Wynaut!"); + } + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if switched by Dragon Tail") +{ + bool32 hasWynaut, activate; + PARAMETRIZE { hasWynaut = TRUE; activate = FALSE; } + PARAMETRIZE { hasWynaut = FALSE; activate = TRUE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + if (hasWynaut) PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_DRAGON_TAIL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, opponent); + if (activate) { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } else { + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } + } + } +} + +SINGLE_BATTLE_TEST("Red Card activates and overrides U-turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_U_TURN); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + } +} + +SINGLE_BATTLE_TEST("Red Card does not activate if attacker's Sheer Force applied") +{ + u32 move; + bool32 activate; + PARAMETRIZE { move = MOVE_TACKLE; activate = TRUE; } + PARAMETRIZE { move = MOVE_STOMP; activate = FALSE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, move); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + if (activate) { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Tauros!"); + } else { + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet held up its Red Card against Foe Tauros!"); + } + } + } +} + +SINGLE_BATTLE_TEST("Red Card activates before Emergency Exit") +{ + GIVEN { + PLAYER(SPECIES_GOLISOPOD) { MaxHP(100); HP(51); Item(ITEM_RED_CARD); } + PLAYER(SPECIES_WIMPOD); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); SEND_OUT(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Golisopod held up its Red Card against Foe Wobbuffet!"); + ABILITY_POPUP(player, ABILITY_EMERGENCY_EXIT); + MESSAGE("Go! Wimpod!"); + } +} + +// SINGLE_BATTLE_TEST("Red Card activates but fails if the attacker has Dynamaxed") From 1e2eeb4d797aaba2324dfbaa41a283fa6ac9fa86 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 21 Feb 2023 16:26:49 +0100 Subject: [PATCH 101/125] fix wrong assumption --- test/ability_download.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/ability_download.c b/test/ability_download.c index 77d090a30..132c0eb5b 100644 --- a/test/ability_download.c +++ b/test/ability_download.c @@ -4,7 +4,7 @@ ASSUMPTIONS { ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_TRI_ATTACK].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TRI_ATTACK].split == SPLIT_SPECIAL); } SINGLE_BATTLE_TEST("Download raises Attack if player has lower Def than Sp.Def", s16 damage) From f3c6b647c089d75c53dbb26cf5cfccd5fade73ee Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Tue, 21 Feb 2023 15:30:42 +0000 Subject: [PATCH 102/125] Hydra fixes and improvements (#2718) * Build tools for check * Display PASSes when Hydra exits * Print buffered output at exit * Remove unused test summaries * Show SKIP if ASSUMPTIONS fails --- Makefile | 2 +- test/test.h | 1 - test/test_runner.c | 27 +++++++++------------------ tools/mgba-rom-test-hydra/main.c | 16 +++++++++++++++- 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 8e3ff2975..2b997fee5 100644 --- a/Makefile +++ b/Makefile @@ -464,7 +464,7 @@ LD_SCRIPT_TEST := ld_script_test.txt $(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT_TEST) > ld_script_test.ld -$(TESTELF): $(OBJ_DIR)/ld_script_test.ld $(OBJS) $(TEST_OBJS) libagbsyscall check-tools +$(TESTELF): $(OBJ_DIR)/ld_script_test.ld $(OBJS) $(TEST_OBJS) libagbsyscall tools check-tools @echo "cd $(OBJ_DIR) && $(LD) -T ld_script_test.ld -o ../../$@ " @cd $(OBJ_DIR) && $(LD) $(TESTLDFLAGS) -T ld_script_test.ld -o ../../$@ $(OBJS_REL) $(TEST_OBJS_REL) $(LIB) $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent diff --git a/test/test.h b/test/test.h index cbcf11717..c69a4fa92 100644 --- a/test/test.h +++ b/test/test.h @@ -39,7 +39,6 @@ struct TestRunnerState u8 exitCode; s32 tests; s32 passes; - s32 skips; const char *skipFilename; const struct Test *test; u32 processCosts[MAX_PROCESSES]; diff --git a/test/test_runner.c b/test/test_runner.c index 3cb1f7c21..0be163431 100644 --- a/test/test_runner.c +++ b/test/test_runner.c @@ -60,7 +60,6 @@ void CB2_TestRunner(void) gTestRunnerState.exitCode = 0; gTestRunnerState.tests = 0; gTestRunnerState.passes = 0; - gTestRunnerState.skips = 0; gTestRunnerState.skipFilename = NULL; gTestRunnerState.test = __start_tests - 1; break; @@ -70,20 +69,15 @@ void CB2_TestRunner(void) if (gTestRunnerState.test == __stop_tests) { - MgbaPrintf_("%s%d/%d PASSED\e[0m", gTestRunnerState.exitCode == 0 ? "\e[32m" : "\e[31m", gTestRunnerState.passes, gTestRunnerState.tests); - if (gTestRunnerState.skips) - { - if (gTestRunnerSkipIsFail) - MgbaPrintf_("\e[31m%d SKIPPED\e[0m", gTestRunnerState.skips); - else - MgbaPrintf_("%d SKIPPED", gTestRunnerState.skips); - } gTestRunnerState.state = STATE_EXIT; return; } - if (!PrefixMatch(gTestRunnerArgv, gTestRunnerState.test->name)) + if (gTestRunnerState.test->runner != &gAssumptionsRunner + && !PrefixMatch(gTestRunnerArgv, gTestRunnerState.test->name)) + { return; + } // Greedily assign tests to processes based on estimated cost. // TODO: Make processCosts a min heap. @@ -111,6 +105,7 @@ void CB2_TestRunner(void) return; } + MgbaPrintf_(":N%s", gTestRunnerState.test->name); gTestRunnerState.state = STATE_REPORT_RESULT; gTestRunnerState.result = TEST_RESULT_PASS; gTestRunnerState.expectedResult = TEST_RESULT_PASS; @@ -130,7 +125,6 @@ void CB2_TestRunner(void) } else { - MgbaPrintf_(":N%s", gTestRunnerState.test->name); if (gTestRunnerState.test->runner->setUp) gTestRunnerState.test->runner->setUp(gTestRunnerState.test->data); gTestRunnerState.test->runner->run(gTestRunnerState.test->data); @@ -150,12 +144,6 @@ void CB2_TestRunner(void) if (gTestRunnerState.result != TEST_RESULT_PASS) gTestRunnerState.skipFilename = gTestRunnerState.test->filename; } - else if (gTestRunnerState.result == TEST_RESULT_SKIP) - { - gTestRunnerState.skips++; - if (gTestRunnerSkipIsFail) - gTestRunnerState.exitCode = 1; - } else { const char *color; @@ -206,7 +194,10 @@ void CB2_TestRunner(void) default: result = "UNKNOWN"; break; } - MgbaPrintf_(":R%s%s\e[0m", color, result); + if (gTestRunnerState.expectedResult == gTestRunnerState.result) + MgbaPrintf_(":P%s%s\e[0m", color, result); + else + MgbaPrintf_(":F%s%s\e[0m", color, result); } break; diff --git a/tools/mgba-rom-test-hydra/main.c b/tools/mgba-rom-test-hydra/main.c index 5dfc99517..4ce9b09bd 100644 --- a/tools/mgba-rom-test-hydra/main.c +++ b/tools/mgba-rom-test-hydra/main.c @@ -38,6 +38,8 @@ struct Runner size_t output_buffer_size; size_t output_buffer_capacity; char *output_buffer; + int passes; + int results; }; static unsigned nrunners = 0; @@ -72,7 +74,11 @@ static void handle_read(struct Runner *runner) runner->test_name[eol - soc - 1] = '\0'; break; - case 'R': + case 'P': + case 'F': + if (soc[1] == 'P') + runner->passes++; + runner->results++; soc += 2; fprintf(stdout, "%s: ", runner->test_name); fwrite(soc, 1, eol - soc, stdout); @@ -404,6 +410,8 @@ int main(int argc, char *argv[]) // Reap test runners and collate exit codes. int exit_code = 0; + int passes = 0; + int results = 0; for (int i = 0; i < nrunners; i++) { int wstatus; @@ -412,8 +420,14 @@ int main(int argc, char *argv[]) perror("waitpid runners[i] failed"); exit(2); } + if (runners[i].output_buffer_size > 0) + fwrite(runners[i].output_buffer, 1, runners[i].output_buffer_size, stdout); if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) > exit_code) exit_code = WEXITSTATUS(wstatus); + passes += runners[i].passes; + results += runners[i].results; } + fprintf(stdout, "%d/%d \e[32mPASS\e[0med\n", passes, results); + fflush(stdout); return exit_code; } From d73ab0246f0e0ccb24861dae1d3c9ec5a71b9f51 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 21 Feb 2023 23:50:29 +0100 Subject: [PATCH 103/125] Fix Explosion + Galvanize + Volt Absorb and Mind Blown (#2688) * Fix Explosion and Mind Blown * Use battler ability in jumpifabilitypresent --- asm/macros/battle_script.inc | 6 ++ data/battle_scripts_1.s | 69 ++++++++++++--------- src/battle_script_commands.c | 33 ++++++---- test/ability_damp.c | 20 +++++++ test/ability_volt_absorb.c | 28 ++++++++- test/move_effect_explosion.c | 46 +++++++++++++- test/move_effect_mind_blown.c | 109 ++++++++++++++++++++++++++++++++++ 7 files changed, 268 insertions(+), 43 deletions(-) create mode 100644 test/move_effect_mind_blown.c diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 7c94f06ff..573ffff26 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1317,6 +1317,12 @@ .2byte \holdEffect .4byte \jumpInstr .endm + + .macro jumpifmorethanhalfHP battler:req, jumpInstr:req + callnative BS_JumpIfMoreThanHalfHP + .byte \battler + .4byte \jumpInstr + .endm @ various command changed to more readable macros .macro cancelmultiturnmoves battler:req diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 239d22109..95d774b20 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3417,27 +3417,20 @@ BattleScript_EffectFreezeHit:: BattleScript_EffectParalyzeHit:: setmoveeffect MOVE_EFFECT_PARALYSIS goto BattleScript_EffectHit - -BattleScript_EffectExplosion:: - attackcanceler - attackstring - ppreduce -@ Below jumps to BattleScript_DampStopsExplosion if it fails (only way it can) - tryexplosion - setatkhptozero - waitstate - jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop + +BattleScript_EffectExplosion_AnimDmgRet: + jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionAnimRet call BattleScript_PreserveMissedBitDoMoveAnim - goto BattleScript_ExplosionLoop -BattleScript_ExplosionDoAnimStartLoop: + goto BattleScript_ExplosionDmgRet +BattleScript_ExplosionAnimRet: attackanimation waitanimation -BattleScript_ExplosionLoop: +BattleScript_ExplosionDmgRet: movevaluescleanup critcalc damagecalc adjustdamage - accuracycheck BattleScript_ExplosionMissed, ACC_CURR_MOVE + accuracycheck BattleScript_ExplosionMissedRet, ACC_CURR_MOVE effectivenesssound hitanimation BS_TARGET waitstate @@ -3448,17 +3441,25 @@ BattleScript_ExplosionLoop: resultmessage waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_ExplosionLoop - tryfaintmon BS_ATTACKER - moveendcase MOVEEND_CLEAR_BITS - end -BattleScript_ExplosionMissed: +BattleScript_ExplosionAnimEndRet_Return: + return +BattleScript_ExplosionMissedRet: effectivenesssound resultmessage waitmessage B_WAIT_TIME_LONG - moveendto MOVEEND_NEXT_TARGET - jumpifnexttargetvalid BattleScript_ExplosionLoop + goto BattleScript_ExplosionAnimEndRet_Return + +BattleScript_EffectExplosion:: + attackcanceler + attackstring + ppreduce +@ Below jumps to BattleScript_DampStopsExplosion if it fails (only way it can) + tryexplosion + waitstate +BattleScript_EffectExplosion_AnimDmgFaintAttacker: + call BattleScript_EffectExplosion_AnimDmgRet + moveendall + setatkhptozero tryfaintmon BS_ATTACKER end @@ -3466,14 +3467,28 @@ BattleScript_EffectMindBlown:: attackcanceler attackstring ppreduce - tryexplosion + jumpifbyte CMP_GREATER_THAN, sB_ANIM_TARGETS_HIT, 0, BattleScript_EffectMindBlown_NoHpLoss + jumpifabilitypresent ABILITY_DAMP, BattleScript_MindBlownDamp + jumpifmorethanhalfHP BS_ATTACKER, BattleScript_EffectMindBlown_HpDown + setbyte sMULTIHIT_EFFECT, 0 @ Note to faint the attacker + instanthpdrop BS_ATTACKER + waitstate + goto BattleScript_EffectExplosion_AnimDmgFaintAttacker +BattleScript_EffectMindBlown_NoHpLoss: + jumpifbyte CMP_EQUAL, sMULTIHIT_EFFECT, 0, BattleScript_EffectExplosion_AnimDmgFaintAttacker + goto BattleScript_EffectMindBlown_AnimDmgNoFaint +BattleScript_MindBlownDamp: + copybyte gBattlerTarget, gBattlerAbility + goto BattleScript_DampStopsExplosion +BattleScript_EffectMindBlown_HpDown: + setbyte sMULTIHIT_EFFECT, 1 @ Note to not faint the attacker dmg_1_2_attackerhp healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER waitstate - jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionDoAnimStartLoop - call BattleScript_PreserveMissedBitDoMoveAnim - goto BattleScript_ExplosionLoop +BattleScript_EffectMindBlown_AnimDmgNoFaint: + call BattleScript_EffectExplosion_AnimDmgRet + goto BattleScript_MoveEnd BattleScript_PreserveMissedBitDoMoveAnim: bichalfword gMoveResultFlags, MOVE_RESULT_MISSED @@ -8360,9 +8375,9 @@ BattleScript_AbilityRaisesDefenderStat:: BattleScript_AbilityPopUp: .if B_ABILITY_POP_UP == TRUE showabilitypopup BS_ABILITY_BATTLER - recordability BS_ABILITY_BATTLER pause 40 .endif + recordability BS_ABILITY_BATTLER sethword sABILITY_OVERWRITE, 0 return diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 5667beb4a..19d0b3afb 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -5017,10 +5017,17 @@ static void Cmd_jumpifabilitypresent(void) { CMD_ARGS(u16 ability, const u8 *jumpInstr); - if (IsAbilityOnField(cmd->ability)) + u16 ability = cmd->ability; + u32 abilityBattler = IsAbilityOnField(ability); + if (abilityBattler) + { + gBattlerAbility = abilityBattler - 1; gBattlescriptCurrInstr = cmd->jumpInstr; + } else + { gBattlescriptCurrInstr = cmd->nextInstr; + } } static void Cmd_endselectionscript(void) @@ -11183,14 +11190,15 @@ static void Cmd_tryexplosion(void) { CMD_ARGS(); + u32 dampBattler; if (gBattleControllerExecFlags) return; - if ((gBattlerTarget = IsAbilityOnField(ABILITY_DAMP))) + if ((dampBattler = IsAbilityOnField(ABILITY_DAMP))) { // Failed, a battler has Damp gLastUsedAbility = ABILITY_DAMP; - RecordAbilityBattle(--gBattlerTarget, ABILITY_DAMP); + gBattlerTarget = --dampBattler; gBattlescriptCurrInstr = BattleScript_DampStopsExplosion; return; } @@ -11200,14 +11208,6 @@ static void Cmd_tryexplosion(void) BtlController_EmitHealthBarUpdate(BUFFER_A, INSTANT_HP_BAR_DROP); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr = cmd->nextInstr; - - for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++) - { - if (gBattlerTarget == gBattlerAttacker) - continue; - if (IsBattlerAlive(gBattlerTarget)) - break; - } } static void Cmd_setatkhptozero(void) @@ -16033,6 +16033,17 @@ void BS_CalcMetalBurstDmg(void) } } +void BS_JumpIfMoreThanHalfHP(void) +{ + NATIVE_ARGS(u8 battler, const u8 *jumpInstr); + + u8 battler = GetBattlerForBattleScript(cmd->battler); + if (gBattleMons[battler].hp > (gBattleMons[battler].maxHP + 1) / 2) + gBattlescriptCurrInstr = cmd->jumpInstr; + else + gBattlescriptCurrInstr = cmd->nextInstr; +} + void BS_JumpIfHoldEffect(void) { u8 battler = gBattlescriptCurrInstr[5]; diff --git a/test/ability_damp.c b/test/ability_damp.c index 33d1ae466..c473660f5 100644 --- a/test/ability_damp.c +++ b/test/ability_damp.c @@ -19,6 +19,26 @@ SINGLE_BATTLE_TEST("Damp prevents explosion-like moves from enemies") } } +DOUBLE_BATTLE_TEST("Damp prevents explosion-like moves from enemies in a double battle") +{ + u32 move; + PARAMETRIZE { move = MOVE_EXPLOSION; } + PARAMETRIZE { move = MOVE_SELF_DESTRUCT; } + PARAMETRIZE { move = MOVE_MIND_BLOWN; } + PARAMETRIZE { move = MOVE_MISTY_EXPLOSION; } + GIVEN { + PLAYER(SPECIES_PARAS) { Ability(ABILITY_DAMP); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentLeft, move); } + } SCENE { + ABILITY_POPUP(playerLeft, ABILITY_DAMP); + NONE_OF { HP_BAR(playerLeft); HP_BAR(opponentLeft); HP_BAR(playerRight); HP_BAR(opponentRight); } + } +} + SINGLE_BATTLE_TEST("Damp prevents explosion-like moves from self") { u32 move; diff --git a/test/ability_volt_absorb.c b/test/ability_volt_absorb.c index f485f6557..bef35e2b4 100644 --- a/test/ability_volt_absorb.c +++ b/test/ability_volt_absorb.c @@ -63,6 +63,30 @@ SINGLE_BATTLE_TEST("Volt Absorb is only triggered once on multi strike moves") } } +DOUBLE_BATTLE_TEST("Volt Absorb does not stop Electric Typed Explosion from damaging other pokemon", s16 damage1, s16 damage2) // Fixed issue #1961 +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_EXPLOSION].effect == EFFECT_EXPLOSION); + ASSUME(gBattleMoves[MOVE_EXPLOSION].type == TYPE_NORMAL); + PLAYER(SPECIES_JOLTEON) { Ability(ABILITY_VOLT_ABSORB); HP(1); MaxHP(TEST_MAX_HP); } + PLAYER(SPECIES_ABRA); + OPPONENT(SPECIES_GRAVELER_ALOLAN) { Ability(ABILITY_GALVANIZE); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_EXPLOSION); } + } SCENE { + ABILITY_POPUP(playerLeft, ABILITY_VOLT_ABSORB); + HP_BAR(playerLeft, hp: TEST_MAX_HP / 4 + 1); + MESSAGE("Jolteon restored HP using its Volt Absorb!"); + HP_BAR(playerRight, captureDamage: &results->damage1); + HP_BAR(opponentRight, captureDamage: &results->damage2); + } + FINALLY { + EXPECT_NE(results[0].damage1, 0); + EXPECT_NE(results[0].damage2, 0); + } +} + SINGLE_BATTLE_TEST("Volt Absorb prevents Cell Battery from activating") { GIVEN { @@ -75,11 +99,11 @@ SINGLE_BATTLE_TEST("Volt Absorb prevents Cell Battery from activating") ABILITY_POPUP(player, ABILITY_VOLT_ABSORB); HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); MESSAGE("Jolteon restored HP using its Volt Absorb!"); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Using Cell Battery, the attack of Jolteon rose!"); } - + } } diff --git a/test/move_effect_explosion.c b/test/move_effect_explosion.c index 872f3f709..41e74044b 100644 --- a/test/move_effect_explosion.c +++ b/test/move_effect_explosion.c @@ -8,7 +8,6 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Explosion causes the user to faint") { - u16 remainingHP; GIVEN { PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); @@ -17,12 +16,29 @@ SINGLE_BATTLE_TEST("Explosion causes the user to faint") } SCENE { HP_BAR(player, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); + MESSAGE("Wobbuffet fainted!"); + } +} + +SINGLE_BATTLE_TEST("Explosion causes the user & the target to faint") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_EXPLOSION); } + } SCENE { + HP_BAR(player, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); + HP_BAR(opponent, hp: 0); + MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wobbuffet fainted!"); } } SINGLE_BATTLE_TEST("Explosion causes the user to faint even if it misses") { - u16 remainingHP; GIVEN { PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); @@ -31,12 +47,12 @@ SINGLE_BATTLE_TEST("Explosion causes the user to faint even if it misses") } SCENE { HP_BAR(player, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); + MESSAGE("Wobbuffet fainted!"); } } SINGLE_BATTLE_TEST("Explosion causes the user to faint even if it has no effect") { - u16 remainingHP; GIVEN { ASSUME(gBattleMoves[MOVE_EXPLOSION].type == TYPE_NORMAL); ASSUME(gSpeciesInfo[SPECIES_GASTLY].types[0] == TYPE_GHOST); @@ -49,5 +65,29 @@ SINGLE_BATTLE_TEST("Explosion causes the user to faint even if it has no effect" ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); MESSAGE("It doesn't affect Foe Gastly…"); NOT HP_BAR(opponent); + MESSAGE("Wobbuffet fainted!"); + } +} + +DOUBLE_BATTLE_TEST("Explosion causes everyone to faint in a double battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT) { HP(1); } + OPPONENT(SPECIES_ABRA) { HP(1); } + OPPONENT(SPECIES_KADABRA) { HP(1); } + OPPONENT(SPECIES_KADABRA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_EXPLOSION); } + } SCENE { + HP_BAR(playerLeft, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); + HP_BAR(opponentLeft, hp: 0); + MESSAGE("Foe Abra fainted!"); + HP_BAR(playerRight, hp: 0); + MESSAGE("Wynaut fainted!"); + HP_BAR(opponentRight, hp: 0); + MESSAGE("Foe Kadabra fainted!"); + MESSAGE("Wobbuffet fainted!"); } } diff --git a/test/move_effect_mind_blown.c b/test/move_effect_mind_blown.c new file mode 100644 index 000000000..6b053cfb5 --- /dev/null +++ b/test/move_effect_mind_blown.c @@ -0,0 +1,109 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_MIND_BLOWN].effect == EFFECT_MIND_BLOWN); +} + +#define HP_TEST (400) + +SINGLE_BATTLE_TEST("Mind Blown makes the user lose 1/2 of its HP") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST); MaxHP(HP_TEST); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_MIND_BLOWN); } + } SCENE { + HP_BAR(player, hp: HP_TEST / 2); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, player); + NOT MESSAGE("Wobbuffet fainted!"); // Wobb had more than 1/2 of its HP, so it can't faint. + } +} + +DOUBLE_BATTLE_TEST("Mind Blown makes the user lose 1/2 of its HP in a double battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST); MaxHP(HP_TEST); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_MIND_BLOWN); } + } SCENE { + HP_BAR(playerLeft, hp: HP_TEST / 2); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, playerLeft); + NOT MESSAGE("Wobbuffet fainted!"); // Wobb had more than 1/2 of its HP, so it can't faint. + } +} + +SINGLE_BATTLE_TEST("Mind Blown causes the user to faint when below 1/2 of its HP") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST / 2); MaxHP(HP_TEST); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_MIND_BLOWN); } + } SCENE { + HP_BAR(player, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, player); + MESSAGE("Wobbuffet fainted!"); + } +} + +DOUBLE_BATTLE_TEST("Mind Blown causes the user to faint when below 1/2 of its HP in a double battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST / 2); MaxHP(HP_TEST); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_MIND_BLOWN);} + } SCENE { + HP_BAR(playerLeft, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, playerLeft); + MESSAGE("Wobbuffet fainted!"); + } +} + +SINGLE_BATTLE_TEST("Mind Blown causes the user & the target to faint when below 1/2 of its HP") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST / 2) ; MaxHP(HP_TEST); } + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_MIND_BLOWN);} + } SCENE { + HP_BAR(player, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, player); + HP_BAR(opponent, hp: 0); + MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wobbuffet fainted!"); + } +} + +DOUBLE_BATTLE_TEST("Mind Blown causes everyone to faint in a double battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(HP_TEST / 2); MaxHP(HP_TEST); } + PLAYER(SPECIES_WYNAUT) { HP(1); } + OPPONENT(SPECIES_ABRA) { HP(1); } + OPPONENT(SPECIES_KADABRA) { HP(1); } + OPPONENT(SPECIES_KADABRA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_MIND_BLOWN, criticalHit: FALSE); } + } SCENE { + HP_BAR(playerLeft, hp: 0); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, playerLeft); + HP_BAR(opponentLeft, hp: 0); + MESSAGE("Foe Abra fainted!"); + HP_BAR(playerRight, hp: 0); + MESSAGE("Wynaut fainted!"); + HP_BAR(opponentRight, hp: 0); + MESSAGE("Foe Kadabra fainted!"); + MESSAGE("Wobbuffet fainted!"); + } +} From bca47a0891a7e69781425cb7b30d3573dee88aeb Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 22 Feb 2023 09:17:23 +0100 Subject: [PATCH 104/125] Update src/battle_script_commands.c Co-authored-by: LOuroboros --- src/battle_script_commands.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index ce9ea50f7..344c5091b 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6914,7 +6914,7 @@ bool32 ShouldPostponeSwitchInAbilities(u32 battlerId) { bool32 aliveOpposing1 = IsBattlerAlive(BATTLE_OPPOSITE(battlerId)); bool32 aliveOpposing2 = IsBattlerAlive(BATTLE_PARTNER(BATTLE_OPPOSITE(battlerId))); - // No pokemon on opposing side - postopone. + // No pokemon on opposing side - postpone. if (!aliveOpposing1 && !aliveOpposing2) return TRUE; From 31138455ded2fd6d711777b4ee19cadd5245e1b2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 22 Feb 2023 09:28:12 +0100 Subject: [PATCH 105/125] remove unneeded VARIOUS_JUMP_IF_NO_VALID_TARGETS --- asm/macros/battle_script.inc | 5 ----- data/battle_scripts_1.s | 1 - include/constants/battle_script_commands.h | 7 +++---- src/battle_script_commands.c | 16 ---------------- 4 files changed, 3 insertions(+), 26 deletions(-) diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 7c94f06ff..03a4d6222 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -2049,11 +2049,6 @@ various \battler, VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES .endm - .macro jumpifnovalidtargets jumpInstr:req - various BS_ATTACKER, VARIOUS_JUMP_IF_NO_VALID_TARGETS - .4byte \jumpInstr - .endm - @ helpful macros .macro setstatchanger stat:req, stages:req, down:req setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7 diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 239d22109..036d662e8 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -8573,7 +8573,6 @@ BattleScript_TryAdrenalineOrbRet: return BattleScript_IntimidateActivates:: - jumpifnovalidtargets BattleScript_IntimidateEnd showabilitypopup BS_ATTACKER pause B_WAIT_TIME_LONG destroyabilitypopup diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 0b71c22db..9699a2921 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -255,10 +255,9 @@ #define VARIOUS_TRY_WIND_RIDER_POWER 163 #define VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES 164 #define VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES 165 -#define VARIOUS_JUMP_IF_NO_VALID_TARGETS 166 -#define VARIOUS_JUMP_IF_EMERGENCY_EXITED 167 -#define VARIOUS_STORE_HEALING_WISH 168 -#define VARIOUS_HIT_SWITCH_TARGET_FAILED 169 +#define VARIOUS_JUMP_IF_EMERGENCY_EXITED 166 +#define VARIOUS_STORE_HEALING_WISH 167 +#define VARIOUS_HIT_SWITCH_TARGET_FAILED 168 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 344c5091b..e0f0116ff 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -11068,22 +11068,6 @@ static void Cmd_various(void) AbilityBattleEffects(ABILITYEFFECT_ON_TERRAIN, gActiveBattler, 0, 0, 0); return; } - case VARIOUS_JUMP_IF_NO_VALID_TARGETS: - { - VARIOUS_ARGS(const u8 *jumpInstr); - u32 count = 0; - - for (i = 0; i < gBattlersCount; i++) - { - if (GetBattlerSide(i) != GetBattlerSide(gBattlerAttacker) && IsBattlerAlive(i)) - count++; - } - if (count == 0) - gBattlescriptCurrInstr = cmd->jumpInstr; - else - gBattlescriptCurrInstr = cmd->nextInstr; - return; - } case VARIOUS_JUMP_IF_EMERGENCY_EXITED: { VARIOUS_ARGS(const u8 *jumpInstr); From e0b76e98ff319901d1316ad9305620dbd57d56ed Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 22 Feb 2023 14:55:34 +0100 Subject: [PATCH 106/125] Add MOVE_SHELL_TRAP Effect (#2716) * implemented Shell Trap Co-authored-by: AgustinGDLV --- asm/macros/battle_script.inc | 5 + data/battle_anim_scripts.s | 144 +++++++++--------- data/battle_scripts_1.s | 18 +++ include/battle.h | 1 + include/battle_scripts.h | 1 + include/constants/battle_move_effects.h | 3 +- include/constants/battle_script_commands.h | 1 + include/constants/battle_string_ids.h | 4 +- src/battle_main.c | 3 + src/battle_message.c | 4 + src/battle_script_commands.c | 87 ++++++++--- src/battle_util.c | 3 +- src/data/battle_moves.h | 2 +- test/move_effect_shell_trap.c | 168 +++++++++++++++++++++ 14 files changed, 344 insertions(+), 100 deletions(-) create mode 100644 test/move_effect_shell_trap.c diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 5c71cef70..66c60a7cf 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -2249,6 +2249,11 @@ .4byte \jumpInstr .endm + .macro jumpifshelltrap battler:req, ptr:req + various \battler, VARIOUS_JUMP_IF_SHELL_TRAP + .4byte \ptr + .endm + .macro hitswitchtargetfailed various 0, VARIOUS_HIT_SWITCH_TARGET_FAILED .endm diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 71bd93d70..75a831a33 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -12036,168 +12036,168 @@ ShellTrapUnleash: monbg ANIM_TARGET waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 delay 0x6 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapYellowImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x0 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x0 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x4 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x4 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x8 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x8 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0xc - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0xc + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x10 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x10 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x14 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x14 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - launchtemplate gFireSpiralOutwardSpriteTemplate 0x3 0x4 0x0 0x0 0x38 0x18 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x18 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - launchtemplate gShellTrapRedImpactTemplate 0x2 0x4 0x0 0x0 0x0 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 waitforvisualfinish call ShellTrapFireLaunch1 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x38 0xfffc 0x3 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0xfffc 0x5 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 delay 0x3 call ShellTrapFireLaunch2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 waitforvisualfinish clearmonbg ANIM_TARGET end ShellTrapFireLaunch1: - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x38 0xfffc 0x3 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0xfffc 0x5 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xf 0x0 0xf 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xf, 0x0, 0xf, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0x4, 0x4, 0x1 delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x14 0x0 0x14 0x38 0x4 0x4 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x14, 0x0, 0x14, 0x38, 0x4, 0x4, 0x1 delay 0x3 return ShellTrapFireLaunch2: - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x0 0x0 0x0 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xfff6 0x0 0xfff6 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xa 0x0 0xa 0x38 0xfffc 0x3 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0xfffc 0x5 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xf 0x0 0xf 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xf, 0x0, 0xf, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0xffec 0x0 0xffec 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - launchtemplate gShellTrapFireHitsTemplate 0x28 0x8 0x0 0x14 0x0 0x14 0x38 0x4 0x4 0x1 - launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_TARGET 0x0003 0x0000 0x0006 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x14, 0x0, 0x14, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 return diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 8ed23a922..5bf5f52b0 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -417,6 +417,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectVictoryDance @ EFFECT_VICTORY_DANCE .4byte BattleScript_EffectTeatime @ EFFECT_TEATIME .4byte BattleScript_EffectAttackUpUserAlly @ EFFECT_ATTACK_UP_USER_ALLY + .4byte BattleScript_EffectShellTrap @ EFFECT_SHELL_TRAP BattleScript_EffectAttackUpUserAlly: jumpifnoally BS_ATTACKER, BattleScript_EffectAttackUp @@ -557,6 +558,23 @@ BattleScript_AffectionBasedStatusHeal_Continue: waitstate end2 +BattleScript_ShellTrapSetUp:: + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + playanimation BS_ATTACKER, B_ANIM_SHELL_TRAP_SETUP, NULL + printstring STRINGID_PREPARESHELLTRAP + waitmessage B_WAIT_TIME_LONG + end2 + +BattleScript_EffectShellTrap:: + attackcanceler + jumpifshelltrap BS_ATTACKER, BattleScript_HitFromAccCheck + jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_MoveEnd + ppreduce + printstring STRINGID_SHELLTRAPDIDNTWORK + waitmessage B_WAIT_TIME_LONG + goto BattleScript_MoveEnd + BattleScript_EffectSteelBeam:: attackcanceler attackstring diff --git a/include/battle.h b/include/battle.h index e17733823..48c283ab4 100644 --- a/include/battle.h +++ b/include/battle.h @@ -143,6 +143,7 @@ struct ProtectStruct u16 quickDraw:1; u16 beakBlastCharge:1; u16 quash:1; + u16 shellTrap:1; u16 silkTrapped:1; u32 physicalDmg; u32 specialDmg; diff --git a/include/battle_scripts.h b/include/battle_scripts.h index d4e4d4b3c..7904f5dc1 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -453,6 +453,7 @@ extern const u8 BattleScript_BattlerFormChangeWithStringEnd3[]; extern const u8 BattleScript_DampPreventsAftermath[]; extern const u8 BattleScript_HealingWishActivates[]; extern const u8 BattleScript_LunarDanceActivates[]; +extern const u8 BattleScript_ShellTrapSetUp[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index beab88151..061271dd5 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -398,7 +398,8 @@ #define EFFECT_VICTORY_DANCE 392 #define EFFECT_TEATIME 393 #define EFFECT_ATTACK_UP_USER_ALLY 394 // Howl 8th Gen +#define EFFECT_SHELL_TRAP 395 -#define NUM_BATTLE_MOVE_EFFECTS 395 +#define NUM_BATTLE_MOVE_EFFECTS 396 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 9699a2921..26064bcfb 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -258,6 +258,7 @@ #define VARIOUS_JUMP_IF_EMERGENCY_EXITED 166 #define VARIOUS_STORE_HEALING_WISH 167 #define VARIOUS_HIT_SWITCH_TARGET_FAILED 168 +#define VARIOUS_JUMP_IF_SHELL_TRAP 169 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 3f8853024..e561a9cb9 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -639,8 +639,10 @@ #define STRINGID_ABILITYWEAKENEDFSURROUNDINGMONSSTAT 637 #define STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN 638 #define STRINGID_PKMNSABILITYPREVENTSABILITY 639 +#define STRINGID_PREPARESHELLTRAP 640 +#define STRINGID_SHELLTRAPDIDNTWORK 641 -#define BATTLESTRINGS_COUNT 640 +#define BATTLESTRINGS_COUNT 642 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, diff --git a/src/battle_main.c b/src/battle_main.c index b23d8af55..6588d3c5e 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4954,6 +4954,9 @@ static void CheckChosenMoveForEffectsBeforeTurnStarts(void) case MOVE_BEAK_BLAST: BattleScriptExecute(BattleScript_BeakBlastSetUp); return; + case MOVE_SHELL_TRAP: + BattleScriptExecute(BattleScript_ShellTrapSetUp); + return; } } } diff --git a/src/battle_message.c b/src/battle_message.c index 2b8005f64..ec2527d84 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -774,6 +774,8 @@ static const u8 sText_StatWasHeightened[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s static const u8 sText_ElectricTerrainActivatedAbility[] = _("The Electric Terrain activated\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ABILITY}!"); static const u8 sText_AbilityWeakenedSurroundingMonsStat[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\nweakened the {B_BUFF1} of\lall surrounding Pokémon!\p"); static const u8 sText_AttackerGainedStrengthFromTheFallen[] = _("{B_ATK_NAME_WITH_PREFIX} gained strength\nfrom the fallen!"); +static const u8 sText_PrepareShellTrap[] = _("{B_ATK_NAME_WITH_PREFIX} set a shell trap!"); +static const u8 sText_ShellTrapDidntWork[] = _("{B_ATK_NAME_WITH_PREFIX}'s shell trap didn't work!"); const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = { @@ -800,6 +802,8 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_ZMOVEHPTRAP - BATTLESTRINGS_TABLE_START] = sText_ZMoveHpSwitchInTrap, [STRINGID_PLAYERLOSTTOENEMYTRAINER - BATTLESTRINGS_TABLE_START] = sText_PlayerLostToEnemyTrainer, [STRINGID_PLAYERPAIDPRIZEMONEY - BATTLESTRINGS_TABLE_START] = sText_PlayerPaidPrizeMoney, + [STRINGID_SHELLTRAPDIDNTWORK - BATTLESTRINGS_TABLE_START] = sText_ShellTrapDidntWork, + [STRINGID_PREPARESHELLTRAP - BATTLESTRINGS_TABLE_START] = sText_PrepareShellTrap, [STRINGID_COURTCHANGE - BATTLESTRINGS_TABLE_START] = sText_CourtChange, [STRINGID_HEATUPBEAK - BATTLESTRINGS_TABLE_START] = sText_HeatingUpBeak, [STRINGID_METEORBEAMCHARGING - BATTLESTRINGS_TABLE_START] = sText_MeteorBeamCharging, diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 1d6ab5fae..3826a4751 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -350,6 +350,7 @@ static bool32 CriticalCapture(u32 odds); static void BestowItem(u32 battlerAtk, u32 battlerDef); static bool8 IsFinalStrikeEffect(u16 move); static void TryUpdateRoundTurnOrder(void); +static bool32 ChangeOrderTargetAfterAttacker(void); static void Cmd_attackcanceler(void); static void Cmd_accuracycheck(void); @@ -5732,6 +5733,22 @@ static void Cmd_moveend(void) else gBattleStruct->lastMoveFailed &= ~(gBitTable[gBattlerAttacker]); + // Set ShellTrap to activate after the attacker's turn if target was hit by a physical move. + if (gBattleMoves[gChosenMoveByBattler[gBattlerTarget]].effect == EFFECT_SHELL_TRAP + && gBattlerTarget != gBattlerAttacker + && GetBattlerSide(gBattlerTarget) != GetBattlerSide(gBattlerAttacker) + && gProtectStructs[gBattlerTarget].physicalDmg + && gProtectStructs[gBattlerTarget].physicalBattlerId == gBattlerAttacker + && !TestSheerForceFlag(gBattlerAttacker, gCurrentMove)) + { + gProtectStructs[gBattlerTarget].shellTrap = TRUE; + // Change move order in double battles, so the hit mon with shell trap moves immediately after being hit. + if (IsDoubleBattle()) + { + ChangeOrderTargetAfterAttacker(); + } + } + if (gHitMarker & HITMARKER_SWAP_ATTACKER_TARGET) { gActiveBattler = gBattlerAttacker; @@ -6196,6 +6213,7 @@ static void Cmd_moveend(void) gBattleStruct->targetsDone[gBattlerAttacker] = 0; gProtectStructs[gBattlerAttacker].usesBouncedMove = FALSE; gProtectStructs[gBattlerAttacker].targetAffected = FALSE; + gProtectStructs[gBattlerAttacker].shellTrap = FALSE; gBattleStruct->ateBoost[gBattlerAttacker] = 0; gStatuses3[gBattlerAttacker] &= ~STATUS3_ME_FIRST; gSpecialStatuses[gBattlerAttacker].gemBoost = FALSE; @@ -8643,6 +8661,38 @@ static bool32 CanTeleport(u8 battlerId) return TRUE; } +// Return True if the order was changed, and false if the order was not changed(for example because the target would move after the attacker anyway). +static bool32 ChangeOrderTargetAfterAttacker(void) +{ + u32 i; + u8 data[MAX_BATTLERS_COUNT]; + + if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget) + || GetBattlerTurnOrderNum(gBattlerAttacker) + 1 == GetBattlerTurnOrderNum(gBattlerTarget)) + return FALSE; + + for (i = 0; i < gBattlersCount; i++) + data[i] = gBattlerByTurnOrder[i]; + if (GetBattlerTurnOrderNum(gBattlerAttacker) == 0 && GetBattlerTurnOrderNum(gBattlerTarget) == 2) + { + gBattlerByTurnOrder[1] = gBattlerTarget; + gBattlerByTurnOrder[2] = data[1]; + gBattlerByTurnOrder[3] = data[3]; + } + else if (GetBattlerTurnOrderNum(gBattlerAttacker) == 0 && GetBattlerTurnOrderNum(gBattlerTarget) == 3) + { + gBattlerByTurnOrder[1] = gBattlerTarget; + gBattlerByTurnOrder[2] = data[1]; + gBattlerByTurnOrder[3] = data[2]; + } + else // Attacker == 1, Target == 3 + { + gBattlerByTurnOrder[2] = gBattlerTarget; + gBattlerByTurnOrder[3] = data[2]; + } + return TRUE; +} + static void Cmd_various(void) { CMD_ARGS(u8 battler, u8 id); @@ -10010,34 +10060,14 @@ static void Cmd_various(void) case VARIOUS_AFTER_YOU: { VARIOUS_ARGS(const u8 *failInstr); - if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget) - || GetBattlerTurnOrderNum(gBattlerAttacker) + 1 == GetBattlerTurnOrderNum(gBattlerTarget)) + if (ChangeOrderTargetAfterAttacker()) { - gBattlescriptCurrInstr = cmd->failInstr; + gSpecialStatuses[gBattlerTarget].afterYou = 1; + gBattlescriptCurrInstr = cmd->nextInstr; } else { - for (i = 0; i < gBattlersCount; i++) - data[i] = gBattlerByTurnOrder[i]; - if (GetBattlerTurnOrderNum(gBattlerAttacker) == 0 && GetBattlerTurnOrderNum(gBattlerTarget) == 2) - { - gBattlerByTurnOrder[1] = gBattlerTarget; - gBattlerByTurnOrder[2] = data[1]; - gBattlerByTurnOrder[3] = data[3]; - } - else if (GetBattlerTurnOrderNum(gBattlerAttacker) == 0 && GetBattlerTurnOrderNum(gBattlerTarget) == 3) - { - gBattlerByTurnOrder[1] = gBattlerTarget; - gBattlerByTurnOrder[2] = data[1]; - gBattlerByTurnOrder[3] = data[2]; - } - else - { - gBattlerByTurnOrder[2] = gBattlerTarget; - gBattlerByTurnOrder[3] = data[2]; - } - gSpecialStatuses[gBattlerTarget].afterYou = 1; - gBattlescriptCurrInstr = cmd->nextInstr; + gBattlescriptCurrInstr = cmd->failInstr; } return; } @@ -11068,6 +11098,15 @@ static void Cmd_various(void) AbilityBattleEffects(ABILITYEFFECT_ON_WEATHER, gActiveBattler, 0, 0, 0); return; } + case VARIOUS_JUMP_IF_SHELL_TRAP: + { + VARIOUS_ARGS(const u8 *jumpInstr); + if (gProtectStructs[gActiveBattler].shellTrap) + gBattlescriptCurrInstr = cmd->jumpInstr; + else + gBattlescriptCurrInstr = cmd->nextInstr; + return; + } case VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES: { VARIOUS_ARGS(); diff --git a/src/battle_util.c b/src/battle_util.c index 185575411..ccc7445b5 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -948,7 +948,8 @@ void HandleAction_ActionFinished(void) u8 battler1 = gBattlerByTurnOrder[i]; u8 battler2 = gBattlerByTurnOrder[j]; - if (gProtectStructs[battler1].quash || gProtectStructs[battler2].quash) + if (gProtectStructs[battler1].quash || gProtectStructs[battler2].quash + || gProtectStructs[battler1].shellTrap || gProtectStructs[battler2].shellTrap) continue; // We recalculate order only for action of the same priority. If any action other than switch/move has been taken, they should diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index bf5414276..82883fb8c 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -11613,7 +11613,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_SHELL_TRAP] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_SHELL_TRAP, + .effect = EFFECT_SHELL_TRAP, .power = 150, .type = TYPE_FIRE, .accuracy = 100, diff --git a/test/move_effect_shell_trap.c b/test/move_effect_shell_trap.c new file mode 100644 index 000000000..27dc4b7f6 --- /dev/null +++ b/test/move_effect_shell_trap.c @@ -0,0 +1,168 @@ +#include "global.h" +#include "test_battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_SHELL_TRAP].effect == EFFECT_SHELL_TRAP); + ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_WATER_GUN].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_LEER].split == SPLIT_STATUS); +} + +SINGLE_BATTLE_TEST("Shell Trap activates only if hit by a physical move") +{ + u32 move; + bool32 activate; + PARAMETRIZE { move = MOVE_TACKLE; activate = TRUE; } + PARAMETRIZE { move = MOVE_WATER_GUN; activate = FALSE; } + PARAMETRIZE { move = MOVE_LEER; activate = FALSE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SHELL_TRAP); MOVE(opponent, move); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, player); + MESSAGE("Wobbuffet set a shell trap!"); + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + + if (activate) { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } else { + MESSAGE("Wobbuffet's shell trap didn't work!"); + NONE_OF { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } + } + } +} + +SINGLE_BATTLE_TEST("Shell Trap does not activate if attacker's Sheer Force applied") +{ + u32 move; + bool32 activate; + PARAMETRIZE { move = MOVE_TACKLE; activate = TRUE; } + PARAMETRIZE { move = MOVE_STOMP; activate = FALSE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_TAUROS) { Ability(ABILITY_SHEER_FORCE); } + } WHEN { + TURN { MOVE(player, MOVE_SHELL_TRAP); MOVE(opponent, move); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, player); + MESSAGE("Wobbuffet set a shell trap!"); + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + if (activate) { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } else { + MESSAGE("Wobbuffet's shell trap didn't work!"); + NONE_OF { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } + } + } +} + +SINGLE_BATTLE_TEST("Shell Trap does not activate if battler faints before being able to activate it") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SHELL_TRAP); MOVE(opponent, MOVE_TACKLE); SEND_OUT(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, player); + MESSAGE("Wobbuffet set a shell trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + MESSAGE("Wobbuffet fainted!"); + MESSAGE("Go! Wobbuffet!"); + NONE_OF { + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, player); + HP_BAR(opponent); + } + } +} + +DOUBLE_BATTLE_TEST("Shell Trap activates immediately after being hit on turn 1 and attacks both opponents") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SHELL_TRAP].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET) { Speed(1); } + PLAYER(SPECIES_WOBBUFFET) { Speed(2); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WYNAUT) { Speed(1); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SHELL_TRAP); MOVE(opponentLeft, MOVE_TACKLE, target:playerLeft); MOVE(playerRight, MOVE_CELEBRATE); MOVE(opponentRight, MOVE_CELEBRATE); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerLeft); + MESSAGE("Wobbuffet set a shell trap!"); + MESSAGE("Foe Wobbuffet used Tackle!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + MESSAGE("Wobbuffet used Celebrate!"); + MESSAGE("Foe Wynaut used Celebrate!"); + } +} + +DOUBLE_BATTLE_TEST("Shell Trap activates immediately after being hit on turn 2 and attacks both opponents") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SHELL_TRAP].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET) { Speed(1); } + PLAYER(SPECIES_WOBBUFFET) { Speed(2); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WYNAUT) { Speed(6); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SHELL_TRAP); MOVE(opponentLeft, MOVE_TACKLE, target:playerLeft); MOVE(playerRight, MOVE_CELEBRATE); MOVE(opponentRight, MOVE_CELEBRATE); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerLeft); + MESSAGE("Wobbuffet set a shell trap!"); + MESSAGE("Foe Wynaut used Celebrate!"); + MESSAGE("Foe Wobbuffet used Tackle!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + MESSAGE("Wobbuffet used Celebrate!"); + } +} + +DOUBLE_BATTLE_TEST("Shell Trap activates immediately after being hit on turn 3 and attacks both opponents") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SHELL_TRAP].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET) { Speed(1); } + PLAYER(SPECIES_WOBBUFFET) { Speed(7); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WYNAUT) { Speed(6); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SHELL_TRAP); MOVE(opponentLeft, MOVE_TACKLE, target:playerLeft); MOVE(playerRight, MOVE_CELEBRATE); MOVE(opponentRight, MOVE_CELEBRATE); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerLeft); + MESSAGE("Wobbuffet set a shell trap!"); + MESSAGE("Wobbuffet used Celebrate!"); + MESSAGE("Foe Wynaut used Celebrate!"); + MESSAGE("Foe Wobbuffet used Tackle!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + MESSAGE("Wobbuffet used Shell Trap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + } +} From dc83708443b1def89264d0c63f5ac710769b7003 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 22 Feb 2023 22:51:59 +0100 Subject: [PATCH 107/125] Remove unused script BattleScript_TargetAbilityStatRaiseOnMoveEnd --- data/battle_scripts_1.s | 10 ---------- include/battle_scripts.h | 1 - 2 files changed, 11 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 5bf5f52b0..04b709f82 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -9164,16 +9164,6 @@ BattleScript_BattlerAbilityStatRaiseOnSwitchIn:: waitmessage B_WAIT_TIME_LONG end3 -BattleScript_TargetAbilityStatRaiseOnMoveEnd:: - call BattleScript_AbilityPopUp - statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL - setgraphicalstatchangevalues - playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 - waitanimation - printstring STRINGID_ABILITYRAISEDSTATDRASTICALLY - waitmessage B_WAIT_TIME_LONG - return - BattleScript_ScriptingAbilityStatRaise:: copybyte gBattlerAbility, sBATTLER call BattleScript_AbilityPopUp diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 7904f5dc1..8c6b074c1 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -256,7 +256,6 @@ extern const u8 BattleScript_SturdiedMsg[]; extern const u8 BattleScript_GravityEnds[]; extern const u8 BattleScript_MoveStatDrain[]; extern const u8 BattleScript_MoveStatDrain_PPLoss[]; -extern const u8 BattleScript_TargetAbilityStatRaiseOnMoveEnd[]; extern const u8 BattleScript_TargetsStatWasMaxedOut[]; extern const u8 BattleScript_AttackerAbilityStatRaise[]; extern const u8 BattleScript_AttackerAbilityStatRaiseEnd3[]; From 23272074bf18017142b733445e650c59ad77d378 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 23 Feb 2023 09:53:57 +0100 Subject: [PATCH 108/125] fix uninitialized ai modifier variable in ai calc damage --- src/battle_ai_util.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 531a4aa6b..4641ba2cd 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -802,6 +802,7 @@ s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef, u8 *typeEffectiveness, } else { + effectivenessMultiplier = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); dmg = 0; } @@ -1166,7 +1167,7 @@ s32 AI_GetAbility(u32 battlerId) // We've had ability overwritten by e.g. Worry Seed. It is not part of AI_PARTY in case of switching if (gBattleStruct->overwrittenAbilities[battlerId]) return gBattleStruct->overwrittenAbilities[battlerId]; - + // The AI knows its own ability. if (IsBattlerAIControlled(battlerId)) return knownAbility; From db02cd05f6f68397ec37eed11433aeaa8ddd7b62 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Fri, 24 Feb 2023 00:09:13 -0300 Subject: [PATCH 109/125] Purged the bKGD warning once and for all --- graphics/battle_anims/sprites/new/teapot.png | Bin 881 -> 761 bytes .../battle_anims/sprites/omega_symbol.png | Bin 349 -> 273 bytes graphics/battle_interface/alpha_indicator.png | Bin 266 -> 199 bytes graphics/battle_interface/omega_indicator.png | Bin 271 -> 198 bytes graphics/battle_interface/z_move_trigger.png | Bin 351 -> 275 bytes graphics/berries/babiri.png | Bin 483 -> 399 bytes graphics/berries/charti.png | Bin 430 -> 364 bytes graphics/berries/chilan.png | Bin 469 -> 365 bytes graphics/berries/chople.png | Bin 498 -> 406 bytes graphics/berries/coba.png | Bin 402 -> 315 bytes graphics/berries/colbur.png | Bin 435 -> 382 bytes graphics/berries/haban.png | Bin 466 -> 373 bytes graphics/berries/kasib.png | Bin 459 -> 364 bytes graphics/berries/kebia.png | Bin 500 -> 398 bytes graphics/berries/kee.png | Bin 589 -> 479 bytes graphics/berries/micle.png | Bin 383 -> 291 bytes graphics/berries/occa.png | Bin 434 -> 345 bytes graphics/berries/passho.png | Bin 543 -> 444 bytes graphics/berries/rindo.png | Bin 440 -> 356 bytes graphics/berries/roseli.png | Bin 576 -> 489 bytes graphics/berries/rowap.png | Bin 565 -> 471 bytes graphics/berries/shuca.png | Bin 412 -> 326 bytes graphics/berries/tanga.png | Bin 506 -> 419 bytes graphics/berries/wacan.png | Bin 457 -> 376 bytes graphics/berries/yache.png | Bin 514 -> 430 bytes graphics/expansion_intro/powered_by.png | Bin 336 -> 250 bytes graphics/items/icons/ability_capsule.png | Bin 349 -> 254 bytes graphics/items/icons/ability_patch.png | Bin 312 -> 243 bytes graphics/items/icons/absorb_bulb.png | Bin 365 -> 271 bytes graphics/items/icons/air_balloon.png | Bin 343 -> 248 bytes graphics/items/icons/armor_fossil.png | Bin 457 -> 361 bytes graphics/items/icons/babiri_berry.png | Bin 391 -> 288 bytes graphics/items/icons/big_malasada.png | Bin 393 -> 298 bytes graphics/items/icons/big_root.png | Bin 415 -> 334 bytes graphics/items/icons/black_apricorn.png | Bin 368 -> 271 bytes graphics/items/icons/black_sludge.png | Bin 364 -> 279 bytes graphics/items/icons/blue_apricorn.png | Bin 368 -> 271 bytes graphics/items/icons/bug_gem.png | Bin 353 -> 252 bytes graphics/items/icons/bug_memory.png | Bin 423 -> 324 bytes graphics/items/icons/burn_drive.png | Bin 342 -> 258 bytes graphics/items/icons/cell_battery.png | Bin 289 -> 207 bytes graphics/items/icons/charti_berry.png | Bin 359 -> 264 bytes graphics/items/icons/chilan_berry.png | Bin 377 -> 271 bytes graphics/items/icons/chill_drive.png | Bin 342 -> 258 bytes graphics/items/icons/choice_scarf.png | Bin 447 -> 347 bytes graphics/items/icons/choice_specs.png | Bin 369 -> 277 bytes graphics/items/icons/chople_berry.png | Bin 388 -> 287 bytes graphics/items/icons/coba_berry.png | Bin 370 -> 271 bytes graphics/items/icons/colbur_berry.png | Bin 376 -> 295 bytes graphics/items/icons/cover_fossil.png | Bin 418 -> 317 bytes graphics/items/icons/custap_berry.png | Bin 406 -> 304 bytes graphics/items/icons/damp_rock.png | Bin 429 -> 329 bytes graphics/items/icons/dark_gem.png | Bin 353 -> 251 bytes graphics/items/icons/dark_memory.png | Bin 419 -> 322 bytes graphics/items/icons/dawn_stone.png | Bin 375 -> 276 bytes graphics/items/icons/destiny_knot.png | Bin 396 -> 299 bytes graphics/items/icons/douse_drive.png | Bin 342 -> 258 bytes graphics/items/icons/draco_plate.png | Bin 355 -> 244 bytes graphics/items/icons/dragon_gem.png | Bin 353 -> 252 bytes graphics/items/icons/dragon_memory.png | Bin 420 -> 321 bytes graphics/items/icons/dread_plate.png | Bin 355 -> 244 bytes graphics/items/icons/dubious_disc.png | Bin 377 -> 279 bytes graphics/items/icons/dusk_stone.png | Bin 376 -> 272 bytes graphics/items/icons/earth_plate.png | Bin 355 -> 244 bytes graphics/items/icons/eject_button.png | Bin 370 -> 266 bytes graphics/items/icons/electirizer.png | Bin 371 -> 271 bytes graphics/items/icons/electric_gem.png | Bin 353 -> 252 bytes graphics/items/icons/electric_memory.png | Bin 421 -> 327 bytes graphics/items/icons/eviolite.png | Bin 317 -> 228 bytes graphics/items/icons/expert_belt.png | Bin 383 -> 292 bytes graphics/items/icons/fairy_gem.png | Bin 353 -> 252 bytes graphics/items/icons/fairy_memory.png | Bin 422 -> 326 bytes graphics/items/icons/fighting_gem.png | Bin 353 -> 252 bytes graphics/items/icons/fighting_memory.png | Bin 419 -> 321 bytes graphics/items/icons/fire_gem.png | Bin 353 -> 252 bytes graphics/items/icons/fire_memory.png | Bin 422 -> 321 bytes graphics/items/icons/fist_plate.png | Bin 355 -> 244 bytes graphics/items/icons/flame_plate.png | Bin 355 -> 244 bytes graphics/items/icons/float_stone.png | Bin 345 -> 251 bytes graphics/items/icons/flying_gem.png | Bin 353 -> 252 bytes graphics/items/icons/flying_memory.png | Bin 420 -> 324 bytes graphics/items/icons/focus_sash.png | Bin 392 -> 288 bytes graphics/items/icons/full_incense.png | Bin 409 -> 312 bytes graphics/items/icons/ghost_gem.png | Bin 353 -> 252 bytes graphics/items/icons/ghost_memory.png | Bin 421 -> 322 bytes graphics/items/icons/gracidea.png | Bin 446 -> 348 bytes graphics/items/icons/grass_gem.png | Bin 353 -> 252 bytes graphics/items/icons/grass_memory.png | Bin 421 -> 327 bytes graphics/items/icons/green_apricorn.png | Bin 368 -> 271 bytes graphics/items/icons/grip_claw.png | Bin 413 -> 304 bytes graphics/items/icons/griseous_orb.png | Bin 426 -> 322 bytes graphics/items/icons/ground_gem.png | Bin 353 -> 252 bytes graphics/items/icons/ground_memory.png | Bin 420 -> 321 bytes graphics/items/icons/haban_berry.png | Bin 401 -> 298 bytes graphics/items/icons/heat_rock.png | Bin 434 -> 324 bytes graphics/items/icons/ice_gem.png | Bin 353 -> 252 bytes graphics/items/icons/ice_memory.png | Bin 415 -> 316 bytes graphics/items/icons/ice_stone.png | Bin 422 -> 319 bytes graphics/items/icons/icicle_plate.png | Bin 355 -> 244 bytes graphics/items/icons/icy_rock.png | Bin 411 -> 315 bytes graphics/items/icons/insect_plate.png | Bin 355 -> 244 bytes graphics/items/icons/iron_ball.png | Bin 352 -> 252 bytes graphics/items/icons/iron_plate.png | Bin 355 -> 244 bytes graphics/items/icons/jaboca_berry.png | Bin 395 -> 298 bytes graphics/items/icons/jaw_fossil.png | Bin 444 -> 352 bytes graphics/items/icons/kasib_berry.png | Bin 403 -> 297 bytes graphics/items/icons/kebia_berry.png | Bin 393 -> 286 bytes graphics/items/icons/kee_berry.png | Bin 447 -> 339 bytes graphics/items/icons/lagging_tail.png | Bin 400 -> 296 bytes graphics/items/icons/life_orb.png | Bin 330 -> 239 bytes graphics/items/icons/light_clay.png | Bin 362 -> 268 bytes graphics/items/icons/lucarionite.png | Bin 333 -> 246 bytes graphics/items/icons/luck_incense.png | Bin 404 -> 307 bytes graphics/items/icons/luminous_moss.png | Bin 385 -> 288 bytes graphics/items/icons/lustrous_orb.png | Bin 458 -> 332 bytes graphics/items/icons/magmarizer.png | Bin 376 -> 279 bytes graphics/items/icons/maranga_berry.png | Bin 401 -> 294 bytes graphics/items/icons/meadow_plate.png | Bin 355 -> 244 bytes graphics/items/icons/metronome.png | Bin 356 -> 262 bytes graphics/items/icons/micle_berry.png | Bin 340 -> 235 bytes graphics/items/icons/mind_plate.png | Bin 355 -> 244 bytes graphics/items/icons/muscle_band.png | Bin 418 -> 318 bytes graphics/items/icons/normal_gem.png | Bin 353 -> 252 bytes graphics/items/icons/occa_berry.png | Bin 366 -> 262 bytes graphics/items/icons/odd_incense.png | Bin 402 -> 304 bytes graphics/items/icons/odd_keystone.png | Bin 395 -> 289 bytes graphics/items/icons/old_gateau.png | Bin 330 -> 228 bytes graphics/items/icons/oval_stone.png | Bin 364 -> 267 bytes graphics/items/icons/passho_berry.png | Bin 383 -> 289 bytes graphics/items/icons/payapa_berry.png | Bin 390 -> 293 bytes graphics/items/icons/pink_apricorn.png | Bin 368 -> 271 bytes graphics/items/icons/pink_nectar.png | Bin 379 -> 286 bytes graphics/items/icons/plume_fossil.png | Bin 393 -> 301 bytes graphics/items/icons/poison_gem.png | Bin 353 -> 252 bytes graphics/items/icons/poison_memory.png | Bin 419 -> 322 bytes graphics/items/icons/poke_radar.png | Bin 395 -> 299 bytes graphics/items/icons/power_anklet.png | Bin 415 -> 311 bytes graphics/items/icons/power_band.png | Bin 417 -> 309 bytes graphics/items/icons/power_belt.png | Bin 412 -> 308 bytes graphics/items/icons/power_bracer.png | Bin 401 -> 301 bytes graphics/items/icons/power_herb.png | Bin 353 -> 256 bytes graphics/items/icons/power_lens.png | Bin 428 -> 319 bytes graphics/items/icons/power_weight.png | Bin 404 -> 303 bytes graphics/items/icons/prism_scale.png | Bin 325 -> 228 bytes graphics/items/icons/protector.png | Bin 381 -> 277 bytes graphics/items/icons/psychic_gem.png | Bin 353 -> 252 bytes graphics/items/icons/psychic_memory.png | Bin 420 -> 325 bytes graphics/items/icons/pure_incense.png | Bin 401 -> 308 bytes graphics/items/icons/purple_nectar.png | Bin 379 -> 286 bytes graphics/items/icons/quick_powder.png | Bin 392 -> 296 bytes graphics/items/icons/rare_bone.png | Bin 331 -> 242 bytes graphics/items/icons/razor_claw.png | Bin 360 -> 264 bytes graphics/items/icons/razor_fang.png | Bin 342 -> 244 bytes graphics/items/icons/reaper_cloth.png | Bin 401 -> 306 bytes graphics/items/icons/red_apricorn.png | Bin 368 -> 271 bytes graphics/items/icons/red_card.png | Bin 311 -> 211 bytes graphics/items/icons/red_nectar.png | Bin 380 -> 288 bytes graphics/items/icons/rindo_berry.png | Bin 353 -> 260 bytes graphics/items/icons/ring_target.png | Bin 330 -> 245 bytes graphics/items/icons/rock_gem.png | Bin 353 -> 252 bytes graphics/items/icons/rock_incense.png | Bin 407 -> 310 bytes graphics/items/icons/rock_memory.png | Bin 414 -> 316 bytes graphics/items/icons/rocky_helmet.png | Bin 385 -> 289 bytes graphics/items/icons/rose_incense.png | Bin 408 -> 311 bytes graphics/items/icons/roseli_berry.png | Bin 400 -> 298 bytes graphics/items/icons/rowap_berry.png | Bin 440 -> 332 bytes graphics/items/icons/sachet.png | Bin 369 -> 275 bytes graphics/items/icons/safety_goggles.png | Bin 386 -> 288 bytes graphics/items/icons/sail_fossil.png | Bin 438 -> 332 bytes graphics/items/icons/shed_shell.png | Bin 393 -> 285 bytes graphics/items/icons/shiny_charm.png | Bin 356 -> 274 bytes graphics/items/icons/shiny_stone.png | Bin 390 -> 294 bytes graphics/items/icons/shock_drive.png | Bin 342 -> 258 bytes graphics/items/icons/shuca_berry.png | Bin 369 -> 275 bytes graphics/items/icons/skull_fossil.png | Bin 450 -> 347 bytes graphics/items/icons/sky_plate.png | Bin 355 -> 244 bytes graphics/items/icons/smooth_rock.png | Bin 427 -> 323 bytes graphics/items/icons/snowball.png | Bin 333 -> 242 bytes graphics/items/icons/splash_plate.png | Bin 352 -> 243 bytes graphics/items/icons/spooky_plate.png | Bin 355 -> 244 bytes graphics/items/icons/steel_gem.png | Bin 353 -> 251 bytes graphics/items/icons/steel_memory.png | Bin 419 -> 323 bytes graphics/items/icons/sticky_barb.png | Bin 332 -> 247 bytes graphics/items/icons/stone_plate.png | Bin 355 -> 244 bytes graphics/items/icons/sweet_heart.png | Bin 328 -> 235 bytes graphics/items/icons/tanga_berry.png | Bin 416 -> 310 bytes graphics/items/icons/toxic_orb.png | Bin 347 -> 259 bytes graphics/items/icons/toxic_plate.png | Bin 355 -> 244 bytes graphics/items/icons/wacan_berry.png | Bin 386 -> 283 bytes graphics/items/icons/water_gem.png | Bin 353 -> 252 bytes graphics/items/icons/water_memory.png | Bin 417 -> 320 bytes graphics/items/icons/wave_incense.png | Bin 400 -> 304 bytes graphics/items/icons/weakness_policy.png | Bin 316 -> 228 bytes graphics/items/icons/whipped_dream.png | Bin 392 -> 292 bytes graphics/items/icons/white_apricorn.png | Bin 367 -> 265 bytes graphics/items/icons/wide_lens.png | Bin 370 -> 260 bytes graphics/items/icons/wise_glasses.png | Bin 333 -> 248 bytes graphics/items/icons/x_special_defense.png | Bin 410 -> 308 bytes graphics/items/icons/yache_berry.png | Bin 395 -> 298 bytes graphics/items/icons/yellow_apricorn.png | Bin 368 -> 271 bytes graphics/items/icons/yellow_nectar.png | Bin 379 -> 286 bytes graphics/items/icons/zap_plate.png | Bin 355 -> 244 bytes graphics/items/icons/zoom_lens.png | Bin 385 -> 280 bytes .../object_events/pics/berry_trees/chople.png | Bin 697 -> 637 bytes .../object_events/pics/berry_trees/custap.png | Bin 669 -> 588 bytes .../object_events/pics/berry_trees/jaboca.png | Bin 693 -> 593 bytes .../object_events/pics/berry_trees/kasib.png | Bin 606 -> 532 bytes .../object_events/pics/berry_trees/kebia.png | Bin 600 -> 521 bytes .../object_events/pics/berry_trees/micle.png | Bin 627 -> 571 bytes .../object_events/pics/berry_trees/occa.png | Bin 618 -> 566 bytes .../object_events/pics/berry_trees/payapa.png | Bin 589 -> 521 bytes .../object_events/pics/berry_trees/roseli.png | Bin 593 -> 521 bytes .../object_events/pics/berry_trees/shuca.png | Bin 638 -> 552 bytes .../object_events/pics/berry_trees/tanga.png | Bin 697 -> 599 bytes .../pokemon/alcremie/caramel_swirl/front.png | Bin 805 -> 729 bytes .../pokemon/alcremie/lemon_cream/front.png | Bin 805 -> 729 bytes .../pokemon/alcremie/matcha_cream/back.png | Bin 747 -> 657 bytes .../pokemon/alcremie/matcha_cream/front.png | Bin 805 -> 729 bytes .../pokemon/alcremie/mint_cream/front.png | Bin 806 -> 729 bytes .../pokemon/alcremie/rainbow_swirl/back.png | Bin 755 -> 660 bytes .../pokemon/alcremie/ruby_cream/front.png | Bin 809 -> 730 bytes .../pokemon/alcremie/salted_cream/front.png | Bin 804 -> 729 bytes graphics/pokemon/altaria/back.png | Bin 703 -> 603 bytes graphics/pokemon/ampharos/back.png | Bin 640 -> 563 bytes graphics/pokemon/bagon/back.png | Bin 646 -> 552 bytes .../pokemon/basculin/blue_striped/back.png | Bin 741 -> 629 bytes .../pokemon/basculin/blue_striped/icon.png | Bin 462 -> 362 bytes graphics/pokemon/beartic/back.png | Bin 628 -> 526 bytes graphics/pokemon/bidoof/anim_frontf.png | Bin 852 -> 781 bytes graphics/pokemon/bidoof/backf.png | Bin 570 -> 487 bytes graphics/pokemon/breloom/back.png | Bin 811 -> 705 bytes graphics/pokemon/budew/back.png | Bin 580 -> 484 bytes graphics/pokemon/carvanha/back.png | Bin 716 -> 605 bytes graphics/pokemon/castform/rainy/icon.png | Bin 375 -> 296 bytes graphics/pokemon/castform/snowy/icon.png | Bin 395 -> 321 bytes graphics/pokemon/castform/sunny/icon.png | Bin 386 -> 312 bytes graphics/pokemon/celebi/back.png | Bin 732 -> 641 bytes graphics/pokemon/cherrim/sunshine/icon.png | Bin 405 -> 334 bytes graphics/pokemon/chespin/anim_front.png | Bin 923 -> 797 bytes graphics/pokemon/cinccino/back.png | Bin 686 -> 578 bytes graphics/pokemon/cinderace/back.png | Bin 761 -> 649 bytes graphics/pokemon/cinderace/front.png | Bin 840 -> 726 bytes graphics/pokemon/corsola/galarian/front.png | Bin 684 -> 582 bytes graphics/pokemon/cranidos/back.png | Bin 832 -> 731 bytes graphics/pokemon/cursola/front.png | Bin 970 -> 878 bytes graphics/pokemon/darmanitan/zen_mode/icon.png | Bin 414 -> 323 bytes graphics/pokemon/deerling/autumn/icon.png | Bin 498 -> 379 bytes graphics/pokemon/deerling/summer/icon.png | Bin 507 -> 378 bytes graphics/pokemon/deerling/winter/icon.png | Bin 503 -> 377 bytes graphics/pokemon/dewgong/back.png | Bin 568 -> 502 bytes graphics/pokemon/ditto/back.png | Bin 434 -> 360 bytes graphics/pokemon/dunsparce/back.png | Bin 664 -> 569 bytes graphics/pokemon/eevee/backf.png | Bin 696 -> 615 bytes graphics/pokemon/elekid/back.png | Bin 741 -> 652 bytes graphics/pokemon/espeon/back.png | Bin 677 -> 617 bytes graphics/pokemon/flabebe/back.png | Bin 642 -> 526 bytes graphics/pokemon/flabebe/blue_flower/icon.png | Bin 374 -> 301 bytes .../pokemon/flabebe/orange_flower/icon.png | Bin 374 -> 301 bytes .../pokemon/flabebe/white_flower/icon.png | Bin 375 -> 302 bytes .../pokemon/flabebe/yellow_flower/icon.png | Bin 377 -> 302 bytes graphics/pokemon/flareon/icon.png | Bin 496 -> 404 bytes graphics/pokemon/floette/blue_flower/icon.png | Bin 431 -> 352 bytes .../pokemon/floette/eternal_flower/back.png | Bin 783 -> 668 bytes .../pokemon/floette/eternal_flower/front.png | Bin 807 -> 710 bytes .../pokemon/floette/eternal_flower/icon.png | Bin 449 -> 376 bytes .../pokemon/floette/orange_flower/icon.png | Bin 431 -> 352 bytes .../pokemon/floette/white_flower/icon.png | Bin 429 -> 352 bytes .../pokemon/floette/yellow_flower/icon.png | Bin 436 -> 353 bytes graphics/pokemon/florges/back.png | Bin 768 -> 673 bytes graphics/pokemon/florges/blue_flower/icon.png | Bin 651 -> 480 bytes .../pokemon/florges/orange_flower/icon.png | Bin 648 -> 479 bytes .../pokemon/florges/white_flower/icon.png | Bin 619 -> 470 bytes .../pokemon/florges/yellow_flower/icon.png | Bin 650 -> 480 bytes graphics/pokemon/furfrou/dandy_trim/icon.png | Bin 598 -> 455 bytes .../pokemon/furfrou/debutante_trim/icon.png | Bin 594 -> 458 bytes .../pokemon/furfrou/diamond_trim/icon.png | Bin 624 -> 492 bytes graphics/pokemon/furfrou/heart_trim/icon.png | Bin 602 -> 477 bytes graphics/pokemon/furfrou/kabuki_trim/icon.png | Bin 573 -> 451 bytes .../pokemon/furfrou/la_reine_trim/icon.png | Bin 580 -> 444 bytes graphics/pokemon/furfrou/matron_trim/icon.png | Bin 581 -> 455 bytes .../pokemon/furfrou/pharaoh_trim/icon.png | Bin 579 -> 443 bytes graphics/pokemon/furfrou/star_trim/icon.png | Bin 639 -> 496 bytes graphics/pokemon/galvantula/back.png | Bin 575 -> 492 bytes graphics/pokemon/gastrodon/east_sea/icon.png | Bin 565 -> 403 bytes graphics/pokemon/geodude/back.png | Bin 652 -> 593 bytes graphics/pokemon/glaceon/back.png | Bin 647 -> 541 bytes graphics/pokemon/golett/back.png | Bin 933 -> 788 bytes graphics/pokemon/gourgeist/back.png | Bin 653 -> 536 bytes graphics/pokemon/gourgeist/large/back.png | Bin 673 -> 546 bytes graphics/pokemon/gourgeist/small/back.png | Bin 639 -> 522 bytes graphics/pokemon/gourgeist/super/back.png | Bin 681 -> 560 bytes graphics/pokemon/greninja/ash/icon.png | Bin 681 -> 491 bytes graphics/pokemon/gurdurr/back.png | Bin 683 -> 564 bytes graphics/pokemon/hippowdon/back.png | Bin 740 -> 663 bytes graphics/pokemon/hitmonchan/back.png | Bin 830 -> 713 bytes graphics/pokemon/hoopa/back.png | Bin 860 -> 718 bytes graphics/pokemon/hoopa/footprint.png | Bin 190 -> 102 bytes graphics/pokemon/hoopa/unbound/icon.png | Bin 623 -> 521 bytes graphics/pokemon/jellicent/backf.png | Bin 617 -> 521 bytes graphics/pokemon/jellicent/icon.png | Bin 489 -> 418 bytes graphics/pokemon/jellicent/iconf.png | Bin 499 -> 430 bytes graphics/pokemon/jigglypuff/back.png | Bin 518 -> 447 bytes graphics/pokemon/keldeo/resolute/back.png | Bin 857 -> 742 bytes graphics/pokemon/keldeo/resolute/icon.png | Bin 558 -> 482 bytes graphics/pokemon/kricketot/anim_frontf.png | Bin 1048 -> 976 bytes graphics/pokemon/kricketot/backf.png | Bin 625 -> 540 bytes graphics/pokemon/lapras/back.png | Bin 786 -> 682 bytes graphics/pokemon/larvitar/back.png | Bin 594 -> 527 bytes graphics/pokemon/lucario/back.png | Bin 906 -> 800 bytes graphics/pokemon/luxio/back.png | Bin 784 -> 707 bytes graphics/pokemon/luxray/back.png | Bin 890 -> 792 bytes graphics/pokemon/lycanroc/dusk/front.png | Bin 1001 -> 894 bytes graphics/pokemon/lycanroc/midnight/front.png | Bin 920 -> 841 bytes graphics/pokemon/magearna/back.png | Bin 782 -> 661 bytes graphics/pokemon/magearna/front.png | Bin 938 -> 828 bytes .../pokemon/magearna/original_color/back.png | Bin 797 -> 667 bytes .../pokemon/magearna/original_color/front.png | Bin 966 -> 834 bytes .../pokemon/magearna/original_color/icon.png | Bin 519 -> 444 bytes graphics/pokemon/marshtomp/back.png | Bin 748 -> 641 bytes graphics/pokemon/mimikyu/busted/back.png | Bin 505 -> 425 bytes graphics/pokemon/mimikyu/busted/front.png | Bin 554 -> 488 bytes graphics/pokemon/mimikyu/busted/icon.png | Bin 426 -> 327 bytes graphics/pokemon/minccino/back.png | Bin 601 -> 519 bytes graphics/pokemon/minior/core/back.png | Bin 493 -> 412 bytes graphics/pokemon/minior/core/blue/icon.png | Bin 447 -> 356 bytes graphics/pokemon/minior/core/front.png | Bin 532 -> 455 bytes graphics/pokemon/minior/core/green/icon.png | Bin 440 -> 355 bytes graphics/pokemon/minior/core/indigo/icon.png | Bin 443 -> 356 bytes graphics/pokemon/minior/core/orange/icon.png | Bin 443 -> 355 bytes graphics/pokemon/minior/core/violet/icon.png | Bin 442 -> 355 bytes graphics/pokemon/minior/core/yellow/icon.png | Bin 438 -> 355 bytes graphics/pokemon/minun/back.png | Bin 673 -> 574 bytes graphics/pokemon/mr_mime/back.png | Bin 868 -> 747 bytes graphics/pokemon/necrozma/dawn_wings/back.png | Bin 951 -> 847 bytes .../pokemon/necrozma/dawn_wings/front.png | Bin 1413 -> 1294 bytes graphics/pokemon/necrozma/dawn_wings/icon.png | Bin 709 -> 595 bytes graphics/pokemon/necrozma/dusk_mane/back.png | Bin 1187 -> 1033 bytes graphics/pokemon/necrozma/dusk_mane/front.png | Bin 1311 -> 1217 bytes graphics/pokemon/necrozma/dusk_mane/icon.png | Bin 559 -> 485 bytes graphics/pokemon/necrozma/ultra/back.png | Bin 863 -> 760 bytes graphics/pokemon/necrozma/ultra/front.png | Bin 1312 -> 1268 bytes graphics/pokemon/necrozma/ultra/icon.png | Bin 626 -> 561 bytes graphics/pokemon/nidoqueen/back.png | Bin 785 -> 698 bytes graphics/pokemon/nidorino/back.png | Bin 794 -> 740 bytes graphics/pokemon/ninetales/back.png | Bin 699 -> 628 bytes graphics/pokemon/oddish/back.png | Bin 656 -> 552 bytes graphics/pokemon/oricorio/pau/back.png | Bin 884 -> 761 bytes graphics/pokemon/oricorio/pau/front.png | Bin 828 -> 706 bytes graphics/pokemon/oricorio/pau/icon.png | Bin 452 -> 341 bytes graphics/pokemon/oricorio/pom_pom/back.png | Bin 836 -> 721 bytes graphics/pokemon/oricorio/pom_pom/front.png | Bin 733 -> 617 bytes graphics/pokemon/oricorio/pom_pom/icon.png | Bin 462 -> 361 bytes graphics/pokemon/oricorio/sensu/back.png | Bin 750 -> 667 bytes graphics/pokemon/oricorio/sensu/front.png | Bin 883 -> 784 bytes graphics/pokemon/oricorio/sensu/icon.png | Bin 481 -> 350 bytes graphics/pokemon/persian/back.png | Bin 731 -> 665 bytes graphics/pokemon/phanpy/back.png | Bin 525 -> 454 bytes graphics/pokemon/pichu/spiky_eared/icon.png | Bin 375 -> 312 bytes graphics/pokemon/pikachu/alola_cap/back.png | Bin 749 -> 633 bytes graphics/pokemon/pikachu/alola_cap/front.png | Bin 717 -> 624 bytes graphics/pokemon/pikachu/alola_cap/icon.png | Bin 499 -> 384 bytes graphics/pokemon/pikachu/belle/back.png | Bin 953 -> 837 bytes graphics/pokemon/pikachu/belle/front.png | Bin 900 -> 808 bytes graphics/pokemon/pikachu/belle/icon.png | Bin 586 -> 453 bytes graphics/pokemon/pikachu/cosplay/back.png | Bin 740 -> 634 bytes graphics/pokemon/pikachu/cosplay/front.png | Bin 708 -> 611 bytes graphics/pokemon/pikachu/cosplay/icon.png | Bin 444 -> 367 bytes graphics/pokemon/pikachu/hoenn_cap/back.png | Bin 742 -> 631 bytes graphics/pokemon/pikachu/hoenn_cap/front.png | Bin 723 -> 638 bytes graphics/pokemon/pikachu/hoenn_cap/icon.png | Bin 497 -> 383 bytes graphics/pokemon/pikachu/kalos_cap/back.png | Bin 750 -> 633 bytes graphics/pokemon/pikachu/kalos_cap/front.png | Bin 726 -> 632 bytes graphics/pokemon/pikachu/kalos_cap/icon.png | Bin 506 -> 388 bytes graphics/pokemon/pikachu/libre/back.png | Bin 837 -> 717 bytes graphics/pokemon/pikachu/libre/front.png | Bin 751 -> 657 bytes graphics/pokemon/pikachu/libre/icon.png | Bin 487 -> 380 bytes .../pokemon/pikachu/original_cap/back.png | Bin 760 -> 636 bytes .../pokemon/pikachu/original_cap/front.png | Bin 737 -> 635 bytes .../pokemon/pikachu/original_cap/icon.png | Bin 498 -> 385 bytes graphics/pokemon/pikachu/partner_cap/icon.png | Bin 507 -> 389 bytes graphics/pokemon/pikachu/ph_d/back.png | Bin 853 -> 747 bytes graphics/pokemon/pikachu/ph_d/front.png | Bin 846 -> 758 bytes graphics/pokemon/pikachu/ph_d/icon.png | Bin 498 -> 405 bytes graphics/pokemon/pikachu/pop_star/back.png | Bin 978 -> 841 bytes graphics/pokemon/pikachu/pop_star/front.png | Bin 831 -> 732 bytes graphics/pokemon/pikachu/pop_star/icon.png | Bin 524 -> 411 bytes graphics/pokemon/pikachu/rock_star/back.png | Bin 876 -> 764 bytes graphics/pokemon/pikachu/rock_star/front.png | Bin 803 -> 692 bytes graphics/pokemon/pikachu/rock_star/icon.png | Bin 499 -> 394 bytes graphics/pokemon/pikachu/sinnoh_cap/back.png | Bin 742 -> 631 bytes graphics/pokemon/pikachu/sinnoh_cap/front.png | Bin 723 -> 638 bytes graphics/pokemon/pikachu/sinnoh_cap/icon.png | Bin 498 -> 384 bytes graphics/pokemon/pikachu/unova_cap/back.png | Bin 760 -> 636 bytes graphics/pokemon/pikachu/unova_cap/front.png | Bin 737 -> 638 bytes graphics/pokemon/pikachu/unova_cap/icon.png | Bin 503 -> 384 bytes graphics/pokemon/pumpkaboo/back.png | Bin 591 -> 515 bytes graphics/pokemon/pumpkaboo/large/back.png | Bin 619 -> 547 bytes graphics/pokemon/pumpkaboo/small/back.png | Bin 591 -> 510 bytes graphics/pokemon/pumpkaboo/super/back.png | Bin 634 -> 562 bytes graphics/pokemon/pyroar/icon.png | Bin 555 -> 492 bytes graphics/pokemon/relicanth/back.png | Bin 745 -> 612 bytes graphics/pokemon/reshiram/back.png | Bin 747 -> 670 bytes graphics/pokemon/riolu/back.png | Bin 803 -> 713 bytes graphics/pokemon/sawsbuck/autumn/back.png | Bin 901 -> 801 bytes graphics/pokemon/sawsbuck/autumn/icon.png | Bin 498 -> 426 bytes graphics/pokemon/sawsbuck/summer/back.png | Bin 825 -> 716 bytes graphics/pokemon/sawsbuck/summer/icon.png | Bin 468 -> 389 bytes graphics/pokemon/sawsbuck/winter/icon.png | Bin 464 -> 390 bytes graphics/pokemon/sealeo/back.png | Bin 584 -> 486 bytes graphics/pokemon/shellos/east_sea/back.png | Bin 689 -> 577 bytes graphics/pokemon/shellos/east_sea/icon.png | Bin 518 -> 359 bytes graphics/pokemon/shinx/anim_frontf.png | Bin 981 -> 917 bytes graphics/pokemon/shinx/backf.png | Bin 728 -> 634 bytes graphics/pokemon/shuppet/back.png | Bin 576 -> 494 bytes graphics/pokemon/silvally/back.png | Bin 718 -> 640 bytes graphics/pokemon/silvally/front.png | Bin 957 -> 837 bytes graphics/pokemon/sirfetchd/front.png | Bin 1032 -> 907 bytes graphics/pokemon/snubbull/back.png | Bin 561 -> 477 bytes graphics/pokemon/spheal/back.png | Bin 473 -> 393 bytes graphics/pokemon/staravia/back.png | Bin 779 -> 689 bytes graphics/pokemon/swablu/back.png | Bin 711 -> 621 bytes graphics/pokemon/swalot/back.png | Bin 698 -> 589 bytes graphics/pokemon/togetic/back.png | Bin 618 -> 545 bytes graphics/pokemon/tornadus/therian/icon.png | Bin 647 -> 479 bytes graphics/pokemon/unfezant/backf.png | Bin 827 -> 725 bytes graphics/pokemon/unfezant/icon.png | Bin 466 -> 397 bytes .../pokemon/vivillon/continental/icon.png | Bin 562 -> 492 bytes graphics/pokemon/vivillon/elegant/icon.png | Bin 559 -> 482 bytes graphics/pokemon/vivillon/fancy/icon.png | Bin 583 -> 508 bytes graphics/pokemon/vivillon/garden/icon.png | Bin 552 -> 482 bytes graphics/pokemon/vivillon/jungle/icon.png | Bin 539 -> 470 bytes graphics/pokemon/vivillon/marine/icon.png | Bin 558 -> 494 bytes graphics/pokemon/vivillon/modern/icon.png | Bin 564 -> 492 bytes graphics/pokemon/vivillon/monsoon/icon.png | Bin 546 -> 493 bytes graphics/pokemon/vivillon/ocean/icon.png | Bin 582 -> 510 bytes graphics/pokemon/vivillon/poke_ball/icon.png | Bin 562 -> 496 bytes graphics/pokemon/vivillon/polar/icon.png | Bin 569 -> 493 bytes graphics/pokemon/vivillon/river/icon.png | Bin 549 -> 483 bytes graphics/pokemon/vivillon/sandstorm/icon.png | Bin 548 -> 478 bytes graphics/pokemon/vivillon/savanna/icon.png | Bin 563 -> 486 bytes graphics/pokemon/vivillon/sun/icon.png | Bin 557 -> 484 bytes graphics/pokemon/vivillon/tundra/icon.png | Bin 568 -> 491 bytes graphics/pokemon/whiscash/back.png | Bin 724 -> 609 bytes graphics/pokemon/wingull/back.png | Bin 647 -> 561 bytes graphics/pokemon/xerneas/back.png | Bin 838 -> 740 bytes graphics/pokemon/xerneas/front.png | Bin 910 -> 799 bytes graphics/pokemon/xerneas/icon.png | Bin 597 -> 435 bytes graphics/pokemon/zapdos/back.png | Bin 586 -> 497 bytes graphics/pokemon/zygarde/10_percent/icon.png | Bin 446 -> 381 bytes graphics/pokemon/zygarde/complete/icon.png | Bin 592 -> 537 bytes 450 files changed, 0 insertions(+), 0 deletions(-) diff --git a/graphics/battle_anims/sprites/new/teapot.png b/graphics/battle_anims/sprites/new/teapot.png index 6be0680dfce165621cf650c7b94fb1f8d456f83e..0e26606418919a0f8b49d83ce7792fedfdc2f2af 100644 GIT binary patch delta 690 zcmV;j0!{t#2Kfb$7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007LNklvXS?Bns(SN}l3 z`p7>`)BFKJ{H*XkU=}}q0Kj?17~cmlAx3!DPbmbD0GV~)O*AbC^E^i;#PZC5m&t#q zPE$qX8ps)PjHQq#fE4#K7}RB27=Y0I4DbZ*k7m2@BL`@N5VH6y`^h{W@Rk1o5pj_T zSdbH_UHq^=pY&`Oexf3T&fp+o=aWEQH~+He+5FG;wV_gL<R#K(a`Pt6hRRs6gNAQF-HGmDUtvvP89|6@xI09OL-a#S6UjXR{ z*aL6}0uR_Tpt>`pLkS#U3TOW32s=PqU;v{DuK<4EXykZJOOY6AnG2R_%{GA$N>Uq_%raN+NaOtuKxzhVLaTn2E(;HS;_ZEK`s{Mv5_QuJuPH2?Jr-4m?8eIo_@ z!OsL}9@AJIz`y$C?Z61yrb26f$FCudBC+52r^R!1&@FpIeE_NBjT)02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00NasL_t(|ob8mqPuoBg$1hSO=unA+5E=;< zQY4{Y$~^xY4G zlY)n??Hlj=$@kv(y>kfpUw>5@x|9wq8{6pyhGFcd0z1Z5e>zYtK`KC2A(tk%%@ym! z{qmB$z>9~wdocXz#uv`Hb&cS#YB|HEuRWHxDl-jEive4O0yM`Rb+EGs$?H~s86#G! z3?cMS<@v!ToFpCc?Aj0&G}nWn@T zTgMK)2ulKJ@ml#v1Iw(l8ZKG_kpg=6oVV}vI81`X0RkfdgzAoS&Q%K;qlRlJGj^l_ zX~Fq@46JM(6LNN2x8{I{7+4lhs5>p6JOZI?;^CYRf0Dr4uR28x^fZ7WC4eF3fPPy6 zN7g>cOs3ay2-SqoJN>>&S;Y_;JMs)~7AV9369BV4tSAA{7|1eAxqzE~G7x}6H~K1s z1Qr9vc6XW9@zH=odofVQFJ*Cp#A8_kz!Yj#q%1zA%P5!yIR7vpF>ow^Tj8w=TWBJn z4M-Nif82k6Teju>w(7CL`O|wX100)W_$2heR)cKt_7i{>qShtA)G{gWBp!Svk9xt@ zfZPP-g9Jd_D<}-*6d1FG!3|xzO9JGT`wc(=O#!s%n^{11I-W!UjzHYdq8oF%=oEkZ z10=vHt;_>xfq+QU#8uPWpZ_x1JV*lopSPYdJRro(H-t>-+Oq~&@2IX;&V5cN*((ja opd;Z5#B^WMi5QrhCjZOz8+s?4P36)aUjP6A07*qoM6N<$f{LYJWB>pF diff --git a/graphics/battle_anims/sprites/omega_symbol.png b/graphics/battle_anims/sprites/omega_symbol.png index a821d5e40aa7b4fab4b28d545b787e47508920b9..150501367aa7aa0a870a2ad8ef72813e9bf7fdee 100644 GIT binary patch delta 198 zcmcc1G?8h71SbbG0|SH0lCEPDtL^IrN`m}?|D%DkikqeY)iijzIEGmCo(=LAYf#{r zvgiL?Z;8r=j@?;hpA~Bi*Z$=_qVcACV<*pU<4+y8I@Z|9JV|o;^YQIYO%;oVt1Od# zNOK+KlGJat*r1`$dT#x?A0OQ(+6x@5zG!12-^?Q#&APHt)2NNd{I$K}rI$zf3|SNs#-!Fbl2>1Eevp5;KtFnGH9xvX&pI=LyAp>Z+b}14xo^DiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}9o-U3d6?4`G+?70Fz>>n8)4-eb|E^Z(%lpy$t32NIO~fi8ynK^HBIgSIVm&0W8+MaVs=$-t@GmT{*|{&rgTe~DWM4fdN5@o diff --git a/graphics/battle_interface/alpha_indicator.png b/graphics/battle_interface/alpha_indicator.png index 0e302576b6aced8d385e93eee3a2919ea2e4d1c3..66f37f1d3353444663abadfb73b5801d24158d07 100644 GIT binary patch delta 123 zcmeBTI?gyjf|G-pfq_9omp^!7wSBrkNswRge>8Abanlr_8Z%E9#}J9BXM1+?G8k|$ zf86~4jG^cfPgxc5a<_HAo-uq%;{0Hc>VDQgONIa7ge~beceo|*_{}W$n<01Ro?d03 O2@IaDelF{r5}E*SM>cc- delta 190 zcmX@k*u^wKBAJDmfq~)e-A6${ioL|s*OmP#hZLid(zlr#BY;BUC9V-A!TD(=<%vb9 z4DLQI0e diff --git a/graphics/battle_interface/omega_indicator.png b/graphics/battle_interface/omega_indicator.png index c56d51c151e6c578e4a8935a7cf6bd4efaceb009..f321fc8263fd4ba43bac4e7039a1a86731282272 100644 GIT binary patch delta 122 zcmeBYI>tCbf|G-pfq_9omp^!7wSAgENswRge>8Abanlr_8dFaf#}J9BXV2^uWH8`h zcKq@sezPk}NkZy&;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ1c1lDE6d|E27ojsj(kJzX3_D&{07ED#e2YP-;*<;0fIHnCg5<%Ea8DT5FZAvWVV nBCR0@c*K&E**naVlMPrIIx?8=Ez0_J8f1y5tDnm{r-UW|^XEH` diff --git a/graphics/battle_interface/z_move_trigger.png b/graphics/battle_interface/z_move_trigger.png index 5e27dbabbe83560938b5871700ea63f0a8158dd5..d719494d9f0a64b59552862bed58adfc2c8056b5 100644 GIT binary patch delta 200 zcmcc5G?{6F1SbbG0|SH0lCEPDtL^IrN`m}?|D%DkikqeY)iim!IEGmCzMbeT)S$rQ zymG7S`})MoUGaxlW$w4R-s4f3QgoPgilN@=MOJ1L{1Y;^)MUKb=^^z*b*A?uw$o2r z?l!emZQ8VHV`J7@#Sf+lGnO8DUUWpPZPrDxvZoDOW-#|mcy97X?9=phdv+g+{u_08 t!n=v?d`>T0qVH93>9K6Oe4hOVgMcm5g-01Jw}H-K@O1TaS?83{1OOTIVoLx3 delta 276 zcmbQtbf0O0L^2CA0|P^2NcwRg#a`m+>&pI&U5Hni<4No1X< zXkX8mn z?p*j<-p0i=C(uQ_CnVqq%Z8-bGZsb%BM$9yYv1_HwX?H*WBrrT+P*7sKC8D(6FzRj zbFy{O?2Bs_HTg7tc2tz<-C+>@;$K+wt3w6_>YDM+4-6jMD9vF}tFL-8jjQ#QcXx$t z@xlTL8=l;2W^P}1Hy=vjS2@|@Bs7^lA~SpG$JXHHIWmGtahJsYlz16NyjoLvC&oU3 zr|X~ZPxHjRbLFI*-tronHKl7D<-Nu7O)iIlhkyUWbnT8WmiAk!|LotlLrznb{Y6GQ SM;91LFgb7-Iwj0001`EabER000McNliru;{yc%9V2mZQ~&?~02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009R{L_t(|ob8Z7YQsPbMdg$pKrx z;BmRtpquijg7Z>ISn@~|pKlgWU?J-Ah|B3WI7o8QXRY?>e`I|G*SSipKvLxEN+MV% zLb*;wVE~}xR{8?I%x4;6X{DPB=&Y3}SiK~hqXq@6k~wp}R3Lc~4ftw6b5t)U#qiAl zcu`5zloIuoX8UmvLQd#pHUPXvBt&+4K{81Y*Bws%LiH41068*(@?KwV<`%+TP#Klw z;x!CyfbM{gD?$7QfD7<&)B_USDGJR-@WXcIf3Us*&D28&%TK_W00000NkvXXu0mjf DZ04v0 diff --git a/graphics/berries/charti.png b/graphics/berries/charti.png index 9f119ebac0e9d1d9883bf3b3a92d57e18c57fe3f..399cd626efa83c80a69c4de5143c382c0f866630 100644 GIT binary patch delta 290 zcmZ3-{Dx_Q1SbbG0|P_C9nP&2tL^IrN`m}?|D%DkikqeY)!g=UaSZY3d^`Cp-(dre zW^RiwfA3fPS(01UD6@R!wI#8C66dHL|M=?a`>q4OOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007cSL_t(|ob8b@4#F@DMGN8pAXUs@gvRi*(%3C42oPbHs_jSEl?&~hUninYtJTnvsvo-(#002ovPDHLkV1gZ0 BiW2|; diff --git a/graphics/berries/chilan.png b/graphics/berries/chilan.png index 8f717bb82cfe103413e8dd976fca23cf26519e51..286ed5c3fae40a05c224dbd6b632c57120a6330b 100644 GIT binary patch delta 291 zcmcc0{FZ5g1SbbG0|P_C9nP&2tL^IrN`m}?|D%DkikqeY)!gxPaSZY3e0%vKU$X)a zYrvMR4gdcioE9YLqw!&z&bQRaBL3|;ukM)tH!O@lb9~1X`$rqEZJ1TQx^lZXgA0p^ zZbQ?VDK{+mEp*M~?zIJ+40y7Gr>ntn-uC>~SVk7j%N(nl{Oj94>-KQj&HcbLb;9g& z?G$OAwGzxi5Aq-M&h_xC3ze{TJeTPz@t$Q@S6IvQTVfNs!oKJSYDpcuU)AtVWYYS) zzHjHJxK{3J{r*3@Dk$Q$9>c1#^DbJu9*D(x8ok`i|KsVJP6_D^0m1XsjvVx!&XHi+ jT(h(!?bH1~zhbu3^C~~(-}6fd=u-wyS3j3^P6OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008+(L_t(|oaK?RN(3sc6XU#MGkA)TSJIkny;bN+;LGj}IQ>TpbM zyHIhuqbMQPqm<>+{GRo<#gsZP`t6e48R*2Cy6u>0T-F|=whJ3R{!mps(rxhZSyxQU z&S|zr2L@$l&!#Wy1b-OXk1 z|1CbUDSTl{!Gk%$8XMlFS_tis&s%fgm)UoNsKd6F9})|~?c#bC%|Cg%{lf#vPlwOn c|LHp~rkZ!_=BX=Gfx*V$>FVdQ&MBb@0F`5)rT_o{ delta 424 zcmV;Z0ayN(1M&lq7-Iwj0001`EabER000McNliru;{ya19VgZcD82vy02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009G0;G_d zUgf|c04UIbu7B#)Hd8w3ugW-JO=yYZh{&pN3)!b4X1Z~Uw3Spuwu*(&N)*W>WvrPIKt8? zp!1M_qK4qzBbR-TfBPTxYr9hHmE|4>V+~Z>F2p`La72kmW0UB@14?1ddlcPlURaB^ j?9X=dd-p)tUR2+76H7yhvf?_Rvl%>H{an^LB{Ts5IAw8E delta 327 zcmdnZG>LhFL^2CA0|UcSohMs>6nlxMuPggwW)?9W-qUZN-2w`Um$*ih1m~xflqVLY zGPwJ=1o*itl%*Ca80(o7wk~-HRKihG;O7pMF$S_3yc#s+ffP%+qpu?a!^VE@KZ&dp z747R8lf2zs{x4_W6marJ&aA90>AqY zm^RIyXP#mAIc0uw>MXzdbstNomGU`W(Gd}Szi@@giPm?Mql({aH)m|#uk5){ zX?5L&9xt&2+FmEu=JPMPlI)q6_dDUM+sg_zw#~|s3bGe=1?u0ePRw|+3N)kb;3><8I2^{rP6^s8Uo-f(Q WU8H6hlB~TBowWK`+Y z;IgEFD=Ila&@oi}@#F`yelaZg%w4cPGooZu*84w4IXhO>YuEoc%;LcObnPC~C-y`sA70<;_Ez{W z-`dU3w>0`x7)$)S6}L)FmEl`EOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007rXL_t(|ob8dpbps&`MA>x;u$L`h0T*C2 z2pN>M-P3;g+?N}NP2;91CN6h8P&v<` z^qP&f9gj}sT)XFQ%+&6)-cH!kq?RwWddSem5)9dO=%5q zw3NtYDB~1y%24)xpjXggSaw)w2}4O-Pe53aYJg$JCs)p6lKM8>b`_UA^?qt`_|NUn z;r=yMPYY*-vY6`}53+f}DX1E|q%&eaztL>gTe~DWM4f(>aO^ delta 392 zcmV;30eAlO0@4GJ7-Iwj0001`EabER000McNliru;{yc%7Yn{C6mS3l02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008z$L_t(|oaK^1YQr!TL=8?4;HDRd+XJ-7 z?mFSm&pKdzye-6tT%f2oNRHjF5GeXmpxe?}crlL|NqCy(pQ#O}JN~gA81MMbz1C`2 zymOV7If@7s{%Vf#Q%M0NUd}0UF#f~*b%_bs2y4@|%0ya`f158;ezg4PcVM_$K_!ws z9-RCIi5v{@AuMhm0&h!j?4Iq3(_sZ3 z=gb<0|NjqfEz{yc-9 zu~~CE>#`)-&sWs0e{C^ue(CsaMdcy+IZ_7i{vU1b*Jtee%e>~(!haqSPs{Ir5S}Ad iv&W=ZD(`Qkzepp;Y%d?aW^JHH89ZJ6T-G@yGywqZZ;FWk delta 385 zcmV-{0e=4M0?PxC7-Iwj0001`EabER000McNliru;{yc%6Etig{7C=+02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008evL_t(|oYjyqZo@DPMTx>mPtXf=$r^yM zW&>nAXAq4ZpdvIDU5Z{n@YuDt4c&N%Bx~pxjqmyCLk4*C^Zn5fzd!#iUK{-Bvmu^a zHyvuxon-*{s=2Co#Cm(wAjotq`95hN5w1i`fu|t86#H5If4HoaBBpm%6NE*e%Hyo+ zPd*pM-E8wLxtNqNF2NXl$!~#%%N^g@B;A4(hWi3>U5H8YZKk+9+}UF?-dSKA-%>UK z;K`nbh-NdszJluVXYWdYHk7dx*Z(d)1#*3sH$S`NtX_TQLt6OF9l8Dg9M2Tw&r`am#1J~Mqd@XPrczp5(t%^C z|12twvZYptPh=FC-Y{pg5|DhDmmm7jte85LPd4G-;2tzopr0IPeFO#lD@ delta 426 zcmV;b0agBv1M~xs7-Iwj0001`EabER000McNliru;{ya1BM>ihmdpSE02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009_DL_t(|oaNH7YQr!P24EZ0rBj3H3urJ- zr-X}_PK9F9Jw6N`JqWtj)U$`m>6oF!Yl9&uZ{WUM&kiZ*q&`5YMt%HuC;L3_pB#PT zzQ4|vZtwwCxN$;?sQZNtbYGkXv?Rd%wIawI(5gx!J}|h#fBbE)DzpZ;#k>)%LPYkS zgrJODikR*F5u$R8m=6sIwox}mz=RcM_57pUzhq!E2>`JcvW(RuEKEqT-pOvRzy$h+ z=~F|s^u`1a0M^?`mhT5xa=6#g^X{$(;E?F1lNN*|`cukSGYANZW7G)_{<#*7#b9g# zg%&o1Q{*THJT~rBiz25l;J-aQ%K&`yrU)cGYjKGHZ}AhcDqY0A+q2m(JO78zH-Y?I U_n5kgH2?qr07*qoM6N<$g1XbRApigX diff --git a/graphics/berries/kee.png b/graphics/berries/kee.png index 1c83b65b1943a2fc373ad1b59dd70662352c3394..37e1dc087c015edc35962a71b10bab437738bf75 100644 GIT binary patch delta 406 zcmV;H0crlt1m6RY7zqdi0001B+zGXjdp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003_Nkl{YyEf~)HMl?B47vfBa6&G5ghQo&dAbo#O zQVkp6@+J|uOG-(J_-)09kn?UhedQG6lE35CSn<2@c0mUC!uWU*sD`Ix)O5HCPFEQZ zNfGO_Vf<0#`%*}NnKAIJm_Q{ar!^aIq8Tjkfq_W@*|F@PGd#i8bwoG_=flXl%moHR zE1XY(7O555g3c6g!bzW}fNiF&M0S5F(6PX7sMrgMH$7Gu1T#J$x**ebaRKgedO`&3N%_SV&8r4Z-&O(j>hN z{(B&0jdoM{0E_nqy~MOi!`X28>Ts6KKcDgjO|28Fq*!t&00000NkvXXu0jG}g2@ZU As{jB1 delta 516 zcmV+f0{i{n1I+}G7-Iwj0001`EabER000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00D7HL_t(|oYj&sZi6rshMfp@Ks`Wh#!QJv z77~#g;3Pc&Mm<1y^aOS<(3H-dGA1LJ>w9hsCdvWYCt0%o&)>5#X6%2~T!{PmqVMC# zO~s=RFz>HRN7AJ)^cNwd@5Oo4H2~-6%y<_4nv?EZ#N`?plt|984aBbya2RL@xcLC;z!g!Ad|nn z4o24}?9x&%e>AQGXzKQ4fD{5*HiDK8)ljd>H^SPT)_j9PW;ej1Xp~x~!{+QX08r&j z498_pUDr8a41sh2s->$!&>mIpgJAD^HDHb_{;cfXXL;ZShORi6-y@Uf*6yfY7_Rl@>{6nlxMuPggg7C|N{8G{Q)0)ax}C9V-A!TD(=<%vb9 z4DLQI0e%sbNXzXnee9fdrA2;Mzg<>_ulK?{@EZ_Xm_#a;)l#wwI1`U^VgL=>|oKGo5kMD z(3n*_iOu$dfdhAl($gTe~DWM4f DUd?p@ diff --git a/graphics/berries/occa.png b/graphics/berries/occa.png index 1ad829e5f1a65fc9cdc66a0c61f044cb2e0834d2..1d2af365f926b6a656173da503485ca0134dcf3a 100644 GIT binary patch delta 270 zcmdnQe3NN{1SbbG0|P_C9nP&2tL^IrN`m}?|D%DkikqeY)tvBjaSZY3e0%9MUyA|{ zYd}__#{d6^FS9Eg^I6?}^J1^W`K79pF0G6Gzjn>l_`b(KT=tkUDD)cWFLjyI-NCTK zm$Sl%@6g)Q%I9SQpDp^Vu`mCGDx;El!N-i|Kna2PKzAkEwyO7zwQCnQiqDV}muEfp z=h@R6AB-m)6!`YDQj(P?c8~ChUt72STt3_M15^2Xe-~wgusmkY4}H(9`}f2K)cVPr zHb}nKe!l+Z(V6p@<{PcOUH&fq?Nb5%iu}Sy9o|a&4=8_PdVg!{HF4F=oNHrL<^%&h O#o+1c=d#Wzp$PzMMuCO^ delta 359 zcmV-t0hs>T0OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007oWL_t(|ob8b@4#F@DMLpyKmKfX>2`-QU zbt_VkU}Nb?Ixt)6V8*BmzAX-AAPy5Vf2s7IzQ3XZ{PRmfN`rm2d(ST!=K;36(Q{Sd zO&T2sFNrq4~~j+Y74T&9%XI|_ZWL(YJ@CPR6-iuc_q3ZZZV4!L9;A}$u2db zELfpKuEfz$v;|f#48`7Tu0=rVw7gt1VJ+CW6%=VxZ4<8rn{Wa<&4t&O;3$YFs5b2c z7ygpfr6Pn2cLg{jy}A1vp>S$B1YWV{0O>m}<~#o9BTr}IQ=dSJ$(R5D002ovPDHLk FV1iVPhvxtQ diff --git a/graphics/berries/passho.png b/graphics/berries/passho.png index c5414754505f3307821ecdc3ecae7fd633ab60cd..156dc18d18253e28f0fd1c219dc9466ebd5f1f8b 100644 GIT binary patch delta 370 zcmV-&0ge8j1iS-~7zqdi0001B+zGXjdp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003iNklUL(7nLe??k0GcN{9P?F};xL740V z+y&@Qg&YO>W(wE}MS`scL%H?teQnW&7}0&2<$Imhn$Q%$l|un4G;g~LVl8!{*4W6I zdF+Uo0k|-XyP&A8Dg6kVwZDW^Z$e%+)VmmBFERL(YQzJ)$g6PcM#J_GtM6&-_{3Oo zV}5qe(=SV|_@3Q!o=2bS)u}n}-~Ty(wPZ^TuIUq1C;pL;{-O{)&3AqwpW+Y@$*+#X QOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00BcuL_t(|obAy)Pr^VL2k?RkGRh*lUdhGL zP-7%)<|KXqS)53kU>g=(JV#yNxlPlgxqp~l_y!GM&bx!O$BUbTga7gQ<$1X_2>uh) z84C~9Sw{%LF8Axg=9b;i&YZj9gM$$7ThJLUhYnazZ#9U=f92O2F7UPs_mN=cGWFrX zl`x|Q=vwG~`YVK4K2Vv3)LU}oZWXC*>E|BQ*N;e$v9LhmLC0Ohp`$)9F6+%Yj|7hm zAWorYC8(HZjO%WwFiSxdAWn3b7g?ABYE0xoikPp8$N)Vh73g?^{CZVn%7A>K@|)C7 zC+3#L3S?j|XOjwGX5?xC?clhCbL4~ywiAq|4)rfIQNBI00000 LNkvXXu0mjf!2ry- diff --git a/graphics/berries/rindo.png b/graphics/berries/rindo.png index 91e895d04311e573be0436d3a2b2a91fc07b1b2d..74107789382335a7c622ac38ecf16b243454728b 100644 GIT binary patch delta 282 zcmdnN{Df(O1SbbG0|P_C9nP&2tL^IrN`m}?|D%DkikqeY)m-*;aSZY3d^=?)-w_2K zmxIR+{ICCbOQum|!orBm@KYiy|9mi9Z1Mfoc~zxfyo~G4TXwfNuzxjlvy}9>Z?8D# ztbU;QM>QUW*H1cUaw?tLcjVxa2>$0aYuh>f7jnGbc6y=={07plTv2hP9k(j%-ZIh7&EdeRaH$-Mp-zO%EdLf1ZDE^x15TCsHg&Pxny zRxO|4tDRIeHNE2QqTe=*(ebm+raskfjSjD|U$*@8BzE!Lv3EZ+U%y?zzVlFh=K8ug ac^^$y=LC_-kAePU@N{MKb6Mw<&;$Vdwt@%% delta 365 zcmV-z0h0dY0=NT^7-Iwj0001`EabER000McNliru;{ya16b!3%YPSFY02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007)cL_t(|oaK^14uUWcMW+V#P%l6SFJR#S zMn>J@g2W5x2~4fF9VG_@ZbK&p5)7|LizjvGJ6@8U z?rolD02Jx9tlS!Gh)R(LNXXP8vIoHGy&QogfC7R3`5iE|e*zD7n4Rum;EHT59!w(2 znW2CzGYU?o6c4&0+GTb>PCp1U!#TR@Gc&rnhCl zb9Y9k_yD3jnvWeTXm}aNj83&L)kTKKY-4m(L(+I_ZFbC^bpxTwlm=*P7ZhmNJ`uGtv_1**Yj4D z)Ykh%D}`9OPn6Q&P#gcNAJ;&yEsOen-{oBGzV+VP7_Id%=vB}4suloR9{{cmTs?mx zdVs)hh=RY;7gTS9CgEa!X;1+)HZev7{Lb{IDv;!e20uu5x(yYP3dSf8>1SD8)( z&_ww1FnKl%gSQ^*@bzsl0Ol{f8Na6M(<-xp$7EBlC-MZKI_99>Y! delta 503 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Cr4L_t(|oZXPIQo=wKMRx|l89LA(U{`yG zO=xJ4ywKQCY-ns4g%qZ-!@vg!+R!;Kq_8x^!Wj`H@dq-)N10G--@uQh?G+ zGw>qU+aXG!60gw<&6=U>;?kD_#RPOVw&P*s%k_nNl_||<+mB!1$l#t*4$Y~*3Y;y< zSJi7&flj#Mf59aD7|Wo_72u`<)}$9cNuXWjf>Q=yz4nN_W1BU!I0bOyo2j3oT-Rz$ z0cfmSGAL4YkOT}cL|+C4rfQTay3irz$G~Va4nxpW4G9o+t{R%&OZ%kM6)Y}*E;*2h tYY*o4Aolw?J}HV}&OJ#>?)XvbAI@fV3sjPSV*mgE2>?k&PDHLkV1m2+*dPD^ diff --git a/graphics/berries/rowap.png b/graphics/berries/rowap.png index bbeee3f3b4608f8daae62c16537a0c0da84bbb7b..decb5a2a99884fad677ac9b53c0717681f42260b 100644 GIT binary patch delta 397 zcmV;80doGe1lI$Q7zqdi0001B+zGXjdp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003-Nkl~fQqG{fpGR|ld`kPMvVt? zMY+udf?n8eiVUWj+K!|Pq?;_5b1ZqZMfnbpfvDDDhQ!o(?>$Sk7z=8U<894y^5LFg zAYg&VfCp>7NOF0T^5|W?8uG_@;Jx=tAHla12xj;f^n`aq?BBu13*M&Nl;Z`iadOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CJ^L_t(|oXya^PQx$|2XG?=DM$=tgeIFL$NY3b@ zKR+4Y^uy)&Y5=Y$12FJF-2Nv_0N^kUAbK7tN%~%d>sD?Ue-cZi!_D`q0ZC-kC^1B& zT>auq1U4-&x=Rc{S*rTFbD-lAwE~cqa8^T>uboU$gEWSVH4wh%Sxl(85wXmh*6S>b z3*@{kNZMrs@Zi!yTT0847RCd)*`~z6LMR&utmYPm3Pgz{BMKl&nTZgWgx| z$?U$0{LkH2<1W?I?Mf9$v+FXSbwNV{aG38#){*+{^~MKPG1yvmW0HZ>^Ge z#+rFhq-Ca#jlMwm&LiUMYEq9!uzqXZB{qX;>woR{T=V&!);dm|To%6L`0i^m_2xEp trZxYP0$Sedn>6#QHm;s@X#O9C{1{J8W&SDWQ-D5T@O1TaS?83{1OSjea>oDw delta 337 zcmV-X0j~bW0-OVo7-Iwj0001`EabER000McNliru;{ya1C<&OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L006*AL_t(|oaKIGLbyf?K+WTeBV()@ATUJSDnA~+IBAE+`OD$!@BM(>&55^%uD73 zX9O){n}0pIu1g@)#rf0Exs!fqe&YIiLU}jihs{5>^Kwkh+EiS>uZCN3Ry>E=@p6WY z32YgMSQdKGJAmV11}~Aj(O@VY2syU74KMu5vc4ow&9x&8ONW z-y>Q)G o!G}L09a{F6{y$XrdU+L7_jc|{CiRNez%XR+boFyt=akR{07e3uRR910 delta 432 zcmV;h0Z;y;1NsAy7-Iwj0001`EabER000McNliru;{ya1G85&a02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00ACJL_t(|oZZkdZo@DP1yBkIP_$F!7|0wg zo&)IufvFpazCkkwUL0r2*0sn|C>JQ2Q-_R@t$AC2+rSXt98Y~X1zytX_jcKp+**$fu()J5Gu(M9ic@2JckwEGo0XB zjY(F3upXh-DRks4uNOv4oVB6{@JI|IK#1b3^)5c0JJa5rB@?g?@d3$(VYy#O20$Rr z|IlFyJYuj2LIU-4JYogeNQ*3dhfM~eHS^CMG61P3*u3Weu;#uTE=vF@<*5h&&8gh~ a!}SBNT4B=s&!1EP0000cE*d3E55u4-}tg`?{~dTz8gHIFT170u&~p_SA=QD z8yAKL*H&=qJSo#sbKN8p(IZi&Ze$b?3 zkf?MmR&3{#3uaFH@9OSkaJ>A^{L!oXtasKMA9_D=O|xict>>hPRi`)Q)$DS!x_tBF vjsuRfT(|K5Z#!qY>+7kzQdJ`Ie<#Q7uH~rK^jvlq=xGK|S3j3^P6OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008YtL_t(|ob8e^Qp7L}MLhvrW0sk1gM9%K z`2vf@4U*ooMbd9!?Fqo#Ah|7$Q(0?L3M_ZcC6ydBa~Yb*J(mnj1jdQa*hxc11oTaC47P@HOz` dfBA>?4b}8W5gnWA)Vu%y002ovPDHLkV1gDrnZp18 diff --git a/graphics/berries/yache.png b/graphics/berries/yache.png index 3f397827701679cf57db19244f171ec6afdcb507..43ebf0768281b97f3da8d52e8722bda3607e1266 100644 GIT binary patch delta 356 zcmV-q0h|7U1g-;+7zqdi0001B+zGXjdp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003UNkl{hYNT`G8 C{jW*@ delta 440 zcmV;p0Z0C>1A+vQ7-Iwj0001`EabER000McNliru;{ya18WC3TE8qYC02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00AaRL_t(|oaN9#O2t472H>Ge*Op$O1{B}U zN8bTl^a2V&T>2J|x^*)ru#E1DX50xvC*I(BIg^4g)Ak)e%%<>vB$L#be^$p=hhS~$ z15h@X%dnY2wyTUeS~qo(=I5>Jwx%d+8J6TuYb#JTO`3ZSf3CYPicKBum6LmBsSc#& zBx-o@gID-~(<07u;^6lqK(bRN^WVQm!0Q-R0$&PGh&M6F!-4n215Ti2CLid{S&LZ3 zKZ6G%ViK@1BR^owzV1SbbG0|SHMLoVBi)%NuQB|(0{|Ixr%#Z6OyYBD`t978lF?hT0MJD|W( zZ1k@Fso_DTBWG)8m>&6*aqGyTwxkDV8y?Dq ze+h7&HWt|$EB4~x?5pB)xgMIe7#&=j$gw9e;~sNSK+c)X=cNNaU2n+U!Lai<_ltkt S!XZFg89ZJ6T-G@yGywpM=u>3? delta 261 zcmeyxc!6nxL^2CA0|Ubs!RIzWioL|s*OmP#3mdZ>w{&u2Gf+sp#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mgWiLOx74>Jrb!k=_1>rp24?QwLQh{Z5>7=yz*&*^xI{B{6fD zHlOckuxOb&bG1VV-%g>C~X*ci-LsIn&eC&t;uc GLK6VH31OcA diff --git a/graphics/items/icons/ability_capsule.png b/graphics/items/icons/ability_capsule.png index 4cb366137fb5c1c6e016792d615d891835589d6c..49a70ffa56c3c5e85712427e041cd301abdcc8c6 100755 GIT binary patch delta 179 zcmcc1^pA0Z1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J&eux;TbtOguXwn(u%D z2aBs?cJ1B&+m1SPo7p-%FILxKeEyGHCud_glh8~i`DCFFCuUyN72=jYDU#Ar9Tc^@ z;~a-lkAT<8C-)b9)$|IyIB&=530mxXGuJpxw_dST+gScEU!uIKLeZZ4|9(#TU&we( XlBIU~B;%Jrn;AS^{an^LB{Ts5T*^>- delta 274 zcmeyzc$aB{L^2CA0|SFlq{3++#a`m+>&pI^m5EVTGj_YqVW5zBiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaf4o-U3d6?2jk78oUnurM-mM0CZUuCigNQTn+#mXH1iG90$N!oqO$z1kyt TmIYgY4q)(f^>bP0l+XkKmI+>R diff --git a/graphics/items/icons/ability_patch.png b/graphics/items/icons/ability_patch.png index acbef74623f7ea65a994931b036e3f79009be211..8f14ab7eeee8d2b392bb5b876846e2a49b44dd9f 100644 GIT binary patch delta 168 zcmdnN^qFyj1SbbG0|UeLm1j>)thTQgC<*cl{*MOEDsGwrRFmZC;uxYa@os;hP=f-8 z%WW5tDSQ6sI@e!%#q>4p$4&Fo2e$p?Sm6JB+GfVm4OS+`N8TKHm=?_Aeo1T6<}0Tc zRHXZ_(po2Wcx}s!N#dJ4=1ec#C~zWp;a9VUnamd-Kl$#y?=YuGt|-$7{Zgq7K&pI=Nsxnw^RUxXX`qmJiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y}r`$=ls!LIqbJ4^TG7)5S5QVoq|x0%?I10TGdwO_If|=jT`|YcM?gvsdEc#j0lt zE$aKj*S&hubFMj|@5_Df(A8<@W-w1nI&)tp?&d{H(M5ha>o*=hqZz;~dGwNxOk$g{ f0hg2SGFb+OmuDpUkG-Af404U9tDnm{r-UW|#a2*M diff --git a/graphics/items/icons/absorb_bulb.png b/graphics/items/icons/absorb_bulb.png index d958ab368400806acaa18f633728fb51d7cb556b..a63f7a8bcc4a57df0b9ecc18498672109bbb684c 100755 GIT binary patch delta 196 zcmaFM)Xy|Qf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfokeJT^vI+CN7=W%XL_R zr=@!O{Gb2)_sm##W{V)3wc`^zeYYZ+{~R}dOqu4Oc}p;YUtx&}OO{EcPz9S)-|YXt z8oU<7ZxCx%-yp0bxFT!M#EBMR0&vUz1?vrf(T5@j| pTs@Q1qGEqt>kjFM$NmTAzq-w|_fW%*PM}j5JYD@<);T3K0RX{UTGapm delta 290 zcmeBYddoCHBAJDmfq_9NQsFd^VlVOZb!C6d%ET+r+Rggb6euKK;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tbkr;B4q#hm1X1N;)K6D*wCJcRtzI5dwb zsPt`^v{5N%&t7czH7@kFf&%z^5Ul9r_8ym`d& zbcdGYZU@UGJv~P~Jw1Wco=m-UdU}}wmv3D%3A%g9Xu&qGC5(>BXDk;93N{u@H_FOT i_~{oQIDPv@MusmR#f5Afi#7or#Ng@b=d#Wzp$PyZw_j%f diff --git a/graphics/items/icons/air_balloon.png b/graphics/items/icons/air_balloon.png index 6ed3a9ad214d26512c6cdac550934aa244e69a89..dbcff6d13bad5c6b20af3c7947465d1bd0e2cdc3 100755 GIT binary patch delta 173 zcmcc4^n-DN1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$H^x;TbtOl<9Q&pI^m5Eo*JnCfc7od=MiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyag3o-U3d6?2jk9GIJ$m^ijgnxxosJmb-l zB{^J=S6DDET`(s>Rl$Joz%j$1prE$mp57_Ff-(XPMG=lUGcK+<>ENezhIOGsC&P~F zLuUkX+7wh(__8%N$unKBSXjUqX3#QQu3@E^Tw;o*5&O{^1qKFI0bzE5@Yat&s~J39 L{an^LB{Ts592iyp diff --git a/graphics/items/icons/armor_fossil.png b/graphics/items/icons/armor_fossil.png index a24d2ec4da2ea92769d904e4094a51fdb2bb7184..7647f9db555bf089b299e48011b468231053156b 100755 GIT binary patch delta 287 zcmX@f{E}&c1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J&H{ba4#PnAke$b|14L zhqHH+;gkRN6~2?Uy^7mXCy`lW#CFI=?*Hj+bsvwHFx;PcbHZCgw!cTM5`7wqnwKoU zee!|M`E5%%-286u6FzZcTSLGnrWd@W41ZZGlJvOv_cLtXWVWh)f=xko!wWxY&5%>K zVk3LsC@8Xau87{_Sp7nAQ-6#@@3zy6j(hxIZRAWXwU%9?a!=o&ERZ)~zopr0H<+@p8x;= delta 383 zcmV-_0f7GL0?7lA7-Iwj0000ISs=>*000McNliru;{^f@9w$eBosa+k02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCv2MaZ z3eG7$G!tqzaJiFodV%9HFXeJ^7Pm$-f=v zUvbWVdiJa|cOSi{f|=~oka4dU34>W~XWpVL1R|KN>#*)}e=JLlmz(&GyF#d2LigCfol3aT^vI+Ca%5cE!1Mb z!4e=XaqxG1#e(Dffy+;|zL}KHuCwgrTc(0~{VaykKTJw#vsi1=dKNrevy=OdYmB7V zO~#4o`U|!=T-kYRicEuQ(*lujo(!uDsp%A-|XZHTQ`*EV=DokNyGO#^CAd=d#Wz Gp$Pznv0-Qc delta 316 zcmZ3$)XqFXBAJDmfq_9NQsFd^VlVOZb!C6d%ET)tB`-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|APZ!6KiaEXKt@#ca@GxBX!e+{y+B@-3 zm(0oHQ13H3Z+K)HI3~{3JIU#l?>)t3DKqoDKTrIVmj2_**k9Rf+t9?N>r#-Zz2^JB zva>g=lG&@~6(^?Tx9-qY*gkz>g7}Gr9P-)`e$kexCGRJi>Q!Ve-?+uJa9)pbf85lC z9d80Z?K-QNbgPk7kxgm&>D7sRjqkqRzM!gWzEo;WUhGr*$INBZRD3OFvho0(%HZkh K=d#Wzp$Py@@NtI# diff --git a/graphics/items/icons/big_malasada.png b/graphics/items/icons/big_malasada.png index d24cd9e00d3121ae551fc82c594a5391e3d29981..a651027774bb3307dc4f6bedef00129b9becc707 100755 GIT binary patch delta 223 zcmeBVUd1#)f|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfof)Yx;TbtOguW_BHv*J z4p;33JS*=0|NmAmYnR^L&t;x97VZj(x9etXDmr}RjEj+LrFjFHyDV)SCg#Pp z2XNOM4RJ%i3_41t>3;k_Pc#0BkM)hUWe$Q R=|ER9c)I$ztaD0e0syLKWzzrv delta 318 zcmZ3*)X6+SBAJDmfq_9NQsFd^VlVOZb!C6d%ET+jJLhPK8&F8R#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mq*GFdponv&D>re@6SF< zcizsb=QDTL$FJ96iHw@Gv+C=*SZ!9;1Lrg^-q~BURAJI$R>>8N3=7QlLq2StVFh$7 NgQu&X%Q~loCIJ2Fbs7Kw diff --git a/graphics/items/icons/big_root.png b/graphics/items/icons/big_root.png index e857cc5f301e74dc95dbcdeb839ac9e802f63ab0..ef20e8ea541239af49916673741a17bf2875258d 100644 GIT binary patch delta 259 zcmbQwe2!^?1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J&&Hba4#PnAjWW$#>X+ zLwfVy|0lQ3+_pfg-A~B%0qdMOpN}`n$^FheTv6>}AtowzPI%%THp2-Ln!D~jlsDg? zQND4l(PwQ#%iW=;J$^8}h$>UrUD-EzDzoU8#QW2Qk1pdhd2%ZMbfFDTYmuT0 zC%t^-r_>ZV&9teDEvLaiQ^euGlRUuxlKtgH}Mc*$EJbs%*000McNliru;{qHFA}pb~!CL?T02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCoM?cKq`A;?^d7yrX)m5ez?v}UX5f|%zyaSiS(;l9?k`g# z;UY(}GocdN0c^~t5SsCUgeoR~fJLlmz(&GyF#d2LigCfokeJT^vI+Ca#@$k?)8C z2g^~`jbH!&-!AlyYpY$EaD17O+lDFq&MC(?ec39Ml{)d8!{%_+Q02YqPG?pHgifoI z(JyKiV_|v!R!cC7wc~l1+Jh_YPBU08vS%>(-DEt?$HTnvNVP%i&xOWkAD*&T?w@xs p`S8P@($9UzekrH^54`_`>D&vJKOe0WNo1X< zXkX8m_b7?W~xX?V{ZBI4Cdf-7QOICDli9e2-L`EZd$vRb42!wlN^}>CuG?7bY?#^i}WF zoFL5gY{m|W_CuB@k9iBu*|H^sB|SPSOydlLIon1P0e!Bd{t_vPoR%HzhZ=W9ODQr= kVftit$mU4H6U!u^V~e!n7N5!A19TIEr>mdKI;Vst0A#*mkN^Mx diff --git a/graphics/items/icons/black_sludge.png b/graphics/items/icons/black_sludge.png index 2e1fac755f6e1ebd387828cdb667b0172769013b..9987ef73b6ba849f882e592e71330535f7ad732d 100644 GIT binary patch delta 204 zcmaFEG@WUJ1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$&7x;TbtOx!!+Am3pF z9;fUL|Nl>K&z!t8H*fMWRUv)GpB?%H8l!`E(BmQ!@t9eX-S=5uO`q*44$rjF6*2UngAC#Ub_GQ delta 289 zcmbQv^oD7IL^2CA0|SFlq{3++#a`m+>&pI^NrqQR-7H(;GEhjo#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8m$U< ks&wA?Q?opC-rweXJS<|3Z&-pC0o}vk>FVdQ&MBb@001&;9{>OV diff --git a/graphics/items/icons/blue_apricorn.png b/graphics/items/icons/blue_apricorn.png index 35d0ed23b24bd46ac022e2fa3b8e65abc9c2ad5b..9e1b19fb30b2ca86eb7382dc3d80002fa7b42610 100755 GIT binary patch delta 196 zcmeys)Xy|Qf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfokeJT^vI+Ca#@$k?)8C z2g^~`jbH!&-!AlyYpY$EaD17O+lDFq&MC(?ec39Ml{)d8!{%_+Q02YqPG?pHgifoI z(JyKiV_|v!R!cC7wc~l1+Jh_YPBU08vS%>(-DEt?$HTnvNVP%i&xOWkAD*&T?w@xs p`S8P@($9UzekrH^54`_`>D&vJKOe0W-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tc9r;B4q#hl~>1u+9I11>Hu2TP|eH?4)8 z0&)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g!ZT>6Htw16164!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>zJY5_^D&{07EMQ6yVPRs_aQC=*Yd%Q*qf#AI=W05cYE329d5sg}~sOC;uoI`{TY4e>c3Gx@@W1Z7p#4z)thTQgC<*clX84Z^4g_>N1J!Kyba4#Pn7DM}ZJ}lZ z4i{Axr{d55|8Mg)@!L}Sa?0^ywsO_m-_Bo{p>I*pBP7@5;oQ{0wDps~m9_`78SPms zyrwS*muQ>WSgdzBV6A{!64RZi_IR~mx<#sxn-b%bPtxDn%0zW@qNDEPF?POkM69Wm|wFvXZeOr sMKd0Con8N>hF9jXu>7mnoBtW*n~1Sz_CDVn2y{P#r>mdKI;Vst0Fp;@NB{r; delta 348 zcmX@Yw48Z@L^2CA0|SFlq{3++#a`m+>&pI^m5GmC$MaQiBv44a#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8my#J3-DHCetft5yLb~%URV%!%7neu-{ns*Y~0e9aBz3|`~6Ik zx>o{kNp1Xg@9$NGK9}kZ?ze93PSE9XTI#Spv+K(8=(y85}Sb4q9e0AwwKHUIzs diff --git a/graphics/items/icons/burn_drive.png b/graphics/items/icons/burn_drive.png index c83fbd335896fb69b0d5bec7e57d911034dbdc17..9486eff484acf45f61232638f9f31f690154d7b9 100644 GIT binary patch delta 183 zcmcb{)WkGFf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfocjpT^vI+CZ3%TDAb_9 z;lg@t@BfL;7iOHYo1MA;i>>39t@B-6wngxM3+b~B*t_b;vWY>$>8-DB2K-qO`Tkr@ z>qFh13D*v0Y|)xtU~_1mgzAG;AA}NeEZ#AB{pdDjIoX+=;901Ac(c~gXTiq=^zZLD ce*Y=M)iS1e?Ems718ryUboFyt=akR{0Pfvc=>Px# delta 267 zcmZo-y2dm?BAJDmfq_9NQsFd^VlVOZb!C6dBqPqN=OeXm4^T+F#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mN2q-XQlQD6bfbEn7SgY@c->#-TqQ_L)mwnsryPk9pA|qd{p$yxqF#$K${sn MUHx3vIVCg!0EWt6_W%F@ diff --git a/graphics/items/icons/cell_battery.png b/graphics/items/icons/cell_battery.png index 6183bdb085b331e37b8df0e501c0a7f616f4d2fe..23fde6a299b8d0f1da5b80d2b0c664d65aaaf17a 100755 GIT binary patch delta 131 zcmZ3;be?g71SbbG0|UeLm1j>)thUb=C<*clX84Z^4g_>N1J&4hx;TbtOuTzhQH()> z!^JV7^|$=Zt1Bj`{8awDK;hGbO(l5^s*4QTqD7i(8QFVdQ&MBb@0Q<)~sQ>@~ delta 213 zcmX@lxR7arL^2CA0|SFlq{3++#a`m+>&pI^m5EozO#a9H2S6e564!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ27JlDE6d|E27ojsj&FOM?7@862M7NCR>#JY5_^D&{079N=eR70huJLlmz(&GyF#d2LigCfojSOTB4YTH{*ETksudFsPUl7xl hth@F7q4>Vbyh6*F)-tIqx(9RvgQu&X%Q~loCIEr{Qy>5U delta 284 zcmeBRdd@UKBAJDmfq_9NQsFd^VlVOZb!C6d%ET+9I@@iY9Z*QT#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8m}6~ad%3? zs;>-=6^*y-xkEnvQ{E!_g(ZE9I^utk&msF)BGG5(i`B>1hw_8hop5FUYr;3g16DBsSS#+|$(p|;1y({3) dr&IY~nM!YqZGYz9@CfJ>22WQ%mvv4FO#lK5Yb^i( diff --git a/graphics/items/icons/chilan_berry.png b/graphics/items/icons/chilan_berry.png index d1516f7323dc1f2d41d6b928dfeec32d3e960690..c78465aa2183784fb25dae9019d59d3ec89c2ac7 100755 GIT binary patch delta 196 zcmey#)Xy|Qf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfokeJT^vI+Ca#?rDAu6B z!4fOJ>Gyn#3qe<|hrgX~+_XaTufT)W=RKA8_ZEvWxNgysIW7>eQgMzrOP$rW1yh8$ z=1k5yc;xENYX*GX2UowE<9x&Ou!GX~mD~MtpT#996-Dbf&1*7n&AG$kT;H}brbOm_ o;#{exHN_iJYbShjFTd0tQ}CEYy&=Yv9q1GWPgg&ebxsLQ0B1*A3jhEB delta 302 zcmeBY`pGmwBAJDmfq_9NQsFd^VlVOZb!C6d%ET)pa%#pr7NC%LiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyae-JY5_^D(19KFyuRIz~Oq9w`o$?%xdQD zBBtb(*-s)~ao*Y)tT&ZsGI)>mB$W?)k93{dR%PBmNKb3=f=U2%BgUbDwQ` zyGqyX<1v@#?a-UOd)}d~V)J>bSFP>RT-^91L(rjgYh(AJH3~}4W>4lkBpWr~dPRWE x;b{+EY{+_Ftv1c4CdNQ0aK9Qu*4#fQ#hoWBC0AT2um?Jh!PC{xWt~$(695I_ad7|u diff --git a/graphics/items/icons/chill_drive.png b/graphics/items/icons/chill_drive.png index a2c7e98a6893275c11b47a829d37be8a4e0668c6..d3d5e019c2469a4d3fac90b9d18e55ff276e5329 100644 GIT binary patch delta 183 zcmcb{)WkGFf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfocjpT^vI+CZ3%TDAb_9 z;lg@t@BfL;7iOHYo1MA;i>>39t@B-6wngxM3+b~B*t_b;vWY>$>8-DB2K-qO`Tkr@ z>qFh13D*v0Y|)xtU~_1mgzAG;AA}NeEZ#AB{pdDjIoX+=;901Ac(c~gXTiq=^zZLD ce*Y=M)iS1e?Ems718ryUboFyt=akR{0Pfvc=>Px# delta 267 zcmZo-y2dm?BAJDmfq_9NQsFd^VlVOZb!C6dBqPozve4S(EKo?i#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mN2q-XQlQD6bfbEn7SgY@c->#-TqQ_L)mwnsryPk9pA|qd{p$yxqF#$K${sn MUHx3vIVCg!0BxdQ+W-In diff --git a/graphics/items/icons/choice_scarf.png b/graphics/items/icons/choice_scarf.png index 51157fcc22f097f39c733412520d48ece1571f84..99e126453ec9f13f3ff2097901cfb07913860046 100644 GIT binary patch delta 272 zcmdnbe4A;41SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J#`Jba4#PnAkhXTj+=a zhfDJxm*W4Q{gPD!jW+sa#pQe(Q#;-#BB=;d%8NN zPhI_>I61Up+sWD+v#VLevnF?keRwC76|=10W9_N36%f`d^jcy3mbj34m4P0UwSTsL+iH%xQ{riovs|x)@7}r%h_q|%7 z{yVS1V8fc}XW2Mx19n*jcHc>Spu3PYZ>nBIvG*~P9Y>|_OD7%w9{*vpo$ht^()_P8 R?f|{T;OXk;vd$@?2>_64hO__x delta 373 zcmV-*0gC?H0>1;07-Iwj0000ISs=>*000McNliru;{qHFA|o*d+{yp|02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchC)thTQgC<*clX84Z^4g_>N1J$&6x;TbtOx!!cQH)uU z!&#MQ!M*&pI^NrqQRE;Db!ZJ>~NiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyae{o-U3d6?2jk6vR0cH}@v!sIe&~t4g@L zo`{&pc`Pv0FR7t$#vyOf1y-UGGnAIG8)`5tZRrw~kXSv<+K_dn28XCNQ|hW|?5n3u z*Amq>Vz8Y0_UY5u%if}r4Ki(CKB;^TeH)N%F?F)&mEF^JLlmz(&GyF#d2LigCfol3ZT^vI+CN7=mD0D=D zgXM5T)Bpbk2Yf}mzi-%j=S^9|k=MVLcf9C1XrXaj=}p#dy`WQR9CiDz3HW47d#p6A z(iQwvY{E59{KG#xi&fn-6~$ESj<-BG;@&dvbNlgDMFyXFEFliQhCc-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|wPZ!6KiaE9Z8wC#;@bs7+Sg4@e_kP93 zEsalkZJgOWrfxB5oTm11TVRg-4#v>`zpi^{&HB%}>d@N1o2JdN6wKWv zFw)*Y?7n1e!3^aC0-GnOFiNH!ku!eD&loJ{;T_CUbP0 Hl+XkKA%kz# diff --git a/graphics/items/icons/coba_berry.png b/graphics/items/icons/coba_berry.png index 5ac21683e07f5d7342f009cfc8aa83e9c029e1f7..05f117f4bfa48bf6783c1256a2a57a2ff3dbe983 100755 GIT binary patch delta 196 zcmeyw)Xy|Qf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfokeJT^vI+CT^W*D0V=B z!`YST-v48+E9?TN^PT+>+{C-|j|$h^Ek)r=d#qbKD^0D~TwE+Aza#~Q>KuE}7AkhQ zsA>DMNj>|n?3Df-YR7Q8Q13Rw4e>di-%d?`uJS+ic5|-64t0ZThY#Fqmt;;}pIkSu pYw3e~<$5(S56c#wzH9fIQO<^W!q!!vLV-?U@O1TaS?83{1OP~WT`>Rv delta 295 zcmeBY`ouIrBAJDmfq_9NQsFd^VlVOZb!C6d%EYT=cpx&+4k#pE;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tb=r;B4q#hj`Arv(oy@USjqHV`#fcc9LP ztHXtTn)C?=s|~mLpFIvP>hRmGym#V~EA~s*Zf$q&lb5%yc z!z(FTz26mmWsd)~d6JnmC)sYYj;YX$qG`Dta+aPaw%afkN>?fvtlw^M`O>%GhlMkD pw>=0ISNl=-|7(|N{JcMr@)thTQgC<*clX84Z^4g_>N1Jz9Pba4#Pm^gQ$qfn~> zhcj=>@A#kUA6Yy(DWk+tS0f zD>J{>NKLu?MW1rZyZ`SKQ)*!IpAnk>^g^2H<=XUv-WvxU7`1+Gtt1jk^A=R z8-H%eD)N5&6Z&9_{j2x8E#G8JoZI$w+t&T}D?Wc#v6lE=-86l2U9Y^2EYn8j3o_zB PCo*`t`njxgN@xNA7s6?+ delta 301 zcmZ3^^n+=FL^2CA0|SFlq{3++#a`m+>&pI^m5EnL-K6(PK2S)!#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mU$IbewQj=fI{{F3={m#QXix(6Z9DWgZmv!>=v*rQIN^=z2GFKYhIHHlteIiZd zq}UHfp`^kGe=koF*{uKbLh*2~7Yu5^V1P diff --git a/graphics/items/icons/cover_fossil.png b/graphics/items/icons/cover_fossil.png index bc8bbe69b5ee1c2d6db9c3e2fc959044e527a49e..1202bb4556982ea61cfc26c09ec2429455055754 100755 GIT binary patch delta 242 zcmZ3)yq9T$1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$hYba4#Pn7DKzH{THj z4wr78rtkYd@NF@jRW{jIY;w}`kHP(q^@S&v@7($=Ws0cR;l3lg4#}4Aawm!&vwpl$ zkn{DG#A!#j+;@;zA(1D^pKF_vX<%c$ShHAvLMz9W7g_5#B@V}RMsO79@oFoW^1OO% zw_~T{4()!2ttEWs(N7jlQ(w}}s`4n=^Oy4L`41Wc%KB m^P`3H&px^>z3-I$E%vQJtlAUf?#lrk&fw|l=d#Wzp$PzWUU9Mj delta 343 zcmdnXw1|0vL^2CA0|SFlq{3++#a`m+>&pI^m5EnL^6Q(QM}R`&C9V-A!TD(=<%vb9 z4DLQI0ed_&uf(2v|N zj9+9#t?6+&u#Szbe3nTMkMA!=iTZFZ4+)<=mu)M*@7?p-qW;NF?)|r`HuGyVb_OtN z>3vTw61^a$_pnmpg;rO7i;d12$vvC7Tl{B#&OE(DO=m^lI^U@$7b>u@t#C-~DPC25 zL%^+ZWnaVrtw}MaASi9Nbkcr(WRg4M(ru4>8GcT$#5HxQffTw1p!Z@K$MGo}A# nPWudB#_-K7i!6Ou|B`u)jMno%tKND6eZk=A>gTe~DWM4fIvaz1 diff --git a/graphics/items/icons/custap_berry.png b/graphics/items/icons/custap_berry.png index 3fa594667d46ec342b5b3c790038481f9e289182..56f1492c3cf70c2d6f73d0f5ca814058bc1ab836 100755 GIT binary patch delta 229 zcmbQnyn$(g1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J%s;ba4#Pn7DM}L%zcb z94)7xT=?{le~}wy$3G%G$pR>^!%7Yi_z)cJYa`STy5`D4q#D z9WNOgN|mPbU%3`_Rc=usYs0m3nbGNJ) zW#BFdKT~^k1&f)T(ybk9*H(0Fd~mzCY(m_Nzy#?T_Zn`m_x(`jtF-yov%V*%m;PI) ZJ}Z*000McNliru;{^f@A`byLOqBot02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCv5HykE%AfDay2seR!$oo4 z%l3MpY;Rq$M}+7^mB25km0;C9q6XBmFL(r>2K$jPvKZrNU6=V4Mky6w-}p>u(9Qvm zH9-!u)u7h=8A#O7=gFoef}$~DLeR=nj?spaywBShXB@d5o(vf`=JlJ1b??UO@P70R dea_Cm&lfqeEgWxo4iNwV002ovPDHLkV1g@Vfw}+y diff --git a/graphics/items/icons/damp_rock.png b/graphics/items/icons/damp_rock.png index fe908739e5bda6005cd8e8c4399d9739359e2aa6..97c75b08fda4ccbcd38956a4add92cab3be8d073 100644 GIT binary patch delta 254 zcmZ3>e3EH`1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J&&Cba4#PnAke;wh*%- zhqE?I%m4om*{)wL-DP}s@?pgjPe1=$UG~ykYr0=ZpsbK<^|7zhW<*wZuHJF;lSyo= z%bo2@HNX6td1m|4##dkS-^*^)w*%y1AC>s_&@CFId<=D<>|*w&%fS(>>Yown)RY{xb7XGCm1|k{an^LB{Ts56$yM^ delta 354 zcmV-o0iFKI0<8m(7-Iwj0000ISs=>*000McNliru;{qHFA{qAz1$Y1e02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCG{iF44r@)#=^Hd5IYATg?31QFIr3;-!?*dfqt*rSyNM0b}eC zVKD#~zC!>ucy)J)*r6>kML6DKUF9G+vsGP{T0}B~SdB}IbVX5FC{WYVzAVBdQ)4zP z{p{mo52cE&-@ytsHQzNyu>95yAAlJlj2_lEfJw29G0XM@QQM{@G17F6(%6P1C6)EO z>C_?hsJzM@I0&U;$Hfg5YWL}VLUK%cEaJSSA0+cKS=}nPmjD0&07*qoM6N<$f&x~F Ag8%>k diff --git a/graphics/items/icons/dark_gem.png b/graphics/items/icons/dark_gem.png index 947f04167490568a9a072b7bf8aa17e1d602a135..8999ca25acccf81ef6e86cf9334c51d3023326e3 100644 GIT binary patch delta 176 zcmaFJ^qX;l1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Cx;TbtOguZmo9}=E zhfC^@JO588NvxihJNeuvTjPece-*YA6*edzNbFEg7h5*hdd5fbEyXX^2-Wd)7GITl z=r%1Oke9jT=B`UB)0212wEQ?D=C_snp@R4oiyxo89AdLhzw(Vt*r$(&P5gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g!p{#RF15il3#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mLLPLYkF%s-<-E5{bE?&b_@;LwpX%Ould-L0MI`LoM<8g#cAm zQTL9_v`oFGCe48Emf#qcqaulV97TdYO*=Ij979<37>k&lm{yz?ym{9{NQH@^?X^Iq USdaN*pd%POUHx3vIVCg!0GmHlJ^%m! diff --git a/graphics/items/icons/dark_memory.png b/graphics/items/icons/dark_memory.png index 258bd309bf404e482f3adcdb1677fe43265cc681..3cb69c7a5f67d70f4d6ce1e016f279f2b67d8259 100755 GIT binary patch delta 247 zcmZ3?e28g+1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Kwba4#Pn7DM}X}-e> zJS?x-4b>F?{@?#r%Ecj5FZBDAGaff|)?c?@IF0?xBCVR>13H<`Q^J|gTywc}mE}EC z%p0L8#e9>4f&{-C@w~O}SviYI-hFBJ;RrRY#(XB3c+oFHhKkAQo$^d;j=wYsPg;6x z;^t|ZXG|_WuydO+Gvkd2_rnF>MHXcmKihU`#)Xz|Mn{^bR~BZ!UC0~H$MtYctVg7! rPovZ7i&pI^m5GmC`DUo!380X8iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyag*JY5_^D&{079N?E=Wo3PkqbQv2$|w0m-b0j866+bv?}y{>02gL{(NS-UQ@{1dw1_? zn11Hz306E%@myzy^2LjZCk|9Rd$+SQp?RuImSoDgIhDHw&S;j4+7v&#<2&Kvqo-=B z?~2dOo6Y}BWcM=dvzE-)4k^Sjm2^LyIX%Hz();oyCmY385)$e=m$q80|HDzZ<%){< o@|oO;_a@HbOkZ3j#m>MmZMtpS+s*YQKyNU3y85}Sb4q9e0B{g~k^lez diff --git a/graphics/items/icons/dawn_stone.png b/graphics/items/icons/dawn_stone.png index 0465d18bad46738f1dd93e637b31e98e411e6bf0..a0db015327fd01fadfefeef7d0106676ae799439 100755 GIT binary patch delta 201 zcmey)G=*t`1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JyKpx;TbtOx!y0B43LE z2TLpK&;Ryz)3TUuO|LGvY*MJ^u;KVe*Cm?{MpbGhMW|hU;_}UCQC`)&)EcfkOkxx6 zaXb)EsqdVc;bihgOHp2FPRv!~Yb{U9Lsj01UTrvKdn`vJex~Um&2`QD&pI^m5Eo;WVYP5BA}3XiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyag7o-U3d6?3MZcjP;yAix^1gYgBYOjbvj@$PAuv~%AL#RnfXH@x|RM6Koj*BQ6HMk+nP7H_zg@;m26c6-$y*PIW#>Ej{JLlmz(&GyF#d2LigCfof)Xx;TbtOl+OV$ahqM z!`W5iyZtAwysp{y^Ic48O%`qWrmylyrTpqWdk>Q@F7_qPs+V*fRX#f%S$42$W6Qxy z2kvgrNm87U_AOQL3%g`#J+qo#Nc(S=hUwdmG_p(ylovYSeA*|sI`LF9hux9jeEmaw zkK#`1ZJ!_Wc}BvNnX8i27p=KkawGOjM96#P{k;No1X< zXkX8m*>^ylKa1Xi|Mn`Nfp2g~Xg=3w8A~Ir!{P#7?xVEZizwo7n!3>{N{eo6EKAAJ=O8uD`lb5`S;#Qhe zb|dP#`#tN+ORV~vOg9{P6d0dho!$P)Wd6^ME(x#G&ITBN-rFAZWaCo%(k9t+6I!;+ Q0=k#M)78&qol`;+0M{pdv;Y7A diff --git a/graphics/items/icons/douse_drive.png b/graphics/items/icons/douse_drive.png index eee5ae35f1efa90dfee9e4e1dc3eec5082c23847..f59616159aed0435f89fdba79504a4ba226ceaa5 100644 GIT binary patch delta 183 zcmcb{)WkGFf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfocjpT^vI+CZ3%TDAb_9 z;lg@t@BfL;7iOHYo1MA;i>>39t@B-6wngxM3+b~B*t_b;vWY>$>8-DB2K-qO`Tkr@ z>qFh13D*v0Y|)xtU~_1mgzAG;AA}NeEZ#AB{pdDjIoX+=;901Ac(c~gXTiq=^zZLD ce*Y=M)iS1e?Ems718ryUboFyt=akR{0Pfvc=>Px# delta 267 zcmZo-y2dm?BAJDmfq_9NQsFd^VlVOZb!C6dBqPqp7ZZ7QJ5Wfx#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mN2q-XQlQD6bfbEn7SgY@c->#-TqQ_L)mwnsryPk9pA|qd{p$yxqF#$K${sn MUHx3vIVCg!0K3*;F#rGn diff --git a/graphics/items/icons/draco_plate.png b/graphics/items/icons/draco_plate.png index 9b08c31c8df7bbd046af83623c1f118db34a6118..21339c048226491da1259b88645a08855672c49b 100644 GIT binary patch delta 169 zcmaFN^o4PP1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqR6pZVSfO`wo?iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafqo-U3d6?0NAoaJp$;9*U;abUh62cN)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g!Ci2+@cA$`WiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaegRB@%N(oqKzyhWH$inS9|wg0iY=hg#zG3jwOC zqV64;X_mdKI;Vst0O&AQCIA2c diff --git a/graphics/items/icons/dragon_memory.png b/graphics/items/icons/dragon_memory.png index d073dace311d1b6d64b92c6985d07dc34d537c6a..3888b3f3af5f63efb9886471b44175cc25857d91 100755 GIT binary patch delta 246 zcmZ3&e2{5^1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Ksba4#Pn7DM}L7`>^ z9+$fgCM*a4|G%vlawSTC?z_&)`~>5~S^qezLPfKUw>JI=uxpK&VS3E&Qbxw2kNbG^r*oUk-Jbh{eg1>rypwC5n%q44 p?85ev|GavSrT1Tby#3!K@x7nePfcU`zYOSj22WQ%mvv4FO#nVHbh7{e delta 345 zcmX@ew1jzrL^2CA0|SFlq{3++#a`m+>&pI^m5GmCCf_*uD^N(h#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8m}$F_ezAaio2v8bfP`+d9j3#1fOW_v0(zqz~nzXMyxjutcSdwZ+@i=N21 z7|`2sZR_`U>)DE%W(CJyyT_WHC~%cwm+R|y`Wxoixmjv>CtX5^4)FbB%`}` p#o3IjZZpc4gde=QV%{-E2J21EL7YB^e1ZO8@O1TaS?83{1OS8Rf)oG% diff --git a/graphics/items/icons/dread_plate.png b/graphics/items/icons/dread_plate.png index f93493f97bbbe7afe74486d13afc8e0344776473..8679df524d240940861934bff3e5fac51c37170e 100644 GIT binary patch delta 169 zcmaFN^o4PP1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqR6t9XmcGN6!niEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafqo-U3d6?0NAoaJp$;9*U;abUh62cN)thTQgC<*clX84Z^4g_>N1J$&7x;TbtOx%0^pwM9j z4%dquQ34uAXq&!n9&m&pI^m5EnT-h2_i5l~3H#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mpRhM~5X;Aw-rnA;mzu7`N;S%yJbCPxn^%;oUzfr;p9NOQ$=a$M>EF|m zlRp=6q+fbxtR6n!ax=%7oh8fm)O??3tnDD)thTQgC<*clX84Z^4g_>N1J%@fx;TbtOx!xrQS7h+ z2dn86{+<6@yB#hytnb$QHQjg-Q}Q2W<4unbJNru3Rd!^A`JI&HH|DqAv4g{SF_%So z@pKDw#a-MCMe|m9-|2U0EHsW);SbFJ#UY}&NxbF4>zB9YaT@mSw__Iy-zpYVuwv60G>yv6?@8wrAyF6vtRg%hW26PL9r>mdKI;Vst0MrRpbN~PV delta 301 zcmbQh^n+=FL^2CA0|SFlq{3++#a`m+>&pI^m5EnT*iOV*5-22I;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+TcDr;B4q#hl~>1x5}oF0KPNy}Z2I0^}A? z>hA8|sMw;s9SHHW!_VxpUgv`QWRTp35;>4`eoPIVJgaX=0l| z=u6}DLzbCS75p|Z2&qdR@?1a1a)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqR6WeQK`LZFa%iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafqo-U3d6?0NAoaJp$;9*U;abUh62cNJLlmz(&GyF#d2LigCfodu}T^vI+CT^YR&38b7 zgOzpbqVM(vj$4l2U!{3^rbT7vxxYmW>^(aS8RQIg+6?8}PHL=6Tj9u~@#B$nmICMd z$sH-#4wEttU2E`QOEuHHovY)KH8cN)np1Xdw8^4tvow!#UDD2NQeU{WYkuTkUcMip i-0!lQLuKt=eZK4ahQ-KKGvYVU6%3xPelF{r5}E)^3RP$T delta 295 zcmeBT`ouIrBAJDmfq_9NQsFd^VlVOZb!C6d%EYV4v8AxNo1X< zXkX8mOJSEv$draTO6nV?xJ>R!i~N<+(I_OV zdKkG*rTAS%OQQ{b<;-2 lJ?mOI_zk&~D*Fr=7;^q7U0<0wLm%iW22WQ%mvv4FO#ryqU@rgw diff --git a/graphics/items/icons/electirizer.png b/graphics/items/icons/electirizer.png index 73f6f8f26ed76c28f4a505f5109b779f1b216af4..f0351e64d61c52dc1df31aeac65d21507b88b63c 100755 GIT binary patch delta 196 zcmey&)Xy|Qf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfokeJT^vI+CN91Bkn4Z~ zhug)-tk-|zD}HZr5^p~Er;>l-mBK#~i>AkLy=}{xocYv8(|yq?9YL2Ek8G8R*VsbN zC_LeDo5wt7?|iqnjIzud&oFLz+_UK^PnYr?i>60?45~S%dLIpJ^!MLSdH1xkF*r7Q pskqsuwcG3&KhB#QSNHvPj9DPd3sd&1SAkAp@O1TaS?83{1OW08T!R1r delta 296 zcmeBY`ph&zBAJDmfq_9NQsFd^VlVOZb!C6d%EYT+(Y?7_0w^S2;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tbwr;B4q#hm1X1NCBZJ^OM*azWvm`pH;E$C(v08p00i_>zopr0J}J2TmS$7 diff --git a/graphics/items/icons/electric_gem.png b/graphics/items/icons/electric_gem.png index 88e604f182f83899b0039f7a423433e74b0fe9be..e17e3f4d139a34708c5b6f56c960ffa8d59fd030 100644 GIT binary patch delta 177 zcmaFJ^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g!{G17AKTt@##5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mLLPLYkF%s-<-E5{bE?&b_@;LwpX%Ould-L0MI`LoM<8g#cAm zQTL9_v`oFHPc;L&TY_Uwofb*d<0#VfZ`!HR;26TH$5_Pd#I)kH;LW=pLMluQ3ttIc UtkCMp2Reem)78&qol`;+0Bl@Ur2qf` diff --git a/graphics/items/icons/electric_memory.png b/graphics/items/icons/electric_memory.png index ce9a8f362472756d183dc3b583780ae0966271b4..0ab5da3770d42219d4038eea35ee7be3e027254d 100755 GIT binary patch delta 252 zcmZ3=e4J^51SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Kvba4#Pn7DM}ZLt;w z4p(OffzAK^=d|1h=YvF~2H*ZMyh_H1Q8tJ+}L4)g+pr>mdKI;Vst03EV*bN~PV delta 346 zcmV-g0j2)O0;L0x7-Iwj0000ISs=>*000McNliru;{^f^2Nf3Y+fe`j02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCo+QjC){Ox;q-L%|%$nM%zr?xCwTf;ciKCz%(Q zuDbgWr0UF>$rGhl-Gy;11sLDn19K#2&J1K=y!-C{LXg2qY#N0OvUl(P0~sLEVO%13 z_wM~yAftti!_AA=-n+jV%rPxV?pS*ltc5|w9O#y)yT8D8GMc2NxmQ6{F)%I$%9QTf s2ywLZim-@P8)4p&UIk~PdKw1+0POuj&NrELoB#j-07*qoM6N<$f~Dex{{R30 diff --git a/graphics/items/icons/eviolite.png b/graphics/items/icons/eviolite.png index c08cc595068054e99a5c95b9de191a2550df20cb..b8bc613f8f507cd73443e043adfe9af177c1eff5 100644 GIT binary patch delta 153 zcmdnX^n`JO1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jwk3x;TbtOg!7~$aTPg zgJp5v*Z=nKW;rdq=$wCY!sVU~DLsb;C*E6~75?I^$lU!`vM1V@uXoi@|2CJg*2T_T vM^Wxy+x9i{RNXBC?U~fvzZ!3?VmFs`W#Sg_wp9Td&*16m$Lg}qDWM4fRun@` delta 242 zcmaFDxR+^yL^2CA0|SFlq{3++#a`m+>&pI^Nk*KHW2;q06HrLJ#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8m})Ul2=c4&a`RMcubp)>g-)(bC%_proO)Z;bVyfe){_UZITBjg~d%{+I~e< kmo-mwLi>?rEDQ{Oyn@Y1`T6=l^BFu{{ajeqIVCg!0CjgrwEzGB diff --git a/graphics/items/icons/expert_belt.png b/graphics/items/icons/expert_belt.png index bc00454907e3e76c93b63311c592c4440205824e..62d4b8bc2605d8dd6e0ea5ab9ddd261b0f1eb4c3 100644 GIT binary patch delta 217 zcmey*w1jDb1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz9Sba4#Pm^e2uQ0%Y) z2iJqY=WW)yUEa4={GOYZMUR!xFM@*AF=o3u0St8MfB4;h<|R5m}Y{P|9-)@z4sn7i*hjD6}s@M5$HY! MPgg&ebxsLQ03}XrLjV8( delta 308 zcmZ3&^q*;hL^2CA0|SFlq{3++#a`m+>&pI^NrqR^^0{YOF;Gan#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mE{Yye;9yo4IL$D%xG_w8 z!><26>=kccU;ik0kfn*~Pv?(wM-5W;FLq|!{_6Nm(crx0hNY`HHG{@cVrbKksK8>Dj+vXO!()z8!!OpT7`&9JXs^#CtF+K>+ zbw42F8(nJ_C(G2oFDIhI`~S=&p_AtyPkixLPgTe~DWM4f Dn>=<2 diff --git a/graphics/items/icons/fairy_gem.png b/graphics/items/icons/fairy_gem.png index 871f74426d8ea309c3738acf32c8ecdc47c5760e..5fe8f6ed99e3d8510df4847063e953ab6615a5ce 100644 GIT binary patch delta 177 zcmaFJ^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g!_+;eSX+R;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>zJY5_^D&{07EMQ6yVPRs_aQC=*Yd%Q*qf#AI=W05cYE329d5sg}~sOC;uoI`{TY4e>c3Gx@@W1Z7p#4z)thTQgC<*clX84Z^4g_>N1J!Kxba4#Pn7DM}X}%T% z4p&yLFK_?TUEBD>r+yq;UR8T7{u#sd8SE#F*6cY1^Z|pXtDnm{r-UW|t_XOp delta 347 zcmX@cw2XOzL^2CA0|SFlq{3++#a`m+>&pI^m5Gm?Z%&ucUZ9Y8iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyag5JzX3_D&{079N?E=Wo3PkqbPjcg;BzK z=aHkff`=w%Fco>7JrL9*D|=G)-NIuDeMiplZT)oVL8!E&%*@HgL5G{d@78hzT`f+# z&CDrx6TQWEz3e)rEwAb0s<%?Xa*-rcQNU~ZXm=@9Gtdwc(L zrEH0qm6>(pR`vJrW(%j25A(dT-#2YF@R-4LH>vcy_zgd|QgH?LMO}@Bh5>37*WEf6 rFBP9YW!)`~&wXFCETpeqwqRgTS94)0P<*5f^a+EftDnm{r-UW|einl` diff --git a/graphics/items/icons/fighting_gem.png b/graphics/items/icons/fighting_gem.png index 7f4fc8b97d31d9a170ad6352ca32435e7d0ebc63..2293767794857c1e718e7b9e19411afc05feca50 100644 GIT binary patch delta 177 zcmaFJ^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?hfZ&mz4f1r?fiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaegRB@%N(oqKzyhWH$inS9|wg0iY=hg#zG3jwOC zqV64;X_mdKI;Vst0KT$S`v3p{ diff --git a/graphics/items/icons/fighting_memory.png b/graphics/items/icons/fighting_memory.png index ad21a2d078c4e665c575d9cb0dd5d7c5f7702240..f46e89d7333512312a6cebdb0249e2d792970dbf 100755 GIT binary patch delta 246 zcmZ3?e2{5^1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Ksba4#Pn7DM}MWMqA z94yTo#}+;N|9@M1=e1?EFQ=%dhugAkdpmzoTztU;3Dr9y8;X21cSil(H=ij#%(;?F z@R{a|iMu;@oX-i%;4;@*#1xag_++Aqu;_7f#=c(2 p@Qce!?z6Rh?DYRyx_18+;p3w0*UvD;T?IOx!PC{xWt~$(699AeaHs$P delta 344 zcmX@ew3vB&pI^m5Gm?qx9wW4xo^DiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyag*JY5_^D&{079N?E=Wo3PkqbMBi$|zxd zbMKu{!9x=>yvp)rbgmKn88nZDc2ImFN)kFBW5U%tg6Ds8j( nhj+~e?@zpG+Z<@y3kgTe~DWM4fldgZo diff --git a/graphics/items/icons/fire_gem.png b/graphics/items/icons/fire_gem.png index deb8979bd8eb153df3014897ff566b1e58280782..d6caa7d3d17b4867a275ef66772da51ddc13467d 100644 GIT binary patch delta 177 zcmaFJ^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?hf!`X(V3MeFA;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tber;B4q#hm1X1xyJdEKH0V?jAR9-0%?8 zN=)HlIVYf*m@KXkV8-GtA)l#~7iNxGc=ic6_AwCCWCSSOapscFep_X|4LV&8O zsC!3dTBhF9rFVdQ&MBb@0LF_{`2YX_ diff --git a/graphics/items/icons/fire_memory.png b/graphics/items/icons/fire_memory.png index 33116aed1223ea6b9bd195ec18e47bc5fa1bf0cb..bc62b02c15e99a4cfdf38772b0e511d93d67084e 100755 GIT binary patch delta 246 zcmZ3+e2{5^1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Ksba4#Pn7DM}X`yBV z9%jR1d5>&<{NKM;hGU85bidL&vJ>1Rr`0>@@>e{~6`m_{F`HK)pwQ$%mhXlhwm%{d z6fc}jE;)SWfM)8h7HMHaM!lt%jwb2|r5>Mbuzm?w6=#0OM$;sr1l?+@qg^Wk9-oLi zUlbH-ocPM-E0;0%BlDk*KLYo;3f%MAI`@k7o|q>R%1exD7%uNvKhf@o)5`PWpH3uh p(iV%)tmEzZ*vtR*$C~|5c%S`c{~Y;xbt};E44$rjF6*2UngGdGb4LIG delta 347 zcmX@ew2XOzL^2CA0|SFlq{3++#a`m+>&pI^m5Gm?k;jx@2Ph<7;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|iPZ!6KiaE&%2lypeSy>b(70ZRRPUPZ&I1{an^LB{Ts5Z9;;T diff --git a/graphics/items/icons/fist_plate.png b/graphics/items/icons/fist_plate.png index 0142938d511cdc336851632b141a898d8c86f63a..7e6cb2b92d31e79e81e58c9989899f03676de6e2 100644 GIT binary patch delta 169 zcmaFN^o4PP1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqR^Waba9b3h^S64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR@JJY5_^D(0kKILq6hz{8qw9!2~f1l)HLwkI&}^2fh^f~5f0{U0T-i>#55E~NZ2@N zIk8AMF)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqQZUDnN804OA0;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tbur;B4q#hla&XL%bGcvur|9GEZ2!Kbi@ z`2~x>A-1Ati(Y4E9(B9F^8Ug-0g85+ng-rmr>@~WkR|&r!oj>P;9~TVn1sCC^uuI>? Y5M^cgtTQrE8R!fKPgg&ebxsLQ0PDA4>;M1& diff --git a/graphics/items/icons/float_stone.png b/graphics/items/icons/float_stone.png index 61f096fc368efcfd43f7c49a83cf057e7637fdc0..a421d553fbc9c2f5d7fc0b1e3de247d9ef9febe1 100644 GIT binary patch delta 176 zcmcb~^qX;l1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Cx;TbtOguZmldr*m zhuM41)BpCz+Pq>P@U5$wc~WWV*8R^D;x;l?Xe2fFtbOM2eD=;$sdr>&2b?&poL$gv z)$`TJG=GO&<|qEZ9pbwy{A8c*sC0R&pI^Nk*KHDfE5g9H5YRiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaevo-U3d6?2jk7T6_-h&XI$?crs8kdvC4 z?5g1&aq`5C8yreUSEMXi^X3uHV-3xjJ9aH=wp4O+^U~8(d?=uM>eQ)qdF$RK_!$Q5 z_V$u+S$5>cjU%QeYZ=aH`f?U>dN#jEPw+1;Rp8auZ-|QGW4ZECnc;t=2+NQ6Aq_yw O89ZJ6T-G@yGywptmt61w diff --git a/graphics/items/icons/flying_gem.png b/graphics/items/icons/flying_gem.png index 563e80f3bf057503429cc7386637f4e6b889de96..eb328c85ee90b3246583fbe29f5a0b31a080575f 100644 GIT binary patch delta 177 zcmaFJ^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g^sd3Jqw?HBB64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>zJY5_^D&{07EMQ6yVPRs_aQC=*Yd%Q*qf#AI=W05cYE329d5sg}~sOC;uoI`{TY4e>c3Gx@@W1Z7p#4z)thTQgC<*clX84Z^4g_>N1J!Kyba4#Pn7DM}L7~G6 z94^cm9Y<&U|9@LgC2ID!OPa^OyG@Ur_H_Qj8TvC+RZp6`ZqZuKJNZ*iM(k8P*C(iZN7;`PtyEXKh&-$uWaOVys4fl#JS;ZdtkiiNvDH` z?z<1IoU%x((`vii!c{u^ChNEKzw%zN)YrRnYE@JF&*~K` u&&e!{x^pOcS3GlS&7P^S=Jw5KOpgS?g60t89ZJ6T-G@yGywo7H+P!= delta 345 zcmV-f0jB=M0;B_w7-Iwj0000ISs=>*000McNliru;{^f^1~#pen_>U}02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCyTl-Ye3#witGe0vYf5e*GhWMI7e?*2xQ!D*R>YYeh?@BRZBAUU(#MDXt2 z`>#PpiMSC;Xy*~V_V%s00000NkvXXu0mjf@N$PW diff --git a/graphics/items/icons/focus_sash.png b/graphics/items/icons/focus_sash.png index e0df9798ef492f7d6b2e785b44f7aab2c8710365..a09d2d26bd5be2e67c45cebc6010d333fb81d775 100644 GIT binary patch delta 213 zcmeBRUcfX#f|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfol3aT^vI+CeEE0DAb_9 z;S$U9@Si%Lnu^Zy{vVUJFW!)yUC*_^_Py*)0Y+&?i#3~G%eeP6DhU_|e_-tJ2sEf% z%@i@UN#Ch?)vw>@+C3ugP2Y2^r~3RN+3((;o~5uId2aXPsfDA{>cg&lceVwz=6HM! z>q@xe^R&aTb?S0mrsAi@5r?Ne-(?W<>Ral2n}(U!%jYJnW#*OMxBn~9Z492SelF{r G5}E+~t7Po} delta 317 zcmZ3$)WJMKBAJDmfq_9NQsFd^VlVOZb!C6dB*Uwy_(k=dDo{wg#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mDe0WR%Is++ZK}mHi*hE-U=g#4sQdZtKi7f(hYs`0Jiqhu4DW{Bx~x7~w>W*u zSiax(p`AaNaZMAA4=asvM7jtRG_BtrFsM`DM z1Z-OT^N{Mhr_R#piqp2vasRukd-k_g+n+t|y%qm_7W0ab+0lC$OHw6`nfCAS1G<&L M)78&qol`;+09UehPyhe` diff --git a/graphics/items/icons/full_incense.png b/graphics/items/icons/full_incense.png index 230927e085dcf775935ffc1a76478a1b5567d958..a44f6bffa8e9a17946003c42493ff1975492fe6c 100755 GIT binary patch delta 237 zcmbQqyn|_i1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jx||ba4#Pn7DPKx6ok) z9%t?A4o~j<-zVCpwq)|Tl3-n)#qIV79)A>P+`jGM%MH@I55zuH=H9w>SFUYbN9cm3 z4O3@mX}AZlADG<0y0zNYsKCr%nh}GibysAj;GC|ERKDCL%Q_=Dj9JevT@rY5X2uHf z&w5@1a|z$98FNoObBP}3 g>*uvUkI8>w($r^Tk(|@%26Qunr>mdKI;Vst0Q0SGK>z>% delta 334 zcmdnNG?RIPL^2CA0|SFlq{3++#a`m+>&pI^m5Engci#rr^FSf-64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>MHUV4D~uDxxjoFEWSYnFrf4POfF1dMwhjO-y|P42qXYdB_I; zST)mO!zz)KUC*|B3hmw!HZ|RksmLYGPn*3d;mpiFhrTZ&{u4H7&XabO5f@j;Ue?Xs zv3P5>`2^GA@9$g{7Kgu&+FJd6)z#ex`~)sBZ3@#3YN>Dw;N)OY%u5atVqsEUA)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g^Zr$gGETE8hiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaegRB@%N(oqKzyhWH$inS9|wg0iY=hg#zG3jwOC zqV64;X_mdKI;Vst09$odo&W#< diff --git a/graphics/items/icons/ghost_memory.png b/graphics/items/icons/ghost_memory.png index 3041643aaae310df75027b50b583157979b80f50..2a9b4f65997b2cb8d01fc6e2ceca5070ad64b9ee 100755 GIT binary patch delta 247 zcmZ3=e28g+1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Kwba4#Pn7DM}UB1H# z9B$l7Qx|^wd%x^Ke9ZOPsrRQ^sxvh{{-J*1Q-h%Z>mJR96ODe{NAEgx-C*^+(eqKU zr+ov78=iC*z|a|LEieT5>AhK*94P!t`)r$xY)$h8@MddeM^6v=1AV(vHJMtf0N9gPvKy6*)l%|=z0cES3j3^P6*000McNliru;{^f^1}?t;12g~t02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchC+>nTD7XJQD*mD7$-x3@$Ee@N1~&{kb&{;yZak~9MRCAY>5oAckliK86c#THbwC6 z-TSXWMvJ9cW=`9C@BSVTM>Kg#nbO|7U@Z(1nLxK#-~A1?lQE^d+;cWW6$9fopp4P! sgAhl{?DRC+eGujyncZ+Us;6-P015y_0FdujE&u=k07*qoM6N<$f{l!YKL7v# diff --git a/graphics/items/icons/gracidea.png b/graphics/items/icons/gracidea.png index 31bac3846cde562c1b5467f1b810c03f27d4dc78..fdbd8c8af00a677566419fd3ad0b182205879579 100755 GIT binary patch delta 273 zcmdnTe1~a*1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J#`Nba4#PnAjT>&39OV zXZB>X35EZEpKEiHzkS?@Gqfz}`Nr$7=QDh8VarLYNO@Ige0;6Isb$Tjh4c9ZoXWpH^C3}XU)t1FU z9YOt*000McNliru;{^f@9}$t?IYOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchC8}|yK;;uq5y+M!Q?MzY?!CB4Bo4ij5`7cJ_ z4Y*#4&z1lxN`QGl5ROP8&fO^>9nTUH=WB;>rRSA^H1izMe@s+HusHPtFL$fMhJrFGI;c(V*>UE-hZ*JCzY~w7cMRT?N zrC`nuAf7tgR*H_iSr)k?i3x->yeu?R??iwFB|*jyG8qDgntVbB==&c(^#T$`E0+JV Ss=WXJ002ov22Mn-LSTYuo{kCt diff --git a/graphics/items/icons/grass_gem.png b/graphics/items/icons/grass_gem.png index df57119b27d3b6fe0d0d0049edfab9c492580b62..756a769cab2254c00ffe27353a6451c3ff4aaf4d 100644 GIT binary patch delta 177 zcmaFJ^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g^(qOviNuZE;iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaegRB@%N(oqKzyhWH$inS9|wg0iY=hg#zG3jwOC zqV64;X_mdKI;Vst0C>4ovj6}9 diff --git a/graphics/items/icons/grass_memory.png b/graphics/items/icons/grass_memory.png index 646568c412748023460c2d11430a035cb28fad9a..4ef16802d7f304a775ac8fd992021e4e96550863 100755 GIT binary patch delta 252 zcmZ3=e4J^51SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Kvba4#Pn7DM}MWGf2 z4p(L#mdpSC=Zoj)ZhxDaUYT{yP`@~KT0Pq@n}j7(IP$p?Tpvvl;y%ZAO|*T%Ne8(m z*Nz8|EPIT8R~l&_KCo?PprGjSt!5TGrOz^`e(<&UzW&)4k%<`-iv3yI*S=#*4vqI* zP&|L{-ouQ7p{JHujdV#^y)z4*}Q$iB}_Gfd) delta 346 zcmX@kw3K;*L^2CA0|SFlq{3++#a`m+>&pI^m5Gl{B~I&=7EnmM#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8m%t!rmY4ZKJ2@WzIvy>VQx>Zp5Dt)fl!{FZl9P--Q~G07Ex6j oJwL7LHF)o_zG-uyZ7(qB1P?mb7uY6T1A2tP)78&qol`;+0P+-tegFUf diff --git a/graphics/items/icons/green_apricorn.png b/graphics/items/icons/green_apricorn.png index dc821541bc81faf4287b45d7b1aa2307f0ad6ef0..da60f8544acb1172ca5f5a5fea44a82a524df734 100755 GIT binary patch delta 196 zcmeys)Xy|Qf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfokeJT^vI+Ca#@$k?)8C z2g^~`jbH!&-!AlyYpY$EaD17O+lDFq&MC(?ec39Ml{)d8!{%_+Q02YqPG?pHgifoI z(JyKiV_|v!R!cC7wc~l1+Jh_YPBU08vS%>(-DEt?$HTnvNVP%i&xOWkAD*&T?w@xs p`S8P@($9UzekrH^54`_`>D&vJKOe0W}R;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tc9r;B4q#hl~>1u+9I11>Hu2TP|eH?4)8 z0&)thTQgC<*clX84Z^4g_>N1J%s;ba4#PnAkeeQRs*Q z2aBw-z>ojU;x3aVg16pzlg4s7=%0w&-a^|wQiAKbbPXqR*z+u!`@+V#BjIJa&C#hV z&EF@vU3ky`&ikculi-WrOCnulw8|Xo7>p0cC4F$+A`)7w6%-gF_-VGlq9qTklxmw+ zZJ%{?SMkGZ?j5rt`Cru7{Mt0(Nlo{p%M5aJw%2#A+VydY)_kUKvIYBU|IGQ+D*u)F YM;2?tg3{^Bfo^5+boFyt=akR{06fiW&;S4c delta 338 zcmdnMG?#gTL^2CA0|SFlq{3++#a`m+>&pI^NrqQZ+DOxUI#5Ww#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mSZZ8U!18FP3k*TcKd_6cu%-}zydTGsI&3%ECZesWTU!ARgrD(}DNyJw%>k=I;v ir2fOh+x|D}FN?cx)3^Bjj%78_0}P(7elF{r5}E*P`GRTy diff --git a/graphics/items/icons/griseous_orb.png b/graphics/items/icons/griseous_orb.png index 5140ea3acde5081d0359d061c75956a6582af9da..e306e58661944a524c1f84d7ef2ce6bf26441690 100644 GIT binary patch delta 247 zcmZ3*e28g+1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Kwba4#PnAkfpn(wdz z4@>d~?%)5uzh&xW^3=LoKl5bL7MbJwon6*%x$;Y3!5O70@grxnvbMfyli8nbymlWa z*Y$JJSA7FqSj|{;#GMyTHWxg{!~(jD`!EA`1FYot8f%OkI~VRwv7x?%rgg)_A;SACyuo3e>*S;nb(JR41?K9HEP rX}VvqLP>qkn+Y#|KFEJ_yoTYdDm&-fn3O7@>lr*<{an^LB{Ts5R0?xn delta 351 zcmX@aw2FCxL^2CA0|SFlq{3++#a`m+>&pI^NrqQZ^y);Z2|yw764!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>Xdb&7Ztbv^B9)j!%hb)CRKu2}h0Sub4C*#Mefms!gQ=mO@$5J|(6E4;tF9WK4sPCESf0;Pv}AYr`zTSVRaY1%C4RZJx4JxY zh8z10hUx3>?w&p?vq3lY&ZE0~t5;UCAIVkHvkuGWeI+nleM u-4xW9a=tP@maEy@)KuWF%*w{Zz@WOpdYke`n^{2LFnGH9xvX)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g^#7`}=1Slk4;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tber;B4q#hm1X1xyJdEKH0V?jAR9-0%?8 zN=)HlIVYf*m@KXkV8-GtA)l#~7iNxGc=ic6_AwCCWCSSOapscFep_X|4LV&8O zsC!3dTBhF9rFVdQ&MBb@03)4MS^xk5 diff --git a/graphics/items/icons/ground_memory.png b/graphics/items/icons/ground_memory.png index 0f9f31734df68fa62e50018d8e213aca67c17b7b..45ac4379ef3e5877d123d4b908b1336dc0029106 100755 GIT binary patch delta 246 zcmZ3&e2{5^1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Ksba4#Pn7DMJBi~^K z9+qStHgS)C|8KAJbu@Xq^p#xtlr>vrj@v7q7niX(HX)BI!s7UgtmleT6gRy})9__H zw}-`c((F0L1#5e!87Qw>bYSoNEfzfw=B52mJEHZHCAMkOQEASk4{ySkR%*?fI!F2X zPp#!aT^(t&_MGEN2-|&juY5=|-@)AH r2E1ODH@v=IKOix`V#WINzr5$|O=W-Xv`I1>=y(QCS3j3^P6*000McNliru;{^f^1{>&1#}@zq02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCVV2)I%Qd@bY@$Q3Q&eEXFX_I%~ zeF##uYE@XE%LsT&^Zkpm!Ir;QK rh@)jT%{1D55au13-EcOlr*QxPxl2Um+3b9*00000NkvXXu0mjf4LgXS diff --git a/graphics/items/icons/haban_berry.png b/graphics/items/icons/haban_berry.png index f413ea9e146a63b70d72f16e30dd4251358ed775..7171d2b07e04665177f7b9108da94f9d678f9b38 100755 GIT binary patch delta 223 zcmbQpyozap1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J%s*ba4#Pn7DT0X}-e> zJS>K56q(nozsa+Bd%#xjmmBrYoRe3yFXv75%up^>D^hUHy)0pi^lkhoSBfi=Nb{ S^Y4JJWbkzLb6Mw<&;$TX!D-I` delta 326 zcmZ3*G?96NL^2CA0|SFlq{3++#a`m+>&pI^m5Enfb@`Vyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafAJY5_^D(19KaO7(;5OBRM9nrk$zsasJ zKL*JXU#Ctz(?|DOJF|s^cQWo>o4RaG=BzLK{g(gT@1@J1{Oqd6Tv?at8`LzzCSOaP zc35pqXp@coqJ*{5EnHfbuBr^)JhOupyhDmlN7UX@f3!^G#m4TbTmSanaQCpk_dPb) zFlYU}{`}{8HD6sF?!9EQ-?px|Y}Lc+vaL51tJ-#UCG29~t1{C}agN1oWBorT<@eht WPy2pn%^jel89ZJ6T-G@yGywp!<$Lo0 diff --git a/graphics/items/icons/heat_rock.png b/graphics/items/icons/heat_rock.png index 60eae816964f8b2eceee832da2ca518c10e11b5e..cbfa5985829daa9e757b23a6a5d2b277d2f9621c 100644 GIT binary patch delta 249 zcmdnQe1vI&1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Kyba4#Pn7DM}O|fPL z9v9x50-yfhzs)J5bL-p6&kaV`bDmlJ6LpOL8^o0x|JE*l``3AOg1$|j5CcwjggWzlh&(rV36it#h s8?-&oRsSg-Aj>Owv3U3XZGW$DKi&pI^NrqREU*q%RS3n{064!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR?Cdb&7 zY_@c2OW+h`oWbO#x>Ufx-NjQ-W5E-qXB}3WoLt%~t(wjX@_ObQ^9D5*X<036ZHuzx z;$pH)l9j#e>|8F(mX(??;l&FbKHj^VZ?IIRI6XTvbLqm1)zcb!lGiX4mdRT)88vRS zNltq;&p0#vz&b7c)i%X@be>O9oDn=PE^c0NRk(nMf7Q>8Tec|gE^lq>5z}TaD%vx> zt!ZgWQPHJy9c)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g^z|(teE>K9k#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mLLPLYkF%s-<-E5{bE?&b_@;LwpX%Ould-L0MI`LoM<8g#cAm zQTL9_v`oFHPc;L&TY_Uwofb*d<0#VfZ`!HR;26TH$5_Pd#I)kH;LW=pLMluQ3ttIc UtkCMp2Reem)78&qol`;+0C?b4vj6}9 diff --git a/graphics/items/icons/ice_memory.png b/graphics/items/icons/ice_memory.png index c0f7cd76e8527420ce18cb2f1b452f3f3b174cca..5dad66f879b8442bd95a183292cec461cb7473b6 100755 GIT binary patch delta 241 zcmbQwyoYIm1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$hdba4#Pn7DMJBi~^K z9+u77!oeJW{}*Rpb_ks1ebsiM9|O-$*Uny+EQ`ufz}D^8)QdoF!7 k|6{oCWAxp+*ZP%=XBV@5SpKe44(M(MPgg&ebxsLQ04L{h0RR91 delta 340 zcmdnPG@p5bL^2CA0|SFlq{3++#a`m+>&pI^m5Gl{q~i0fHlUDriEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyahGJY5_^D&{079N?E=Wo3PkqnIr0s?i^4 za`eWH7{Nn=-l2>|T?c}Cauxh`a?en{IZ-Sn=iR0(J=V(VcM7$?M%K z*X(oiqIsXK5Rq!xO9}r#i}XXt5o0b?Cdiu2;a_Tfe9)thTQgC<*clX84Z^4g_>N1J$haba4#Pn7DMJBU6h3 z2Xm{#!GHe`O0Nprz1!UKoJaEI+-g&!XZ&FfXZKA#AkC{(Y`Ey&tck%75>wRk*M&(} zad$o{ouuoeq$y$J;^XMI@L66!TY_NLTY=6A-NqLKxtGm5p_wparK;aOf5nAQ&czg| z{3>;f>%EhmyZ-!do6LfCzI(}LO6TMbi3ILBpRvu6v8+*HKD#W_*3fRj{&{6Qa-mm0 mNgVQfJ)g%uzvS$&pI^m5Eo!?7+U4!ayPM64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR^Adb&7( pCz}H+l5*BCr8e)?;YfbW#PB&sr!SS?E(+)q22WQ%mvv4FO#ppjcqsq? diff --git a/graphics/items/icons/icicle_plate.png b/graphics/items/icons/icicle_plate.png index 2d3e27bbbac5016a69a9cd102859d359d225f5b6..7a74d45a55b764643a05ea7fa29567af6fb38c02 100644 GIT binary patch delta 169 zcmaFN^o4PP1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqRED`KX2Do{wg#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mzopr0C>S+egFUf diff --git a/graphics/items/icons/icy_rock.png b/graphics/items/icons/icy_rock.png index 800b12ec87ab5935870339f21f7d634aa55bc100..56fe8cf4112941a8eb54204f209977f5a49a3f83 100644 GIT binary patch delta 240 zcmbQuyqjr)1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$hZba4#PnAmzTTBzB8 zgEgR%MOfwc{k;67w@aq={i)>FXuka|!lk}wT1ZEvvE#WYA;r|IlQ>qcn&RTo%0A=5 z_cDfuN!#9UHQUAfh;tu@;XVER4(#qNXKWf3_pWzvmv4A?&o(BhvFgjrMfE;$4oVXy zCON1qy1>5d%DZ>F4Ng}w$i(b0ZRwl3LGlIDvE;+yH4P6qolhN2Q@8+Z! iYet>l55FH&pI^NrqRE@x1rBw?HBB64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqR!T=G?xDNsnf#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mzopr0M_1N-v9sr diff --git a/graphics/items/icons/iron_ball.png b/graphics/items/icons/iron_ball.png index e1f82bde1d5f98b751a6fcea99e6425b145d3221..994641c8d320279f130a976edba412d07c964c3e 100644 GIT binary patch delta 177 zcmaFB^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOx!!cQ|N#K z2TQ8p&;Q-c8A1zps1?5{6UlsgzG3+R53w_+49mkiyEz0?nN^&Rn+b5Q(t5pZG1C{5 zGcF(Z9d!KRF!jb7|2nQa8~pncb@sh?2KWb!3 Uc%oW2186UUr>mdKI;Vst0J9)cng9R* delta 277 zcmeyv_<(7GL^2CA0|SFlq{3++#a`m+>&pI^NrqR!@I&W$pa_F_iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV~~2U22FV&#ggvm>&U>cv7h@-BI`s& z`+CMCZ+DmfOW8ji1`CTc_;1fE+pnj;Udq1wXUfKHd(+u3xbi7BUU@NHQesu=v0T=GgT2T3 zF791tp{TharK#!35#CA>mrKS>oG}M~)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqQJ_esZOf1r?fiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafqo-U3d6?0NAoaJp$;9*U;abUh62cNJLlmz(&GyF#d2LigCfof)Yx;TbtOk6tAo9~DM zk8|OPd?)WbkzLb6Mw<&;$T)m1(B{ delta 320 zcmZ3*)Xh9WBAJDmfq_9NQsFd^VlVOZb!C6d%EYUqV|zy+6DTBJ;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X{*PZ!6KiaD+Q8@ZYtc-qcNS8NjtXSPlM zD7vIX>|M#)8CN1VoNJP^EBpFts@|pgQ`0}F*W0{bf8c+kf*r$&pm47LQ!M!t<~+4_ z=rB5d{N2rF}Z{2;T2CH4C)thTQgC<*clX84Z^4g_>N1J#`Oba4#Pn3y_=v9Be7 z!=IE)2R8lYo5W;ufop+IsT`zDX87KpYqA(T|;fCirmaP_x9>X z0=B2Nt!}^0@L|&~XgCan4_VtNHf0uHBlZn&b{oKiOmy@dc_xcNc=5+hd)b>Pk#`^%K2m_(~ z=V5#ao+s0NY<4XvwpR>fF0tklc-gn?mhR1YQ=8cJ_Fma+ulI`e&HZCn|Ns5{hjI00 Xwr2jhs}}(M#^CAd=d#X;DWM4f@Oyzb delta 370 zcmV-&0ge9P0=xr|7-Iwj0000ISs=>*000McNliru;{^f@EFnW}Y}5b%02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCb>! z3Kk-hw|g7BLtO=sa zI*-+@Fd&YMbmr<;=rJ$4cue99e2-o))|}>}Vo`9BGM@~5Ef>eNNOo^9UyIb67XyQ$ zO1b&iFtTKEZju#Xpe(xLd2Hx-y5FbgLsrwkTiQ5n?;qG5|L?Iws{5;6HsCh+{zjvW Q00000NkvXX1g=70g6O=Hm;e9( diff --git a/graphics/items/icons/kasib_berry.png b/graphics/items/icons/kasib_berry.png index c09fa20dec70f94d3dbbd8cb4645678a3c5539a0..a62c3e95cbc52b758b7b913a17307208e65cb6ca 100755 GIT binary patch delta 222 zcmbQtypm~x1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J%s%ba4#Pm^gKkqfn~> zhjTCMlYi>d8m?}O7oXpIdAfka?cCqX8~FFVpHb_feM^O5(JHa1?A#}djxW?o`*(=B z{TcW2xtU5cc6!|SS;;cxVwTsFQdXOLHcS_#Uwo2suH!s-cCnn-z1D`C6Yi}1sxkYg z?IBGOKRXizsgAR3=jNYcW%_+Y-|%zJQ_&yiij#lty?pDz(^bXI{puU8aIUpy&pI^m5EnJ?DvI}w}C?9C9V-A!TD(=<%vb9 z4DLQI0eH!I7)kK)`jfv`Wa4()<9M z#t*!<4s6$*WQrOe>=IBtzV70Z9WT~AJNw&s0>{VwU)E0d4{eL;bZ4}^wC4A9QHgM) zefwRESvTMC7d&XS$yxAPz<~nJLz{#w-g`97Y>H|9c6v{<1$MBcSpr% X&(h9(!LTj~=xhd0S3j3^P6JLlmz(&GyF#d2LigCfogg^T^vI+CT^YRD0D=D zgM~R+f{)(xcmV4f`J&vEST6p)O>*s6F@=p_FIk479YAVoW44$rjF6*2U FngFq^WI_M{ delta 318 zcmbQo)X6+SBAJDmfq_9NQsFd^VlVOZb!C6d%EYU~_ALG8exQ(eiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyae#JY5_^D&|b>-^hE&K*04eZ&EZ*!<`*R z(*<;Y9AR41aEOWH`$`|T4@@eNjZZh6?+XenxLW;d`Q`n~ekMyi@6p#;bK4^ZwCuLo_iW?# zr?aj&^KcbJr@mqIl3wY|bzlO=T*Z+f N;OXk;vd$@?2>@fQcH{s6 diff --git a/graphics/items/icons/kee_berry.png b/graphics/items/icons/kee_berry.png index 83749d1b834290f251a24847a7328cef4a855f3e..bbd6c53cf2eaf05e499b1ce50e9b8ad1ee93576f 100755 GIT binary patch delta 264 zcmdnbe3@y21SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxYzba4#Pm^gLfL%zcb z94+2UH6DEX*T0*2b?ju-+dmQy)y~n#xxIZshyN!z!waDki!@aQHrWLGTk@r;Evd1T z_+*70dk*h3t*SMA7w*=+@Vr*C*hyUYJEtFiWgN>a zmz6x+u6)jGn>9XeXgPRxQAJbYLcNPtM=iu|cd=BFEUfPxIXF1bT1;07-Iwj0000ISs=>*000McNliru;{^f^1`GB3*K+^>02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCmfS)rMgSEo!ZP-|lh{RGReE^*(Ya2F>;TF1kBob=%zPwcG zy<+Tl0K`{I83@K9*I``-%nOX>GK^%SExe|4T6KUvgyORwf6t)Tahm%$TPCI4@Nu!k z>DI0A17$H{(zTXP=M!15Ruva3(l{@eJDhM7r-buj&7{z&LbMPWxKT!!Y6q-*%}A#@ z0SgtC-3@G>7WnwG#>s8-bg3t#c8|R%1}@HEs1z_y)thTQgC<*clX84Z^4g_>N1Jz9Tba4#Pm^gQ$qu3Dz z4rgwsclA#cJ6`z2`iAYRQCwL&Z@adqm9>GhiLPw##AuKqRi>Iux571Mfw QPGn&4boFyt=akR{03af2IsgCw delta 325 zcmZ3%G=X`7L^2CA0|SFlq{3++#a`m+>&pI^NrqS6*e$X}04OA0;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|$PZ!6KiaE6te1)0}cv>e*2e93k{fbeg zieX{td7hVYKX?8Y^jXZzo&HAY?e*!EwVDU!KaJTqf8vWR&L{7rolHGwyxHqSRkLm3 z?-K?YoVKwg?WYu23}^5xVhm!mXxriYY?VT?Quunmr?K9;`se&Y&)i%2nQhYiJf~_o zhU*6p^*-DwnmUWeC2e2T>mU!=v)lO{<~Hekw?b diff --git a/graphics/items/icons/life_orb.png b/graphics/items/icons/life_orb.png index 9a9ed7c68272db9e6913f34583fa65b677706101..68aaa8e51adf602bcfdc39a1af3268fb49fbe7a6 100644 GIT binary patch delta 164 zcmX@b^qz5o1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J%TNx;TbtOx!!cP^iIx zgT%MX1XpAW~^ZVw2Hyg)z4*} HQ$iB}_|!{J delta 255 zcmaFQc#3I)L^2CA0|SFlq{3++#a`m+>&pI^NrqQmJJeLh4JagD;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tb*r;B4q#hl~>1z`g&F0KPNoxHrd4CYPP zv~lA^r4T38BRXeqa3~#JAvJ5-G`6Q4Gh1eeFPC(_!YQdfed%mfXUnvgnVG3KEHzGD y5@0jXTCUiW7Gmbz9NqOuCZv5)MPmp9L%p@Q;Da{vV|ReIF?hQAxvXJLlmz(&GyF#d2LigCfoiHfT^vI+ChiUJ6guL- z(Y52x|C5(9^p_c3Z<(#IDDHaugidx|)r4}@%yKRB%MbQ0$hziZbW2%@^+AttbYBnS z67@42FEpmPo(R!D$h&RvtEVc-oiQzhSPPd(GUJZZ0>%uRihGw~n0 m{^>1j+4Jk?{r&m%qW1P3Oh=V>6s-cfgTd3)&t;ucLK6TPo?d?d delta 287 zcmeBSdc`zBBAJDmfq_9NQsFd^VlVOZb!C6dB*QDOx~bRD5hx^H;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zCi68`?>!lvQAXA zuV+m1c6a%|l>O6Dpe$oakY6x^!?PP{Ku)8li(^Q|oVor71rHhUc$;N#aW5!gdOgYB z((FWKQ{1lq96R{fYaI1YPC8%2QLiL<&t~#%qslWOUbC`vSDiY3_vlg?XHNcOX@1KS zW@;}LK4dJeX~tGj%pU1?y|r+|3z4&7RkCu1+}dyZ%08~X9^-yDRjljmF2?n%Rx;jR f{_Q&V{zsh7_r*)zu8Ii*x`x5i)z4*}Q$iB}2yA6< diff --git a/graphics/items/icons/lucarionite.png b/graphics/items/icons/lucarionite.png index ea4955c8a0ce049d135b42f8f9e92691c877fc72..b429914872883fa1b29c5097578050b42cc242ff 100644 GIT binary patch delta 171 zcmX@h^o?)thTQgC<*clX84Z^4g_>N1J$H@x;TbtOgwwRo3BBE zhb7>b^U-_%_xO261Qe{@JZC!Rt)PE`PTNeoPkE($4X{0%@p65(I&pI^nTeT4H6$wJC{Ree#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mLxJ3H(RYwcXU0e{lI;Lj9u}-F?J_*ZC zwy>==vg6qN#pi{R^o*rEP3co6%C;X_#=^iLa#>cA-DOVBbfAR{p00i_>zopr04oDk A!vFvP diff --git a/graphics/items/icons/luck_incense.png b/graphics/items/icons/luck_incense.png index 396ab2f613214054432e0b2c30cd9a8cc6643679..6a14050cf92518cd4b1c12a676a3e09ad87c2860 100755 GIT binary patch delta 232 zcmbQjyqRf&1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jx|@ba4#Pn7DP~ZN9?_ zJkGCs1Sb9a|Nq>S?B#y9PX7^T;Xf!Sb3C5K=2la9lg*8;DG_$NCY&wO+SVodwi}a?a@9I(zbq%nvzRMgvInSrmx&LD{rM5 z7c!_{@+n+7n{&~^wBrmx!gs^1*saq}FS~dlc-h{cDnhy~>?!rGOPbbA$~(V%-^0`9 b{}!05)Uz3=6&%?BbS{IZtDnm{r-UW|*C=ht delta 329 zcmdnYG=+JBL^2CA0|SFlq{3++#a`m+>&pI^m5Endr)X~5I-rnviEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyagrJzX3_D&{07C@>muDctZm)W=n@ZAC}2 zf{))Co5gEw1hpn=#KpyFuuTjS710*)7n#HH%!6$iC)YAhJr?QNCZ;|C2F1&yJY<7^ zteWYtVU9&j Wn9N{v6lwsvo59o7&t;ucLK6Tud2K2H diff --git a/graphics/items/icons/luminous_moss.png b/graphics/items/icons/luminous_moss.png index 6ee31c5e1b2e25f0bee21f6fcc51c3edf680537d..b15ba36d8e3cb40a002b264ba3823991aca7ed2b 100755 GIT binary patch delta 213 zcmZoJLlmz(&GyF#d2LigCfol3aT^vI+CeH1<$ah46 zgN2nvBw8z}x#uJZom0%=39!{h;@8H)EB^2cxUy^QK$1&fCp!LZ&>}p{M6W z<$q?DsR0)wcZi8O9y!xmq8Y-Y*kd|<=c15bULsn$qN=N8!X2&Vw^|0QY;L}-GRwMm z$9B&a%NUoKKM@s1wzp5L?EW!(?sr2|<6LY0-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X{lPZ!6KiaE&%2e>6BS~@X#$Rw)tF-$UY zb4{^j;%RCsXk}_zx314XZt==hK^=-c!b_H|dd2ZHq(xP8rdnVBL@ybeLHFIZ+7-`+KvM7mnO$B})`DSKj_iDM44$QipdGltun1jXX`*SRd zpIJ^h99sVD%ucNtkFSNST@}gjxIi}{qSe+Rfq_9dLsi#9-#Q2ANCr<=KbLh*2~7YM CWoUu` diff --git a/graphics/items/icons/lustrous_orb.png b/graphics/items/icons/lustrous_orb.png index 08b452aba90db20f9785705e6bf8636b4bdec194..ab931ff4684920d676abcd03a3b0f9f6c6d098d7 100644 GIT binary patch delta 257 zcmX@be1>U)1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J&&Iba4#PnAke$qR?Rl z4wh~S!H)m`ciUbGnO(B%`;ONOFYbx^?=(eVk+t6(ewE^1L7n|E5)*3*ZdnwZ56CQh zdAdDuCy(K=l%Dk-GtO+`y0N2smzKtftOFfAT&(@AQ@t(1B&2dDSLo>N3^8tevDxX2 zV#bV>zhV{2gtzTjxud-C?A4r08V++z`d5GR{P4`gzF=mc$MvZ@R`Bf+U35uiX$On_ z_Sd<5s*UA*kJYD?zme`=&gwL4`SI2N|4GiPWcDcH{1CRPMhWN-22WQ%mvv4FO#n-= Bd!YaT delta 384 zcmV-`0e}9?0?GrB7-Iwj0000ISs=>*000McNliru;{qHF9~kQ8eNX@Z02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCOla0;NjEze{Qo?Q~Ar>9Y#wLa! zRb{5379AbN=0J6fCS@R*j^=V_0R~3*)V3nr2eD3IwL_zAXT>w0stjy>j~Q zLm=mPSI%0sa%T13jUb1{Zm*m%yZHHzN=0000)thTQgC<*clX84Z^4g_>N1J$&7x;TbtOk8@=o3Fuu zgC$^LK-ByC1lcIwACVF_XPk*Pn3np}&_&F@KK;vSv0 w+%oIQexpY}4*A`CRVMtYtUrB8J9pg-UP(5VLz|C$0y&$()78&qol`;+01v)kPyhe` delta 301 zcmbQv^n+=FL^2CA0|SFlq{3++#a`m+>&pI^m5EndQbo_H7bqlN;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+TcDr;B4q#hm1X1NVQX=A6`gsv6+;bInmTRe`=4t<_Ic6qa)&+0XLcx!KcG@CJihBKP#P$x0oW4)Zn| uUfAN)vAc1Ph=lYJ{uKbLh*2~7a@Txj3` diff --git a/graphics/items/icons/maranga_berry.png b/graphics/items/icons/maranga_berry.png index 2551c0167b24e40e13af93973161ad854d86142b..d56ce9643c4cf1fe3ac0032b969fc0f9f5b01649 100755 GIT binary patch delta 219 zcmbQpyo_mr1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz9Rba4#PnAkfpn(wdz z56k8s8}Ix-vei*wLC7mB`!fk5hd=+3e{g7%*FkYnjWcD<35x>r(z+R3w;VTrH+l8F z@9)`^x&`;#5m#P*F)!)(>6=!YH0|fJom;8YXE^KlhGUKH&Ubv>`5*U$eOB0TZIQ7pJN`)vvr1W-`wMqR3H9x$rV3W9)0WGqn}65*D!QyGGAk9bXpE{ OA%mx@pUXO@geCySOKJ%K delta 326 zcmZ3+G?96NL^2CA0|SFlq{3++#a`m+>&pI^m5Gmy`L{y6BTz`Z#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eSz9H_H+M9WSyvJ zU(cB2?e6k_Df_3RKv~9;AirP+hi5m^fSeVcE{-7;b8;taog9&$h@s+OXVu@8p`YNpt*ug)!9`@|oki}C+*}qFF?7a6=qhO`c21dHu3_uRey=)rF5|njt=FVp zefsyIPG-5KPVKv|KW;hAUUd6)rt!k!Yw!ARvM`87^K?&V^xkxTqKJ)@MfC;o6e-20 UBF0NpfsSVIboFyt=akR{07#>E0RR91 diff --git a/graphics/items/icons/meadow_plate.png b/graphics/items/icons/meadow_plate.png index 5cec7fc16726e4e8acd23eda2d9134c1bd299d39..6571446bb5ff15f15491ff4a118dfc3a489e31f0 100644 GIT binary patch delta 169 zcmaFN^o4PP1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqQmh|6G#A5ciV#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mzopr0567NGXMYp diff --git a/graphics/items/icons/metronome.png b/graphics/items/icons/metronome.png index 4aa57f95e0c3d5e8523f2bce2a25557b981cf0f8..4270fcaedaa7b76ef06feef2fa6647d1ea0a6979 100644 GIT binary patch delta 187 zcmaFD)W$SHf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfoe)UT^vI+CN90;$#+13 zgEe43$BOUv1s87|X)L?=ua!GK#h^u=QQ&U%q9c6{A;OP2Wg1s)V*aMk{r$*-Jq+`Y zu5tZ%Yx_*LHM`F=$mXot+_`muPrB{~j-@I})&cuApJQF6T;iavZhdWi{)Nj72X#ZI f|5aMn(!Z0T)sdxXiG{u<&;<;hu6{1-oD!M2ZN`ppUXO@geCxr1zkn} diff --git a/graphics/items/icons/micle_berry.png b/graphics/items/icons/micle_berry.png index 74e011d0e84687d3fab85fb3ad8bf46b85a03dac..5e108e5a19bd028cbfda322e7d2bae73a8c3d4fb 100755 GIT binary patch delta 160 zcmcb@^qO&k1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jy)%x;TbtOx!xrk?(*4 z2MgoV|MBZCP0`^nw?2L|AwuOBrx}-SvSQ7P%q2&*ta{fnIo!7Sfnq~>kioL%?AqUZ z_Q`bEmg!$FWSFRS;MScAo=-Dlo*(vFx$^GbP0l+XkK DGeJtT delta 265 zcmaFOc!g<#L^2CA0|SFlq{3++#a`m+>&pI^m5EoI{hng|JD`wwiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyahEo-U3d6?3Nc-xX|7;Awuz)+Ai9qhSg! zhxCbmt2wq5{8(1`t7zw!<1_4)vbUe?`#FP0A>+ve?nx3>#WRmBoFcu)v*Fa?BT?>? z7;{5-*TvnmJ}viY)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqRRNxZ#93n(OB;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tbur;B4q#hla&XL%bGcvur|9GEZ2!Kbi@ z`2~x>A-1Ati(Y4E9(B9F^8Ug-0g85+ng-rmr>@~WkR|&r!oj>P;9~TVn1sCC^uuI>? Y5M^cgtTQrE8R!fKPgg&ebxsLQ08YzcQvd(} diff --git a/graphics/items/icons/muscle_band.png b/graphics/items/icons/muscle_band.png index b374760a7121253f34a3ed229a554c914cabcdbb..1954f8a56bda97b2e9694d760c4ea2cedceaf765 100644 GIT binary patch delta 243 zcmZ3)ypL&u1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$hcba4#PnAke$Hs4_d z9_QC8a%=wl|F6fHqsy9Ew?a#P4)@!_KjJab@iEd&riwd{E$}k+eT_oAyxnU3~e`MrmETiRi}^nj@C-kt@!)lXkeWsDb^`l{yX mffsSp*Pq*W;#+#f3+DQZELT45zd04?at2RVKbLh*2~7Yz_i%Lp delta 343 zcmdnTw1|0vL^2CA0|SFlq{3++#a`m+>&pI^NrqR>JVL+F11Kb3;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|SPZ!6KiaDtl9Qm3I1Xu%hz1SE0g7H8B zg99Ifrswpq+sqYgz7ac;L)RZ*HQC!Vy?BX;@0_c9Qa)MFRr#sikni8slSD6YQ95`za`**x`cM{S8qP zZU!q4MJA+ps!cy1XTrV1j3MEd=&Ff9zKn~D&Yfla(mLaBm-M&A^ABB`Ia^-3V^{V6 nIoJ3Z*mk_-kgDSsdd)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?hv{nQMNRX`!}64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>zJY5_^D&{07EMQ6yVPRs_aQC=*Yd%Q*qf#AI=W05cYE329d5sg}~sOC;uoI`{TY4e>c3Gx@@W1Z7p#4zJLlmz(&GyF#d2LigCfoe)UT^vI+CLX^pTR`vLPW%VLF3ALY)7$9jMG`bRq@oL7BWb|JshqC!jEywKf0 fYCoORzsml-ih0h~tkuteE@1F<^>bP0l+XkK>x5SO delta 291 zcmZo;ddD$rc^V0u&N2ag8Vm&QB{TPb^Ah zaQATu@N-uvOD$3`)-x$=UGfm9grlUu&mAaZ3}iESHE7BMDVB6cUq=Rpjs4tz5?LoI z+SfBCdAqy(U&{XJC{UKMB*-tA!Qt7BG$5zd)5S5QV$RZjN3KH-Jg(~I1*aTro1*&z ze$3*YA^3gUqfHYMugM*9&0no5d6()thTQgC<*clX84Z^4g_>N1J%s;ba4#Pn7DP~LB7KZ zJkHs|v!48~ukdV`>Nj`G=^Bnn@@kBIkM)`4au=C?I5>^v(@dxQwe!=jNhi9$@n^JN zsMKSSY`;Lfk+Z5Q@@k>!f=-?VSvB%*neUdV7Uv(j>XeJ_KQ WIIDt{zEc6vtqh*7elF{r5}E*~(qzj3 delta 327 zcmdnMG>LhFL^2CA0|SFlq{3++#a`m+>&pI^m5Eo&kfY(Y8Bj>P#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mt3!SSL0$PF^IXO8RToZ%DMNCEbM08k+Rb-r5S)GrnH}&#n6^e@RtPfyanOrpQ zW?WpH;boSTT~#YTp7ESz+%GT!kf;!W?RvPBzLbSXi0_wi{}3GBpZa;cqHnQfFXD?bR;g TxfJpQ=xPQ}S3j3^P6k$ diff --git a/graphics/items/icons/odd_keystone.png b/graphics/items/icons/odd_keystone.png index 8ef2d3cdb53688d349b5bfd6ec041ef49cac5b7b..8da9f26aa9f011bac82e6f0457a3b5ce8613049c 100755 GIT binary patch delta 214 zcmeBXUdS{-f|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfodjrx;TbtOk6whG~ZDL z4wt8fC;rzLvS+U?tt?ibc+^tKaLc#v9LBFsP8AHB+`QXbW!LZP9GpUHY|9ka-4(uA zy}hBPB`d9<#dXdhq3spXC%8YUXgm_=RQxurnx$Z$>CWm4Q!1Q%IE!SX$^%ut2)>VY zs`&g#B*Ixu?%uZj+=p^j?b`oWz>xXP9-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X{*PZ!6KiaEU(y!j3(2(UdUV!pMYntgE& zuP6V7E61mWNo~({vTg9SIr!yHA5Tv2=11IrCQEibdM~t8B-M>|x7X>Cjrn&s+p6lM z$E;I!md!u>TlB|Vrp--rjZK7NdQ3PnepUJy1l{{m%G1gA;bJD+)A!<6N_jL7u=yNc zk-*Bd{q`Z3896_kE=ckv?7W@eY4yY6P};Ij_dZ@(@*p;D#ga+(_K%spC#a;doN}=T PI+wxI)z4*}Q$iB}Fza{O diff --git a/graphics/items/icons/old_gateau.png b/graphics/items/icons/old_gateau.png index 064c997a53bd06883611d753ec8e1dfa7e0e68a7..93edb8f97e3ee61b5275d0611c881dca609b9da0 100755 GIT binary patch delta 153 zcmX@b^n`JO1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jwk3x;TbtOguZmn(u%C z$5929mw)r`v>qy6(l_LIT{@gWb vt7W5On9~JmlLr}`e}dR6r2ppsZjv_gV3BV4w;>g1JcFmJAFIncr-UW|WhF*? delta 255 zcmaFDc#3I)L^2CA0|SFlq{3++#a`m+>&pI^m5EnN`m(jq1E7$2iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyagJo-U3d6?2jk7H}nqurMiVxZjZA;8`fN zZsEd(2RjA&I3~zuP3usZ2*ivJ9aI%$RJLlmz(&GyF#d2LigCfoiHeT^vI+Chnc+DRw}C z!^ z$%ffyl|T1XYsKzeM{_Q9UE{c>@gs4HUz4S3T7$z1wh#U3r8=LUZ<-djRTpfeaeUHx3vIVCg!08%VgmH+?% delta 289 zcmeBXdc!n9BAJDmfq_9NQsFd^VlVOZb!C6d%EYTBwCedP7od=MiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyah2o-U3d6?2jk6vPdrLp>@aXP#RhXg7c)thTQgC<*clX84Z^4g_>N1Jz9Mba4#Pn7DPKr`TZw z4rg7q*}vyoH0|+Oa(8RgE9u13$$uO@YCpN2ebdS?Klq5x#lG`fJ=RS8blq!zqh00`)lQ zCI!6-Nda3+OFcJjR;aX@b9v^Zhx`Zfij@}|-rHLLb6I=_vk4FL3TxZNQ-F?R@O1Ta JS?83{1OR$QXhr}4 delta 308 zcmZ3;^q*;hL^2CA0|SFlq{3++#a`m+>&pI^m5Eo2Q=ut&1yD%5#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mdsx+nE{@CR^i-kh@T(1m2@+W`{4x2xAimj$lrSNyfGB*G>4_*u2-eSwn8W2%m* z@4Jy1vVZ!@^r+Ca2K+M@+)`Z3BDL&Bf(`>SgOOD-?Nmo*)iT|sQo@hRArM%bP0l+XkK DhM95F diff --git a/graphics/items/icons/payapa_berry.png b/graphics/items/icons/payapa_berry.png index fe021c473ec4a2cd04b29db04798f2ec2b5038a5..fd9ac891aa3e000e1028076ada347ca9840cd91c 100755 GIT binary patch delta 218 zcmZo;Udl8JLlmz(&GyF#d2LigCfoi6Bx;TbtOzfQ$$ah46 z!^Jv__3hvHyBA$pwDshqFYVK3GQKJN6Mn$mzQxwDgELw*$t(XV=aV^)xEnfV78^(Z zj`0!{iuLkt`7(8eq=MQRu7rdc9{zT1Yj6JET6U@H9fRTe>#1%ne)eaX_c#dc3T3Xl zWY~Lb_tOLB4<#o|)O1u0yF9ZbH;%RM!Y_fxVOy%LcD_4azu_AHnQFG4vjNqYfDUBv MboFyt=akR{05JDwxBvhE delta 315 zcmZ3=)W$qPBAJDmfq_9NQsFd^VlVOZb!C6d%EYT_wWU6=7APcM;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|gPZ!6KiaEIx_VO|r^0f9h*@?NXNMxSz zfQ5MjlU1i(?5*q*r`gP;70hz`C#FjtlinGb6*x_ zCfF`3eEZ?h`Ql8aE~OcMC*9=&cBlvR7o^Nc@!kCKtC+%*4SQ?E5?i7@PdzBoamlrr z&80Q(w8IMlN7nUAZ!OC7SQUNi3t!sZpo3dK+unJfvFIK1tbMVb7Soo^Id>80QU*^~ KKbLh*2~7Z75P4_- diff --git a/graphics/items/icons/pink_apricorn.png b/graphics/items/icons/pink_apricorn.png index abcedcba49d70b5045f309260ee632dbd94e059a..817e0140c395634872a1188fd559564bb226a159 100755 GIT binary patch delta 196 zcmeys)Xy|Qf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfokeJT^vI+Ca#@$k?)8C z2g^~`jbH!&-!AlyYpY$EaD17O+lDFq&MC(?ec39Ml{)d8!{%_+Q02YqPG?pHgifoI z(JyKiV_|v!R!cC7wc~l1+Jh_YPBU08vS%>(-DEt?$HTnvNVP%i&xOWkAD*&T?w@xs p`S8P@($9UzekrH^54`_`>D&vJKOe0WNo1X< zXkX8m_b7?W~xX?V{ZBI4Cdf-7QOICDli9e2-L`EZd$vRb42!wlN^}>CuG?7bY?#^i}WF zoFL5gY{m|W_CuB@k9iBu*|H^sB|SPSOydlLIon1P0e!Bd{t_vPoR%HzhZ=W9ODQr= kVftit$mU4H6U!u^V~e!n7N5!A19TIEr>mdKI;Vst0Caw0pa1{> diff --git a/graphics/items/icons/pink_nectar.png b/graphics/items/icons/pink_nectar.png index 21e88d3023f524f4db91aad886bfa76e86f7bb81..9fbe0f76b34f750ed9aa14d5de1f8ce4e5b7d6cf 100755 GIT binary patch delta 211 zcmey(G>>V51SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J(3;x;TbtOx!#1B;R2L z9@c}>0@MEgzhk#pCZcMMRgj*sg0gyxy->WKzsgTe~DWM4f DGZkAN delta 304 zcmbQo^qXmdL^2CA0|SFlq{3++#a`m+>&pI^m5EnV{d%SC5}=THiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyagTJY5_^D&{07CfG4`BYk&~07!tj(s zT3b_7`;bacOw5#pK|QP7yu6M%2J{tg*jTuNbIRltDXA=$=Mt7PSIuy=Nb*#Bx-KiL zQ^0SRoBQS{sTSqPdlxUhnQA6@W}@BYix)4MIu$D)Y1pk^4nNx@mRa^OVnA<>_f^DlijdV9@!gdQ32@aShOU44$rjF6*2UngB67Z2JLlmz(&GyF#d2LigCfokS>x;TbtOx!v#n(wdz z56k1D{ZIdizmwAB_5FM^ilbBVwnDMYf6mtxha?*A&o#KCyy=Icj-|_9wd9;*b7q!= zCB8Xy=dx$vDuzlaZBdi-;(qT9l`BKd52<-2OFVdQ&MBb@0MdhLtpET3 delta 318 zcmZ3>)X6+SBAJDmfq_9NQsFd^VlVOZb!C6d%EYTFlU8)40VpJ1;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X{bPZ!6KiaE&%3alJlTnaZ%dG$3JY@6hr zQKj5+c1EJqGdpF8MFC564=;|9Jd{}C`7&dDhN%}z;SpOSD=n+0*n={i+xocppC*KM z_(Z3>yRQzE=s0|1is9ZxN;hnHQWzEoFWD6ouzF&Y)Qrn9Qc_Y^bP0l+XkKif?P{ diff --git a/graphics/items/icons/poison_gem.png b/graphics/items/icons/poison_gem.png index ab339eb718deafb709cadd530e61f3cad86dc403..8e78855276e955c7c10d03a7ab250c36c3c43e03 100644 GIT binary patch delta 177 zcmaFJ^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?hvQTcc8e4vnciEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaegRB@%N(oqKzyhWH$inS9|wg0iY=hg#zG3jwOC zqV64;X_mdKI;Vst0RPrjKmY&$ diff --git a/graphics/items/icons/poison_memory.png b/graphics/items/icons/poison_memory.png index e665d8176263237afa0dccbb8159920f8257edf4..270c8697dd9121f17659d8feadffd59aeed54fb3 100755 GIT binary patch delta 247 zcmZ3?e28g+1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Kwba4#Pn7DM}L7`>^ z9+%i89+4ye|KH9F(Ac`SWS9E$y$5*{BmZ$m?R%i`TB|DfK$_l)M>!jEKZ-1}l3b#9 z!dZf;|4L7X!1EY`7U^J9)qCH&4rb~w9{uP$;q&TAe2q^sdliz`{GNExJ$3VPfAY!{X=PLOx5!PgpN3b?Qte rm+1E=(YyAuP5;>G|MhER{Yl{+0qlp>MP&~IUC-d@>gTe~DWM4fH6?hW delta 344 zcmV-e0jK`L0;2*000McNliru;{^f^1vMYHnHvBA02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchC+>nTD5BWM48=pVVp_<#<%yt9Lbq86&V=szPrB>WN=zWY9NE`-Mjxl21s<22MgZ4 zd;c}aXz_B@((t|a?(YF}ih|uc_TB|+VGvgZx<&i$Z?K(=!7eVQ(GXP(j9Y;+L8lKw q94)ie*mUJLlmz(&|3?F76*o-*s+r~K;uxYavGr15+a(#IF9h4)H&x2u_^;nEy-w!CiUtqZHzv%ArsO5)t zk@jS#o~+H`y>!e!p#GC6CeVF&e`mdKI;Vst0Oc%Yi~s-t delta 320 zcmZ3@)Xh9WBAJDmfq_9NQsFd^VlVOZb!C6bBQMOxSn-M>0VpJ1;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQK0O4PZ!6KiaE&%2N;?>a@2I$WL$T`ubA$yj;(%-pjN6NDXv zHv6A9(A6(xDYQv@XURQw6$&L-Ct4IRF!1D>?p708p8@ir Mr>mdKI;Vst00KU4f&c&j diff --git a/graphics/items/icons/power_anklet.png b/graphics/items/icons/power_anklet.png index 3a2091c8ee862346c780002b5a414f3a992016a7..be1982645b982242180700d53c7d6862a13cbe13 100755 GIT binary patch delta 236 zcmbQwyq#%+1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jx|^ba4#Pn7DM}L7^iG z9L`e%4*dWBP&G^TZrQg@KCcz^9ghb6Td5WKRk7P)z4ymfjoCLHs)ct2`z(aDefhZ$n$%omUx?RXjx3p4{`J=SkzmgEA+(0@CN3RxI3je{SB*WqwAlCj74c gG5gQsz45P@_l2_Q)&|^f0Xmt%)78&qol`;+02-=vjsO4v delta 340 zcmV-a0jvJE0-pnr7-Iwj0000ISs=>*000McNliru;{^f@DF^Hq9c%yq02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchC(y~=nURc$#k6?5HR)j$m%(|@)1XvX2_tyGY?5~iIF(!QHe~) zIPUH+zzQNbvjL$2Sm2SM*9$~NsBN7K8D88YnC+7Jf=5f!A_*@ m_*q(1n)UTUR-6C*flY7sh&4&xqKgLr0000)thTQgC<*clX84Z^4g_>N1Jx|?ba4#Pn7DMJx6ok& z4(D8#o}K?&wV6HVF1zfz_0tQ*pVx2MzjFH8uFGW0ca(im?Gm;W{euxvf_FP+tc#Ro zcJ^FzYmrTd+Dec1eN$DG4^6aOzVL)(BE#hsnT|?I8=0r&UYZo<@`NvH+rm|569mKV zAFyeB%y-V$LE!jXHhrf9neE=Odz5TGe7gJEbDhVJn0S7D6PtH_GjrDKCEC9E(f|C* d`~UwIiJyPKX4+Jj{}t$922WQ%mvv4FO#peyZ(0BV delta 342 zcmdnWw2*m%L^2CA0|SFlq{3++#a`m+>&pI^m5Eow!a0jk04OA0;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X{nPZ!6KiaE6tHu4=(5OI~CD>K_-$E0gZ zcK2^F`W#ii;0JT=u4tbR{4a9YAK&K+%Zb@@+4dm=Kf}NF)JUo7N!Q;h_Qqz{+UfY& z@$6mJ$F7lemrvDnx&o(u;Pv1S+e9u+Df#67CgbW8mO%F|W?}bi*@>?@otv)p&DJ(m zVvxtNzOlc9=};~KP8~=A#dlz$<8wO mot+zhygksh_5Z&Ev&6IcO;2XU1k3|^g2B_(&t;ucLK6UBnSi$d diff --git a/graphics/items/icons/power_belt.png b/graphics/items/icons/power_belt.png index e4273f85c649f5718c320ca4e86ef05514036ee4..456793fb99032e3298b6c562641cc25fea7c419f 100755 GIT binary patch delta 233 zcmbQkyoG6k1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jx|{ba4#Pn7DMJqu3Dz z4rkF7C;sZ&G%mW@mv1)NH~zD4h|W{_(56?@eUB8y9@1yo?O4QlAxg;X$R?qnDGQbv zvMjnO_Vh#Qgr1Oi6P62ZEgx=IUw`nnQ{h1D!gc;FN$h3OD_KH!DqCyZD`OEXJfQtT zSRy|mCn-(l_}Wv`SQuV2YUs}sl(DEeJ@HJ(Zw4!N|9uAU`qp1EDplWZW_{1u|6Bie byBExRD%orm9t9f!-OJ$V>gTe~DWM4f4gP5N delta 337 zcmV-X0j~bE0-OVo7-Iwj0000ISs=>*000McNliru;{^f@C@aU*K+XUF02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCa- zNEhGtH6G>+`@Tb$36yo)bYSoa2AFbN6gjwEc*Nd~V`R8wxJjE+2!sen%v1s) z44Vgbuz>R4Ks>?C@D#8xL&ylPu}YQpFV2y(QI-}Jmk45%b9R=SJj6lXka#;1*kL+a jmB9LVrOVa-{=lj?$RRa5U6?NE00000NkvXXu0mjf1Av0! diff --git a/graphics/items/icons/power_bracer.png b/graphics/items/icons/power_bracer.png index 54aa34844bd5283d773bcac0014076c6814cfe82..9d3d37781bfde21a49b2dffaf6445bd8007ed78a 100755 GIT binary patch delta 226 zcmbQpyq0N#1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J%s&ba4#Pn7DM}K|U5m z4rfu3XaDzCL@OM-cs6d^bkDfut{b=3UtxVEE_RXeWul7UCLgA5bBP4Dt{P4#5E!dv9WHRrMG)Ei4Kde%vt{nX{R>al@@qMZKW%!GTU z%55RjKkm5uMN^%pm73;VSRPrbsH>{xr0`+#sc|DN2~RgVsQl>2^v|NYG?96NL^2CA0|SFlq{3++#a`m+>&pI^m5EnF{#nA7YM_vKiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafAJY5_^D(2KqFyw1C;Bl3mw$5X!m3zQO z@#rbG&zMAI7A*0~7sxxX^EY#E!1SuB__}R#1pev=ho(MT6qbAXO!KQ7@BD0gtbETc zyO5D|HF}auDT64zkR_K_P`hV V>*cf3J%Ns9@O1TaS?83{1ONkFdR+hj diff --git a/graphics/items/icons/power_herb.png b/graphics/items/icons/power_herb.png index 947996c4cdd69bff960934aced314188fc0dd52a..68225447fbc626274f583a5cecc3506828f9ce78 100644 GIT binary patch delta 181 zcmaFJ)W9@Bf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfok$ST^vI+Chnc!&DUVS z!TR+2wBPX&3od%Bv{pX-aIfM+i#mCRFPajaGnYPO>n=Ri?XlV8{Z7NjHnXy_e0Eoc zh|a6~w4=Jpu5tTv5xxF(te>|ib#X6#_PFUO_jlJPoYT@5%r{lsReA5-(sSCgmx=$o aI%i1>vtYmF)&D@d89ZJ6T-G@yGywpy?^ryn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaec``X~mu(c)hT#J{%3I3YJU~y7RH8AaKITBh^w|3_m0# V_uZ=2l><70!PC{xWt~$(69Bj_UO@l= diff --git a/graphics/items/icons/power_lens.png b/graphics/items/icons/power_lens.png index b18d9118603721027c2f2de4dec3010d3d6f5e47..742db4b4dfaa30c8830d59f29c94d7d49609f760 100755 GIT binary patch delta 244 zcmZ3(yq{@;1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$haba4#PnAkcgQs}S( zk8`rj%?bDZ@7sF7;d0utU#DKUK4^XXL;qz}L3i6J+16^mTBTcD2k!WEZj&!t>nG@| z^zixz_Kyli%wd}Tk!~*jY_BxFv!982!X~oY<@lc1M`rAo+&pI^m5J9#;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>Xd%8G=RLn`eu$SwQfdIpUk|JNNEf3VV z-uY&w-+r~m!{>TXM!KNw{R4ZPcE5fg-J$<{?qA0b%YN^8TqJ(%pA*N$<$W_wE|~my znM9$sId5s`su{tFa%tubLB5=xY3msR)~v`*)-4Wu;8go~>sE^@2HsE6D%P_sZwcF! z-c#DrWl=m!sdvjYtw@D9eotwYM#Vd-t_&@+0ZuX-ydT~d?wbG^XJB!CAk?K1qBC#r>mdKI;Vst0P`k=U;qFB diff --git a/graphics/items/icons/power_weight.png b/graphics/items/icons/power_weight.png index 149679c387039ebf447780311c16a6602f172bca..221416007cf7e3238113e7ff7591677c9dd820a9 100755 GIT binary patch delta 228 zcmbQjyq;--1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J%s)ba4#Pn7DMJw^*wJ zkMly!rN84hE)3y&Rqc1CXZAnMr`@XpzBalp5XrlCfFUZPdSWO0eObd??(gfSU6r_Z z>yX3snL&$R9tv5;v3l3;i~e@I4H)yL%+5;iTExs|rg_*iwl^u@NAeua19?9(KU5lS z;*^)E>WSvHm6hsInjT{lY+-Qxsb1xzsX}uqWaBuh-pEz#-gV}Jb>IIAxBdUW^UFHv Wv2JWr+av&VDubu1pUXO@geCwgrD)** delta 329 zcmV-P0k;0H0+a)g7-Iwj0000ISs=>*000McNliru;{^f@G73A8s!IR>02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCs}}VDb(Am@LoYxN06~Gh2yS5Y*w~a(Sn%|o@*VvI;QyGi%qPw&q9&g> z;DMSkBis>%LZ#j*x3{B)Y^U7&t;mu{8F4RHti!;zMYOVHTkIw!CbUEaWSG)van|fx zAbtxA<0w}Z7e`42le_den0S{Q2lvo&m6Ibzk6LHtWho+_^bJ|`0}H=OLyh=hF!jv8 bKQPY|tidqR*N%Cq00000NkvXXu0mjf=plVv diff --git a/graphics/items/icons/prism_scale.png b/graphics/items/icons/prism_scale.png index 335816ddbcc430a99e947268e3d57f34c46ed87c..f992c3bd84fda8d5d85b254968ee2d816768dc10 100755 GIT binary patch delta 153 zcmX@g^n`JO1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jwk3x;TbtOgwwmT#P}H z!!=Np^LPA50WGKZe?Hx9UibBL?%f;xc?xeC+}1X)KiRh0_+-O9-*X3WRvrWDYG@ilJ)sNL>ol`;+0Md*}cK`qY delta 250 zcmaFDc$8^^L^2CA0|SFlq{3++#a`m+>&pI^m5JAg$<$k^5-22I;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tblr;B4q#hm1X1$F`=E*m7LP7$zCOjTB8 zoYAsr#WnQM+?9`OW=U1OXQnA%Wy sDkfo-M8xHo9_NR89K5a@G?^G;7YH$(YI)thTQgC<*clX84Z^4g_>N1J$&6x;TbtOq_c$l8;4^ zgXMyr=!D<#6&j{`opXI=*}vAzJO6oa!*rXc+KR5RE1rrwNltJncRaUr@=OlC7b$61 zbGRPd(~1ZD?+GTVWXKdd$hwW1@;ds<{#j1 v@LObP0l+XkKb^ct4 delta 306 zcmbQr^p|OZL^2CA0|SFlq{3++#a`m+>&pI^m5JBT%>GgNo1X< zXkX8m%mdOq> yo*e8ag7sN;F&|14&|$yS(-h#(p;Rrc&A^bZrndN%cUK?KfefCmelF{r5}E*Nmt&j& diff --git a/graphics/items/icons/psychic_gem.png b/graphics/items/icons/psychic_gem.png index 6b84f38daba8f5abc1199bdb7610e6a1b0287906..b73184955efb97dc67bdd20bfcd587f2028d2f3d 100644 GIT binary patch delta 177 zcmaFJ^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?iKBK4`sHK34qiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaegRB@%N(oqKzyhWH$inS9|wg0iY=hg#zG3jwOC zqV64;X_mdKI;Vst06qOyfB*mh diff --git a/graphics/items/icons/psychic_memory.png b/graphics/items/icons/psychic_memory.png index beda2c22df19697b1682d33e6ebb667f3f0edfc6..6a5aea79a7621d897c757a9d670fb72b0ac0efa1 100755 GIT binary patch delta 250 zcmZ3&e3WT|1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J!Ktba4#Pn7DM}MWMqA z94y6-${n-*|G(YTdu>_m%PH#V*000McNliru;{^f^2oG!(KI8xZ02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCg^jzPrB>WN=z)Ya@f~-Mjxl28f2vY!|$H z_x@{;(ULPQW_0eocYhC$O!Mi3 r5J$^wacSLs5au13-EcOlr*QxP@L5LIy-&$}00000NkvXXu0mjfRt|)? diff --git a/graphics/items/icons/pure_incense.png b/graphics/items/icons/pure_incense.png index 8657683b188233d2e360da0208f3e390d350ecf4..eb5345f014c98b99453ae88088bc33b9ede836f4 100755 GIT binary patch delta 233 zcmbQpyoG6k1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jx|{ba4#Pn7DPKw@`}$ z4{PngBTowd|MqhT*)nI63hsla2Tf=re~$oZkAPkSidjRQ#RZk(-@@b{z})mVVx07#iA(!X=+!MFGxKs4Z{O?bt b>mM+`mt=k8ZqMKbbT5OatDnm{r-UW|Vk2qJ delta 326 zcmdnOG?96NL^2CA0|SFlq{3++#a`m+>&pI^m5J9-aStQI380X8iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafAJY5_^D&{07C@>muDctZm)W=n@ZAC}2 zf{))Bi@j$o1hpn=#9FWJTO3b3%5-^In^uS_2&FI>#+0`d?e|psvyv^qc_k~fMd#nI)N5p3q}U51f#H; TIqvI#j%M(5^>bP0l+XkKdo5|J diff --git a/graphics/items/icons/purple_nectar.png b/graphics/items/icons/purple_nectar.png index 59111f1e4e40ea28ac8eee58cd0820e915a972e2..f792b5ff558e38a3f5f4b1438b5794f470508b5f 100755 GIT binary patch delta 211 zcmey(G>>V51SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J(3;x;TbtOx!#1B;R2L z9@c}>0@MEgzhk#pCZcMMRgj*sg0gyxy->WKzsgTe~DWM4f DGZkAN delta 304 zcmbQo^qXmdL^2CA0|SFlq{3++#a`m+>&pI^m5JBf@cWzXT0kN364!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>vdAc};RLn_EP!Q%|V(dA)A}1$Dh2bfO zw6>siNbX`_f zr-0usH}}m^QZ34n_by(1Gu2G+%tX7(7cX8ibt+aq(y&{-%CBT!^Q>*(&)u~C9Oo>n yUiep diff --git a/graphics/items/icons/quick_powder.png b/graphics/items/icons/quick_powder.png index d83b0b506257bad81e85f36d7743592b50f943c2..fa56dcca7c26cfa6e86c5edabd62cdf9b04a0912 100644 GIT binary patch delta 221 zcmeBRUcod$f|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfoi6Ex;TbtOx!y0w2-qR zhjVL!!@vK{+~roX?-%bj%bO$9(Utti^HSBOt)hJx%YGu^W^4fTj+falbv|_ruqE?8;xFnoSx~v@=xL9nx6~gU$Tanu}CgAQ@jUs OBZH@_pUXO@geCy0uw(uJ delta 317 zcmZ3%)WJMKBAJDmfq_9NQsFd^VlVOZb!C6dB*QDGWvwYY5hx^H;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|=PZ!6KiaE&%3akcPTuL{byu1qLZRpxO zaS}twp%X`sMtBMy5;Q8}Euchxv0hPdumcFVQo+l;NtV+7J%H(N^e{#ptNwKTLRMnks^t^oRt8U3 KKbLh*2~7aG1Z-pg diff --git a/graphics/items/icons/rare_bone.png b/graphics/items/icons/rare_bone.png index 80b4af9d58c1da065daf944ab4f7c186a4593288..eb5665a351afee7a1cb598eb646d5231a107a867 100755 GIT binary patch delta 167 zcmX@j^oenT1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxvYx;TbtOk6wBQRsjH z2a~eLzyD7rZT@m0(?U;j(T;2Rp`p(hCMWZi736fJusdJl(M~j$c*bICXLx+!LtCdm zs_*KIzHdrDb?|O~S(LcC`$GA^!Udscb1Zu9d@T4{c0s?2;i9lL&pI^m5J9}sW|A{7od=MiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafeo-U3d6?2jk6gXH|1#;X}omt#HPO>Pf zF3HMideG8#=&B)`sPC06>x?MJML%++Q8t{u60N(MySa{sOO;DvI0)Ur3Nj0 y3l**kv;;2mcxGg^TB-V|h2Y7_C+vJLlmz(&GyF#d2LigCfojSv9pqKY(9=%) hFeSb^e*YtF*#maW)>BIM76RSC;OXk;vd$@?2>?`_RM!9i delta 285 zcmeBRdcib7BAJDmfq_9NQsFd^VlVOZb!C6d%EW6f6&>K01r!o5ag8Vm&QB{TPb^Ah zaQATu@N-uvOD$3`)-x$=UGfm9grlUu&mAaZ3}iESHE7BMDVB6cUq=Rpjs4tz5?LoI z+SfBCdAqy(U&{XJC{UKMB*-tA!Qt7BG$5zm)5S5QVoq{`f-nac7uSIsJzieN+6?AR z=q}1wp%~(HRMXVNB!WR}p_mlcRHj!Rtc6U9GN}U6i~24e)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOk8`>Td2W+ zgZYA!;D>+W+vH4f z;f^^1C%YIbTtCE$9$a^wW8G4gUGL1&XUDjlGTWFfcJgq4t%ay~Iwv!iM8?%tpnVLU Lu6{1-oD!M&pI^m5J9}D75=n1W-u4#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mLC{cV?z7EQ_1o*_yyl_~-{OQs}*}p0p9d{oCee}^ua{C7BUa(_5UHx3v IIVCg!0I1VfssI20 diff --git a/graphics/items/icons/reaper_cloth.png b/graphics/items/icons/reaper_cloth.png index 73f0874426a2e9cef6d5497f6f95ebd7421aeb2c..f4f0bfdb487561474914bb47562d72b5a0aebf2e 100755 GIT binary patch delta 231 zcmbQpyoqUo1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jx|_ba4#Pm^gQ$qtFor z4wh7jPyf~5Hylftx_qhD^t>4h`aYIRHb}ScE?#*rLGGQP51UzYg^ybMf#3oun^kF7 z)C48J&53SMvvKFkI~qE3Yj5Mu;G*?wrgNwNGs$IP^*WjOKPH%Yqf1@xRj2&02}dnQ`tI09YE;OXk;vd$@?2>?SmYIpzu delta 326 zcmdnQG?96NL^2CA0|SFlq{3++#a`m+>&pI^m5JA!^Zq;jEkGgh64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR?Kc)B=-RLrUEcN99Lz~eem*kb8j<)wG0 z&tT@*RxNGO5L@tH*`wKbhtcZ)&(!TZ1?pED`+DyXpCl@hc;!%5+e_XjXFqe#cACC9 zeZy?8LbIzA`&~@rO&^%4G+1uF%&NjrKc|3mLPXc&PY1OZ3Rv>J*vPPS?(yR;GdSW( zQ+;*_3AFoiKVo3K`!(mYHt&L8A1wMW25%{h;c@RSobFc@Xuri*>^%3~fBz<~wflWh W{>}xSmRCSWGkCiCxvXJLlmz(&GyF#d2LigCfokeJT^vI+Ca#@$k?)8C z2g^~`jbH!&-!AlyYpY$EaD17O+lDFq&MC(?ec39Ml{)d8!{%_+Q02YqPG?pHgifoI z(JyKiV_|v!R!cC7wc~l1+Jh_YPBU08vS%>(-DEt?$HTnvNVP%i&xOWkAD*&T?w@xs p`S8P@($9UzekrH^54`_`>D&vJKOe0WS(>TLm&bHA+K%XnAzeGwRr)3BGp~hX&Qi_aI km_C^uvN_W5#4-u!*dndC#b@&O0Nupk>FVdQ&MBb@08Rv9egFUf diff --git a/graphics/items/icons/red_card.png b/graphics/items/icons/red_card.png index 1d07d827fa80c2cf0d01dbc995375355ff3609ad..88c8bf0c171c3db52d2f8470152315e0386d21ec 100755 GIT binary patch delta 135 zcmdnabeVC21SbbG0|UeLm1j>)thO%}C<*clX84Z^4g_>N1JyWrx;TbtOx%0gkdHxu z$LV6&j{h^)x-GwCA(8q=f5zXr)fb~LizsA%lTc_heB$S|;N21yncu6OIk;|2`K`p+ dT(Uogoymsr<;=w&Qh}y1c)I$ztaD0e0st^qJ;DG0 delta 235 zcmcc2xSeT&L^2CA0|SFlq{3++#a`m+>&pI^m5JBPnBnJhcc74XiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y}^3$=luK|5El(M}e}8B|(0{3=Yq3qyag8o-U3d6?2jk6vPd<6bf5JCRR9kamX#6 zG-=W%#-_!O9`S@Pebn@T;ig_dYL9|h&taaV!yz*h3MPamUOkl1bB6IFkHmxu4;i-P dq#9mkh8s2l!QS49tAQpnc)I$ztaD0e0sy5MN~8b) diff --git a/graphics/items/icons/red_nectar.png b/graphics/items/icons/red_nectar.png index 1d2058dca1bb622d2c97a70e3b7ab59c096caebd..73710370e494c3f922bdac292f213323268e5fc6 100755 GIT binary patch delta 213 zcmeyvw18=X1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J(3iQ78&+;^|$R7>-;E*EM1b5=HTYXQLnO3W?qFubmzM{YkyP@pA8hOx{D8 zJszE@oHHLVT$bcu))P8c_>Ci|D`twOKkLE(R-U~qx=Z^M${o*Hu~yF$Tyk%f8Gk14 z(beDf?Ku@7SMy=pyCYIHuXk16-}Uv~@&3K-@Ap3zuVF~~$8tiLp*9uhHU>{uKbLh* G2~7ZQfno;$ delta 305 zcmZ3$^oMDJL^2CA0|SFlq{3++#a`m+>&pI^m5J9(r}yKlO+X>>64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>vd%8G=RLn_EP!Q%|V(dA)A}1$Dh2bfO zw6>sf+`z|Z1 zQ^2q7*_o4BnF4(w$Ir~1y!WzLlciC4`nfqq&ec~PI~d>Ro!e{q+WyLx;{5k}WB;?i zvY5I3{k`?}9K~DD{Qu9MxGpV0M5JYNCj*1JLlmz(&GyF#d2LigCfoh69T^vI+CN7=e$ag@2 zgC+LBqyOU_vF`rFHnU};wZ<8vhd#&J6e^-#x2f*F;Id+^^iKYL0@vcb cE_}CU41C1YY`0p%9B4m-r>mdKI;Vst0FRSW_W%F@ delta 278 zcmZo+ddM_EBAJDmfq_9NQsFd^VlVOZb!C6d%EW7?`b9TL3@9XC;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tber;B4q#hl~>1r7<;2^LOW9EFamEj=4L zwVDoVEX(M)pfoF@XM&KZKufVi>;xY%Grbm$rVXx}EhD^Q7-j}*FkE>Q!}oB8I2VWX z^aB>h+8jdr5}1$lTKCv4h&mvXo~+Tn@rH!P3C;H6Ge=KzFWkl)*;CN27_ozqVcjl~ V;DbGVc0flkc)I$ztaD0e0sw7sT73Wj diff --git a/graphics/items/icons/ring_target.png b/graphics/items/icons/ring_target.png index fae2b944bee351a510f90ce982908f1f5741e460..08b044df7667837eb804d118d611de763edf2987 100755 GIT binary patch delta 170 zcmX@b^p$af1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$H>x;TbtOxzn7&DWs7 zlYGAFzp!PZI0FE*;loHPwL+U3=@{O+Om{~wDn&+*&A^iyKK;|!pM N44$rjF6*2UngBCwPO$(0 delta 255 zcmey$c#3I)L^2CA0|SFlq{3++#a`m+>&pI^m5J9(_KyCm4xo^DiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyagJo-U3d6?2jk6ofgL7<r_@vYbVP^PoFM5)fNz%wRBagL21uJN3VyD#{&Fz1x>0F>Iq&KwJOeK2J^MYO*v9M x%-fDTGdyGxol)$N7o6!*Wa=ZjsvhWxmNZF0`JTVxx)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?iKBqzAyFHlIl#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mLLPLYkF%s-<-E5{bE?&b_@;LwpX%Ould-L0MI`LoM<8g#cAm zQTL9_v`oFHPc;L&TY_Uwofb*d<0#VfZ`!HR;26TH$5_Pd#I)kH;LW=pLMluQ3ttIc UtkCMp2Reem)78&qol`;+02)thTQgC<*clX84Z^4g_>N1Jx|`ba4#Pn7B32k?*hq z&uZU{KmWzgFWj&#SpBV0I9FEBTZY@;#2NZ?7ny!oDC>G;IoIB;``(A<^H}fM&k!Sd z>!8%+dkr>{DGS2aXK|%77(Y@lnw)Q(Ho3?t>)_St%O|?*s?ZDXPHR%Cp8Y~no0Y5H z@=i!x6wC4bpAUC;R|p*5^`=X&Z`R8d3B3GaPb&qwS6GTy?i7~q72a`I-!1up+77#W d)6@Sj>aRG$(x&pI^m5J9(^wO84T|go664!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR@#dAc};RLq&$@5|R@Akf+)thTQgC<*clX84Z^4g_>N1J$hdba4#Pn7DM}ZK1;o z94^foLHa-cpMTqQ(JC{}>hAI4kQrYs{&7~y6+DozyeqQdNr%CebIunOm7bpsh-$KY zuKHr?ogY7Ayq2n-;n-|YkUdwdUGPmX@BNk=9Ont%A!3hVZj%Och; l{hhy{C*S7E>_LL^2CA0|SFlq{3++#a`m+>&pI^m5Gmo<5S^kcc74XiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafwJzX3_D&{079N?E=Wo3PkqbU5`fldbD1P~-GAR$1o2k~6es0cgR--7LwH7yX z&fY9ueQ-{R@b*5_^aD{6M3jK4f6&1fWgz%&t;ucLK6VEU3r86 diff --git a/graphics/items/icons/rocky_helmet.png b/graphics/items/icons/rocky_helmet.png index 006a9f8aa4a1236a4117423c53524aece23dd9a5..72613a206e40be44b33c1add6c2a81ce1dfd97f7 100755 GIT binary patch delta 214 zcmZoJLlmz(&GyF#d2LigCfodjrx;TbtOxzpjEp$|Y zLz`>L@A*GeZz-*Ryl8b=OorVA$^OT|92=fSXV)%wc;Vk_e1iGY2Q$GBt4h}RUQ(Q~ zYSvEPaIV<74bP&qJAPF*9WQg;#NpN$=W;fTac1)gX+2YinAc8)C!bchwFo{?4&vzk zP?#j)wMa?$kNo1X< zXkX8m{J zr$*_0m!9a!MpaDt4#vmV@fem}487lVKK)+Hq95Xl=ZvrH`ooo5yhn4X+1bKa&&Mnu zB(_|AP&1)aiutngu6t?6Q*XxoGP`3LGyUumdKI;Vst E0L+eZ!2kdN diff --git a/graphics/items/icons/rose_incense.png b/graphics/items/icons/rose_incense.png index c6b6abcc360702f66e2e91dc8f8e50cbd30b8283..95bfc77e1f8e5b003f15054323de5d136e43a5f3 100755 GIT binary patch delta 236 zcmbQiyq#%+1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jx|^ba4#Pn7DPKx6ly< z4wuU;ydB@|-#08=7O5&&d($-#;3Uk@~ zhSk(KjqgFTe+lEgyXzDgGv6CEep$EEx@5)fb2)J-bKL#sXH*LBms(m-9nX{eB5Xt5 ez3KUX9Od11vDx=|RfGVY%;4$j=d#Wzp$P!M(`o1c delta 333 zcmdnaG=q79L^2CA0|SFlq{3++#a`m+>&pI^m5JAkVZUZuAW%rW#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mM+yBEpOtcZsY2RFKhOhaA)t))T>(J@9zp9oFgl{yS%)l z*>YC8mBXAq)thTQgC<*clX84Z^4g_>N1J%s*ba4#Pn7DO>*pnr-W*?5brd9NU&$x5#-}eqrWV7oHkKD4pYMh+d=XuoSl;PX3BL|!P zgLAZeuVk9pbI(w+yFBCR9nTpL9Usnn&#x;gD6%s(c@9@u#S-s__k_xY5_L+i-tqL9 zdd@cXZ=s@>apdJdmQRyc{5jZq@_LuYQ{Ln?^JbjaW?#qs!|XOwh2Z|V{L?d7GA1;w RTmy6^gQu&X%Q~loCIB8HXD$E$ delta 325 zcmV-L0lNOG0+0ic7-Iwj0000ISs=>*000McNliru;{^f@H5V7xP*nf`02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchC_Frv^FIMHs z(5j`yOK73JCO&`yb4fDuP3hwsvtr+a?ixGK@Ufae8y$t^S0Mm4wu_Qcs3+}=n7JYv zf_5>ClPBuIo?@~jq=1lwRp{y7pOb8B^r%GS%+^Sc-Lj^WU)1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J&&Iba4#Pm^gRhL7~G6 z94_3gJ3joEzvH^taAqd|(+51iQyeSz{^Ob$U9@!3rO!f7&dzZ0Iof}C?w+l@8(eY) zn(lI)6=7}qb&c<4Nkh*KwT1Q1G#Yj%Z}qz+AN&5f%A?5dGuT(>@@;v>%_1RqvvjkW z7fZtFH49XA5`*000McNliru;{^f@H4g;4$O8ZX02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchC(Ew~M+NoWecMTI00000 LNkvXXu0mjfC{B@c diff --git a/graphics/items/icons/sachet.png b/graphics/items/icons/sachet.png index 32c566a91da29c1cc4e8dbb233428baef9659504..e1b2774086c6e69b4ec720b0a88a4fdd6d8dc192 100755 GIT binary patch delta 200 zcmey!G?{6F1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JyKnx;TbtOq?1J&DCJQ z6FqC&=YQ&ET8HHRUI;qo5h0iT_A$eXLgUpE5!u#?6DKi5KKN8}X=7#c#1uC3xhVm& zTZ`RN0-4(G1(pbu$*?wxtcbOJ(z}{Hto*{%u*%wVtBc-=FEqJq$aVLHv0aDa=cO^% sU!FAB?7634O{KinD*J=~p8tQwk`%*Km6Q;973drWPgg&ebxsLQ07~Uu0{{R3 delta 294 zcmbQt^pR&pI^m5JAsoh!k?5GW*G;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tbgr;B4q#hly;j(mp{1Y9Nk9~^JnTET35 zqt^Knx5Q0z(RB|*ZMGdXI)YkJp)78&qol`;+07I&5uK)l5 diff --git a/graphics/items/icons/safety_goggles.png b/graphics/items/icons/safety_goggles.png index 7a1efab67adffd72893d7ab8383ab500014ac898..2381790f2a3b530bdeff0ae13f2fe4bd261e1865 100644 GIT binary patch delta 213 zcmZo-UcfX#f|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfol3aT^vI+ChnbhQs}S( zkMqWyoJs%w|G&m;- z9odC%XRi|V67XN~XQA*#@c`L#lXmQH%$oF&#Uk&44ZHKM1iz(@hL>3;gqH_B=s3G$ zmx9{ly$YsIVa65J53^%_9`SaIn{VjmX1q3jrTy>q?N!Y4ZnE&iO2*Csx{blp)z4*} HQ$iB}_CRDg delta 311 zcmZ3$)WkeNBAJDmfq_9NQsFd^VlVOZb!C6d%+9aN-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|QPZ!6KiaB%pH*zr<^0du1-*LgYU>!%F z>hZVp%8IOZ>}ha%wI-pQ_2uRtQ;xlwyZN8@zkY`wNoVdm9?5#ucS4-W<+hg=ME>SIRqXGV$!0&7^d^=0%vWOU)1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J&&Iba4#Pn3y{$TC7EZ z$9d_OiGSBuTsly3VP;LoGc%FK*T1rEd<{3d`)2ygqhHok8Lysmv7t)fFq6YG&ll|u z*XE?VF*ePS>AT6(Q8ufH!E7Nv>#e>$j=wqi^?%Of7YL{n*u<5)EIxtN-gaNVtYQ1L zD}r-;;}+a`l~eCJE$H&Iy>HXhD`eiOncV-Ls3UuhecB9;KkJUmFarI-;OXk;vd$@?2>{T# Bc;Em4 delta 363 zcmV-x0hIpC0=5H?7-Iwj0000ISs=>*000McNliru;{^f|1}dzsojCvi02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCv z42E5vpqzF^bP~KkwENUW+*?D=pgKKoBF=eY!H+$su=V%FpT0y+44^qw@XYDG{_pFH z<$9MzFqZjqhh%I_epBtu*zonXsdhp;nSrw^JLlmz(&GyF#d2LigCfogg@T^vI+CeFR+D0W1F zgZV-m)5m}6asturw~y{QY4m?9m)!CDj!z@IPe|V6xcV*O<$AOIhZj#5T%)jw+2yRy z;*0a53uaADTg*T6fRDDK==b%T%JpXkJc@IgKjHIB2D4AuE?fNUuD;$hRpsKh7r{z} zx$n5$_D983#s6zKmKv?yn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyae#JY5_^D(2MoJMuLdh`7AuU9zj-^>Xn8 z^BSJbu44Scc0{+$Am^o%%{JZKtF47$pFiDx;v4wKH*(tS^5tIFJ6SU4TQ%{_UG-H( zYi++viHATHOJx?Xp>b>ZZSJV22iFv^%50Wp3h?OuxJ-znbzQN|x&V)-2lZ-A3RVRR z&wBFs#U7r>(*HFJ&fl_TD2{uWxXWGsf2ZN5%uhCKzs}!S|8V~&CLSSG*2VJN@j%Bi Nc)I$ztaD0e0s!p+cO(D+ diff --git a/graphics/items/icons/shiny_charm.png b/graphics/items/icons/shiny_charm.png index 3829154cd5a3e2702d4039e89e8e4b59d205cdd4..fd2c97ac8361d12210aef41fb4167bdd51143d96 100644 GIT binary patch delta 199 zcmaFDG>K_~1SbbG0|UeLm1j>)thTQgC<*cl{*MOEDsGwrRMY6`;uxYav3HW85UV1G zbF1hqkvspl$^V!-Y3@xCu}U_P*w>Q-lJ-4O65e`0qal2f5Zk{135Rf%eT$V?Bn0@m zXFQ(CV14HM4*3Uyo_~}gkLj#=vP1Z&+oBWSUKvI`xBRPj`M2@sIhFmFS3kUJ{eZ_I s)OE}AlCX(eruJFoKGXll9QTDeWd+OaiTvDKfv#cjboFyt=akR{0D6U8@&Et; delta 281 zcmbQl^n_`GL^2CA0|SFlq{3++#a`m+>&pIwiJL)2G(BtHW1x_DiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e{(o-U3d6?0P0>k1z-;9+}EZnbQ#YvWv(M~1>Hj`=J&@aBAK zLAdb2{zn&*n^g8HFS`ExQjN$D{vckR7co;B{CFy@%cceSHuh>NM66*m32uH_`YC+s ze7;>DUL?QzwevRH))?=^jc3+YuvI;~`1=0T+AcZm(oglNOMkW>-X|Wh`VRlbKgkms b%)YDbvkg%JLlmz(&GyF#d2LigCfoi6Dx;TbtOx!xrk*V2$ zgC$k5;s5^v@zrK4Y`+BLo#V)vl={=(^Qv&$s$0ICIU$<61Y7&ro$ERbGVi>x)pA-| zsHev_za`@1nMa!i8k973wsJ03*j{?~$V4v#3$3X&!WOPeH@eS#zPxdwmhV}m`BHud z_f&Gees|D5@|~6Z?E8X_Z!eVjw+UTcGJW>aM{Mi%+D<+({rc~ParHY`v}WFyxejz8 NgQu&X%Q~loCIIeTWxfCa delta 315 zcmZ3+)W$qPBAJDmfq_9NQsFd^VlVOZb!C6d%EW78No1X< zXkX8mEHo!Mhtb$l*VfZh z^Q^!liLGBgZ81q*aeB_B)2FBKB+e@|G7DFVdQ I&MBb@0CJLOc>n+a diff --git a/graphics/items/icons/shock_drive.png b/graphics/items/icons/shock_drive.png index 2ac62f6cee29bb4137e30a8f4e05f5332049b938..99f8e512c412fae4d2aa5e2df0b4aa29586074ca 100644 GIT binary patch delta 183 zcmcb{)WkGFf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfocjpT^vI+CZ3%TDAb_9 z;lg@t@BfL;7iOHYo1MA;i>>39t@B-6wngxM3+b~B*t_b;vWY>$>8-DB2K-qO`Tkr@ z>qFh13D*v0Y|)xtU~_1mgzAG;AA}NeEZ#AB{pdDjIoX+=;901Ac(c~gXTiq=^zZLD ce*Y=M)iS1e?Ems718ryUboFyt=akR{0Pfvc=>Px# delta 267 zcmZo-y2dm?BAJDmfq_9NQsFd^VlVOZb!C6dBqPpi6?P!&AW%rW#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mN2q-XQlQD6bfbEn7SgY@c->#-TqQ_L)mwnsryPk9pA|qd{p$yxqF#$K${sn MUHx3vIVCg!0P96yWB>pF diff --git a/graphics/items/icons/shuca_berry.png b/graphics/items/icons/shuca_berry.png index cc99671876d928848bea243aef7f464857717cd4..f26a80f7ac0131e67f9c41972c0a8567c9a7101f 100755 GIT binary patch delta 200 zcmey!G?{6F1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JyKnx;TbtOk6rKkngYp zk8`$H!KL5w6^^T&7KF?)ssAO&ex~q`HbeFPInSppm=-kuNO9J6uYj&Cx6&T8E6!6^ zl4J;3TKdR3iebj9Qp-uHth?k@cnumnvo9Yo_ww}Ce=nUk(Z?kGt*3s&;dq9_+j)AN tgMB6To&Br$#(n*^t?!Gz*Z&pI^m5J9xD{P4_D^N(h#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8m+=6D^#MF>&;DOj4es ztMTX&)8wQOuHxn*30Bv+Ax5tnzQ)thTQgC<*clX84Z^4g_>N1J#`Jba4#Pm^gQ$r`TZw z4(ILzY&HLx!yl;BzTB{K&t>z^k3a5T^7Ux*Dyck=V=d0d6#`G3?f)eGLfb>_!8Jx! zoj!%Y9qrrJ$nhy%ZvXX7dvauj@WT8=>jjOg%_WY#xS}k1w28N->C=HsX&a}qk3mav z6`6Ot_4zn0zwp0tu2%6B`K!#6#Vi|}H%qgZJWH8u_+4SynIP{>f$MK3?J|nI)aHLC z;q&orDx4MtAGWVMYIR-8bV|Nwv@Ls SixvUB#o+1c=d#Wzp$PzhwT6!X delta 376 zcmV-;0f+wE0>T537-Iwj0000ISs=>*000McNliru;{^f@G$Fxu^o;-j02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchC@ z5C-t<8)W6YLpwKtO`X{gurnDj{i@fe(e|Q}v__HD&O&hW2Io`W82?m)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqQW=F8*`4xo^DiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafqo-U3d6?0NAoaJp$;9*U;abUh62cN)thTQgC<*clX84Z^4g_>N1J!Kuba4#PnAm%%o3B}c zhxNi&NAK1D{=Z+hHepWkNspchVry2bLxn_i@ByIU+N&irwLLFxB1 z(UXP0MNQB2O_N)cCB<)?JT*rAnvk`DMqc$+mYM^a+ru2+iWCSucISV5T36fY$;CSg rU!7Uz7nF&&>`&BK|M2_%f?o4a``C)hw?+m5ozLLu>gTe~DWM4f5X^Mh delta 352 zcmX@iw3>N>L^2CA0|SFlq{3++#a`m+>&pI^NrqQWI7MgbOrVf>iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyagHJY5_^D&{079AJ}RooM0IZRCI$u^xv45}#85avB!B)QDJ_Pu2^#kT14X1v1&?@!-M@J8o?Y=%p9Lb1 z4ZCH5Ak;XWlc_T4s)OI}Q!`J;ILvvvyL@}m`Y20nQ=StOBQ1-su8K5HZ&hpZ(U>1+ zchoienbC%uPp3XD4vh(GiaonS=ETk?k5n1Trl(Xsy|Y_QOMq|jk1spR^_O!v%+-l2 u)#W_KxGTzl^&BIUqqquRvw{&j3qwzw+1x`edZ&QiVeoYIb6Mw<&;$UYntap% diff --git a/graphics/items/icons/snowball.png b/graphics/items/icons/snowball.png index 3ba834ae342a54ae3e9d55fe99740372fdff4a79..516b1cbd86e9e96a34c08d4a5e5a6cd944a8fd21 100755 GIT binary patch delta 167 zcmX@h^oenT1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxvYx;TbtOg!5cDAb_9 z;c}F<>s|c=j;)d_{zs+%sW{IX{k!tTDdBP^37@@12RlTZZCF2TS=a3xoO(FphuGc8 z5tAh*9X;!PSY<)HR@k;;o9n+~tz8}m=~Zk22WQ% Jmvv4FO#qH?OmzSN delta 258 zcmeywc$R5`L^2CA0|SFlq{3++#a`m+>&pI^m5J9x@@0vSFi=Rm#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8me}W_Rf_RU68XZ zAvyW6f=2sA$rFYxMOPYfl8smFN?OpfIhwg8m}!cEVQW!W@5Gd4Qr6b9m-sbE%}q+0 z#AZCJI5R72mC6}b)thTQgC<*clX84Z^4g_>N1JxvXx;TbtOx!xjk?(*4 z2TN)ApZ}Ay`PVGkVq3b$P;s(^SLO1&48ComyH=X?Jio9??3oG2rKW}!*NerD;>v=p zJ1vBSs+Gj|tACgv5x-Mq+RMF$!n%uCsu+Gb=G1gO7AWDg6c&pI^NrqRBbEaR;W1x_DiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyahQo-U3d6?0NA9OP|K;9(88$xzD7$;0r7 z$%v8VT}8rw!7TwB57xi3o+5AM>zu}O#%IT@$;@k}eC%Y^u{zdw)$B!=+3{uth8Yej z4UQTN@7kRbjIJo;EHj;Xt>(iPx2`XC&-Uh)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqQh_GQfn1)z|4iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafqo-U3d6?0NAoaJp$;9*U;abUh62cN)thTQgC<*clX84Z^4g_>N1Jz`Cx;TbtOguZmo9}=E zhfC^@JO588NvxihJNeuvTjPece-*YA6*edzNbFEg7h5*hdd5fbEyXX^2-Wd)7GITl z=r%1Oke9jT=B`UB)0212wEQ?D=C_snp@R4oiyxo89AdLhzw(Vt*r$(&P5gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?iKAlq)w6QGcIiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaegRB@%N(oqKzyhWH$inS9|wg0iY=hg#zG3jwOC zqV64;X_)thTQgC<*clX84Z^4g_>N1J!Kuba4#Pn7DM}ZK1;o z94^h=F0WPp|KHArhmBB_V} zV8bhsFCBLcZdab&c|jzPML=TR){9TlRD?v2nFVdQ&MBb@0IzX&x&QzG delta 344 zcmX@iw3vB&pI^m5Gmo;m<1NQlOA{iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyag*JY5_^D&{079N?E=Wo3PkqbMBg$|zxd zX73&s!9x=-uoTUid?2XD*TJu|P-=$q)rBTkk6Pw_cQini-NW7iHwUE zo+Mn}`~BT}#^OUhUg_`la$h^7Fp;Ok``g|73D%Onr%umZtGG%+!kjtvjGugqMO516 o-Jjnz8@xa9rfqYeZ7(q3VwN~n%>Ap-3-ktqr>mdKI;Vst0QBmHT>t<8 diff --git a/graphics/items/icons/sticky_barb.png b/graphics/items/icons/sticky_barb.png index 735d3a051f3575e680187ad33835449a4ce6944c..8147e8de74d12bde693981b3535185ebc5af3ed7 100644 GIT binary patch delta 172 zcmX@Z^qp~n1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$H?x;TbtOx!!cn~y<} z$BFgT-}N?Y=liVLHAk_H_57s_&Hr56=dd&RG)#43kXUBI#+g#_Zj#F_MwW?ZPH#B2 zBqDR+^a^X~6`v~RGW=PkoMWByg5lW7N^Nd$efQ delta 257 zcmey)c!p_$L^2CA0|SFlq{3++#a`m+>&pI^NrqQhVx}0&dZ3VaiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyag}o-U3d6?5kHUF1EWz~NHJ93Z~pC6kl5 zLSm!Y%YUo4EED_tt@bXrWf8;bmPnrweDbUd_yx-?xkG z<9{oD>e%w~H>nmdKI;Vst0CB%q A4FCWD diff --git a/graphics/items/icons/stone_plate.png b/graphics/items/icons/stone_plate.png index 8af90a8a655d0a479dd16e4e9f414bf371dd5834..4aa9ba284898638a9231576d2bd67d1a85e2272f 100644 GIT binary patch delta 169 zcmaFN^o4PP1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqQhWWoZE7NC%LiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafqo-U3d6?0NAoaJp$;9*U;abUh62cN)thTQgC<*clX84Z^4g_>N1Jy)%x;TbtOgwwRk*~pk z!zD09&pI^m5JAc^UL9wa-fiSiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyahco-U3d6?2jk7MLZ7h$I9AH5IkQ&Y98E zD|#SDO;}t!H91*X;`mL8&g7m4Gpv*ggPI)YsB~mzt#jBWdBlXRbV7*Ll*1uuNjYIG v#Z6T+BX=_O99|N~SIpbdeqbP0l+XkKkC;-G diff --git a/graphics/items/icons/tanga_berry.png b/graphics/items/icons/tanga_berry.png index 37f8e2465647f01a9a0419795c50ebef6ef45551..1c552fb6d6f578cfe702c276222c14cb925667c0 100755 GIT binary patch delta 235 zcmZ3$yp3ss1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jx|`ba4#Pn7DM}X}-e> zJS-oXeg6EHzhf#;u*l1{L_aVsf~ipRe|yKh_l_MiW*Uiwu4Ojfo~!1jqme7PC+zLs z)r@M4>u#-o-Q>yC`oOv5s9*Gos1Ct72mBdpIM*1~i!3{M_(=G-<+^^=$6F>@EITEb zw9QJXY3{kbbEUnM%eVx3Yo$zr7YbN!_MKBX&pI^m5JAcDOs@fKTt@##5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mJLlmz(&GyF#d2LigCfoh68T^vI+ChnbJDRjVq zgE_aQ=E;A4zO*2gV|v0 zK(|D}>7|Sn<6bG5>}ERR{%gldp!E!%u6{1-oD!M<7`au5 delta 272 zcmZo>y3I5}BAJDmfq_9NQsFd^VlVOZb!C6dB*UxBFLksr11Kb3;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+Tbqr;B4q#hl~>1z`g&F0KPNoxHrd4CYPP zR2(r$Da2{-U5lJ30hg}8#fL3*cuxr$<(r%FnzpSFX4=%#>$_mihRlQK&Kb-+G4-I@ zv4tK+%Vu)esx8~BAmf(0pzgBD3R^8T2g?<)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqRMTXuzOAy7!X#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mzopr0Eob0j{pDw diff --git a/graphics/items/icons/wacan_berry.png b/graphics/items/icons/wacan_berry.png index af113c9b58ae3c126b0d02334e893ebd40b4659b..61e94c642749a4138325b56438b3f1de0fd55b42 100755 GIT binary patch delta 208 zcmZo-p3O8tf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfoi%uT^vI+CN7;A$k(92 z_P?(pfWH_P^oxj1P0Wx$QpFhj-hr#d|ijy09GE*mHnGnomyIpxBsatpdx* zxuOR|=Skk3ETS+mMBq~BWC=#w&OqTKwL9x3_-NPN$Q3xHnPl_pciaJ)4Av8;-QN0n z1)SKiD84RN_HU4l+xdTf*0)-(9edx>|Ni%K=Gr=Dl_!kJeL!b1c)I$ztaD0e0suT7 BUT6RS delta 311 zcmbQu)WkeNBAJDmfq_9NQsFd^VlVOZb!C6d%EW7I#MP-h1t=t5;u=vBoS#-wo>-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|QPZ!6KiaD(lZ26iEcv>e*A6a5w9kHwF zDC2}l%nB~X;fqT8t{kiOzxQCt7U_BSmOoFwDVDU|;qMlcv-Sxamjp4rVrpL~?)2O) z^SN9C^XN7u0Ngk@XxGyc~wssj|=WCJ>tob+k5v7)A8u!4c&DSj`8<+?t~g% z=zToZP}6y$>|B#y3~w@Aax|t)og5~x&wQQxp?~_@eleU2k}kD;VOb4yC4;A{pUXO@ GgeCx1rgeS* diff --git a/graphics/items/icons/water_gem.png b/graphics/items/icons/water_gem.png index 79e0ca07f310c44b903e9bb08ac672581602f733..555d92ccca9b26a03b5981747b136c2fc568091d 100644 GIT binary patch delta 177 zcmaFJ^oMbR1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jz`Ex;TbtOguZmo9}=E zhfAu&i@*6XF3DGS8>DW8|U+qb9g#~J(6yt5uN V>DI^n$OhWW;OXk;vd$@?2>?cgRgC}u delta 278 zcmeyv_>gIWL^2CA0|SFlq{3++#a`m+>&pI^nN?g!r{4a-YM_vKiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaegRB@%N(oqKzyhWH$inS9|wg0iY=hg#zG3jwOC zqV64;X_mdKI;Vst04I-DX#fBK diff --git a/graphics/items/icons/water_memory.png b/graphics/items/icons/water_memory.png index d7096f57cc1b3a5e23ca67229f934183d5a0bbc5..054c05d116189f0484d7a34c52fd61361052e9db 100755 GIT binary patch delta 245 zcmZ3;e1K_!1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$heba4#Pn7DM}X}-e> zJS>|Hj|Is6{J;OL6O(JEUTCe8@uBRSx4-!>yv}^@sO494)(T;9r;MzpzwM4@3A8JS z&tzJEqc^$D!%H&QBze`cBTGYk{E`Jv@ZM*!jGtP{qV# z@ArIU+5D9copHJCldE8MN?!3*Q{{bkDbBT`zrUn531ONa4 delta 342 zcmV-c0jd7L0-*zt7-Iwj0000ISs=>*000McNliru;{^f^2Q@8$`OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCpQo4()@$Q3Q&dN!p;laD_ zJ_M;+wQBlAnca6`oJs-4xA(vt$(b_^85r-ryT1`+u##FJXoKwCyZ=B2h^3W>2;RMW z|24>H@p9AB@V)o$?*Vg)L)z2!-UVx65Gw_`#rp1Vu$_z{9Y7956$9f|piJ=TgAhl{ oY;|$neGujyncZ+Us;6-P0M*w-nHc$%DF6Tf07*qoM6N<$f;4f7Qvd(} diff --git a/graphics/items/icons/wave_incense.png b/graphics/items/icons/wave_incense.png index aec3fd05efd0cb8fd4a25429af26f80b1100e4f2..5fc560eb86b7eb4d93217076c0aa10a90958206f 100755 GIT binary patch delta 229 zcmbQhyn$(g1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J%s;ba4#Pn7DOfAm3pH z9_RGqoO}OwrfbONUiJKab8<(>ZbQbn_4^rYPPuT@Oc0)QdM)?WsNCrF;_a+k7z@f? zuzbJqg}>veg3#5iakhtUHB8(oEqKshVzH;;#HbG!E?@RginR$0_hXj~ysGwe%bm>& zdLEXpaeHMj#Vh*vr{gA7n>Lz+rN8658^NwP-D}>vBkqq`rvE-Fz&5?@^W)meWAYWu Yh8@h8tkoN)0Nu*q>FVdQ&MBb@0Ap}#s{jB1 delta 325 zcmdnMG=X`7L^2CA0|SFlq{3++#a`m+>&pI^m5J9_;io~+9iWhSiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyah0JzX3_D&|b>x8*xzz|(qr9>eARqF#yZ z8V2e`d;+Sk?uEIm5pB*tu+#HWkQ&>*gH`_Lt2Rx3!hh*(c>2y8Yj^3i{7VtFjk}`n z7%%L5RYrEmdKI;Vst0HZT}LI3~& diff --git a/graphics/items/icons/weakness_policy.png b/graphics/items/icons/weakness_policy.png index d8f0b45531de71a01ce8ead3c4921103ed38dbda..76d26e7e493c3990d69acdca886529b5c9782739 100755 GIT binary patch delta 153 zcmdnP^n`JO1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jwk3x;TbtOx!!sk?Vi~ z2a9m|*Z=-`Oi8?E7o0C2oZQTno&Em;_r2*(<%|ImtaqA>mRvVb+@beKdtu2rzn1!0 v28OGhN>}M@xaV+AYvQI`OLqS~9v+jT#?0lYp=$v&p25@AkJV+JQ$iB}r=mm( delta 241 zcmaFDxQA(iL^2CA0|SFlq{3++#a`m+>&pI^m5J9_+_CrjWuTCFiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyag>o-U3d6?2jk6xa>8oEjM>C@*1Q?NaF5 zIJuikK(g6V&Fk1Hw_{%C68eN)rgDk(t>PA#ptHCsD=J88&SI%0EKemIzi2q$dB(&h juw8Mt)KPmEMurPtC1)xZRg?pbXYh3Ob6Lmil+XkK>8MJB diff --git a/graphics/items/icons/whipped_dream.png b/graphics/items/icons/whipped_dream.png index 9cf9c959a708a05977703674671c5d0f84d567f8..0d3b4249844d480db9239bb8c1ed446ff9157d0d 100755 GIT binary patch delta 217 zcmeBRUcxj%f|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfodjux;TbtOq@C)P^ejf z$K`Iy*;9Y@@33rj?KaM}bGSd7w=wnS!Upy{GjoG_fnq+1+#;?!tM)l9Seq?*&&O{| z_w58pi`PPq7x>@x9CVQ0JH^^O@j;em)y9{(0$GaFl$7nyr@5*w$x!Lu=J=$4%i&v( zFKaKf3UO_}tQ~LU8*|L}*6*)>s}8HM7Vq54d4V^LzhCn2;<)P%Su|L*l{10vWAJqK Kb6Mw<&;$S-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X|=PZ!6KiaE&%2N-&oJY*DIQ~DHz+$B6` zF6dI4b39|o5|(iFMN&(aFijR>Dw?uD#!X#Sp`fMU$ehNURP&B072O*rZSu69aX7;6 z=#3jUQmPaqLQ{8jZ|uCi#fZ^hxy|LH#qv_hElzBG7JVym!-{O?z^bj=Xp| z^X1damlfQ)eZ6PLnem=VJmWKa+O(M*pBp36W+@!vZ)%$Hu!)HwpIu3#@QIZx(5(!f Lu6{1-oD!M<_nmQ= diff --git a/graphics/items/icons/white_apricorn.png b/graphics/items/icons/white_apricorn.png index c2ea5617423746fbfb79a815b4c5e97dea5af256..976779af701941c3796abf24d07df566b74c503c 100755 GIT binary patch delta 190 zcmaFQ)X6kKf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfodu|T^vI+Ca%30$k(92 z!yMoyIrVpZgxU+WPnp8?zb?5bES;~MG(YuavDlNCkk{Q+{#==hq+Gld9X~bo+XTca ze6aI*$EapAnNRhLonT4hcRtYr3#~W2Ss?l2$p3O5HQ9$U$y!Crk1lqvxVs_$R@LX` iTfdYt{|Eek!cy~zWnb!cy$wJ|FnGH9xvXyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyaf?o-U3d6?2jk6vPa;47j+s94wu>+_V;U z3dk)E+F3C%J42!6aZp~|J1Hryi9&_??1e%HWt=~Mnsgzc!)n2%Pe}^uJ`86H_03s} z4$PA9jp=cII49+C7>l~DuIRy;)20b>88F^%uZn&X5lZ{PS@m*uVf_KwgJQ$WX j?CCV%H&m$XlVD)*{;LtU@2JLlmz(&GyF#d2LigCfoh69T^vI+CN7=m$ag@2 zgQa^>(*OStxP-c0{q8>YG0S_h>mQ541I^|m#X3S3A5Puu`Q+wuR_ZBp@Iqf5Ij(1Z zFSwURO}w@&Xt!vRiu8W>4d*1zWg9D%bUqDYD2QLm`hV@_2NkL@4>Xr6Gxon%|0w%& d)?wSnHe&Nw?Bbm7yn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyagdo-U3d6?2jk4)9B`POxxlYicsETf8Yd zBSXRGkcx?}ZYYDAVA#b#F^qIBEHnRjN&v4h*F|8@caXbkObN*w3)_fMrr diff --git a/graphics/items/icons/wise_glasses.png b/graphics/items/icons/wise_glasses.png index a3982f18162821a55af23532574fcbdf4086c633..5500baa320f30db93b7bee3ec28f6bd19e1ac5f3 100644 GIT binary patch delta 173 zcmX@h^n-DN1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J$H^x;TbtOguZmo9}=E zhl^}L)qm;f_uX1kC+{-)tma?PV=p6MTFCm~CF_Kz!V9KEOq{uHRr5|WrX-dL#~q}U z{S>Og7iwwVW}H@G6gqQ~jKH^DOu_Gxf0XI0TJ!8!7DHoW+GWXS?E9?seeW{5th;M< Q6=)}er>mdKI;Vst0A#^UJpcdz delta 258 zcmeytc$R5`L^2CA0|SFlq{3++#a`m+>&pI^NrqRMEm_j?3{XhC#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mDkl-4t>i%!DUQPFsqzpN0y4z!TL)78&qol`;+01U-X A4FCWD diff --git a/graphics/items/icons/x_special_defense.png b/graphics/items/icons/x_special_defense.png index 54a3e00fdfc4a7552ac0baeed26766786478932d..18dd6d5cc8ae220c01f04c905c25c17af36c8d02 100755 GIT binary patch delta 233 zcmbQmyoG6k1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1Jx|{ba4#Pn7DMpX`yBV z9_HkkNBaN&e{gE4iOS)n!FO+nN)=@PcV)0C)cCw$L3@_`F6pAp_jc#C-I;smjh@P( z;BM=qCXc3R8djYzIk}$Wo34A(52Z(MrW=YITiP+zXq+FVdQ&MBb@07r3cZU6uP delta 335 zcmdnOG>dtHL^2CA0|SFlq{3++#a`m+>&pI^m5JBLOyvKyGe9Bn64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR>atbvx(BR_o3u>us3-+8G cu)+WsTwMA#0>>3Xfv#upboFyt=akR{0OHYatpET3 diff --git a/graphics/items/icons/yache_berry.png b/graphics/items/icons/yache_berry.png index 08bb40fcfbdf1599583ddc61db2e86a91e2ddcc3..1d53ed6338493c494e6f77d6b67fb95294275149 100755 GIT binary patch delta 223 zcmeBXUd1#)f|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfof)Yx;TbtOk6s#m+OcE zPjmQI`+fhp<1ZZw$!l)r<}tiKORPHfzvq*q`LS}62N-?}a=7mAxAk>7>vKH8H``pW zzo0yL0pH2D)n_;tU3jtSx1D1^yn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyagLJY5_^D(19aIL&*=fQRitS~Hu=LoT0y zt=s`>D?*;1Q?!q4u!>#qmF+_ALeG{eheO-_>rRwS`^!0X{RYjiTwg8!v##ClTiSVv zEjD<5U*e?sH_EQBirMhp*nWlfbfcq}|7v^lldb`d)IBI?Tgh#w*R_p49gTe~DWM4fgCuyw diff --git a/graphics/items/icons/yellow_apricorn.png b/graphics/items/icons/yellow_apricorn.png index 4dd12c5eb664d66cb2d48b1261561bb0cc5ae3f5..293b4054f216ddc444c2933a50c98efc2096fd31 100755 GIT binary patch delta 196 zcmeys)Xy|Qf|G-pfq~)r%Cn~?R@>JLlmz(&GyF#d2LigCfokeJT^vI+Ca#@$k?)8C z2g^~`jbH!&-!AlyYpY$EaD17O+lDFq&MC(?ec39Ml{)d8!{%_+Q02YqPG?pHgifoI z(JyKiV_|v!R!cC7wc~l1+Jh_YPBU08vS%>(-DEt?$HTnvNVP%i&xOWkAD*&T?w@xs p`S8P@($9UzekrH^54`_`>D&vJKOe0WE9Z*QT#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8m_b7?W~xX?V{ZBI4Cdf-7QOICDli9e2-L`EZd$vRb42!wlN^}>CuG?7bY?#^i}WF zoFL5gY{m|W_CuB@k9iBu*|H^sB|SPSOydlLIon1P0e!Bd{t_vPoR%HzhZ=W9ODQr= kVftit$mU4H6U!u^V~e!n7N5!A19TIEr>mdKI;Vst0Q~u4DF6Tf diff --git a/graphics/items/icons/yellow_nectar.png b/graphics/items/icons/yellow_nectar.png index fff8ae6977c5533c2c9cce09d1d608990bf6a6f6..c097f4092645398c6ecb3763af1efe9d7b286c61 100755 GIT binary patch delta 211 zcmey(G>>V51SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1J(3;x;TbtOx!#1B;R2L z9@c}>0@MEgzhk#pCZcMMRgj*sg0gyxy->WKzsgTe~DWM4f DGZkAN delta 304 zcmbQo^qXmdL^2CA0|SFlq{3++#a`m+>&pI^m5J9#=Ddr%6i`UK#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8m1Nw?LY%E;CIc0K+lvEbWa|z3tt7bS_BzdYmU6+;B zDd4xu&3$u}REu)ty^9y$Of?fcGtuty#fz6ror;x@H0)Nd@+;ZbJZszcb2qI&$2rTY x*FJx@w^BNB-L$&zdCF(5^7J${6_^P!FzEbLJtmmdxCZDv22WQ%mvv4FO#nRWY#IOn diff --git a/graphics/items/icons/zap_plate.png b/graphics/items/icons/zap_plate.png index 80fed9a1e587e1b1dd7e13c78c74229019756f4c..3e355ca99592f43a5ae1f681ca22b359ab3ee3ad 100644 GIT binary patch delta 169 zcmaFN^o4PP1SbbG0|UeLm1j>)thTQgC<*clX84Z^4g_>N1JxvZx;TbtOx!xjk?(*4 z2g_8^KmYr)`PVGkVq3b$P;s(^SLO1&0=*3Fg5ZTl^O)Dh%($$;zR delta 280 zcmeyu_?T&eL^2CA0|SFlq{3++#a`m+>&pI^NrqRMDW&A^RiKb~iEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}8B|(0{3=Yq3qyafqo-U3d6?0NAoaJp$;9*U;abUh62cNJLlmz(&GyF#d2LigCfoj@4T^vI+CT^W*$kd|1 z!_t|f^y@$SZWfnCBG>PTi5NRLdA#JGIFJ9{j598eZ&ZpjGfz+r-@3Bv$-GlL9pw&6 zv)wP0{!}DlGSU2rr_555-L1 z;O^rR;ODMTmRh7>tY=c#y5u2H2}enRpF2>-7|3SuYS5GiQY`6?zK#qG8~eHcB(hFa zw6AAO@^*Lmzm)ycQJ^eiNswPKgTu2MX+X{lPZ!6KiaE&%3UUTqKycuOlh>(ZZ2^4~ zCQUNzIlO{pNHuaM-Z4>DaNRpwkOv*c=_% zE{3jDG$=PVSm#yhR^SqoP{*({CX(SGYe1kx#A?2I7xo6R(H-vVak4Z0(*e-b#dbEMiYO9 zREUlnOGy}6h%5nhNSSaxrP~6AOGzjnxoDN^tB4wP%ghNrsOukx06}1I#Z_R)apm$X z;+8`(3FkGfCRrR41^I*pDfP3E6{rSOwY7k`n}81aKw74MRZI zey{PAtb^ZpqVHV~gazkItJ6COvLs&bAk-6R$q;N_ZMTGqTG-OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00G@eL_t(|ob8fJYU4ltZanoEe< z82Ua+Al^$LFc^a@kk2A08e&0dJp__7uyMgIV=~MS#@1ppB{_d3X^+Rv- zkCS4)R-SM2cmK+)xG7nfGH){zPq#v*Sk(fbWd(sc4^PG%f0rgFC3JNiOeu^fE}&YF zMB=4+%KXwC?S)pXS;v;FR6_3&a-pz5AP{t!Umnx!p`%xmBFEV;e(iL&eCU00Zu`ua z);y!QSV5pETJDLXuDfGQT+<4nu?jn1)T)OELUCmkm5{q|p!JmrR?fR4Y&}uPY}RUl zhk7on8XsCne@(KLK&5DPcHx86QaNVP=L+8zN&k&+W>pC75 zie^GstUGwb|KD$1BVsXKoQLK)bD@;3AM68LUx@-DpATw-*)&aWJT&d32OqH{^H7wS zur*;pp(wuG#vm?u?48?wJcKOpkmzTMHuA(|-9pzwe?q3kr5z{Zams8vLN+*ID9ysL zEsLhwA1veY@R@x8E(mCcrKb4u$+PBd{mMldF5To8C-EG|Nk_YYST^IGfB zHFq^2vNjT10;- zzEU6Y`wlEH7{T1X#50$m(M^?l&OMM_b9V7y06k`+-!lnt>W2nA1d~ZS0v>z@^HDKT z%`v_+5bBr_pVG|03IGHCPN8-%kOs(L5kU?M7|fTrV1ceD(O?oR2Oai}b{r2M5w*yO zv0T+R@KjVV06R2jm3+*r`tFG-!VyFp0I@I$vur zaH1PQIc#1p4Fk;QW!`D|_{}lh@>kX=~AtfOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00F^CL_t(|oVAoYa)U4shSg~%_d}e(QmbaQ zi3@7m7f8lcs@UOTbezHa5;0)oDr){+vEM!H2G}UJ@{CGSTaliJ>-j<`F0Oj>S@Ic0W;qP^@#!~r$A{XN{4iaoS}qn zKn~i44v~FLe@uOACFxa%qKWAs2pEe5jNL$Y7xLT1fL?)UKp=n)A|eV96Ltg58TZ#u z1^R;~rip=jq=^dy+L9}2L}2j!)CWm$?0@(r48?#%6Vp(o8>BJ=68LdFUc^5i&J0ju zIW3?{MKW_ItT>|R^-zJ6Tml_VD;o-~fnTf8f1TyFW|9KFYD6w1)2r@#^ZRcDKsT~a z`XJ=Ts(%0ql#Dch3`-g8MR}qQ&G5;C!kN;E=Pi|S?-gQ9TgqQ?zE}EEHudj^ iSruOBYWWxX&+7)>RvE$&yoz`L0000&+!1 zFE@7fEk7~Ki;bQAjRZszRq12d*xNVkqVB|^A0uPod1GS_mM7Y(p3R?&VBXl-Q?q|H zLv0|ymlE*2WNS~BlFUW)jS+xinBX81m^SvcDJfZqSQ^{UL1&{OgVCWD@nl!Nu&;bP zZE$Tgq1GxwzQzKyGZ-OHjB>pmZl9YnNhYg?jg--TBLR^^Brw9V1Hs}inPNf!)WcmIwtobYRVoT_dnhn}$CN6T)bY4`pooTSTNlwULm z7!kMOp9G)bAJ>vkBSiiC1Aessg14)WhpS}eE0000< KMNUMnLSTaQOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00G%aL_t(|ob8i8YAZ1i#?=`_nn#Y1Be?TD zMh~`drwPmfY)Ij=YzUgbKzs(*!MQ-N%V2P!GrVuKHayl&AYF>6@VDQ3{`^MLhVZ+7 z>au>&XxIIC#U#T+;r^PxOrXwdSzoC4;$wdSR4A3yN0LlJe{$iyfHNLt z>>Hb$;Tr(^>SGg@v2O{DF+Ti1ixf07M>Vg{Yg%->@MG;+oWVlYl>U99S{k9Bch>w_SWA8)Z4rh;5)C-01y zp)|(zL05F>!?Qhq%oRhcKHfsr40PC~k|aw@P~Rs6@~R&EpwIzB7vraCaWB&uJWhcd zo3Q}ZJn_CRdNk(MkvsSJqj}8I`GNW7NKhR#TBfDXex~$y;hO=U1`qYSfCd7#=nb4P zD)}7=F`us5$m0OASBR(c2(Q?`4c@=nNk`s$whHJeNW6KU-pzKOYrEFNw}&f$-<$o@ z-OKKC{r^)NzNfc$+iy?0xuO?qyWj6NU+9&L?dD7U-uegd0&ZT|;#j=^0000r@S3KxJED>RmnnUnDP}d96b_Fq{SZ7ph4g~*Ex+}O{A+>g;Uz>k{ zf;EGrr_mj$;4PzpTYqULC|Q=%$$o>J??r$gU9Th#^{D z>bE5d>IzcOv}|~#uOi6LBCKH?Zq1Vp+FYVMwA(0L4Q6_*9;*muhEeasgRT$yDgya# z7()WgQM>Cpfpr92PaBRAF7#CdG=2#Wd9p;;rn^Wx#XO=A3ZnYluN^N zmODfJa-VX3=H&|R5Abn002ovPDHLkV1g>( B+;ac` delta 533 zcmV+w0_y#g1l|OY7-Iwj0000V?qFvC000McNliru;{yZ%1vtQQ2OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DwYL_t(|oXt})Zo@DP)E0#Qa{}Z81u|tZ zf_5)J>jSkl1X_ZK9Q?2P6_rTEb!<7!ST2VP@5~En8?!9-0>Fh{so;AM>@WUBM^@gA zFHP|3195In!p+%0d1ilMtH$6GulFwTP4%w4FrjUH@)0K7e_oHmVW)giq3;96NAWOV zT2x?e6L(BFE-o9l>49k75H|~!`qbaria7DlgB$gdG4_Is4MdmxEt2%X?zrAZem&l* zlRg$&%|?jP(5Wz>l^>yFuHPitZ6}6cA2YJvfn29|;QA03Yv`-uvkXA&BqKICBgpcA zhrGnihj4%Uf6(@rxe@)AAqy4fe3Dsw5xMm$6#V6iF{3)kk^V`fphCqtA4h^G9qEXy z3I!K@9wD773$2}VDvgY%a(AQ|M_(8@6^dZOxflT&R$;^Z$h|2?2%a;V5?@5OVe^_f6-;M0d7`W^F6Ex!oCz=t!$!oZV%Yr;{4VUHrz<*Xh XYt}d-?>x4w00000NkvXXu0mjfj78;t diff --git a/graphics/object_events/pics/berry_trees/kebia.png b/graphics/object_events/pics/berry_trees/kebia.png index 03efc73c1f5c69caac24335cac1abb1958e730fe..413ef9b4b43dc1db32a518b5b872d86358eb7469 100644 GIT binary patch delta 448 zcmV;x0YCoO1c?NY7zqdi0002m9*t&^dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004aNkl6A^{i+8kwrxM z{W*UrkAS3~UGdxewE=<&EQO(%8drR~sA%J?8UVC5O5_3G^CQChib@hQ1E(Om123nn`c41Eblu#27%RD0@=30al= zS=9zOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DeSL_t(|ob8gaj)O1^hBI9x-p>Tx9tSb8 z#0l($lqWcK>QavODKAbqskGHe47Z#vi}Q)t|8E;1{?A`I(#iHGetJ)(HR(6WLo$>ip81%e7SThV|xa)G%CmzCMH z1ck)btVtDU2!oDRB*I{HRFm^AOaQiq#?w5I) z*c&3IUI@@&e=FQbH4UvO!Z_$~;0kj$M=M2`mT*bq$_kvB=8j?Ho|aD>c)r)8OB@rf z$2l#;>Z9k<-wmT*6yUfC_31p2NYkcJHwqDdWO0#|V$U>@iSLAhY}c7iQ?-lP#8MO;F6L!>+pcx3YrVV7 zUR%!e)A&U8%5tWk#)rENu+;#Q>MMPF($F;c29wqV|6t~oed+D4i>^BK=M7DR2{V5; z)yBkPVUR}-UGH~&)RD0BuLPsT&Iss>Yrpps-1oaqsFh(^8v zBXNIEYD`8u^NxJcLFn%PpnHah-z)GQy~>f%g1sWfenxNv5H#TtTHA?s2jAyKg|F)> zh=UC2&8b(9RY7ma5lJ{&Zi)kdwFSQL4ijN>L?5d>l$^bq)J9;>kYrsy8_Ev5i~8n2Gcm z9XZdW;uW{H@V?$#J474}MDzk7WZbY!t^4@0rHawee2R^zdFl#G(6$ zf_Ze1cXpN(Y>4}g9@kRxn-TF`Y5L=t3U4d-g3k1f^HmIw0|(OQ92UuY@Ra#W?k2bW o!Q3Clhn%(rkIY~4wf=Se0P5^1ZOV1ZP1_ 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 KMNUMnLSTZ!<=mG5 diff --git a/graphics/object_events/pics/berry_trees/shuca.png b/graphics/object_events/pics/berry_trees/shuca.png index 4e95bb4f6acfee44d6fb020108d23815aede5d6f..dec160ae674056aefcdf22b5c9d5a346d65d86f6 100644 GIT binary patch delta 479 zcmV<50U-YV1gHd%7zqdi0002m9*t&^dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004(NklD=M3JeUv~ef|e{{e`E)>Ll|2Fi9>6V9TX=FPNQs0(g?aw zo6UGAkdYw9wnd5KGdsxQ)>s0)N$NnhDQ`y5FOAO{`)-7hVhqCg%noKkN+=_eFL@|( zM~7xNN4U<^QUQM!75%OW>+4mYvvde=7%J3#?>7-xD{{TcRIzr4J6$~^>?up(5_rN~ zF{Pv>7e=fJJ9@_AsZ#;Rg!}%O$4KfjBF9WiLpNC8YIw(7aM~re_=4Ts_Xqx>{Q-7m VH+u8^tZ@JU002ovPDHLkV1naL;!*$r delta 565 zcmV-50?PfU1pWk&7-Iwj0000V?qFvC000McNliru;{yW~FgcUI$OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00E*&L_t(|ob6LRPs1<}^^nPPCkB2?kh-vR zgN<&C`3dZ{X9mXuGMjx;@^4zCN*<8tK!*MX?%9Qwrp?U2Mat{beZ0%vRfvE4nuX72y`Qkh?pf=8QfWY31KA2zzQC)$* z*5U?y#>3eMe~O^8WWR)CJIL)2UBC2;0lfdHb`%}$YD_arVv~U-x>Pz##5I=2S4#m{l!|FWm00000NkvXXu0mjf DOo8|4 diff --git a/graphics/object_events/pics/berry_trees/tanga.png b/graphics/object_events/pics/berry_trees/tanga.png index 28e86f6f4d98a5248ce093f7745594e8ee66deb6..0bba806bc4667b0b24b790f14ce81be9e76906ae 100644 GIT binary patch delta 526 zcmV+p0`dL11=j?S7zqdi0002m9*t&^dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005TNkl#(ChZ@VHaK5$j?Zb?woiQG6E6lc zKTWLorG6#iCy5pRLV;S@PbD8yV$CnqS(aB~`BO1s8WRiNRUTyX^rY)41;)gR56^$* z3YowL3lX3(c*%!KT4p9%qHn-qsA2)LXf?beLX+-h$+6#ZOLh_+#JMN(lI6Z_Xgb!d*1|$l(nt*+ec3hB z3*jDbo13lwq9Ca?Z2cOfnmlF@yz~WLkLY&>Q;&Ou9)%an^0@(|IZHzTM$_{ujKA)_2@e|84wIi8d{N7yn~?18?Fcg4>v! Q_W%F@07*qoM6N<$f)ZB%;{X5v delta 625 zcmV-%0*?LH1i1x}7-Iwj0000V?qFvC000McNliru;{yW~IS3P@a-jeK02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00G@eL_t(|ob8i6P9s4Og*!lM32_R@NfwC% z?52d>lWo>jlA{i`yCi~%;Rtq)&CV$t5PCC0J0Y<|FlX3THMWGt28oP-4*cd>_48H# zIQPB2>XJODm*alCeB|MyP(J1l6GEf4B$tr2_}Cu+l@LqJe?D*u9QeR%$$gqweF`yY z0403#*c%(~;SGRvWp6?}_Lg9bUc54TLcIi5QEf(EXTUJZ=t`^ub1b2W>??i&e^L;g4Wrp+z{kNu^)8?RgUxFL zWjv`t?}+nhchyE72avRa-<^khx)xdD|0j_@rX#OCtpa*763?E0TwJZ+SG(53+rt&W z@7d<(#m)MCef!jg_w?`i*JicT6>+ zZ}r=-w+y0`I)X`FIuQs}<=+rg(^~@KkRUb!zabE_KOJA`g$qR5S_gpe*ac#3dRl)< zIp;+wW+L@^HT=(|>}v$fEIBJ*5Y(FK_qww+#Nrv7-xWjVNg;ZppiOfqx-#y{Ph^?*wNONXiIgb#IrL6S?Md_e!jwA?&D;Qh> zFk9JO^hSW(2A8T)48Z~bA0Hcok*t4YfmB5BEJih2HTeZVALV-j_2pVMo0jc@t1rPq zx~PYaiv^Q<9%5ry0JKOKf>>H{Ndcstgn1k>HS`7$2Y@3T&=vr`g{p@f{o?>B(zk@x zwyoX(>^Lwz64^@;9O-3d6fE&tbDwd$4NH@$j}22%@ft5QU{^V0lrEyJt1qY_3*=y1d$M02Zo$!>@DV?+;_BfvN=F~YoNijHeEZOFwY;)o`tSl6?dbt z{@z0A>B;DgbI9%IGXk|s0|$NT;R3$vAHN{brsK_EIB?g;-wh?boetRVc?OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00K!#L_t(|ob8l7Z`wc@$MIlg?SZ+0Og&2s z-r!nCVzYdv9ovetDmHTGN0C?>RSHO5TLS6_2p%D2xiu24#Fy)HmNL{Ybg%lX|DXQP z>s_n$KPur6jB`MnVUQPR96CcJqIYKqf5`ffoJ+zPg!+s{f7=g1>1GQ@00Lnn;LsBS zz(rFIZw@xp)uK*a+>%0u8Ch;VRrQPY{asW5mp|9}Z4I#9+&@v&b-3Ja?yBRwSg#)n zV8EB_ycWp6@DwYg>MGAaXH_77;9&}iQ;6RzR286$G3YU-uxY}Yeb5keVw=duz(Y|5 zy!e$!i#8{me~X$~x?Y^58pawDPl#@{3n!CeLNuMxD3MY`)fyDngc2Rih~{DpWedkv zM&E*_*apW+D!?%Wk$ztRe5FT)J1-A{K7khLw-wy{N)b3#fOa2&XoJ83ECrqi|zygS=EtvKZb}%$YiZ-d$kqdo>bG*q{l)B^|}GLEcT2p4S+K* zE(L*xZ!gB_Lt&tJP!G7wx4^YOEDz}!*!%XMWISj9NY5^b`6IKd{cat$>);9uH>Ahv zep{EZUC%u7kuj{kO1Wp&!R*To!(R P00000NkvXXu0mjf)0R0h diff --git a/graphics/pokemon/alcremie/lemon_cream/front.png b/graphics/pokemon/alcremie/lemon_cream/front.png index b913e40be83ce0205be8e477426443efeb12128f..4fff85bc541af0d638890a80a876e4a600ff9295 100644 GIT binary patch delta 657 zcmV;C0&e}K2H6FW7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006=Nkl6>+ zZ}r=-w+y0`I)X`FIuQs}<=+rg(^~@KkRUb!zabE_KOJA`g$qR5S_gpe*ac#3dRl)< zIp;+wW+L@^HT=(|>}v$fEIBJ*5Y(FK_qww+#Nrv7-xWjVNg;ZppiOfqx-#y{Ph^?*wNONXiIgb#IrL6S?Md_e!jwA?&D;Qh> zFk9JO^hSW(2A8T)48Z~bA0Hcok*t4YfmB5BEJih2HTeZVALV-j_2pVMo0jc@t1rPq zx~PYaiv^Q<9%5ry0JKOKf>>H{Ndcstgn1k>HS`7$2Y@3T&=vr`g{p@f{o?>B(zk@x zwyoX(>^Lwz64^@;9O-3d6fE&tbDwd$4NH@$j}22%@ft5QU{^V0lrEyJt1qY_3*=y1d$M02Zo$!>@DV?+;_BfvN=F~YoNijHeEZOFwY;)o`tSl6?dbt z{@z0A>B;DgbI9%IGXk|s0|$NT;R3$vAHN{brsK_EIB?g;-wh?boetRVc?OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00K!#L_t(|ob8l7Z`wc@$MIlg?SZ+0Og&2s z-r!nCVzYdv9ovetDmHTGN0C?>RSHO5TLS6_2p%D2xiu24#Fy)HmNL{Ybg%lX|DXQP z>s_n$KPur6jB`MnVUQPR96CcJqIYKqf5`ffoJ+zPg!+s{f7=g1>1GQ@00Lnn;LsBS zz(rFIZw@xp)uK*a+>%0u8Ch;VRrQPY{asW5mp|9}Z4I#9+&@v&b-3Ja?yBRwSg#)n zV8EB_ycWp6@DwYg>MGAaXH_77;9&}iQ;6RzR286$G3YU-uxY}Yeb5keVw=duz(Y|5 zy!e$!i#8{me~X$~x?Y^58pawDPl#@{3n!CeLNuMxD3MY`)fyDngc2Rih~{DpWedkv zM&E*_*apW+D!?%Wk$ztRe5FT)J1-A{K7khLw-wy{N)b3#fOa2&XoJ83ECrqi|zygS=EtvKZb}%$YiZ-d$kqdo>bG*q{l)B^|}GLEcT2p4S+K* zE(L*xZ!gB_Lt&tJP!G7wx4^YOEDz}!*!%XMWISj9NY5^b`6IKd{cat$>);9uH>Ahv zep{EZUC%u7kuj{kO1Wp&!R*To!(R P00000NkvXXu0mjf)`B_i diff --git a/graphics/pokemon/alcremie/matcha_cream/back.png b/graphics/pokemon/alcremie/matcha_cream/back.png index 8f93ef92ef5658067c721151d77c9f08554ee387..2ef7e2d3bdf0c7c38a5c600a65984c71c7499975 100644 GIT binary patch delta 585 zcmV-P0=E6@1(5}i7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00062Nkl#rG5RAkOTl}3t)eG zCnVEL;06F7wPjX+eAf~+BL%o3p(0o=2fq`Yh+<>pi5@BM%Gq8sEa|VU5U?IxD z3F&?!%rj^N$ajbUkZTU=;?P(EVE1AO*%fj*&+9xR0*(5Y&@m+hiJ-MR07d{ITuXq7 zUN*LsLb3<|&sCfnC;)^jtYRY!di#ICXBFmnMAjSz1Aebx8z9n$fO1Rz-KVaGX$H6s zpgAD*0DTi0$S?u4gb2z_1dv7{m;joA3=WIhK-vsx0JI9|Xn`95q7hzJp;gezClTpM z4WN~(2bA}sQ-JR2Xev-HKPKo2*qX@Z^M?^lPq)+qssV3-4+QFpCy2p7J0gD~0x=^q zR|1t4H2_d`Q;+Q#09XT+VPc>b6@cyBo~;B`0P`?jyB^p7P3dO}fC`}Z0|MJVP0aqM zZCXYpAdUvGIw%H(FmEO&2;ew+IhLYu7g09~LM)JsenA|1L0bo{qCfqH@bIc%I=V>@ zfVzy;+%3Q<$8}xDDHkeoNrE*?fffLi6ky?oe1|vz?*aNab#PP%r4=dxZ!`GDH}>Nf Xzs(>#8w|Fp00000NkvXXu0mjf1eO7m delta 675 zcmV;U0$lx(1?vTn7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Iw5L_t(|ob8mqj?+L8#*-rbS!^O9rMcAC zpmkEEz<9h8(iMqVUx8>GE&Ci46y|y)eEmt_w;;jYJ`^+S*xvOY=n*5uk@EfY?Kk7u z%x3>y%>$~NNj*4ksBWi-tB%CDe$@J8_2pqyUkGi9y9s?Je>K(V?&pMV4Y165%Af`y zswNBoNEg5+00|(pQVL)@s?Ql<2>}rAMl&p+DK19m7_>mBvxx|G#i7wpBTRPp265C~hJm3~_k zhdvOyfO;AMe_9=w)-Ru2fYl>#fmh$%40AUEI^lZlmi%TS?|xA+k< zLJnqc&Kn0ni+z<}Usl4v*m7r?u6b4DkbjOjMDl)b0q@@m)0ahBe5E#z6uA%JF^}b! z@)>oRH5kK30Qp#!<#U=!NU$kB02c7R%*lZk3N5%F@_+rUegg>V6*utjDO>;m002ov JPDHLkV1hzCAZY*q diff --git a/graphics/pokemon/alcremie/matcha_cream/front.png b/graphics/pokemon/alcremie/matcha_cream/front.png index 39c3ab855a7ebbc1c07ab2a63f8df455198fff58..7dfe1b3073b5a6509fb70c9bd8295f78c3117996 100644 GIT binary patch delta 657 zcmV;C0&e}K2H6FW7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006=Nkl%6WuvEM=`HC`t!)b0k4HT*2T9 zfZ59KqBjEMHn>!cVh9!h`1sfujAVZ$3#1}~XECbLs>v?^`Y7KMs4v&5*|cmITzv@^ z(nURVTrHT?^AH=u0w71a5X73RODZ7wB+TQ8si8N3H~<{!fV=?kEmS?^=pP42mA)n9 zylw3UV8?;!k;q<(;7Bh++-q&V#rtv6ngPh3TO%Iq0Nj9n>O$AIhNPh$ybFIoLRBFG zaY*6zgg{;2QuBO5VCCbrJWjePK!zTGXr8DZl{N@%4)9fy=?PiOxrZN)Bqun276cGP zqjqWR2hcP7LEmomAc%y}Ixyr+V{b7B<-Vh>lg$C@TLTTIwdvaNgn9mW_AGSes<<1C z_4gJ^Pftc~oI`FupAjfu8aRDW4;S!V|M&%gHXUyU!-2a#{%$Dg?R3C?&s*SsK!fOb zQ4IYPfK~0;e$YpYEWdA}sjZn>H`5yu+rjDrylta*>`ZgacDo&33DQREwp0D6l*JWe r4|?1P?u6J^$RBEdaDF5I*k7@KdD|I|5I*Ww00000NkvXXu0mjf$<#eX delta 733 zcmV<30wVp{1*Ha%7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00K!#L_t(|ob8mmj@m#JhH+tO%M6&=h9+Z) z$_-3nZ9!vsjFK*i7)z08*cl(R^-7R*Sw-4FpOA$oSo{{Sp__-w8B1Hl7t%*L?f>aN z*O^x9e^kOD80UaC!yqrtICO?cMDNZJ{*d({IhTYp2=y6@f3_cj(#;l*00hEDz@bY7 zfQzOa-W+VGt5u!4x+8@QGqT=&sp=Qohx@1iEd$^^j>u|l_-B-tXvE4ov zz<{r}c`cBC<0)21)m5H<&8k5D$ioyArx3qcsVYEMW6)zvVbg>)`=BA{#5R$Qfrp|B zc=0Qd7Hv*Ae-|~gbiFu9HHIC2_-t35zWOI$`+2T zjJ^d;u?>!uRDeYYBK^4m_)ZrJcU~R@y#+1O9~-#&oFcHO0PQ{k(GG!+*eqYNQwbof zFXBW1-0V{Yngxf_B-$+a6-Oy-Kui=|8`Jv}a2PX&e@7Vw-IXe2FG+AJ0f8|iss==g zEVl2f1h{DMH0p#xU>Q@6fGGjS5Ps;)mv}LQE*~OaYGZl=LL++*+=~b?#+15nC5nlM zdW1<}YGkV%60}DI7u^X0vZ^ETehd+jkjYxv_G&A@J*lRrNf(6<>U9HfS?n2I8USZr zTnYjWZ(oelhr&SdpdN6UZ-HxnSRT?daP;jz$#~EJke*!<^GD`T``tS1(7_cLZb*;S z{kAS+hn{)jBV$;7mGa1}gE_KO!>B(5(w>r(O`~>YOQPPOKIi$1{;$Sw5$DxPj%KPQ P00000NkvXXu0mjfpawPD diff --git a/graphics/pokemon/alcremie/mint_cream/front.png b/graphics/pokemon/alcremie/mint_cream/front.png index 68d3b5a4c0287c9dc69a4bb1580b216ad44ca860..e019cb098ac39083c6be6f3cc7bfc8b35a87db71 100644 GIT binary patch delta 657 zcmV;C0&e}L2H6FW7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006=Nkl!cVh9!h`1sfujAVZ$3#1}~XECbLs>v?^`Y7KMs4v&5*|cmITzv@^ z(nURVTr8N>^AH=u0-!~@5X91oO9~+EB+TQ8si8N3H~<{!fVKeeEmS?^=pP42k-jCg zwr%wWV8?;!k;q<(;7Bh++^coI#rttms{zQKTOuCp0Nj9n>O$Aoilm_)ybFIoLRBFG zaY*6zgg{+iQ}uj8VCCbrJWjePK!zTGXr8DZl{yG@4)9fy=?PhDt%o0uBqun276cGP zqjqWR2hcP7L0@n6Ac%y}Ixyr+V{b7B<-Vh>lg$C@TLTTIwdvaNgn9mW_AGSes<<1C z_4gJ^Pftc~oI`FupAo2C8aRDW4;S!V|M&%gHXUyU!-2a#{%$Dg?R3C?&s*SsK!xad zQ4IYPfK~0;e$YpYEWdA}sjZo6H`5yu+rjDrylta*>`ZgacDo&32~tPv)>Hkcl*JWe r4|?1P?u6J^$RBEdaDF5I*k7@Kpl}%2_jc6000000NkvXXu0mjf?EXKu delta 734 zcmV<40wMj`1*Qg&7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00K%$L_t(|ob8l7Z`wc@$MIlg?SZ)gW$9UB z@CMg95}V~S?bueFRk4vfKgz(+s8V3)*b;I?! z^Lp26{f|mG1mhggW*Fqf8HdggiRj%K!XL6eB@Fb|?Xa z^+lWrfSYZqK(k<1nnargKjJ8b6^My~Yh!wU0uE!wfAA=ypu19q>?H{fB_J?nMAd*u zk;V3Xl>iqF9!H%}2rOgD5iljd7{Yg*`3Wy((B(tqOKnUKKxky|fqM}l#+XtUu0%2M zP>(PPOpR=nLxT2*;G#Q0Kvs1m-j5+75;9pU+g@!2xF^;0H0iO>LA`DOE{i>*O9SA{ zi%UVEaN&z_`cN1s9@GOa^DS`g56eS(2KK)FCm9bK0MfHdV*beNYQI~D?K-#u!wu=N zy5H7iY}Yf7d}Iu(uTt)rbufE&Xc+Z}K-yE1vT4+=Y)RA`)aN{Z(f`%>4UNRm5$PC7 Q-~a#s07*qoM6N<$g5r=x1poj5 diff --git a/graphics/pokemon/alcremie/rainbow_swirl/back.png b/graphics/pokemon/alcremie/rainbow_swirl/back.png index e7f558454d9320a913d5757a44a270badd02f476..06abc68128d00a8a6f38ca5c9fe5b4a160f84f8e 100644 GIT binary patch delta 588 zcmV-S0<-<|1(XGl7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00065Nkl`g!r@l25;}jqeqpl;qdy``4xIsemY)^i>0Lm6B>U}MSHmy^ zoCnYt5L$rTxCSB&05u_k{NMq&Q3wWrY9NBayf)xAL+Svv0y0|Q27su9msO}0)beq7 zdJ+SurD_5Bo^=9{J?%{eiuun3Edgs2>3n`OqUq_DT0k*iE%1gwP4O7f8K{3pgh!y1 zFr`!olvh*%K*dctwnqR+5-1E61Jx)1tmpPc(r+y#Xu^vOy+{o5=_a*tS-VxhSa#uNxV`7KlebBR099u7gz3-hM-PSk(_1 z-6RJoL02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00I|DL_t(|ob8jbj?+L8hLa-wS!^O9orK^8 zPH3G}DX=`Ygt#IW>njkAPs=vE1O4vySaudksC}mtsqq zPyhZio}JD9JH6aPMBNym zem$BpXaIcDFN2r`kVnOO#$MKH^Ty2@zguVpaVixOhjlDhe~-Y zng|BKW;_;sgc!#mpZzH#jbnUi>dU7w z5OzK*^}MQfe?uU)0eR~Ix;ikW9^TpjYerxLPe0ok=5_>h!u8rLhm-6g;9G#&oJ|1~ zMd04JpN#bxxfc*U5Hj3;E>4VS#<|-B~KoMT1#Sq}@whMeF zm@r`WAg?3`(E#)e;*DB4D{+N?CyciMvMO~}SJ3%6e?Mi67;q(>%`^byVUsbT>!qCS ze|^y3u#jg4ST?sq$sWkGK4_dyl#>Vu>8kgAEC|r;<|d}uxBC|saE`#Sy?$%TdU?P9 zy0gzXY>(}}kb~ap`@IFA#r9a9K32j&8`-nW&-t+`p?n{6h{WaA07v_KV*0wutB=%X zMv;dAJsxvYf2i-UE)uP|2M{-PUEk%ofCQW3BVYlq>XIC2q0oZ6A^+=d`VBQ!7~-Yp RNG|{Y002ovPDHLkV1jaVCn^8{ diff --git a/graphics/pokemon/alcremie/ruby_cream/front.png b/graphics/pokemon/alcremie/ruby_cream/front.png index 7196c7054bf2a69d073957e04cb1f239c94b7f90..3f59ec810787d6d577f0a389118594b5c63cf7fe 100644 GIT binary patch delta 658 zcmV;D0&V@N2HFLX7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006>Nkl@9;RrH){dmreviRrxmr)%2EtI3$RTz;6h|>`%v6df@_*=G*}wJa&Otvz~vJ zQYmFoikV2gUJd_Ct@|1QGixcz7X;;O`n@bwRM|1NmYfa(CoR=Ri>?sN1I#@E2_<7&aAo`={N763WYg&@{kT~YzbCt)5(ObxvO!~x()2jm5SZ=vcTNB=lLs`M=( z=WS~@06Pv$k3{xT1V?%q;$Ca>E#8ll)(k-Q+#2y<2jB+uQy03vH6#u7;9Y+J5~>Oj zh(ijuCj{#HmYU}i0xKV{<#EzY0W$OeMDs-TsI)<7bAYdsOi##K&OQ8aBsszHvmk&V z8nsJfKY*Uu5Bhei2SFr+)`1~s8heX5DEA$0ooo(J-x_EztxeaCC(QH5vuB|zSH<0E ztiQKVdU`T?;~aAP`HVpM(!hR!dboh^`o}K_wCQ*=7!KU^@pnT>Z>IzHd)@;70~$of zi(=@X0IX`y_JclJWchs)O>NE8x|!aP*bY_~;B6bdV`rLUw%hISN{}{Mx1H)or7W%( sd(h)Xa3{pRLjF+ugYz5t$Nq}_0|Wpgcs`nPfB*mh07*qoM6N<$f{-{j@&Et; delta 737 zcmV<70v`R^1*ry*7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00K=(L_t(|ob8mmirYXGhOI(uo3Z6>%oG`w z!i7BvTNo8WBa%jt1P=s^ss$&FAxj{3vt5$43)gEuhP`n$PvM=B+2*`U&Iq=ME>0hE z+W+G}*O^x9e^kOD80UaC!yqrtICO?cMDNZJ{*d({IhTYpe+bPPi?$zvHq91}00hED zz@bwFfQzOa-U)2zt9hL|zafPTN3vLbsp=QYyW6M$EN-t#a6%_+oh=DG^dc?u@Q6gEv*vkw}ANo*5& z3Op25z>8mrf2?S8%(W*{|?ctUimT{yWEV`Au$Mv0Uns@9;nA(WWtNDLP# zlr0=v8GQ?eVjCPQsQ|MOMD}wH@SV;y?z}t*dJRToKi2T{IYVGp0or{8q7?!ku~|N4 zhY~W)gBWXgRI2wUf8a2t6pwNWrYm*GUXtKY0s^H* zR1b(0d2HWT32@QiVblqQz%nKr0aXH&B7E05P4Qv|T|Pv<)W+lhghuurxEB$klqz-M zN)!_h^$3%|M9Ee;Bp8nfF1lj`WK~DveF_ngkjq-x_G&A@J?W;WNoR!)`gH?vS?n2I z8UW{1b6g4n4PT7Yhr&SfpdN6UZ-GaDSRT?du=njh$#~EJke*!<^G9k|``tQh*TEGi zu1Js7{kAS+yPkUBBc)hB(5(w>r(O`~>YOQPPOKIi$1{;$Sw4wof_ Tk!PFg00000NkvXXu0mjfDy%lc diff --git a/graphics/pokemon/alcremie/salted_cream/front.png b/graphics/pokemon/alcremie/salted_cream/front.png index 08a75d2e8eb33146d4343a1a43edd6fea7a301e0..13cc028c444ad4c694e404c78b52bbebbc3f1ead 100644 GIT binary patch delta 657 zcmV;C0&e}J2H6FW7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006=Nkl6>+ zZ}r=-w+y0`I)X`FIuQs}<=+rg(^~@KkRUb!zabE_KOJA`g$qR5S_gpe*ac#3dRl)< zIp;+wW+L@^HT=(|>}v$fEIBJ*5Y(FK_qww+#Nrv7-xWjVNg;ZppiOfqx-#y{Ph^?*wNONXiIgb#IrL6S?Md_e!jwA?&D;Qh> zFk9JO^hSW(2A8T)48Z~bA0Hcok*t4YfmB5BEJih2HTeZVALV-j_2pVMo0jc@t1rPq zx~PYaiv^Q<9%5ry0JKOKf>>H{Ndcstgn1k>HS`7$2Y@3T&=vr`g{p@f{o?>B(zk@x zwyoX(>^Lwz64^@;9O-3d6fE&tbDwd$4NH@$j}22%@ft5QU{^V0lrEyJt1qY_3*=y1d$M02Zo$!>@DV?+;_BfvN=F~YoNijHeEZOFwY;)o`tSl6?dbt z{@z0A>B;DgbI9%IGXk|s0|$NT;R3$vAHN{brsK_EIB?g;-wh?boetRVc?OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Kx!L_t(|ob8moZ`wc@#_>Sr9+-j4)bnIE zxHb~rET3D+Q(JMW@YJXhNa@-JMEBqoQidDJofYY2jMPf-&-Fb^8R`$ZSAEy#r|12= zYqkDIB^-ir4(Kop^5Tp`cZ5Xv?hN6L*Z|^lNjQVRoU!P5e*tLIY~ct%AZP>}dO`rW zXv*Opz=pn>)v2>HdVdettRT#5-XbWg)rN)c9T(A*G8Ot>e8iv-FRj;)No z1w*k7j+In^V*n!kz5@74j~aJg9t3>?Bhqgxc>I+jaI65G0RrI?fsfcMKe1g2AZ#F_ zSO7e(Qw@gso6;mY%>NOEDXc(DG(0HP{}XT+Q;LTP)}LLwoTwX*HiR)BlbO;3{^3mx?92H>*TGrBYY&Y`#z z1RA~=Zf5|6f#!Za&}N#$81SD?5eeOC9| zwi(;>)jc08#pJ931p1cYq94ySB-h~>R-uaUH%Vo zatPqumUYQM=MWVI#9ZB30OtfTBnXI#7i-R#(+Cy>^2*hg%G+)t zm=Hqw82$4A#GOwgTiR@MNdW8W~x&t89DIS8T z1oeD}`99qO)L6n5K>Je`eM|Yx<+Izf>fr#;gc?O5rFUmSc=-{^>7*C0Uj3(^b07*qoM6N<$f)vR8*8l(j delta 631 zcmV--0*L+F1iuB47-Iwj00013M{Ml?000McNliru02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00HAkL_t(|ob8l7Z^AGTh7&3Vm)9r0KA9?Y;gte5?~^;ZZ4%m5~K z5Bp+4yIVqFzlO3B-Rum#`?3Ja*ZQ*Gg%I`FugQr(A;cWoYM}!XV7ZH|AAr+St7|!z zn=yG!#}DEJe=#tymMI{ZgOiLx0gko&J*GHcPs;*#to;8gpX>EQ+LRr}fqfx#JHmv`BeS$)!NsoKFWo)aX52*|h`V=3&e_?EYq@0=4OcNS}3Y(A@M#%GF zv-y%;Oa%xzk0c;I_J{9&ZcNdh^8-=mAY{eWRd{3xu-?k&PDHLkV1lrs4IBUf diff --git a/graphics/pokemon/ampharos/back.png b/graphics/pokemon/ampharos/back.png index 80fdc1f23d26a47ed0157ca797782ec58d7b8626..7cba18fe4780a7f8b8598a3e2ce2a690c67274bc 100644 GIT binary patch delta 490 zcmVt!QbYKU_mR?Y zO#p~Uz15qP?$eZl0I=%gI1*VqS=o9CRV97ES<6ojI8Ib2s2L2kG1i z=9Um}L=badJ+yF1-dMQM)msY=aRGmb%Xw?TtzQ6M{l@_2R(t@+<&XAO+yF|LXY%I( z^K>D15$3(DL)vLU4M-V?ZUFjw0_Er&dBhVs{>-PXbUm1Zl zz(K(CoI@T9>tj+b<7L98CtDXHX&eGX%6VJl_8>CXJyIPERNcV_((`Nczv@4d4mcO=>N`kV+K7EBz|4Gw^l5E`>@M@;Vsxn=)n# gCCmo=L-+5+FWc%9&=?erX8-^I07*qoM6N<$f~LOZ@&Et; delta 567 zcmV-70?7Td1b_vQ7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00E>)L_t(|oXwQKPQx$|#_NHlQ?DdaDHEYD z5FCk>;LDDMz3>1Ps>B8l&;?mMMW?FDEASp{c^91KPhE0xD#XAIS?=fDcfR{P8vVl< zZ+j9f)b^{NcEv^l1x!DA1d1my=qQ>H04zita4y8uf+T>Ef6ZeOM;vG%1Hln7jULmG z0$2)V9#aSq$u4A&lmG&#l zMgi&o$hQF?ODL6rQ{$Er;R1pJLI*%sW?}2)5bF<2~W*u|^XhbfTOEc*Lek1=~d;=DisCRqlXuJRb002ovPDHLk FV1fzrcIpY5*Phi~&TFH;)n1)>$T0fLjGun2#y zc(vg!z>J{h*{~@L7Xm^%SWpS57ZAMnjx2(X2lL(~15F4L&H_LcAl{=+PvR<NW)G z7l?(Gv^~^qOak{r>zbN)7Vujl4^V#z;MN@BNkENnf)Gc5^tf=6@kuC8S=T|}+IQ!6 z7L0h*m+%yzR^$hQinmX2;=?{{0C{I^9Us3W4t{)?~k9fX3>L>k@SMQ)Gxa7Th58ebQZA?oAAlrF* z7ZBxdfTtyJ(*d>re!fIk0V=P3iS7kz18#VWATPa>K>M7c?ahuiL=dZYO7N?1)gRj3 VAd3|+ypsR`002ovPDHLkV1mzj*iirg delta 573 zcmV-D0>b^M1cn8W7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00F8=L_t(|oZXbaZi6ro#u1X=BcciHUAj}s z9MKwfEBFCW&|0a{YkNbM@8`Sk{*Wm8pAjd?W>w!7MZQAB z+fpCa2-Go(Jfv4v#~gtaBC)y-`m9r@>qEjP(5chW1)HK)f26ChO$Vewo5DU;;Xa%N z=aa2b{|aywutw?ESO6ud(>>F~1=ztc#cg1b5yRpw^cu1^_%*E$x(h<_>HM zDcuku07Py{;S95mZL)-D7GPxmJFW@%Q;Mz$_-hnDPXXpsA~9>7ZPvFr16_u@${1kw zn9*}@QCE*0{cs=54Zv7jfGi9QW?BHQ23^_YD)1%*o#C_s{Pp+-F;x}~U=+3k00000 LNkvXXu0mjfCwT0q diff --git a/graphics/pokemon/basculin/blue_striped/back.png b/graphics/pokemon/basculin/blue_striped/back.png index fbe338ab816e7ad8dae30d92c4c7c87f7bdff413..9578c6665f90c7c46e20147d7119da6fc039b652 100644 GIT binary patch delta 557 zcmV+|0@D5E1@#1w7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005xNklg|?o)UXLFAB{_H3 z2~hn0HbAY;d$P@7~u#2af>0I`;|}v;NB+nGlBh47-=Ak03qZV5JCrtGXMrZ z6B@uy!TvnJvbSb80B>x!i#6LBD4@FeSNRGsC}O(=v8!2bWc{kT%PRnO*Uel3hRB_N v2E>@pHQl%bV7}1ck9Ys+dGs0R(LdEMnztjjHrpGb00000NkvXXu0mjfG9vy) delta 669 zcmV;O0%HC31my*g7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Id~L_t(|obA#-Z__{&0Pu4p1~xm6MSz7| zs07`T%NJ-kb~0QNDGMEPuree*m8k>Rf`txMMKWcoe4eTbRmuBu+&jm?F*qAr-e609 zKfQl4A;k-mE2u!x!IS4p{n)~l8HK6OT4ry0_e+DIO)?%#Qs~CfF>az}G zl~XvJ`wXKJyyV=1e$@^Q&fg%Yn30e==lsO;8kNA|Z-tcd-1{p*DYfsDp|s(>D*@9P ziDU8~R2)e;EeX3FC4rP-j1kFcsf69GHIyoj!_bQT5>DIRM}CaM3$3*wQK>`&_ixEK z)EG&s;(4irf4L#0uOht#OqELDm3`Kw8AwysiRZiIqk(I$e1@B3VsjrhzwUYr<+)3| zdSBqO^c2D3UR_4-^8#~;q85ltT&0U*k*X(ZmV*e-PaHA&=I3IQ#?9uJ9N5#kff!$` z*jA)k#h-F;gU6o^giw$H*42r=jXG*O<-!~;nuPU+uuN)l;3={9}7tc$kd<#J~d1`>SMSKL02H z2q!t<79=@vYzKe`1QXxpJ#V40v+d!4%>x*4z4XlhXWsMmrU|!-h*_;G00000NkvXXu0mjf D?E)(7 diff --git a/graphics/pokemon/basculin/blue_striped/icon.png b/graphics/pokemon/basculin/blue_striped/icon.png index f0450849a15c7b66345cd0a3f6fd08fda6801e8d..d84ec283fc60f82e19fd59f8faf4f0ba5222b797 100644 GIT binary patch delta 288 zcmX@d{EBIU1SbbG0|SFkK@2~-f zi|@<{4Zr{I*R{x8WFoNDc`2Xe>9}_r9H-rr*#0l1!}M8RO`qwrb+rb?atu>BH!N3j z2x6b(^p1Z$^McTa*@6+Zf(w-xbiQ}bSS9gBxKQ7*x`uz9`&dnd0O%u!N zTH;yw{#YOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008nyL_t(|ob8gaP6IIvhVurN#gu{e4Op@# z&scSe)IJO&lF1WXbUM0T-9(v?=!Ik8;!H3j{>`7P*p5D>{$5g2N!H*TI1r#3S6mi7 zh56#N01F~N2>`feIyI0HwZ{!Wolu|YeBXdYJkHN!8(UEyf3M*t)|%WYTugg&3Bw$W zYaJiNA&f}^iZ^*1+~e5Yx^B|f|M@Wh3OZ0qD%~#^Q%w>*V3|!42El~8x2iioaF_iC zz6A0Iy$MrS!~F1apl?uCfh;}ln?V`99axOb5AVd%k7Xv30;z>9U8~&F&MayLM6Y9a idyKIcrq-%{7N1YKpo9Un4Dv<*0000lr;kr2?UomsCs>+ z%B#p0n|Y29dLXX?=P6`!2>{pvDbc({cAx-6-YtR(EVN|B1&}tMg%TrJ;1{Sxf&s2W zIG(6zfD_pFZ1|R_1z>;)&%7F-0{a>caP817$N&$3PJja#3%vkYSX}`1ft`gd7C-`7 znCF2&Ca|p|pbgLn+cXl|0PQ)fS+IWqx+iF!ge(|;IfQ}6H^UOL!&>M*F=wxjWtps1e_(OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00EduL_t(|oXyp-PQx%11<+cu)U|Odp^Uk% z*j*!Luqyrl#Lf?N>A=P>bU>q{it?fgC6F2XS3f@I2m+BkH22XcE970D6?!257CPz`1D?&FoIsub+Hj98J0`k&IWF__t5Ksls6u2e>h+i2J zLS-emloA}sb_fclH5{rO3}3ReL**?QAPWFh?2srxJ(;qa0pkt_a!!bmbq+|&l+uhD tIgmm~l%N^D$eRIF6vUKz`QPtfT|W^tqL8^*nw$Ut002ovPDHLkV1go$;En(Q diff --git a/graphics/pokemon/bidoof/anim_frontf.png b/graphics/pokemon/bidoof/anim_frontf.png index 9585a6015c3b703883e8ed77a6a9ea81c569483a..a62f24b7d2473b079e0d4f535456498c7b3b5790 100644 GIT binary patch delta 710 zcmV;%0y+KE28{-g7zqdi0001tU!Pc!dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007fNklTaf-`qAI|bW&kVy z-U4|4U=ie9Cm}8{W-z{L)EA)e8%=*8_A2z(>t!mi89;0cfb$plDlT*pA*Vx2K#Y>{ zN)e(|P z*W0 z69G3%oY`H0rqKRDRah)8QV~$8$o_%zH7=SJ=CRlm-9OkQ1{z8bm+UfGo=K2@ti`iu sxP=EJUQ1E?EJxSNo})WDI{qd80Itj%s+Wh2GjOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00MYPL_t(|ob8seZrd;rhABYWO*tNncBm*Q zo#l(;wTRu_rb8DViz3P#1hx7C1=_6{jDTa;zD0*@et-^rnBGZo9Pua*?b1R2A|Utc z?kBC_J0UuC`d3MLydI>`J62En0LhVh3@Jd~K151v0R6Thf8h*Zl)?yL?5|H@FK(E< z5d!P8X^SC*Tm%4Tkhd7{#U93+Qb53i%v}Ti`D8YuDj9Oa^T8RWA1q-+2HrqKkKsm( z>X9=82D~mmP^tE@i;BzhvfNB=Vcho{UKb^5b6tl7<%YPJd?mxDdw{qyIKO8I6GMiN z?=S=Ynj@9De-Y2i8*A^&O&!x?fSaL3-O?@N1lJ%m4DFBa*4|YggJOmt&8>YwJ^C=f zdg2-)7~|VCV+o1!8Pc(>r9o+>V&z_xR%>f<#1N}m6`EaC5KFW8Y0O*fuZt_i43SD+ z?shvFWBvpi@P7=gvfb|os_TIX*fro~Uu0i?ea3hhf8|?mnE_iEgRPCm?$LV9KdDQl zdNCc5#+%6V&DlE<$dKpX%hYXs)AtT)>z&SRojP^;k3?KNJh;LdL!pO8wTO#{hetIR z>CwjZCoc8^?{aY9BCZfV$AOE|2fYRt`#$nM=OXSGlC@}ZF=w~oa4}_vb-4)eik;y( z7jtHCf4B%sHlo2roZ=#AT7X7tz43vcW~ZKQy_h_UVVQ?wZH)u<>i=E}1_kk)oCR%ply&;CFi%=Vkm zr&o66+aD^&d`^hpZjEn$*qiKjZiH`tcoY)6ABuB~;G!dVr@z-9MXKp?ZCSVs00000 LNkvXXu0mjfBnx2c diff --git a/graphics/pokemon/bidoof/backf.png b/graphics/pokemon/bidoof/backf.png index 5f6bc7e8bc22d9ec4ea62fb4854f23dc90db43c8..a76560fe473c67e036868c20719a5b93a3de6802 100644 GIT binary patch delta 414 zcmV;P0b%~S1m^>g7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00042Nkl+QFASCyqp(kfmAwFEiKTzDxuNGLau)X zoLqn*5`3m==1}C(Kxda;za{@2UwxMa2-*C#X&iD<^+_wVo)3k}PuK9`bBJ}2Dxw@6 z5PQdY6sRr5ZCpl8M`x-vh#hndxcb1mRzV$4vGq7R1!=P_1<91+EN~4#bP8B%NiC^0 zaFt_on*#wG8o$miOe?woM68Vf*b9G6u*MFprHUg5SKV2#3ZAisOrOl%jd6VIXtJZw2Hh7M;N^Y7r>p1N<=} zi5>&>9byAYSBZN8T0ZQw@&kqbPlNUNwu=b?U%!Kcga5)CmsJjm)dAh_000UA07*qo IM6N<$g6TK7+5i9m delta 497 zcmV1G)r|7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CY}L_t(|ob8i4Zo@DPhULL~B*WcFK?kUa z+#^=N19Zv#k5KCEhuW?kLLdP`ex!c>Qj~hfJCxG5Kk5X(c1=Y7G3ffN$;lF~7hoa3 zs!40DltDyyuFn<`cp(D5g&`1=Pm;iO2uzX;Xr(Si`CK&^e`dxWmn|li?vB72m_s~X z7AXK9%gjk$B+O`lYzL9>-V@{r2aWR*XA5Ahtr`wnZgF{+Ck#X~8?hc?Vczy@*1OYm zFQ+aZLI-&H%)qk(TQs=?fwEV#A(u0_0c7b`t|BWNJ2t=QpvxUggF9S-+lb~5rMBA nAjh;Pxs3of_~*Uj-^VwICVL&|Hp2h_0000 diff --git a/graphics/pokemon/breloom/back.png b/graphics/pokemon/breloom/back.png index e8a71c9139e039411b464de33de11a78a73b752f..9616b079568c0069d0816b70faff015f73a06761 100644 GIT binary patch delta 633 zcmV-<0*3vo2Ehf87zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006oNklAo_vL!~l)&E88u=VbS%6ZN-0C z03P)}YD$;@G!7*FEC7#LOUt7YuB*@hR@Ea!z(f^WKs441;C=+}0Y;eA4*~1?7~l{! z2!5g`dO@Hzf%ne<#@V(@7tR0}-T^R#@CFd|ZvdhX;j)e+K+-=2faxCsFzShB^gV(t zA29;}A7U^9WbY{+v;(;uTG%0Q2h)F9@Uk$tbb@69qN(FgB~S+-D>K8%(OquU>PA2# z2fz+o-lQ8h`CzltFoF!=J@y2EE&)LFegLo>wghzP_y#d@y?YR4eQ0)3s+QhkoaPcL z1d$JgHFZz|~q4eZ(?P6lW(KagmklLFA{HPrLfD3=iE*#_> z5mU=Zq<`!-fr(?UIxfVNRs`CL#!orX*XXr54urU|JQn&5Vc&I%u{S+E6UszNqOj)x zwd?y%JH=&qN`MMc|7rjdKVbpr?CSK@$97)Pi7^9AE&!CLGE{)kjEXF9I{8fQ`++lz>49;K22aqu?vsQUC_S z*42Rh$Fi;mK+grVwrcbaBVj3$*mdCqAor!J4ET{1y8JxyvUD T^77P%00000NkvXXu0mjf2!$#w delta 739 zcmV<90v!Fp1*-;-7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00K`*L_t(|oXwQIZrd;r$E`)EH`4+XbhHFy zmk6+Hx4uAxtajMasXYdkULk0g0s(?r-VKY{gCu;p-s$u~N3z_h=nVv<`|<97;%Dr+QQx}PU+%cK`i=!X&eWfe=MB!1qj314>suwz%A>F za40?JpR&7tpz@1NaxMFSn=1CVBuUafVA=xLeSll}1^87ayHzy6CP~$Wj5-+_Aj{Il zh3uZB{9Ax8vuu&}6k!9|ARv}mD#fo;8j(g zFbG7eGl0@Xf3D~6f%YVQ*sqQN#%uun#mF8#7KEzFAyf{4wVh3zI0(wSgB##5_+tn# zw|381e5vSi>0ub#72vcAu`>@=|KuHDZB7FcfXJ8^3xEukND1Q}G4@e3uhJNc&`mpm z?g*-6Uf>h4{ek|r45&SVDnodgeE9ruZ!}r4Z2)|he?nMLMQ&<9KW!<9;;54g&<0002ovPDHLkV1kcYJO=;( diff --git a/graphics/pokemon/budew/back.png b/graphics/pokemon/budew/back.png index 4c8478e2a8ffd18c4080c86107da1069bcf65bd2..33a92ba75c2ecc5578e9a233923fb5030300f61c 100644 GIT binary patch delta 411 zcmV;M0c8Hf1mpvd7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003~Nkl6MTBBU26=0zCX1TwIh!DE2gZUI~%16zC)a7urH z3v5UN905)XSmGoJ!I#0wSSjB4k2e zU`o5dc!4OC{7``@?;_@TFSqh?lYn{F<@ZNm(_M5}R0O|7C10*HEla-u3B>;Pcp+Hm zJx)*pkdQ+33rH){@f<{;?sG`_N|1k(ke3pj6_5|UE>VQJL)cI4RD^+7C-6~t*|w1H z;9Efh>;%;V>wP!yc6?}7XaQ@h!Zoml&;)Ri_aWTd!#9An4P5NOufZ#B!g;W^cW_z3 zcC3FTbpM6_B=mnGj_*o+0GdyXwWk(#@Za8Np7|T|1NOcP265yp0000007(Z$PDHLk FV1k)T!e;;g delta 507 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C%8L_t(|obA&wPlPZO2XGAi06u7AOkA#E zbdbQ}c16fJur&I1C%=G+=f^N{baXO|PR8xR$cM6p+$qr4i-VKCwZHt|pN0m(-y3!4 zKWEXxE0~gUvGjmQMN%g8`GG7_KrC;Gb7sFGMZ^^$Dq9iEW$X2gGXOR4tOS90bms!f z00lfZLa$wye^DVq{~3V7)qm)Q)M zYZPA*ZqN%DcAP)Dz_)pxm6(FpJ)n7?f_!v-{P8vg;ZMQK45$%ko}3r48{W+CdekzW x2aI<(Ur)Xdgyrs>csFRY7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005ZNklvriZvdJAAX4cdJ|uR*ZZ*loZ^L*Mr;V9{_h8DO^o#Wpun0CzHwmGZjqp$2dEcQe%B#+VF{+5oU`v3(Z+&GtROtICE9J6%L*gkM;2 z&Rtme4IrfnQ7pt5Q7+dG(u_csh2scF7cOEfyNJ&DGXhzCgrVXJ0LD7ci0-#|O!^Rx zumI4693$MNo=wH21#5dk)=vP$6#;*2Ayh!n0wBI)xUxWmVnH>)fP?`r0mXu9AVhro z6t4hG;QOc=$W5S{x9tFM6)@{*44wcIE02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00HnxL_t(|obA-HZlgdD08kK$qSG}-hW{{G zp+uL;%F?@FM3JAcCbz>5O+Iol0@{^cagt$J9m)&<+E6gCIZ zg!8@804{VuB1N`e=>Q8=ZN(phw6V!klZBXy1m_>RL*#JuBOL2I^9C?@2~-f zOYiQ6mWTiUZxc}WVw0ac`-#f3YPK^4Yi&c7f^H}C_;jq8_V342<6=e*e?_I5t6dh1 zaZJY;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj(8d%8G=RLn_EkVr5nW|I2<&Nt-W%-tGV7Vqb{h8k>NEbiK{ zdGX@K;*qC&<_XKnnqOqK3M^gl;-L+rn4?g|#lmMST?b~$9X39}#8Z6k#C%7yDT!{KbLh*2~7ag>25^; diff --git a/graphics/pokemon/castform/snowy/icon.png b/graphics/pokemon/castform/snowy/icon.png index 6ab5a1549150e1309d4ac2235e4dc175b7c34920..e8651ef4172f5295f0bfa2f858c6da06490c6f7c 100644 GIT binary patch delta 246 zcmeBXKFBmdf|G-pfq}s%pmol~YWsSDk|4j}|7hT>;-)D;H5)u#978-h-%dHmb=ZK% zIlHXWvG3pi{Pf+6Wv`q(#@D>@Ma13}hdA$T`!9TQC-04x1-o~v?VI79rNXfJUC}Zn ziTj#*ZYLT}h^3{5&q`yyogGuVaT&kM7QTjgT0%a%vzRY1X(V|CFdp@t;F!v(uHfUa zj-jzopr0O0j?1^@s6 delta 320 zcmV-G0l)si0*eEX7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L006H^L_t(|ob8e^3d1lAMSTO~0~DR1$L#2> zf{y~xUQ9}_dg8t^o6 zm6}Y7Z=Qjrj00jVJ%^b4?nNF928 z143@=L}@x^^iGSVcdrUqcYQEa5hDU_{b^}4mqo_x0~5F4clE!Z4_wgB!8`${&coAk Sy3Ex80000;-)D;HOoC+978-h-%j!6V^!p6 zX6M{7``-U;>n)zGUBzxN>BO@64fZcT-w|MZ6Z&PJ;)TuCC2Lk4;B+x~sl{O0wMMD) zR(z2v>x0#{ogxP=wAl%`rtqwtHizkF+T5gVK@Ki$(wprvzD9N!_|48bQ79PSJ%#rl z$Bz1+av!R6H*Y;>U>q;_;hC{X&^bW_SNP$^>=$GKe9Tb$>+>GlW()} ggrXVDyieGF&g7F@e&Xp$pqm*yUHx3vIVCg!0HG9dq5uE@ delta 311 zcmdnN)WkeNBAJDmfq|iOLB?Dl#a`m+>&pIwgI$P;bz?+gJWxoy#5JNMI6tkVJh3R1 z!QICtz|UQwEVW3%SkI)eb;(1Z5{{ArKX;&vF_6vR)u1U4q*&4&eH|GXHuiJ>No1X< zXkX8mY1;3DH-c3dVe|9)+Z({pJ1gd-2utOC@G4 zkUe=^qFS}4=F3HcZMUz@?pV;!`zEP)DcjP`j@t|t{>)6|o4BR)Q$2gR706?ru6{1- HoD!M=H^1%U;S7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005-Nklym>Y429KHgB14tA9oWjk&A`2`)g;KPIbo4`8WxYbXmUfjbR+e z@umWx2JHJIBUCWh8UkDhC}6JvD{jy{0%H)gmf0PttSY9TzGSWp3oKnT1jq9Y5V93aV8PGs9QhcOnA zg~t|B4VXZ8w3M+sDX1t}1`|NE5WWla5f3S z&H*`rXrm!a0Tsd4u>u3SRxbl%4dZ{sc7ZbkIR_^6a<(urAUV7u08I3f!)mKdxa947 z_R<1p+_-=c6a5l9S&}YGN$P#7=Y1mkcli_G`A`5t?zbf*z@Y%}R@=K0ssWK;`$qEc ze5wG6&>=h+uhI*lx1cj11n;{lXaRxXjj0K=$QIH&gyXr`6Ab($2fRM6lfhaOej-6~K$-{cEkZ=VRYu^Eq6Z`dcW==~ zS+Cqsu3hNH{ARi}?gI{|TZPDLr}Kfzz!OX6oLW!EIbcRO8c~zsASvYaxebJ26-RRd zU@Bdn?Et!iSqvaVdH>H(Y2YP_zXCqemxK=iLikkwjsFzCtaBjpKP?Gt00000NkvXX Hu0mjf>EZzt delta 660 zcmV;F0&D$&1>6OY7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00IC>L_t(|ob8jbYTQ5&h6P)w-ndv$>Ab)> z!yzH^7!GOOB(>Hm1{-&VpcJZ77?noF!J_LznpDBXafb@SHO7$s9wW2T>Wt17P5wD8?P%v41qaNLZ4`_Xf4p`B0!vN|O(Hh4+_0LxUpd`LI zT_K{dz(5^mkXqt(*Edc1o;2YDN=YT9G~K#skO72JWFTc?%)03*t=RYgb)Xi;)`mo3 z0>E}48v?qne+>aL&^E(Z_cO6L24bzPg_)|z+v9VfeM+hKx;e>9AE575vIpAKn`VRr zBzVxl2W-m3pz{C#Pp6bagZnWj%zXnIUvhoO2;V~h&Ek*|euRK9244iC+?f4AZGSQV zS?q~z9qNO{RLfwO&SLpIh2Q|Pc&bNz!9=hY`BODofB2Ic>-VF`MxbO3L{&d#RXyl& z!2(siC7`82UU5K_Rn_gTwg%e&b)Chos)i6{-`}w*VOQM_DWOkUfQUL9wgI*Uw^xAW z^TPfas)*tT1{mg%(!J<^;mwLkYA4#B0Nt&=-{j13fi-{#QhQw7z(@e3aDuKicibY) u0g<27CJ3OdR{{PmxD2lW;^hwia{U3@)Evl$gw_850000`+Oz`m3brC-7wJ9)d?gEjN+rKU=8!i7G zI=%Dd-L=;5^q(Hvyn+3MoWg#!`!6@jDDcnam;b6Ge%gAIRTR)C44$rjF6*2UngC49 Bbb9~* delta 330 zcmV-Q0k!_l0+j=h7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L006m3L_t(|ob6IE4#F@D%n$rrv(T)b+V3D) z&>0bl7gQNKbfKkNB2j9ngc6sT0U>Vl**=}EGv>Y5zCp# zYNGW-qk$v?y~k1@rY*2D4wpb>8krA6>mz01$lUvS(Rty{TwLF3%AynRn9td3u+5&G z@(#9f?ikbrigSY7qzR!DDG;-JKA_WAwPVN31L2ME9atwNn;$yoZfL*7ApnfhR8vK7R z38@ue^hy*ApOk?|(-S~`a#9J4N)ns_OQ90jT=?QGA*5VB#JSYFvxI;Pe89S{3*S2f z%KCghSGog_hIbHX4uGbQJBQ5E;U0g*3hqJKJN# z(-){eCF}7l=Z6fS3V^L({|v5NZd`um?n7;GY$!yWks@+NI?!RB5zSsUBkx4aBG4y_ zuw~TOY3fmDfELu=WQm}6wR>puzyqjl^kWF%cgZoe03LgdKtq6xH4pZ&5Oja?xOsK% zr@D-?a~sq`a<2A0U|qcdO|%O_SfBj?nRmj|7jW@QfO8;T0(`$$UIYB|&=Pn@bWI~< zL|IhGyTR!$rR3JJ)KZGezm;vf1WF`_ev(dM}cU1Ux`1gdj@a>@Qcku0@@3-*n;l2Ui z1HPvpg72(I&b|WcrMQTo3rhM!yDsC0Bvh9lrMlJGstR z_->JAa;>DX!}lS>7#y`6@ZF~ieBbfk4jAzLGw@B!R&K$!6Fjd8NLxa}37&gGg>Q}W z!E>zuPQ|$S{cQ4XL&pEDqtlb0@x9}}9%ugzd(S5i4gC-L0&=M(*~=eIx&QzG07*qo IM6N<$f}NgqxBvhE delta 852 zcmV-a1FQU<2AcOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00O^BL_t(|ob8ssZ__{&fPEf1WXkorAThWX zE6}t8C0DxVhhSnt-Kz?@$!eh(Gl0|~9BWi5y-pPyMautyRQ>~4x*%m>Weo4m5sB>g zOc_8z%2Ohp@;<+J&rb54=dI%}1q*%yh%$gx9l(L%)m)A{f1p`qD&Ptjl`mAY1XE3T zsTSmmfU-4(;!3C%Qvl_{S4~%<3qT->1pt5&Y^&GZ@1g~4k0uj`&y-Satbi*a9vwm+ zcBv$G6KYM>=A3USw1F)l4qj@V#x>PJ8rTqnbN$wsxYxr0c92fAF=i5yz=e5dE{q9# z9UOS_@q;n&e;!l7V0Z7@?Cz8Rjn7{{HFhSa1mF$Eu{7gUlfWJ0;{24D!rL$dV_(#m z9yentQ@9VEPX7Cr<<-EohQtxXW9U*!6T-RZSxDJa^k?4=KKDJ|weIWXyeb0T81i;7bX&(gCpE zL#N1qgm_Xm?xm2oz%>OVHah(7mr~$G_>=(rWC2i*`xk)z@KyjSpY36o#AM!+!(%B= zVqyng|uEFng)C;cc8B53V~}x?9r=aDM=kLD$}yFg=dckH&pGcz^pt^ eokG{~@8Tz)TRn9cLIiaH0000Z)n0e6BFpmud_MS-rg2#=t34SiM!U<5x4h7d+k z4+6>e%~lcA8C1bj;u45Z1!w&Cf}jaZFQ6kqSp<*x?qz42BOt*dPG>k2q_WVE1pZ8b zw;~A`tsxJoHG?V`BluVhrdS9>1gd|B71&L_mtYh;5$HbshL$Sec48A}u7 zff7OR!wC7ocK{$r5xmm`g=a4Wz|isF_s(qvVT5R)H6I1?gLm*Ynbpg9mE#pb3M?T_OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00GiTL_t(|oZXeXYQr!Xg&j=s+IA@!D-R`` zL51Qu3SI+^34MzcD+s-YO%VUvR`;9Zq-(1ov2;G4|45OPqWIelH+OWhT_j43o01T+ zUC>w02-Q>qq_KRauaRtZ01hN2)}R3N?rN0s2^ZLBUV#B>e+N9shi;Gq*cli=Sva8M zqZ-jf2@a@j2rPBb0D6+$$^&l}I1ui~BoR8Qh6Xx0WG&F625d(z#m)nE@U?%| z#5vV716756#=02tYqrEK#0GME-jG3XRWaz93>UTfBWk^#${_T*Ahc-~bp7k8lT+W& z&GA(hWu`N`XyzW1Ko+0z3uE9fnLB?=|EB!_fVMXy(FDQA00000NkvXXu0mjf_2ByD diff --git a/graphics/pokemon/cinderace/back.png b/graphics/pokemon/cinderace/back.png index 701208e6729dd25a6ce2ade047ebe744f8a2ff7d..6af38da2b409fe38bd8c115a964c3cc5a5508755 100644 GIT binary patch delta 577 zcmV-H0>1tE1&IZa7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005_NkllWHl&bV*MFNg0H9w1 zNJL%)U=$2-3_24+IL?D3#(NV2ou$D6wcmX|f)L?^(0MDsXB5JFA<{iS0XjhmdP{#o zduM@x??P}3cO%e&V4ba40fazkg_kPIx@k8PKKGLXou)uG<5~E4gl5@*CIFqLU~@iA z;Sew)3(Y)w1a61`?i8BQ^gAQHaP%-e@zMZV0CUIXud8-$qFMoSc$HQ{KN|x8VI5zD z4ruOBhYvIbz;-~}Psfl#Ed0mw@d`OyCIQ zBHrRzm@Pt1B41j^`n4uKGHM8{y!TL_=U+#QOnNk(@#r1+8?%4e;dXLR(}V-x~V1?cSG%O7iBIV2i*%U?q6 P00000NkvXXu0mjfMjHiq delta 689 zcmV;i0#5yj1^ES#7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00JFJL_t(|oXwT7j+`(QMS&*ON@Jjjw2{Wd zV*?5xVzZxky zy$@ufjUmL`m;fXQu$`3SxPmAc}%0w4izDhr?o<-&CU33iK*qlBN>lT{xo7tl!vU-zNf0L3~b5LA>-y@i%K z)s(;}+1kThuk1FiA)iP?{2buvwf9`;{D>Z^fZ~ z)4&q~c@RkG69BdUmUoF-z9A5+*9idNl1J)E{c@11Q`JkPp48V#s)IVjfq9a0lG8hY zq@Sdm)k7@gJPI+%tD2$!tkFh5K_47^_F)kZOwb?P5}Jq1d!)ZB&v)Bm@pugo7(sZI6xR6TZr z=RH!44F*h~0Z?^x7*GPH#|m1`&D1_Q4sOECxv74fs6gb2qQ)R=YxNm;SnzEGimV3O zTA$D-MYtS*z=%SuPXJWwTfneTE9QS)ncaD0CxjbIe~LVO`!PFS;v=+44^4=p5kK+dwn7{AiNtYy^Ad1LaHKhLW!zqA2#*_HU+xPIF z0Zzg}Id=gL2kSlKN5Dl3rIf=f1&aM83q=#rAAnNMJs^qU_?Bb6vd;iW$3@Tn_aD$J o{G9ODwHWCUaQBt@ll}GMKPtKy9ENbve*gdg07*qoM6N<$g06c$zyJUM delta 769 zcmV+c1OEKh1;_@F7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00L}DL_t(|oQ0InYZ^fm$7h#vm&)3*hg^d9(u;fOC4tcA4|2#QdTlGD{ueQU<}gAcJ!%huKncXZ zp|hsdVCN<8u)@5L-}h$beTT7?&|*>fjjt{*BE}t4QaLgYe^8crP5~N#6wo+O0MA2- zu|%E%G^jy2qP?g=lmPNo#|(JA3MNsZUUeGCy=@Zkwi~!3E08_b8i+gjYPeNp*zdZC zydG{<8OhYky(8pOAQn>#B!U6r0GtG5)j%P5k1Zcu$g0mlFC6(T?;B8g7Ju#geV>C9 zw}?$7JkM`Ge|7XZPR82%0%a=nJigzk#e!2rR{*#DwyPp>&GC%Ne z70`oVck!=G(CvO$B`j;Hs;7gGiZ<`+E$Khj6D!J=)(c>e00000NkvXXu0mjfw47H` diff --git a/graphics/pokemon/corsola/galarian/front.png b/graphics/pokemon/corsola/galarian/front.png index e9b4a7ded55f4b98d796ba362e5091133775c112..19d22f3b89ed6dbefa7dae171dc7245e9d9d6d1a 100644 GIT binary patch delta 509 zcmV(4m?<(&v(j6n5h`+%dw zAFIF9!jcz$126*i)@jLX0Ny1@sQ`NM3*e>|nU8?z^5=Y4!0o9K12`_j8a&>2qyk`bveR#+3S>sq z@LuBvAYobMJG>*I)pSj+ALb*%=>c52^hfmtZWI{iFaa1d00000NkvXXu0mjfiRa~! delta 611 zcmV-p0-XKE1gr&+7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00GcRL_t(|ob8dlPQx%1g>7Z&R5c+L6GKcM zpe3!KW2ouY0a3G4L3Tu?@UM=kL}#!>AAv_;Vq!#8N;{a9iFe>Sp$OTg9S}^MAyITb zpL=|R(7*m%_5vT1(vJb}>z84mGmF6Rc0AR__U8;~8UW%Df3GADgIO{ZvK&H)=Qi^; zdH_N}6#)7HkX6GqAi}3I89UztVI}K8NMHbibPJ2SC=Q?1*i+j#Dub zHJ>iY^B@BNJ6fYO3^KsfvA$ih+_rey%zdn_vfc^p6(Pp0ZdTFpY-Nna82Cc8qHYG* zT8}D|31S>Yf6{VDr~)qAZOe!#>Po;@{o+$O5}8_im)Q10wd9*PZ0EpuId1UbE zFTMd%$%G>1BNKpK@%kcv#LARkr~F(CDDT7Zi*ab0A^;`*1;D?4P4Cg6(r5sOL>d49002ovPDHLkV1jXe1w{Y= diff --git a/graphics/pokemon/cranidos/back.png b/graphics/pokemon/cranidos/back.png index 54947660c0ce521ffb068b928aa62dc2b6183604..39aacf0bad4e2bf263285a7f16daa87b332d7224 100644 GIT binary patch delta 659 zcmV;E0&M-j2HORY7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006?Nkl_IAvb^M? z|K}EVMxf{rV`_xmkX`O1O>_f;zHN);{v#mrPcw2*=p00RrStRGll0Ih!{kO>#o zm%hM&z-m5x(Z9%1AJUHu7_u%eW2sXw9u8RNG9;ZGywE#mHAvhx4V(uAixIqQr{A|7 z=2JQx__haB!Z>q;=Cr9hz>I+L#|qQ*X?{!y*e?#}(`A5wPQ)Xu5YExJKo}6Dv4;fc zuHP{r=$uLO_EX$dFy0c5n0J4NGXbGogmR;<>yRIfvitNDEGva{@l8L~X9v=;B?Fni z^$Kk|oQ|=D0%-LU0=08>Uzk`B15o!lP!Acv0}OT0U80Zt%CIn t*7pl>pl<{Q)K#tk`uA`3HTsL+jQ^8mHSNyoZ&LsO002ovPDHLkV1hTvH5dQ@ delta 761 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Lx5L_t(|oYj;uYuiu|$2C~cRfIsjsu)^I z7G)}Q$ngBKXpqyspqe*yke|LlTMb#-A>afp#Tb&0(Bi2>J81O-VeTumLqAFHo~%@Q zPsyGGd%2(g_kZWR^SnnKO1*z5&G<$2lRc1EMfKxlk=>uqe~YTBisEEAKjH{nRKJSi z!(jfBE2RpIPx&C=mk4AW^N86s0{oP~RTgg*MQ%OBj{@%rAP~bI_-FxFVNfE#fPf53 zS%5c-!X*Ia37|4X(g)I2GyxC@0M7`@Ex;ciPe30?0*nvG<(Jz-&|_4A#z(%eO#~9s zAVi6nR1~*?e-wdPKt_xY<^Vn#{0}g20B=sf>KWM-_;n9(@CtJ}L>-_V%f8;*nx(8f3K*t0~sGUajOvu`; zK#OxHKkx=4(WGlp$^i$SCwSbxKnw{8T)cgw1`K*5L8~2WA=2fL{PZoR8H@YoN9}S< z#VKtpS?H;sD|TYIQ*#r@g6;t*n=uS?RQ3|03&{55U=Zs_NOLUmqAkF1EqCh<-~(5k zXxem}e{_MZ1!#b8>n=cRyic1xBCzX9%we0gA`3=9*>`~>LieZvggK&feTxkP`lc zRRC@nz`x!g=qUm~$_;^ky93ZuWH08t2i!3r04#rEfDuUcZX@9OuYuH)NH^EL^1y$; z6S#$62(rf=!Nx5BxEBZj+5te#x)%o|)F7l4K)m-(Y)sI~K(9<}Dh$*w{m?mpRsaqWEeP{XwNSl8 z(Ob^R(J27PFF8iFO(HwyF;x=~%>aKdfkn^8@%bw!0Gz+BF_ACiQ~{{Y?P6&NHQ3)_ zat~HZw0Ya&3&J*$I{891y8z@=$`Rn8o~#G?ShNI`QY1f6a;bWZ8ME(5eib%Amd6af z7*n(ZvZcWFEkLFpg~z5Z^IU=;He|?6=36~UUbDwR0J)U+EK49o!a#YEgady7tLC%x z1fb0CKhZNqLXnzAasy!19T?s*g2V#`{1g4(TaCymGy$MmT-#(|Ho*KIMy9;S;$zHb zTFqC@`WaxD$AMkg1H5ikepFLflfa*O)F7A(VSqL!H{^EgSAqsfVpnF*g!ijjVZPJx z=}VNgj*9EEX|ztSj1Rr~XoP=K9oY2Mxw?*jw?XyP$}eVf)4*9Nty%x2M>0de68DC;&C;7>{^)OJfUI zSN!sbm$hI3*B_73%Y`ezWz~Hn!2X|7AK{t(4dLV-xdYG=dKQ2n&~tzL6(E=RZ-B>y zX&CH(Kz`=K#Itl7{4OR`T(^GW+fwAy#9!yB3&9GOkt|iq8hZ%C$82Ez9Bb?$44;pR z_;`PM2$)&#k7E~r346fQp?~qUTmj)gUnYk!5TWn#KnT+)s~+DM0y9AwUPR9TuYnf> mMA}=-i()Xq59|Bc{{a;F-W@xw;nD5@0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00QnwL_t(|oQ0IlZrVT;g~##|Rbqypy)T9} z@xZbR8?)?!;OU-7VVmdZkCaE~BQ$%`<^kd;m6}}}XP z4w8U`-v=NlJU9a0xZ{ADrX5XTg!TX^x@rpd5sn$r5S(0BmE-VEv>&z9@p0zd3f%ZZJ{_)O!oArbPShk?-!>6Ec zjvWyye>pb}>nM&L7sweB5QwsMzcAQN_Hx3{&Gf8e_i6y}?KX3zP=Sccy~`!z(C&(j zxjczFcD{CRxI8fecHqp&;~~Y~cLx7GT)r&(pl?f40D=t2%J168UM0*#3mW%XMYtB& zt6w4D!KqQbZY0Q`9s!I*_b4#H1*%NZdc@U7f5?C&`46DRqw3XH3w#rjBRM|3{J^D7 zUN5Qy^xgNdN*t^nAVG`+|ABCP_hZ-1sJQ|$;)Tioa?R#j_O!_Jzn+MdV3 a7WRLptN9|#%mbqU0000~ diff --git a/graphics/pokemon/darmanitan/zen_mode/icon.png b/graphics/pokemon/darmanitan/zen_mode/icon.png index f9e8674785abe52d7588315cc2598e5e5c709762..b563d4f2ad130b8e70444e4333d01f3275c11c70 100644 GIT binary patch delta 248 zcmbQoe3)s11SbbG0|SFkKK3WkWTC0HbgsOMZTH5Cw2nzJl0v7JpYU`tcIt1Q z*B9dea|MBI ziwancj_aNlt5Lky#&M;u?0WUP=qvs!WE1Zx&g-|{BK7{wotsQQ`y6)3A7k42*Fe>_LL^2CA0|P_nf{eL9ioL|s*OmPVBO`}_^!&HNZa^XN64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj&FOM?7@862M7NCR@Vdb&7)+R0+0EEfJANC4TcPQ1voCu(#>?w?(FT zqBd=p^-Od>TFmHO=`dGU;>U#ZE1KD3d3W+GN#$;7xGA#Xd81q~W0O-gTe~DWM4fA`pQw diff --git a/graphics/pokemon/deerling/autumn/icon.png b/graphics/pokemon/deerling/autumn/icon.png index 7c14c05cb299a9dd6822788dc768658c2e244a00..4181194e1da1ea9c926c5e0cc99066168de2f24a 100644 GIT binary patch delta 305 zcmeyw{F`Zl1SbbG0|SFkKG|IEHw1zMXQB>yQDD z>-A-x_a^=SADzFu^QxM#W5B@;?HlK8+nzWl_xJVer{{mYdcHuLWBvgKgLL^ACJyP% z8Q$k79Lu?NW3ob@8N)M`j_#RK=RWE(hD=?de)qmOll;okL;dyI_TM^BtenKPEb$^| zF2mOETZ6S5ZC7=E2`uzraE$-{s3NLwtAxwZ$qb9bSB7ko(CF|CnV^1q(SvP!pGyX; zy)a{|YD408#uWS3<=N@a;^o)f|Lo4;^RHvmy`RdbtbQwt9C_2f!T!(1Hv3%;Vo9Hl z>rF6y@~~gH@yx%9c88=#YO)jV@P{|nOqbWI))$bC|G0h^(BBN6u6{1-oD!M<-GP?+ delta 424 zcmV;Z0ayO}0`dcp7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0096f zfDY7Y3wUps#?kYn9n zX2EtAmCOkPIy|06lC@STn8o3JXOy&|hCi%*Va#FkH(`hlgD}SPqZj7i{P+eqLxnF* Szd^bH0000J}IEHw1zMXQBtJ#3Z zRad)FP4(yh{daRqb!K-a8{A-HlRr{@>zGD*!svYLv7P-O9Y*H8Z0x9tkTjvw^5a`!y~0+*S+@~HhZ=>*5CMc>io`*8%w!EeVi8y z-(vZ7A~T?xsk&rsX-}6k6Gu^0_v1{-Ye@pK;Y?@Nc)wg^7{Ibo;J<(+$g9 zpRF-v6xr>s@LN+S_Vvuo`(pk-?-wZe*HKmb!TrkW@9r8L@B0nP|4A_26g(%t+TojT w-aiY0j_=3SS%m!m=uMEh!*AaBXPW%F>8`?RAt&EC0=>=P>FVdQ&MBb@0AAyZivR!s delta 433 zcmV;i0Z#t<0{a7y7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00AFKL_t(|oYj)CYQr!PhV=&b02%Teg^VGP z4An!_9K;3teUhO|ClPGA7=j93IyI)xkU;Q|p;k#SBnGRt6Qq-;4jtOt^hx|W=|0B( za;e@L!X5-vs)H63ap?dr5|bwya#}?5n1KbCDDq=gnq0WgfAg8503VY;0frXbNo;^Q zQOV=RQ?*I83Gw>3xbPA2h0x7bH}l%$QKR}hg>Kk;^{N+ z;+vh<43t>3LzfxwuuMW`g#nq463%L)6fD!xTVoVAp;~^7U19Wo@-tzG4xKRC@uL;y b*ZlYf`QDzXE_dPE00000NkvXXu0mjf{^YRa diff --git a/graphics/pokemon/deerling/winter/icon.png b/graphics/pokemon/deerling/winter/icon.png index a7259c67e0c4a94168748f4aac414febcf3cc039..6528ea9711756c567f28352f32ca89afbb17a238 100644 GIT binary patch delta 303 zcmey){F7;d1SbbG0|SFkKD{IEHw1zMXQB>yQDD z>vgtS&s2Z@-~V;nY>8YWK^9S-YKhaC)zZgqZmZuL_HE7iGCrwh19rBCSvQ^tE$Hkr zdG}IsZMR1GMwO0*ybdayNxoA>pWm3qaK^`E(!2NEjr~{H6YGypmH+LM64EKXY~e-D zTBg!3l>yp~wyU<8xv45Lvee%5ev~PBElEJspXp58(jd>|1qy0`j`MQ5n{M~bOLe&F zRD5j~L)TsP34cYVt^0arzg^7!=luc&|2j6^`>A~D)n7rbL%)^ZSl9D3>a=`5t~bH- w$-{o(#)|qq&I*Qw!XEFW+gCg6JIybC>Wsi|f5z%hKwmR>y85}Sb4q9e0KUPF@c;k- delta 429 zcmV;e0aE_?0`~)u7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00A3GL_t(|oYj)CPQx$|hW!RN@Bm1ugv0_O z9>SKlY3WiAm2%CJ44pbv>VV`Wc{NxXb!iNi8oI?=gd# zfYx+?ewy*NhuHB)|I>mo=x6A`CI>Ru9%N^O9+)3qSDs@pvf6k+9xADbh^J$gl)rZV zWFW`7zs!Q=KRU{p69#x3MuN3gDOkthU1yZAp@u(9ePPUgc9}3lhd~(Q`Oyn=H9x)q XcPWe|#$w+p00000NkvXXu0mjfyknG``7t38aF#1RWpzbPYXyz3_ix z*zyM4aamj500n|09{ZL0)21lZ3rgmRUkub6rBXO1#%9;ljNKN5y&qi zu=uveH>*EH&IK?96nDTAWbn>gk79p}y8&`9Ci^y<2(Tj1-v@bt7ocTcu3msl1UEoN z;0K6n2m*u=puN#21TpW|5b-65pz`IqyDI>x`{Pq))j&pmy8N$p1n6H>Spl)~L3dX0 zDgncA6FB&BhhLH$f{!M!ho1rr!7Tzad3Ym?-On26Dj2vOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CS{L_t(|oYj=EQiDJch67I^@rF8?x$p+2 z$6T;AGlI4t{JoAdynuy|?ST?*+2yWP3Y!08_uJ)Qv-#Io63An7;|FvAh)wGUo(eCp zJtS!J)i_Fw0owc3Tn#yH&#QUg4}jUO05<<9Fc3SrfH7kSe=G4W7npLO7fYyXj)yn7 z!<5TCB2&zOq^TSLX93W22jDpbygYIRQA5&Ywge<;AGpb7#&6;SW|3fxi!fXL7eY>Z`r4cO1CUQ+l$x$+KRjPsiLATk?uMGm leh}y~`!^Sk?ccn<0l*3xpeBI(=l}o!07*qoM6N<$0fM!?%z*#^ diff --git a/graphics/pokemon/ditto/back.png b/graphics/pokemon/ditto/back.png index 9768f89a15b16edb29e1fa21d8e5fc6d57569087..5bea88a4aee69edcc02c04297dfa46dedb7ea2c1 100644 GIT binary patch delta 286 zcmdnQ{DNtM1SbbG0|Ud{?Tv3HR@>JLlmz(&|3?F76*o-*s=4mz;usRq`gY1ep~DIs zF3OWt|NlSk>M^;@jd6B#d-U&j)^e?0~Z5>r>mdKI;Vst0QupGB>(^b delta 359 zcmV-t0hs>i0OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007oWL_t(|ob8f93d0}}MWvwok)~bGfVoE@ z2S@^D-3mECbN@w6AVg;jS$5;!{^$44s8Ur`f78wPN@?#;eSEoIA=tj`>+#;%b_O6< z_B}vniNKx!(T|5Cun?8*@CfjXK7DBgJZDVw7uw~fp<#sCdEyU3G!4o5RU%aVj33;BnY*X7b0Z{IiEtH595Co z@54*J5RKPDgnSAzca~S&;tJ5VZ9^gD>;TC}7Lw@-#F1b?X3JyNF|AKv8}4ZGfUH_1 zedPoI%)eoqM3@s%9 z2vdDlpMxuvIBK=~FGAZ`4z7EtG5}aZI<%GvXdoQx*QPhfS63z&0Kw%44P5d@h>#w@ zUH5qcBlF2T^Fv@C m@erOZ)VKVsS+i#SN&Nt%5*?gSGkwqi0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00F#7L_t(|obA)UPQpMO2k@GBojp@t;0&9K zX&D&|hl^csS6)oZBxzH`V ze!6BioQHCM-)a%3VuP0p*3ZR^EAY6xY5}3aH5;U2Zopj!hzT|rjXoN%wOhC~2!bFM z83JBCZf9MPIUXh_uz%TYt$evSfd{csAl&b4@UebIK)42G5_}h0AkT1`5yci!tO2hi zFI(Gy6){G~f61l>p_JwCX1Y3;lKF%5vj!YGAj4dihe0k3;P7o7$Gdp_V(hkrLu@7q z__NPz<@-MV4*+nzQ_Ly}P}yJxScu?=8|C2|)PPn_0BSK*;67BjEG+N_CjpDq2^?*J z-Tk2w!`_^m5v(DIPbpP1fP=3Nj#u4_$oAzZ|eX6002ovPDHLkV1m%#|HS|R diff --git a/graphics/pokemon/eevee/backf.png b/graphics/pokemon/eevee/backf.png index 7689d995b607d6faed2de20b80c8932cb78726dd..6c265361f5fb1e4d927f0c42fba9561239eaca1a 100644 GIT binary patch delta 543 zcmV+)0^t3)1?L2i7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005jNkl9#K2|Mdrv?(=!$jsH3j z@egW1NQomftk5P;5CK@OO%X*7F~F|J2rP04YhZwsqRUw1v4Iay373Ad2n0`pBm{pj z>SF^27zuEq9Co&&*BlDL?ka0`o+yXb6`OwEMQQ<>1vueMNg0CJGEglT0%c9kR0Gpx zfTsFtq1-8TaaCZYzX^3kZ^Wj)5t!|^_0YW-DAxYVZDi z9z)Pd-_M!4nh(N4p7RZG49o#I>V1E}q=qEw++Y4BK=gUg2Y@IEweJF$AH@s+YT(G@ zE+v&4w?hPtz-r()j)w)4Yv7InB@7n$(whm(C8}WqbQTbg+=qIMM>&=sfp}6yF)`k~n^Z{-Teb;|h0*3_8 z!r1m@0@B?E+yn4%dWjLn5CSu?N##U8@uIm!_|of0l|q!QWNmocS>{l?-uB|Xi)toj zYMsLz_IWEumLy#e4H6hUtdYOD0(z_PmxCn6tMVbGXv;1 h+I=v-@y5T7AIFsuxh25ziU11$002ovPDHLkV1j}N{J8)C delta 624 zcmV-$0+0RY1h@r|7-Iwj00013M{Ml?000McNliruE98ZQOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00G=dL_t(|ob8m)Zlf>|#+?Z69SrJ9T!3gr zrJh`C?~AmnTtgen`xpfk4d-gB&GYoyms=Y{{3ocFNzzCqCdm#t7@fyTBd?5&~|IZS4R;Tmlh}eKC(I5Djs3fO{NIre&0& zQVGFP?GaCAIbx}Sp%tz7q&4s|g}K2=JSWP5%5l17q(3 z9im#;DjqG+JzoHveIL>4+ra_gx&ysuvbMmrjcJxZe=noxEzrFLfFfurbV-^~|JpIj z`Fz-qqm(H2QX36}O*x+-rO;%9fGpES10F&^se$RFvOxpZ;{FUQJ9$(Yp6uS*T~3!D z5^Lu;qcQ|qiPAmqHUyfqk6fS$fUHTKA>9z^@|6ZJk1u^({{gizmCF(Zu%Q3|002ov KPDHLk0$_sQe*?4t diff --git a/graphics/pokemon/elekid/back.png b/graphics/pokemon/elekid/back.png index 09028a7d9ffd3129fc0814b11fb2488c56c29e4e..c0b5f8cb79f573e2dd7ea1c7049b0b84e6d079ef 100644 GIT binary patch delta 580 zcmV-K0=xa?1&jrd7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005|NklyCsV423PUQQ`gHciTd_C^)*4P4=WqIR`zYKsc z<=%fm5V`kA=@-#sJ*xv^0uXusl)wOl1Q2=kavu;_DgbJ|JON+@0R0jG2m&xKkHUX> zlp070ikD{wB<%`-=KyQ~z2S_!%36Qnx93+DCO$PS> zfU@4aQxD*O0SG=3U^zA+Cv(d{CX^Zi!O#Hl_M~o$5{6wu_E7Z=o^S-9bzSva@5H$0 zPylD(xcebY02@zF+jao3e+EQafE<78lZPmolyM(CDX@9y}m>Nkd!)}?#3t+f#|~! zP%H>QW`YC2hD{8Vv3f>AO1A~rsF{HVpaT?v^}$1=({tNq1}q1gN~_lNCM|z@n(OT$ zW7#XA+YN#MYtJPhBOso)7+&ZTz`Cs#PJ5i@>I~3Ql@>e$5S0{fo=A-Z^D zqGtRtZatol@=er#Xh}bY{FUod7IK<5tjApmq>H8qE?H)2&cW=D$zv2fhq#V97 So{GW%0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Id~L_t(|obA-HZrd;r08qOChin!sAwWDC z?H8Er;*HK}u@@O4fdu}JAajNQ&6Xks0>Y~@bPQk*Eq|_eBqg!3)Sy7d++Yjh)A4wu zG#Y)x|3~uHIG?;R&U5_JL*rw<1O%EFgFqtCK20xJj#SQkf0}+E9LW9!(u`4>0q{vk zD3}-q(+V6&2LU*cK-L{Odo+(VC!Smhug9oxGs~+%ux|m~%&wvXop$DX#FCMUw zgW!U5KF3A|AiH3EiC{4qV|jU&LeofHXiwSNm?tq|2;^620K2`py>VB&U&fdp6IQK~ z^-Bcq_0@dux>1|eL>i3G)h}e4@lddJ?eHF zN%(I{BoK>@R&_%gfE6{f%Oq{QqAb#U}<$GIw!j(ex&5Qb$k_KcBDtX9NCG9~uDo z6{`avAq0Rg

=RioHRIih2l@AbhwmqE3tSZ%H)5SeYAnob<{_qiKwY;l>G-r|Ex1 zmXOIj29dm?dq(v&+vTG~K&Hg7XPop($SxFw%cy!Uf(G~~p)q9nVA6X4AdOO*B}VfT zYF!_Ey>+1?G&hRpEW20cH-KIY3K%XZf^32n2)KOFDQgzdqB@$wYKq0%Ne zw@z?>a$$|ml_wWArOHcqJ1=5%5nT1yuceE?S|Q>9^5Oyoadlui*`cZL5K6)E8n2B& z<*p0D$hyW0V2&W^qk3yAvjFycfQgkBi78lgj67R}a>H5lenUODaF9O&q~m5%=ieKE5~j@?dOQSdk8wWQ1x=+*OFW+? j6JTdk}# delta 604 zcmV-i0;B!u1f>O#7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00GHKL_t(|ob8lLa^xTkhD~vS#wG`7#opTu z*$>U{1EkCMKTE{JHaMhaHH)c=R!!^U*8|C2_y3!?{RQX)Ak@!T1T@`;AN+~}&=XOc za1;T-z&JP3aZf`0*RX~c_lAFS>8I2amY1si;z=WXK1hoNe^gh)vVhx95(8Gc7b2Y5 z2%J}}*Gv>5Ebs*80uTURbpMkjSzs&y-8vuFnf2SIxNmT~iHUxIl;V5#0|pd;0B$6 zs!yp17L@r-{iTtj9N!F7OQMVE%s{z24dJ8}J_@#lfEHAX%F&SwAA1|%MpzXAAH%wXHv0QVr?!Nujs7{po!oaoFzxDh4tV+^(> z?!S(&>xxazzP6XZOK{ZqgOvTEK!VdWq*9A~ShuvC;ig+g37pf@w|7trZs|UQzJMkKOKg*lfhO|VqRu;BR{QYgft17c+IYq=nd=(9&WGvd zc&GPf6}H!V1FUpmw{?f(=SF^X1G0ZSIO(b5kgJb-X)I~5v z1u?6F<2)NjYe>HYs|Gqet)qA}73vgVXe39dJ{x?EzK|tDwzRhuj+*`9b~x%M2gb+RmJU00000NkvXXu0mjfGj8CL delta 569 zcmV-90>=H01cC*S7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00E{+L_t(|ob8jnZo)7Wg^kR_M6z^_7uHCo zu@DOqE>F<(1qj|DgCC?*Hlz-f(r%3D6VNy$7=&N(FITr%am0OA6Gr`(EaUvwo9rd){P z;=dHyUpoPrS}1nb*S4Um01%oG7i~kp(@hUIKo$T9=8}ocH9Yf6n3Sw54~g3p`NB?h zchFw1J>fw_f8S=?YB0h+V!ayn$GJCRUyo|igDpb922QH@rAPA@n_+;PlL&z8Wy+}f z3mR;M%Va)iRneX^7!gvMuSEsK;xziUQ^o?nPL^2CA0|P_nf{eL9ioL|s*OmPV2d999xZrfpi9jLo64!{5;QX|b^2DN4 z26rEq06%wyveY64V?C3?)+G;tN;pai{M>;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj(8dAc};RLn_Eka+aKUTXgRABXEhHlF`>aGCssPzhUJ-d^{x z&;FJsS58WJ^6sCzapOkYP4kYH9qXSEYETmvwWdGk7<*l~tw{7E`yD5aD(`;mKL2yH zi0FH(N5AeVYrm+F`n8DJ^W^@0eSQ1vQp*3^o?nPL^2CA0|P_nf{eL9ioL|s*OmPV2d982+qq70J)n?yiEBhjaDG}zd16s2 zgS(GQfSyn2+B^)IMe(pdSV<4Nst3gv9NU@|l`Z_W&Z0zU$lgK(z z(Y~HB$=luK|5El(M}e}lJY5_^D&{07NIZIAFE#)EkHhsL8_$0`xJ-URsDv#qZ?AjU zXManRD<>s9dH2uVxN)QHrg=xpj`dFnHK+-TTGO9%jJ+=0RwVk7{f-kym3Kd`p8Gjk zMD+cs$FJ@wYira?{n{hrd2;`*PoH*KrIi1zkNd}Gd$qh?|DO9p;}8G;9%xW&(le+z ukkDDn_Rn2oI%$dP))$^7!$TOa?Ca(|w>u)>1y`Xp_dg?*-{5=OA{&4C0xBiT8tSP7N2Bny*)=Hue^-t~AlMGnS zWBO*F`wRE8Q}%3`kYPQAH>T?vbHC-HyG`$o=D6%v7g%O^yUL&CL1RYRhw8W~lNs_j zFvk<^Q!dl VDCLRGxBzr1gQu&X%Q~loCIBvFaf<)| delta 300 zcmV+{0n`4j0`~%t7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L005gwL_t(|oMT`Z;^03TpWpbye^jy0_KU4P zAgeHXwR`t^WHtYkSFM_4jHHI&&e+)49$8PZo$(`N6%3!1iuIAr_`p9)55<=CA7=Wk zM|Q_2y~)o|RJ>DKr}rLNfzqp0kCc#<{L@oX(nB_t|NkSUK6j|T`<9ZA!e`+B_JILS y1YKbGfWZ>`4E&E!VxQpy!z@4al0-+9xmMeR5r)QCcrz;yW~T?OU^5$iAz}5N~k5tDz_xAZzy z-(1amg57uejwKoyqNmv653OyF$?7TVD)C>%{CCc~fP*=&{Tp^4y!hqB=e|9yDL-|U zKdlij%2!e9nkXxF-t>8fZC&WK(p&#$HK#vV^832m{C8dUD|>VQJnyu(HTjpHc#-$m U)0$3Gpi3D%UHx3vIVCg!00fb4KmY&$ delta 302 zcmV+}0nz@h0{H@v7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L005myL_t(|oMT`Z;^03TpWpbye^jy0_KU4P zAgeHXwR`t^WHtYkSFM_4jHHI&&e+)49$8PZo$(`N6%3!1iuIAr_`p9)55<=CA7=Wk zM|Q`bbCaK;sCai~-MRP33eLP*_2vwcl7HvUoH=(6*bq|#`6zq_{%;=` z&_vJ$h7TAlvCqK&2qpFzJ}}JkLr)HF!!S7j02ZlsnT__4tN;K207*qoM6N<$f}+lR AYXATM diff --git a/graphics/pokemon/flareon/icon.png b/graphics/pokemon/flareon/icon.png index 96092e7eef01f9d6d04a8a5d863fc28a283b2f86..92f4dad5324497142193bd7794e9238098e7703f 100644 GIT binary patch delta 330 zcmeysJcW6J1SbbG0|SFkK*=~jLnwhreE8vP0qy^I8}@NEcj zN^4rln4-C)L*;tw&b5Y>tzinMH?+Uiyff{v*@VFOTjpYGf7Rb=w8>duuy+gFnVVk( zJy;E7S=TgNy>T$i*>~!%-D?_J#vbZ^*f z%=9Wed;RTFSN`S;8-5yaO?hlCYP)!MT~Pei`jX=6-{#tC?lGI~Cs!P}X~KcCna|G$Z~80Gg}?njZ^hpGtS;N@cb~FQxTRSjA#nWXhvN+u Z49(l6x&lQ$x&i}@!PC{xWt~$(698=OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009(9L_t(|oYj-fN&_(vfb$0PFg-5XYacBl z?H)WW1@|F5$w2ot_7Zaq2(qv}q=a-#-AodLRgXHi`IyPi>9l;q~Sf_p!t^11V||F;+Mne_r%4fae8(L9g`Yw8t)j z8>!T`J#}3l*Ys*P(m{4TZ=%Na=!~RvE_>PHAX5&vMj}4SbVFE$6ChnmDCj@}3IopOvOxYF!q$F(-&RvCKGV QF8}}l07*qoM6N<$f^WU48~^|S diff --git a/graphics/pokemon/floette/blue_flower/icon.png b/graphics/pokemon/floette/blue_flower/icon.png index 734c6eb4aa8c2822c9c902a76d85901c725c82fa..aa2227c430a1c7dcd0a2ddc87c9cd40de76555db 100644 GIT binary patch delta 278 zcmZ3_{D5hK1SbbG0|SFkK|U`%VX44(J382_FJ$I2^cl8l7xlf1Udf{F!hK=kmIepU2L%E$Tem&h zFk$%>_n1HH%4>JMV>rp{$CTnf!_Fa2Xc^Ch?JX<6)_Y3$#HjG-38npxI%LE6yGK~t VCuiCppx+ogUHx3vIWZ+P0RR9(d`|!X delta 356 zcmV-q0h|8d0OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007fTL_t(|oYj)Q4uUWc#`^|+2zE`Vj>2F_ z*jQi`UdG`jd=Tcm2NR$Jj?}?EO10D_^mQl{YY? zX+~POs`Ff(oG`$#C;(iGg=>)`5jaAvK$ABb00nNxc#w#Vc79FpZ6tQGa~n()ibkx7 zt0)$d3TzBSu*sW#z diff --git a/graphics/pokemon/floette/eternal_flower/back.png b/graphics/pokemon/floette/eternal_flower/back.png index edcf0ef2cc59d01e86d3dddf00ac2d794a3ef3e7..450120721173f75eafbfe064afe7f0ac7d75e33a 100644 GIT binary patch delta 596 zcmV-a0;~Ox2Al z0q{|Nf|+;9PcZYd@@%m3W8}Nm&x>vOK0z9LZ1}zoL_-W<;gbOyzFRP{0rmjVpc8Br zsG$n_cxcJ+nF8?P;c|{0Sj^6Mrcwx}RBOQNtZNs+&`hh|2ygWLQ7hjy7hCn_o$XB^PR3Tef zrmq>{Fr+0$+W)25g!4WlmHfPXzwbA4TMRBmU@7B*LR5q|{Hw>^ zg&+7f^Jo4T;kJc7$c1)c(Cam=djGcJGfd%9px3LzOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00J{fL_t(|oRyTnZrd;r#&tsxz<>eKHZxS{ zAgO%-MSTG?M27+$1c)61c#AZ*kCRNzDyxImFpJlSgNJtM)AT4=wnd8sa+B=)@w>Z^ ze>~3;;Dc|=b+HH+P5|;{;uN5axCK6~o$Ike=mscrkKoZ;e>b2jIEi;G0q2x7@^cqJ z@|fN`N|1tu-yK~-nMcXJqr$adapDpvc$B8ZA&^ILnobMoBLW3O0UHo%6SaT^@bC~} z1GS?2F zfZ%Ad36O9>^!Y-9bL}Arqlw|6Aj`D#=%)!BpCZ6QzIXL7IcFbN4?i?;ImQWitg7nC z0X%MBm1@i;&Vaf`U?)E8Ex=6G?Tcz@wy_YklB(8#f7sZ7R|K#LD*jc~R0RZ-Zek@i zs=Y*Jst>Heze%a2No)^*qGGiUB*yp=nAZc)h}9lCV&uqQ4Yd02oyhhc=&!~EWFOsj zm=bewH{>PNZo?(e4nVgZu$52ecVM1>l_#LDG3xO*=i4JdGh7R!DJ%Ks1o%`0#zQ!h z2&|6)S!8NwxQMp#-ab7&0x!NH(0Ig$g8%}Ci^1VH3Hluf$k;?&`TVQ@B0=*W0b|7K t%=JJ%`_Kf9Sz*|F-9`hAbli?N#(#>v2xHa>hJ^qC002ovPDHLkV1jLBF=7A! diff --git a/graphics/pokemon/floette/eternal_flower/front.png b/graphics/pokemon/floette/eternal_flower/front.png index 56d9a71669ec351c8832a2ef1d21b6012be3673b..5d0a8c7df71be00da6213d0ebc7b3212012bcae9 100644 GIT binary patch delta 638 zcmV-^0)hRf2F3-D7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006tNkl+jfK?3`L28DB%D9ZgT;YaV$X}x|)Y+r{(N9xe!}pZUQjwe%B8$ zFiq3^oB%MPf%z4|p#BZPP!jJ50J06~YN%!E*F5*-S=M02P%&$+!@TUKj%aNkf{#V(pGPWuH5fCxpKlBfxTQ zrwo;bky`+GD?R{(P>cnSwfDv@U@m_IvC&8PbtMDF`zry*wU6){0zx28E0%gr-4*3G z2q7loK+~5}r4GSw8>E;J05Kd@Jw$xPe@P?*_)7|TSu`j33g6rCn->EFKo4Jnvbfdn zzGjdTTlhx!E)N*HYXLWe?`k@K0qna{o+NggK$HU5ozoDCJObF1-!NyV+pK?>UerX^ zV0{uq&YeM8fTSP~(*$fGM4}P^tD{Ro^Z=2QhX66g-8#Z)5Yk$-AE49#0W^iuO%xw+JO)Nx(QW2MzE02Q6*Zgj)0qtk5L0Y08s<5xXI`o>CXTnsG7;E6p!L9 zz5@F40-#TeEkOCV9%aCzv~6nZ2S68OfC85hF4S>-1K1uJI04=m;Jy4ne*oyw@)v+w z0s)Nw-*gzDXA6wi;go?#3oiipTwl?{FrfjgejIRAjR_BjDHHrl0NGjJ0r*zG(*KM2 Y0T5*vLdh!0^Z)<=07*qoM6N<$f@~lfpa1{> delta 735 zcmV<50wDdy1*Zm(7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00K)%L_t(|oVC?4Z`x200O0o|BqSyu4pag! z81)C3NA@5AQx;2cD|JJv7&^5RVa!yjPD~9OTP1J@*1*CP)f`fXMxFX!dhZ!G0iT_r z>P?pKd-v`hwh`h<0EoPh(rsF~pbWN`TLPp~xg~^jRelKqe{Cuu*)nGaG?gzznFZA@ zWe9YHbR~_%I9_f080kG0X_Q^fB@Hh=|jbDH3^)b z{vgtZ1}NnQzONJqgrxHYovPRdq+8HSwD1gQpLM$z%n&;1Y2XDxaMeu%sgqh&0v%~# z0Br(5=??d3f0+h6>V*!)_81YD7^paUzzjqAY64WxXT*#5ealWnn-SMHLu-@()oP@~ z_~zZ$$)SV?&}yVWZFzqS@i?>^S|=rnGiP%@y^|#38EotL`PE=N#kovgLFtu`b}4?@ zA%VNcJN9v(zorBnj2`bi-J!Jj_BsYQPt8xU2yvf)f8Sgl5%-sX_}#&M@FSHkQGN%P zA>!7-hrnmR20=J=#4uz5ZLt-?sUa@I-9xZQw^>3g%6xFiHzLyLvF zUKt@IMsgFa*F*_MED*5NdAj6ItKiToSea|KL}3t7uL;a$4uI{oW*XL z0A>mTakyB=Krru3VQ5L1eO{$Ae|yx=+->%!I0mz9&^KV3nWr8#$obf7AjbayXi5Vz z|F!fG1U_VTVL)*-%?H<$@i=SH1NfK;%v)HTO!AJ3V)Psk@aY*Kn9t*Xk3U}=&GoUZ R+NJ;i002ovPDHLkV1obDIgbCA_%wbH_um0Iu&}XSwaXR=1VmL#6U;%_J@dU7d+Z&kfp-3QfKD z!mGGjVL_U!aEI^qfPI&qaD4os^Ul9V?YQ5=)!OC98Ft=y-B7RHGo7oJbFMe|E3o6Dvu`SsL(SVgf0cxp^zPnN zT-MOKULstt^UCp>17Y3_$@S}Q-170y55OkZU~4(I2DE`~}qpDB!+yk{6W ulyM5P7EEn<*ly=3F-Jwp=Xb=RJB%HNMARQ?MK1z+n!(f6&t;ucLK6VsL5-6D delta 375 zcmV--0f_$i0>J~27-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008AlL_t(|oZXVK3c@fHMe_$4+`DvFFi>={ zA0rs2X7g=v?o_ZKPCEEwPAM)i7*M)27HyknS3$uy1l~!)y~82o$K#B9-$7jPPI&>s z-xB9!ureK}97rATbw_9cx=QprEKU^-7ID~8{yg^3nPI5xrUZYg8)4;KF7fBhL=H%KsnwRi^2Vz5zG7^Di4NO zi$Iyx2gOBj!avRrgsJqqFttHiAz_{d?U67qgS1a=3_AH<-!X{FzCl&bAo7_(4-rtV VZs&k7JOBUy2>?k&PDHLkV1g$xkoo`s diff --git a/graphics/pokemon/floette/orange_flower/icon.png b/graphics/pokemon/floette/orange_flower/icon.png index 3c839277cd875207825aff982a98ac50b9086e88..07b6d9a09a4f32651032eaf3b46cd951803620c2 100644 GIT binary patch delta 278 zcmZ3_{D5hK1SbbG0|SFkK|U`%VX44(J382_FJ$I2^cl8l7xlf1Udf{F!hK=kmIepU2L%E$Tem&h zFk$%>_n1HH%4>JMV>rp{$CTnf!_Fa2Xc^Ch?JX<6)_Y3$#HjG-38npxI%LCmu}J9U VlOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007fTL_t(|oYj)Q3WG2Z#`6Yw2=^9DJ64Ax zjxIV@U!riEeVD$NLQ}}(MVi5>u@<4ZxEA{7hCn{_b5 zW~7CyI?vU~2?HF90>HIcxE47Qfg{ukGoMq(#Bx4}fAXvCVh ziee$Dz{WrXn~XZY1tuwJIDQt%o(iU0X&KY-;iWfJxMRzVAW@z!jUj?{D5hK1SbbG0|SFkK#zfd zi+F6%mj{3T-!Hopl;LQ;UF?>G2h-=I5}~x7`8o{McMq3yD4n)$dVBO!MwNogp|ic$ zyBao}iL4A3SnbFp7TYcIq;S>OnX_E}vK>gz(5rM2iFSx}t`8NqTE#eZlTPgGpAHFu zyc0T>tjM}1rF%%tWYL{MLGy15F5hC1Nxr03(DyD{)7L5Q3PVXo(%KlI3M-DjsOXLJ z&hNfxx$%GO`d=lnjFY5un4U~DsBPGz;v=b$&l&vs|0Dy80wDIB@o{U*PUhzILShpx TJy{6!8-u5-pUXNYri3N{x=es6 delta 354 zcmV-o0iFKf0<8m(7-Iwj0001qplF={000McNliruwJ^02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007ZRL_t(|oYj&&4uUWgfO~`9;W4>jLS1x# z8^BF;@Fuviu(-egcWRA^%PXOYV=IQlzOtJ5)1gVfyx-B#dQQ zlMpWBrjct8Mp(5ifDf^7Ya1khBg7Ik>5&6S@HO07A@21nbc63wu~AoF!K8`E1!?Ni zOehMNi$t`o>EvT%s*WzlkD@wJU@oy%8C^b+gQ4J#1v7%I@|@Bb0&Fo|oDQ=1;XgmW zAq#zYw zi!+a`*N1!mbIX_Um|ggCpY68Jme$`{U!&G-U9ZDXefLfohs`Oirnk$F1%7Eb|8m)~ zJ!vdz-o2vcoExQB7Q}7kNSwDkMt-61`TGnv3OZH!zo&3_bk=u!IJlcF2zci`ecnEK z7O_x<#xDY{A>NCt(}krbzT43uU40=_lcCShD*TDe)$Nns%@I&_XlJ{2O0%)O`N4{v zqOX7M$et?v`~KJX_v`8#jOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007uYL_t(|oYj&|3c@fDg>!=(qI-qLjV{_7 zv^UX(M{!pQ-MDEN?Ky;@-oc0;wlJ*qyp0@(LQLJXN0>$+{*s>d4O0G|K=r3(AETjZ<|AIE=r zi)ecWFyak>DAiv@2>|dZAluh01>n9H0t^VnuT_hk0fs>Gvj~pM`{U>dNlMafs0c@W;40;R@5!H_laNnXweWP(sd;5{ynXC?yP zbFl!Xx>x`_E58U(Er&9trU6QTvMMI0vMyi)n2CUKbLB^bS(o^6h5}g3s-Q;%Z%4lM z54J{WX=5Y(@D~ePKnm{-0UJLhH|y>)nFRjjM-eF7GvMF|IzmDl0ADtO68L{2Dnj=A z^YGrwzX-<9fF=U3O_Zlk@q3X1gzyHiq=3A`Xt~HqfXGXm_&tMP4Iyt)!op?AgE>R` zf(Ygj-2=?@j2xygKna*P;e6WrcYsJ?fTH>f`Us}L4LGsBpaGc6?GP)#kuR{Xj6*=@ z4?ctgs|wXRzy>ht0fsBEj^jlE@U90K!sUY^27r#x0oWfdjc}e4qJ3?~%Z#D(A4dqh nqP$lEhu|)L{o?-9PXqk}OyeAvmRD4<00000NkvXXu0mjfgO>{f delta 696 zcmV;p0!RI!1%L*S7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00JaQL_t(|ob8moZrd;vg;@^;(N2VyfRiDx zi?_mCCxf_y;IXK8PimKTOfo8gQWGlt5Ge{n;FP^+Um)??#nqa2sh**iKl%l&C&-0i zLpq<%Jti+j$Wx6}G#ghVkR$p8qyU&f|EBYN#_)qGR~i0Hk4nHxW`D1PbYAK@l2uxVFG66D8P#XJ)M@ z>+}@BGFb!R77m~pISrWor12Pl7Qz58PAoOZr31nt&v08wahUCmWC&oML#mYDCcL^huYvlNK_4vI0GIBz=m1}cJ(9BlP`B89 zJf?QsO5ILuFNYa+|H|WC2N-6c&n`d! diff --git a/graphics/pokemon/florges/blue_flower/icon.png b/graphics/pokemon/florges/blue_flower/icon.png index d0dc98cb1f2f446f57492d90c7c43d35e6aff372..8a4743f4f56d416c7997d4a9ea6d3b8634445232 100644 GIT binary patch delta 407 zcmV;I0cie<1>gga7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003`NklZ6ctt8IW^^0iI?iYS({L zN>_lYP|x|Pqhw4eG-ahuEGbJ}Lx9oMej=nSL{&^cgfUr>6aNvTBFr^J24w|_=LCso z{Bfa-XO&TI4z%7FIRGwr8~U(jlsE&_c@Xr$gzN?+IGAzO4G;@siF_W`0gr#d+Z0FNbPrOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00FN_L_t(|oVAj{irX*{hW!RZZ!MGt;(G$t z-F~*E7ahX-EC}}N#85WSJ4(D^Z(c0Dl_Ue-S5G9b3k#CF{)+sP~LW z|DB&V04nWL^?PWTDQ}?5yPRhQV?zKdNAk;toPOxAUThm*W33<>N-pDjt>Bjek4i*EEJxvl<*~uf zh?aA{kQRjFfA}D^wU5e!u=){bE0W}?=L!7d-sczSC*Tc2y`XrY=rt}Q0s308Ju|y9 zf?Y4C{aZ~VFsf>Clq2rKjQj5Mk^49V^AljQ%hpR!Ns{J1K&A*IA9IcSBChp{RK27D5TogBZrhg_ia$3irrd_I=aesVtk0&h-7kz00( Q7XSbN07*qoM6N<$g6eGiEC2ui diff --git a/graphics/pokemon/florges/orange_flower/icon.png b/graphics/pokemon/florges/orange_flower/icon.png index 5bcb76de35a1b90fe80377ac2fbcf9fb2121277d..a8239748c4d6ad5aac802b374c42de93bb4e1f5c 100644 GIT binary patch delta 406 zcmV;H0crk-1>XaZ7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003_NklEJ7d zZUA?qUh6}LR!k{es#7N>&QjM9V04e48L0@-h+Tn#V5*}E|51wLm}@8u$_j+%1c^ud z(NM;V$|!3B(g$NFz>OS3Uoi|VGeDgOL0?SBY4E{D8Qc_Zu?g8?Fo3c1^E~*1Srm{F zsoOeHI|*J6W?c0EEW$*hd_LBNjKP0yTB0v{28s7AkFsA;=)2nun-0GLkY{;A9M}H7 z3G>D4oBYE+$UpE$|2R8#;~(RG?)_r`d;ho?#PAPyfBMJOAi94zCjVFr0{LxscL@LR z7lT0m=t)Ez-xx%9jo}~Ldu3rghI@nfxBl=0L|-GhP5kN_00000NkvXXu0jG}f-_#d A?*IS* delta 575 zcmV-F0>J&>1BeBX7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00FE?L_t(|oVAj{YU3~vhW!S^7D{g$hzY&f zVBPI!Xo|?KeuqNQ&3eb}Sr%I#e3Gm<2%n^>;#k4SUbk})=woJV{r{gN|Eciq4%7gy zD2%k87}6`TwC~w7r#llt*2u%Qw{!vU)~f*<$!)%Xzt5^8e_k>kTc)NZ+iVT=XF*i> z&g%t$PPBbU0PJI&o(J zJ7l4_rJDuR{tFS!k>)7p9cIkE%oBKVZG4S$k{GCkitlw&oGQ$B>O92WBvV5%#&YtSf?mLWj4T1LLgqEwl^M#>XS)Mq+{ zmJ2vyM~0%SehqNZ4W4*fASdUYv$9Y##1Br!bArxbQ4Glsh4jVX?2bj9qaNUKk7Ahr z1Ge6cCb1jQF6N+K+P-DjX}(qz?I5OZ&t5_y$iUFGCqLJcR%N N002ovPDHLkV1hv={7wJ> diff --git a/graphics/pokemon/florges/white_flower/icon.png b/graphics/pokemon/florges/white_flower/icon.png index 06cccec6c513add045bfdadd1f765822ac69fb07..11b04c54e01956833135e209d72082540ef3f205 100644 GIT binary patch delta 396 zcmV;70dxNA1l9wP7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003+NklJkzBsOA@Y0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00EClL_t(|oVAj%Zo?oDhW!So#CxpbwKB4A zhj-5-v@=GvXE27fa3zk3oOEq(K;qNg+5G=sRex0UatCxk2MQ}n&j=qR;54x_$J!Ne z>Gbt91>6CM$t=`q9-19|oz09%GhSMJHzMnfzY_+gq?3-SG~^jQDy0t6f=-H_q>k}fdC<{40~d8wz4W|* zU+(>XfqMbje;{%PN;Oi}SQY{(I`+mwFAL}=^Zj<=SU|AdNZxqr_nCCc`4Bk{yZIF` zGY{+tI)kmq0SbH{nZzJW_x*@eLW}0J^||E^R+@1cW_eoRt{a?rI}pd)&P`d6jOd-? zdP~p^tU39)2zy7HJAo`GyFlHOTDJcHmZEo6Xwh($ diff --git a/graphics/pokemon/florges/yellow_flower/icon.png b/graphics/pokemon/florges/yellow_flower/icon.png index c3a5716077b795d49389b0734484f9afcd7216af..8fab7804fce094ed707c41cafa7b6eda3523df16 100644 GIT binary patch delta 407 zcmV;I0cie;1>gga7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003`NklWg?)l7?5*@0iI?iTGxM5 zN>_lYP|x|Pqh?GgG-ahuEGbJ}Lx9oMej=nSL{m&agfUr>6aNvTBFr^J24w|_=LCso z{Bfa-XO&Sd4wT*)IRGwr8~U(j)Hnmwc@Xr$gzN?+IGAzO4G;@siF_W`0gr#d+Z0FNbPr1s=1BwNZ7-Iwj0001qplF={000McNliru>K`Eqed}02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00FK^L_t(|oVAj{irX*{hW!RZuWe}{z9(Sa z?RV&+tMz`3*|78$!TKJA^$cC3n~{|ST`Z%i;#k2+uiZHa^f5EG{{K&s|5W&N2W|it z6b4?80{NXd-gTmqd}ktfZCLfIb9@Hy-l-lNCf$Ape=5}yf6s)BEn`!X^=1k5OGZ@q z&hHxlowlj|*;m5VH_+y7PP0OYeg-Q~^2>&tewca3Nu0@cycA(4OvsHA$Ldn->cn0F z>`;V~j<04=`wv7kC%#8E?J(!9XWIncY#Co;Eh7eMs^WVsqn85rnngt{Mdq2Mu_4T` zl2W>m7MQ2_e;~EBkIDnH<`EdnlH{r93H;;U=NFhK5DY@Ipt$20G_E57{@#eAaECgA zL#Kx0tK<{~GdXtt(TxtB+WyBTrrP)wLm;dGF%gMQw2jvekkN`1}AqM>MiOXz8#SE z(|^F)+p|gBik7oEXjzDdvpNO_LK27_JiWVzl%Wd8LNumBK9VZ2)^FMqsZq6&7Boy8yRTueI+g(R$P|=X|or z^ty3qcep-A>5wtOhh7@2I}!0!4;xEA9BVC{=dySO$54yvgtLb*^L3c??waN&(>X5D*(3zh zP+o~TG%DBZlUm3!o!u};(ZUVP7*hifnv|CiuwJNsR1?~B@~FULzyc_O^zaBBntoz%sT_((BYS)%h4+zHd7$ho@;a5Bg2-|5bmF9}y3k9}y1~KjOPc{K$BS{KyY$ z=SRXrOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DYQL_t(|oW+u{Zi6rohIxXXNcSMYUR18> z2n*@hC{oM_Qqy=$9=1=A&@dVkVz%NM0tUKAy^Wvy&*$HtVce~xoPI-!Qw0!_j}0}V z=Z^k68KONBN+gkIHx_yG6}TYbyP67btD9wpFJY`&fF5q1f5LRyAru9@`e6>u1{rk4QFQ^Nc+Xg@fVp zW9{fo^@zfZkjjFl({K0q>dLB*9`zmQ3c zE*tS-kytS{@NpGnj{yvPTt&2Z)Z1!4;DKVcoA8m@ALnGkM{Kd`o_zcQW)Re?K}7Eh P00000NkvXXu0mjfs~_LP diff --git a/graphics/pokemon/furfrou/debutante_trim/icon.png b/graphics/pokemon/furfrou/debutante_trim/icon.png index 05d1c448a521ea20739779db636f7c4f47582867..04860b16d25e3e42f5910582a57e8ca2e129cf61 100644 GIT binary patch delta 384 zcmV-`0e}9|1j+-D7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003wNklj(i`A=V-3mP^POz+WB9OLX>)gHPiOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DMML_t(|oXwK4PQx$|hW!RNu!EFHj6}*w zh%U_=z&n71$O3N>IZHDjp?YZto~-SXE*H0{ki+1^sEOmUgSgF~e0RUCPl&%O;2-Bb zGK64{n07hZaf26x3Xc3W!A{L#}{f)>~ zBS0O2n{oKe&a?x|ev2h+FaxWqe#x;pV=8+LB_H~shmy|D6bJ(vd)00000 LNkvXXu0mjffv@CK diff --git a/graphics/pokemon/furfrou/diamond_trim/icon.png b/graphics/pokemon/furfrou/diamond_trim/icon.png index 50934adad7d499bde34256b70b77f7f3dd870617..f5ce645e4ee9c73436ee0e12601bf5d582a8ccb0 100644 GIT binary patch delta 419 zcmeys@`ibW1SbbG0|SFkK%!2P2i1gs$sVs4`_Mh_^Xk?rzn^6h`m-8K*Dg+& z9(<3-;`C071xCD@iDnwv+yU2@y?%4?%T>o_G1)4iFPy1!83XJ8UAygYeCNExHvt!2 zY9+p0IeQ`f(n9C_=x@i@T*+Rml-ZNeZL68F(!zN9dObBkcU)!(G|Cy-Y^RS)$ z$T@yyj^jXl9!zs{9Pd9IV|AV%%wRb5`7pzQ&xe@~eNcXI_*8!bzqWmnUCtklpBp|Y zKLH9%;5WB_(g-Bx{Q!zQJN)FhwEPa~^)&~!e|pHiut097D*rl8OJHm;c)I$ztaD0e F0syTc&Nl!6 delta 551 zcmV+?0@(fR1Mmcp7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00ERqL_t(|oVAm`PQx$|#{CATwmVhL-l*K( zJPcCV+N~A~yaNmB0?*b&YPPdUq*N?t&e-|WvLT2n<^0Qcw(st%Qonrs)f(`MG&pnN z?K(k&n1}asT7O^!?LJC)Az&i$*+fv!N?eNsjEOn*%@dY5e|7L+b`ezjG62YwR* z{xi#k!t0KfdA_2{_XOPC5Vd57)eON%`LHPQS=@8pEMvO8QO6mzfGg0KjB&Rf}5HQ5*0@uKi~9dvgz$?ZbR|L zz4o^!aqp76vOIUI`P$g&ob`7!ubB3y$~`vU`hTiwU5bNBod^(zIJf|@N?i|6$C>_# zjDbH4g%q^x-I!dSx-&UEb!T&V2bKjz2Gc2>iJCQSrm#$A^#gOWVc# v+40!bP0l+XkK$5Xwz delta 529 zcmV+s0`C3Y1KI?T7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DkUL_t(|oW+wpZo@DPg>?fW$pH-5dkmX< zeVE>;Tb35+Xafy8CK_^&O(qi z8#4Kvfg%{5yW$Yj+5$}iBzY`8y5rQdI=&fs!ez>Mi`l4-CZR2jyu;0B@Tcu63vMw6 z2;G~dxqh@_f7Sno^QOTD^A5AYS9b|G$f$QkKhnx~1UwD>jJ3GQHxY)t5F~vX zcz|rT@d9{YpenT-oA$-N2LjtGX8k&hztyKhd{5N`3{)?VT&D{@=;MK}3qHPyh|Piz zaCBwE3qIH-OuXQO4Hi-~^TCY>OFrZW%H4{O8sj)!Bk>XM_iH|Gsax|wzstuD=++d4 Ti_>C~00000NkvXXu0mjfUY^~Y diff --git a/graphics/pokemon/furfrou/kabuki_trim/icon.png b/graphics/pokemon/furfrou/kabuki_trim/icon.png index da2a254b630f8bbf82f31e90812ee45dcab4081a..bc81044fb0343c887fc9863bdfdd097060b5ad60 100644 GIT binary patch delta 377 zcmV-<0fzp)1j7T67zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003pNkl2+O0-M-{%?!jf>?jHGXk;`i|eND__poK3aYzyQC&(9 z@sh0j1>te6U_k8yap*K_nOalIn)0qJ06SXKv2||*$g=c@} zakRb`YJ>A08`y_)5+s_XcYO(TlA4Ahb@%=h2e$xMXSTd@Oq7dK8akw+u$-de8j~nW zF5|?$!*)89Y!;(JQ|?^Ib{4y`;A_s8!1CHTgQ?wag2$W{?)mh_5W{PV^sFnD{N$kU zTv58B%v>3$#XG1oEIuo}tlz}Vm%U}xySV9Jc>k-b59CJ&keMGnKxTdn0GatQ0%YRH z1dxdzBR~dzh!5RAr{{-NKJ;;%`C-erMt)3u==rhW!e)HOkMiLG X>Z%>ix&A&y00000NkvXXu0mjfGOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Ci1L_t(|oXwIwZo@DPg>?g>=mCNzdkloT zeV79A77qc;QO78{w0BE@1X(D>0z`BX>%@O?573qyA08=^`i%L#Q1$a1v3OK~ZpwoY zqzs6Y1u)hcZWic7D2U1mmmb94g+`QWYL;H4drYf}h?=z*f0DZZJANm-R3nzUCg~Cj z>kP!Q>tT{ZB?aA9{VN}=j%`3UjG~DhCB*eOnQId7kJI$<)GR1J;$|oTzG6BaSJOJz z1%}*(=>*WM@`Hz1jSI(J+Yz=pI{0*|OytoKx0TdhdF+u+K9(NF3IhsM&+iUw%{+d5 z%s&ZGo#!nKe=|kw438Fv+Rg|HMOo?H(gPEO>N;#P(*pyU6)NpAGd(a6qfpC-GXpS@ zFK^Ujegp>i^Hq{JIsgM43b9_%^}u|wOX;jDT>D`YX0eBd*^*{_&T-=7x_FU2`3w0v>m1Kx^Ld`Gybj(+)^g}!281F1fCu11b%FPz9+9<*WPiAU6-B~D>lX%g=sibU5rIF6_8a@6g;X={#Y6J{c zOc7gq)bdQy?N32Fndcwzm}IZr$`N<3u=Xg=M2lpJf^%vQ`0gBPcWv1ut#E0vg5JiO z>c{8b3USZ=x9bP0l+XkKryZ}H delta 507 zcmVR02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C%8L_t(|oXwK4PQx$|hVuqDup+89dn0-i z5^5fXH-V)CQU@j$9tKvo9atEWRy0c&&c>EdkQyIO<2p$n0J!ab-~B$HzbN{>09O6n zVA4|zA|`Fh>~c)odLe27T@N=xp2aSos0gygXfIx!Fj7$^e^yP&tnSzYc0SD?qv5%Nu_xE&U0R8bJh+1#LF3LbW+%(VjUEFHw+ zWbd?!`f>6xfBz+zPjZ~}6lgv_q-;DMaHQeI6I3-XuJUI*Fb0`8l(^m09!bqs(^K9# zVOk4*YZ~zpr;d+%zjcVy8{<67++Pi3QZrN>`1mGiZNYKi1DMEMZaXkrPUwBv8Nb>L x_kytH!^*Ri)=A3;%yg1dmk-us`eQzR0C`L4%g3KK4S)au002ovPDHLkV1hv~(^UWf diff --git a/graphics/pokemon/furfrou/matron_trim/icon.png b/graphics/pokemon/furfrou/matron_trim/icon.png index b579007510fd7d197da2ad5bdd52714a7b19a1f3..6d379a8cae667df9e6b41cbc93c711be13c77e40 100644 GIT binary patch delta 381 zcmV-@0fPR;1jhrA7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003tNkl5ki&UiX{P2_ZE3p6RaXwQ*_lX(vt$1b7Ft2 zO`D1c$4-i=U!<=UOu$i~fR%^ZkUju9b7-LxE8NWGD6*mU{Su)2Am^fHrmi(~eH2#s zX@m> z$Ped3W>nzEdYN(0z>kU#fgh;&5cqM&hc`b;K78_{ReT8iXeA#4KWaW){J71)3f delta 508 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C)9L_t(|oXwK4Zi6rohIxY%Sz85_>_O$m zMzCZ~AF@vnbvy*BG6p5jkdTe&Frrh5?3xxE=-#T{{OSI?ll?i)-yKk5dT%h8pf*7~ z2cvo-#HDXbBy}K~Sy0c3lIS#wxJ*<$`a&rK+%iRcQ1@?rf2!v7W)UjL_dS5iN35qp zPCbx}RaAkz+kOMsFjp8iSoKXEB|C6JI~csSEl^@?H>umC1EH`Ld0t?%z)Fn4v3V+w zrt5Wg$TLWi%CmGngenhZ&gE*N2M=9q& zo}X(e3?~R^e}~bahof40#c(hPO40zeAAJm5O?EsJV05VGC8anEtPZt1rvgLI>Hzc0 z`iy~q{nq&L{33k;(ld^65j8BdAN|~SW^Paoet_zL_R9KEt1QKs$9~X3J2v=H>wm`> y20y;QN{sxF`Rcl#_;L2j%o+QUdR+acAD_|U3O}Oo4ki@<0000VPi-*q<6Ru0}Z(&);?}9f$NTl$d}G$f+Ow-n8#!w&HzLZSq3ZyldGiblo5Zk z;cy)-e6f;UJ4?whJlI1l16DmZT=bish8v3Px~iI~sd9`|Hv=9D3-hT_Rm&_1!R|VT zwyy-IO3XqtVt3$KXL*>VghmIfeksli#I(~F` z_<|oD9~OQTKCJwph7U78s2%yvkHUwQ9}OR7eo)7Ug&!>+@MA*NALYXno--X~^pO>| P00000NkvXXu0mjf>87hN delta 506 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C!7L_t(|oW+tcZo@DPMRfzNomwPWI@PGT zq)T*|-lSQSB?junTCB4*p0db-1r*|9R&gBJ&R&F*_#u8#SXG3$B=fA$MJF8P9>NC94GNQFU}frhyKYhfsi+DD{7sX+iq1}{i~x^5pfktl`h zNYE%`RW!}l6Aq*bt#_H23!h$QV&bFn(ytsRKFGFx-|!~!0c>0Uewwx4G4(%3ocJK4 wgR(gBL6IO^XA>W+NoqUe102=%!F>Dyl#BdHc&>@U3;+NC07*qoM6N<$fia*_JQ+fxS^Tgw1Gg%&Ldd?AOXw%MUH$yvf24vwOx= zriO+Z@fpD%R64gk>T&T@sJ}kLh^0Ga-K;BuF*{GoC%jD#t?~c-;{WIJzs%j{J?E`H zC^IU3P-am2oXqa>#GT3I$#Fr3i9f-ZapI3c7KfBN8AgVg@{9r#O^WHeg=M4 z{J8kXzeah@qo?}2_@(W=?C$*eaio2!y!?*`e<~g{e|kKV|I6B%AFQ^*CzUo%Se~Q` Pj1dM;S3j3^P6OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00E;(L_t(|oV}92Zo)7S#`6XiuovMhorvOF zIyDc|M`2+=>d=X$eI1aDvUUhWr8BnWNL4E(cF)c~ml@Sd@WKE2st88-68GyJ#3>5A zZmTx@u!1zfM`SBtu^qs~Mpm}35YD$RDa8=k`8e#qGPzKZ>7AMrNP!u>KwgEALRr-M z-i(+Fi|W{|&O|AM7`i=HP;(OqB|vk)#9>SpAhF66gFs?NT`%QORnxOX$N3O(qDDrw z7=-31v2!~Xe>E3Xb43QH5wWD5-gwBE-&?ub-G7|kBkAuIv@Yt-Oa<)DuYL3E?>MiC zV~XICT`pMwLqe2WsUHzRe3(ZHBV4AAA66`73D(U04D@=lVlZ`r@y{Sh?*LQ$NsRY{ z#W@l*N2ObT&G%cFQZ)cm7jI8S&jUU#pN~cceEc8?NJa*H5Gy{6G$9{0HkVLnO2~LF zM?RVgvZ4(5zyUF$Y~CqgtPfYjsTEg%uHJp)c<(hxvQv7&bC>=0n)05XJ4 z?dp%8pwv!-VN;R;)E^0o&`Jk@_cs7T1Y0Rp8i2D6Lid;mj1iz_K%!Ycj6fj*m`?y- z6)FMF`5S;l(5uZ|gb*;yFs``DP_};|ni2xFUw?=z-gkdZqHJTNH&#ZQKv%6>+Es7~ z!R43gojf180-TFFjsWm7i4ddd!p(Dnsy`6IHguY8QyGY<6@p(0$itMNbzgsMSv->9 zi*?qPmjGMdhkA@t09OI>eV88Fh`9(Lf4KfCJPMEi4Pa?$Y3V=c2Z$*S;6M-D?qvV~ N002ovPDHLkV1k~!w-*2a delta 502 zcmV1HS~27-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Co3L_t(|obAv(YQr!T2XLc?LPyy?fFppp1etvqMcg=qeItSwD zuK}VLf^QtrbhOUTfoxhLz8LtE(ZzJ!C4if5gPa05>L*hWfB8-gK#T4p92NGbw^A0A zycmGuRSRa=&kT?UAqq+ffE2}a1awV(u7OSpeGCAe(|b7Qya#jwg7EIZb~_>RfVPPS z0OQq~G0vIT;!doa0SIu(OrBujK(%oK&0#ZH^uQIV#HO1RBxLzg1Fdb5N{D6v{4(>k zFbf<6G=)oVe+B@T8P>usk|bHdrEA&rU;!_mbQOY-@w$H9H?B!IG)Ke&s1Y(%*Ka~f zI|oQMctV!X>a(r{-+S#AG0%AmN~IJ4Xq4o3C&Z&X0yut{tImD~+|I&vIR-g^wVOqT sPlYH|0@!-pKc;y&9vrylnqSNp^fP~r7x*3(000002uVdwM6N<$g3DjZ-~a#s diff --git a/graphics/pokemon/gastrodon/east_sea/icon.png b/graphics/pokemon/gastrodon/east_sea/icon.png index 4eec76873c861cf6d13517ce86a7d3a44bddafa8..33ba3c5c51be388b68d91e5ec3fa81e0d16f3a06 100644 GIT binary patch delta 329 zcmdnWGMRaT1SbbG0|SFkKa zU;G)td!_%wIulVV-VZyz9J)}jMB$cs)$GZ#wbvIo?r4*jlb&1OXUNuUaPs=9Zp9Y? zsq#zK?6TU_?!z4762`8Zc4$VifbP{zYNw{mnKtdz0SUdGE4{wHHqx+Oac+Zad(TY1 zIj83V(N!PC{xWt~$(69A?)n>_#k delta 491 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CJ^L_t(|oZXYLYQr!PhV=wJ1nKDbNm4K< zV_gFAnD%8dXtJNF&}_;O+Kgupb-_cd*t7u;ajtQxCD~6ywF&shb$I*GYSfoAPxsKtY=yI$d8s~thD?r|U3&KI@XM+bUnnETz^mmZk`ilu472bA6K4XtKoqM~vP9BojJKZ3FT`s!e0pN%7C0hV#w7`Gw z03x!hKhOa74K#WL4|@jM5d;&*!Tx0L>cbp0O-Asj?;A*ZOO$WL0=Do1l!u~~$E#%@ zrh2K*-ZT6F#d~H=q$}xmvusAaqy$K8Nk>RwLr}UTLjtPjlU?G$NQ^MdM(jHp$od{) z21WouF%SUuQSxNH^8I%Cl3w&uO@M#GNFpnOx!W^6A&np#D4Fud0Uae%LueyaMNp3q zT_&0BEVB4wA2<7K z8l>)fX2F}_2uOMD7&+0`?c7wjdc#CVhQx!L6EIzuP=o?vtj6rTizhR^z4@DVp36-gW;_6tI{8}*V}N}8$&tLB#tyDY?8=|BUOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00FQ`L_t(|ob8jrZi6rkh8fa0*AZkp5>&Fj z230P*m5S^PNX>if9rnPp34tV9y3=;5RaHp-uz&wHS@wwkj;8~_-F(@pb8{zuRH{36 zbrNV51xuF5+hHM8szk1V(j6p$9$-)az)})m4W0ldn{Ivqf4G4$0SF6-6p-5vf}2Ev z!fBi{-QUrOQwnuHWSPGF*n!4Cx6CuBF3gj}hOK$r8U7u7Kw1ZcG&em!SuT`sDJtM( z!icSO4`m0)bakMh!Jl)30)gF;9J^zYkw~!tYzGQ~(-DAWW*Sw!f8pX`(`gn7kQHn( zo3+~B&NeE(e@!WCCo@9p(h?WnW@+lxPK|?5dT?Ik_7JpOfvP8sC_aBLNs9zPk~N6Z=nzAufvf^fe%C1!s{ns} zTwRes*0eB$rc5n-9>Pz760r#A6)K?uUI~Rz0S8P3bRrf(vznGB20;yJ?uoexBAO9G z#7jk>%p*msLC-I|F4c96!gc|`EXQ@iT|Hm-CrTRy`qUApaa={v131sK0!gzXwg3w$ zp&D570TLBHZy+EG>iiB!{LQ)m%wKvU6WA%9&FMwf45M}w6FZv@76aO>=N2Bh@{W}0000< KMNUMnLSTXjyv#5F delta 574 zcmV-E0>S;A1cwEX7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00FB>L_t(|oYmCLZi6rk0AMDi_p&#r0jcM@ zNIjyGwj8H+Eqj2CCm3UAHmTWL&k27Wm~g8!U-Mx*A+h7!GsM#bh{FjHV{o>Yz!jWr zNi=}KCSnA;h;d^VF@~j82*ej7Y(SM3plc{CqW;2zJMVyEf50OwT(_w~Df~XzQfJ`0 z^9raT5MW~A)-?v8Nha%^}v2K;XM`QzjkzF`2 zg9c>TGv7iTf5ARuD|FyhvfJ#y+s_nG{6TG7u$%%APJuNGnrjhc$KlQGfrtfdjms#Y zr%8hb_WaLuoTLQL^XPYu0HGiEiiVjL=m{|fk_tr5VdPF$z#j!dj}OqVdjurPTv-B1 z@y@L4N2SLt0l@*Yu2WDCq9~$%eOWdD4CtkhiTb()P}jdeNSaL^);$oQZQRzN&nd74 zvIpcwwFwZKeO}ud5|=dEuuEXJ@u{wL3L2m7=T!pJCFT6)4)b5eFJA7T;x)mswg3PC M07*qoM6N<$g1EBo+5i9m diff --git a/graphics/pokemon/golett/back.png b/graphics/pokemon/golett/back.png index d3b7ad67e39258e22b1fccbc4a6a023bc9e8582c..5a2ae220887b83ad8691c3801703188ef8a9a8f6 100644 GIT binary patch delta 717 zcmV;;0y6!j2b2bo7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007mNklb`#3`Jwvj$9}C|KF`PuY}gnm(H|efWUB%t{ur@+y3J>M+o6( z^633f5FrvE`S%IIr<6RIfVTl;fK2%PJp%85kIC;8@D3s*;62ziUM2vh1hfaR7s7u_ z2tW}hj(vaKgvd=_Ev%bh_YKflSTun}XzzmsT+pX90-6Q-;(GuB%zCxJpZ7%r0MG-H zCa3qf0NBdP0os*f;*x%woLhEM$3?(qZXk~E zE1{D992W6};2Z;F$W1?_Pkf+V*9U*abpe@h zlK}w~LViroO-XXf&k%IpJ2x1p0G#xeo&hA+lNGhgTyKB?h0y6+dQs|y$$hK@2Dl37 z^)0=gOrqz%4Wh3e1Q3ic>JhuqHURh~7(oDK4Wk~qxuju=HYlC~oZQBK z35}o(nN+e8U4v|5w}x^P#y!9~Xw>pw4k|`U?r1`iAVHT9!hFE~#~+PPv@<*~$Rktj00000NkvXXu0mjf|8Y$L delta 862 zcmV-k1EKts2Bim(7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00PNLL_t(|ob8jbYui8+#@!GIWNM&ZG8MIU z)S-hpn`A7chSJgY5%4I;MPnT*B+^a}$d8O!iU&i}smR(3It|?f&P`cL{+qt{&T;C< zare>_czHj6-*@l5t5p8Ev-$Qf^|n|~Y)WzdW-V|4qWOFse;^LJ!dnBhMeAHC=W*a& zO~gv6M@{y?g*pP>BgCGI04O3>*0)?30t^XQ8Dk>?0w88$g~=&cpw1q9WdoQ49Ks!y z1u!3Fq!7Lve<%SFID83I@Bog>zy_8ahklScK3Z`JmJnFOw%jbAs}7U^^g1dlYV9b1~5QQ#RN}& z?@?s{Eigci{#k+{P55&mAX5Z7HUQOAQ-oodoGkCCYVS!x&SbzfXRw)&9h3K+GAfHWhov;7} zxCdIIf7xK5iojgpG`0Yo$gb#F2?Dg{HNvP2-~$>-DGu>NiGi&4Es&WA;y6}50o4Vt zC9Cg~WNHP#_kG1rFt7l6Y+*<{VCpw2(DPdYs=L}+qy=r2?>kPcU?96aj7cd6*r<7i z5NJ+q>D2v^>^4PHaEMR2&Suny6itS0d_k{naO#+{Nea}7Db0c!L6dqZ2^dctd`NA1 zXaW3h#KXi^*DNp|F9BHrcA7Y>JK&3yJ=tSmn*qBIsrgt2Dv3tGZWP8qqJzN1dNl0Q oB*5+@#%MDz{>2iF%KyXXH$^!C9^qHB8vpC*2u0Nx7@GM1zdNYaN^3{Om(B7zxhDtcBxuaPE^oOu^45nC zHV8JPQWMTR6LtZCRCx-XXba%I1KI+Bb9(^C0IvsF%K&Tj07Kk@rwu?PB!D(=3?P3O zZ&MwI4;O0lInD*3%ezl0ROVeQH33~M6`;vS#QGd1z~QO`fCRWzg`2>#LL)#bg+_pI z7eI<0+6j&_*1+fA;a9QC7SXPkV00UMP9)O}S36OcjV^yI7pa`rfTmlW?RG1oL z1)#eCc0oY`a{jRM3iW>o&;rb~Lbrbd223k-J7B=H0`>$VU{axuKnO&@q=FDgU*TP0 zK)|kmQ25;h_VWoaqfkbGw|oN3DBxQ@0VWhKfXE+|ubi<0zUA|sG*&nPB=f%BibI9G z{t%9bKqd?o;_m=f=B>SM_K`vw|3lyjcvXnwGdBSW_1!R5z-OKt=m6dnh)g?Yf_V%1 z@l*isi+D5;gYyb^f&5&!USDGcDR6GEeSHkF${A#@2+!TA6H002ovPDHLk FV1fOV1ZP1_ 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 Eg6DqaasU7T diff --git a/graphics/pokemon/gourgeist/super/back.png b/graphics/pokemon/gourgeist/super/back.png index f669c4987f5bbbdfe7224049daa066ea52343dcb..3d6a97ef5fc37f03fb13d1e600a300e4b48aa80e 100644 GIT binary patch delta 487 zcmVNkl58z^1~ag8|kf0DAAf0*SCtc&?A`^3Qwu-h6&5L;ygaca&Eb+5uD0pn+=n z`u!&p$FF*UKrGACN&yG?IDi6JDG;gQ38Z683I#AZ$w332q3{uSR;G7@Tq$${OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00GTOL_t(|oR!tVO2aT1!0`^m(u1(dPQorZ zw99LV2p;why2G}k^kA6}Fng>+6bCyL1Zm!8(2GLe#pKJ^b!+pbm}`FI`=?{A=lyG) zg(Ei@$tra152Td)p#zK+kiFoC-VdtJ9&i)w+~Ah=fNS>Fe+NP*7+kVDC-C0;KrmAv zcK~mZK2$W8Yt9S+>5X!93IJkv?Do;KgwOV-puhm|j^%UE_QPfK5^=f#Kp* zLJeZ#9!U)t5dnbHz%+8r?3JdGZ^%jnA7rIzJkdrBH*WtnE`<%0vc=JTOt6= zp-~i`CBknmp@1b~Zh)SkfF&X^38@BRXo*0uHNX;)G!r!FM8IQ6@Bjrm5k5@71B#*7 zi7)^UDAjAO9ic&j2Z)_|&$S~oSm6O*Q}w27M<@_Way+0^Uxd6Jp+I_tK)tPH*pBd7 z^nm-~6}~AQzz-Al@L_BHeSDVJ6LuQNyjAJ*0qz%L0AX74%Jjg062bBhY3=S uZ4np0c)-*EnQu-b>ID4|8bH17PS+nZElV5uDV>}E0000Oo2I|E{5M_T z@b29T>EmwU`Kcaiu-v-Y3t9 zUuI#7gVEF|hGRA_3x-b7;&~RQj(vao!D5~%{3v)FJj?X~;tyUi1HWvThW6Nre|l+$ zJ^$;S>r?r0H2aDlm#a7Oqrd0ZtC#sPBkFqf27VBy*EsXz;R@XOF(4@OLleX@KVZ=0 zxbp*iP|a0>AAIs5<01GEe?IeJ*R6A6dg6m8VC5lYevC7EGe5on=jk0Zp`8v!vj6}9 M07*qoM6N<$f{aMe>;M1& delta 608 zcmV-m0-ycs1E~d&7-Iwj0001qplF={000McNliruZ02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00GTOL_t(|oYj-hi_<_9$LE^UBY02$11~A1 zfnr$|{{s(tlfsaLuz!OKE>jSvP=$^JbDu(UTUZNw5f%zz`!`fUx)HKd10`w8j`=au zP5Tdsj~w#8^YVRDtxv^De+yEe%)@VQOl1T-K-o3^ zu*d~ACtmLf1@r7wQcg`$8(w3f~m$}-!X~6@l`5QD)JqqKB=0f??>ekh`l3iA1--+ z^gjk13t6#l5OrZK(5f!Xv4lMz`SRE`4i_4r4Hw{H_r`1>gH=KxT}(cj!Whm9W7tf7 z<~R^57>0g%m9Tn*vCX~)U71!_3BNFQl9T99n^sr3a{7(Qu=m1BsM6Bm5T}PD|Y##H;l61Y9Hj!s%1s@sHrul1)j{+d5 u^C1;#8Ui4%`iFQ(lF-8yOE~^Z58^L%O86X?t-x3S0000nCtp5LlFNhi<*`4XNeKhwhD7I~%K7IQ1Qi=4+9%Fn# zNFlOdxd{c?nj$ni&0e!2R;0atud z_So+VN5XW6PWNR=&7vt`efSc86>yvr0RM=;3OLTg{t@9hUNztW@G-vpkI2ma8Bj}b z?!GP6KP`EEKq0jFkgUD=$$K6?U<2>&!{{&Nvpm4ueJAqqwg1&|Mu|W&av5b)SZK1K>*>{PXE`yTluSEnq6&RBr*cfcyB+ h?E?X(6a4h)y?zKDBLk2}hqnL#002ovPDHLkV1hXA@k{^! delta 610 zcmV-o0-gP|1giy*7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00GZQL_t(|ob8mcZo)7ShRFakK@<=h7Jd-W z!Avc((tY`hRlH?B^R+~q9 zcMj0Me$-1teG9O>26}rH5CQ;R12s)|nNsD>H$$BVA)`Wle<-Y@)iV_jx!?^jR&{;G zrX4mr=7I&lL@6l^g1LIdaj#T1V5}K)QcA3XdY~V^Uz9QrfOIdVB@pPwN@kJ(moie) zl`8u<;h2sHh>c57I-rnw0@r(`wK8J-JGSqR!D?v|Q@Kgg)767>7 zrC=lK;6KJVe{jG6kT6CbLx8wFgV8xdfX0N`&5#suB@kd3B46~|Gf+Sh#YR9oPr`+Gv|?wmtVyA;4zk6cy9v?FVl99KaUlgxex60ME|}d7T7E8q|Oc%$U$hA{og)&o3K-iG>Eh zgq@W=71qQ-OP{4x2IDkBJ;%5RVW{~XTabj2KjUIhEQ2r_11@=F6l)xTW-mnD@w{E`){Zg z(esqqQ`^aYW*`T|C1+3j`U-IArT?U-lRne{a9ym&3BdLiKy(}{7_dA66g7XWUF`_5 zLUzUa_U?B8fk093BVeL0yGXLIN)8vl*y)X0wV_b9>l$~F9n1i?Hb$|Ft9}{QK%Ibd z8NkCLYWL9^H#R_7v;lT-4ye32I*_h~Qk|L(YDfprl&cY74xsi`o)9zvpgVm+-1S*U z8c(mOy_&&Cg|zMG)jZNudYe0l1n_AL$C37Z!(6W!2=6mlLt+9O*c33)>q}ipU?c;! d2>8W6h(BPtEfvj%g%1D#002ovPDHLkV1oZ@5v~9L delta 668 zcmV;N0%QG`1>^;g7-Iwj00013M{Ml?000McNliru

1~AQgPDqE7$-02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Ia}L_t(|ob8n{j@vL0MI{K^n^Y5Ju?5MB zoyfrk2?8A=#g;DPPF0E&xqz{qrAno@TI2#Qd*+@uSTUl@k}^Kkfw zl%nXr{!VNaMKMFI?)Xg|v8+MW`I4WY!@S+>Ou9s%nW9@&f0aRUfv~#fQa4(wOhGoU zk;t3U3IKNX98g!l)(CJ-w~|O30$H}BB|wIN=4RI900;n6rIxHQHpz4fx-xJVP!iJ+ zoK_fCkX^S*>Kz4ypHo+YOJ$`J1Q1US#kh|O41SPp*v@zE#QR1#kP3-&A(7gYO@Wsi z;J$ePxFF*ye+J;(wIStQ!1Y}aAQ^pkS^|n0phBCaE)=H#tDY~L%@j~UPDvv+UXHPG z4cL#sm*&a)CDYZFU=m(~VOrrF0w)}^>;peT9ORft(fw+ruB7U|K2IaK{;fL^J&-Q} zt@j1@fwc564S-00dEoOsKs+A47Udl1=YYWD@p$;Oe>u1NXbHe35%_UIfZn?G4G_nJ za^?5g#a<5q|CEKhoGI{dn-QLQaIP#VFdhYfg_xp;wId=x!a4=O%fye_^-hmSJMsB& zXTdB0fsaYU42XkE?+HTzBc~F@Z5RECN~ShG9lG<9qxs>@4`jN44-%txZTou_eSFVp z0f8+@F58tb`}lR6(*hiyepdMs?quTacJY<)59$x_m4HZd69#?&0000lc<3)%St&^C$y%b+6c9*%9_(DjSK zDq{6n1#<#>_gM>^l`$$nCD5NHHWQV+3C3T9le1VDM))|u5C%ylKo4Ja52|6E7my1S zQA?nT9`B-}Dd+`=TYuFliUvO@2y=f}BD4gXte!v=pbBSx+xGqSdhJceo$#`XCh8Kw zH;Vl5&|6kg5b2bb;z;1uLgm(eu zyb7S3@Hk4|b|H!q*buXufe(VR+ktYp$lrwzNZs}@0pXHmRIa@ecW6QDPf z3LbD3sNqsD@8dmfbw2U_5&&&6gpdCt=*{qmFaCWZ^2v}+diQQ(Ch=;pCt{G-!gIwH z*fKl{vP}^CnEgGWb2oaQ23fY7^9MY)Uk9Nt1@BJL1&;z}9}o6H{*3%>q?~d$42Jk$ bf49B>AburL+Gsv%00000NkvXXu0mjfHJmfG delta 759 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Lr3L_t(|oYj-DirYXChP5bQuJcOUgphzY zdI0NIU<^6PN&|VFfD2WZX9&1joF{Oe;LcYZq)KU2T(#Gvww@s~E3ItHlKUIZ#qodo z|Jm8uAb5kt`E{L1sjmZ&%jq?JDj@$luD^?B0$?@{2$?Vhf7n8Xv%QR;52Vh$+S`e3Mkl61b&<1oHYK5 zXy6>wfS?3D0tA92a9A-oiOd5U^dP{R1P8zn5JHr+8RFucj1!Pc4-|bpN|4CpC?Il) zLC;D*zI4egtle=>w2|7G5uIHjmqfpQk-geJjfr;G92h zPl@J|KGn4&xR6rv?eE<&#VrczNN6WxeR$YBodLS857zDlot5L>Xk&KI9!Q;m#d2Y& zr@Sy`r*4HSivo920g=)WoyDs;o&MKqC;ROS4-e zFz@cN1@3LfK(xQb@REdThmVQL=SsRaQk>M0kogr!kuYZaD? zTq-{vEY39-$$~nJnfPy0tG#Eh_hK+<%*8ZGAOgo{u1y)Q1-j{0j!^M{Vy~{r?k&PDHLkV1oCGKfM3| diff --git a/graphics/pokemon/hoopa/back.png b/graphics/pokemon/hoopa/back.png index a3d76883c79d83054641860b7c511bf785cb5d8a..64912b3236171b5067403cac4e0ec022fced7c3f 100644 GIT binary patch delta 646 zcmV;10(t%12F?YL7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006#NklF940M7gl$aLTR9RQ%)z=_`h>k$BL z`o^yx16TvVf{p0tZvboPubg$IXW)NV31D4c0eIF$K-`RY88A5xc+xe%>_pQ^5dk^? z@APK?C2*p+Ax;1o5lSA}ZL>}QOHfFA2+OIzjLk#Hd?4gJ2RPxR7*%usVvB^iWCGGF zzY$~();p!1^dS3ZhgvK<_{rBm++4{KFWx)IZOe4oUo{~Y}iwH<2g2J;)iHv)`p zgu|P`M(lAU%fm*yD!^t5VFdVyXPXJ67m&*sd@U8gV+43)GRXj~-5D|lTMYpYehbq8 z;?Gr%P(UGc0O6L3GXk~#!sv1cJ)qimfHebI<2nL7K?>-;K%7#!m0-PKyI&cVpjqkw zsE3pVA^`1J-ZfKYJmtQTRpNe9zx9x|Bh^lpRTaSmi!*+lnbk#&-(ohx6BnES1|iga gJrJ(=fBJ9w1IidG9bJB1fB*mh07*qoM6N<$f)gty2mk;8 delta 789 zcmV+w1M2+F1>6RZ7-Iwj00013M{Ml?000McNliru1702g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00MwXL_t(|oaL20kJ>;GhP?#^9cxP<+_6+C z&5DBj3NFY}4y8udx>|`I$?1ZkJH;ovuudn${EHMZx!RbcNMUO7+oW{z#3f%5MwDP;EmE|2>C8`o|GC})1}9~P TnNh0`00000NkvXXu0mjfM@mWy diff --git a/graphics/pokemon/hoopa/footprint.png b/graphics/pokemon/hoopa/footprint.png index b7c5cea6a78372d9d46a5f262fb1781a88fa4cff..90b2344967656ce2128ad6ff82d7ac0c743b7fba 100644 GIT binary patch delta 84 zcmdnTm^MMekAs;2$2dVEnUR@+fkD+aR|!b5mw5WRvOnbz=hVNStlxr x>MmrcF;OXk;vd$@?2>{duC?Eg; diff --git a/graphics/pokemon/hoopa/unbound/icon.png b/graphics/pokemon/hoopa/unbound/icon.png index ca3bd77644fb3c3a98e1712d97c1b70961206563..4c77ca1e2cc946804dd08876602e745a567f7d81 100644 GIT binary patch delta 448 zcmV;x0YCol1c?NY7zqdi0000?P=%b4dp~~=bW%=J0RR90|NsC0|NsC0|NsC0z)*`r z0004aNklzS#HBH3`8whECiY0-2b*6vPx|&_D9j8tqcT7X2dPT%eMW>0neje zkE4#3&(GL!_^Gvbz|d~#Bbx z9MDt~Rd?A{PY45znlwq|vo3>DMe?t;3SXtuqr@$A>!1TFr^8zZuk*55s%}70l`e!=s?|!dN=FuUrk4l?+jVa`Kb6AXuK|2MJ|Url z^>QX!x>m!%_UT{<_{g*~@RmiT(n5dfFpKyFBvOP!rdh!)BA&`@UYN*I<3V(>&{HvQ zK;5z0Y8nd1#|EdBJ{|C_*4j_tT4pn*8^g<&)1%()^FKa+6Cij7NbutUAdMe#2auB= zcK~VpcmPPu?Mnc;5@ZFCjvy<5^aL3JQU`)e02v7~0;Em^82~a9WCVyz1X(NqWLl~p q2T1VY5g;Fb3yz07fV_O)%!hZs{VPaclLkEi00000@?kE1n&fp7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM?_*Pxg9(J0004WQchCe?#jaqHrXfur(0m4~RFE z7NoI|GSK%D@QxDQ2r6}RkvxN>S~P~Fa&yII6Vx2dp$zw$XG^{mh3!e^{E#o}&Ru9N zo(@NpUR^YyHS?8>CS{?#W|u^~#^`NRVz4zyXpY%#4c@KGj6=M?M*ar~e-)Y@6ad{d zS1h#$gN(3Te}kIMtiUzJQUXB*~3nf!Sbg2hai2 oM!Nu*nvW4M^)EuM(o6aH0{BF5J}9phQ~&?~07*qoM6N<$g0P9_B>(^b diff --git a/graphics/pokemon/jellicent/backf.png b/graphics/pokemon/jellicent/backf.png index 6471d3bacb0148bfa7e456bff33a6e36be0622e5..f6f0b060582a1863caca2cc7eb6bffa942df6ca4 100644 GIT binary patch delta 448 zcmV;x0YCof1c?NY7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004aNklbEpdqQt7j2_?;JbTPC zL<Dw$via{YgeX9!4p0r&~T#P!+*z?E>5fLrz$;8(FDoc*i> zCLO~_r_nh8R=_a96=!bYmf$2~c&)>qiy#DzFr_ZRR0JdB8n6LoBdE$#6)+j0@k1Bh zJHp^n8(@WCoyW?5Lx5AF(FFhy|u@?$x$Qy{wZoJ&{{9Rs#N+8>Mb=tnFvH@B-~ qZO3tEyF`<%{Bl{Eo&D3N|I-i9!8GX)m&)4!0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00E6jL_t(|ob8mcZi6rohP~kD>OiE93^kN3 z1Duryuutrb#0w;r-?nEPjO_xI+BGKyMY%8E{Wv)od(|JRVw^Q6edrrGK2HdFd*V%= z09-#2)X4~r66G1dBqE-L{2kzkrxQ3JYB=r#P3RCo?6)iEe^7}FU1qVDqZ;aq_^9df zInVbUf_h8MRQIwi0ANUfIagGI?w|4x8;~ig4nt{hzC+bwI9AGDAI(E80|`!@mj=q8(s)GcFlDu})ELGJ)NbMuDWSwbykyI5~0000zio9lY4*Rg5a^+E=*2HaV`sMQudifp%J#4& zVgy%1uY}2d(#Gx2v9q2x}vE?_3Xmq89Fu#H$q5Lr# zB4(Ai1kzOLa1G$wrh6f^^K$(P_G9?1LX?Eg}({MRq&<^ZuHKxW9T0g{Zh z2#~P$I0IrJ9NZMRIxXuT2gDP_O%+3+gr8af0000$p`8E#02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009k2L_t(|oYj&sj>8}jML7W+W*QfWJBIV^9&Ad{YTI2ufZD2$Iri#1^jBSA7;A>zA8(>IM4GgCY%>8Je+XRe@?TZ9V zZeMKsmV31iG0PK}qJ62)-WTl$9PB7faog~`R>q!UjcjW~Jpeoaw{xWP1&#m!002ov JPDHLkV1mTbtKt9v diff --git a/graphics/pokemon/jellicent/iconf.png b/graphics/pokemon/jellicent/iconf.png index a6abfa5ce5b425db7a686c8e11cb37bb858bb490..f9caf9f13f12b73915c21475a7ce9a3e5df51c10 100644 GIT binary patch delta 356 zcmV-q0h|8w1Fi#*7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003UNkl@o3b_d0QocHBW$-uL%0P|Js#Epx@Hd3u|*P5UmWiN+UKk1I>R1 zz4yw{gta~sfqbCSx-eR@*%1gk0X~&8TJv7<UR9TJd00maGKMGy(ShgzkN zhyjTMq09`;YMn7Qe-qGJJ5LT{CL(*ZmgNKoOaBP44hzkeI02R%(<}0|L7--|{Ih~r zV)KW%U~}%T{fYf=0f`p^lIy<}klav}y?}5JwgSSP+6qWbX%>*n_Fxc@g**hMqXa~; zkOzjOP=SZ|LLRu)_w9GVN*=iUkL{1OJUqA$Z~qUqf)d%T+6rU<0000v delta 425 zcmV;a0apI51M>rr7-Iwj0001qplF={000McNliru

4iWGaBrl=#)FwhKKMf5QKdBy%6Pi*aO6`33GJ_C zxll?dj=h!g{RX&;N}5_kWM4~2P+34=w)Sw8kIP5stEti(bRZBgV(qUL?q-l1eJOzk zYJgDRUiDf@aQ6r|&5lqT1?ax2fupK^1X`Y`Y7o@}U(ed}Dgn-*#KF8lAS-}Dxet^U z3#%$Y0RXaQ&l{+;C>Av!W4KH(!$_+N2m#;%?zROq!n^|l-5f<)Ps_(NG4)BU5Ndo4 znGrMu0b``Keg^|I^#p-z4&M;~0us{39nK+a8m0j4TLHGNFL37xMIk-4U|3NdNDPd?J=8o^77A)`UjbUI0JLqS z9J*|^H^68G5TR$hI+)O7N(`ZOs;*BAQXtn&dU~3i4(5i6Cfs$prH$l?oB zS%dB2K122_Fa^m&<1J&wcjcz#iuPM!l{t*r3S+Ou z^A58ttIj!le-Pvctl_$D`RbMr4hfYr8{;GHd7KXpCNRF2bb8Gc4WP>F#hoGqaixZ%e5K|sR~hk;qk?oxSZ$Qo17zPc6ny-WgL7RI;v z!|(YkAn#R$aXp_sr(oI-v5w3d5@eR}`*_I!HRJ@6HYEVOzy@dn0Xv~K-70||^aX5z zkN~xr05}5xXH%rs7ggb$$RY>?d%zS^ac`|a0AK*TWH+h=JqU6Ve4)4lwh?Ey8i5HZ zpyVci9cOo11E_-|pZ6k(cl9lx*l=b_FkZ+wfyLJ2wu_EwMD93_>lBA$rLzt6_{?FQ z7zcF-U1bNnbm9g$#v0)Iooo@yI9}8WAOThhMM{|g%gDu&)Ka%2fjn$ku*B+VTeK7y zbhG2G!BTdIe`!t!+ekqZ?o%O!Mo4gNgNleq;FP!|>^SOIPPJin#{ zDsB+o9#NN0(OrY`GjM4Ymx!mqb|eXtYWmMO*&b>iG8XYs%~Yd-ReJx&5zatFi6ITk(Hx Z`~^HPa_UXBDD(gT002ovPDHLkV1k&1nvk#J~u0007U zNkll&H6vyqsS(q?Is#F&4lp#tNIJqivhkgVHbY2i6hYBB{^3aK?Yfy@= z5>gi!Jk=n)I9bS;Y?TsG$=$o;GxR+hwVVMnbgO!Um-oB>|Nq{zt!e-2DITfo^ld(1 z)}9>!N>;u@m6eYGwS0x%5P@zUFtoH2&&dOvJmAD*9}&390i>h#JSn~$0wi4SNhuF# z000i}0XRL7QKk-if#@p&SE;}y-D#w7?;!Bm?|Gw!ytH?K>sv=FJj!>U8nR9SSndGK zDa;?`T8TSrbwbV_gve}c&X{EqLa_rvZbTN) z0bmxbGXNNHp%99N{sQW?w!J_L@UTNwKsOgq@5DDT3S1HzWgIHkl(9}6$Llns9jOlb z-J2CFZ|VS?4}=O-g8LN<;`ql;1PFO0)F$+ol@(E?>x~BheHW+fY!6CrvLLP3EzzICRbO4T5wKDUkZ=Y= zc75TiKy6rVF&kz{+!;69Cba@;Z(Q%yN7wty}ILe9DIAZCunGrKZy z5dohQ_@Fzp{+=Hg5Ox%pWSIcjT_;343V0Jgc;h>I>>>Dt*0xiC@2PJfeDZ_!|L3pH YFFDx__#FZT!~g&Q07*qoM6N<$f{yt(e*gdg diff --git a/graphics/pokemon/remoraid/front.png b/graphics/pokemon/remoraid/front.png deleted file mode 100644 index 8cf4b866415b743d92a6bfc73dab67388a92017e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmV-80>}M{P)KlRZnrKp4l*P8qr+6-%AUff{s*8H75i zfqsGumO8i?l)99Nj}(Vi(6qh`9TY=wPz2jUM~k9^2pvQxCms4-yrd#EcWoEl`X3(1 z{eO90@>~!aXrMpPkj$Scoe!~T&X3G@CYVn0z(U7aY;2ha0Au#5g1Z76M!H;@0o%tk zlW#k27)E-_0kD${IN^X{=F0$iD99>`CERd{p$)^BbK}4e8JF~g_Z05n<~?0+R2cx8 zqH10vTtPbf+^<&x01CC)+a<1tqt-`awMucapZ+QhDu7q0%fC6iB z`{fj5tVVgD+TiXF(S<6D=k@+clfvgO-t#*}1U1tf#na}S#0J6`Ml#b*`#uFxB zz*9usnQB<1E8uT2dP}T(F@O#h{n%VNe&8-dTf29Dd^KISTaBV0qh`hxkNK@AS?dj; zrg`u6^3f~Fc4_jb2H}6LUwR{gYa1f^0I1my5Zvp5{#Rclz>x8&0s?{n0000xF%?J782VggKx`POuIyCKfp)&?gFLFRW4p+Y8wg(kI}0Ogv@#|LsY zSK^`dPMXRHk%6Qp*Fve*n^=+AJwU#l`gV+#HXj$O&i?q#RiQ z3^~7#0QhV|B@&TjoQ&Ja01R{u8acW!4>^(mWIO!!%;J*fsXcslJ~a^y5s}Cfs?j{( z;4^)%rb&8i!Z#yMga88}jq{)TD#N=@INfMbOHFh4nsBcc-$U+BYd0{U2= z0DtHy5A{8yW-Wob)I+bAI8gHJ1KOrpZQtpg9yB$3oDorH?L_#ERt`#Wxr|p0gXhd z!s?+4GzGEwc^5|^4y5xARLd?8*CUAVcxh7>m+^@FRX{%kw57x~fElj+jB;kKXYf`! z)%b|Lu7PyxHhk0k2f!>ZL;K^i*Kn@EIFSc{N?g%ka==lRK2rC6dJ&J6tn#oo8Sixu z7e8sV4V?`Cja*9o7MDfLGT~X$q&Ot<>OFjd1~RDI__D@HOxb{wSDic&#+d($Uz~pd XPQxQs!HCts00000NkvXXu0mjfNEGTs diff --git a/graphics/pokemon/reuniclus/front.png b/graphics/pokemon/reuniclus/front.png deleted file mode 100644 index d189c0bf4002b433052e5954d3e187790c7d7ffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 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 diff --git a/graphics/pokemon/rotom/front.png b/graphics/pokemon/rotom/front.png deleted file mode 100644 index f6141a7097e2c4ca822cc8847810b2def68c1425..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)d~?K>KMPfAkk#;Ns>{J#4lM?-=y8R@5TdEUI&2 zzamFN5diNnF9PIrsUv%4DUkJdUIcg#4D17jI?EGI0_+g(E#zDp$eAT@ZvpdGfVEx; zdl%(>+G(BH(J65K-Rc;itedfOPr;vDax?|(YSVWAfYS?&-hl+r4<03Ba?^({5DTdw zca!QZX69LQl$c;@PDIRSSwhqus)aQ_*GcOa5qCtzSR$wf00000NkvXXu0mjfxr)Ve diff --git a/graphics/pokemon/rotom/frost/front.png b/graphics/pokemon/rotom/frost/front.png deleted file mode 100644 index d94fd9376bb13d38e6bf56b5f1f01ddf15108e82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP) zBCgD&N;U>*tsf>})F3thBp8$W1ZaHId{yIl2H$+ zY@sxUg@B*LIpzC7QXpW8az2bsa_y*}2ND;+R`oNbpHbu*ilu=A5b>_Mf2kpV|B~Vm zFpUQi{!pa=UY`Iw{z;(>09%Fi4Zv30*8_mlZvIP~$N4#e z0&;I@*_yY%_7Z@I5Ln&Vz4c4s0n9*v1u(=2@XtXO37=mHs3D$!1iJY=0`|p?;z;WN ztzy`*GvJ&D*fnejTjR)0d88TkFa`m?({La-N1$;X{A2cjo>IbM0x*>++fAJ!ICKDq zz~$lu8U#fT!cOD=2x~A`9_MmZoH}x#=2cftI z!iky#bWl3+Ne$m1SBLYWvl&p8?kCld(4jsDu-|r9Rdolpmlx{z)tLwR{{u4*u*xOC z);jI-{T+7x7^S}_@w&`)GP$zhh?fWLBY~TA`c;6-c=QIVnePhYY6v;|S>Z!0fBSA7 Z{{X)XEU*JJ2KWE~002ovPDHLkV1nh3FlGP% diff --git a/graphics/pokemon/rotom/heat/front.png b/graphics/pokemon/rotom/heat/front.png deleted file mode 100644 index 59878b8bb889d26c7e471cd6d39b13d1a3ab08b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 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 diff --git a/graphics/pokemon/samurott/front.png b/graphics/pokemon/samurott/front.png deleted file mode 100644 index ceef8bab9da288484d2db4c46e647b0604d711e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 992 zcmV<610Vc}P)-000AP zNklB2SBW`qhE)FRLIR7m?6X&llFoTs{%l=GYy;^4SXY( z#DzSoJV;MDZSf>A!iT@l*aZj>YrBMsOaXdF$-oGb0oHv&Xq&c*y+b93;;W0!-ET>f z^gT*x{h8Zi2Wpm(QZX4M31gn;f}63M1urHi>p$7p#u4aLF^=B(YuEk`;-|2<-Orcpw_lLtF=0QAF z5iJG$723{#OAIkFngwEQB?UOvXZ$%JPBnQYX+EFzj{#XBo|>=tmyjWHg3IJ}AFCbP zFOLBspfDrvkm^Pi1dTATd3cn18SH2J?02@~#qGWqAP1JxEY`}~R4cJ<( zZd@8l67?2`7Wo+fTS=t^paKMeY=5TEw8<7UKO&QVfU2Gkz;JjeXbwOnu5b8u29yxS z7Q>AR5?dsT<)YpQd8)JUgA z^W9asthrscs|<%B!qkKFb&OqgK(YAT?Pi|wisDDBuw`aRH4RES(fkKa-=N_1CyVR= O0000k44ofy`glX(f`7zFr)xX!q+ zpu5;mK|$f(-sT`n0U$U!C(6;$Ys;3sK|x7pi>rYOk%8OWf(oEHah@)YArY-_r`*nC zGURc&-uL#vzyIvz$2eI6rd|kps@a^d^Ua(d{YMttK;U1bQvIgYQm3lHbczLWyn=)PgI>V1p;h2FdlUqv4*az62BfoExX8SDG&4X>FQ zB4e7&=J<#t6gRMB3)tv$a<%#0e{01q(S6)gA%^`yqk__Xp6{Ft+)mZ&9S-HO#FRW$ zSL}CDb+M36_-U!kP;ic6PS~%{9wze|-2`)!|HpK}(3Z2b=f$^m@~2}AkN->j z@$+kR!{KN}<_EpMKYYFYX+?#J{HdQC?a#;lN)2JNxzHUrcu@xo?Y>yZM4b N-qY33Wt~$(69D~0&8PqX diff --git a/graphics/pokemon/sandshrew/front.png b/graphics/pokemon/sandshrew/front.png deleted file mode 100644 index a3a6ea88f65adce03e2650c87627521f1c334c23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fN(P)Px#Fi=cXMVQc_gJKZw-Vn{bv=9&w&9nfpfDq{D$PhSq`1trJc*yA3$bf)=$jHcZ zN*DkD08p}U+W-Io#7RU!R9J=WmBDTUAq+$@jA04n|9`h0gW6O*>^iyhuvVp1Rp(*G zgOk!-cir`mOXNd+&O(Z8P?#sh2u8{LNc;^^fJ&|`BJ8Jz0ix;+XsxQ!Gzdtd*#Sy~ zv^N0R4p#3%Nq9r=r<)H3&>C-G>xp;|fMWv`sBaK(blPwFqXPs4=V*ZH4jACD7HYHy z!DBmcJPwrjC8Qn8fp!4JQWbBZ(Ex3&jZ)yD4gtXMQSN&2QPzl$sAyYWVDBoLCYXB| z>v;IPiUNG_W4K&&H}FF^-7gHEMUVpkJk<4dl9JDwf$sp&fKCJQYGAv_znt9$iYX{# z*vEQJRdxp=e4wXx0FC+~UDkC(%?t?FBd>D?5NZYs(+-9&7Zs@O3A%CGfY~HvEP`2C zeGUfo+vtS`xQjQyvQYPCtKP|l3;05^8Ek!#yrS$aTyY@zcfukR2Yhd~dhuB@2#moh zW^uhITuro1?S&v7LpBdi=YpO&;J)JOWe?)vxj1+|+F U=X<^-%m4rY07*qoM6N<$f_W|kkN^Mx diff --git a/graphics/pokemon/sandslash/front.png b/graphics/pokemon/sandslash/front.png deleted file mode 100644 index bbbf311b5e0ff2f0ea202578bbbd907c45846469..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 792 zcmV+z1LypSP)Px#Fi=cXMVQc_N;wd$gE0^g5R`iWi((kntRPxS0QS`&|NsAsi;LdXw8+TNFfd3` zQc?f_0Q1@1D*yljmPtfGR9J=Wmfd!%AP`1Pz7dpA-v4pW{DG1xvB}N32+P`(<=)H; zgUvL3$9J5J+wT4rf4}J++YFDt@FL(l3t;&DzOxMnnP8rb0skm|RX~A(nFUY^e8m{w z5(vZh7?uTp;X}YY-%$m^yWmnCU4R9%@ce;C5W&Sdnt(A0gLzqBKHqS$4CDbQ)dHAp z8+1cnWI-N)32Fe&&k(ux)VYRt;SO7tSRfe*W(5%*FSdjNv&vB*$2A)XXf|4686>eR zkwMb^d*)}2WyrgL;-dA_l2(2j;{X;8otzI9)5%iVJsbQ69|0Q~&W6VE$RlR2+}7eOjOmVuVcaCEjaft6r+ z$lx-1V*~w04(gDa0M?R~pD*#m)vGw)%mA%wk00|Sr!lST>bxm@V`HnqX&=eyVS`6s z+~7P5te{fOW4;swKfrtwG z69jqELTic`E#KJlTs~~Pg~0EqoTEyx9Zp|{cH3|K>aVe>2~e_3iv-*8_I36F7%x?* zn-r}GMdl?yO$2tlcX4_E!so2KPsPv+)}%qlN_TuQp4Z-bgsYUAAyq+$;eclW=g{|; zRM|twDoCLhbWcP0zOD4Z;)0Za37#J3H_>z;2&Jf?G~NZjPQ$_R@SQ59WKOU)NRSR1 zypVQAI6}xA1Bm>u!8^Uf?cbXMERe5TQ2sS6JO{ly6|nDWlSI)Uz*AoGhKIaOKez9I z&(@T*&$os2(g0cBMmH_hm+L|ZhjoUWYq?(X=iV&Iy)T$P7kEc}62gaq)>7Z`zm0#B WN+g4LY?f;P00004)W2?ujOlg1O!J;eBr!f39a>;)X|%P_W2~-`$6!=nJp47yxk4z9_P2 z8n=4@lHX|+^gFsPL7s7!>fw~1+~%U%qHp$K2)P8u^im&j_p2x>EwH8cEM(;QuZ%}w zIAz>1L{ThTU_vI=&i=eepBO(52P{Ik$VFNOZ9|o}0Qj`aBZNNuG?w6%eRw1uMK0)5 z#^cK_hn2x;Udd=tPl6fp1mhPhmcS7C5*R{=!drk0K!i%L%-Amg7{WmqK+Js!M0KJ{ zKA+F?1%M1W1mqQ|arc~|$O!R>N)RtVu9IBh0WP$p@RDlbs(((Q3vHZ>?|)*V;%T+ z58sM!wyD-Yi>k)5E2XwZS~bwuNV`>ur7CSi^i4um7q}`Y-CBR?$6rp84yu7t>8$_& N002ovPDHLkV1jE3Y)JqB diff --git a/graphics/pokemon/sawsbuck/front.png b/graphics/pokemon/sawsbuck/front.png deleted file mode 100644 index 71aed05e3793945e555329916397fa3bf6f51d38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmV;}0w?{6P)&c&rKEDOgA>7{J}EPHbQ$tNg`T!Qgbvvw#>LTT9|5`q z=XvjJAS93gk0R;F;)1Rs^#NvA6;=3f`vL|zsW-pDJuS1}X-i;M!+ zBc%a=>@CYA!)rM}DHS9dxO<%;1&cEANa^r3P`uJtf48N3rN$~St-#$I?6`=_^{&w% z_e~Dtk;idV&M{W&A z{=Uer8fsv24|ag3>MIHh*lbofM*Be4)j+=40%8wfowPgCz)E&}C~QEMYCy^?lMq_~ zo~2D~jU)4H09uHdw*Hke9;bF-s&}A+qBpbV5Ijcj4z5Axx&r8~a6Y#HO%$dNfU*GZ zQNT^)8&L)14}j%NH9&v>jtvXY*x<8w2&@orM;1U~UIXB}B8QgG&>e{;Iv;C^+m3ZN zMPM$Df8yMB?wZ5eoeT2;(?BZBjTOM$e7e=iW4rR7@Nd9Q_rC#U%oa4Y%en~w0000< KMNUMnLSTYa@<`|a diff --git a/graphics/pokemon/scatterbug/front.png b/graphics/pokemon/scatterbug/front.png deleted file mode 100644 index 0a8f680cac85b8b56d3e2af68e6ee87f17abb11b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWU6ciKyc|U&q*s)`W zf`URsKtM%BMSzFKg98;30s;_mpaKY3EIaWf0|TSEr;B5VN9Wr~8~s`w1lrO&rM&m< zWj}B8cRbm*p5-bthy17F!?|X;+s{v4!tm{fNouB5<}2L> z?sdYkoI(+d)2AMr#B#^~b7uA#PtO_WS1zgIW(bQ|*v4?dN!q>9d+z7;pP7p%BrNKi Relrggn4YeFF6*2UngCbqw7~!X diff --git a/graphics/pokemon/sceptile/front.png b/graphics/pokemon/sceptile/front.png deleted file mode 100644 index f49aef7653b9e032b84a877c288dd317a5b49ceb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 zcmV;Z16TZsP)A{5XhJa=-@!WARy>SIB-}fD1b0Xs7M%KC;$KeQpwrn0009s zNklvkEn-k=^#TVh zG#mil5BT!}0OtJ}PLv;#eqeq&2pllyP@F*A3pnf`x?T*F5Qnp$H$VChVPN{RJFtg< zm;q%`FEEQGr3=IkV5Q4-p>;G1Y7_lM1u!zmrhkjW&4d9VXm9bxn zs~)c)d6O~5A2RHfx!;aaijQDQekF<)dB#O61NdM043U#S&=N}mIkCSZ2)LQYcgKotKCUW zC?vxS21CD%j?6<&103bYUfB2^JQX6C%6Y5J4udeIGTHxvnZl;EXtK&DC;bm{H?xk5>JmKnyD>^(k@%Ytplgo2n2oVJ+rv{)^RcSSt$G#9!i13&-03BD= z$44!Msdf{Yj+C}Uif-IrjYBPm5Q(~oP~pC~sH#UK#!Eei5KUWBnTZy7+y^j(npl%k zHy2cStMT8p-s>g>$wxGGMbrSxwbp9t_|3@Yc|>WBImXLsr3Ih?%#x;(Jc2T(36YEBas~B-&`$NbGQv#oSo!O^)k$+PIrR%*}-C znVo90n)&g6{}p|V%vs^}|NIod3myysBq@??5Wu^kTVpqg=KcrApGNA9kV|R+0000< KMNUMnLSTYc#jE`Q diff --git a/graphics/pokemon/scizor/front.png b/graphics/pokemon/scizor/front.png deleted file mode 100644 index f872c488b4e721442038d8c373acba6473f9a990..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 958 zcmV;v13~F*3pURa)9D{#kJoiZnrOC7>AlOA&yo@>f`y0hvyWy(F?$nj@bGa&40cXGc zWm1;itxm{u`~I$26?cqtb(#eoy9nXBCC*&rG!qvAW;p~9bA*)*0=v7h8E6{g0PNF3l)#?n+5$xfKw`r2-r5qPX*er={N=5lXldrJ^W+fbXxaBY$!e@}R9<6$PF+dx>iBA83Yn zO-=#)JfxgWADOnC4FIL21zhyiwBl?AuX|_sO6?OYQ=YDKGFzF>JA@M`xd#x0X|>C@ z+W`ID61Itg=FZ7%o$scP5hld4l{l6!DuJsiU%$nx3R_1H<%_5)zFJpn^f@Nb;3n9k zkxu4ny^EI?SPtxwfv33XRelQ_3TXgDRM&w{c^6}Vo&XVU64ef;b^nK*@l#(lqkT8H zP0wN&WnCcTLo4eBpkBtD#eS|d5)%th4;a;hsqvWjAe-Oc?;>V#XB*T?5qcPDmyeRl-J`%?i+ gv|qR1v;RlyU-S0Q^>)7mMz$mvBU~`QX{3kmf(9FH$+#- zDxOjb&ECB1#qD96f!qr9SJ>#5djJ1>8U`U$MNb5M@dSXO z@dVMb_Eldrkm~PiLAwp?b@w^weUC@`095lEt?@n$De(1P6NvU|UROEa1K93paQVX? z4Sxvmi+BFj;!U{{_Cf&L8&t(#Q8^LJscDY@z6CQX1=vg4Bha070eEQ(W>M0j5e&e0 zN&);DUqE#R1LN$wuoO5)Q;;z|g>nEP1>o1ko9Su)$7cB)3Yc$iKFkdN6)Oj((7Ac{ zVFLZ1_`Do2uirg?YmYjVmzy|Th?~XIuTuB|po!1d+R|MEnB@Sz`9m45^=aRCzAz_2 zD$^6{gSRtzP&^`JqOVVUa4K1*T?CZ2UOO>-o&nD`Vpo}q3$E7~yxLi?hiN@~CQg`; z_gAEmIf!L1Wv8fCL-D?qTf;#rcIjn+($vJV?|T_w$$yINW{MYF6RH8dVcvogX8>lQ zxb+Qq=z!~KE!fRe^Fpz7``&7sxpevKbM$i#Aku=?=G%-C`xDhw{M`^((S-QB{xC$q zZ3=eX-+4q6A;b&_OV@iu2#+Zk!`u)Dp%8z{kIhL19mx}XH3u-f+z^3OATahq-n@bi zg)@=@Igd@LV8e+y40xmT}W;xUt_$M_Z z>>#oOs?x$zTM`yK7ByUB9FB&Q^qgfO0T~qH)j!M_U-srN|NV^e@c{IA%wj{09W||=EwTARU!2td9;ZQ5GK_qIYep&;p2}5;2=ziwVvq7f0gtr;q*5T@Q|cE7Wm`+ zlJRlzDq-^OA>?p@@OFM&ysfZ+Z9@#uEgu3&*=i`QC}N10+^(JU`y cz~dMH2StoBG8xEOAOHXW07*qoM6N<$f~v%}5&!@I diff --git a/graphics/pokemon/scrafty/front.png b/graphics/pokemon/scrafty/front.png deleted file mode 100644 index 642dcb9665196eb2f02473c5d5329db9fa3a39d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 719 zcmV;=0xj00009 za7bBm000ie000ie0hKEb8vp|&e}K%{Dg-QH za{qxjH3@hU`qZ%yq>PzdF3`0@OVcF1~Ol z`iz7$;xZ#J^q51Y$01`3yC{=YnxqI|km)^}-cMYKzOBW2x>&ms1uQ9*)LLVJD=VoM zpl}$e3_FI*RlX&cSBOO?CZ19$W6!;2AOS{{8eRD7LBuH0;Y zl~TVjrGC@^Q_8d=R0XJ7^HO)CQbI=CjmmOO z*$1M90!_8n0Q1YLscry}SVTDwxD8GbVA#KV0pKdQM*z3~8UQhIQQ&$UOrDLvD42|t zJH&vCGXTa7H+VpSFbqGQ{NND*Xr#4{!*`C3(gQ%RVsuc1F2GNc8Riqh6VM!gEFhv} zX7UN?CT5?sw*dPU%Wy>SqpB58O(*y|u#zS2)A*!r%`_fCm(|K*>fsUIcfF>k-4qAj z0N~w}a%6{93V`=H7piy|bjcaBweBbcDDkW{m#M_M)5&`!gjBv=l)-e2VGEl$%-#eX=@aVMLi#O2S-~{~ stjs>^D;7Px#Fi=cXMF6nqKv)>K;BXKS5QunC_~_7x$Z+7$s92at(CFy+`1qi($Y^MA=-9B} z(5L_a0MSfzNB{r=bV)=(R9J=0mf@D8APhzgQ9$JM{U3MpCD2hT6vsVh*Xa+b+-nj7 zooV{dFM7&5e#p}!0l9hkrvmU70vaytm4JwxA2g5`{%8=|`FWmi3hMlVFT;Eh%)to3 zo#3N<4PfD50y6xzAQS=k-qpaS8&=NbUr;*kPy zHE@iy6O1hYc5OA_dh>%VsC*HqL#HMr0xA$2A4YR{my=t0sza`O z<68i`uS|eyPCtgO;FFJN9ur6?;9s2-4gxEHGH-;jn2rD2Ao%13&v_p;F*UL{31}td zb53dhN@|yZ+)hB)RP4Oq+m_CPRtP@=@YpxtQ`!sqA?zXmUistN^g?*gR2=a`kdL!` zyPfM%r<*?K!k-1MyCKRHE&e56PyLR7O7L3$3xRjNEu}Lo`GV)Ozz&GmJ67`h;iIE1|O+&Dq3;${9Jd+Y^ o-}vtJSTNB;{x1j~^1rzL0Hrk^j!6fYuK)l507*qoM6N<$f(2Ajvj6}9 diff --git a/graphics/pokemon/seadra/front.png b/graphics/pokemon/seadra/front.png deleted file mode 100644 index c782ae3e151642170b4546469722a45c756e14e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)Px#Fi=cXMVQc_YJ;3gYJ;rR?hp_VgRISaVj%zjtoZo&-o;WdIADON$N&HU00000 z000000M39rSpWb5-AP12R9J=Wmf4QOAPfMpaZLFCA6_3ENxE%-Jgl^;RW)jx8EiwK zA$;SX2jDXt;v)gXXaYpn)awi{0>r9`k*4{mnDTa=;=KUuSuF9fWU*<`To<76+lH#3 z;O`5(j;E-B@rENYR{?)Eoq5MM#ku0?b1^2c8Em+WPlXr!h7Y8quAtrF65??D zjz=k4`Hjv3t0Ud>D$oRw_AZdoEk^i28_Dpv9}++SKul?f4`C-=0aUu@0_kNQ~#1;3az^&ts&2F`jw!>MaW~@Jn0;_UL-z5=sNsR%S2a82OqJ3h3)zK2Xjo zc#CJImx@#%2K$~;PT6_X0880OjbCV^bnW{uoLB|MmdG{U&~B(abLQOG1O9br+f;{&u zW9jX1xL>xlVFP7-$<08QA9&E<*$V%1H;v7t8hrX!|0VP_Ja?{^0Pu5h)zJ1OTq^?l z#)L~L95%+K6l53ClL28h1*iuCE((;Z5?B@ZiL}8J0XBZNi8TXbm!`2b4;L3wfgd~! teJfslmPx#Fi=cXMVQc_dxML;z0LOa|58#~5D*am-o3>^DU>l7=5s;zlw#iA=2}`}q&Y$V z#m)A6TB6Pd$p8QX@kvBMR9J=Wmg#b90FeO_mmNK6E63 zy)1w6Uxah+cY5#rPYKS|tFr#*fIwjk0>mr9efA{)W<*V31US3GCxTZ*Bmj(n%n$d3 z7z%*^gN3617T}dYfQud=%E{vC3Lv>A5&Hy09|52PTnf^p5IO+qffInx14chBpe3*# z^xXoK;N}3bQj6e27Zvc;Hx@A^uspdInc(!mMb89Adk9$bOjuW_1a9TNf6_0} zX#y16N`<80P9!Bf07wd=Uy;slj9`G}!TSBa0vstNG`%|x7f?M=9`Zc^uKGpQlz5PV zb(?uu8Gz8}y`KS)%ccMbjtht8fqVfn!58@rU^53+`D7j#S^(bPSUAsh5Nw-~(6EpR1} zCkd>GbbZp((|H#_ewqw~_dPptHG-m3wD3}s*wZ`KD(of}A>lnf7I z2e1dikivPMdV0%4ET8N~R;LQc50n8=$J9nrMi^-olzX9dFmFU`0b+rRho<8Lj{$lY zBup8QpJ7n{m;jWpvt86E2|#UKt^!<#(FO1p89;Aa%AwOw9ncSHRuCHiN(U4n+GzPl z`MT<Abs!kbTDrT;99s=uO(;@D)-bs_W&R}5zhC}@yqfk zGvq!4WX;mult1_YF-&cDfo2dV&6ha1Q^#=>fH1&Jxh3vJe@8e(M}z{%|ML+Z;yit~ zWoSXgn(Yx`=eB_^&7TQ9PBw`L+YwW|w#pPeB{!ZGM;3Qwze3~gON>iE2mlaK-Zh5j!l@ej(}B>GxqyZitE002ov JPDHLkV1kXffdK#j diff --git a/graphics/pokemon/sealeo/front.png b/graphics/pokemon/sealeo/front.png deleted file mode 100644 index 87d8fdb2fc3d391cfb4245eefd337591b21d5eeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 717 zcmV;;0y6!HP)yij`m^>f(@0@enKJyZXb{2TyO=95fxqUKpyk~6eMm9*en0jA*|EF)A3@6?g zb{PBi%f(wm zLdOgqR{JA#xg$oH{?+jufsU!ytGrILosRx60(FUtLB#=)G@zONssvHAh=G|5vP_yp z1IS)nC5lpFMr2A!mB^6WjSmcn5+GKuuo?-l$O6^wI>0RE2~f?~E71zLPKbPc1qA*q z%_yv13M}F|NQgkQ00fCaz<`>MKt6%vgT!FLBJN{|SOk8jEg&$j%}bug<7Er;Fz&I? z0(a+0aC1!c^%l6gmfYox9fG>nLQ4Uu#_C~mNUD}k;0bhSuNHjtCM$^ZjH7n@z7UnjLtRQB+5r{aeq^K|-s#Y9iRR8VbG!L?O8T4oTzOdp7e z>T)JpiJGJoC*?AKP?SBjL2tMQmZ%&=&wvY00000NkvXXu0mjf0F_MZ diff --git a/graphics/pokemon/seedot/front.png b/graphics/pokemon/seedot/front.png deleted file mode 100644 index 2ffd8d6668c8f53b136031e66210d39e0e55c698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP)Px#Fi=cXMVQc_Qc_BLb7}wp0IaO6)z#H8F)4#$TD`1;tdw)!y_Em%y;3=@+qAeAV_q`9}AB7c*4gRbIy@A4bj?9R>O`0+;v@9OMt^~K=G5$R)*IQ zjaxlnbs7NWS-|MQ*+fkF87sqOhK`vMIR?_| zE%b=<76^}WC8||)spd$YuQi@;y_DX;+9H)r@pTgf*aW&@C$%z@PY{a?7Q51i;QRMT zrP$eBbOT8h2pp3{P5CwrCeJK&fK9*Pyw_ r9)ju?{K_z#{70~##{>S&n}3lXNj(iUu9wwK00000NkvXXu0mjfEfBy+ diff --git a/graphics/pokemon/seel/front.png b/graphics/pokemon/seel/front.png deleted file mode 100644 index d2cc2bc3148af8a7517bd4162fced70776194900..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 622 zcmV-!0+IcRP)Px#Fi=cXMVQc_K~jU1oV4cV_SMbq5D*af`1mQTq-t6aw3I>i=Dmn8Akc7F_^7DJ zuz&yn0Hp{^3jhEC>`6pHR9J=Wmg|y(APj|@gRuzp{a<&JaMS9xU}yHvHqLacdcK?p z5^lF|eB+OUB*s+$l8oRaFo*!$Bq0cLIfh(V(#a5$tIp3j~vA!bXl>0;=ZO z0r%?B08_SOHT43rUPe;nU}pO#us#5#krN$5^?FIulZ;6hz#dQKa?;BsP0xJ>43Hmf z0N3k37g0{8GKHx-{WhTEaN#?uMg}MFN&b%rbv|ALpv~t?gpK?P06Tr171z>V037s# zH5~O0BNpgHKLQ|kAjq09P(xi!wgv_WqzlJU-(3R~0493U_X4Du={ic<$#(i)fGvG_ zB{#%`AwX)QwG(hj-wUAH4-(071N4kS8^GFGxXXatzgaWDjB36(c@Kboy88Cz;4Gv$ zj{)dy0dU2x0PYze9b`&FAT`iS187T!Ulw0Z?+P&Mnm%;|I@>8({)F%$gvEJbEK88X zqX2ZTL}Z(dLvv~~R`nrxW|5~bLV5>N4jlFeZNB;dgccwp?DfA{unm9!W(qMTCwi^` zHblt}I%%-PscCbdd8WrB`l$K@VB1}6JkW~{%>sz)8rMgRWB_B!dzYVrc-f)lxpjT4 z5^`qx?LDTmH}H%ofUuWW$lFhnrG_EMMbUpjR{#J207*qo IM6N<$f^GB<^#A|> diff --git a/graphics/pokemon/seismitoad/front.png b/graphics/pokemon/seismitoad/front.png deleted file mode 100644 index e87b7a4a047529ab2453d964cde3d01911a28263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 977 zcmV;?11|iDP)?f>R-GOEZ8tk}?vvRfCFHgcNzZ zC=NGQg1qU?CwsmDtoBRn9`>}~WuJHK#&!rjaM)LhBIo(}{XY}O`Ty*ukk{%P0~LUf z^5!>yZFQ{mk3#Pce_0Q_Iu5jcu188eS*zdZLDy#tsI@L`NNoW5^DOjAi#t3V=bP_Se8}?=8gv>kK5PVwGv#`(Y7}S(hHs$9>gb0Y3cw z*(@%{B``*{D=y+ci0Jap?pO-SKXE&5tpLzz@z1-z1Od?d>gQ%VHf9XapZ|WQoMLoT z_GBZ*_AF=M@(azMk#}b6-K#qoJbh?`Q1ZLVy$(De*_w+@)qOx0(4*UGm{L--Bbiiy z9PMP32%*$4^oay?j~3NXHub2xC3a9;7>Yx95(3>YrXo6BFWL%WeIb9M(oDWsrV+uR zVA~0$EcK~hn;P0+I-#}u(pHR_yF}R);2M+40yqj@8rH+f6jj%O6J>$Hk*2BGGv^Py z8sMAsw-;PPI8cvu&J|>Rx;U6uz+M2r+EBm5+>G%qg3&?QtCmTfU{C_808$F{{-a6J z$Jk7rKrI2yKzxByGUPfp0)2pvQ~4i>P7Wcyf;s17`4Afxv(VM%p=b}+gBu@(60x1B`=Fs*MhtZbl zFah00Nb_Xk6+7uA_9IN%vG;>@V2to1x44U#bK4uCUlN55yIN`2I@$_v@oU2RpEUvN zXeaEOY*xOD?`Z`T#(;@Lfutrw#3s<<9FUAfrv7=@PaC@9Uiox!03CM?0LPQ+2_c%m zbT%_-Rz3S@OCtl^7Fj*-Xr+i2&Amlb{nkRo4ZzLkXlQlIw^BcCRw>&4qV`J*#jX%# zLraS(^7F*`wjrJyUkCUA^7I;j<9+p?@}2e{SIWh7?^Rr*00000NkvXXu0mjfGHu4Z diff --git a/graphics/pokemon/sentret/front.png b/graphics/pokemon/sentret/front.png deleted file mode 100644 index bdc69648941c47262c1557b30932bea69cb23499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)Px#Fi=cXMVQc_N--cg2moS1F%S?Cv>-v=K}w5SLCvIty@Oi+|No?ON;w!1&CSIC z000000OEgp(EtDe(@8`@R9J<@mdlpJAP5D6V9+-G|Gztck4&H5#JiYb106a5wEHM!#7=~me00!a7Ny-TkP)ePXoO1$dFfK(3lFy7Rg3#GPInNUj zED#nrnR^MK;1HQ9V0m-Pm|^yWSXN*5aU0009K zNkl7{*5^<`x>g)Gibf4?RmLd+TWn{Q_@fTM(C$NplIdkYxW9PwNt- zmpv#9LXV4h=uue){0993r3Yb&9v0>^^qn!;ipkPj>3a~J=Qq#$gyMk^w6|*FY;~&>b|O56f{*u0)nf|A+>`{x%W{cmP~j7XS^yJZ*Id&bZK6 z1L$PkqAT!A02k8idDgDOiU0{A%b+>nvu_1mq(Mw{iRj=kR>&xzgHI9m(K$i`wkbr! z{i3a6gc3-5g#ZpAu8dJlu>%6S*ttv^q*6t8)w|;MLjlYD1`3LR`i-l%E>PcCrq7n-Vo3u@=%`aq0oS(uI*$7_%W5E?@ih&EN=@m; zS3vUxP9LCVH6{xLmNYNH&m>SY*%*faCsyNNLC6IcTR9M10SyG$7#FTBv!wto{R452 z!Is#-lmM1-ZP^mg4xtQI$7%TsB$}q+O8pvIH*EgegGnH1HA@L)+La_Re c%Ky541IU2G9_W+4#Q*>R07*qoM6N<$f({{!(*OVf diff --git a/graphics/pokemon/servine/front.png b/graphics/pokemon/servine/front.png deleted file mode 100644 index ab5a141b957c5a46f590c2132e9ca5299ed00b00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)s0005K zNklxII_lY{gLvD zY!J9klQ&3p%{k<)GR}6pp4mP>xcWclmt_5lqOT|w9|7zUK%I%MF}VaN3t+xo3h_V^ z)^J*m00=-0@Us+vs~Xye3KAYDuU{U}vcPQX{=9C{E;(R8_xgcw=(smAKcK>~3+hD<;jYs4}E$}zEWF}(%x9zZI=7?``* zd1Lo`thWTzkf_r8*e$8*`-ie=5Z5%q`K2;`;vwh;s>XjJJTc^(gH;aA&|vLh?maCa zaR>Y8u%Q{~{Y|*13G;)U>VOzN)kbC_f~pllzw_zeP54A~PwV%-ow9bCJ+=5Il~4B? z8^I@l9+H1Y0F)v&Kj^@vh_^c}4j4m(J$`9@0AVM4iM7Yh)6I{0001RSdd^C7^pxvpm5;OP)PXr_)u7I7C#rq0008c zNklBjE6aZkk8fv^LmTBlHmDC*ysm~+_b_W$1Lg`}gLCF|{y0#dc3NqN1 z+g#gpRsdTM@!LYcTfq`i>fp+NU$fWllS7R}bk!33)8DKt+hS^;?gC-O`7m-tIiOMr*AJDDbw zff@HHfcpoq9dMA-GGHuA2z*#4wMx>{!RktZ%K@rrY{iplXqw_M@H+@2-7?tN?34BQ zwL$Gvbmj*8Y(MEudyRoI`{8;#Zer2p{SfvnZnX3l0CZ~&$LkX&-}Y>THb28Lns91FlP8PMV)4J-jpGF&=sHpP%lP%g6~1UR^opg!wDjv*8j&4+I#sE0lP3_Vs-@I(N$9nO5-#z26I31DD~CO*}}{Vo)Vv0-`$ zE;y$7WCtCE`wp}T06`EgL_K*7@|RtQcgY8w@#IE;EyvlDaU5SUlfa1+BtRxf7WyNP z>%}wzEd9Gs`NJw{E`e$@IjZVwcvd2ocva)9(M&hP4uEGir0BCaDIy&qyO^GWswYdN zOqE(ioP#cU2~e>RRAH-AwbSW diff --git a/graphics/pokemon/sewaddle/front.png b/graphics/pokemon/sewaddle/front.png deleted file mode 100644 index 7f01fe90c945c5b2670552c6b4f1af1b97d1637f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmV<80UiE{P)9@*_}DP``1nXjNZ^17kWd)N$k6zxNB{r;nu17H0004P zNkl2zX0RA ztk%VZ!KB7rl70fegm0Pej@ihQbb5Y$pQpV)gdFuxMV$jc0M3ccXAnVX8^WNEh=m9w zL=gZt0s^E2l&J?pua8gHTmcnX0D=BsYys+MPtqHX9jF$d5T|kK647ljZBGi5)K`rW zgPzdFF!0qlQ}-ib=)vGBNtIHWF#HQKNRk8rRo4S9902MNC;JGM^|%h8Fs=N|S2Lk6 z*{I%DcPoV@Lygae;|gf5X1HdW1O~(A^g92@{2BD60l3Zcw-ghkE&&(YnZKUBFB2hk z1FF@Y&UcGNSq9nxgm_W+;pO?f+y$Y2&rwf0Wm)dlfoV@x#OeC`Q6I1;T;5(TKQG*t z5h1n9r=P87o8nu6on~3-peR{fKo}i*1FQx!HFd!fn6Z3bb$tSmlkmL4%Q1~aDT>h z@B`!tT2J!U80ereO9#D6FKNe6^g|ZtT@2`aNpWKLK(G^({b8t4jy%5S9xN7+Np@0NNls9s!p+fb>uY#Cih-XmgSd z+8&HR{BJ-1XcbYnSy=hgu> zR64y|poT@=!%pYvTuw2NdJ`}g*EEJ3C|z0{hEJlP5MIa@V(<73(#7pjsD7C^qjl*g z7vktR?w*0KLN5~%IGID>V>mgEK_x-q?Fn01&mags#~8$%D_w}Aunfqna`lCP37>FB zEfMaHuz#p<2)Iiyn(!_W-j>+8y!$2f9s))Qo^swr&K))IE{@J(4e%;kAuT42hdIh0 zj{8%^--|_-Wow+M&w1Wwh*&!Gw>ZsIZBWYjedVlJ=YAzugyA?>RRdVE9{tRc;?M0C z>DPeHd9<3oFN%xhEfJfVPFW<$RZ)aD%kQ*7xLN1HO?|UV4DCoG6DA5 d0IKkTFlfKp2KUT}YU0*_F9uyiIJy(Ey z^7;Sl9sB|K)t#|Z_K8>C(N9Pf&rw$FdW0y%%K%EG>JvSl-PBjN(+<1oeo3XZCVt9R z4Q#-$+0Z4n0-}NKSSq%H^_Hq|vw@(ci!3`*$2#q#9%e=1!XfRp25Jpr`QHW3c|Zdi zihFFTSQu_#U+mag0ENvuW{CnKYYuR}`DRffKQn>u=7B|P5i|P+fM;A0 son0}JkwbA1uLdA8bA{{*^T`K(08Yk}7^7U}rT_o{07*qoM6N<$f*$nQOaK4? diff --git a/graphics/pokemon/shaymin/sky/front.png b/graphics/pokemon/shaymin/sky/front.png deleted file mode 100644 index 190c4ebf69b367f2dc7014729ec18d6942452580..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 zcmV;@0xkWCP)Kl(BBpP!xtQQJkp*Nkr(Fq@v8ph0Yan zVvnK3u?L1rP))^v1afmcb*Sv*Or5Ay^%Zym-l6Hp6jw}4D9^yT*G`(^YbsX684^qX zcmMzR_}Gm7ufMJb5AOj=o#s6NUlZk?mUzp%sZ_R(HRsy|@TLJoSTJB^)7;-{-=YOsnHU<3qTK1)Df#&8DV z*9$lmZ0qVu15~mZM`CN9B-h{bfEth$PNkkCi)D^DBE1LLS2~r*S=fO?k-mH0006f zNkl2Hv=CyNNn-Yk=J&x6r%ybtMbJtEtfFkk-EEdF@uU zPl67nv|4pGX+)>xTYl&1l>=qK*CXp%MxByRZNQ0U*O`twtNFVN>1(3=LQKnJm}wO!-70JzqI0>qKVnpTbD@ep5)@rf1@plHb_@t9&X z2&EMK0qnQv1v$VcOk}=L4(x0Esb|smK5!VN?b_Ex0kJmkJ{#2uIq0 zqjaibV`iEnprjy<4G?F@PByHh6zE#Tv3v$>~`%;uGV z16K�H5`%0iq@dY~bsdI zbqV-ucUQNGsULv)@Gw*L1G1iG`v6?V_5siO2mJ=Si1p~WGsKAi0000A9*ad00009 za7bBm000ie000ie0hKEb8vpKlfQ1;Fc61bEnUk{=p0eBow!}(qaHvM zy=9310NphZMY^>>8h8v)q;Jr@gIw?dx+FvAK0t>&O^=c-G(5|my5&56pYL}^p9h2I z`d`IPj&OiOMwEau=Cohn9J$eb_yx-vE?5ueDfd_!^J?#SG6QZjVt`^F*T6ABA_mAW zX@8SukSX180Gbi&(kIB416_nKfJ3Uw2CG7l1dv`}4W2QsPKm(rGfh38^F2dEh?i~r z%yY=7kpIhJ8f2U-m#vVu9N6@!Amvtww;X~o(`mdI;*MFltOjV}P~&UoZq9GbuAXj*YmTgQXJ5bc2@&Wk=Qcn1JZ^ar3Z))9 z=LDFUAF&YONky{A#TvInI%jM}|6Q^GSP1AF0bgoW8pz{LAXht){slTgS5&|^G)33I zh8gSczJuO17!l#66Q0OIB)-8;A-|`>=la6~8ncPDQVibwA;QE~zXn2H zJmTSDzY*CY68B7uWy* diff --git a/graphics/pokemon/shellder/front.png b/graphics/pokemon/shellder/front.png deleted file mode 100644 index 4c3e7f5228d021233186feb939e525ee0ea7a032..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP)V1R&-`1tsE5HP@CXy~Z00000000000000008Ez?j0P5`M> zfG?L>9!++YE=45%!c)xWZ)RkB-X)j(Rp3}E0O0Ib+O^KW z$9gsdn7b4K6H-b58Ho180VEg&caj+pQ*;8+$?-UCcU@P+rjHDSE$osFgrV$3rXNeh z%vMxl^R6@xHYGL?hOJKAItT(3^S&);0c3FBVM`2M`-qz+AS#5g$76bE3z`b&M8o5q zJ$nN`nCGv=QGyL<0}1wD^uiEX#1rN=(Dl*-@K#`mqHd4qGf)tXv`!+-8WzAwQwCD4 z3(P^;XL{bqj7SSzDA5Rn-LI0Sqk+^A9G_d&Y5YN?H4W5o5Lky+W1!V)L!$-p20mDT zAH(ftyIm3iG#<=VKLL!^`;r034d4ik%g=HTkYff;z*{r0%N3Gv1J@;Ihl0E(X)R!K zWq>c5@H&nk_6)o`Tcb;z6b9fRSzQnkQ1t|y0Hp_@s*zAhhXSu8-7C}sM7{t+L{}J`tYwI^ zbg4wh%2v~fsUkf9s&ap2)m;XImwyabA*{c20uQz}B-#!XTHQTOgR>k|| zqM<>lZsUNA02)n7&us(fFo50_*tThpHUJEU&^G}B;0A5x_e>KAxXf=4)gG6IGq{W~ zJ*MBnfi+U#QGq){|7^&Zf3NzcfG1$S{+}B9mQMF(>ZGO#st42fIC!`|0<5_U9#vp$ z=#x+-P!-dCHGnh}F`t8blc=w9cE~8_TtsfrnW$dMUk)><5PZ1^#*?I+ahM`gXqLSv zK|m*II75L&9QnCWf_nfFzNyp^pzq8>4^t_2Q2;R4poM|2qKMx>7e{x{U>EH{f(BFy z1;TyA00l&WB2F}TMlMQ$k9|Z25E#H#f$ucT76wppWRc6&QY6_D1q_@o8&>hM($x)DL$Yuu`^$UF!e<002ovPDHLkV1lp`-@pI> diff --git a/graphics/pokemon/shellos/front.png b/graphics/pokemon/shellos/front.png deleted file mode 100644 index 0d1be14f6a0774f045f5b6fae2378b87b502aefc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmV;`0V@89P)=6=#bqmDc$UnGao|; zE!kYX7I9S^oD}3fgD=!E?`Dzy*ZbxD9~U^rw)vmg5gqIKeiMA__dySWrm%r_5OiI- zrR@iSf9}#PZ6AU&G37AkSEoH=p zjSEVY<+6wxqmTluuU~U1hCl+YpK>WhEZC3$MlTBqPJA$`2fM~B3V;?I65!pK&j-A5 zFCw-;@HInlLR=>{YykDgI0BPZ9WbsPu>ms_a(q_{a0l~|uoousku_{Pp|*Rtt%|C;KI|00000 LNkvXXu0mjfMV-V8 diff --git a/graphics/pokemon/shelmet/front.png b/graphics/pokemon/shelmet/front.png deleted file mode 100644 index e881e714955f296daaba99a8a8186451e02b3c35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)KkTFgIK@^6^unktuq6c7LV`tEHdt7Iz zXjt~eP}q@4XiZ2s0#^_zD6n7)3rlMoaT8-=OJno~9>6!VV6wZz9zgxu|C{f;%XvC@lu8z@e!Lj5X6h<&4oEfYKa5T2iozOUNnb ztjd^e0Hp7X#^d9Fx!598&nzKjpD_mll)F_s4=9CTsJKGnq>3}rKsizh;f#jr1NB;v z1#aRQD*8SHK)^YNEYOY@R!dIihk6DG@N&Q-u?A7(Ukuf%q6?4)tav#ilPH?26#zm6 z(s$UM#>>S+gbLL|=w*Rvtb)Xw>LG+I(0+;#c)smji!~5t4%sX#$z7-)gO>yJo^gEt z@p&l{pqT^ktMT&a{WTQOH3 z(jV~r2BNNO?T7t*Pb{CU?ZyF$;QEFg!lvI6-A0X`wFGcGLfaBxUSNDvSZn9$L1;=~CB1%)3MIvNT*4$MgS@#9B;hk=F$ z2my5fL1&&9$R^GLkH}&M2EM}}%y>M1MGDX|e@_?35Rc<;FK_faY#_jvAg-LIm&ZQi zgJ@^#!p`W69V?GWS~Wc~*Qjm1uy%#_qCUs0J%^5QAGl?HSTCvT@uuzOuD|x*nX5Zf z=5+!0gFEw;H#MriFVMD8;1HO=Z^J8K_+d*26SKv)Xvd1Z%xjG`rt|NXT&r+{dC@wT z_tO-AF>Y=DBmO{lf&3fBlllhVAFwU&uRhSpB)wTcaaR$uD$5eB?u03p>$O66Pf`r_ zzr*@0%ws0Q;n{z#GVc03bBeIoq1buP^)ImOEo3~|1#c<2+^1t z+xA}Ic1@u9L5;~-pHAL9*5n&&>K1Thon`W$)S|r+S9}lTS1NtERdV6h#-_+5?u}xp znMLLbPHT=>>G{TF?k!;`3KP-J`X`=jyEgX0P7Ss%zO!>?gz6dm-lx80xpsA$`hsV5 o)-Ovk_urboL1J>UY?k0B=IHE%9^PP=37~NIboFyt=akR{0O!=nL;wH) diff --git a/graphics/pokemon/shiftry/front.png b/graphics/pokemon/shiftry/front.png deleted file mode 100644 index 15e263cb9436c689f44568b896e2203dbea3c9ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 zcmV;H18Mw;P)l^;DB&wfLK5<7x&2|00009 za7bBm000ie000ie0hKEb8vpKlfP@*KorMiB4@4@8yD;jJqV(ki#-_9 zL5fdyoOr3xp`}Bh!CWP=EhA6rzOOL!M7B$_J8S}6xXuy z1G<(zI3e!)(R<(bc#@?5@i&op;B79HXX07nr}-=`k8`PI6%6^rfL@p^MLHS{f>gmp9zmcVA({A zrKr2=dTo~kak#8I-FOYT{l%-5?|_%OQ;fIKYIXKcr+}k7WS&@TyYBgEI@HO5V>o1< zXuHP%XLtVqwbb~CMQzG;*F8BEzz=?Uj+JL@H1DzMd2p#mdSgP4m}3tZi`#@yD)(5A z5XM+8#Q_$dl_XV|?-O>NV!0gknLmo_(!#sf{&?^LGD;C;m+@J0BR{R&IQ^@^CJ2~} z#!c|Z;;TwNcT8WnY_&XZ3MAF^noh(3CaXZ z%5@lRv&Skh|7OHs4VyatSoO}gqPn!u9el_6#;9SKaD(a{k4GyClr{Jj9GD{$A(K+N z?s<6sV%CKCr{w1(>x@tc3_Ir@{^a%}M8eWj7-uq^*bpi9w=MvP5D5!sF~)lsBUA~1 zK6G79OaTQ406%*{jVs(QRb3v_6sxKORBT%uLgorLaqPaAAV;Pt4B!BO%^g($mmF|k zeJF}ut4=*2WN-OV07*qoM6N<$g0usrjsO4v diff --git a/graphics/pokemon/shinx/front.png b/graphics/pokemon/shinx/front.png deleted file mode 100644 index f6d437c6e55fbc78b977e3de2bb952ce7b86d6d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmV+m0`&cfP)7KSoq*r`1ttXNKlYCP)JB%Ffc&iXm|hs00000!j^VK0004& zNklhaB>EsqSHQf|h6ImXH<3Q85ZNz+;Xu3l2J7*AdNh zT8VZfcM8|r8o6wd0XTigE69c4$urSkKfS(VdRkJe{>nXL480jC)y zN!$mbO;o&#Gzmvh$Zaauq|v4LAu5peE}g3ar7dN5b3#8AQJybFw0iBV`b zNSJ8aOSy0!hANoP)W{@s>n`h~$?Vu5*mONTNiSL(I;2u{4?N_*=Lc3AYiAHF&1V1r N002ovPDHLkV1kZ_=JNmm diff --git a/graphics/pokemon/shroomish/front.png b/graphics/pokemon/shroomish/front.png deleted file mode 100644 index 0a438920462943138371d6a8745eb70c7ac15f8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)(O@Lhv2arMDt>`Td4Pz)>dNG;1CyV! z=l(AkFWIVm0x#cBclVtx2rjzl99?_e@G63>4`3O?>dpf^V1?)dVnl3xE#iiIfv5!F zDCYgu0ldUYJ`(_lh1(A|()z%6og27;PwkYmMA-0z^bR;nggl`wV8VbaXH*7ADJ!%& zoMTc(2KL*?8GtgTcE+RJyVe=e5>gNZNGaXG;hx;>JaGJ4!;t_?CcyWaXvjS-Cqx3j zg!r@^-A$D1KLEBPfa!ky1KbiZy4?!0GVg)vtaE_%^zvd+FLcke?z06!0x=z@h_!~2 zfYv^>5QPKCPSm3Aa?R`4>7wE$t4|H^S_y2;)DHqt7*(NAN{L68Z;P10`evB%gIK+o s!5H_!eRNS>VgFemu;HcwFZwrn184kh-~vy(8UO$Q07*qoM6N<$g6;vyJOBUy diff --git a/graphics/pokemon/shuckle/front.png b/graphics/pokemon/shuckle/front.png deleted file mode 100644 index 0b00c414d1de82ecb83de636a838d6381ba836d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)BjE6bEn>ta$B z$S9lMUQ>LZL&Xi~yX4Lk9IMiKDRgL`2ZR1UPVebXGK~NAHwpmsx#N(YCV%BP&IR$> z!C(*i8gTBM6LQs>cgRToi2MEofL36VeL;Jd1C_hbK4>W80KjeqW(X1JfMKc}G!Mcs z&<9Hk)F^r&M>zpTe*m=a)-Uk-6!5gU9P^DX@7`MOJ8X{^NePgYZKAs@cL=@s2OocE z1b0u@6hk}Ci^r@POuo?)k>y1dH=Vm~CN}glV=P@&<3=$3{%}K?5|6h{_vlV3-Q4`l zXDpqSO~4eCicLD7aO0ZsV z_Jyx&OUPF)NN|^n?Rr@)zDiJQLT;jKV^VJUlG5rE=Xdok(E@uIXMDZ8$0Sq0+c$Qo zz_)vQfB~|}iut`@;Ce@Q2_epTQANJ3KnU_pegT5Ox7@et2}Iz=liAQ$;4n((QhuGT zaL#$0S)`AVXQD-39Gs5)e#r&TQeMPzWHOZ3hDQf$A}BP&*|f(xv#KBmjD0&07*qoM6N<$f?)&{)&Kwi diff --git a/graphics/pokemon/shuppet/front.png b/graphics/pokemon/shuppet/front.png deleted file mode 100644 index e2633121a5cc09e2135eca624d35e64ef1d70b20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)9U zrXkFlHS0@77|burnD8IKm>@tJ5g15A0CIjvs6Ya#dw}Ls1XXV2qojopDZ2?=4xl#T z+)Ew7RmeU;^1Z--Ly#R>S`RfY`TIabBJ>C`bwEVk1Qo0R=J))%s$c{-ko)|j6c!Y) z>?QFt=lO9S>G4+-0EjW?Ujjfm1zy1oks2T;X#(&N5Vq$NsR%%10|EmZpMy5A19Ar1 z01Ll?RRJv-ArMaiu;neY0C`@Tl?7BnPLk|Efc@d4cr=K1AaDb1eMvuA<`_q(@*u~{wtO8Q|4fSOPAjuRz@}@;NfsCJo`F^d!JK?#Wn^5mFfBXVe z!hZZmzTT#X;>=e-K3XAvK0tf5#{J#kenGbDZ@=M2{wv&n$IqHI%Tq5CdJ0hM4{RX- O0000YENqaCjfkmRsPez`oo#+Oae7NEe?R`d?|Z(B8Jn~Ug~B8`|3iq%1U>U} zSqPr4L-F&nF(|x9^{>hb85HNo=E!?BQC&0zKvZ!|Ax|k0-G|sIS{VOkl~QQhqyR;^ zB<5oRbbOIlF0u@UT>t?K4u1}Ks?K0mMq|K_LMb;=bX?;|ad`7i#$&)~s#p&%?Pd(P zS#MRy`$$+KVmAb$8d>Fgs#dwzsWuVYVFn#qfNA1c_e8iRJlZ+}>hv^3@3K&sLfm%)+YqOxUCMC1FiMn z-brvlJExf>ki+HGrS1j2)=irL-Aw4Z31{82ldIFSE?sJTd{>dZ#wN6Mztz?K8{Nc_ zPKno?d;=Y?CbA@A^SQQB$N}k{=mbHxu>65MPJgwd49|0*V6a@#}(Yn=X{b6GU1!geiyH4x8e{P%6CkJI4PZ-_>!{PAO9G+yzs3{x{hJ(`( z7{6}uZPSL^n>0Ot%VF+2!*t-9<-hryjg0vLp#ALob)Kd(mOG#`qnvc&fc|N`@Svvw zj=O8QDtR^^D=41;e{TX%Qrz0kP5>+il#^9yDgO%;Bfv`sDxL!iQ(i3%n5}G8Kvce_ ze#`dPx8CO_0*m{vb8>xuc{d$c$;rKanFbv4mn$H5(;W^Q(;O-c?!RFpE6*Ze!WTQk f7@r74>q&)w8|@ILwi4E<00000NkvXXu0mjfQOA+J diff --git a/graphics/pokemon/silcoon/front.png b/graphics/pokemon/silcoon/front.png deleted file mode 100644 index e6f2a614cd4e08aebd48e30c5d1efcc8aa0149c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWU1SC{+%vkZ_!-oSG z9ta2stk|((gM`J8fC``zOu$sjR}B>9EbxddW?X?_wfUqO7#O=fT^vI^I^SMC z>v!0Ihv7j<(7P>X-%Z%Yf5Affxyia6+g>ZZ<;mc0IAZ+amdf9m+gdU_6n30B{&V$P zOHRe@KjwR^Ykc%>yTg{NOpB)O;|?p`;%eP^Ry5$)0j^snk6WJnj?$R+rbxx`Lj z@q?!v0jv!?hn_lS&CaXPtCkOVu+5Gk>&CuiRm}(G*gUvrFmKcijbPf$>Jj40AkVb)f@K$n_YWkOu`o4JKt+tiG~A*w#k*3su~LfChV@|%8_C4IN$wdOT(_Za$PC*YsbD6 z)O{?=IQTemh2yP~l^c{h4aFA}F1YXUy|(S26vx*6haY}OyTBN(!0=7awzeScb#%g? zJ+?aKH!q2}e>l3?W0h_3?}K5Amj&jePWqUY@6WI?eX8Ue)-Rtktg`ON94l$ztK)Bb z9J1{C)=d#Wzp$Py=x8S<~ diff --git a/graphics/pokemon/simipour/front.png b/graphics/pokemon/simipour/front.png deleted file mode 100644 index 3ea50454c9d743cf5be73d06af52e1bef4ad9911..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmV-D1H$}?P)uDcsRho!1%~`P*6}fI5==nAefk#^_A%o0008W zNkl5!X_izesHo&0 z$k>3vTdKw8z-vp!E*-igxP!w3{S7_Irl9BN?(Hoy+(-BQzPr=2qWp(pJT|uelJ2!2 zXv2D<1z-U5TGpC;11Q==MQeyAY@1L;B+aXS3&J*pMiXE|3iRmRI5Z(J;{&O}vOYl2 zlmc7uCpw-?qXfLA$yGo#Hf?}SO7_}PfSlW5P`yrGrkdAS9;@357uLREC;FrNQS=m2X0S=D|`0*3RXRj*Y zWnF?ajv=@hyhHr@{T$+b&ld+~#%74a>;VUFZy=%qb$}@D757cx z8O}1~@1akfsO1ZEv%C+{q!`cK@h@P^s0r{1pWxns85J36P!~G~UQL1O;#NeN;Mf#2cEjb2}P+o|`d5 z!alg@B6eUay&Vl+>-Qkcni`!e4(2R9zaE?pEDd5N0Q#Mxb#Z)Y`$PZvhQe5)tcHfT zyZo&5l+MuDRs|#7e7SPgye!ZLQ*feLCeTKQ3&5bCfp8J1(4rcFACW?%T)cKHEDhr& zz`&WgDpe}g1f!g~^=QnT1n(DLhz#hWlU{Pm@QDyFBb}Bh=%SluNG`~+SU^WKBgABm zd1={zz`1(2&w$|shhvkOn0C`G9~Pv__s^EB;C z?m~`Br|H323yYku1rD>&jz^iJLx>KouhJ0GJ zK+CQsGZ~ONd1h5)j$BrPF}L!j@nr0*`^#9=a+&-T|8V>U1MV()LC7fD00000NkvXX Hu0mjfwHJoL diff --git a/graphics/pokemon/simisage/front.png b/graphics/pokemon/simisage/front.png deleted file mode 100644 index 22e5dff398f11828fb0b8a2e03e0d628ed3986e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 922 zcmV;L17-Y)P)g50F0$wCC{f0id*iY9pir+Eh3oYXKfPAa7COWr(dZU6s~~?EpRi@CC44*NIl(5V5yiW%Tr$!^1Wpeum$_&h;Gd{M{`owHDUpNzCpMyrWC&?+u0X zYs^*-+lc%pZ7oiJ)*{0FaoGf1M4y|$oj32b^REIj*NFZH2V9LnqaIrzY!k!^+o4`F3AK;}jMGNEI0_97P$GMQzov*Y<9A(~8y z=(P(iRgSV*h_$^VIwJdX2fa)oHbv}AY#N&VFq@qXehJ-(_i*Jlc8)`C_H2Br(xE#j zVhPO*I~1}HSF=71Qu9|~I}pXt=%v5=WDtH~uHVciUmIg$4KS~g*N9X^7wMI`etY?^ zG1o(_%N#R+=}8@-dqkB;N9Lc)@2*E9fO!51^=S!sn9!?Or*PHnSEFGX+Uc@2bm?UF zc>#d!QCx5aeX6?PGIPu@sit*^N8O`ICv>$~n+xL#Me^h{IbQ(LbGqm;wmZE80K0Vh z_vx~XD1uJGL~jmM9XIeoajMSik?6=s0h1j%cub;F4hVoH)vMc9MZ(^YERq9tprZLI z40c&^dN)(RLe`0tl6j;sPz&I;k9CwR&m)wJMd#@?FI#MwvR*=)0J|TSOUR}UHZ1{( zwS^l2w+0IUuxXU1H>?Ngc732juu0;35ljA6vxk}3|%7Gv6(6)`)tvo(7}1Pv5@l>33aRL4?w9LC=(r878ZmW z0aII4DT=z5i2)M{qQeVo)QPFG`dxUJ7>MJfo#B*3@%?}IzjyDwO9=S~htaq}x83Uj zyLF9dnKu9^8UXB?{lPUX;4YyH0174pA6()u2-JWU;7fQg2haifxEukbs(=NdNdf#2 z+DNr=La&%Mmr+x1-IA9~dp%wA?I#m6}tI&T0T zc6T%#ZfWYcb;ZV*N1L+^_zEvlu-Det*m8vob)ai4jhRNszWK~C^p_F>9 zR8M`ee|Lo}<(rO1N{`W?-I(Z6ShDCgGj-8dS3R*ZiLVA`8TfR0(Yw0povrL|PYgs! zUpn7?b=kwg4$k)`z*HvW1G1DPANLqzYX|2^f_qpE|8EEqxJf%mpvAi+(SXFV_(cr$ zpSlakAqtnh{^5R-?CJgokro!s&$`BDx0AfYQ+`Emo7g-G^V};EkYkDM7F|u=Bk(Or z_Fqs~K590zqW|xyz*_csAXu&wb*IAuuchv$Sy~jVnPsYZjBV(Sfs|n>faU2AzX0la znlTn|Rv)K2B{YaUXes~C1)+@T53*4JMhn{>TN`GsdhPx|Av1LK8ONgn$N^V_55kCw z`{9;>h(iP$krc!pueWBKW<1S-3r~)}i5Z;)lZ~Ye^f|e#0G^EWd|Ni8loq~cLLjv5 z;H-3{kVpkp0ObZ_p458;nyLbA4F!vU8emumhza0Sf~@Jx85$5{O3waj8@jECBe3wO zdQ!}WpcCa11GAxlHZx~+ZPCDc&gE?+Dp?}rEQmlL@Mttl=lGL)zdz7dB~ahhh*fn$ zGrYEFY~-2B=jep24fA6y&^5N;FM-W7{!hj)cGdmJ`g4=;00000NkvXXu0mjf2U3rG diff --git a/graphics/pokemon/skarmory/front.png b/graphics/pokemon/skarmory/front.png deleted file mode 100644 index 719acd0f8f7cf9df0ba62eeabaeb8c3d6785300a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmV;p14sOcP)PVS#ka*})^&nY`Fx(%|C}Qv4rBk;`9V@j-*QW1ma3F>>QjY{)O~Sc>-bMBitq*LP4ObP&v((G=4R=VBp)L@e- z!1Jl^`4E6o%2&GYj*pL~2CRwzpgt`^bPIH|`(_OK>)4ri2U{+802$vLW|^`* z;@C6=6zGFKyVWnhvkEt>?UAgRCK&Wvkg;>C8$a4CK<)DgXeoUV^|(5WfIq*X2V=wl zNOPqN9{zpxBpO_Ujns4d901(xv_vOrQJ(EiZbrl#vLPFLX0yZ9g^*Ix{o(9jE1-Hv zN*J?JZdJluN*T-nh|9`zvIpnNKAchfSjy47j`DH@C%JjZ$(aQ`f%Dc zZ=0PjNLk46Ne}vsl*tlkJ05_-wOhZrN&vC0|0)KC_cK`|2DYFSzgb%f7-5uG%Yj+! a0qZY?_#MlZ9*VR80000I52QnNPsvf06-uBxL5#iIH0Jo`1tr(U}(r#5I8tMA=4ts0005} zNklBjE6vs~_5HAMZU{fodq%TmcFVIlgOQt~11Tqz*N1)j|1Pob<<;|O( zHgDF^4jMWo8MMadp<^6(@YJoJA@7uCNOYI6L+PJG9K4_Y|98hd#{TPXD|}b4&2;h`+*<&W`NwO8ialj*xUFJ=`Jh=Iwg)HYq18BBz~nFMFW61vU==7 z0szSn-dlko0Rq6a0mlI6>ia0M0gO6OYAH@j8!#k;d!DfbDa&q8{%ga-K?*lb6jn*Ee*^ z72*PMf;r+#pvNg-xz<(8Q*35ZrE5JlInwhXr1T+3ZqEc93Sfd6PQy}XY+MvU%71{&|7zY#gMNo0YY*S zI1LD@Fam^BRZ~EfVESU7XhKC?z^GUU)RU>QN)yX~HBbf`po6V}7PzubC~OTHhKXIE z3cm{wpb-e#FX~JQ0LYFRen-`tld>BS`a6+be^#%5uODewvaBk2zD@uD002ovPDHLk FV1jO9#+Cp8 diff --git a/graphics/pokemon/skitty/front.png b/graphics/pokemon/skitty/front.png deleted file mode 100644 index 2a7321c2682322f996b8b430cbbbe476c563d53e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)-rF$ZmsSVY3T0BTm2Us<{{8nx0B`l*m$mr{@UH&~(C$O)ul{V)>NZc& z{;q{Z!1kX%0|=Er0~i+MaO^%G#-ApZ3xN;o7BG>nPiZ; zii2W;KoI4GJth+5vy|eZ0TX8nMTDW&r_yun6C%F=fOq!mM5aWCMDa2K*dQWV+Wbo< zRgYrT&mMtU3E2CYQeM;LwF1%?z~QC3ECelNcI6u2dkL^Vt61k5V4I&x&iO#j>jA5?tK{Ag zjbKYThcdt&rH}X;NUA`m!$hKlyn)2N7>U9_mP|vunou31J6=HCYjR3KlQC=CP!PwTd0Ipl+l8hb?O^B_@?Nc& zc5tghuGKB2;5GPhYUxyLbd-!HplpE(gSu8r^#Pp0-a0BDs^_-GlCj*WLm@YaKe``x z|GSffxR3ulYK^}EZFMkjL9=sGnQaKmGcVh3E33DJhj>v9H0xFnV)NbXAaHRNRRQw6 zHAj3OMfED+YQ%sW%_^rji>?7cRZl4&KVblLznV}nz!0ZUNeDY0&I6+A8bWrF01p5b z8o+VkMXhc@QCfz#U7SO}kS+qvVqds`I9!}Px#1ZP1_K>z@;j|==^1poj5Fi=cXMUcptFc=UxNJx-KIB>w|5D*YxFd$f%xR6+g z=rBOQc(`CdU;qFB000000000005vyZGynhq32;bRa{vGi!vFvd!vV){sAK>D0gOpR zK~zY`?UTK3!Y~lWZKPz$63Zf@Of*7bPEX_k5D(xEPEos*M#&RUb!K2;XJBMNLhjP8 z@NzvHDpkVgwL^Q7li~lnPy5)v{gUz2{qmdwWa0GbR1pDSeAWpdmKNxs{_6M7zyd?m z{Q+ulz=+ag)S*h$#XD704$)g;n|^?!yV%Z5rkE@V;AXRZ zG~LUqxi%qI+s*or#=7=RJNaP8gPxh$ssiYGfaCkgn6=T-vi6ViXpGrwjosp`%jat# zdNO-gdtz{yzF{YqhnAR~ANY~14g>ro??OQ5*2qylp!MNfe>Yl8NCMZYzk69sCp0ig zK0`n!AMmAmpw^$Yco2v*p~rwj?sXYy7T`jKfI`sAYpsH^ML^IYv~Js!2QQx`002ovPDHLkV1g;7 B^$q|4 diff --git a/graphics/pokemon/skuntank/front.png b/graphics/pokemon/skuntank/front.png deleted file mode 100644 index d188535e26b79e0fb0a81d85769b75f938cd16ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 838 zcmV-M1G)T(P)z}|IlNT3^L+toP8a1U-sphF0* zZb;n>oj6_r7#QG(N|z6BWscA_KoxLQ72DqHEd$`F0`qX#W|Pn8g&qanl8DU)(iD;(y)K684d_<#0)&3b?nnYdtN?d+ z%YglNM2u$Toy5a4!iP{cB1hW)@^MrgJuep;B@w>rlP~2Evc}b$7gygG*E*sEr-oKF9R)d%9pO=G`R(kx&&}0)6JFv?P#Z02SzJEYurgWeWZ8`u`e#0I59}RCW@5 Qwg3PC07*qoM6N<$g24!Fm;e9( diff --git a/graphics/pokemon/slaking/front.png b/graphics/pokemon/slaking/front.png deleted file mode 100644 index bc7ed93b02e70ea3e7acd55545de545d269df203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 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 XxtSy-gPT|k00000NkvXXu0mjfjG=!4 diff --git a/graphics/pokemon/slowpoke/front.png b/graphics/pokemon/slowpoke/front.png deleted file mode 100644 index aa53f9c5550040cfb8c171a5d45073bf8d27b396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)#xR#J(E1qIgwUaz8!)N~xRc1~)Sx1VI%uMS z!enqkK7rKl3Xmw2l^$k2P)Y zBm$5@-_eT6n*v*X z*L7c5i_s+YWEdhyw*z2^zB^`Y3J57cQvvWK0JnoBrrPn=AmVu}fbY)PA`r|YF>*&p z^gd>QbuZSSMxyhG{*UuIIf%-Ud`>L%T<+QnMX zLW;*({lYLq&uKNeRI2+eSlpIc^=g?f{xu0MhNF7lTa_i-58~Xf`*0fRhtlj7z*_%P Yzp?+C9JOq7g#Z8m07*qoM6N<$f=)&Dp#T5? diff --git a/graphics/pokemon/slugma/front.png b/graphics/pokemon/slugma/front.png deleted file mode 100644 index a64ce0042ae898f2eb5bcc96f35a86f21eae6adf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWUoG_56kYM;Rp+G=D z;Dv|7hk}eBFDicg`0-)~2ao|&hzuN)v=bN@7!y5R978-h-%hg4J8ZzyntGU><1L4y z*=c(Xqhl@KECMG+_I1iFc)@t-=v&@R&yFo^>RWWJ>_qg>m$v^rRxbbN60rQWBwyx& zL&=xwLvN+vyDT&kO**_;RwaN8NI568KPN?yZ?(Kl@shU?q z9oO7E;qcBP!Kda=($hN`lN|WgYbMMI37)FCAVhYZqM_?rD=r6RrBgcu7ff7twE2+p zu8BTei*2X4nOXAAS~0iD`^ut=^B9@pjS4$T8srXHa#Z<69%o2ep!olV36n@eP44Z< zEE>z5JNV|ao$}z{lM^xf!!1vB?U>jNKLek3=30x_|G8p+fq&~YSO17T6Apj^-_zC4 JWt~$(696Pt$+G|e diff --git a/graphics/pokemon/slurpuff/front.png b/graphics/pokemon/slurpuff/front.png deleted file mode 100644 index fab831b363cad9bc410d54d4b28dd278887a855d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)+>=@7dIbMQY=Zel)EAfG0d~5;S0|I^v(Es(? z3Uuy&BfuV-0Y(;WfJ?gH0ys$cP8&ecZ7$M!d>7E{VA%oce9jy7@P&1`lt~j2Cay10 zPZ|h2Nxt8ZjA5)JOwKVgC#ZxW#Z@4z0S1o}SY831-||S^LkMaxjdx`VsRLq(cTx&~ z2#Hk6MNlK`@)mX2MMUCxUL}eag}6fiZX>yf=sed8jJI3Z0}OA)x3S*H3CJ@T-YGSr zb6W9;iVpUL#gA-n0I;Y9yv1IP^--ZR!Ft2L_P$W7)h;X{ zThdyZ}xAAodJZ{E|Do zd|m>}WSOEc!e?zKPQjDt8Lh`*8qN$Q5W&fsEX?|U9e)9aZzC|f?j-C00000Kl)aAAKoEd^^2tgQgbzgOOyWoUuTxRko>VDvPO|g}DebjsQ)R^i@C<41bR92%Xm|rUYIZhQ#J?xeAu)}A=G*z7 zHH`oAmvZ*<8Q`MdrnT)?FlfS+tn~zg|Yul$jI@?d%J-tw+`<$mM+qO@m z?Cj-1l8J1rh}RLaDj+49uyhd-!@DBTm0P*fK7`iKLhG&sNV$U>P56kxDl|-Snnd>? zFMk6+eu^dMetDq2%1a6Q=Zo(i=M2igHwiNTX)@KX^2BuyJAetJSEho9tBauyISDF4 zw^HR=nQA)7kXoHY39XJ{1mZMP!&+kErYX)A=Lsl#6Jm>YmKmfeopOiDL`uF2v09Kh zg34pU5l9#oHqeTLRZ7M3z}Fp_7=CdBh3R7&PR@tXS`99S%2s(r72yuNc&ZY0NM}{{ z%T(PQMk_tmwE)e7Gc_Wme^j5@uv{+!MhoK_ajrrLU{tOrP3<}n??QI{C0GKKJx~os z7(0Owf-VA4(JQkHkzWzDdYwt8_d96NtF|VBT+CVRMP>qb=8sgw>R25U#b{2OZ9YAW zt5ZWF#8N-qF+4O~mRi;c`inNe6rv%Ge^h<}er2JpyQHB{00000NkvXXu0mjfH6=Rv diff --git a/graphics/pokemon/smoochum/front.png b/graphics/pokemon/smoochum/front.png deleted file mode 100644 index 6f492748097e0725172a990d9b6bb61314eadaa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 483 zcmV<90UZ8`P)!sNtH*VHpPI=qS<4T3f=}@ItUxa(=#b=XE(fjQeH6TFEX8W z9tP#7^n$cI7iovT#^sBjE6vv;?pvfQ!gV*ZN*ukzM*+Z8aLDzyfo!f3Ty1Jd@1m_BJCu5Sm zknfOAh0=P6I|Y+PhHfo5{w{rz?IiY{<__(fg#N$#zkBcA9l-zi>tR_${^{L)X;v6^ zC0(b@-ST=!+(!x^+UjnXgsKcQ^1K)5Pn^0c1Nc$EdC~;iv5DJF6#(i;w1`azX(%e| zToeF*>s09as}0~iA&yY!pudkXK|AUlHx&6XvUfp}h=8A2N*UlypU2sih^GudC_MCQ zp7bB*r<@`%zFErvkNMF!7jXg9=Gjk)*mQvpDB2tI)lvdZeDpx15-<`E^+AyVfm<1X z(^99YWfHO_d^L>NbJpYC|wkP<6tT0RhJ6xp9CZOHB$n2VWi3z>feq(RL{4%2GpMw00000 LNkvXXu0mjf>k>Uc diff --git a/graphics/pokemon/snivy/front.png b/graphics/pokemon/snivy/front.png deleted file mode 100644 index 040a32f832c3ce6c628d8451c544fccf816fcca6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmVIW+lrP6RhTBN!!&S$)DQ$7MR);% zMG&yO!Bs;@dICeAf!P+v>>&|!RFnVf%-rq@v8{hwS~u%+fH)+yUgsnNz=HO<>q4MK zKJb5c&UFJV6ygB(3AiAbB95-E?=FKg5b@~w;Wh}S9z4AeFuozX1c94xU=2Ux{Qj|< z&~FJ0P^WDohZjL0#^?b>O%d^%W&}owkTHRT{gN!lxgj9I1I-9k%vbLcvAS zTt9+{E>&_I(qC-=00$Hv_eDjZ^ng9g>Od?bNP9ex?MW5;V~hh} zFUL=Mv=Uk+zrrqJ7^!cI^NLW7|E+%K$xGrzt%uMTm%1i_6098J$&xQJ> d!M6Uez5q1?VOnys5vBkD002ovPDHLkV1f&g&r$#Y diff --git a/graphics/pokemon/snorlax/front.png b/graphics/pokemon/snorlax/front.png deleted file mode 100644 index 62b04645a55826dc89b3802dfe5876f794dec7b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmV+)1K|9LP)Px#Fi=cXMVQc_5D*9uIYCm3tT9@95II3}q`l_FtoG);`1ts6aB!q^Qufuo$jHcI zK_Cz?I246>RsaA3ok>JNR9J=Om+N+{APj|PBQ&B6@Bg?b;U;pMW9MhnuGL!EA3K=D z>Ff130{Bj^HvNd_v^kM^On}xq1%lo=GU2}gqUX>_&+(7|O+lu!J`*m$y0&o%bHpr=#jsd0 zK$R36{6k$9U=?75F*Oi1QGV1(M1a(mF>?o!!BG%<3qX9n0|yy7ID!P=ZL?l?4%oIu z_~Q+5P<4vpJJ%Of3$SK0(N;Xfko;kBGf?VNc549Af(9jr!yd$rk^_>bz}gmWMt^aV`rVDYGwF{h{< zkz)rPqpzZrV4ffVOGCJr#2wKlPzdRaLLItGzF$LO-q@&ak4mvV$#ENCt-lCu4Yq`t zJ`>b@G6e!?3Q*ajni8-wP?9i<>DbMIfd#XgCa)#H#ikU(uk^t}d}B@t9|7hofFtz* z@JW9GCIq;Z{!4%h-L=jEGzUce3?PLe-!vs8{VWHW((=Nj86oHq2t4pc01NvDXiRWX zZ{ki=kb#tJnq|eK`nTGT9D?l{heOlHU2!KKu14MtGY1v??Rs<+D1Vp{88n(>!`{i}as dv2yt9_y?1nHg>$pYWDyD002ovPDHLkV1ftzVyyrG diff --git a/graphics/pokemon/snorunt/front.png b/graphics/pokemon/snorunt/front.png deleted file mode 100644 index 02c9560981d5d32fb1de0dd2a1aa4ec9933d11c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmVv9G z@Dqr8L6DA4HlIN8f{u6Rs?ayw@_xzx_ueInvaNqxtzY^Lt0M<=t0xCE3;NQ8ZUFmI zz$UshLu-@3?Z^O<5M3hCIE*k3B^eESfj6=Yjii_pN1UNWh*;>m;)EKINT^H!aT*Ah zSt}ru5CX7bPGKD!^iX~LLL`o^fA_>F3d}6@kR3u@vuWI0#S#mSf?s=U+X)d^O zmEF`bNm7bM$lbQVhPbUZ>s(}M*k%4%ZK~HaCcwK6<76?bf%jF+wNx!TntfDn$@Pka zT;SLt<-?54rdAmwBR(! zyb*gI4me{Dz=VXRqW~P8yQt>S1fS*%0Mq0288HAKYoN#PGs0tv7ki#B`X+ZU^ZHE> zQTXSaEi*;&=l7z%lF*5wjO#-v(f>KN^%v_4f;*Jkis^E~00000NkvXXu0mjf-S6nU diff --git a/graphics/pokemon/snover/front.png b/graphics/pokemon/snover/front.png deleted file mode 100644 index 9dff7b2a51dddb8cef84a11b9ccd10e6cc4a8599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP);0006( zNkll&H6vrLOLKT~F=o}LG0OS=_VoJyrStSdQlR6?589qSeW5H#7RNeBV^WgvQ{{MHrXTx}_|5Rree*x_4lXB$@KAiN2OK5dY zgwWO%wC)Bc8bE+vJrv%%hlG|5eV{k5fypR0Ky?q4M#ek$0C>3ps_2mc3u8LVHXBoD?v*=c*>qz-~elnG~3K zjCZpH$6tDQ4jY<~0ezJ*VKYuLz~s&n+pG>zQ~*@~_Qe-|{z16U=ir*OiU58JN-;wL zKKHXjaPIs7a7nd~UBZCUM*n8=ld;*1rxsI=H3t|G(!kAD&8k$o0F1FQNdZE--zgo! zpz@_dZY`@;C*-RF#)rEwJCsrw3_jjk=Y$}H29$n#eqCrjY+OUlI-jG*`#aPhUfyZ_ z6K&u)^(zQjI99K96_efrTv`^!6?MZXXMnmaN=Z>S$^gGIphfFN*)Z17J^;n3#0nq7 z1l31ePxL|u#4-kGs}&W;7VBP0`3NDdKs+4-;vK38OM8F z4{SrUNH8D@HX7Y9*Fwfg6blhXTEOU`br6amO2kSRkphtl5W*Sjh_c9Q)pMr4h6q3B zda&V(eBxgi$X!aTS6k`mfMAR80CwID2K1VhC c-|AoMH@18J);(6;cmMzZ07*qoM6N<$g3&iA6aWAK diff --git a/graphics/pokemon/snubbull/front.png b/graphics/pokemon/snubbull/front.png deleted file mode 100644 index fa6456d891f20ea2a5d0ba06377e094ecccb955c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y06STG2Q%KDwRlhhfjc zt}gY%(Tkh2T(PSFr5GXhR4Vw4?Qp9Tpgfd_6%nPq4CuzVU(y)L7$(LHi1jr6$A?7m zTVqa`$RKvg0}DXr8qfox^38gU3F$uo7+|O@x7Gk873~^RwJumk9bkl4xi;pt(aAON zcb2{wsN!Q~PIjrtH4-}Nw#qBM4%P)Si-&mBP^;^a04t35GkRc<|9O;NG`m>6cJs>1q@t(C^0(qH4Rie`~hy?ChSwx!fIn?sJJHx`A1o1W)31=7z3+vsbW!h{KePC z48TYd78qtQBetyI(y3n54>8Kw@3Ml{RaI>@FW4Enft_H5;QG_%N;nypDCny?7cORP zk4Y){=3M&Yn-`i2Ls!Thw=ud>fiVh`7jkYWieg{f(sGC$kSTghKF_?L00000NkvXX Hu0mjfN}#d? diff --git a/graphics/pokemon/solrock/front.png b/graphics/pokemon/solrock/front.png deleted file mode 100644 index 24336f16be3a02cfa3dd28718b3d4c54a23c57b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 922 zcmV;L17-Y)P)s{-0b_@_r3Ssw~MCDJd3kSp$Adpl|bUP0Ah21 zczzzRZx!bNY%Z`Jv5fH;upSb1=AABr>%Ud8I&cp5Myq30B{QlGW8bg%Y)6I~|C)|=!0uj$* z>dyML*?#jyDJg?S-f_J8j2pUCNx_?EM0k1l+fzUC7oc#b?kkJwae^fn1&mL%)t*{+)Z?8pl?wdk`23}X5R5r7b8WF( zP-?4dDl-UzaRoXl3C>tC1y$|b-U7|+x<4K&Mb2G5CqLh13Xs1 zxR)FN>y++-75*fkWjsjH{Y^Zj?lY7+=9Ge_XFQzxUd-e#RF8m%=ClG7N>GOu`#|db zF96y&4D@~K@M>aJ_0GQiOqnun83<1i&AJI~_V#Ix0N}vDO%WTU15I>YYVFFfWv5!-Y0w;-gZ;bvC7+rgR7F4JFb2Rw64qH-y}P3oaZ%?%JUw z8-5$h&wy;TS~Wsk3Y(aHArQt}FwQWu9se>2YDI0`U zNeMc-OwhTot7|JOt=2F;@)42e$xI5TVx)70VYq>fDHpNJ>Ykw!7fx2gx=wmwi{Mfy z*9Rvyk-PSrtiX9TOz6Bg%$2Y!Z~as;>6Qv%iRV&~%{kPSa!bckNwgQBe_(XirqRHX zZ5tyX8x==;!wXL5>@UF49y=V=1bY>gW9dk^hr_DVc_SJq4*^YIiv&)@^Bt+_Q2;s- w|Nbx0@bMe~jEYkJ4?s)KNued?0cbYEAG`b&1okf?pa1{>07*qoM6N<$f@z4V(f|Me diff --git a/graphics/pokemon/spearow/front.png b/graphics/pokemon/spearow/front.png deleted file mode 100644 index 052422e9ad18f9010f8043c388c4ea2757ab8d71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmV-10?z%3P)Px#Fi=cXMVQc_oKhIYY9MMs81Af60002)QcA2rO6JwH|NsC0)y@B;i^a5@dnqZ4 zdtzczN*M^^SpWb5uSrBfR9J=WmD_HGAP_|vaAt}K{Quu}&!DGm(&QiyeW{Zu(XbX< zE-{3so_gv}ifFVktqL|X#JH^rq6y-*%)5ZLRY8i#z7YfzBk_s>V@JDiTj7Vn9WjQ4 zTH`%JwC}mSn0(@ijgCCUiv(4DMNp0Wk>~Ls`!043MdE$e%z2&l}SM@Xa1i8!neFPSjSLBeo0`4`d)y2Z(*;}#HWHW z1v;?~WG5G02M&Ze89prt$rcQKM*(XVp>gXx#ajqU#4kbbFmP)(1QsK49Xvo7yqVp} z=T~6og9B}Bw|1WQlWU`T@a}EnJ}&@loln%VV=CqYd=!Iq*1c*V&{{>vrz|J}Ryzjual(7)A@Wm#}p?weOah^k*J^|=&56_Z|B4UTaT zA!4gnQXmeH+YVy#KwrYqK_15zrnd=MAPNvU+5-<;eG<46UK+*rAS?m+Y28aO4*P*4 z$tL(o0f6x6E;;-F_rC#10oNd$3<%DGv`Yi^5Hr9Qq3n`RS?N@xB$bvpmtCL$=t${H zDIr@PDWK7CJ2!4-N?#4B9+-M+CqyHp~;wEDe@Sv6wq9SP{Yih&M1Ioj)MFZ^z?0B0zd)i z3u>GNz*fMBh+(#KV+~L_E35srPfg3$8*+CFv^RnAc2K6bwA}@`n>OqOHFE^m2y(Mc nPRq)a7~GKR4zGq)a?kz)P+divYueRcs}l*jH(Xa1d#)_< z*ZJCN(7PT?#)WUv4t<}#clY-8cG>0MVjXU-??cBzJU4@GuL%GS8bOo!BXBJ+i5ffe zePC`23{z~#f!l3CuNt%&&200q7qsU@$_|Pq_*sk>If>Qc{TeDL)b+ zk_R3Mv8VIA{~rPKtv_DKQVzaOZ3NEz=gv#QD1|1L=3b|tU;Os+v3V9>e+7) zU|VSse*;Nih=IE9MqIYYWC4b#f>|O-q?8=kwz{i^NMlLKsKb(g)}WESP32dX=pky0 zpbwmiD=A;mo3y#Qh7!f{MP_qP{rSf-IG18>uIHiKK5qo|XbYe*o9ny$Sv~>Iz^g>% SP^5eS0000ebCPx#Fi=cXMF6nq5D*YBNDvSZ5QyL~sPJG=uxMbIpo3~D#k3e|YIFGb`2Xfgy~V|Q zF+uKHT5SWU^8f$=dPzhXL7=-&KJKw94+*x1;wkh2Pc z$Nn~eXp<08A4c(pQF*>epcq9W07;rE!y`htu~GQ7LEyBr`5M7{&jILdM1XnQuy+9V z)WTN)TQ&)!5R^BOY=A@0=z<^s;1Y6|9{KYVFFj-<0=vwMyi`3W)l1jS>Q&8;(WI yMrZj2usgj2s7-X1uk(KIKlQECeKoEsjx`N6+Isf3EX}uO+q^puhM}1HkD)a!5J$VIK z0rY)yRizt^h)d{ z^`Dzk>cMYvus~`7uZ8(BdWCCsI0VMHyaS%!eo>(@S$tQPH<+FQmgQTm#OolyelBID z!k1v|n^GUnoXVs$6V|t32gbUW_Ya{N2Z`Xfa;)9o0Cv{ESHA%Nh|imh<9j0j0000< KMNUMnLSTYn_Zy4= diff --git a/graphics/pokemon/spiritomb/front.png b/graphics/pokemon/spiritomb/front.png deleted file mode 100644 index bcfd704f636359310eab9bc8bf74217c8e3c4077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmV4H*FrZ7m?&f$?I2nv%HP&dPq@sYVOt_ZM`c(MT$Ne#$UO9?1}V*{jI zjO9Yff*^*v0Mba>QSXG}DfAeilPBq0`U{Gg)d2U8JRHQ~=wqLRijmX+54o3On8d+o zG^v2HnJ(~y#8p6ou(9oy5h=x>l={m<+W} zi$X)w$_j9$Oac+9Q-$6uPxoe!%e$IUPN`mGUom#^*#_;Go$deaCz$n$)aUoP_e wuJN2Dir67Q65|D*e;@BSrx@P)KlCe(1KoCR^DN>|db>RzgMv7={QqdsD z45#%xFcJhIh_d=G`|K&@ch+KOD^)CF+rMK(ZJ c!bymJ0Jd15A=ddq&Hw-a07*qoM6N<$f(km$h5!Hn diff --git a/graphics/pokemon/spritzee/front.png b/graphics/pokemon/spritzee/front.png deleted file mode 100644 index 76f1554b856c93a4879421687fe7ea1adeaa758d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6-A0X`wFGcGJBu<-cMu>vTtBcbBKiw_GnoY1gvc%dQj2=)jtDSQ{^ z^l`89$jY~2Ja8wPLE$rlqboyI7K=xreS!&B#cUbo4BmZQIvp!K1*;x8b#R<=R1%7M z%`5248MN1&C1uKqsjdF^G}c|e(((F*(R6*a#%a>K+LNa^>FIv>rRk}+K-bUg;K~=f zu5Hx0C#SPvO8dId+5;A$a((6tLjQ6xR?al4VK!A2c*MsbD7NXwJui>!_aFEgOycz3 zh`7&ETu>q3uqNZ%?!IFYD=xiz_1x%ed(N#lcC*q}-xu_?Nwrn*RqwqRmH3t6hFU^e zqs00He|NgDriMr<`K=SJGJpPLD~I>4rj4qmDpk9m9D64jH#I?1ZjJWFX`iJR%;|T2 z))Rd_`Hbkby!XdFrzZL=k*Sd0v#fWu;`v)v#f39lPx#Fi=cXMVQc_TAZXQbAzi9DdwzN|J7<@ zDFD@!QqrsuH2?qsj!8s8R9J=Wl|greFbIT&4H`|f|Nq~XA*60kCF!NF&)LHseDehu ziOcfn(W5^uQZfI+{!*nhi*P$MMc~^%Md0-2pCPb2X%fKH{Tc-RM+q#w0$Ep3WE8M@ z2_mvGO#s9JS@Jdo$lk&>2jH&=bIu!$1LTGI`xt2gutg%M7|k1q98 z!B1m;B>+(h{Fq|{%H_{OX=)0^%&5W$avT@z;oZjh)`J2nb`pR-o(SOv=oIR;0?@CS z&;@k^%IN^H+X-Dn28tQBF`|Y;0dm=gMiDW1KIqEP)BjE6vs~-3Y0FrC>i8J2iat{B6*OZC8vn&{q+9-|GU#M)|B^%{k!(N{|9)% zaraJ&klXL2kzl;vbRxPP$dQctX>J$Au?z4t=V@0WaL`SnXp}faddT>5Ss)rkQ7@7G z`@kf?--uZtNm2^fTkzbpim-h;awI0ftB>afum)YgpNw9AFaYl@3dW6@dkv&qsL2Te zNAKn&aC(p{8{+7bVrCxqB~&WqsR8o2;?e~WN$q1U)p;t4N`rA#bq+9jH`Rj#~i69s&%$*QKx8Z2IW&g)ZBcaSoWG)`#stN8|dcC8eqQr`9^AwrQtO zzW<^1xGe&D{POnZ4iLg6)Qt*D(MSjYiV!LmEA!8*Fc9HJ2@y5`CI$lFLTKG*o=6O^ zq5urK6deF0YGS4w*EPPo0q6iV^!P8ZhAXWJiA*%WxAhtU;@ZnLq1Kf#xUNI(&Xhmh z{AyYN=!`fPUIQ3HYwFl!JHQsPX*_(g*@ku!G$8bHYk_Cm%na0NP+6d=5twOWOv8E^ zTyB5k9&EQI1zaqH!oR#Vz^$U@I9sAGe*jS4jzy-Ij!WMjCLeb(76AgT%W+^@RCS+= zfQQ2UK;p*+z<_ve`iXEq5MLPC4E@LWdMq3bZoAG9;1+N-#&d%qVEl3dm>R&xUEnC@ zyAsUa3><;j0xcim0|Q_JpBRL#;fnE>ho%#8Xf1Hf_NL0jr2#HJ7uL)44K3j>nsokr kP6N|vu}jo)*}2dE00^)CQ4!1DVE_OC07*qoM6N<$g2Z5SUjP6A diff --git a/graphics/pokemon/staraptor/front.png b/graphics/pokemon/staraptor/front.png deleted file mode 100644 index dbb5a2f9592fff6632c8d5fdc1cafddf06a7bfae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmV+o1M>WdP)D{cn}Z}SWsA)KtS+NKu|bHn1G0ISYWWQu=x1+ct9ZdkSMrd00000+B)1(0007* zNkl*bD!Sd3viT;MZvs@#qI!&c-k>UICz3<*T$(r_G>j5s-@xEae z>V{DWlt8Z*0s8kPZbv$JjXRy~#J|N`O*x?_GY5auSne>*aiU8Q&w|MFKON0jWCr7;TQ+H%?9=r8_)_OsSdYodB!OK z3^Uen*#)lDQmaMbnVeEv0#KgCUF_pD0QMoZ>6E^Z0JBD%U*J?q1oki_*rvS({1G1x zGe8^kEiiCNW0<~Oi0S}fymcTWpZn=!)}n-;=JM!^};XgovT}$ycSWo!m+4r$T*1NIW;y06Mx~#_=3}MDyGx*75S&Dz@auW_6cC zAfF#ca~Khd?xT}sjsvm$_3_~G!?*HAxtT9Kh>r^YAOR|t|8e~WKqNE}MA)XI00000 LNkvXXu0mjf@GxID diff --git a/graphics/pokemon/staravia/front.png b/graphics/pokemon/staravia/front.png deleted file mode 100644 index bd7c8ab4f143f7d5146230b68703d1c3b00bed91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U0d@gKp=2fU^qB9_*g&y0000000000#4bMd0005m zNklyYv3%n3_zij+;4LZ zCG|eHhA4d=AVeaO(;4cyEQ#fLzyt6cz(!{PG6U?C0w~e|8x25uqYyX)ohim1RB_Q} z0Dm&S5Dh#p0U_YVclx-2q91<*{pqDH{BkvK;RzV&0HEH9#k|3->OZt@UK&tQU9NOH z^b|dg0EB$d7zk{s!$G8|M^k+@#Uv$ET2FWgJRITtE6lRmYi%Qd1x&Gz;Tg}{uxm2y9;}lReZuH=nrt{qznOHalM~FwW|jpOhHz- zecDz^DbqPG0tYD`v~Df7-8ll09OQa8ZB<>PZhYh?2wkf_YGZmJ*8Hbmd%zrw>Eb7p zt~aQgZUCaaFQgg#P4b9Sf&S;U@II{6f0NBdIFZ!J<64M=`;*k!qv(jdNgW;L|K7?i zIk`#bbiBG-T$kj2kw~GE%hgX&vgNPe@iipKFR0jJ{G*6l2-^#`WJLlXw0wHG{8fp} cEBc#^f61D+g57(w@&Et;07*qoM6N<$f}!aG;s5{u diff --git a/graphics/pokemon/starly/front.png b/graphics/pokemon/starly/front.png deleted file mode 100644 index c188a7ff5a011a0d28d4f529f18e72f012a3f8b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)_|Vwcct{xVfH<&ND5#j2a9CJyU|{%AKmY&$wv+Rp0004> zNklt91bTtk}9En3& ziGy*ICOX_-fqVZK-@<0^+R>QsB%PjLpXa^1UJYZd|0UoHJ##4-`PT^0)#P`3=!m0FANRC8t?&3k9kK+S94qV~%qI)*cQM zUS(za0*>R{0g!#cdHy$G@rUDACkOyi8iauaXT|fw3w$5Nu6RAvz#s!F$vHc#g&GXA zVF3Z4P?d6?3D0PxiKOKQnG-1`r-~0Ros(?TuSzPV$EhkICr5Z1@&kQnsuRQ#;GEY$ zabD&!VJN*8`l`!e*6c4Ku07rY1j4>y5N>}CZJY1nRw!?eX<@tPaZZ6K8c>OVK-IPX zhy)G%rp`8!PcznL?EOs#Y>l61_uEHf#V)SIT$WF|?o8+7iQ`k4Otip?($BcoU+V{R WU4Jbr6jdGo0000M diff --git a/graphics/pokemon/starmie/front.png b/graphics/pokemon/starmie/front.png deleted file mode 100644 index b3c4861d73012c520b25e74ffed7987a7cfa61e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 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 diff --git a/graphics/pokemon/stunky/front.png b/graphics/pokemon/stunky/front.png deleted file mode 100644 index da228e831ad1709448d32fd0d693aa6ded82d2d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)KQ!z`!KopKQ#I-M}6r9p)s!&{#4=jj_ zwsCN5b9EIY6`WcFc6Jb4rAuAi>Q8Xa4D_r1G&mh~UM9Yoc* zgYX9&UKK6?r&7R2*rW;)*j3tPcuyxf5u>wL2X`%+gJ0>m7u83==n zpnwvWiN_Y=XsC-wlZ`|&AzGOzX&~_urFv%EzSG%zO6dY9G@{#*2Byw%~45SMttntv1`8I8~cKEoXzVd^@HZoy!g?hB1 zUn>&&OVs;%3k(h{>n4gj%Q^MkHL4FQCvo&}{B%_ zmS{Gb-msQU50006O zNklljA6vxje)w5ms7AE)TA<9PGENo7m89bmm_3OZZB8Ig61THHBIBN!k z$5dvqntp+NgAROv4on&0JMhkF5V6n6jyTCa%m1JM_ujjwGh_dUVOY)%;OWarmb#|Fe{FOyw)Y)ae20Bu>%8MG{ zky&TFnCdCn57DTPNAiI3*cVI6Dq{M!+tnIHWwzg5VfT0F%C$NuS{&IDvls$+(G#8QnZwEYcddxb_=> zrJX%MtR3vn*V6{T^(N3>0-Tb+o##z}9nNT{N&*~q@!{FmNgIe=7w!r0wf|KyY62W0 zgohd+|MONBj2%D~7cp&u7?{7=zDa7}>;9P(EzHLBB z#NVO){%_#Tk7x^^2v{21X$?>WFx#?%m=ln6pDs%Le1I5@hsPuEYZ+s;1;BTRSbg)m z05K#T-*y5VU4=+cH{fuEt`wa?kiwwHbP*8w?fcW_M&=3%q;P}|s*tod3Jh&}~000B9 zNkl098vgmQXx5f#;$GUp$kO*c^S-Y}@))82 zZfK?5eXKkG(xupXO*$O3!!VE@`yspB0<;!5oG<`FFMw;1 z3d5@`j&#D*q1FR-A%O4<`GO2X3G4+jf~A9l??E;2+P);=R0?#n2;kr|PnH?;#ZdtJ z&yWX6aH%39GA8GRUD5YK20$m+14o1%A;2<$Ox%-cz*9N^&~gvR!5UCrq43H8c+zF? zP}9|S*lBwgK?YFEb%`(ULQI!w7;AS}_u@Q1B(^_^LP@i?qnGI-k~^pi;6c-7as&L<@G;SLT0h9VyR$twV882}zRKo)B$`3eB+ zW{nE9^8gev0o^>1yA8w5)(gWd>|}tJ2dZi(*TA=WqH^T`?5bh~0OK=&mIJ<35de6+ z5l|73-q@UL8=zWVXKY|+4d;M++lTYVh!7>)($@QIr#M#nKmGIX?7-M-{a+pbL-+fKR5kR42zgiu z$Uq1&_A7uRKajBl0yU%oAqEIU(^w2HNFo+dS47&m&`CQ&x0R9&1n3lTMIB`;zKWQ`eVgX7R=Nz9NB!zHXhF%PX@u5mQ1x5(Cp} znHB;aaX#D!-Xee@ucTREN&=7w1ZkSipMhW>@Fx9F&GhGwnVC=MQFg}(0^euJT#FCX z96SU*r^ze{v>sE}l4){KLaXOF zT7>K_V|jj0=uZGhuw`+R1MK#Rr@~q!-awIqwVU0ZL9qc8?t8EU3s7vz7CmsqSMKA^ zMcIO51X!^QV4Kw)Ve=B<^Y!d<@v66amhySuIIpIazGwzRj|0}1pBD7ecBzaS)m9dP%{ mH#-{eLjH2#e-5wpSN#Sp#?%@U#aFBV0000-_+X)sAW(2Y zLqI?v!NcIk4~7j33@)4iGJZrfGG9`&4d%x`EnB(x} uowxw!otT)A+Vq0E+{sSn)~ToF|75Lw5PqiJv*s=+$UI&BT-G@yGywpGxu>K6 diff --git a/graphics/pokemon/surskit/front.png b/graphics/pokemon/surskit/front.png deleted file mode 100644 index 32508e31f5b0e7edfbd2c81fef656a087f199c2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWUZ0KP4a3MoLK;Xs# zhKd9Og@}xf3okrYT=?$*)P5N>Ae;t3{qW`5QwfAu`R7!K~ury65yVbH|io2su;Img8 z6FPp(_{n-FUisW6>-@8;Gy;;Qt>2UIw}JH;_cxaVX0>{!iyY$umb>V?9Jy@law%uu zQagobv&*?dyiR*Ev|Ux-DJbSMWkr_g%`f4%1V7j4G`vwyJeapX#qW$q$kx@4TmC0R zGoDH8UG-D>Vwd@we{9A*4QdCPJT$N6afc-<%$v1VuSVh`)8F87k%wAa7SwL@{_Z$? zc^!X=#p3@=_ZgfVGWcJ3@f=uCbUmoG;f4I-^}Y{2#j-KHziK1h;UxS2*)OJ}e?wGb SVz+pM0@Ksg&t;ucLK6VMsjqba diff --git a/graphics/pokemon/swablu/front.png b/graphics/pokemon/swablu/front.png deleted file mode 100644 index b7d58d06b0e3444f00abde73e375eeffadfff4aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)pvHF*0k4}!5ZDNIZZO{NTTAMAwWG*d zG7QOS+inx$@Zf5jkNIKGVvX;Ljx)=Ao=nY?9a(_6lqSO|8r)Ujx?nC-nc_>wH~w@L z_#-!yS}CaoO}(Dtq7vaMB^3fS#={0K3%aBv%Rs+mobwP14KOYP3N-M-$4E3>sVh<_ z5edK;D_Y0${<0fR%|MvB9>W7z0KD~Z_|}jkkYT5iuj`1J0WL7O$M7zd%43j=N=E{$ zBW2EY04CrDr~(VYIx3qOAk{p;BPkC7!1ydK64HqP$VKH#;FcSnz!T>uQpTExybO54 zgF&|=@PDL27{5G%k$9$E?Ni@NHb*Gr&_ce+1F`87GAMv+llO~H97FijdTz*9L}?SL zhQ&Wz_M_+lkDd(}#UEsue_9L3?R%e$Mz(XQg`VSV@%Q@g`Ud6Ln#M`84Eq28002ov JPDHLkV1gN_>hu5r diff --git a/graphics/pokemon/swadloon/front.png b/graphics/pokemon/swadloon/front.png deleted file mode 100644 index 1b7f74db5f76317ef68573fba81cb06e7b1f29b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmVg@G^+O5FU5ub^(;r;*_uxU3396Xwf1uib zpzYS(KdN{5i`F~r=Hg2T3EvOz-W|a(&ULD4S7eU3>b^cNvPuA=y$AX=y#IhYR097v z@Q#DZUBCq#2URCYfr9H-h?>a78d}i^AONVCB7mOE!P2y-0d$K7v8F{r*T9a|J85OK z7{SL_Jw+=ECGc&Ws6irt_!6B_GEtval5*++$saQ{X!KJ)^GH5@mY}NwcbpS0>Xs_c zs?ooH|K#)Ka-ji1Kl~Q2zpk!Ac^KD+pf{6XzFN#Q0B+u1KI9lwg2QbHz^D9+a~E`= zE4T2p&XoXMPFxRkKzwX)U{`A3@A96b1VFcdvA->vL$d@JV^;J#AH^mMwrhx-*;wuo zjc_~=Pn~Vd28h;h|2`s)naKvZ$u?ypCh4#YP-LC_VUvpnm}TjH2^&es2Bed_YhWRU zmnC4-h+&YnxRF8-BZ`bB*$+`J*CACu__h($07*qoM6N<$f&`G= AQ~&?~ diff --git a/graphics/pokemon/swalot/front.png b/graphics/pokemon/swalot/front.png deleted file mode 100644 index 6ae76a4f36d82c8a36ca452ba9d1848f6feec993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)5U09&oZ4m4M?6l}hK&Qn(076Hv!$PyTerAZu;Br2l03|iM?gWm$UCw=oD2I;(EZS4fmbA`*06$wSvbYUo zS9Hg`g`Z|w(gyT|VU;vXlBaeQyU?BmIWezsGqts!wsvq=xToex+7#Hi!eFvZuAS~Vyu({#DZ5_yqqTo~H9N-pC z-9i8lyaNX|z^iWYxez_Z#p7lNK-d9bz9Rj13DmCiQ#k`gSdPF;ewn(H7dNES_@aU5 z(Z@PG8$E*ib-B&q4J^y5_n>S~s>W~vI|tbA4d75>Z{-kn0iM|Gc_Ya{2CQl`z|&Sb zMAUE?@d4zVbbiC5!wlO9Mveb3c|39bPZ_e#SY7XZ0h>ucuT?q=#UwWWG&uqX2q@FGcYH0000# diff --git a/graphics/pokemon/swampert/front.png b/graphics/pokemon/swampert/front.png deleted file mode 100644 index 7a86a418d8d1222701f62e80b12f0afc27386f7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 933 zcmV;W16urvP)*!2?-KY^u5ka|Exa>5xYOe9W#Aa*X5a;WSa zIi-F94!i=qLDO5Mp3;g#k5KUdD4kh5iBlr(Rrg|GKhMt2OoCzjPs*5qRdVzr11ll}WlllOf!oL@sbAG8q_<$;xhp!>i zOx6OEfZ!aJT7ZV@E^B7GQUU>y-hr<53MiX^ghQDfsX?wUT$Z2?lj>0BXX@ zA_RlDk4@h9w`a3j5)nY$kE3}CgE2Leehz#%n9b@z*tc7Vy*RkY3Q7G#0>w|jU^9s{ zz#tx`0gmFRkH_3o0zaQeN!+(Pw=`jKr1#rMSs~40$QS(m%o$ZWw>Q{}f-_DGyA-ZV zr(IF~;jum%N4WFrlt36W@UcUJFWf;Y#zBovAiyt$Itl+6n|y$=L5Weds$qo3Pfs2C zWnTl^!w%n(Lebya0(*T1Hiru?OH0t^n|UVkBJhxQw8US+8f-v?c1k9m&_nDzS$5h{ zo&>N7ZU}zUFk2_&Eh(hbqWOV@;BRshM61hze5j(ZEG10Z_hC6w!sbsl0~ow00000NkvXX Hu0mjf{%frv diff --git a/graphics/pokemon/swanna/front.png b/graphics/pokemon/swanna/front.png deleted file mode 100644 index e1b58cf394ce4378e7ef09e7f983f5e34b79e456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmV;S0$%-zP)Px#Fi=cXMVQc_l$@+uYJ>m({{R30w8hn8VuSB{oH#&O_V!Awq+&sHtYVb3q|NR* zN@{9qL2NK*8~^|UA4x<(R9J=0mJ5!;FbqU%$F5SE=KjasaXu|{p(LraS_>qQn3u6r zY){jF4B}~Gz5{T~PHq6$u^R`#yJ!ON7=x9C6j{KC3>1P{RiJmozfO`vIq#iR;hd1h~~z{sZ7nUrRy5074`KJAm<2w?Ef7 z8Gpqi17xh4k%&IWjldfxq(A&{rQBr0_e#=9T3zE(6#<7ghT&I zy(~i5LeX#QlL>CrPqY>QK=H_E9y~6QuwOp*HAmn+G%5!i$a50^f|FCH1sD zeVq?U?)@Za1$kuysqSsuFdMvueK0~@w<@D=UJ418C8~>8&x9-zFTYlwZvEtM0%R26 zMXZ$K=OKcJ4goo01b}+a_VzN*euw}@#?1Yfcd~Lr{1@>98bKA&hdZj?00000NkvXX Hu0mjfLmMqH diff --git a/graphics/pokemon/swellow/front.png b/graphics/pokemon/swellow/front.png deleted file mode 100644 index 32345b406635d8163814cabcf580523b5edd426f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 zcmV<10wn#3P)Px#Fi=cXMVQc_DJfFLT63H+QbAgKDM4alAUO~a5K=)P|NsBAwAJ3EG3K;llv)rm zF*#aVT4nbo2mk;ASxH1eR9J=WmeF#9AP_}^%kEWE?f?I6cL4MoLzZ!T zijeW*eZLVhWWgcJ`26~ME+WoR5U?qnHMSc-2Fij_Yk5AGMTpG6S{8$=v6RrU8Njlb zWfT)IJN=xyDbxuN6pJayN|<389O?nk4$*L$4J14W7>C9(?1k&IVKMa7{0(};;0M##?zYAajQv_ZOHJ=4nyc)WKmjVn!;wytKikkpVVgP12 z8+1}j{z9NTN)n))1eblv`zG%x@?OF^KzJyVqu?F+CT|zWcp~dU#J3~`A0D!102aG@ zh#`^Zy&Q6Y4zCZs-JdA-5eL3l(T-2^y9AXpEKKgv%UjNb)PZO!5aol6>l4>IY589k6Y9@dy9_ N002ovPDHLkV1lYkLeu~N diff --git a/graphics/pokemon/swinub/front.png b/graphics/pokemon/swinub/front.png deleted file mode 100644 index ec191500981b5874ca047e5f823234adb928a092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`7zFr)xX!q+ zz|oLnPIXqXm!W`wz}Y#~mYNLTy60>uuAUMV1yqFwd@riV0fjzzx;TbJw7#8kny=Y_ zhvlPH;e-G6JIdy5aay%7$bX*m%T%$=d^ynqERF&e3(o~h=P)doBKKnFt4KzdcWwfo zE{GcDsZO|8_VdguW^nBb8R%;)2;7tIt%)hkty_@9fE}1>_5Qte|w(+~k zvJ$Sq;4jDJ?*BCEozOVb)4l#f?Ci+f{AB_x2k%!fzKY_Q=Cv;@9~2y(u6{1-oD!M< DSuB_& diff --git a/graphics/pokemon/swirlix/front.png b/graphics/pokemon/swirlix/front.png deleted file mode 100644 index fb40d972f9e3dcf801c080ad8abc1682140d3de7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_kbs!@@bIX3i1@(J@Yvw!sJIvy7|_Vb z`1ttfKzQ(wppY;?00000000000PS~Lw*UYD32;bRa{vGi!vFvd!vV){sAK>D0dGk} zK~zY`?bE+%!cY_j@EbZfE0ku6NXYZhs zlb{dPb8du6b86>;2Qz&?az1Yob(+&0nQHZq9N?&MfF=y(@GNZ70)R`cn<8lGF2yyt z(z+|&KJe^tuQ4KfyVHk9rPo7SwyCnl5)} zY^VbtSBxd#><^l1t{Id{I(g9_>QA2lC>(?fX+ZxoFso%6y8@`>K^j1iZkO9f%p}0~ zHz^R9Vpi^;rcu%1dbvVGR{*ovK8Sd?`2`?9N+0crEAU{%l7~Rpz#!YFn3Z1#8iVs< zjcd%E62-)V%nZ9j@!M(-Mhq@=OSeQ24ibZCCIoK86%}I?|C07d{BXXznB)0r{_809 Y1wb&4E!|L%LI3~&07*qoM6N<$f+%9&D*ylh diff --git a/graphics/pokemon/swoobat/front.png b/graphics/pokemon/swoobat/front.png deleted file mode 100644 index 7a4ccae93c5750ecec244b06e9f078cd7ecdb1b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889 zcmV-<1BU#GP)WBU6(p7G3Nqz9|^m4u%*y1Uhu;+#z$o0k4L-cPGg@ zNp?H-fx&n0r|*03Njd>AE1)qm73RI_U-O#h*)a;I0cHZ2-V}lhRF(gEf(y9nB1`a# zCJy1Mm=jR81mLFfVn^+ADJvlaRF9>sLyx^dl^7FxDdv-BLox= zF&Jnj3XYeS5TjKc5QJ6!O97tJrw$QvOx44TON`bI6rp%z0bK$R88*1H6_sG7CMhKl zcnqN1I{+k?O<^Iy}V3nt@IEg zpuE}LM7Q?^z&b(x#L&u{e4KsbF$azrV;^(C#-acoToJND8OwVty!&ts;my9kOja0c z=JEylX8#gC99|((qsOe12hI-4i`RoMzbx)>Jf#FsXb^aL<3Qq2%4^6=oKb@q$RbGO z1GJhGIHwfu5Fb)u5G;key^9H;qb8*dxIiV)BDTyAMi*%f9_PFO0qE=C?rpcyO@M$& zf}OJtV^;0Su=jfi^q~qce!ZA7I}NPbXk6*rKvyi#D&zJX=(K#a{B|^|jOw- diff --git a/graphics/pokemon/sylveon/front.png b/graphics/pokemon/sylveon/front.png deleted file mode 100644 index dbed2310832654d64317777522c96b36bf6f8b09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEJpP)4)iG<^Koke?Q?!UoRRfXn6bx|*T?7ZU zBjr=rxZu^r0(VOcz1Uq$J=ntO64P1_b*L+-;kKe7QE&9p5`TdX`7XVaWv7-d>R9N3 z2lM~w?%lnUjnMx!bhKB>%N6qUxSk6xjvHnkFv{&(?h?f}PNQ*@0~W-o_Z|>bEa}*zBn6EJzoj!**?V3502Y z6c^q(Ez&oU!aGyj1-doY3*aBN2*sjQr@mW*Le33x2{(FSj8mOShB%)~Mo16L_~0{_ zNAJxD!FVLV7$B1?igP)Px#Fi=cXMVQc_F-m({YMhigQq59xASqH15D>k+&Hw-ZIXN+;b209{V&;?(Qc5Xs zh_C&tH8%d zbsOo^B9I{d6>Cb7=>lLw9;|uWykLZI0Wcf(6uE4oQX^avaDON7f?yX3q!jrb0W|pE z20<1nC1+44Fr7UysRWA105ky0gT^2H6M#pR_tnp=?I@3CzW@%2zxA`ju$l7!U7-Vn zU=I+wKgh!FAT$@x{T#x}{tKW9xbDRaK;cv^y+>eXy0-QNkVXKtrkI{BQ0o3P5(p;0 z>_I&J3ec&b=h}9*!5Sf^)CtrGu+0XEklOMmKoCl>%@&E!72`oL)qh5K*#&TmfOz;X z1oL=AY)bl#6H(8&X-wll#4DoSR&0ROF>=_eL6;u-az;RwldQIO1WFrg?H@}SGMo3Z zqrQ?lRbcFZkx)=qMcxZjxpPNjfdaN2+l?FggLNEjFxn4qXoKp^<|_^5b*m^`{J00009 za7bBm000ie000ie0hKEb8vp4%0|YngKiN&`$PQ ziqvE<;YvhOmi$1d8wxy@Yy_MkV~beRGF8gf1*B{&73xqS!E!?)MXC~st$#@0-GMQw ziPSeCeLw!b?|XNgreQ5>PuDYhfuJ+So&a=~CL}2VC#r{#E!$H-gasocK`E7h<+uxU zTXxVa%YNMBn7lxpSQ7`!^yc+A)KNFlLI^QR6Z1g4P&uTc9N9tu8*_RQ4wOzb1vus$ zaNev)-8Sg50_-`5r4}~W^r>S_rc6+~l$S4v*kfKsKK>bq>hOu<>m z04ET-lQPtXbtt8v8d#iH=w^+on(Qx&fUr1{9dHD{rkH6m9bNO; zD7yksJuAvCOMrlwQY<0>0D*c_0!0v879AWjI6_?j#j^ZezzA}Pkbwj$&9WB;95V!n z9!1y{KpZNYzDkf<4g-}Y?4C`48YVEO2QlqYgt9My0;rpSN1YCxkB$aq-}le}4u!ut zJ*Y{=i`b#gm|g&p5ob&hOhAGZ#TEd=q`PQ<8O54iFGhkCORW}^anxfF2DMF0nDSyT zyPYX;jz9&Vj_W#dlr=$uSx6 z1c8BJCk-3lhBfuNU>&iKd+%ZD!14b?X`1v{e`>MU$^FTyDK9u5iaoe}*6;VH8Lr;6 zr9nel46D?)_fZZEv<&&}KEQ{jxT$}2@via)oDK!xCL?rB z+hMF~QG?@IM?da6ripL2K_6Y$P!Cf)Wid)46KG=$vEeNS#+{pdTMC(UREOu?m)G}q z^5@-Ul!39fb#*0#@lF0NDuI#Sy8Vg3xO;sc8IkFi_Pyw|ri>yg?LK(e$-e!u0MK*a z5ZHG!>+J==7zJI+W%A#nf!I4~t+%5?;vDNr$Sn$~Pp;5-L5G=B;)YjclwX| Y3mQ2^R3jIZtpET307*qoM6N<$g73?`Gynhq diff --git a/graphics/pokemon/tangela/front.png b/graphics/pokemon/tangela/front.png deleted file mode 100644 index 6115b5b62d4f661ad48897f43e1daf9ac8a78abf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)Px#Fi=cXMVQc_L3@;x)%IGX%^*Qi5D*YjQc|?EwD|b=b15mTDM9~(gWgJN00000 z0000005wusvj6}B07*naR9J=Wl-+iNFbsn+vCB{U{?9v0He{!xBy4AQ_=c8NUu;Fm zFx++5UH@Hz`ip!VODUqi)fei$^b%t0S*Y~do}CnLJN~JKTBzkpBRUpkAF(zmTO(a= zuw&Ra;#qX>K+#eMfq*ime@aS}I9ECl3e||FX=71mrIo@rO@MG&jq#x$xingcHyuMz zU(7Vdae#j&q)EV(E)_Ud6=EXswJ`+TmjIw`$=(SAxzz&0%f%x?+p>|x+>`(u?uMlM zx*q`!p0pY&2f&p>0N9xUmwPE6HI$JoOmqNXUztJIJ*IiGt(c3PfVaevez$?kx_%DA z#HZ`gqS0OZq>n@FgF9eGh29BF2ewnd{3Is;*8563fX{gc=!u#>#MXNY^CL#s0sa#C zXaF*@?wX~E(<4Wq{oKH_GikB$##xniriq*Z+2ZdffaqWgALGOM;W>*fLiMYI~&5eT)X;GK3>VECZBHG`3;T{nQl(M*)DVk)g8`v1FtJBpA>0 z2GF=x8UP$78yNk_KZLyBqMPOb0{sx%$!k&A03!fqLk?yB$8y7r=3A$_*0QekDk>e` zy~!5`ELOX~w=4SR^YvQS6>f5E2RLHs2fR=KL_rT`cM}1qO*?>Z`lonLoGljtZRA~d c-Swls0Kzj7Wn3>eM*si-07*qoM6N<$f>_xbApigX diff --git a/graphics/pokemon/tangrowth/front.png b/graphics/pokemon/tangrowth/front.png deleted file mode 100644 index ae389e74a8e42e3867f46cce8b4176faca856582..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 967 zcmV;&133JNP)c>%C{<65u zu5ZSG>Aih_lP%Nb2r#9cxXH5ln1|{8R`btkIv+D2x4SJ@^V=~4lbyB9Vzhu{4ZRej zax#Tpt;Y34L6>jn)8cJCnK0{bFwuWx7z|9;cKh0lItS1wN3`1e?=lqJA0jJu8!l1v zB{AWu4{zqu5!Pz}r#biQ%~38RpFL27r|u)GvJxSNiU86_Cy4*i za_a;W06pZG1YjDX^3Hk3P1v!kB7jyQL$LU1??WS6M4-W?1aQCM^#}I*{l3wy1t2c~ zJ++(Ce(=u#{;G|2EXYK+MI@{Q@bdEae%~FOb)I4XAxsZEf9{?Eup^>60%ifwI|udU z<#T%ka{Ukywb@GF@>AC#NC0YGG%=9mD6R}Z_k2K+suJA9CeTO+!1=EGCv-t^)4B^_ zg17*1S!j8SUIU;whcphyOn;G~(~Y_WFhOXxkU>`t<03haT~2Vk=A5g3?67sz#A7)L zQT=I@!j_#Ovx*3@D>+(Juxuy>yxp9|3T8;74WuI={{~bTCklXW%E$xZS4&(~Av{SU zRT8zlih$Nul8T~$PEwn2T{;3VGGT_ODv*IRq0Wj74>_bH!8L^ii>BaQF*WJ}FdiQ| zAdo^sNk%3_FebG;0?1zDGRQvc-Y)Q(H9%l`ZbNrY2LD3*4cl_r90F-5Z zzN_@=`VPRM^o;>s6PNyO{GMt3iVUFZ`Hsqyki=%FGPW82<0`rXK{WOnYTV+ z0IVLjEr?Kh!xE#fC~paF^#w!-k#|QHP`1|YS zVr0{-=abd#&&nNzEU#whBn-=6sb%yRKn@{GM7Yq!j!a+sK7!_nm>gYHt}&YUV4>%@5kQ$&d}tJ~ ziTm#9b{IGi7ZaR?*TkKbhQAN3EG`fR6PR_xISZ|omdprI!jNVXXoZ%dfVaW=36pUk zPEXQnfZjs5JmRHv0Pxe~`hMsP&2D=9Y(D^GJ_LMd)S+ATQk#?x)6(mj%aT!@$}>(k zXx;b)z& z&08~awv6MTY|%8slR2-^2)+ZlNotXKn7lxDlQh(axr`~LwOC+g&dj)Pj!r3U!~#uN zs92yu8?iuQI-TCenlx(FctDT$2yu85D*zJeGi(w63j76!c^*cs))w&q0000lFhCFx5EvLB zSU7-?!1x$QfLMUINLWbt`1p{Jh%mUQI51!U006a{svZCU00Cl4M@0Xn2lB-L00PfR zL_t(|oV}DmZxTTi$9EGr-c<8~zcLM&udG9}uH_x*EOW3#n29!*~E)-_I zFO_EXLXph=l5>AQU>686fhPG?#4Zvd#B2#GaBpmY?g)8kn1U47IYECWl!>wB1Gzf;3-&Ygg^<>En_K!h#033E}?V{1wzHR)_SGuYZQpom@+<@xQ;*h zhy$-4T(Hi>CH~|T148xsf{ubo0svwnC&F>_e04PF0H9q2*lc9LVUUpfbP;g%w)S<9 zHl2EiiN<)S-#_+_1L(!-0R|inwf^qKgSJjEAlK-rw$}CCUNAZLk$YMjQVrW@01P_k zXtVROaBtYG-<2x(M`^>R7a1rHYeY%oPnNK889yE7BfuR0X&6#JWNtR^=qwC-*9P{ z`~6rBeLo4+NY<7gnp?=;7)jY1zDax!fP>|^9TCG~k-foFxQxm^jtwH0W>EDlop_pQ%uAsv>r7;9-G&I8V5{dfJh1Ryk#*4`mWrsvieSoHIPMSt;2F@^s3b3NtBzb zkO9PL0Z`pe5H;QTgj7xe;NKPl?YKv)ZH+yODey$@Q=VWCb84ZY8z+1_K?n9H5OQ!3 zp?U@+6t);{5dc_!)pQRsT(@$R@=YPcA|09y;|?>uP|yAjti%5pKL9NR4mPGSW%U36 N002ovPDHLkV1km|l0*Oi diff --git a/graphics/pokemon/tapu_koko/front.png b/graphics/pokemon/tapu_koko/front.png deleted file mode 100644 index d6a5fd655ab76cb75f2c56c074ec438d93b743af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1101 zcmV-T1hV^yP)_)0C+ek z@OU7wP!J#>7)V%1I5;r)`1p{Jh%mUQpm-<%004f)A}s&_00Cl4M@0Xn2lB-L00VJJ zL_t(|oTb#UZ`(!`2VfF{0F4qs6md5`vqsE`Hsz>s(m~XvP&pMy#ALS7V~mbMOd&xA z#~CEmi>04m^hWzoT}`@9gH6 z0k+Du)&frE@jM9}$h4cL;I4*hHj3*466p@*OE5x7>FW&+siDu6>h8^Emq4#3C- zz$#EhBNvc@%;s|k;v%5Z|5&lQtW)Xt8UA2v5%6a53pCTe38~(==*#7U??%3#v5PC!Nl*(K}^B8vz73EvBnT0H^xlKEVR7 zq6;>hc?dL6FY z&XXQ~rz3Ee=e{9I69o4f#`uVwhcg#}4WkTj{Sd)-_vrW^X(zM+!4Zs>ugF)UG@b^Q5J0YX#x*tmb2T$9{jnD z%Upu{v$O}UJ+Y#?fUEGs*xk;62jLI6iuUf^&|v;op=D382hk5_BRd23->bNaVO?nj!Q~E~g+GryF9S-y@-V)f64LrJ zkXbxUX=3|1;PGTQtRr}bp#MgcoIoR4K=`(ufXBx#_bSfwCh@%-VCwvtJtfK>J*M>8 zoSqPkCry$E!BkEQ+K_MF%n zGyfTbV7LH{o?}@BH|-!e#R{g5z$yy(1dId}UDbmisbK1dCW6%llTk@QSMMSicZ)!> z3kYN^F*XZoEP(t}ZkU6;BETebkMV;5Spm2iC9}(vZv*Q`j0rSV%x9Fvwtt z`1tsckcbcv5Xd-C_-KHLC^#Sx7%;e~pg?E<008WrJT3qL00Cl4M@0Xn2lB-L00MDI zL_t(|oYj=SZ__{&$DPem8JZvil~}kmQlxg`+%`n8)K1lmjeMd5O9eO#jF2!em^N)4 z(+*WK_!1V>rG6)*!hrCF2`||@^3U-4V?goQ%)H6+`}q5P@9sTo+J6{@`G4d~5AuQA z>y=!If@_jo;LeM6lIKy_un5WXFsR8$jz^)qVG`EL_9$8I^L0|$$`n{!b+L==B8)~C zgSE1X(4ThP%XrJG89=AK0K9nDZNJN~I9!k*WOUN$dTQXSSekrWilCSQ%)!qKTK+A7 z`)UCxL_q5w1;pOmL@6-&a!j8bOBsg}&J_aVxlb3AUc^#x31-^im4lyfQMIFuJsZLKeQs5y>T5P{Ln}adQ%DCeZrWR2F|qm)ThA+ z`a4Voh%+sz(JSC(B@K*V66#06px6gEXjP0^Kns9-r7C>`it4QUZq!i3|ah*nieQLS5oDab!1`Vi^7+aKH2NNMsjq6B&Q7|2+Nx XEJO3-%rv2I00000NkvXXu0mjfYSwT+ diff --git a/graphics/pokemon/tauros/front.png b/graphics/pokemon/tauros/front.png deleted file mode 100644 index 0d47d8939b133e0eaa00535af7854f326e7dc845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 842 zcmV-Q1GW5#P)Px#Fi=cXMVQc_IXOydYJ&g(07^M2i)vD0N->LKAl{@(tc!Ea&EA}xtWr4;=EZxo zgE9E{_}bGgzyJUO$Vo&&R9J=WmfMo!Dhx#ff>)h(rqVEX;>B=uj=wzh~NbWtaV!{MK54*|{z%Nb>VBWTZU;@N3U>^g3_s?7Q zbbQx}9H4#am&MDZSQe)%C<~*vfYbrXi^;D<@KiJ^y$~o1 zU-c1oOXvXdW|0B4F7Nlk1O?CuxNHG?2iOOIl}zx#uavr!fwpNG>>Yyt0~O%PxQA7P z0BONeDPy1^lKyG{r5nJB9$-)JH(iGY2zwVj;Ni@>ktet8mf#J1pYUM7=oFt-Xt#oAVDR2~e*-vc66v$_QtG1hL)Ws+XIqgj)+KCrDugP{JL6FFG#^ z-5|h61AKCr05%3dov)C#ZD2qw3<11eSMedxIbsiJBAirFGSDZareTNNy?D~ki=aOF zQMqE6J_gL5$;^a4Kuh)UY7WsD;Qp9hB|$(%U^xWrx`s2D-6TbzGXNqSKS-%5ufDS2 zvtJpZ(6`;~H+EZ&d6+HuFTRi!un)6^%P-`faFgv_$Vc{%fN!&%0RAA`fAL%V2d~X3 Uo3XS}Gynhq07*qoM6N<$g8x~0-2eap diff --git a/graphics/pokemon/teddiursa/front.png b/graphics/pokemon/teddiursa/front.png deleted file mode 100644 index 9412d0c7f3a6195e7c88e6eaa80ee350411fc42e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmVPx#Fi=cXMVQc_YC#yZVj%y6Io@+I5D*am|Nri+Quz4z|K_A>YJ0S_z24s500000 z000000Kd_ZP5=M_dPzh_(T zSe8eR9(_z8ddH4Mgtrku#q~l+WP;%@_#;#hA%3sn5@Gy6A%X?~b^xnpC@n2QU^9vZ zaTV1n)tes?Ljbv*0ubx!s>MSwB87^OKY}Ev=B@H|lp_R=L{P%;i|Q4CA;7|X0Zf6G z74uuytCv3lKq16%00ZE9^iZX@m)6An(7-dm7)vNb~5?K zik88(XD`dd&OjQ$c5>_!jTPHPuK<|4bsUE9Q91~75y%+ot76Z!63%;D8>l4xbOH!8 z&(@Ns;q+TSTV@{^0O_#XGTKrV7~v{TzpQ@&(u6t1)1L%vL}VsoK;o4!{9go()Z_{F y?17YL)`p3(?U0Px#Fi=cXMVQc_AX0;B5DcbG3D?%K!iY_(?=TR9J=WmFte{APj_SN-lN?y#L#tu}#u+S89NNdsJ51I<0AmQDProcvj2HbhO^&qtB9}+8Itrk|(x0lhg2$>~;6o&hb zP89ZugO>vY4#JHaQV$?urb{a^lFBUY?oWMf2n0!^UQEX1O{f#sXw=*4&9YBTy?Rd{ zZO(ZC?)539N+7I%7E=-ldjjs|`@TCuSS0cm^>eUovayxmh5&gMDa8p0_Vf|X5nsg3 zmmxt9Wj2DKVsaF4vozeD>o8yzrAW1q9pL#BuHAGCNGWT(KrdtpT@0%qfBFQd7IMxy ze*yqk%_A=Qq^uzTCT&cZl#Jy=7oA(d9+Q!6JyOaVm`IAFp=&#(x_B0F=%f U4s_dl`2YX_07*qoM6N<$g3Uk?j{pDw diff --git a/graphics/pokemon/tentacruel/front.png b/graphics/pokemon/tentacruel/front.png deleted file mode 100644 index 52e70a7343ea6d14010c9a70c97f7d61ee5b8aae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 927 zcmV;Q17Q4#P)Px#Fi=cXMVQc_AX0;a&E|s;5NfpML6ocz5D@l3QvbcI|NsBADInF=)lyO*w5)T3 zgF)uiq|M!$LI3~*9Z5t%R9J=WmD!T&FbqT^94kQV@c(~%yIao25@4q8+o-07Eb3!z zcDnA*{Xaluo%-yZb4*}k1%b5`TDumEyJ0_U*nWb{&p5V_&R)Q0E zxI6;R?#iG0A>~#EA(AUBe~E~?Sq@b?bH%xr4$EQ4>PWv>Vk%21sWi)TU7i9w=ez;r z#5LFZkcZEU5Ex~+E{nE{O%QfOAVXyg#H_QqEV%_?N6mB=Y#bf^Gp%Yijt!BQVjlI9 zE`IURv>p~4fdfy0c=I^WcU`F@jBL6g7{6SIRP=8LIrPQ17W%MK-Xpx$GKD+BUyP5+ z1bd5c=%)~z@(QSp2gES}0YHqO$?cRw!@nsA9TA5Fr@j_g)*Omz|vGA+}prQ|Kix5xrrF2}NAVP~%NO}|&uhiNa+Yk(R zKkC&(08r%(z_B$d=_IXfxFaZjO(9mpYXL&vaVAvV65~NVV0%IYpbFs1yA6P%E)vHp zbwPl#1w;VI-D{w_tiyxt5}?!mQWUpVLEQO0V44&H0kQkB)U0Rc-RMV-$IPw(#ut&b z5Zd`M2jHPMUkNPk9#DJ*Aa@;}z5w`-bA`991-nrYp>n=lRb)1CghdUxeW=&!4=oU& zY7ccH6wbn&L;zeX&I9lW=(N*njL8ktpxIpr^Zs2XC?V diff --git a/graphics/pokemon/tepig/front.png b/graphics/pokemon/tepig/front.png deleted file mode 100644 index 0e706ecadc998edc44eb62f521ff059c04da3710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmVFfbq>XgDaaSUBKlD9AuKka#HYfJperK=}Chz^I_0NI(Dp000003*Cj300009 za7bBm000ie000ie0hKEb8vpK)Ui&(Fc1b{JM9A`DHTFYaa9Q#mee32 zrbeVx9UI~ykAbL^y<;~}GTfTcJ5!$k@lx1HVCmVJSWs`W^nbd$BvuGH)!!8D1HRkS zfc1iakO8+$P+%|*tbl4{1{3Zx%N~^Ti1h%~z%qe04XnVoPH2H=&bc?T=c@gr$%lz4 zXVZl~J{61Od~l_~b*axQ6zmz}EC(H(7s!*`%iZKK2hc4jw&{bcZ@xYoKwa!&&14;h z9{_4bK-qEb>}4HXcECYam`S;7!JF$KD>#YVu{2aW00b`5U{!3VP#tm&-U9^0FU1-_ z=o~8Sdp^Eu&=m%T#a1O{3sUULcsjqZ043rshcvJ0n(CC>l=002ovPDHLkV1h|W#m)c# diff --git a/graphics/pokemon/terrakion/front.png b/graphics/pokemon/terrakion/front.png deleted file mode 100644 index 53b731785005c1557fa9b07e57ab482e2704338d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960 zcmV;x13&zUP)gM3EvmE{&z>t_sJ*Y3^9#wG3g4H6fWU zu*DTuru24hQVbja4{5G2bNK^;QiNg9uhBndsE(uJ)z z_+uUZD=UEK65DMf+%rPwfCLiXcf4Gp_O=k%M>S1=Muwl4g_9%hiTx9 zB?mjK&5yPTsPO_o9)ZATjW9U?h5$bT&#t9Ip=+2}5m*xSSvT~7T;Lc0Lw?+_OTcGQ zI>7dUm4J>TyQl!|Bu#Oflz$5F5^x~tr%vuc0i67yCA7one-gc`JFE)?c?6vNc}2i+ z4zw*+4}As=aYlek`N_oXao+o&fjt6P=X69)#ROnp1Dy8h#5jj2?EL)xFPa6laDw?O zeqMAL5|G3{5fJ7rXn{45(5RDNJ}ET}bqgf$F$ZWH76N8`sMMT**lX~k$prFU5Jam^4vD1oGlq#kH*EM#dE+g0lqmP z<#j&?#uuX@0qgTW5-X7RQc71pIX<1%@n2k2KuuiU$eRjiO1p+uit!UbtnTH5lv4sk zbBf2F3nA<$z~wh7AMSIYRi~sv1Jw{?ES?FGt)>;wLO$(-uF=!dtBh7< zeoJLbkhTGkxg~%t%jFtSxYQL1$neQ6yfLeKFmaj%(8`uAlCG^Je66e;;y7|WYnQ|{ zFmH%8@OYPj7KnCHYl@d!pVhKbsAcMw=dMJT>J}Pk;R2OrWs`X1ZhIQA`oAkzkjIN4 zSa0*op_(sSQw{v4+@82JUIv5IF99nWAgx!Hzf!ZWVr5$?z7wDTB3v{Jy(XUDStf0h zfa1MurGqpLnp3@M1_0VK*a5Js3h5vy=pd~Rpzy2;JaHvWYJ&i7Hox=JJ_5n!PlpvD i;Q!O7#jL9Rcj7xgXMBS1*m(5-0000jkd6bEoDEM*NOxXQ>wD67Shq~2O_f_My(8?~E-`@mZg6HcBhVP~vt z*}An-zh~c}Cg!X*QPnlK+3&~y-8-K#jJNgL>R7J;8~XnPtizA~^-KN18&g2%@Nd8b zH-Ib4cK08&o^~FjLF&4&2RaUbB|bC}LFxn8d)uJ8?;lT;=w{%9bFI(O@xf2QttPhw z#wmaoYW1!SDShiEnBN*zePz47Tm!L9snq1S!bDUxW<9*s0>;oJKv+!*B!F0GfR9go zNI@uok5xfnp?4UU58$8jdj$#wicISekHh5twB$hp=2&B`4VmEhnkOY^)B@vrA?qc! zK{v-9$Ou)yrgAY`i_bPhP&6vMUDI>ZZ{1f%eNqz(!vl1mwB0mTCG z3_=0$j=(gOa-{`a){70!+;HZ&Hwvs6)9T%tCdcy3V{leh3K;r|8<0lAF?z9Cl*`a>Vk%X#!BTN3^}TSQ4OJ=84k;pxo|&3Glwg(4-3Ff+wvp?&y|$dX#;0%aban6j5?M zZ|!nUceOVpfb?J}RGEwR7#8^U$#7+yBZ)Agazb_a+=Dg=a5C&GfU}Z-sAL=1u15)x zVbYYCMdgLSDb>Yui@+N=?z(RbByRu(5fHlsvoF58!Z_Fp5?Pc->Ksd{9rhi)Dh||W zB8+C7v5UDR-U23ps!WDbhLOqp14$9QYX2{pVW=aLD|1G`B*1lG7zgSnK)UB9GfcTb zA>wQgSOk8zJ%7?|;DFTzU#~13n5jQHVox8=(Ez~&z X!%Y62kSkO#00000NkvXXu0mjfpX+N) diff --git a/graphics/pokemon/thundurus/front.png b/graphics/pokemon/thundurus/front.png deleted file mode 100644 index b8ff39958f1fb3b069fae0fef04b37783d4d8809..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmV+m1oZofP)w>Wv_p%3XT~F*=K7dIYC}#Wxgy*~D9ogAvY;B-}kq+-q@1N%x&sf&~TZOV^ zRlWu|Zn=OeUx6GH6p$AdP*8l<1kXOOMVYsOQ7XTmO0ORlgc-AbS zbooaZh#Y|atTQl#YZ&9`utxFM-W}%D2Np0yapA* zTphZ+agO`}j`Bu;^$j2V;2@vi;OH7)^w&dB!pDJ4a>5ns)~mPgAVcF&L~#KRr}8lJ zj}eMT!T^L2QY9DKhwtBkinVyeCRt#iHcF`tY!=ix_9B&NBoAa(AgVuB~&7oR+A7u8N{5O&3MyHA(~>Y zUonR@Vl&R^69c&HzqkUXjKPzh8Yw>ZPnPhKlkRvlWmDE2?g7tEms`#1XKdPux!|-N znn3z0w#U;ciTO~sk_C#pmWrGY2p{udn|BT1CjBFQ-{9kzQ~f!gb&M(GwuPDgS_72V zvk6LTwb8^a&Y^xA5XucH*IP3INQI!Z%?BNs1I)w-Mx+`LkJai+1?{C;LV_U$n}C2> z#9|{dEr6Lz%WecqA;;YRfHPddxPUtX5QfB~2dDTI(f^7--12D4A z-Y{Um-;*yQNO7snv~1oXHtTD^lC6y2E79s{z#^c|Kd-@Xkg?Uv2(@bUb`4dmzbT*b z0r-*utWpcy5<+kM@{EGs;FJMqJB3p6TL;|*DaY}7WgmF`n-=T+u^XR%$0OfCA?X{t zvb6=^fU0_MPP&edelmdKLIWF=StejDBmna);D-h;Uae1QSE0xGY z04&#fK1C?~pT19t&`2<8h*lqn^==#!C@DgOAbomzl8!UqFJTkAN(ds9zEm5z*7JIv zd63yye?%Uc`GD^q1vTu#)s#s=^d*7=h)alT7`dU7Nda3DnA(q060EPJ z`}=KfnF1uS2(fFx=AHPKT?hp002ovPDHLk FV1jVH+>!tQ diff --git a/graphics/pokemon/thundurus/therian/front.png b/graphics/pokemon/thundurus/therian/front.png deleted file mode 100644 index 4d1543d595ce76b6037201d9af990a5ac67b13fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1061 zcmV+=1ls$FP)AOHXWb=m1q000B9 zNkl}&)%t~9b_FIa4(Md~TAGIPi|ViW>}774A< zu@1?2Pa&ls>y}Db()qG!?Y_`yV>4XulYGwb#23RKMjP|CBivt7fTOrqt860lg?Ry^PH&HmwpQ zK=93EQONNb`^>qRBf^1GZDOT;5$LZJEv5&=YsRIVD;*vA8!=gZ9r8ytW$o$ z#3I>XPw#jT&<`X)_;>+4zX z>xP~Ioxzx~0R#~rSl>ti@b8uTJ;-8b!Q=vf2))jXwD-Z^#nA2=+RcCkw{^3XMNrJK zthnr<-40_A;zX=Y)no*d@zaSMMe3nhoekbHHUS`R51dw+jvJkd274*SGDl1OJKjuA zM|m6%+(97bW3WFF%ON`YOS*bVN9dh?49vu@%ZV&;{3B{!@Aq)Im;nqdOg=r|m2$9T z76~sY#m4supqR3VV}3^W>>vinChY!9=}~x{GzN?sru6VPs@cI>ti(`_!l%&o-=zRt zXlf}Lgy&*96Jp+sq7v1-&FAP#-bxuE zu0P6jwE5(Miv>V5<=mA3$i9>5YIr$tn&GtsYCpX8T|W+RGg#^-thYDeXBX;kj9$ko zJhx`I8P;Ef;ioZ)u8H6M0^G77k2>H$5abct`$KqYw>?my9mY9#8wt^nd2U}2Nlo2h zBLjRt=RQZS9}}at3^U9D3hmmE5J-Ax)zO4u}D4N)dmC3dje2*Rwj4@Ix@1d zAjD`uLX0&?%+v!9KsZN5YD>(F5Z{pH`}w=``C?iB`onUZ=^uRt;5lY{Y74Z?Ax)kG z5bPTQ_8RabVMp*KuMpsEo!}aQsW5JU2R=38&lLf+IF2CT;4@a>SJA44I)WSWU2yCc zgu6>;2A~8%1v}s$pYmeB222s5(mMwz?9f_7tRk;08-WtyV#2)(*KkLA=#(YBjzdEz z_Gu1Lt5>Bdn%>erilZ5Zo0odY{spWtz7ZxvJhgzF4L}IbFYEz zl=a2E8f4;n)E4CXta}Jh-|7KI&ES^9o8mWTOdX3Kb&Ew~$V+45QQBj2WVi`B?H+*oR}?2TvMs52Dm_DO%4FU>YfW!U3K48*F9io zfc_+y_5kGxkd^mk=6P&{xac1%zWT$5@vnY37)E-(I#VdDGJ{M613!@KInJFv4`fbT zv~DJX%G)C{h=zz#1pcsdXBtF}&A8_UBDZmxI%q5_FJLUy*Obzf)zDV}oud%iI%`s2 z0X5&~Ex%7~CT%M?0G5V?cI#*-bsI=|)1fuBLW8E^EIz>0lcnOE1hpdsz<{b#NET=* zLKg@RKnef}g+Thu+CXtnza_8+nmcqdMh|>;lehE3XiOGiVBd35;AxZAm3RC#h_qakSl&Z10z0Rfl0@`;%8H4uec{LXKX@Pwa>R?~8 z1y7ze(w$4iz@vO+pkm)(_fpXS<=YKEN=;-(m5D-9s=x{J7$Vf1du=x1+__%<8P*|t{0000000000VE>R700069 zNklEbNVtt4CnL=5oUl3(iP0qK>i4j zPwD}(!8EXptU)|!kg-7^CxIohftXIP2Jv)6Z7>e#e6hAiC`N#kbd!75AcS)uRd?E$ z+!>4jOH}v9e0By9p92}fM*`Lk5af{$3@|pvyrAoHF#x_&?dq8T=?n;1b%D!wir$(w zfg(h=gv0v|ac9i_dzAnIBtu|}KlWG~Kp6BA$~VLm_lQ{y^k;QhQUY(@)Cq$wFyOSt zfB~<$lLtz8U@hwaxhI-iefZ)um30z4(O&z*4sn>EY2Gb>omCmIUe$0Tw;kOjgeyp; z(^DBC1Gim+Ah8tBFy$w}CH(9q&`KHLCrqvkXs2&hH4t({;xZX{tV@s%3GCBN9K0LW z$j7iH_(cO`gA#JrM_+46G{1Z0000Px#Fi=cXMVQc_lyh1D008#x#m$^^b4p6~)ugN-ApigWdyACS-rh=s#olvj#X&)| zw8b%EtSAUIGXMYqBS}O-R9J=WmCJI&AP@w#FNDFs|Nm`fk*rGPkYqVCRibq1_OJ%~ zICge+c6R;_F&;V&=2d|(sgg-rG>{0hk)&kgO;!X#Di9=AH4AUW1u}VbFip{&fLEbg zpuWTeit-pEc)IX~0s_f-CWgXGgajDB%o#wCG`;}_W!VkqRewQ{G{Zpj;iFr?7Y_mX zgE3OH!Ydp2E0kOVK5~#=`CDi%7V5xdqP6<^ZmktRi4g&iDR4u}xinLaOp*IEj9do< zZwNXr)BpL);DXx#LGNKfFQe2kO2_*WK4xAs@bv z1^zJQ=>Q)(#Sf3)A$13$7UyvvE%^ug8P+w!-J3bt>R-zb)y~e&&hPmGj2H~}ZTEUx P00000NkvXXu0mjfZy2;w diff --git a/graphics/pokemon/togetic/front.png b/graphics/pokemon/togetic/front.png deleted file mode 100644 index b1a9db4df50e7ad709f5a308bf65395745bc20fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`7zFr)xX!q+ zpt!pE|Ns9$fi*|>UVZoOo}=Yn2@cIE&jgb8LfAklI7r?oH5F)1jHioZNJQ(~X{XmU z8}PV%s%%EHYWE)Cc}}H z>}h+xdMmz)YG~Lc?@=kQw#-M(+`)41Z)b;-V$1$&y3AwUaP}1E>irB~c@!C{m=DcN z+mkKe$GgN;RPoN;Jcq?gdA%I19o}!cGPfye)np~r^AoICO*e}=oRU2g=jbjV=}=YP z`Qlpesy5NuFJD<_{EOV1ywKtF%ZsjZlGbN9{%>CB{;@}Hh2snB|Cg-IFCwkaxf_;t2`}LDn9^Wal zO|_Nf!Llh03mCln9W)vq25hWU+mM@3uCPav!T-w%7dh5~)K9mv?cee{{9qS0WbcEP)D=i-ViQXYfKg_8bxym!9?i@}C0)LU!}#vG+RiAVhP6a~wD*Fb;{!83J6U zHyk7VF88}Yz**n0!6o{DF+Fi82n=?V`3^+@jk7VOeei~!%Cih9P`QwKMk6p6%}l|( zR}`%{hroSNJT@SM3a-0=*sOqd3fiD6k~Rmw6(L@dEBIULaik0=wZYtA2bY{t z3jVt;ZvflJ8iea}FNA>Q3vuhYF$hSSOErxzz?`H?sTe6BR;mlI_dv`j8ogqGe9gZ< z(Squy9L-^HR@Uovg&Y}G?{$qGX@=%-h!nKO#Pi+!VV45=>Fl2_Mh_U&& zd1_p`HpU1W4#KFI0*>QQa5#*a0F=il3s{@9jEp4#gc7ha2N+tkDVP#@bhpiGRIAH@ zYICRRCdKar?n@cSZ{Qt%jA>H1`Yr9@w`NneI|3D5w23hUg_U=UmAsfGXf}6Rvh`Si zYm>7ike|ZrB&%MD*1nVat~DT1r3a4!c5#EzcW{qXi&{3!l`bJlq72-sjhZ}S z1rP*PYPfatk2)I+RG409fovQ|A9fXM;6$Bv6~wz@J550Ffs{wEi5loa6%T4G0Q7Qty5ZAQE29#c{N%(49)l#jNHBo%a3=NR>I&W}fq!41#!HpIwmdbP7xG?~Z*SPLg9ucCFsWv%CJ% zSA*~rh1%(x&%joA;-arp;GX;=3?mS=Tl~t`(+KNcdtbBkIgJoo_oVtn-nPYzR{*XabNo_!2x0>q_PQM&r)y`x65!!-b&C(hWOuXTKW zK85v#JhyIJY)>C9E;_-tcL1qftnSrI%K-b)dHiS@U`4hSEd~Au`xh=nUVY++{WSmp N002ovPDHLkV1nn= diff --git a/graphics/pokemon/tornadus/front.png b/graphics/pokemon/tornadus/front.png deleted file mode 100644 index b121301ddf99a460d3f2f0ffe6c9932652869452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1004 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 diff --git a/graphics/pokemon/totodile/front.png b/graphics/pokemon/totodile/front.png deleted file mode 100644 index d8ecc06a1ceef9e0264f6aff95b00a5fcb936689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmV+#0_FXQP)Px#Fi=cXMbMbIF@wc1T7zn|=9Ja{5D*am|Nk*sgS51?dl&$;N>a^1Am)2}tb-~4 z#ZtIvXgMX0hyVZqm`OxIR9J=Wmdkd-APht;31Nf5|Nptw1KM;aSoCz^N#a%JdL*Pc z$MNdbtA8#4H~?|iPLvV=5drV{Q%Xp#EdmX{hS;eB5~&{{XV{9M_m%gVbG}aEqFM#0 z|EfYb0dG+pKy;w{IoBotiLm6C_Mw(=p4_-D10W?oya|vV5H1A3;g{YsU)-{_gBJjP z_8-!Q@Etw{b_ep9Lu9+^F$588F3rL&uSW2ULh`3CbPHfr#Xz$mZ`|CtL{SjsZ+IhrLg`5$+WL zidzHpF-QoCkh+3?X(TA1kBuAzt0V|;0&N29B<%asKMBDAs7-UnH$Z{mg&KGB&dpt5 zUYJJwK`^X8XJzid5Nz|XQv3jrP0p-XbKpvTwa`byqzn35d(8g2A(L*$-k%K@t{uUv cSFiqFUkV%zPrc_UrT_o{07*qoM6N<$g2O}b-T(jq diff --git a/graphics/pokemon/toxicroak/front.png b/graphics/pokemon/toxicroak/front.png deleted file mode 100644 index 27acc59b7794da48d4842af4294b5392d667f5dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmV+#1LgdQP)OP*|8aIIyt5`1trZI8gYQpm=zQwaG~S0007| zNklyF>ljQ5Xapod5MI?*?3{HpXI@kGB{TcWlcUn9qWKfNDNg!0unO|thnm% zykVw1iKS~RF(9UNY4?5r76#T1<({1;jqNroyd|;k=X-bm|GQ^d|IgZax&;u)7DC__ zLf{r+$K6JR$V9LOc$BDt#|W4-g#S>HlPQPOLmWQH>4WuR%Q41KDc-a6sXOFU$oOKtvuAv6F%oe~p==q$$H0qloT6+YJ*19YNxNIng z1kr}xf6;&zy7l~o8&j0mxQ)r% zi;JI)o8f&=gy8&qPV4DKJ-~KVD!m*PV-;$MKL-m#YHNg1h?6d)3SX{0~ zC{`hQR_0;?^5%?p0w?q0B3J?QGUSI0%#t!-t_JM885{6PVvlQpN5bYGM?^8px&kVg zv3Pu%>XBi`t}O9f`F8^}P@~Lr6v50kdWp+x$GURLRhNTu6qsZpaI#un5x~fkdM)Iz z5{(`ZH2OaQZgE(xy=*pClyK6v|LbB1k_d_OGx5yo9>b7hV?d3gxUYi6kf9F$-1 z$XUjt?mZ)<4wL3H;Yt;CZxJB_h?;*GtK$B7YBj^%#$^TFduY9+)UxlcyPxaP@ISZy Y0&nWgH&{MQBme*a07*qoM6N<$f@5fN-~a#s diff --git a/graphics/pokemon/tranquill/front.png b/graphics/pokemon/tranquill/front.png deleted file mode 100644 index 2294a1f13ea1a36cb474f13ac3748001f0f25a73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)lk3KMe{q%gw(d;b9TEc^lB`=K`2i5ZxxK4nSXNB%m`HX;97t-aEBg0}*%`9|PC zz(PA{f(>8{VA~~vD$4>CUI8(5x(Bv|c%#b)7U050Z*cr`F{1Gj9CUgYSN#Q`&E4&G zddXEkVt;<|w7k99?d*F$fCiRl?&$yMZZTL@GOEbSB85=9~6iU&rq6rPWNM@zu&&OEdM#O?XR{%SxQbHqi4zBY{P?k8#e#;01_uWNph9FYFLliw1_nkOPZ!4!kIuJ~4E>l51zdYY%tLDC zxL!HUY4-T-<{J|=u1Dn`VVzLKRJFv_%d1P|4#U$aH%_)?rMbF0*8QIU?|X&Y%I<%w z*EP)c{J%|Q_msaklOz3v^nN~Njy!q&u9CWdr{Kb6uHTMwgkRRMOLDswY0nv8-u6M3 zv%`dSM^5U2V^M56l~H>wz6stnRJ^vO?roId302KRsSOh&6y`84>SEpUQ+5IuhfTw0 zt$>2Msusyw5pPBVwc8HIE(_eqZI1BilnZ9KOs@7m!=S#1{O9*Zz3VJlj7Bul7D> zbpQHbdv*BMLOq6~*S~$f5V*QJvE$pX0*~XWXBHgNwD1sLcgTe~DWM4f2{gD! diff --git a/graphics/pokemon/treecko/front.png b/graphics/pokemon/treecko/front.png deleted file mode 100644 index 6869c279b36de87f8d1a7794317b27ea372be434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)K)3I*bFc1b{l0&utqCmAP#YjkMz+M7B zfYeiWDLy|z3gitscWBYIQ_)wDy9DrL_X%1JMRun__EK+Pm6DMFHYKK8hxR7H|EJ^W zBop$#{!Vds>ala_$Z3|JObZu4aD!l$zC?7KVZg-`AVEaO8378+pACbf00Vq}mJWlD znB{Ly-wh670KWS4;`K0io8kQP*`)(aasJ_I08oz*agKQP9$G-HmlmXiUQ7|^mmLt+ zzT(28W=jZZ`@$jLKyjL>Oj=07BC^EEj1zVWhY^ zm_Y$>kIr%^np>i;Qr=T-x2b&`OyRX^);X9 zrrBOm*z3&0SzkwZSCVB{@=7_p(?)v}(IgV0YZ%t_%a1wUlR@Zf{ zwLTn@A_tHx0;Rk9Wq~3}%zq++@lIGL(0C>i$pnlyYGQJG4e=~42op(qBbicmPM8V` t66X-~WDi6dfDX{LLFY$l>Z$x+t>0=Fr{u&jEGPf~002ovPDHLkV1k582ciG~ diff --git a/graphics/pokemon/trevenant/front.png b/graphics/pokemon/trevenant/front.png deleted file mode 100644 index 5dae0e09a4ed029ada37552459a6aea962331cb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 zcmV;)12+7LP)8nu5XWf{9kiKpQNVx~(j7ZE7DOalzlQEA1!xQy9-;^66BH<96fLL( z5=@}z3-k@T*=@m z^qkOlaQ6P7kPZUpuitb4o1U{ov`LG77MoHOqQ*E^}G1l0erD* zcAbj_-*Z0eLjU@^eQ$m2m^V$ciSJ#jST%|42Rn4oh?Cz&O+gepnaeBKsNcK|7ukh2*A z*cAj~brH5Ls3Yu_?SK-2+yfc`xZoY|wcc*L6@+!k<{bdClyEWc#^&>%;!|t6IXeKc z$x7+d@oQWBE;ja>sG&lesuE*$QxfExqNqE7SO+flc3e7l*b7X(b*a6cGe_EcfxDet zBehO5GP(k63#9ot;Clt|KcH6l?HV_D7_B^zf{c{1!9#|EUInU7BQRCwDrN5j*mUg_ zcoCJtbw3sA9~P(q-L|&oJxE})t#Z~^1!z>_21y#}qq|CA8 zt+*P~aPg(;$B=;2t1vs2C16~jY(G)z%Uh|8dLLjcsj{FK;{aH45-TMK0OBRIwW(Bc z093EqsG$QWs>D{bzkVGoX~&CHmMVLhk$V6>YNWaaD*Ts?0D+}wt`O**d;iy>XvVNa(mY`1okxXovs+08ltEZNbmz000A1 zNkl-LaF+;hWlSiMF7DWK&~p27!lJqppmq76{>`VcUG37 zX<>C72=r5wds1<60-RdMBBbBX>StV?ChyL;XC?vtt{!0*Fi#jHO8AgNOC92C51u zpaKAC@qX7YOd>H&oycGeCDNZyDC}X^boOx3MgsCnBTu8|Y=w-l}x0(__ z4yJi#eAcePHm8#>&y{wTNDP69NK%x zX3Pi>SgdGuP-o1GVuLjb+3uhkg93rfR@mymj=2S>!r(H1G4BNd-OKnVI`dF3o*+m+ z(cKv(U=Kld$fhUVOB0z8%> z@QB`ekmFTKb2c8M+)xP>1z>ubQYBQ64<;Hxz^TVgun{hXpVWI3lx|5+3J#v%A^h8uBiZh9oWvb9+EQC&zFF= z!Lo)H7?oS>q79%haq|(Dk3haC+g-4Mc?7TJHXpFjCGfZ)U|L$m-7Z>ydw93P)Xeet q;l1sU=TwyY_%She`}4}UD*Ol8yfgaip%gLz00008;<_a-%BLfcr z8&AM%u<#7rB_NU3P6rkwdQy`{|L5=S?0MVzleM!6INIL?oc~bvf!&UYGm80opY{mjLGqloJ5X z9w~H-ygTioqWe3>7ctrYeII;H-JvHJ| zKsZ(o;9L!k)rAO^9bh3>!KG4Tpcb8I4cLwG3e!n16^Elx>*!_`*;{IyuuE%TKE2JC zD}u#RYh7%C`Ap_{E-S#@OCBRJ)mfI|Tc70l{aY1yG(^Oj4E>H-Jek)@i)UlzF&d~O zlg50!o1b$sBTdwiTG9ac-7*hVz>}Wz@hnz6iwKyv=BroH*L0TQsQ8o~Te~b)F4iQV gw&dE;ZT*}21pMh+r_{RfNdN!<07*qoM6N<$f>Q?3Gynhq diff --git a/graphics/pokemon/turtwig/front.png b/graphics/pokemon/turtwig/front.png deleted file mode 100644 index 59d3efa89d4049db933e0086b39eaea5a9b4f4f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmV+@0@wYCP)(*_}Ea$s6hDm_y7O^_JF%p00009 za7bBm000ie000ie0hKEb8vpK)Gk0F|dP6 zK7mEDi-o)36B`m*0(_VA3F$!KCCX{D&H3BaA+Ut@PMP0qhT&pX>DbWFtxf8NaoHyX zI#|1NCjqbLHmLvu(ZcywoL5~!2sAM>xxY%O5IF$E!mLt8DRs^ufK1b*w8ch3z%zFo zvHU;)7X~R2P*=Pz0dGOz(+%1e;DEv)!)U)yWS{n1BEP061WXU|?X7SV(Y?z-YMm7#J7;0000000000h+#qh0003@ zNkl_>2D z;kr3k$bADpl`o=D=*u|^`LF*U@4XyhtVxr)oN#{X>RW*jp+mIJuV5(RS|OsF7%EZI zKPwpKg9xVLj_mz@G*&QK;E0d}g^or5FzAB_18Ts#g8Mm&IZQj6IKx9A5sa=O(OMs$ z;k{i#93hbKs#QsW7{=8NIdt@e-5l@8@eL}mhK}0R0X4%9nFPv~1n|NcK)hH(5`@MO zfbkww874V`CjziVihY{Ck44ofy`glX(f`7zFr)xX!q+ zV9VaKbCzs*_y2!&^ArgQg|qjbo%LdvqQLO~S@r*`4BwigHtaY7R1N`L_M2V+S@%6% z977^n-%h^C*W|$C`tsDb|Npb6H_n)maPY`-xv7Rns^9pWHZk?RY;yKLgTs;dM^8R9 zYgkE|JLI)9UfFOuU`AtiYtJTAF%{#dW)?cFe*()SF4z~`)0TL&{lLBh3};zGna`N$ zA5qa;Pn6^_+?njt;%iQ{ne uTP-oso!?zHOg?|;>=Spx^N&F;-e1XhD1*(=GV6mE$kU##elF{r5}E+u`kOWY diff --git a/graphics/pokemon/typhlosion/front.png b/graphics/pokemon/typhlosion/front.png deleted file mode 100644 index 79830374f872756485eed722907fe413da29f0c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 813 zcmV+|1JeA7P)k6vl^z5yG2{qZ|N7JphmkG&w;U4Jhg+ZA5wk@ChnmSX5m^@_?*L zT|rz+beG^}U-bl}$l?~=WHEhjFv0VueVaslKY#Cg?+qbJRd)Z-17a;&FtlOUD^1A| z+Wv^M1bD{fNM|*hw7D+WD^K*^j6o2n=jm1x{Yz}y<%4ek<@3y0=PZ**unrnAC9)ePTBd9 z0o1~%1i--zJsu8|CFgShCU8|fWqo=-$_NQ1kZw$XBs1(fpJ2#zC778qA!JMvG??bO z5SB5>T`2DnKj!%-AAnYm0ym*&9wx_J^9xhl2@y7&0{!;PAmU0ik5Eh`eH;{x8q6~1fFlHzN zUjWGd14QT`G9^asiEBMFHAP*~Ej=`V8{(p|0!d+p#CoBvav872FYS<6xY{1V(icc*_nt>n rh0pWfD&T5~()7{#^7kJsm-6plw2$;HXPV4%00000NkvXXu0mjf?|p2h diff --git a/graphics/pokemon/tyranitar/front.png b/graphics/pokemon/tyranitar/front.png deleted file mode 100644 index 2032b956afb69dfc2cad3ba8906b4862e220a206..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874 zcmV-w1C{)VP)_ER&T&ok1K1nJ@YG$SI3HF}P8PO)mqG-n>Wt@WXD$GRWTqA}iRv{fTk=j@$Nv4!) zB=9t2>^pc+nI9{qGOW=Mc$hlR)cB{Xycn}hj5f>4lm_czecUWd-j27s1| zgNN0>pkYJjn07~jd{BVIO*lgCi`};TT1(dhf{B8?+8w_yi%TSM5CPE0J?G61V0LjP zjCyzXxLmGoYckear=AYzHJ75SPaamQ)$-QBpJiTTpSFP5=4>9p0F$-#z7!Xi!{$%T zUsymLjBOG3@$6~{pp!^|Q&@+t6~mrMDT9XqFg{QWm#CGA3W&;BH%t@Nt`(g`1+A6O zsv!kB&XI`(2wpR1LqKg@Kl``~Gv<7#!NmO)hG?rCrHFrTdRwqEY7M~4dkzS>NhH;^ z?Qd)z)e4R#0EluPW+P*r@4YM0?=?Eez8&*!}DF_w83me@1~&lcNsQjA}_j$jkU z(=J!n_RUo?xx_htTpV5O0kF6(#l)3ABA6uq0ksp`1S--ny8r+H07*qoM6N<$g7#U8 A7XSbN diff --git a/graphics/pokemon/tyrantrum/front.png b/graphics/pokemon/tyrantrum/front.png deleted file mode 100644 index 3aa035a52133f8733fb49229fbe5e507a1ffc0d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1032 zcmV+j1o!)iP)Fz>$asjrz`)p$n4nl-bqG9y00009 za7bBm000ie000ie0hKEb8vpjAc|LL^9@!#E=Rr#Z|qi$ z#|^wFQZ(=9|9kVs{|Q1Dp`f3H-uWq@`~Ybo1$Ta=0go4ewi3`3d<%E9_DZ0wV;yUF z70^VU07A!jYXj|$(Au61Xa4<0&?JTdm3T z4?42_8h|w2G{_+t@ac^1`@UQOsnFo;>9dHx=PBK*18SnZGB@Lh&+qWW^6M4Y8Rv{c zys`hi68P|6BGP;Uz&sfHHbkYud@j-%40r--LT0TC<764HJ9FFQh_D;9x{*Vcv znn!Au@tC*APmTm&jpaN-aa-Tk+o0^(0;uJYe*L%YC))sgCjEf={^FwqDBDnX>>tt3 zAOL{>Tq4%|BIxd85GZ!}yb7$3k0?A(UHYXEAcRN&eMl+ws7DB;zMO?Pppe*oXgScq zkTCXp4RF>E9$B7u09>Cj7M`zfTvYHz$m%sbDxx2oj9MwRoCHkXiCeBmYQhhgC4wSImw;k?byQlW}n5Ez-^bTf3xk=ulayyj3p^EFk2c~ z)6F~U-yps|9&m=Sne<<>rIDeg(?mB4;Ap^KYGAZtqL;_gbda)H0{skJ4n_lDXK523 zk=7Ex|9k!LCjJYX0b@aBkk_#Jry%ad;oqE}gehayJMG%ZNw)yJ=xhR`N+khwobm2m z0X&V)SSA4JQaqmUz`iTGOpd{YER_V%L;$u8T_zI_pH#k8p)TtRTi+|4E(-{N7r-x3 z;ndo-EF7E)z`hT6NhY@l0E5*+;#YA9wF(GDuuS#^A%0zP@vE@jak?cC)~rz!VF77? z?RKuLa9*TyPF@M9=gqAKqB0Y$0?;K;_b)hcLyHSQjl(#a)%O{jCXU35KE*LM@k~lL zZhv|G$+#hQvG_D?_cuvZqM7Fpa;My8&tbhq;4Uga{=m)M5@_bmYu5=}ry}42;Vxj3 z9n^3OAa|E*hyjZbYYmr>d_hk0m4DRWrqfROh4>EA)tyKlre6?KoCWDS8|1ruyJ~`w$sOB4uCxe zfH;m&3JMar-~h>4H~Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_h(G`U008iS7$_JJh*&^CKtND1DERpJ z$jHdBkZ8cbz=()|pjcqokeC1f01y`g4*&oF32;bRa{vGi!vFvd!vV){sAK>D0r^Qp zK~zY`?UKE2+b|S`89`9iw(bL{L}f~?msWXzG$5e@o=WhBfTzG{R2%6K7*+{%^iU|P z1~+;DFByw&>SSc(LzPsz$olEjp+L?=;e5R3-YcR<{ik|1=srP5Z-@M&H)!-%Aol5L zFEEN<#4!bNiqbydU3>yG6W*o=pdU^cz?y|Uz;h7B2VhYTz>F^_1I9Or`FwilyI}nH zn@nbWBh4ryzhNI=Cluf;&jSIxfb_z&)EGEhCo+@c+dSX_kTmyQ3XKw9ZFeFJZ-VI$ z80Q<)3vVRc?F^BOqw-}{1z}DEw15O4o0o;KKpB{h8wtlVVOMaD$r~eSq4W!%46r{D>Om+ZXx!jh4!aj1@dFLL+<+8-~ zEiPe^L>Ck}qkiZa!CI%z`0000Ml(=dU=+{%y~&L+=$GK)(Y3>Hu!(@-Xl~B>-oY>z}=X}LP zgH>Dy)kR1FiT4YzNmUCTw&53$jV11IYdOyocWi*F+ACvg+^ELo=a2ERv)aUou?Ekl z!>9{uWKx$}Mtn{HXclz|XtQ26-xA5CN<0008h zNklE=+UTL)ec5(J~lMASTVDIeb#d&V8J)DV;SRIY1%HZvA%%tcJ^DTNWs~bdtoFVtvRV>z+zI6kRwtKwst& z57)%2zb`3POF-1t37y3FGA_HmjvfwygL)jqIla}|v?Yl$^1Zz@+ryul=vSZI`=5yPp zA>X2)x#F)!PX{;zUdM&ljfJwm;^ynvo%@O1TaS?83{1OQfYlsW(a diff --git a/graphics/pokemon/unown/c/front.png b/graphics/pokemon/unown/c/front.png deleted file mode 100644 index c5ef1c457f71fa62d9010a780eeb70cc67a8c564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}^rO=;JR|c zj&L14fv{VBN##7^8|KO#ENIwJaJy%5hBlja>7Qu1`e%p5A6?N5<7IGr&MNr1K_gRE zNNWx2f#hvG0bf6_JAOz~$7yR)YqHKNy;VwX+LGP#qstn%>GZU6EoI%iT%lV|VQcC1 zwTzJ`Zp{wN-}cHT*4FJ|RYP>hjd#atF81gd2v1o4{^u*B68AHKOLN{O#LP2hPB0PR z{IHhaqv!G`8OFUc`WXH!RTchxsqa$a!Wq$T=5fzo>(1hFC;ifIuV1T6AHPz_UZSN? z#I}Vc^2avuriph}U-18tfAD@??!;*m8wCO`x5j>SZ821M@SfpC`Agjc@{E_{7?#^b Z^B1^QHdn<2YXU=v!PC{xWt~$(696~_tk(bl diff --git a/graphics/pokemon/unown/d/front.png b/graphics/pokemon/unown/d/front.png deleted file mode 100644 index c39b26120dd75fe6ff2c9a97d45b8eb956967f80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}ZMynFW=M25!`~UpUm07xO*Q#)Pca17YLo)==^-6h=SG2o%M-F?dEY@Sv-~H+_|{?W8F*%`~x;Tb-biSQz$alzq$JIFW z)ZT!HOq|-z*{aoomX3wr1U}??&X~;~B>DMzjqUCGeL=CYyH#esV7m8J(I7p+!_lR| z@xJmwA*n~*ZF|{t109&XY)?<%_{gcq3@wfeoP1S4-C|kM9wDw(3KH&XZ5}s= zG*9ngsNb<7o+tj?K9_^11q0a*+OK}cGyTOYrz&PmrSOV(_mg)5y~E(?>gTe~DWM4f DNUVpb diff --git a/graphics/pokemon/unown/exclamation_mark/front.png b/graphics/pokemon/unown/exclamation_mark/front.png deleted file mode 100644 index 86f329f92f6cf8aa0aadc048d4f3311ede6a28e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}czHw&Kjjf36nnTD!V9wn+~>9|c4YXK^d-xo`pq%sPSzhPI!Wd?6O;tszdo&ag>|nU-+_p?3m;G8E?wAt z&})N>!;9z71H`X%v~M*xa-F$BUM*gH*Cx)+H|yLFOl%O^$Xs)OQt{*F32uL%?ElHY Y!{=MPW~pl#-? z4{>Z?7^A}3Y;MOgzhhZvedud$?nR5O?u)YjZ}|HD`~9zdi%y*S75enjhvzMOn%nrq z`3$afOmhs#6+f$RYT^7;*G!klXw9YD9_&$=Rxn5Pj`ot<3%jQ|{S98(?R02ChvQ?{ z%=`~E1%=Mle1Z?(NOcQXv?)zI=JaJ_8tbjFu+^qFTo@ITS?=mL<%kFfSd{)-=eckD z$HgDYTfJ?!8{|owt1#Riny(R&pXVa1v|U>%9zzrceFaANSWkg*)-p-lafaGkCiCxvXkrG$9CEm!!>=NlJxcz|fhuBM@ddI`b|L@1P?D%qg(tF_q+5N0m)l6U1 z8&a-2H25`kFiLVI3r>7D(^kV^_KLu+g6>q?2BGS$nx*HNi{_nj5C0y?ztduC=2Z5K zjb70#8+6@M6szhEP2l{n!#C+#LBL9u!-3pfJ>PYGdwTwT&68>pTk9=-*uhyM!Cr#h zXrGL@bw;z6_+u`{_w8k;m=7*#aBiJ8RcgTe~DWM4fC+CeU diff --git a/graphics/pokemon/unown/g/front.png b/graphics/pokemon/unown/g/front.png deleted file mode 100644 index 4f665124ad75e417bf0ace92ab8cdbcf4b30c3b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}xmvF#qGy9d9)+ niFYw-Gp#8KejvzRC+Yu6I3c^L@cnV1hZ#Iw{an^LB{Ts5OVXO2 diff --git a/graphics/pokemon/unown/h/front.png b/graphics/pokemon/unown/h/front.png deleted file mode 100644 index f8ab66963baecebfe44700f3f7b026c8efb8c610..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B} z@x#W|-U^G|1@bJ!l(M8ZTvYZD-T$<&tD}uya^sJT&$^vPl1yqZC&<74wa&Ju(0K04 zjL*lf>zes2YlzBy&3ygFja>%I?yX!C;i3@#pLL?&5~KTf#fl0Peob)>`#r(n&HN?r_^VGoyXba{bD^_6BHm2DdP_TH&td2LdpI-rLs!MlJ<1rl zsdOfj!t0yT{p$rE+-uW$F@g8Sty!G$!Aut69qmGb3k2Bi8$^q=Fv@@D7e6ZZ_7d-x k|J^4Ti;@}^{=dd9Snl|>@YC9Apwk&VUHx3vIVCg!0H|w)Jpcdz diff --git a/graphics/pokemon/unown/j/front.png b/graphics/pokemon/unown/j/front.png deleted file mode 100644 index 4c1f4ed2e7e9197af9358b2a4fe4cc798206f686..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}W4!eYZ|-;(Yy;t>4O0cQ{kg)K~1^f@T4RU1sX% zG&{B&u+ct{y^i6%hofr3p#?`L$bCK$zvq|O%p+3gm6r1EzjEbD$VK+On}S!**weWM P=r0COS3j3^P6-+GZ#foFzWd6+lL!v%)RCLQ}}$X{^7FHB!! z{(s@ea*Hn=+xFKb;>&@Oe*Z_(ViEJMG_P2B$cn?SR!Qi!(21KO>fhT#C%?73CHHk* ctm|GzHnoU%HzQ4s0X@m!>FVdQ&MBb@02x!6ApigX diff --git a/graphics/pokemon/unown/l/front.png b/graphics/pokemon/unown/l/front.png deleted file mode 100644 index 6bb837167d2b6abb6a823155e817e4eabc8831d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}`7?`xW{V_FHDtaaVtkQBO!f3LMwJO7NeiCa@XAcL`zmOc6MpE=)(fuAEv&QR tc?I^Y;hJ-$ayru=d6fl1Gtcx}GEB^L|EbyJngjF%gQu&X%Q~loCIH;Zgwy~4 diff --git a/graphics/pokemon/unown/m/front.png b/graphics/pokemon/unown/m/front.png deleted file mode 100644 index 981c7f801cef39c3ded6b338630cd2aaf95fb083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}3_G+1T8sP^wzYeWkSM?<5h~g3LZ}Vu=oF*y~RFP zW_ujmdyeg)@j2VxLgB>i>CGFC%yA2xBCy(#9Txrh{vmqlH!wntDaBjv{p>IaE6;)0XYzpm^Tbd1O=0~wG zI_?uFvR4k-8(^HaNsQ^&jDCan33|sC%(-?vGFR~XT?tdunys&nJ>0NptANy@wXx!d v?A|5s>63i4`l-W_djGHDI}0AV{$QPB*e`wJeZ@gwpfPy5`njxgN@xNAbd0@T diff --git a/graphics/pokemon/unown/n/front.png b/graphics/pokemon/unown/n/front.png deleted file mode 100644 index cff797db4228f772b217d70ddc33c0798571e5fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}>b=CmoI2tW6dcwe{o*d`H{zV-nUG;T*1}cKlqsx?Ot^+>ai?&5x-)^?Cb9@ zY^|GLzWkwjU0}nVL(<`5@yvOgPmCNU6?-yUDEljK2x(wxpbJwB;%kTn)P%v_D9Et5lC|n3cGB z$3&(xN15b{PR{(ho2}>Gmxv{2U6PhF7|rKsF-ZPsdf?QWV@D=d@kT^XSAMcIHG^w| z?Yv%BJC{3ZyO^KsJ|T7J)scN{HJUB8_afH5n!aU~bNjyq^JJdn9xCrJ`~nOF22WQ% Jmvv4FO#q&SsI&k8 diff --git a/graphics/pokemon/unown/o/front.png b/graphics/pokemon/unown/o/front.png deleted file mode 100644 index 8b8e81295940d22f7179edabbbf62cc84b0302db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}YnhwMwK^O-`VL5b)nhrejYWT@>Vexr?>c7pXeuRmcQ{Bpr{r|T3qDA`F4j2d zYSO(s8&Al6V#~Qwu+isFhiK@b%c2Ra(`@XUU$8IcyvFr$^Sbz`#q3Xhe*OHV_Q9Fg z?AI9`GLJ54FmCu}dG>wSBJK;@O)AS8%<3i@CeOOT@MTg2gJc)I$ztaD0e0sv3{y9NLN diff --git a/graphics/pokemon/unown/p/front.png b/graphics/pokemon/unown/p/front.png deleted file mode 100644 index 99a7c98e23c354edcf868a958be7b666a9b5664f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}4^>bP0l+XkKN{Nbz diff --git a/graphics/pokemon/unown/q/front.png b/graphics/pokemon/unown/q/front.png deleted file mode 100644 index fe94c27fa08183942bb46d2893bbaa72b646e458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}wLOmE&SR@{iy0E+*0MzSh%5JQ;K=t} zZn?m9PRRc!{}-yVB**&r9`}iC$aQU7_WS*`pg=#z=o>o>)t)aAf3Hz2ckIQb;Jjm% ybs;wUUxughDg|u&$-G6yS|t4D!e!5HR5IFd`OXbr?Jf=U34^DrpUXO@geCybbci(o diff --git a/graphics/pokemon/unown/question_mark/front.png b/graphics/pokemon/unown/question_mark/front.png deleted file mode 100644 index ee0ad284ccda57aa62780dc10d723dc50b5abf51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}=jzuCRPj^mV*<-(U+okBmf>fx$KXO*!sOPMiCdq3FDY5? z{O*kym*!Pd+j@QvmJPzU7cAI!^_BAc2OFd|ayYALEIqd2knzeEuAeQB@7gg~A6EP` s)xWhTm-AgVWAvd7CM|x?zwcq#{noQ#p3urdpcfcCUHx3vIVCg!07UYM@&Et; diff --git a/graphics/pokemon/unown/s/front.png b/graphics/pokemon/unown/s/front.png deleted file mode 100644 index a144e27f539a01b6a017e2b8076c6c970aaaaa57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}tE-TIK6%-$gH@aEy6N!??sUV+eL1cC=0c1@odve zJAT8UBly7HlD!?vTP$olZ~mOndLkuG?^t(9a*VrHR+o6&#yv&0C6#AiPnx>;`cv-y r)9eprZ|EP3)IX-8v*(EUKcW4c_tPU1|G)7DdYZx0)z4*}Q$iB}%~vw4yv$htyu;11%s!npUXO@geCyq!-;|b diff --git a/graphics/pokemon/unown/u/front.png b/graphics/pokemon/unown/u/front.png deleted file mode 100644 index 39503f01c9d708ab1604482d8515d73c33b738b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}i?ouH`aUP#2UPlUy!<9sQUGRr*G=3`EpE7>U!wZ2CLLp>7VZ`UhemI^{&5+1>F2R zCcbBP3bcwT-gcTI#dh1lC1(4C<)I5x6`8+JpLxpFYHQ0^t3G{8=l<6dp0B*UqrP^( z!tIw5pTAm`PCTyNBPr3nhyNdiH;OULlDRZH)`%^f>BuW()zv%OYAmiT zc`%hjVUk})+5V@U6W^|VbZXL)EqRK822G7ScKE3H@r4{*DDrNGanXkyW%<+mT_R=e zCo6TNYNA_YCm&z>P5A;xXv`}4L)=Gq==ADOjea(7>rTPVSy^XvSr@#je|07P1s~(B W>f(ZcJRV@^FnGH9xvX#T) diff --git a/graphics/pokemon/unown/v/front.png b/graphics/pokemon/unown/v/front.png deleted file mode 100644 index f014289bdb84662f320e827118a5de202c2a75e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}SaY4@)A*U29Fbg}a8}pj$BxfG16D13s8^N1X6f7*boqPeeEnP1 zJr~Yy^m-xQt1cuL+PH+-(xPYKyA3}-*G_-M)+(@WIj>LKOZkJ3QV*{2nEW~T^jZg@ zryd8mCb+O97z@O>o!P_Sd8VVOVN*%A-jYQ|HEfb8OZ+fCNwRFmidHbh0vqUU46MppOsM*Wq;nG-GHHIa2GE-fp00i_>zopr0BhiwrT_o{ diff --git a/graphics/pokemon/unown/w/front.png b/graphics/pokemon/unown/w/front.png deleted file mode 100644 index 829804ebfcad4dc7f422be86b7bdfec7b7d46e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}N;z%4J%eUp?Q&9K0j^vB)g;HlSx2JYD@<);T3K0RS?)plkpD diff --git a/graphics/pokemon/unown/x/front.png b/graphics/pokemon/unown/x/front.png deleted file mode 100644 index 053e2ee08ca6b256fadc55cf69fc3229b746c057..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*RyBW{Ac(NLHF+6`~UyH zfPlb~B}t5@%9@E&8n0Ix-ufzwe3EH}TUDv98olXEgTe~DWM4f?Yxu2 diff --git a/graphics/pokemon/unown/y/front.png b/graphics/pokemon/unown/y/front.png deleted file mode 100644 index d8f40e27edfe2f09c1d4e3d038f0c39dd0759201..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 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 Ef{p2b%>V!Z diff --git a/graphics/pokemon/vaporeon/front.png b/graphics/pokemon/vaporeon/front.png deleted file mode 100644 index 1ab0c7e466eba15458f1cbd985be244368eabf23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmV;o0!aOdP)Px#Fi=cXMVQc_5K3YYbCkWTT54h-i;Ig85D@?W|NrKs&CShP#pZ+F|3RF+QV?@{ z2r1Q4bETbcSO5S5HAzH4R9J=WmeG#lFbqY<33Xd1%>4h~?!9&bWhI()SF3%&8qk1x zPHe|%`TF|AC#FK=FZq;j|B+ub<*dt}^Q)#!*Hu;fSBHPcIQdKg6dg|~jSLct0Nl|C$McW?)w4-8k)C>mfp5Z#lA)Yg3tvy2z66iasvhh)=cD6 zf&n=A*)6>x)h($&01hGQ`20wqitH?xH>Myt&lb>&$Wmx1r5M}5c3zlC7{p3RctK#! zU#P&lpjsj@7k04%&p_Aed|D}BQC9``NI~y+wTd*Z7|06*>;VL&R9zM*<^`%tZ-KWF zJPq?Fk!RSjF4}-URDfCD=kac+-`^@`&My}QVX&Vc;=cZJji&%bKk%#T(||hy4rFBi z5OAue?(@6{;FiMI>h=2$i1=ho32;l%;2~)HCuNdHmOO^WB;e`&lQJprn~>oU8t7VU zU%$4Yn!$ON&7(4$5u4#3c;jJ^5MWDfT)-<{{au9uA4z^138GVRaWKj*%<RQp3+TqD)h9~ dpZLT-h+hcXA7ATT9rgeK002ovPDHLkV1m%DL{R_$ diff --git a/graphics/pokemon/venipede/front.png b/graphics/pokemon/venipede/front.png deleted file mode 100644 index ebabe585ceb1fc96c90da3618977218f353b707c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVkiZxT0&a@ z;BgQT7%=1sKvs!5cdh6eumAzdbP1u>5&>$?2$7e}F(^b;r0RT6jq|Z!7viE>1zFhv z+v@^2Lx}(d4mycsQ|E8yh0ZCofJih**&K_d;gbbTAiyRmOWCSuj=d9KBOo9?`%L<) zqWCamC1aYK8BolR_4<=(w3V{^KH*ELZ02(9a(Cc= vdk@{Stz9-`qw_PDt%mJiZm|5MNf&(s^onQ)|7l_}00000NkvXXu0mjf=wZ(S diff --git a/graphics/pokemon/venomoth/front.png b/graphics/pokemon/venomoth/front.png deleted file mode 100644 index 895d4aeb97f62c46447127a7e12495ad1695af82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)Px#Fi=cXMVQc_a9DVpi@o;V|JAJC5D*a6tlnZubMD3eoQu8q`1q{F#bQ!9q=S3K ztc&2_;Fhs?ga7~nUP(kjR9J=Wmg|CaAPKIvqos zLV6qvDjlOB(Yqf&Zw%@ANau7M*5QU>V-UeEfkV0o@Mjppc>*W62_yx1tFI~S1-kr} zj&3x>+TcA&&$faVkISWh&?Xrv!B7Q>>hcxun^MY3LA~@81NdaKq-Ocm3x8EJRYBYc zd@oeKZGv7d0=a}h3|@hc5;uDsY^Su*535!MtdMgR_#}+Sh>l|2>Yy7_Y5@NrPeXaU z(M-?E+KdXFwit- z6UjM%SA1cM;!qH20w{)wvYZNEo?)c}C%hU6WY(h?G<|!7$MqJ7r;l98!D`6xq-bbV z%`(aT1Qvr7k!Tz#6U!`_<0{fnw50000Px#Fi=cXMVQc_dwYBT|Nqt1)esO6VoH09YNS#S5VS#B|5{rAth6yHQgcBm?!BD7 zlxmQO$hdj0eEf6*vC&(=rN2_2m!iyfKL8Bt%6>@uK~XUG`9330Mm^vwE&1G&DGLV3xG2S z&g=-lGcmRZKzJ4~ZqoowLm?Z+{0wY*(@hB=Jnp?fsW$?<6O_x@AA|u0HNb>}(Jj0z zJx;>mG@p3WM&OJ=_;BDY%iA4em}j%JF3)(3k>QI+Z0Z40N{RO5>e|cepk-Mo85jAw zQp_Ghq$MpWf$@B~kQp+UCqPV^Km`(JVOwnI1SU$d2_mpC=lx`tASNx{M84JliNM`V zjGDlRNQtViK1Ghi1>8Q=2pUHPsEvFw@Cif|qsGP~4v{`rJl~HzA3Dg#PT&|3WIfUX z#C;&2?|}^na)gCR4PZRtG0{(kA_7HKAYY=9z6510us=I+TwLXtgtD&dZ}6(;E!ehF z|NbV+o>^qW1;Ixg&n!d5Ba}CW>gU^5=kf73L8#gWVn&}tF@JI$m^sQvDY48gM5WdP> wwr0a^!#Gf}KrhP#J@336r{|6RTmPbd0BU;}7cSO+H2?qr07*qoM6N<$f{_0bQ~&?~ diff --git a/graphics/pokemon/venusaur/front.png b/graphics/pokemon/venusaur/front.png deleted file mode 100644 index 0d21e669d9a6f4898ba752fb256616c2602a85cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1187 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 R%?khk002ovPDHLkV1jCOVy^%I diff --git a/graphics/pokemon/vileplume/front.png b/graphics/pokemon/vileplume/front.png deleted file mode 100644 index 4b0663612b371bd813cdb5be8f98c27356e0d9f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 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 diff --git a/graphics/pokemon/vivillon/fancy/front.png b/graphics/pokemon/vivillon/fancy/front.png deleted file mode 100644 index ad26aa4798f4fd2ca655f89f5574d8404b93b69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080 zcmV-81jqY{P) zkaCa>0~z`Olyo?-n~)4dfx_yGE3i{iz(ByIUOee@6etk5&)ty_O-Jd$f~k9c{NHnY zk!8&uC35L4RU8%ic2J_U_CEmz%vuNo%o3FuIrTK4L}#>8cT8bcD`m#gGqIP2Hw7T5 zWz9Hm2mt0}(Um&87|{SP+eL}i*~N$kz!XpyiV9nt7NN~`zGg6f)VgKHxB1;px`tJ`#`)bV`pCCREe$pVcOkpTmF5OF8_7T&!F_;E zdOI5(^!i$S?_2NeV1Rdxiza}pL5aex#R34%H~G59^cockd~KWSou;4xKXBX!V;uw~ z+5mp9`6Z~G+W6;V3n15?@q3Ip8q}j_kt0JG8GtLuW%+T$qoKZE70RM0Vq+N&ra*=` zmjllq3~x#)7gDe!O;0qy{9YWhmt!1yYXLjYvcZ zeUX7-gp)E{(4dX@iR$6Sw+i$qOfXfXu|eKlN`Dq>*cB4tJ86Xtv( zUOEN{$`lB(2|ojp{h1_51`;ZzSp$JyL5AZWlT{6D%0%)-EX^9dmcJD0x|DwbZqr9l zPvDM>HMo5F^mIHnb@>#S1{DpI2nUnN$w^;R1w4m-inq91X9_5BG?`3#wXu#m%N8nt0m%bw0s#s&_np`R z&t1v)sK7je)ngr(0RF&{^S~wqXOk&dIlqDecrjPa+#Z5LfLcREqz|bMC;*Hg@OgSX yk9AUfq|^gf%^e4Yx{kEVA}WzswVpF9Ns0000@`1ttH*x-nmpa1{>U|2BVz<79gc$kQQ2nYzkxVX3&P-sv%g)cLa0009- zNkl5_&rA_ft;OBy8ZK~f;{2FU}Y%FOH@KHHeAeAeyGZ@+JLcFu8DkDSOq62;;9j{`a1 zFaAfs0IQ5pz*u-IbV^nr=dVa5D4W2lRMtS*otVqkLjnMHCrXqb5`bnZ?Ui6zB0vW} zO`-(N2OaJKUoJ_Y1C)J{<`67Npa3YF0t1T@1hkHff+Gkp5;=VG)&UNWtcT-Cuo7P6 z$J#T53EEAki(wVWqX}3G+2obk@MsX1-dxDtacRxIbUm(P+0(X?1PfP9v%V* z=y)^(Nb&->6nQFS^%x|kgc2_PB5VZ>isE=31OzRK^QtZzz??x^pok9qE?aM#8DJkW z0KY0ehXDec!5l!EWr{}5noI@YYX(qMD+AmM)UygGp|%((!5-dJRYILD2L4p05(WrB zODyzpU0ML9CdVE$T{Kz4U=N>@3rGQ&K(z}>V-k@8(C$RS3{X?8dEXWS0bF)4KWR!` zbX+Qwnqc*-=rP!i0y^Wq$;++qA- z6u4*m8(^AP$L(aa5l;@S!mfxIaMuAsb@CLlchb@x3a-~j!i%%>RB=nEm9-wGNy%Z6EH64Ds>!_bV{JmHQGc(rg{ zFl1P1M{{vdw0c$eS*ROALOTOsDF~>Cr+4F_AtW@SC14Uhy}cPChoiFyv`8TQJN-B$ zkj~mDWPnX9Ca%Bw^6iYR!V19aEFiEpxIF%J^?Ar%cpG8?z$9wEm<~)Kuxmsn2Um0` ziCVmC0d#2019;_Bs@-!pwgL;lCf!vSMtR3I0wA&gCqV?Q4LRP(=12gy)jO8sb`tY| zD@ekWpMl1_0|6vq)<(+$mjxC8lo06!yBio6i!DVBSIE4_3vrf6H@W@gI5+N$ bp1uA9iK9b+xK*2O00000NkvXXu0mjfm>`^o diff --git a/graphics/pokemon/vivillon/garden/front.png b/graphics/pokemon/vivillon/garden/front.png deleted file mode 100644 index bcdc18e854edb163f6e6b259d67d4c01b31df695..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1010 zcmVUuy_E7U;qFBXizxdz<8L*Xuvoqn23P*`1ruMxDZe%_EPII000Ah zNklrh_ka-G{g^~+# zaXe(}*e=N$Bu;?KT4xA>0`cO7yZ?j?F}!u}dv`~fvaFP_0r9<$-|yY==s2sd8e988 z7cVdPF;EMF=Klx`uqp@zCc<0c;Z{%!R*VupG>uiG+z~zdB+l~SHh~cKNmTT16No3J z+G~krMTiMOIYdh=D=1+O1Y${XH>LB5BWU2JLIc*|FanIChX0g%7cgS0 z%y2v*M4}a5>eSXXfP#CX+++l{VN?bB5Q(k%POug(BZ*1zN9z3a8U+b}7({k2YuIj~ zq6z>&q)vp%@DSJ%eHdN?eFT2nRg|%&HxdWJ5-ME$OEnPXrz*Mz25%7<8311t3Gy%M zy`GX1gxWg=%9sODoGTon1o|q^@u|la=m7NLxl(El4AiI3eagUY>fA{ng1s;5R0+=l zyGkVyWf*`2dHyLsVWmN-4>=a&2O8+20P@dy&UC~y;5g%p{1mGO=pYMwN&dI6fM_e^ z$vbp0qy{nWGywKXK(HKF2@;1$2^doUAgKU?QHe4T=s-vJ!2&J;Nds$W-kGka9TG&C zvK`^eN)f=VhIkujh>eZ&a}vaTtu%nw+LoY+;Z9MUogHF}aEy5p(CL}9^eqwNq9~@# z1P*i`a0H(KPw3mY1KCk=o;8zUVhVVm@ZCEu6Q(dsULFbI1uJN?R0D23GzvJz&oNlHHwQhI+0SUgt#o{q|5G&V1ij6&@3<3gwDS1-)mN#3 zh-Yc#Q_Sd^FvfnlWOU(OwXH3oq-z=+cJ&YSbdhimRgC4af9}@}@NP3*=!fb9mVN)5 z-|iZKZ&rXwT?6~_`08jzM1nv&tpZ$~NZFA0FVAMOE#-67TLKgc@YrWmJ*lY~KJQ zylXE4b2GXU3iZPRe**-K*dy>C5jeVosob#50(0;b;<}9 z0GFZS(HtPbLIMFag{l4CTM|$Pt<)Y;TEa~L6|8*0ZXNsV=8>WU=U0AbH~LypKIBf8 g`}*Ks)7L-$1L_-iswg~1y#N3J07*qoM6N<$f(>HDZ~y=R diff --git a/graphics/pokemon/vivillon/high_plains/front.png b/graphics/pokemon/vivillon/high_plains/front.png deleted file mode 100644 index d8bae72c4ee9b8d98c1331c295cf5a5930a72500..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 971 zcmV;+12p`JP)47n$Y40=fJm4S7ytkOXizxdz<8L5fCvZ(`1tt1xVR9oNch+g<1*!Y000A4 zNkl z^VWX^4w%&l1+GOj!xMW!gU^VPY`Vg%D086wo0w(yHUWTt6BX%g0@$h4(ITwgBGA<; z8hjBtw|2M&xSCR62iWAS%CI!0KmlkU!2**C0^qeX1dITuXyE_6?*QF(-y?_=ctw;2 zjpYj16V)b1J@ASOpblLjHvMrv-T<%olm&N=QSb)mNg8VlG`J9`(7QFjpb@kJ+ap3i z0~m7yY#?CQK?jN(nI@nRKt+gu8D0egn(BBQ1T0}$!cR<*6|}Cv7$D zo$cSVQ)5hiR=j(d$CcqF%PbJy1(3)ab%dWIUzYZqV$dx2pHW|FVb|3@H*br(1ZWXM zyQ&9aUphb@eLw#u9k7vSwNEjpr_UIB^pnwpvwGQDo|i)@<$xbZdbZ2o<3#x3ihy?W zv>6jnmKT?GBHVv*MS^F|AI;Pe7k{4Bfc}C7Qh9WKcwh+x*0OP+l*3rw|9NtN+)$RI zNnliNmr{P@A2H=~9FN3Wvkr(+S(ftE*C)p|VtFwEFfqa&^6>NWmxCcL5+evU1q|Dq z@xl9&6e9#`8A2v7MEN`aMS$-x4q(bFEc|MPIRPk`1jLA9X7fSl1cKE83h{yn`t3c| zNl?p304YY7R)+%;i~%9DiV6@Y80$d50ut`GeK94V9t?l>m(&U-08}vH4>(-FI-9&w tbm5w{aXwMEit44XKV7#M_lCY1{soa>n`*1K{m%dZ002ovPDHLkV1jJLtPB7E diff --git a/graphics/pokemon/vivillon/jungle/front.png b/graphics/pokemon/vivillon/jungle/front.png deleted file mode 100644 index 1ab8f99eacb156b2a39aec96438eec9c6f1711a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 923 zcmV;M17!S(P)5)V$iM&q0BBG+;J|p8h=2$P2>AH;z__@O5I~?{AW%3Uc^**s0009f zNkl1%-3<}*h*bb%8qsJ~iHhWK!6W4A!kq|}t>Gz(VB+J^}I;{J`EH+2H40MF(|3{#K zU4c-bLpVD;t`T&^j#T)Op4gR22V%3*d0xQ*%t}=F&k0~sshtC8D>z0FRT2jfJsV*I zh_I!=2yi4=mBXN==phiB6co@@^b#Z-ZLk;tTG7ETp&f}pG%+zOCj^kX?5WimDgXr> zstP$ArgByXa1Rhsn)*2V*p~^xpHu7Ah1!Ee0hXe#lH~Yj3QqtuqD04V1frnRGysL9 zC_o2Fg#-wv2`Oy+qza%VbQ}Z>s3=l`uK``g&;Wgmp!%bPVr+m2YJlpJvTFcNHE06l z^l26=5mo|lYCuf;(7;CE*A1wMy9#hCfgchu7c8t48sJ9YhoAvqdI5*X#vpi|)e1j> z3ILY|k_eMX2~ZJySpy_GrVn5-+178N`;(RfZz2IZHX3VPtY+c^D!ST2E7eOFr z7@-Y3mTs{8GW<&W+@loQz};9dF(;s;6zVzHjFKqt^II`Lqj`$Z0v^kXjq_73&A3!wzc#6k~r2ux11WAdzl#4M8=SZs{gq x*T(F21f%e3{k$=+mQ{=FtUa$T?v~zm{{iD4SCot}gD?O9002ovPDHLkV1m8yjrjlo diff --git a/graphics/pokemon/vivillon/marine/front.png b/graphics/pokemon/vivillon/marine/front.png deleted file mode 100644 index 5ec8a8c465931bb0c2829dfe7c2d83d8c198ae47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmVh9K%0!bKl~|mV;sH?S zPN-ezjA$1&)Cwt{+J(guV;AUu&`O=?M&Em9gOd0qEU|n7Vexu5nkK#E5p2X9@ z^|T9<&Vh-iar~@16+S+W58G77yKtNkfiiADBJhvC&d#2m%9$ScWWu+JfK7KHgK7X9 z$4T=2?9J*Sc-%Thptq+}rda?k96e8xjdJ_m>|~K{bUdgf##NQC)Yet1bb8hLy`;TC}3pqcsgQaW>x%6ohcGkF`H$ zL?OJ}0PI7B6NX8rfElekKp_wSMQdAF$0qX`2`C8sg;-`e&;oscX`zIB4Uj;e0|Asm zuWfom0^~uRrY|YAFbJT8m0hq|z`8Z~N}MW6MGCRX{esOQ;o5z2Na&VJ@ S&R)9!0000Xizxdz<4mQuz1+e`1tskh=9PjxL8n76uDXs000Ao zNkl-cXBeYL!5Y7& zilb;>4-{;>@*e>Wj50z2ZBZPd!xDjlJtB%TqYI;=jBz*FiCLzu65u@9i4yKr0(>Er zE>`)lgo6%t8luXFC1%m#0k=KQ2W&v~%O)otOtI7f)e3Ez_8aLjf0M13-$D^pI zki0=VvH(s!>_dAL5oihRkpRS_Yn#)B(m~e!M8d?sP&Y{;7(xSqnzuBd9qI{CAqTD( zni+sLkB$WF_CD8iDg_kj zE`(R>ZNpL=|2TfJJm@ji21cOQ)2UKu&t2PrM{yj#I$MU1ZJwNTnE>_TJl=Q)(Pn%U zoe2Ps>j)LRd&9KoGJL*x(0{oZM~6`pU_Ve1DrNO%J0-<0gNzR2m$#xC3_elYeA)^X zV3r)((1ZTgIgYacb_r;^R+M~=I*hI#yIehG_v4!Z^bqjfxwLMW9fp0c?eyi=&(rS` z0V&%o3Nv5Dh(;HGjP9J^4~}i)EL&D8j-=7G*Bj~sJjfH~bMSF_wR}{rYG7|J%+(z@ zz~#yEuku1e18gn>bV>?%BDYRAH;4!jm=3c5gT9m#^7hH`hFp;H8Ms3Lpn!aH{$@kU zss_qAU=eB)^67^^?=e7o!U2{CEH=N#8gldP**jE_E#@$0KiUwLZo6Z9z#vJTp<+m9juR3e zz@d@@Esz6D3nk_+020VK5I`yP+PXU=Kpxa-@<^$L%K%DP=>?l5tXr3#6iQrdqR-K# nx{^pYnVsRfdbt1Se;@w>`lpcY-6M?q00000NkvXXu0mjfU#q*c diff --git a/graphics/pokemon/vivillon/modern/front.png b/graphics/pokemon/vivillon/modern/front.png deleted file mode 100644 index 2bf593a485494b5f1eb57d0af76ad7c4c958623b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1049 zcmV+!1m^pRP)7*duuPgEIGE9_~28Z2VZmT_hwe|%8Js#hMD(%`+eWe&Ztyc zJj!b6JzWgfe?L(6{nh^wu)rcC2v`euflfUaDEkYdG`4JGQIrpKJAV>cK7E&f*7=i= z*m{?MZcU`!x}KM)!@-|~Xz11)undPO;OjYwa#t+WB*VPK3TdtL2mtDH5-S9WT%n|( zpf@dyfAK9pBGRpiN6Cd8*=-L?{@tvKcyba(YbboGclj z%40r;Bl}IU*!TSo@k^#LLKvXN>(b_L`q~0*f6o+ZJaS-C=45F4!=G|MfBu;P0)z+! z7|E(PP?CA1egV&}@ks-@bi*E&_>& zu(p6J0FOb8###2)s|YJ&$v6*kdZM~E2?FLpmSsO)4!LLglF<{u)nCdQvhiVd9$yYk z0F!YQ-@fFirU4M_@nIIfje915L|FCAnT;yiR(kQ6e_SVvE7i-xq%dW}c`xEL_D{Mx>Pb__dOORk3YU zRstFOepEFRx<5-e5hW-OymL=kpnIoCINx{Z9?G8gkEf~@(02+zv}}N0aCC8aAjA;B zPFMumv=;=`;G@^C4g#1wngeioAP_vedUg`vL)a)ebdh0j0OQ zdN(-y?al8{2>NS|vAEkhMD;CrDG4C0;z`dIDE0{CU^;5~YmP7L6< zI|o#7$FZ3qZn*3MeqB@%kPrYUk=gAsO8D=-5%3KH8>Km=wS1VBu( zwI8~30^$J)ogY$pg_{5*l>Q>0FQcz+9w|9+USS^J=o^X2Lryf`HwX8czMlRE@d26D Ti|Zf700000NkvXXu0mjfz%Al( diff --git a/graphics/pokemon/vivillon/monsoon/front.png b/graphics/pokemon/vivillon/monsoon/front.png deleted file mode 100644 index 5dc6429009ff96b7a43a963a95a3454c8d044b18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 909 zcmV;819JR{P)BjE6vw54=$hwB0^2QA7dsu2B_Urx$t93YGLfOd85Cj_$3q}f*A_zO zLK@JR5;Ay;hd{Zh0dHEnCH)5NXXv|kCt0%N^sqs9_q*T!-T7q0SlmoldS(_|jXe*T zjCubNC}2?#3RFaGfoE9@Otzqu)`pr`RLTp!tyf|#Z=Vuyu2-UB<0%2(%GI@HKCf8D z1eO=k;#+fojR^(7_?*JzG6M1%<`pR5T$dnEY)(OdHW+{g?kgC-GS}Rc5qXADlejwe zz%bjo1m5ELA=f1DmjRiuTbu-VE7;$b@W;S-d9D+VIR^qv2C~D;fD-sX88v3h9%X32 z)&h{1&SW0&Tw&oSAb^$>fKse0Kqbf(903m#0MvkA0^|ZR5TG}O849p-LD?XO*5zy< zH@U_6MahsWd=2o;7T-&KdsH@DpyGImfLGf%kfzWWT}hxrHSDE)H?{);U>$6z0N32F zr?Mu;!VnW=tEXS5!01}`eFThvfLj7U0U-h-?9;jcfhIIX8L(Z zf#Kb%hoowHZT%mz0 z2netcph0nn?+|Mb=^3{Qk$#O1MtC-|^&kKK$=m|S=jBe7Avyg0_%k8kF0TB!$-Bcs zl)ibOBafoFe;uoy$kt(@OAmu@L3RFpDu?^d!~q3d_REBIFd)EjemUSO;KV5bVS|7; zIehGOi9i5?GC*E8dHrzTO)%s%NoIhX^b!Th89VDHNSvk!IJ1D8eE9P2Tt>MFj4A-! z3}i;{Q~PsQ?P3-f(JmRVjslY8s$7Gmfhe8=aTRFjQO}B=2Gjv30scZ-0c8M-(14Kx zak)kbkfKjIEvNu^C8|JNO`toY6I8~GKxRMzSR|MMPys3dpWPT{5|pA?6qasuMUgME j!uff_h@$DBHGTXC^RH*N#jE7m00000NkvXXu0mjfgE*0_ diff --git a/graphics/pokemon/vivillon/ocean/front.png b/graphics/pokemon/vivillon/ocean/front.png deleted file mode 100644 index fcdcf11a7bfb18176d7c8091c5a5886d0870c2a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1050 zcmV+#1m*jQP)OEO3kG~(NaPI$)fB|MTf`Dn^&Csb^feN2tCAex5v#iXC&{o3B(z^tN zu$7Pq-z6ZHOKINw9e| zG!pZv^T8bwKqQeHp$00v+sBu2AR&QB=pG)I^iB7$0CfN&1YIZwc~k3=go{tA4@o6a z^PT|&3HC|C)t@=JrYoZ49!z)`bdx07y%RtSz=#35!g!KP7Pw|w;v@zjm_l-uvZ*td z7=f;oS1quC$s*RX0EUPVRkSRianvnopq})k?Bg<4waFoeejgG&85 zq$?XDbkPKlbHnCKKq3GWt9Wcu4T!|#C3zTdTpX3$5Aoyy2t4guU5GF8Jpb`15Or}=w&NJLT_u1$ra6&?Y%|}tSq6ne?9z3X<%=E?8l9j>-?*7_sPWTT)A;sVGa3^{ykNl);LkA zbtrLA-KlC&{qo({qlEi?p~DN+->TdYFPgVTfWg@nqr82%xn+nKudk=0fL6GyK793P zOYvs}6#ghsEB;n0QtHa_l`W;jx(2EvfCu1NQ$20{a|hMfO#-Yyk9D>A?b{X&s>Zs}950~qn(vc)&I@2Z2$2Y_;QyIuS~4%CVpcaiXqT(=Dqot45L2fX4> zoTHQCh8{p-4IM@Sm{=@ukPgKjv{g|+V8kNfdqFb24cjRXF82Lfuvn{Q0) zhu2dA)PpU?u>st8#h(Ho!O9DE&s=8{9gM_(MYPW*@>-%SatG6S$H}sjpnJ0Y7kP2q UZL4SB^#A|>07*qoM6N<$g7dHNp8x;= diff --git a/graphics/pokemon/vivillon/poke_ball/front.png b/graphics/pokemon/vivillon/poke_ball/front.png deleted file mode 100644 index c474cf54c2498e987cf412bfe398c2846c2546d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1029 zcmV+g1p51lP)l*O6vxShU43UsfT^koUtATDqoHy70qmYWfF0kUrJyu$NE{c))U_Sb zu}A<99OWUyb+U#mgob+X#KjuYLAbG<0)K}7-;tC>%SsOtNZ$M1|NZaXJI~uZe6jU~ zD2Ajj13ppoKLQ1?DG>yU6mo;kb}8V~1}lwcMPQQ^U;S9Fln+ZZlqy$3;`@gL)L|tp zAFFkVZDgRz#I8DcFvAicwI+cKNFgc@>kah#vd5m!!v2ZYx}mBH0nmj+1vC*q(p4qIt^hD#_?OuG>Q@M)0Gj$_-~gYV zD}3k*c*{U~ex&s-et3?&0Yb}4CCSV~uch`!bO#q$D4&)LB+O}9z_9U>XnUj_6|`aa@lTnLb6KstcS zs&$mo9pD7?zBn!bwf}?G)WoJ85KbY$3Ie-`yfKLah?anX2}m615=aFD$IzVwNaCAG zn}LJo5=aFA817BH*a2n=pH004&NWU8Q^sro2u*1Iba5^AhBQhqOmOvLrJVFO!kT4gm zJkQ6`yoXoX<+i031A>7U)C(_?)BHM#<}d>Qjd~d2?7e`2lSArF&FAWE?Y>jr&aEBO2v7Wo9@XP*2Kt{`*R8oF%Rr3?Ud`qN zpxgSlWeEV$Z13X=Flu8BrtR77>Fb-mb126oEP)Si1Y}`@MUzVp)qvjn(g1#o_R~ zfg0!je*_v>6odjD;VkgDMo{AmO7Yh9!lF`Y5SyLO?FtXT>_kO$n*ds++F5~lg@*~e zEMf)b6_judaF|nI0<3dZ)-bO?0mP;R1g-0`vmj&Uj*Lk#ULP#F%F zSq#t}-T+OB0#L1}QzIumyq!pdZTv|rYq^I48Z8Y_Q=pv%8qjA54d7#fx(wAht^qBm z0 zbG(d~M))U$)?hX9sKiLu#d(5&YPGA1SX;Ze2vHF0bH)mAR=^NZt0>OT`#?pRMn1(y z+y;D->H)~xdf1UROZV@P+4i_{OJo&mUz&)%|4qo5n^>=x;M8Z61N-r_gZ zceZaj-#tn9i=AfbwnyesutWhirsryA4_`;VDil3}n5E`5>W84E8&|)67cK#9If9^E zM@1;N2oQUJuYL*zWSyyhZYhmEW9;E2qk(tH% zfz$meVZW6l0ve4!jX)9kM82*7{iYn92@#0BtKDryATUg(fm{ez+`l~EMov7-yR$%+ z)50M?+$QivF6FRM0hXl94_xv5+mmBKQTeHqohrbj?47w{_h|JiopTvWkZcARhuYb2ma#J$0dE=nTebIvV+QeJoCKoyfe|V);F8Ao>;}^@}~it^YA|c z4Xg`<0v*C#%W4*906&s}4>8@7z0A?pDx~l|mP^;YzEGvAB!0RMBu&kg6 zj{t`y1xA3FvpR=m1qwi#6cn(iAOKu#uowYaVdHPhM8H#+7?w*zUG~(n!y0hwEH%(= z0xAX0V{@H6tQGH5>-jMXMmSF5wp0LJEAIGE11C6@Cm=y4pkh!c36P)8fQ=jlpi0rA zLdIE$^A&_cjhDMqH$q2+Mw$_>0fyqtsncIs1#U7Z)_ zDFUk0o=Re8=i(wkfz;=e3UE7Mi0(mAoS*lAk}`#Si&xxhLrnxlQS`$EB2$`}za+pl zr96XdSX^Xb(#;LPL%e&-F@=IWIUE+*WfpDZdPatUdb2%K`TR7yEDm2~o*bF0V5tHe zkIGK%2wxxHR(;+E$ujd9_3(8n>F)K0oxGO>!?UnF+d!Bzy2yT5YGK`%c%7j zW3R6mH5{c2pYyYKlY1dVpAYb_D97WQ`On$;I3{2>xClHAjDIy9&ZnsYg5X;ac^bI= z+W>l72$UicN7usv5(;=o=Yer4Jn`b{d?2Fz6+nf+oe(jPG0RN?s)t|!m`sHD(moMl zznm@s41wG7et5k7c_7O27DpAE2d3lc0$P!57 P00000NkvXXu0mjf3<01_ diff --git a/graphics/pokemon/vivillon/sandstorm/front.png b/graphics/pokemon/vivillon/sandstorm/front.png deleted file mode 100644 index 7c9158050a637f9812c66b81533b12b79d4ad81c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 958 zcmV;v13~p_362Mli_Lg8)5nu#fC$R*x z3W_iWILs(80<3aY=P;{40Z5yI2BsARfM*OXMu1T`_-)$=@bebwhTZSfjo^3VD^w$Ai@Z`o9KOv0V8MvQt!h6 zK`m$kG!)Y;RwAhd;57hAF$@3@n6bENK!t2;z=y6`AasZUXC@$y8X$lU!etT%764`x z0d!pqg4bDnK;R^S8UPf&yvwDK+3NfhD?IRds%z0VQP%`3jFXdk!@bR#i2K z5{PYSR{0YGJX^{$$akxYJW9Hy1$cyK-*RoCpiK65tNb#L7fLfCqfp=3%vQcU$uFzD zr@1dr?NP8)1FlbHr?!u;BVX2i)d$IP`x<2lC@o#T{`0%?g}(EBi0gS&Bv^fHV*l6m z4`G1b#GhMEEn|#5yJFPvDV=(qAG{t3Yy-YSKjO`3>fh1LzTV*YdUz4~niv&f)8T&F z9@20a{tRP76o(%hK-SSfEcUN=cMMS+_R<-^7mu&bcaT%V8K5^5Di-2^A7GXp)!!&o zFKhy;SW|tm@%`m7`DX#9ibEyD?$Po$+UFrgP;3%-H0+CYp7BAw3B?*YxJ+#qL$RL6 z7N7`|K&Mv}w9&|QtY8{Y1u8~uEb!uuC<>)m6QCrvkr>edEdDLDpphd1q$oa9-@#uJ zOaLxpN{s=W?@dM^po4@tV(d)|C$NJ6o3k*>;bzSoS%$f6yrtI&!^_KqF&@? gv-A4m-qN?-e=OTGO28Mf!TD_rxb z%h(DAd|o~P)ZCXzbOBhwfGj}D)+DzJpf9bUOTGm{tB@m(rcQm|3Lbacg#p_X^H@{> zRikw(72_VJ5r{EWuP^fj*~08x0G9uINK)q>$M?G> z@Z+wOdz?6OQU)R$m*+s(+vOpR8~|(v#0$X1jg*GK#M`r0+Gjz;S#YOB3ZO~S5`B5| z=IJR5ta4}pzuCd{i7*u1&hwL#7o5N>WgnOXWQ>`bB)5drD62d(oj_X$A zL*ouBv>wu}3V^NP!DssT?C8)ELu#i>!1wy=k0*!v&U5r>85lp)`n7m{sP&D9258Iy zp+*&dy#3*g*3VT!i-1SrI9B@Tuh!o%jN<_jdGi3NbT>loMYfs0Thu8LX^*AFQMqfzgBBx z;5v~W|6+6s+ZcQEfa_r$p`Mt&*`@gm4B!_cv||Un#(4qffP#ukY6J@a6kd72Zh*MA vc%`5?pTzxaA#N1qBzL+THy8JUzUcl3L#cXx(gbBY00000NkvXXu0mjft;6Uf diff --git a/graphics/pokemon/vivillon/sun/front.png b/graphics/pokemon/vivillon/sun/front.png deleted file mode 100644 index 532b4a019137250b45a0f0a331e1daa373f2a33b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1019 zcmV3KX=tyAjfG_|60PyHYXizxdz<8L5fCvZ(xF|^Y`1ruMxR4l7<6u2=000Aq zNkl$#`1ZJ+m!j6};y2^k{q{oV6C_a0C7y!BT{-TFcm zS2y@F&oe>0_MR$!(R10*1HBpAUuCOl3hR*7l$g+KtfY$X)NW?b@=wBM? z?mfLK5y2s7LTu{vMu*QppjRZ|01MS*Sd|!R(z=cS;NFVFFr!3wor0%=&8(K_;O~}o z$cWO$!|Q6`R-&7G9TDCriD;;sCIcWR(EuYRimB;@+6)1dBJoG=ef1Io<71+TlFR~~ zAj$B+4e$zp6@ahx=muJzc(wpWr3gS)Hnf99%Hv~^@bSq39Lp4v5CUvw)JXXDv%#E+ z040*LiwGnV<7Hq*OMsU9*m^i%#5_VL+W;gum1>Sf@{CKuN|J|5KrA5~00HL50K#3D zLEO+;F1IZZjb|(uh1OykppS&srOY)zBMYQd0~rYBgohmaFxjAZXzNh}XlOByIX#ZO z+yXSV^#wp7Mr7^V03z8YPBYi)f#=(hB07s`ce<5F(&d@#CtX%^sB0x4&G6SzB}Ms0h9mO%mx7fcIDb{!@Kd1Nu=@_x#)10p{rMt2agfD${WJG%9sF#HG~T zPf97d4X>Z~4xbua)8MxU@_os_|In`YEbzX6-oJ1_oA96PUoytG`XBp7B$)ThUzdPM z&j@f~j;;<4-&(+!y}Sj?;jv@B`E+(@LeS+3fJvD8B6x9VOvsXGufGiJW7dxO>-CSX zB;p7T^A?~0%-9^f-1_qn=nM{X)duD`EhoVwn0_s<^yt)RwUohE+TgUD6we({LSnBC z^vq}?SF8ClZ)tI4KV-!002ovPDHLkV1j$D;er4F diff --git a/graphics/pokemon/vivillon/tundra/front.png b/graphics/pokemon/vivillon/tundra/front.png deleted file mode 100644 index 36239fbe94120a237889e08894be4bd8ce9cb894..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 947 zcmV;k15EshP)Dw0EamRMt~+~c@Fam6hNd?kU&{M0NBc4Fangq#Q#+t0e0W%7=}$lsjy?i zbaS9C@(M{HECMnGA)5L+c{f*ljE#FIDCprhnDinEnEa{09lJSjihvkH1f4O+7&aFo z0ubF>pe|4VvJ|US$Vm@}6M+f~|6;><-9rJjwgM<4==8oQK%F7bfQu1iH<0JJ0hFK! zMDiR8@Nz*Bps5zE#>PsJ3*cn|h$w~v06aC$oTPh&VD!_yK z7&>Cy@-zTjO5s6hVGw-I;ynW00CE6oFrg_-A|@c5i~(r<28e1x5CEG9crwM7F12e| z9J>(~7oq^#gZ0>>6hoC4=P?4Z)HRvJ#>R9SpdeD`j3i*MfhNLsnx38Yfs)dNe2!P# ze*!t-q-i>EFQBDM)8r2cuyrYWkc`r4;$DP81Kh>CH!P-aMg)hWG}%vn)bT;dEv_Tq zZ2!Iny2*ZeSWVt^dTOG&-b^!-fi zIYmHZwC(NZXQw*H62KHNI$8fT)Hw=P0x*ef-sb~#hzx;34i*!X<#y80zz#;31!R_( zr)!y7PzGcSe-#T{kpjVr03~ri1YJM{*GW*wkpNU==MCzcStbQDfW??V;=2X}3T7e@ zP(?yrG4{#=ih&BDHkndT0#Lz(zF@10>#Y2w=)pOKeo|VOihPsRpI?^`_m;lx{sVIz Vc_WSpzZd`j002ovPDHLkV1gzinCSoj diff --git a/graphics/pokemon/volbeat/front.png b/graphics/pokemon/volbeat/front.png deleted file mode 100644 index e4f17ee4d1544356a8b010c25631284f0befad35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV6q0007Y zNklo(1KP=<2X1D1 zgGka$2^fgjT6jHNTxu>;hnCiNsgt3+xYf;Fq{QcvI-Gsd?)pFotcY+`y!IwGZ_idz`#s(V@}F#U&>uk+d@D~Eb=3{{q#t_7q1$Gq+K^L>WmP* zNRB|bs~f~!CYh}ycqyU62k>g?f!l@85}@<7C(lcD^gxn};N$5y4-d5-bfGed8R{n= zDo-FT|9}Sii_Bz*oK1qaK7bwmu>EZapxc#i61%MblKVei<0;V%3Bha4;8dVtubZtg&DN+h_J5;OpwsP>3eS8W78blm5I= zrTHorlax!@V#F5Uwlz^;IHS90Y&sPGHHG_Wk4ACF?+6%QI1!NZ#)dTs{Hg3!{~5*= c4gSme4a7bgp-e|}fdBvi07*qoM6N<$g27u^C;$Ke diff --git a/graphics/pokemon/volcanion/front.png b/graphics/pokemon/volcanion/front.png deleted file mode 100644 index 2a35f607d3950e57134c5df044b3eba0b7dc6d50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1042 zcmV+t1nv8YP)Gnsz=$yTs6e=IDERpJ_jD~T00009 za7bBm000ie000ie0hKEb8vpze-E{Bdm4xpCM2b{v?8E->408sjDcVubYPU}F|D zM%?m$BqB!E2m~B&_;)c$F%BDnWSXiB!yMzR3Gjx~6g^C)IbsuFs-*>xA`TjWjw-IY z;PlHIQmmy)e}9Qy`E;rSW|EV7824PIg74@R(qW#0v@+A9e{>PfFi(bg(Y~2Cs5Dh` z$*`>KkZokB1jbs<`76VVRiQOLZ)hO{b;(CaS_jlJ*LRGmhNu!CPH0$M z2gsa6B|sc;BI*(fb6%D}hfLM?1C8)uT2$C3v@XH44be$+45A4pFUd!z4n(%aFh%Am zAfZgP3MNLje40jH7YU#;o(2$MZF|uh3J&RDiMmD_6>~hiJt+Xt20;MOx*`E4FF@)p zs0M@EZ;D;prf)m{ruq4*$CR-N$Wtdkm>CXG%Gjn{W2mK2L-1>B|dLAxh zkDQ;+?;QDl4{n``4ct28Z@=!3oOuGW@6UJR`zKQL&n^TDwmxz$Wt^yD`V5!}t-WP$Q%?cQ~SAcL1#3j)B=a7hO zwx|M@uG66?hrhD2a<~A5#j=)vv{@xKtS9eDW+f}G0PC55)Pw3yvt;=es5pdW3Hi*I zwWDS+<}!D-%8=5iKkfErdlNG4``JUf=tp07SwfC`Dn$GtE!pODNz^56p0DvFNoTAHb0C_JLe>j@4g>@-+OoGCrJ-@gkrIk|H^UX z(F1TOju7_DBS>EH>nP=2Aqzx^pdf(ooJb4Z8$rZCXw^Ge2FyIkzX0qt@B?xj6URbv z3?>r~u(5?#Q4Ah10GLoeAZ79x3s;hY2$?M!_X8x45xfzR-+d+Vls?NEtB>HW10zhrC2q{^YRTTh~uv%6UBGi3Au7SDAKbLXV>YcDa z3X)W5Jmu<#^D=p2^{msNffQ{#y5Q$u^LW4CJB1Jg`H7P9MgLYNS*vRqIfkK>1vwN` zN*Su<6BdjEp))3X^*F1oB`AHd54w4V-OY^6_4Qhkp>%mWD-5ij*lAJf^qz;;S+m7z zduRK?px?D%A2-F3)LbGAaFeqJ2bFh)1sn%=&g_-YkuYNd*s*%>1H^pCxU=dc8gVZG zW8nXZ3WM%3n+*{p;yk@=@b}=*1&5wlnE^H7k(&Uz#YGqqp*7L#iZrt@=#CSjZ6zG;}#9HzPy6~tzz+wUKlrr9x%CtEo`av&4~tW6#MI!1+wH(1tt z+It&A!!S5iP2-SPSUtI@LnQ@UeXepk0$|_(+TwLc-rVX(y1qL$e%k{`PxI-K*Y*{q zoEGe>!g#RcN=DucDd#F3-_XPRL9-nI!k4zV^aXo-b2t3S+ciHxe%-=%rQ5oFHw2*N z|M(^H;}%lb9jW&H{Q%KGcL0YgNTFcce};qa&`(`#pYHMbF`64C;pseHTW&i341 zUG#>CYEo36tti6LYv3~PJUJ^_&96&RF}U<##$VQ2VUNwfj&lG2002ovPDHLkV1mCB Bp%DN8 diff --git a/graphics/pokemon/voltorb/front.png b/graphics/pokemon/voltorb/front.png deleted file mode 100644 index ad4385d1bb1d5b7ae22ed66641ee99f6479e6e6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`7zFr)xX!q+ zKtMpCSwP^bq2vD`g?EmI|C^)!ubBhn-n)8r%bLAEe*B0C27v`&fz&Tg z7srr@*0)m~g_;$3TooBbi~j#M6WDNdlSjc-&3d=;_dhwc&aGXuX3ZbZnzK5*3=$R= z&lx%%^4t=gze8i*$FRfZ`NlmJ-3ve5-gZ{H;b-mr{k&d|x&|T|+69dp6{J|MOFC#T z5boK=Fv}se;UHhrngePb3w;;X1}|;!ENHP}YnbBa7{*z_RQF(lAtzH|m&{w9Z*SR)qU-#OrvhG|KW540OxMeeR_hkRB zJN}jFd1{{1@|0&c6)r1#<=;6Z-mLQ6avtwbvCjt|=y$E$e6sv_^W%>FVdQ&MBb@0PbR*m;e9( diff --git a/graphics/pokemon/vullaby/front.png b/graphics/pokemon/vullaby/front.png deleted file mode 100644 index a24b2aafbef5cbf1828ddc99e859496c2520b3bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmV;S0$%-zP)$S@dycyMS~Sg@dg=;**$P&jByv2PkN6vn~HTB*KMRh4w$d?ghzm2$S)2&N8c_kc|2RxNwgKO%ErayQ5n zZ}n=j+=^Mq2>dU7zCilOKSbTky-ga}w9AYb4B@R|$! zJoaaxPnU1cE}!*%OO2!9kIBV%F_4~+_C)lV5dH4hmmt&bc+hHhy$*6b9(2c2%1VoR z1d8m+3Fs9LbsRHtBa7G~LcSc_-%>N4gF2Zktf+t+p$(T5J*ksIL7b17NmxX_xb*#t|`h<+WVt zj|RBmJqGpY-KdbhdVof2F#H0)hoe{3 z08y>tdTNb4w-h4EjfYgDF|D>h#rSBZhzEGU;JEu1>YuIOPrTFCuZTuW00000NkvXX Hu0mjfPx#Fi=cXMVQc_b07f!lv>_%DZNT55D*Y^F#x@DTIQ5$tXc@odny0_|Dbqqr~m-= zy?X!v09VHb(f|Mf_en%SR9J=WmEo>}FbqZ+TicBrdH=_~U)v2)nSlPeH=zkcjOVQF zIvj>8uDIe4M?icSQLORS5E7P7;3236 zTNj2H_YBO84#aT`nrx^7=Oe{k0gDLI*A9RNuR=Ah1nr?G0H4M&MeR0o&Y9U#4;8I^ z+7=K?z|zJODV|NiO4bClL&&W!(Bc&ru5>Ad(!B!DW1Dw_c8?_A@hS)po$MHh8R;d; zYkt!2s^Gp8y&5Qo6%WBQO{5zV(gWXZBRE`S8<0g9I3*XfEOf{_DNtRTeoUae<2Dpk zVix4HkwW8jGy-C0KC`BrK03$EoP@1br5IgJZ?_{ zpNP)-W?*@ar5>`8+!5GY>BZp*X+yn^cYNPrl=Xj)SH(QP2-s^pf}7w~!AHooq17?Z zbY4L07|zAq1g8xq$TTy_Cn*T~*(55(XG#vWZwVlFxNsf{7XLs{?9HxxDLjzAolgl! z3Niphh3$S?0Kg%g9V%x92IFdvYPx#Fi=cXMVQc_F-mh{oXtvuv@u$gATde+006YT#qQOlYGO+N|NsB)&4Y`aoQq=3 zw1WTu03?=20{{R4=}AOER9J=WmEDqqAPj|CP!B-VRh!NnDefJ-P(+F1#696O5`)vu8fam=caa_fd z1OZ@}D4rugoS6^*2ZD1D4FN9zc;On90XE$LTSF;V0|oSo3&Vhw(gfkm4*BIocxyo~8z$Yzkz-Cr7R}Km}P_1Jz}NQ1p-A5dXC5z@Bw=CuX0rF zQ>^ufRk6SbGt&T$XhPr=oh#!V98vce*db{7D6X3wl>MP+EPNH4uzC zbr~pifHvWr#(b_a4CnT0gn;XG4l4j%a-N>-0<<16He$n%G~#eICMMU7x$7j7h{3}- zg$vrXKsbihLYyb3Hwj~W+(W?6S-s@~DpLxsIQ$26^W4vA-!#gg-x8AG-_%S8E5JSB z`La~%(%q|BJ%)1;B^rRkZwGXB@KtC7DiEdZ-~bbZFg9Nq8bFUc*i+^v@CJk&2^Yc+ zP`ZfTfRLZY^|-VCHsWQVlcUmnLq-T?2{5<~4G8&FX1PIcp>Rf(ZRq5|J+!v*FkiNL z9*I9$P^w@#h+%DzSD6yUP!jX9X_2=exvttyp#BE;w-k_Gqy`x9bQRElo;DPrj&kJV!K_> zLWPt>^*tNy9Xl&*$h+NYhx2reLg&@hyW#yEyIpEguZjRq)u_B=BLr?t+NIRvIT9b( zZDaNB#=cxj+vv}4c;)sFI!Ru~#aTL64R555hSl>y!wlL+^Tc0ovDrtBUffsN?645Uvmy*}tomr@j4hf*Oz0&E??vgi}o2!)8r6zFg9 zLx};PY%b$p)joiMIoj--r6J&s$Dd%sv+Um6ASS~)J3ZRM5()v zN)%;05!ICMs=Shz0qS!@9npm@bRG$F3e-^6bjTP8MdUPeKG~(w@J)OvIxd<}Lywh0 zFxw@j>XTn*e5Lz=J3Ia~94vuM-^@>I0@I=B%@LRo0>s5!z;JM$Q7xDcpjT{oehDoy cuZO(&2XgC^7+HA3vj6}907*qoM6N<$f;W%6)c^nh diff --git a/graphics/pokemon/wartortle/front.png b/graphics/pokemon/wartortle/front.png deleted file mode 100644 index 4768f5f480668d42d69855295f741a7cd6607db6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmV+n1M~ceP)Px#Fi=cXMVZp1i>&tl|NjsW5WU6bDM4ytd&Sl6_N>MKYDyTCVq&a|VlhEV-o=Z^ zFaV2MAklTk4*&oHib+I4R9J=Wmg#cBFbsq%OR{s6$@{-;cV!0>2sz5XPSwIN8SiIZ zmh<)XZ-3B4KGdhAA7KHo7lPoap9bU?0OayYePf>NnGpI909W<$1n^X#mkSQqnm}YJ z+zE^ycF6(ny6*P?TLVx*1aP{D zL2y~<;R0<5kb{HeE-QP|ixhO`9>O0r5dLIR7kbEHCBFwKx*){RGM?H!fb38OD@z_tJsHOCouq;DMKXKQM>K>+^qMjvSONK0Lh z)PH|N-v}rTKSqE6k+xh=ljuAG#<7R~cDv004}el{IV!nDsLQB_vZww|h?G!I2jJ^w zD`BNqKqzmwnV|7lLl1x#%UgG_&H+3F5KnE#(4z*d=T zZCwG(5v&&L6#(v5KzzNp&DN7KC}V&2i|-0&iuji5FVKJcL-qsg#vJG-+zDs^0000< KMNUMnLSTYuuV4)T diff --git a/graphics/pokemon/watchog/front.png b/graphics/pokemon/watchog/front.png deleted file mode 100644 index 82cfc39e58bd6be940a80909a4bcc8c9cc5e9e2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)EZjn74VR`tp0s+~= zV}J+8L%Rgz5U!j8JUc;PG7VfE$8b6xMhNI-csGjUlkqVN8fPQfY>r>x-{6p7GEwS7 z^JN%!gtJeA=V!V4cyERa;YJjgPM&;M7#1|Xe7(D;RN2Cf5jl&ggLU-@Y|*1ZIZ z)Hj?31B4+j@;BvX9vI-lT$Ui@fGj^O55b)7 zLiQy@QWv71&_MK8@}@=*7IfXpveim2mZHxrq?M-G-$k~xG}FTUv`S%VW(eT`%NayG zfGSa+1HD&eeUN$#u+mLDW{k$es+<7}pcH=q3KncqFk`#~2@B?1fN-mG6u5;J!hQQIC5!{|6ka#b z#zWo-cz|cTZ8CSwItE@w?3KC+e%>{+ti+c3|KuMWuIbPGVM1O20000?P)@vjPiU93ccMEvKsCQAspON9`j z;Fq5hO&U+(SV$mT@|D^N+O&uRhe9O7;q;cPK!eC`1`!f3UN1jr>XQe}3^MVhWvf(;R1!FY4A zVpyl9*Cu1kF!Ov97%aNhT?QFrnKw+Kz6_;Gp36*B1(+yMU_!m|r9mNJ=2<1MF&+Zs z7UatEh2{;uFVXC0gNho@wm^5f`@WX(_SN@deHT=m!nxNkR_(+T7Tt+tpRBAth Z_zPlL`RX8+NY4NO002ovPDHLkV1nkvO;!K^ diff --git a/graphics/pokemon/weedle/front.png b/graphics/pokemon/weedle/front.png deleted file mode 100644 index 12182258f850b6d598bd0e0a0cf3e3b135cd4c45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmV;!0X+VRP)Px#Fi=cXMVQc_i;I;1|NmNAV#US9lv)VxtU=9l5NbIH|K@ub7#N%>Al_P1?wpJN z-pv320BTKM^8f$=K}keGR9J=Wl)oiW zEiEnmZ+*V?hxl{AmxMipPfBUp9|IJLW)WNgOwbg8iTBG-Bs2cwV7~msegYpRy5$B4 z(bMlQL4wj#tX_b|=4>GL12SaR266*57l?ZUen2_Tvy|NZ-XUtK%H8iBK_k>DFi!zC z)hxod{C-1pyXfmC#<4Y_tpZhkU*$NuXhgM9UW6D1d&>Flf}Rd6ihYQX&tinEuQ3h- zkR`mp;H!@w;=Ydokfjx18063i*t3KFD@vOL_QUN-u8Uo3V2grOu%44h5>Aeb)sqAT z>lud&OBn}9k-Lf7hkdg;3P2FTHBM=al+|&*5fl${utM-+(|FFm+Ca_L1xm4rc55SE5l70XH002ovPDHLkV1g>>$bbL< diff --git a/graphics/pokemon/weepinbell/front.png b/graphics/pokemon/weepinbell/front.png deleted file mode 100644 index 20b61b8d5f6fa5a27f03d155209eabb54882fb5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0Px#Fi=cXMF6nq2wE{YtXiDjgJMcCqlL;0zuLBfV)?n@t=0;&Hpt- z-EEpTZ{D2582cm8TJs~&wg&wDrh z)dH^NACvxh&q3^aPh6%Nz&Phx{xyxvo&=BH*KRNZ62pDx63~0_zIKD!ci1!FGr%*{ z0pu3IEhmV=(>}NeIQIb<&S~E+eMrR>0Bzg&l$;PI1E~EaK8|3FYc+=gSp{$yaNlPj z-r*~Ofg}t71AG8_gS3AI;6RiBegQB8+y2Q8Z6qKAe3U^hihd%_Zi9(}1srmp&%&2- z09WP=AO(5=9|3*?c^2v0n!XCl`V=5Jzy`Q@Dp?pM3dk}9SZ?qw(1dZ4Bm!iKX@HGz z0fc$dgedSC;s!Rr)n|5?rb6(Ve1B8y)c{kG;I}{$`0ou6h{8@#Ky$gm*e4}s%7Uo} z!Yuu9B<|0LBV2zp(LB!)80BgmfvBz@0a?O01_9O)nnc`xGweoC0i`EryQ|9@@(AS_ zD!&uT5kd((>1Tin;88!HfoD(vANH3Up*yTv+zyauD5Y-iM}j=a^Y~3W3i2k%F~00` g!gsU3dGn9+2i`#=K$bzK&j0`b07*qoM6N<$f+O7nFaQ7m diff --git a/graphics/pokemon/weezing/front.png b/graphics/pokemon/weezing/front.png deleted file mode 100644 index d165c84785869db9626733fb8f75c1bf2d14947b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 934 zcmV;X16lluP)Px#Fi=cXMF6nq#np@U?v%x}DT7*zy^GCaF?*zHwAG~E5D*am|Np(cy{x2CtfW$$ zQexF}gAbIC?f?J-BuPX;R9JPb6(m!}0v zrfD3r#KZ5OgS9V>9}zC+fM4`b^f$m)c|8E;uS|iZAkTSjU!VJFU46l9Vtw8T_q49% z2FUvB>m9(oVc_fc48wdgkjj4efpwpo7WW9gDTm#c{#32CHfWByYE(prfSjjmB8UgauVG?_g zFajPNCj-U~QnAs-CUQ_B$WIaDdGOyxdenWRrKg?8h9g!!jw1p32CRRp4-TT}c@I~F zQ*s#Tt!zje)fJbC3P@PTpaANg(zrJftoON~;{sCTac{cLRYdDXuI8|VvgxF3-g4=| z`%R^aQNz}sq4z%|mU$(5Z`&^V3NTGEB``Sez5J|x|7oy(qgVix2rve)QCXU`WRCX= zKqvt6L#PLk#W^S+0!!AT?qsr44qyO?nz$W&ObNb$nnAEW^a(tDB1bxP*OcD7gAC}F zA=)7nNT&W&f{wo#urBx{Ne(@L4W7#6aTvg5I!%@V0CZ-7g5@m!)j^eq=wdaAJ-t~> zD>wR(){WyqP8QI_2~+gpld`s;`yPMNvjxhCpB%CeEByz8f}KfdJ+ zy%~?*Y3_YveIj%i`6e_Z_^n;PuiRe)OJNKscl5-$y#OO~Wd-}1^XlI6rw@9+a{9%; zPx#Fi=cXMVQc_tdv@6T0!RC&Be5f5D*X;N*F4m_9L=4YzvON*;R2OIN;r0aAJT)Jg^Fu)-mNyH04it~a zgH7n^L_CM!zI!zHb0mDiM-84TZ=-*#niQ&lwuPL5)@J8D=h7*xz;}i~NwzEL#ZFmV z7^;GQ2~usbPqv(jDub4HU4YsjzqA#(B$bt;3zbb9Xb;;2F)W)w8jrrxbfL~WAb}{eFSU^BfFfceMC@64Xc;KiI`1k;jIB=iC84~?2MZWknu(tf}>-kTaHZXDp~c=V1jG*AJYRnf>Fq=QUC z62<_~sqE&5js{tlYK1;xqRKv9KSujDNHJWi`;09$&m8% zrXjkhG@D(#9plLw0A*-0+W_3>W6YwE0rlBfJA-cJ+BmP$LE4WPXue(pdQm1E%(5}! za5DdX$S!B#waQ28hJ%zFy=$k3-^_F$0@H%iQVNd`F#%=w=f>DiMId@Wr4$-g(Vkm7 zKd{pq20SXAn6n0oU2E;WEmV`g7*jIg@qP*Lg@K#urR0!Jo+%F&g__Q1jBWrLJh;1+ z1?Tz7rJ7Y;xZu59-fK_*R{)Ee5jJY?cKHKT0p}o#x*0b+aQDlAW<*2n{C0Qt?!mw| zw102@#9tq8ega5nFFU#(5U!D|o31eR`pSr5`6(W2`~l@cnfpqNqO<@2002ovPDHLk FV1jPtDp&vj diff --git a/graphics/pokemon/whiscash/front.png b/graphics/pokemon/whiscash/front.png deleted file mode 100644 index d62e69f3c3aaa361ee7c891423015213bb6b1253..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 815 zcmV+~1JL}5P)HV%7{(99NLD8tGgNH3s1hhk+*47750?5? z8CUDe{3;=iz04P*OI7)7xVq$De%*l@_qUlO%9z~rk)wb%<9sOa3c>Xoe#u4>*yjCq zfY7>)NLBxz>b_)`ph=_0T`zzQ=Id1b7BGbvZ%==t_mvRk>_t4G{_qAMTWHd6wNt!^F94t&<^KF6O}Gq7 z_b|p!KGx!RN-32QD~Io-Df&duFX?V=afjcTw4UIH;jXvSFODQf^={z|i<^eVlEoA{F%du=oJ25OjB*Ex`; z3htm42mrvTZth&xxpK~=}Xgg}^H6JzI`zhb#& z!AoKLBB!a=1no@e@xd(fr#t|QcEZkB1LEz359Z+Z4!WG56B^QP(rFlaV})W;+I&Eh zB%yQ8gCmQC;$@m|n~=5+!Zy#eWm(oL&^cg6CXd#-((Olc2{gM&a$X#j_k1|Q5opWu z1h6`kO%%ZKU}%nT#R7SK;UhED`%dXZtcZCe{YRX)hO%yPHpClzDn*e19v=1@=vHk; t(Re8U^FA-m<-a8wUJe-1a{o@Z={Hg~Ah{u>$@BmK002ovPDHLkV1fXTeOv$l diff --git a/graphics/pokemon/whismur/front.png b/graphics/pokemon/whismur/front.png deleted file mode 100644 index 3a4c69d47bea97b1cb29267672a887fdd18d0d74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmV_aPY|R000000000000000Pf=uX0004q zNklWm2&HS{G9O-1h@K+br(gm{U`>Q6A|Ybz@tB(BW~gu@KOj-ZL*~|08xul z%>fibcFc~`Pr<7J)xPib5XAXZSWsFJ);JZR?iZEpEI_RI_&5esQU~;OY_TYc@o{u) zDfc>nGHA6GyVd9&t(0_l>LU)2*M&YYKa3)Xg5V+H0}w*&Mqp4(>FeMv8jw4HI_dyO z+gbzR0HJw-u3Q!#0M}}z{;Jz4Xka~nm6TXIhHPME+FFs6(goJ4GtYw&d*=wIHz;xh zgfPrt-{V?6bBIO8lvS?HGT=mX1}{h>$S)V=2ka|eo=-6>6F1P`p-JOBgZT3um9-5c3HQ=Xr^`@jVe9nmvF z5K6@7`x?=)O+(o=XmRTaFydf-5r6+yf4hDFHo<{$Oqz;X00000NkvXXu0mjf#!1)? diff --git a/graphics/pokemon/wigglytuff/front.png b/graphics/pokemon/wigglytuff/front.png deleted file mode 100644 index 5f5ee7e91801dace18d21d092adb4cdb4ee23446..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)Px#Fi=cXMVQc_i$OvE|NnDybLQUW5D*amtiASol+9{l|K80~q>CV0VwB#^b3qv9 zF);uD0A0M?LjV8*97#k$R9J=Wmg{c9Fbsups4s0d-v4puO9B~bsjL2*b|fUIdcOFQ zINWZ3O#m1DrCcMx{UQOTiv*bP8bJZq2%3Tth%OKq5s66Z&#krsY(5U50k8r<=sg&< zN-^ybkTnNOLJ2^w?o|;gRr?`O3&EBr=>TBFxmcB^{URZ=hagb>)bjNQ7N7b*0BRBh z4FDoyuX{jv?5_l<1rRMH7zNt$$n$5vcLE6MDTq(l@63F-OVr;3&{L_)tMJGl<>Kb& zU}<7^wDV!sy4=?p+s0kS&oLe*~5~kvfh?zX950IRp^RBLICC zri!3%jeaE{CaZ|N2`F_lB!)WjE}+iXL%=j``KO8VfB|8TvVa>-RlWHIIKCSqgbif@ zuMoBXnagP>gtUK;koRvBau@rP00RKvjGgr|m(DGazT4Ga{}`wVFl2w!(gi@ShvsEK zv*!Uc96OAGc8<`OyfM>FbZrEcZ^Jt=eG1Ys{p+`W0H`4wi#Po7X8-^I07*qoM6N<$ Ef+#vCF8}}l diff --git a/graphics/pokemon/wingull/front.png b/graphics/pokemon/wingull/front.png deleted file mode 100644 index dc5fe2e80aa5f955bf24b635d77b4baf98e9216e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmV;_0W1EAP)&?C2@pUlbFt3$^%sNUI5h2RhP~%l}G4S zRwiK0L*Yv$CdXMA7-}g}B!BvC-~B$Nj`5#DpLGDkv;%OUWgr5OiVU==Kq}&ZBA*Hc zkn-M71PKK1{alc6V*)Cn&uF>ua-Vkj1oEgBD-b0P1W9b@JDE(Gkphvb4QQhtW`52S z*oV6~8$g`<8CwO{u!gKG5biJ8K8kSYDJHl&=MomM(y}E^w~)q= zW5K7@_HFl?(ZyoP=RYoX^)~@nTzzr*-b&XmqnsK*%_{V?vGpgV6CyZZZ*FR96B+=K zHTnMf-I6nC07uux5cc;kcvN1LAR!Wsgh(_J(7h=FK@zkG!Y)O4>-{67?LK!4%1b_{ zRcg%BE@7X8`LGoFq)AMRa}Gs_kl!{UI^MR(6*53~-vJ!sZ{r92I#AIVirhp10000< KMNUMnLSTZYG|5c> diff --git a/graphics/pokemon/wobbuffet/front.png b/graphics/pokemon/wobbuffet/front.png deleted file mode 100644 index a8efd17ef78e378797e6bc36293753931c27531a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)*CP=J7d`1tt1z`y_i00000v1AHL0006Q zNklyQS?ScFZfAyfk@y25d&0fGmM7N0ss^c(+YsE zLjYI))rV>uB2pa?uRc~10RHa0BS0g$3I$S250DcQ{>k{7p8&OLQYy3FbM<}FvC)I} z(r*hWcn~NB0=z}2n9k5ZVa9XB_!Q6`Fc=1iWiCL}DGDy?Bj1MrH3MUAZaQ%U*#S1@ zCd|X&&uR&DDACD~9aSY_^M*v1S3uX5Bd`KKM2tW&0P)tmvW%z!-gieKT;LkOi722x z-k(lizkmgj?Fe85gZlP_YAukgz%G)G0Ddn4Ie`g*z7wD#0B$W%H<7sBx&bBvi5x#^ zE`(Ywa9)+@hibuyF=7X~}h#&cbOT>>awhWw!={(ZAB zkXnBZpsBVgT?c_^L#<@T#iIx8tS>t*p8AJbKvwwN_kH7)&|+9&@vHy)=Nur~Pi2M0 z%eNmd=YVY~|N3|R_uoG~K$l3d0(t8Df6v}Ah)o~|1fIQ9*p`P!6#CwTXroIUghYhz zCsYH1W}$tF;+!tsyY^JDT)U+R0*QUf9O&*9EE n%mTz*jhH#*DAB&|zeW8AyYkZN(3_)X00000NkvXXu0mjfG}0I| diff --git a/graphics/pokemon/woobat/front.png b/graphics/pokemon/woobat/front.png deleted file mode 100644 index 793607dc895f1ae8c555e8809ae6759e7fc0bdfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^dK!`|CG_Si@0004~ zNklvCXD@fMfceGP<7~hO!#);DFL)(q0mYjmuylv+2qt*0i%XUP9Pfv*#gZEaA44vC zE8CCe4-4^(w8N?H%{cyU4ISTwyF#F4GL$)kF%(7+`Tc427lsTVm=pu>yfQao3jn&s z5int&n>G4phQ!|HW-S^3D+I7bz=R*1@kz@DxKNK7G6VqqiF^)7di3q$3Aa5ITPB4& fI3O3@tFHP7;R%Gd%gkvw00000NkvXXu0mjfK78lV diff --git a/graphics/pokemon/wooper/front.png b/graphics/pokemon/wooper/front.png deleted file mode 100644 index ad14f25b21eb0954f869e912b0550e50fde9dac7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmV<10VMv3P)7SXH7<=pY{M^b z>rg^W8QJ7V`CeseZ*_9(S>ABIckX>B51>}9e^TQwyJZ6yQeIa8En5NTF31~J0bP6K zx-QWJOZ0>-`j0t49tT80PxO_)Pylfe&2C3H_ahxZgaGX#U|x1R&hjJo)r`hf5qQ05 zzL3As_DIbr17;`&UVdH2B)XHL#DE+P=or;Wue9Z}MZR<1p}lIZ$^h(XveUjZTQLBH z3Lr1bvXo{)Aebeg3=CJ>oX8WZ&AQSSns+22~ilu902A9QO2Nwkn9xMMh zK*}TsOx}lsJT5g?VFNfP^7Sc)yl*^FMrwLm@$bN()1DGYrxpJWtUL1e^9+%GCY2w7 zhc6r>;*`cLFi}O_WVPx#Fi=cXMVQc_5D*YrT3R_dL34X*IZ{C>F*!>Z(;+*qhk!g%u9Bq!B!6e<&I2y-_Nod8 zaybY>Kyvsy0{7e7=X|J~4p0ON+o#Sb^I;#{m+ zic}MOZ>p^UT;G~!@aTacL~wLu2Y8MS!Ae~Pt>O9M z@HJ^TrfSEu@t{mkHB;c4#!T-SZ;oYM@Lb@WVN2yew+vp0FSJppJzh`naFa=zRk zI7D!BW@iR0B~2BvyMS6!v#XDgLuu~;VBs06dK>$FLkP+-enaxp0!C+4&tt&_9Cu*a zYLIa1ZS;Pdqo6X}-w_bY6hM~wKMbGx)UVVRe)<)6K5fgp00000NkvXXu0mjf&}8nS diff --git a/graphics/pokemon/wormadam/sandy_cloak/front.png b/graphics/pokemon/wormadam/sandy_cloak/front.png deleted file mode 100644 index 5d08516fddb4c74b9d4a85ad79029b8a2954f336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)Px#Fi=cXMVQc_5D*YrT3R_dL34X*IWaM$ds<>jIjod(|NsAsN;%cVb7E3b?sHOu zb7BAh05`@C761SN$Vo&&R9J=Wm+6j!FbsriLck<}_kY}-vD0Js2LZB&R;r~|h-N-} z>~QpUd&kd*NT+`21IX~l0O&(!0im~tq0_=R_5wOR^g8I@NBBRvNdj7gku`cwW=)Q09hQMY$ZCg@50in0me#T1wqsSZ05cTp+2RYRcZwTa*8uu z-)KX@%Cx48_0vRk2o$G;uNb{ayM&@St?QZ$FnR8r(}T$-H%f3oHod9g$4{9F?uUIn z@~z1L;&K31FUkmw%|t-1UA*gwG(8B-*M;JW4TPtjNcAWUJqX3*&#BZq~-2TmS$707*qoM6N<$g7?h>^8f$< diff --git a/graphics/pokemon/wormadam/trash_cloak/front.png b/graphics/pokemon/wormadam/trash_cloak/front.png deleted file mode 100644 index a15ba6b90670d4895d2c1904e996465bbbe6e542..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)Px#Fi=cXMVQc_5D*YrT3R_dL34X*QaMV+TAYJQb9+i!v}$|*|NrikoB#j-00000 z00000090*;5C8xHl1W5CR9J=Wm5px0APj_aAqE`Y|9y8hB;BMbp`dNj6bn^NmHRj! zKV6ome!hT7{W=H0`o{q3!=!;Qn_-x2VcTW_lReCKFu#xf2Via|E@5sNh0EwYh{%vW z@-P`dVjS`zF*ra{8U&aDh9HuLIzZTXmYjfhZ$^feux?u=tVk)z8;r!zm|t)}s2&(Y z>_k*KxCd98-*aFL_G=e{GsO(Wy02b)jX~83_p4!gzFn}R0%uJR1Rkrn(+zI&ra17k31ZY#M4Bg47 z;al^Ae@;$t17rFH;)KBls)HIq9wQ*18(Uv#YzqzQmv%#q%b$Ac7wZGW WBomvY+;ZRm0000A@n diff --git a/graphics/pokemon/wurmple/front.png b/graphics/pokemon/wurmple/front.png deleted file mode 100644 index bad155a3def5ea2e55429424386b655b61aed1e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP)(R7i>K(mzWBF%$ssNVOt#dA)YgEv>j3gNshq zb8zb+QR-1}X?vrJ*nWX(cc)%Q>2e+AhBJ#G4nlEr5UiU+!QN*usR-Jn*TF#tAKY-f zA9;Tgg#P1?2299L;pHEKI%3PK=fe9qiLyD(gDA0 zfjl6V-E&5V7y{0S0I_8vfU+;w^*Wpr0J>u2vb$vk*a7Fk6#x*t0UJg|0W$^8Z66?M zrG$dj(Yz3hac)5_1AsHIr~-tD?7<|EGD!;SE_K}#Jy4L}j-dgudGAtWb8-?+)OVA( zU-P;a$R^T3%VG*BzBJo|X9|=UtA1ZMMY!KAzRFeE+z)RwJ+cL_ZF7>Qybv($%Ov79 zf-9Tfg002ovPDHLkV1n+*07w7; diff --git a/graphics/pokemon/wynaut/front.png b/graphics/pokemon/wynaut/front.png deleted file mode 100644 index 197d67fdf8d4ea0f20e751a59a8941e9c64ae31d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmVw_002msxS%jVcqlm7SYUv7c*w}W000000000000000!HxVxOA=obGnl2Q14yih?Q=5tUw05SqlhQRXz00Jp80K`y=2UsDt zOFo5g0HNYLsU2vQVnJLF0QeMB5-k9m;%+`mkUCv)b*64o5SYaeU}hoU#f`G&L7BU^ z>A`$dQ7L+Rc=(HuEqn(9vSmG#u;hTXyT|DcO2vU@v(Go(c-=t4fW3=X0@inauLyK+ zhrMKgnBk;5_NN023OPCSecxf@AEhYP&5^)62U0Xh;v}(Zy&I9DCXqV(L~&KpzSt*2MdTlsD=>6Y8H;OUj8xmp+1IMHG;bRl7v8NBNd=8||L4j7 fRV;sWi@%Of#K?WQWUNi^00000NkvXXu0mjf?3>UD diff --git a/graphics/pokemon/xatu/front.png b/graphics/pokemon/xatu/front.png deleted file mode 100644 index e90c44fadf83ad6e80182169700b909ca0bab413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmV-T0Px#Fi=cXMF6nqN|ZsA)j=t0DYT0qbG=t^xtJfZ`fy%wS)foTSJ7#KSa3s2M7zqMq{mYdcd-*&^FKHLnJ*x?CZL0v$I6x zNeMXp07wl62^=W^+e)-8)qltt6=0htMBf^_Q2|8O80Sv+fS&=a^ng2ok{-|!DCZFZ zkucEDDGdQYsKV7y1fq*D5`kL4Km=?eSb4^w2mzbWqKhDuI1(X{bI!_-P=uh25PaMd z>}j{Yl%kIyfZbq5pR*niy!R2?$(ZO%u7tGj{R9D^2@V%IFFA7rEr1EU0eD@Ff-=JV|%F z0f0)&15lfw0GxxT^gscK6n_FVB>->@S-1m=6J8FJ8-O(SlW{xRMwD_j($LYKpe(nh z0YFUXe6Gg<@#_dQjU5jm@4772W9E!cF?RdqEzq_Om-~)~yA$!U@A#%*bM%Jz4g4P9 bqhIv}aBv~caCXlo00000NkvXXu0mjft)%zU diff --git a/graphics/pokemon/xerneas/active/front.png b/graphics/pokemon/xerneas/active/front.png deleted file mode 100644 index b291e10f4f7db3b443707f267746388812aaed88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 931 zcmV;U16=%xP)H z002NhKqe+8fOc71i{#9`kN@nlHZo#FTA_DOPw$^k|5a6=U%vpN=>PvBNhEu?00009 za7bBm000ie000ie0hKEb8vpwJvu!oZM^gPX|YzK$wKVTZ! zcI+@D>aEHH%Wc&x)q%pWBq9i#8c8p*3f;?P^f0Ql{R_IQr{Tf#pa)OlQ5c^6Jx`au zBT-0kJ>|G%1L;&-dQnsHdWv-Ac zvb+fRD1ehH>GnRG)d*-|Yx^7_YtYIFVE$JH0btdHoY~Cw;cX5)Z{Zia0;pyCUp-@J zfW6Hwh&;xd@A#ES;b$q^vz#bH%j<&px&^Zq7OwIE>2_))0vyjR`6>ntw~zARr>oz7YBd^!RrI@DagJbmxDhH3P^ zbrw)^Nc4|snvUtXbSXvV1gLuzhthNz8o1y*Em!L0SvsmOZm^BTAfDa?aKKnTWFufM zkwcX=o(1;kdG2-`@Q$n|8>di=1J>3}kJ;lCinpe9>@mjdi5e5Y7U+9p16|c(A@0$7 zcs#B_Rf!ZYSw3!zYfuYBN%W*X28yai<1r8lCV+yPNMaHQRTW~yb-5V<;U@s5%jDmj z%#Pr`%O{{~QwA~z>I}-1BVgJ==8F_?AlQS+!$b<)J!C9w$aWcp$Dr%6ofWW<*~|_D zMr2zTW4Z_#mg*2LRt}i1DWJ!?zyY5FjYldalA>$zF3_g!H(^2FsRd}EM3Z}y9#)%n z7#0&Pibn3kN&pSa@fM_R?Oa_C-U3jV39RXBu*kYLD@LxMXnH}>=?nlrE@*T|qx2ep zU=EPnEI@}E+% z4WW;6Ob0{+NkouV({`oeb3iCkEe*IaVVnA&kT~`D_zUea+-)JUAP4{e002ovPDHLk FV1n`kpJD(2 diff --git a/graphics/pokemon/yamask/front.png b/graphics/pokemon/yamask/front.png deleted file mode 100644 index 28a564b55b48a6375a08a05dfffffba672d96990..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP)lmtr zNM>??WHw;tY5w;gA;hyDw;<#D3FbVJC^Y;Cg;=l_5ZMt4-T_nqI1K`J2L=cVuSZ6M zfL&c5wt=AVb`PlQ<2GPt4-Akjw_vv6!VJ{gfCQQW5DOy7763p)83Clt!=o&TC}R@J z1Zxu9se$rOB7xO_991S{snhf5G@4@Wua;ub+JaEao7jLwyazD&ulR_ak5g zO;;t#p}XF}gaAyIex3VI$mn2UDD3z7P<8=6cir0z`~^eH%N2Y>0CLO2Me*Lg@6 zPF>Yj0a%Dg9^U(Y1_GfYfqMVa56%4QTx=uqyC0@D()b6aX&RYr3$Z_SBm3*^D}Dg& iGv<9=QSZ-socaaUd_m%r1+b6+0000aP!JFhz(6?oh+sHaD5%g-V3;t_@PKG|fJjJChTvjs0006s zNkl(C)$>fnu9SzM_S^xZ)bEP^J0o<^K^sbC_5cO4 zhbWM8dLMAMI###LOj-bRSwe2W%Sre|M@S-so(V#3B2;q{J|SrVP@R8&(nPZDBz+=! zP|82innVM7mQGWWeZ;P+LPw;xcn`1#iMj42f<3~%0b>yGJpX1|qq zfYsS7M9lSAHw=H(nLX&+UJ^Kt9VLog&v>|ErdR9L8B4ZMk-BhVrHvl0y6w6VZD*X# zm>L6ks)h?^+lC$t&B0K^9RT!D7Aqir6o5@B@HUTBCE5W9MUTWg=zq~4;r+J(YuTBjE7=~rs#zIpiQ}B{OX98}aU^|P)4rxu+;2Yd2lX6{xp|zEEiPV66 zh-wK*T@QtJDMHv|A)t2X7VOhtvN%rk5Aq{=Cp&R1o!y~J={KG9KKFj_r;{WI|4GRY zR_iH6T}`9_SV^R01ps+f0-#c2g$3KM0Cgn*)MXYaI$@duKmmDfduAO0)Z!^G9$*{G zjF17G5xWbzS`>sdBk~VnEt1y`e$&-#k*y-43z@~*!5tt+(@mo>0(Pmz?i{!W)LDe6 z${Uap&#Anp8SKW^4tsn66mJ{q5W>@sXb(++t$HWYH|HZ!qTZ&m#enc_8u7!EXAoBPi^}EMJ{kI$kjW?)CN0v1Zy#=k z{tx9ndGf`@Ng#E6<=dxVf>K;{s_7gP_HbYLM~_kwG3sncrk5h)1mK&QVGxK-r?;aCdX3`+yK9{q{Y zn;_b&3Hc6vLn2>M6o(%I3%#+Hc;6NgV}346>hA&Z5Bk4XzW^(13$t(SMq>Z~002ov JPDHLkV1mg`TVVhI diff --git a/graphics/pokemon/yveltal/front.png b/graphics/pokemon/yveltal/front.png deleted file mode 100644 index 7a259c51397e8038c25f2adc304acd0acc900bf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcmV-|1bzF7P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_ARs7kaBwgD1KUYN zK~zY`eU;5_B1aI%yOTL_qG)JOoXavY571jJue7JZ-SWrY24x-q4eGlkOM`qHVaa1| zXb)NTM6{8NxaO9;LLMsB4Y3)_ZXd9j|8J_Q>kGC$oE@CxUGuw0o8KWHy<+vN$ZP?0GxM&(ZXn>rj>rg zu^x+*JPW&Zf$eSlQED-Mf-jG10-C!E(AyaLsCGHz!d@?z%UbGNE!|MtV8Qmmhfnw7 zLY+MA0OcllRhC4Y0XR1fLC69%0iRW&Z>2M~rqj#e-0c9;y@$^V3LLtL_Ij0PUf%&| zKh)ksMb~xarmhitxg=Q$Uu0g`2q1)j!}E#$QX!Cs->kI;1(k?T7)SNAT*MS38K^L> zfogR!ttf>$WMAM_y%1MY565~b5UY$z8P|7~2ueaK5y_mkGL@5?&#DGB%JZxiu(n2} zA(xgJGDg6!e~Sl8cOYPt!?ai6~64@Y0NGhL&AX!ShT|Aqr~|_W^+vEwe0w z9Ml6P>VaCRy9ZdiYh2S4arN>3-UEB%@OmPpYVqm5T-)OS@6O^{q^svYjXnf6trf+h zj0ad`5KR-{bv&oi;k5_6eh3U8J7xUiX07IbXs=srPW@n%$E((JIaTX>(zV4ypp%vJ z=dzr>&mJicX>=GP|LLTxAIrP-Agki%G?cJ;pmlfsc$cmRr=9F5&^vvI%9MSBd9Obw z(YyghZ7K%)7T3L#ec)w}@bF)YG706J?Ye-@B{b}`s4t(VtGy@Yyg{rLdAQ$y65%;) zR&29j|9j|VF92_QfX4UhW?G#R(jo&D^ye>c`vEn|FNoi35pOo@SzHPIY1IHYz%N8h zD@CJC-J52fJ)N=t0AMdc Uy@MBuZ~y=R07*qoM6N<$f_|$S`v3p{ diff --git a/graphics/pokemon/zangoose/front.png b/graphics/pokemon/zangoose/front.png deleted file mode 100644 index d9640b8428d216f95090af1e53eac7eb79ae7399..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 767 zcmVPx#Fi=cXMVQc_iDKRlx zVq%MwlrE5CasU7VeMv+?R9J=Wm*JADAPj{i5Xh~l@Bg-Y60m9&TefrmZKgZhZaH5L zA%@vu_={#Z`cm(|1GujN{*@5=fX?#)5JTz$IPaNvieCLIAf!&c?qCB1=;IfF5L34S z12`u#nEl@wKpDIjF@3)Q{^v`WyxV~GVU0&hoMJyAfAI77#|b?2;2)GhC1R$)58GwPAAeXaExw30bqb%EzrA(huVu5 z2(1DNI4sv$c8x{s3?$wa%JUkS_r4+}%}P zCLkIwmtp9u1=gcYI}6wPl=OuGv<_3IU`l&^j=0)}PUUZJ_)vJXG9;pRb2(O}d9QhP_ z!plr+k_!hLfZbUS02VCM)B@<<>sJjxPyn?pY$0VJp9st|JT@&H09OP;0|7vv0a#85 zlHo(ZP)Z;|2mP~B?*VIaL0i$d2YeW^mymP=>c#X_=rHyj0J{~&-A)bAK@iN;Px#Fi=cXMVQc_oO=-e=A=?N5C8xG)vO2z5D@>>LHPLi|GjGVlo-Wo7?_AK-rnA5 zXlSD_Fe!FReE+OGbadvn%0RbYRF zBp|oj|Mo9i`c*$kfBc*^4BY?&>hCtsZEPp>$CP(~vpdnE^Q=^L0v@IPj*`Z06S^8r zsSy;T+we4*19F~ha3Fj4ygCf;+O%j^8gv*>teFeZFgW0DY3OrGHc{`*28{!ZLa`(P zSUE90r}BBI&bI1<0F9svq-0PB0MB$FC5dRl0qTY7LGO-QAWXQR0MHfu<11Hc2#d+8 zrs=jgiI$8`VIbp`t(0S=fJ5ITnZ3|=f^qU`dyansSAd<=M(g^S2~_DFS?q-|e!B)n zqvcZ_u_rW7`*JO5KI&&LJ~z)zCu9)XaNXo5J=3|_NXQ_xick_VB4X> zUQkATKI%tp3hOyy;upLvjtRg)zn`3YXxjQibT6ox@G0*jfSC^7!+q50s7J}%rPNM4 z#()sna}puppj*Kom*nA09)vxEULQRHBu5%l?nNr2iphb{lit!f4~^jjDMhG_45*GC zoND06AfOh>UE1tg>K2(VWl)BllJ`arKs^D-_)w37WpIEswl3n5fYZcOZc$o1!?fz5hyaKk4EC=pTIr531z3U|Hwl*#RI1q%ee!)dM^b zp!WrZA$mnX{h$I7fyYQd)ibdo_vMNpwE}=25*RrDtpHT^Ew4_J(JJPzWN;1Qkrx80 zC>ziF_+Z#VH2~_H)r&y{1odXQsKp2(hxXGp_5<=$99`ZMaE@UB7qPl3+=CPWfYfMt zz9qEqpbmqO7zJbbDYiFzW%+1B>C;{1ft2D*tV>(|RTNf$@;0!YJ^(yF*onKP@POP7 zF{J;Ky*$|ZWgZX0ZwPT`v3Ak;p5V7N-cRDoLN|nWqK^r}`x3SBxs*6hC4Wx9wF6%R z-pNwKWNxC%y)fz}?qu$V`X_3>mhF~7Jvlb%EWEFN4G><5{g|Bn?Mvf&IVW%X^X;4E kzwqQI`x$WiRsSEbKNvG49CUT@TmS$707*qoM6N<$f@LtQ>i_@% diff --git a/graphics/pokemon/zebstrika/front.png b/graphics/pokemon/zebstrika/front.png deleted file mode 100644 index 8d097028270e0d2b6d69cf5e677a0be0eb1241cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 864 zcmV-m1E2hfP)>nC;K zs2#XkaNOp#;NY}O5W^LK5~>Q^rXmHP)?GVGTOL^oq<^3xXR+cN%%8=crF7a=!F zHZ}p~7LCBtXdB@?2{U?Y^YP3%dp!a-y0$nK0>*VCSO@9j*bye$1sV@c$}pDE2Ef?D z(NYBh;R$H%R)BYCZcB@p5PC}hHu5a%fM?gzmf(i~?L3PV2PL!m- zjRlzdd*8(5py}sI`6;6Z5_hbz21Adv2t77^?&k!?Qmsod9L|?uKJ@+pa}d+6*Z}kU z;Q|=Lz5k6#ge>9f9UJD+-to8J?|3&ESudVY;gJy@D<=+rgW?l#_tHU z&e)U2TLdOJU@%2>zVnpw&)B6YCq6^qcL8;2`5!O{=~uxjL0Si>xV7MH1#qMILj{PJ zptS>f1bPGp#a=L+)3G|E6q3c&o<;CC*njxA9~kVO(bMqE(2{oEPMpT2kSwqMJOwn4 q8Ivrp_Wz^4f2@5y;~CrcUi=G92=nK|WBVQe0000okfE+9(TkclRgt(!RU7u8cl}e?<;eVbdfFC}7{q$)cL5uhSpr3#HeV>kq`h)!y zzYd$7rz6ojyLd(Y(>7|M)ik_cK%8*${9_axzuHs;)4#!I3Ap|uXd^e&NY*(=(7Eu8yDHhB?l7bViWW3sN2bzSE{>;aZ z)4+SmS@25*G=bG07v8g+iHpJ>V9YBFyFHgNSFzKb1$8Zd7NFlXNKsRBZ^I%;(tMJ7j>XJ)RlJb;x_nKtJ&rqdPFO0-4Vp zr@QNbeN1M~g|!0%1A|y*PWM18hw$3XG~G5r9&)qEz&zv=HVEKy=5}2OQ9$x(Z~i0~ zo4fJjWgx1yL$u`M{&-<=wyG)5aGcu*fEE@Z>-Q_ww}sF?&2?+bJsC->}a Z%D+SzHT5m0#=8Ij002ovPDHLkV1o8W=Oq9D diff --git a/graphics/pokemon/zigzagoon/front.png b/graphics/pokemon/zigzagoon/front.png deleted file mode 100644 index da1a3a6ad88d3c9e7595b63de6c71a5851e192eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)Px#Fi=cXMVQc_b7EQm006zLoaWxmw495Sdum!zNmN(7y;9ZpaFwzVP%TB?8e5!j0RSC;%FC9Ni&Q}%K&bHCdEIp(73o+M z-ni6SUBHYW?}}NGXI)SrMGA+k;umHWov+nO)}9Oh3PMB+ox4o68oXa&<;xB(6rhHX ziN5``3;2aq^Y8HfI0P}8t|3!GBaKw^3LE@X_g#2IiN{|OA_3J1Q^AjuRvD(?3V~Nk z=Tt!$v*6tVJ*10~Lif;zOeZJxW{5i#kd0`LF;002ovPDHLkV1l*{FUSA@ diff --git a/graphics/pokemon/zoroark/front.png b/graphics/pokemon/zoroark/front.png deleted file mode 100644 index 365e9ca96cbdd73aa84fe05e5cf3fdcc54977086..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmV-k1EKthP)dnX2NzcF0N@$M zERZtn@dKUonnzN~%QolE0pP>6lw%ojSBlU3fZ46o@nzyl8SNpCCOIH)+H{HFV?~Eo zl7Kl#In)&A@1e{j6Dj2U{82{N8i+XOCBG~JuI2gDW3FGy8@KGIbw|tdyRYrM4;iqE z84UvF>&Zg~KqQ11UzCA+8BK8-XS%EPD$$lx{En1Bc-$dC%mkDGM`E(TQz1sJ90wItnTOb906tn8Gjm{PvoqY)_O*$C*AeK1&;)-?cKwML|dD}Z4# z8*Cc02jF!OSq(6Z7WDLc;0#H}S_uk|>pj5m_0yBiFs#S`OKx+WU+b}`02Zt z+U$TVkgV^oGTe$gaVHr#W4L;&eQz28^a1FPm=@^+K~<3PkLeCOo*MKH)t>MdPOxb1{#fy(_KJMG4+-9 zB;M#}yM8sah04nSY?}27I)P$Mw#op5Whr)#=pZ3ox2%EK(1ce$;!5SeJ2_ym>Jjd$ z+zoRB)WTHD{DxtY?)?~U0fVLKYHtR$ea=>@`Wef5Q1P#CbV`1trRfPgSCKmY&$000000000000000PC5bg00055 zNkld295JhP~>{l`pxD|sOK>4DO(hkYpRtiZK?gGU;gHI4(Z?Fg0DyPg) z*=kAJRl1A{0h-4@^JfS#_8ngmKdu4o<@9EA1!!tfL1`Zj4}jtfPz$6z-ns&^pFnO9%gN4 zL;iL{UE;ZC3i3B?LkD)aPm*V3e5SAh(0 zSZGk~mTda9VAAO?g`wRMptUDYd0=;5;I-CcHKfz377TyROHYKM)ukJwZ}@$VPTk0C zy0JPx#Fi=cXMVQc_5D*Y!d$qmJ|BSWoNMd$qMvoO2;s)^ol8|Nqd?&|_m`00000 z000000PmO4E&u=lt4TybR9J=WmeG=fFbGAJKt=2SfA3x(nmF4kK38V?(CRrMgd`n? zC!YAp7%dX-5#l3j59rcBR7yDtz;Y?fVv)hQ=Z$85y}(YBrf>|^;f%o@o)UcEJr9~H zo#L5~0^x?|`GY|9KHm&TVCSy{J>LW+%|o!`P|0nChi^RyBUx(nL&_&~XDe>(Bq+ z4KPsYkCaU$4GosQ+)lyUNkB(IL%+i@h;7~FjW?th^y8l2i)cc;v5dXJuR=NiF$azrL2kfg*Z02NqM`BpHWI!%AMU v_8{%BzXD%MzB#T8XDgOm&nKRE;uqr&snZX{sxsLK00000NkvXXu0mjfN5AyZ diff --git a/graphics/pokemon/zweilous/front.png b/graphics/pokemon/zweilous/front.png deleted file mode 100644 index d6e4b809d91fa1717047f752fe22f3312f7195f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 778 zcmV+l1NHogP)fRNrrpdyg-Vaz(9(0 zK?)zhjj!P*x5-f2kExaIB26+C#rO2y<8bJC|4{L_2;u2p6Vm+}W;0j*sCBIv2)Yus*tfDY zwE}=RJ+X0g4jHpa7~8f|s$7slECPz7TTmRHH;l+Bup9ta{@UF3waQ>5Y(^+3=!BTi zUbYlfS6j8%X?dVPDEplyxlnv?v!8N*?IfDnA7a9Q46H+{oMy0yqKFXbu#7{bs64kg zbx=k$P5^nd@(#-vL=eNk&Ej+=WJ?ODqQxv8&`pA!mF)wYI@n?5vAybKR>9(!j_o;k zxP!w6wQs1J^$7Vuuq~1o^Ag*VW%FW)v6ju8M2nf7*ECj@S>GPw{k8fj3)`prOLKjG zAaQKW*(1FTiDwTqc4a*!T$-Eu{-Ks-@$nZug6<$@Z#sSUpi5mpcAB1nUQHZyuXX*Y z)B4MOrpb5cu!v52$Reu*i!A=l}o!07*qo IM6N<$f*by3MF0Q* diff --git a/graphics/pokemon/zygarde/10_percent/front.png b/graphics/pokemon/zygarde/10_percent/front.png deleted file mode 100644 index f475e6cff3df0f42e8fdcc2b029c494caac1821d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 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≈{`l1PtD`EMie+c{rTXisy$UTmZS@CL zt46V3*_n2Bg>5+sa7HQD&aarIc^weVVhtDs?6oAq7cdKEU$ky@t<^%x*>-F8z!f%c z2k_aUL}PAOh9a~NS~uK8N5BFXq}J^}4+;Tuca+4+EDQnP2v9sa0T@$J2!%H#ln!<^*Q_0bq7O>r$BdouU}c#$PpDO72e^M~Qo6utwY`EQ#}jbzro&v_)hHpq*G- z7YA)o;jKI2U#GgZ?vwzA*}Cm%ze~i9w}r9)0Fe_cfii%E{r~^~07*qoM6N<$g7n$M AI{*Lx

4?H7A-o{RjX602g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM?_*Pxg9(J009?CL_t(|oZXVKPQx$|hW!L*(F|m(NCq~l z`XA~kd8STuK^Y>%ElHmai3Q2jy9s2kNlDx^nHVc>yH9sI`|cCs%0tfc);Ck2qAB=Z ztaCG_^jQMB7(u%$HTdP+BsUeGq8Py|R~;)t$=7|w&u`38e;!7t_`R#x0(}X!xOJ%!0YRC=59FxQ+x3xw1kM#c0`yH3r z06uu5Ytb?WKqwEkY$USK;z+LyC3k$ zx7=5Ac-FcjyCe4WNp;5eUllUHZ2YWsV6EJe5;?8<_3cfeajf+p-a9{aKAini$sy{C z(gx)x8|4p_zHHmB%j$clf;F+A>>>c-edY%1d#!XMobIiXzfwknr%?q+CwkH6s|0R5KGjqEG z+a9hO#*`xE9oijjz6Twx5`Vs2dQUVVxWVBg=P~_KoB1)D!x~B^l(Bqybhvm0o0aV6 z`n36pVhY+ej2RL#f(iDQPID-n{hlf6SZUpq+409KK~iX)ZPXuNC}i(tm?147b9(v9 RQ^4?L@O1TaS?83{1OWNzu#*4) delta 444 zcmV;t0Ym=31BL{U7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00AmVL_t(|ob8lBl7k==M6u)m8n^)8Ilw@B zfFyALGYyzT;X`nhs#)Y)uKL;CAS%RnJ~zYE*GFah00>=+kqBK2M`YK&0j)iUfoNIP zyApu7B*0(a=#FdxtZzFY#+!Hpw`Pf$PITFTxw(v_rCAWCe~~e`O?3}|wH)y)=IwFB zjZRaRi0zlzJoM+-NgOe${SvQC2ecyd@~78iI!tt(vUXrP=)S*o87oA-)In-5DpRND z@-x6--z^U)ZUASFrAFY+4N}In0JsjCcR<3r8d$VAfVEC2UWY#e43I(f7a?TrVGCe8G^|1>fht3@ug~*@z&!F5TG$Zc&*nS-Z2kZxiiveCszF@<0000=Mq3`8?_SORhK|9@Kvu^7h)r%yen%0nBsa~TOCe7pVESQhoq zb`H2}1gL#K8A z1K<*r_Rak}EdCx~^A;L0z!m_zk6C{XBu{#m9Uzq-mk~C}S#RnItO-`PJ~;}+b(zyL4^AUJn!U`hxSR@18h z634i%0Zs!b1R6#XaABm^Eg-T3iV%i+y$DQT1~hpmn2J#PV+v{!ZTlIe!AX%CAf%Mx(2A)I0?s7#3h@4k^Gl2BZ5uuIf zeGwBNMFOyX3=naaqbG0|qAH?7_KOa|LDF6!q002ovPDHLk FV1oX?FT(%; delta 786 zcmV+t1MU3g1=$9W7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00MnUL_t(|oW+zeYa1~X$EAQXWIEw+xz-en z<9>idTRH?6e}N9h>xshSXamKAxvpM>=4{^Tsl{1Zyj4TKK%is|T*l6wx&`_qU1CY+ z>s06)Y@grn{{Q!$-W?(TH3rdj9s|REa7ja8uTO@rgMYFRf1sxgK;p+f0Mr2Q568X- zRR}<#lmaWY7Xw169Fz@dMUGF$BOgc$B@0!DA-X5y(WPHPVQzgS@*RLwUPuc(TY4Uu zDtsc}0{gBp>Xl$6x`#DDl@jJF^GYxh-NVsx*`HW(#S)S-Q~g#%9wTtsnGqZv{<~l* z3ds#HotgUsfAgmhrUV42>AwwlS-v5J?Yv(p<3Oj088Q|R(7;l3=*$tIECm~JmCFH{ zmIhFa?IPrWOv<@EN8@0k2y7tfl;zA0nSpRNQf~W^kkE+(u#tq&TH{FsK#-$J;w_A` zk**)}Qyi3K6YxSjH)Gl^ZIoWG#pij_3cOouzA8f?fAA0-<7h?v2#e@x&d)ym1rSEP0#O?bB_bdyg2h1SAvUkB&T`T&(c|a0A_6>#LUs}ODIIB)jIIv9}`_rE`cKw2*f0s;qBRmH`xpa+u|4tUSl zbydlme;>X9zN0{-HJ~*D7a;&{w^Q4N-keueb&~`ZETKgR+(vC;nIMGo;QXOV^BBM} zqz;f9{*V?)l*jj&s67;H@IaaXFbCjafP1%vKqm0W>rr4n7O>A~-6#@_HS+a1R)!F4 zhk$EU=x=5(+VX_1wbl%$){-X#9|*0#x2DO#Bo#go(IXRtap3%GJMi!04;Vzo7Gkmc QZ~y=R07*qoM6N<$g6nEdOaK4? diff --git a/graphics/pokemon/keldeo/resolute/icon.png b/graphics/pokemon/keldeo/resolute/icon.png index 71709729027a31c7c4338ed387306cfe72f5758d..8da8ea26c8743a7733db62374d9a8f0a6d5a106a 100644 GIT binary patch delta 409 zcmV;K0cQTL1mXjb7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003|Nkl!)t%Jyq7-lXAw_50t8{b0zeD^Zvb-e;Vv)&BzOFn z0VMVH2Y?KGhyWS+&;z9MprSm8<{&02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00B}-L_t(|oYm5?YQr!P24KCxZCU#a#bgWk z4Z3(YcoE(F2&F?q22&3K<1We2NAcoQKk9%l4e}er_t-Tz+S7tL>Kw5=47Mx7z3( z{K{X_mYdtBf;QMqMJATXarlsK_EMSxl=c|7J{24pf@m5OoPzZ-Wgt`~D0q%%DJoGd zDtj>CeXCj*=?n&c2=rdDb}5C?{xEGz(73P_QVrU z{H-V&U&;5^Yrl`6eFtFQ?-BseB<>RwQ0(g_fEg+5bQ8c_YbCNF&`mi4!?^VE^;my$ z=!xqj(CZZ>TzUi4I*dSA)7WShfE(>ae-0zql!gf8@+Q4^DmsJ#!mNrop!IHm;~)hv zSyhx!3I<^5PB@HEu%J;uv+3&-aB83)N+BOb0AMxLg)j<%-qf@OtGWppppj*vO3`m$ z2#U;M>tu64a~?GdX`_bgSyf_VXe572FEWcMrth8tKAfjuE=0l^c-A^+1%z`Pr_x${ z2%a_eZ~@^&5$Gfe4~`|^tFPO}HW6DD=?s(+oPt?BeiB(d)2T~PMiMZGU==-D8)5wd zbgjE$d%ED^8Ngim-nlA(3mbr`#q@6i9?vxPp;N&mVf}_FpZcomp#c0T4lsX$v;*fD z0E~km2e1boI&kQB1?YNY^hE(pkAMjnD2ezKZgz4Q;B>tMG6~@5F@Oc@;XZVln|HJ?hw#J`PdxF&6aQM=F)uzfC2wAo z&!(#2ZqD7#`pDP&mC764%o~4}>Oakb<$r`z(3H*ZxCFHS{QI8)?sr%M%VI|%|qR?%uJVCv&d zuX!gR9ETYO)D|I}f_qP=I|kapHP?p$&<}xULEd~x%VofBy$D@>fAfC~qLW~qA}y`J zH)xrz6M(kN7hQx45MBjBv%TD(Y7HQz07@8g4y>XyYI(h-0MEfZ1I^zD&~pUT0lnp_ zPXe^p*2b?bxm!s&0_;EEM5`dO0J6EmW|&Ko=$+xi5ln*$^KKa$@f5UiR(aj4mVw?2 z3lQ#J@zk>d!1R$py#02yr#e875xVqo0G>Jlwf3~$4rUn(Ak)apHSi=bfLJLN-T`Ix zAh>zKdMv?FqpX3T8)3Q+(}+&D&u>DB8qvSTbU?(s;5@;ugc;^0C-v@IthbE3ek(uS g>5l{P#QzXK0N0fy$${^HfdBvi07*qoM6N<$f*UffaR2}S delta 978 zcmV;@11OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00TTpL_t(|ob8ssZxcxr$0yQSX(*UwiB3>? zSh;YA{SWM}hRxcfxJb?d5#{*wSeEO1$Gh<)&V|e5#2KpfhbBy41saEm@0CUEYZs-8+BpYBNmI$H}5B(!O3vx5J;~;?t zTFn#NceU2H&-!m-p90nadI)S)=P?fwvE1l-4!!Y#eo@6-Mm}+5qZE4k zJw20SIcJ_+f9~=ig}dniCQ*k4F$A`*pFy!d)%sXHpHskrp21M-YC0YrQ4!X)ei>}s zd;QPXbVR1ewB~{jU!R>ywfiRl;0TgV2!pdz^%M_d$vmtczb1hFFOzF708;=A|2i~O z6Bc+WuL5vmXaEPGUkzb<+nB*a0Iv+%+q=OZ z4j@xcOj(w@J||0HaW<*GAutyq33xo1R8_m(Mu5)1gUt%<<48Jgzl@kf;IkUj{spx4 zSdF6^0KY_8>t}fPgIYj}PTlijiJzoc*~(V-TZ}uk!`j6TTkAF*#M)ws`5l)wxYE6N zyKp0me~1jw<^KYlRxtie;ai8-T>LHrLL?Du>=AIdZ_KJP!1s zd21-30ejP}b6ji_M}!9Io3UMd6O0g%z&0-Lf8)`yIy4U85dyQo0%R8+SnV+@l$x@55A*vP!r5BBLNTRkXgU!xqzYEe2jjnwIc_BJt#SK14ZAw2}U?9 zdUrp9eh9p2VxbBhOFrx!7cK!nO1zvB*)ne>YhQNDDaQ|1uR#lBT zr!|iC$AOd*CAAAc@ex@yu$p!3afNK}RstPS&O7|Zp zzynS^g3tu<$0!`Z4&dY+R6)8TKLrlu2&(W12m=srYi<5RpyyYh?;r}|ZLzPn-V?$A zHg*u#`xx+(;KvS5NKbmG%fOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00EUrL_t(|obA-HYQr!P24ENb068OQSBpM~ z73A7@HW@M}9=a6@4VeR0_ADI>X$C)Kb+T3UP9~vap*I=y`ShQRl_dZ5`?}MM=?NCI zKuIyJ%Y06xQp&=0vJd$TSms#{9*mSV006hg57f>0c!UH3e=!X^M(u?(we+191oDkxG-8-#Tf z8$LnuGz>&&KH_?yV#`KM2UcB6LBj!W5rLtjGpr+UA$v>_TKgqR4>l3_)Ofr?PlAMS zK#yMtbQ6a_e{cq0qKQHv_<$hxJOlz20K8%glCq(|wIC@u=y}TWM@9t3wz$wS80a}z z6Hpo3f`FtUppHSQ80Z;DZ-InNxih%O6<`pYlL)9Q0RKkeL4}}iV{ix=Ehr*T-30x( z$2|^VPQZcajS3mfNiJgW7QpdDZ%X@ay)%a}#5LeDIv(Gb-oB0000(c7 zi2xt#f%P#ia|8fO$@+N$z(OGi41oyriqQ`M76?N0AprZBumGYG4+5ai;)!@JhU$Nb zKq|EBz@y-KcnF6`vf>LsFJB`}1FTsP3?_^iJSE^OC-omuVe}_DC!tA?PB6l*BN_4l z)Ix1v4IZQufM)|WqPGMlz-T}K&Kk@F^neATdtYAwXo%?E)v|i~J}e1Sa9Y4?z>3}` zTvVVIyjyYr=;BIibk;CT(YAzpkUf83-RzKv&OzcS?HLfJ0IxZ$+g2?&#{dlg39#v= z^a8LcK>&)FSO`rIHJ)_)BY+W}PjH?HJ>Uyhmah{}*%q*&hF9GKzSjB2JGKU<^$)lS zXt(0s3cRELQ-JO`yW4{Mfcc+zJz&-Xx1i}l1(ckf2D(FC#1wl<9>Vxo!BT&6N?0-x z%5((<%g&LgfV}U&1G-g2X(fv4>HR>IH!N)Bnih|%or+Ne)aYUFr3u weJ3w?WuRv6N6^RK5%4hZv+S(zJ^bhR2B?uCw(+4L=>Px#07*qoM6N<$f~El+LI3~& delta 714 zcmV;*0yX`r1(F7k7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00K5iL_t(|oVC<3Z`wc<0AS-a3nrHxTc^ko z6ESqR@1dyaQ~`e=Lpr2WHnxf(Itee$<{?XeLBwRqObk&Z-_kDqJAG&SY$`v84(XFP z3BB*$duI+?*1Lx19m$KS^H$zw!E)ZGb3F$Wt`O7Zn9iRDf8)NzVFJ_7Bw!E(V;dlJ z1>J)I1mgh!3r~Z-OLPDL;auVhJn%%j1{Me0%QcwrB@G5bxX4%}7VQ>xv2_x07(lor z&S5hM^#BppfW;+o3JwueA?5=Dc)$#pQ7tUnoA<=e(h=L=EtfeOVAw+GamCI-|~Mz}0u`v7|w00Ca%j7^?)=DFN`( z72qOyWH6%uFI!wBC3;5?tTY*&2K# zs~5qJfL;l%IzjbgQFrORfO8D+e+1!CFzm?pSXc@Te@p6OAZTVN!m+Ug~LKyiN1sK<1NNas_DtCC-z?fAAS zVHYF#RbIv_f609rHxI?e*UP7oTzj&LSnY9bfD$bEjH_y7O^07*qoM6N<$f~2@G1poj5 diff --git a/graphics/pokemon/larvitar/back.png b/graphics/pokemon/larvitar/back.png index 1a05a964ad688d1bcbe6a00842e267b4b7c5d2c0..2facd5cb5e2f791bad917ea1622d177705749ea0 100644 GIT binary patch delta 454 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 VGMBsl-E{x}002ovPDHLkV1nVQC;k8c delta 712 zcmV;(0yq7`1&{`i7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00J~gL_t(|oW+!}j@vK{hCL`nAFBhc2AOWK zeL$xS7KL_pEOhG_WX^E%bc1m?>nTgpK1Y_FW+;jZ2yBF(`IFQyW!XPl>LKv-*MNBd z=tsbF{^$74>g^&vUtZ-|wFE#|mv-?T6QA4(pTPUq6xfHsfB&MVC7|%$cPVfP!M~7z za}|CIYd{47O6wdNeor+R7&`5oYXunf;vV=+4xkd?{0R7x0(uFo6e6JBOt4!5 zuu2dCxDT+he@mt#pa!uMA2gJuzO+XVES0qVGk z9M~glTG$Dot15PaB7@YGxJV>u+Hd-%Kqe|^YqbEZ!6(0uO3-M?17`F)1H4~-RD#ND u_Okgn^dQ&iq6B?A4K?2h3`9--|MeT@d9QOiFdsYs00008^yeAh30Sa~P%wcCbuJ-@PjfC6n|1G=>xJrO@ z5y60Ti2!(!0ECGWT?6p?od9%^Pym+*3ivsa4)~S8fWH$^*8m{+dRKkjAOa|auK|BI z08~T*UKOw)^e2YvM-gf`d|`qJsQrS_eMdYuK~5dp8UaC<3Ty%3Gso|XtP-da^4j+W zfs$>RqmLo{?!mTA2@njHz-jb50_$I|ZAu7H6IVun>K6c%Ot>D+hd>|$yyi}jDfEvG zDF3$xoC9nj1F$6+;C^2uA^@O9p_G3Bss8y~)j|irNXQ1P01cr~EG7kTe>_%zp5Rd+ z_23JD6S%D0g#69M>-7-8vcG~M_$j3rEczCZ2~w7|o*l3;0OlPY%P~UIc0lVMrub`(A(T2!5r&W4#>Ch%b{U>}LpQ#$(VA2Ij#V4bD?h zNo@>qtiK+R38=-0*d?LAfna~Vz*Q5hhd>@m7!%naAn~(Ye(F!5HyvPvM zJ3x~|cMisM*U81dLQP$6qZW-*06IZBxT=%ha<;8EU?3n;Y+MA;X&gk`8Y9)wen?WD^XaWBKbQv%TrYBz400000NkvXXu0mjf D2X;Vq delta 819 zcmV-31I+xG2Kok&7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00N##L_t(|oSl`ws@pIW#tph}Q0UYtlsg9` zqYNDkmhsXp7VgmP4qXe9IO$e;p(r%V?UvF9D1C)4fi8uYk_K}6SG2V~>kF95o~4p^^FR6~e$hC2^xv zH2~((vsznKF`yXRN7Z?w?UqXd^g7c{5t(hY(?+^Ez-${oNK1Q&&0~}egyu<5B;UC? zAiAc9Pyx_sT5nHTjJ9iZhZVG;Mp~Og1_WhoumXttTYvm`PRJI2?0Xo2%{~W&MZ$p< z5M%TRe9vM4e?Z^&#z2(72$uk^+O$yufrl4ap)vrHlIRhT`{VPwyb}qaBwWaG24Dxm zGL#De533wV5)hJb+ubEV5=K!J!o2^wx|`i?-r{i%;z@uBFcvsZz^7H20eBsmGSGre zz~|c>sHIh{Z6PLM{&@c^w+}ON*u=+fy#L$e{*rV&e`H89ul(Ulle>ovT?kp!{`IeS zGkb*wq;?VU^LCvBq1mP#2>^uQQIiEIs0)jEh`M_cWp!g{ip9U8Bn^i+Muw0&+K#mFrZH3PS@KG_1BL)_Y zsfwGpe{a`wfQ(-WP^nHkY*#e%!aKp8T1v37&fzsNOCv3OyTJ`^QU&8QXHb*V)=`2R znIh;3pfhew1u{+-N?iaHaw|>2OAWjG*l0Jl7Xwq>b!#|Qp+10`bcuu_yq0b4244^fyZj!|8=VyGB~zlZ-2GS&g8P3k0T+0^LqVf1AP1( zfYrudFpz6!s3CkLHuJ~>0_r0Inrb7+hsw_gDut4O3iXMF@-qMBUFtCITM%J+znOmz z0e7-lM6c$BQg#5ilT2IQ^)vvOQRFvLAvztB0$Li40I=8ZfD$2yeqCtO%hxwkN$Xk) zGcD_y7FYwrS%2Cs0$53g0Gz6e)AgM_GhXvJ}2l?MA zLGl6Fsd%h!^^}07&%x01i7{UPj zPQXTx$y%f205HTMpjE&TkOZVm3Ala-h$PDTs;`;DjnJzrv+x0sBsS|H-35QkU(W=htLZgEtf(-#=%gSkDXro@Rei^G?t>9Kb_?9|5ofPyt#XQBn=PN4G6&M+D`-a3QGW90Jb%(%ab4#Yo*Hj zI-CKVVWRd)Q$P}4c;&tWF#0$EqXmEW1%SXtuxZ@_IncQPtO5mxA$KF`XDd^NFTrM0!r`3!A+s5bm1zA z`p8`6FQ$0#w9PLC;HsEKuMgef*d8*cOQ={h7XU1BguTPDxtZ=k(UT)iWAFcB delta 931 zcmV;U16=(62I&Wo7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Rw4L_t(|oW0b&PTNov0ANRU9>9jckcp^t zVWBeeVj&rELy)WvE^!mVgpyv6ygFP=iDD#)Be|?+qV5GFgWM-;cLQ2F*wwYHiT{403{r+e;S-|+nsFuuoH~3BSgqEJm4qpc* zmiUzZ_(&C=%&I;wzc!~2-w8ZfZ}@yFN{e&(7={mzBOZa(I*SPCHqP1-)W0R;^l=3I zXR8Z<6?E(*e=4k9J&{t1aR@N=fl@ovZy`fZ&JPrH*!s$()-je6NUw6?@Q4?N+n0&F zqbhPV2as`Ex@?hPEG54wrtl{OhKmG!nQ~r8!N7$AV75y`832gIHnu<1^Z_&V2oW3au72bGd_L>s(m6v)az zJ<^x4MrUT@#1-S34jBdNBGwG*&WDxHl@6U)e*xhsV61`66+YhU2~Tq==&u07bDv`Z z&jh@6plR;2hxdCJbSY+(2C0C$qhoLr$mYFZzbfQz0=oMb(98$83T&Q(pjipF@^{hA z8uKaE%T3nyc1!}e1YPxi%Pmi(Wtn^Uh>71?^Mb002ovPDHLk FV1jXppIiU{ diff --git a/graphics/pokemon/lycanroc/midnight/front.png b/graphics/pokemon/lycanroc/midnight/front.png index 1c4059d90327e505c82df2494ae9bfd2e5255fd2..2a792d2afbfcc47224428f54bdfa322315498bfc 100644 GIT binary patch delta 770 zcmV+d1O5D%2gwGI7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0008GNklAL>Ud^Udy zf@t5#$1|Oc!f%cT=6n4lVW6K&=NUj$7Mb56SxJPDAT*#}Wl zJ=Y#c3j*|GCsdVr)%@#8No&Vr;PHPT5<3F`^s>@w0O9g`0_f`uK)-(l0s22i3hM)5 z3|RGJR8!Ttr~p={$swI^4L~+3|Ng0-ew2mN5Ofhk*CU-#P7;8M$a*Lz44__)Kd`y( zh&m)Fz&~td1MlTXxIi=yG!5D0CX$ZO{OWtwo>zcuv4;lLY4se$yL3V44ByhIZv5sS-;219omEG z14hPs&>5hi>i}waziU7&hNYY$kT9We;S60M+cWV*d0NhFQWtLAUIT)q3J;{0 zyP1v5@l8)Y0dq?4mOEd@1_V{-60dnKlDekOWzmJdSAO27)WHDmxhX4Qo07*qoM6N<$f_V&J AEC2ui delta 849 zcmV-X1FrnZ2ABts7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00O*8L_t(|oUPT*YTGav0B{BC0Typ7yE?49 z^fE}$VZOM_7ti2aTG|IF^*#pbZLbi9pna7dHX9RAkD(Nz^PXp)lxB_PKf6q{P$$2B zf21!8WB+SSr~d!~XUQN45UXJ!NB|5}KtKxY6GF}?2VSG>e-Q!7IRO-?dkPU)2?u1= z2c&R0dO`%T{ci_4I|+nDtPyu*bO?bji#ll~3Gi@Hy+Z*yTYU!bNWUrl;pYgjh^fLt zZ4i_LUXGxc+YT~y2Wo{~Ah9`QrW6r?HrRDh(c469j1KUDUc9?}XJb$iI`*m*ziQM! z&m)%uJ3u_4e>pgv96i}GA(f@}a)gtwV9faXhAN<+TzglQmZBi32?jF zUvh1%FseCJ;d|yl1-YgW27D1x35#>AmIkyH3s`0|3MsA!icmQr&eJ&*wlfLC1GRx+Bszq|Ej7r>@vJmFhg zC>0^6`x@9GfXsrY6-|~m+^(}gtd*f0*-G8!x((sx8Ing%$- z4!}`re|)guR^^x_9(X=6>QPres7nvT7St$9IxK*CEzlbZv8Lx-ms11wY`+OiizcvL za~f!O(5Y+#_h^NUoMI1Pd&#U;jGid53&Hr?MHke3iQPcy|>W1qfUa2%Kis5*#_4u&MCvAGfO`8bRY zKDGAZYJ_0?l&*o7mr}es8ndQod=sQs<7o1V^{+IHCSf!H_#!%wh5+Mdi>UW|)Ggq{ b??10UpfPL&sY=}y00000NkvXXu0mjfa#?Ej diff --git a/graphics/pokemon/magearna/back.png b/graphics/pokemon/magearna/back.png index c66e5f3a8f33493fd99866ba35018b0c7434b240..e29c4ad6c5720e3d15eb45f184e8edb0f8f46b55 100644 GIT binary patch delta 589 zcmV-T0&vtjJtRzn zd(kjSB@DtG^hJXlov?4)-iMXDFd9Uc;I?gT{r;+5-Q|+toF)wYgjnYZnlSTM!Z3e9 z5iaxZ2{XX{R6qjYJfW7L;=oc#Knb`v@xFvrh1;X|C^cd;UcxSyPyy=B(D*X}`fvx( zmCHr-GXeT=p2N^jm!SNK0M{Gv9KsBM&^CJ-7y^zAxcHZgMucsRBf!YsA?^S(dxMw* z?(B>Z#smQPU@wfijupV`W^uEE)S-U>$&4``!RAk?F(MTLa)LaPbl7Sr=`jYbKGbU? zpb$cu1htc^2=hb0Y!^Qr-}wn3)&gKcus*~kT>UhQH-O+804?MTLP`a%{JD>efRMz? zR{*t>gQ=77IF1m@?%BMZKmgM1VsHxt82AYg57ILLhJeyeh6;K>nUNI`{9k_n^cHr2 zdb9vYAiIaKS^y6|`3ZoKb=E@<@%iQgsCHqTkH83M{e;K>qkl#)&tQ>_xhK3RfV!ba z;JX53TW$!!)B(z$k`dKv8hc2@9$^uKn+N$FDdYDA$cNEqgfA!gYvrF1SU!xDiSqjd zC-;$1|8-JodiI~Bbbj_D?Q%J{1gyJ=cli1IBqfAX|4{b;<@d;TMtD8$?OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00J^eL_t(|oaL0UZrd;rhUum97$Z+$_bkahq@Z?1%DxgI>73j-JARz415d45$Cw6K7mLd%PXn~_o(O>;?}z~CHiwH2>RBMg^ev`TB1E05*fAm{LaA6)co6eh-<{+ERDa_+` z+XHrI0H=Al2w<5-3|Rjg&{}#x#sNa4%(Y&5V6XdoM&@v0l@;REk6s#1hq8u;M3@+` zQl0>y-vGfA=&j)MC_r>0v4~ZGQPe~c?Gg8+Cq6}nKi~rXzMR0G+?r<*;41>pQQ$T01u20R&}n*aa+07*qoM6N<$g1G@N5dZ)H diff --git a/graphics/pokemon/magearna/front.png b/graphics/pokemon/magearna/front.png index 18e73e31a0e181ea333781fc91e3c7b1d320d831..20db67ab6ed5ad71c820303e1b0c44c686c436c4 100644 GIT binary patch delta 757 zcmVK_H?Cw z0B-k)x-!OoWe71sa#O^O9_mU|#PL~-m=3!p1lZRh?t~Dr(_a(b`ZwXM|1*I2Dg=L~ zGvTDamVZZ}xM2slmph^{P;$md>A?aS!Ey&lpAYm4lmLw56f_%z zrEtw)`m6+;&cdGo%mVAn61cur1yFyMxjr->V1*BLVRZ-Q%eV+>1lCEar};)S7qk&q zp9-WK;(iRN7{*IgLtS1t^Dou<58i@IUL5H=d7kO6-4DLtr*% z2oL;kVVm3aK&l%@q$W{k$$nBKTXB(3XP}3x!&tk=-ii-s&#J|8w=2!_8jvdwE9_l8 z+E49h!&0zWN)0`s_nh_zGY-_U>Y*M8Cp`=kC<4IlKs@w%%^Cw}05QHJsMj+)9wLmn z@J|M!U;FA`1AzU4a!$c;9xs0YV`(HvT@hlhA4&q%kW)}aupD;!p)|G{1pf(XuY#8$ z*=1n>VBc-aRTK6q)G~~02j6x_@x!SIv~9Nln;hnVZK3AETfJ?!7Y*JvA_rK+F|j2wfDmJ?X*!XAwtz774${4^1rNnl&$56_oeqp zU_nG?)hCZgFL@JsClm>sLa-C5YU{raqlY}(wQ?Wv%rfJDBiKqMc;E8j#q1@4>&9Vs nV`8ZP1bAluAF%MZ$8Yup;B_I`?|mC&00000NkvXXu0mjfSFUIR delta 867 zcmV-p1DyQ42C4^;7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00PcQL_t(|oUN3R6>N?D9P&Y-;ke(84>U(InkHnSugy z3NrYY*y9~|_|->D2DD)A^Yt&m4&-xC!Z5^{Wd6c?e`o;B0ZNF294fT2wD5toSQuse zIST+sod!`9VTgzYjg&tRsBOG%438+rB;%-^UP2hHC2FuGqTJ^PY=!qXJz)O$iK^}v2}ENPP$y|e6KJ< z%}Ifpe+jNps|aG8rBKri2WnSDHT=#oZB+g|MgT#UScHo}ZMXvMJP_ErQ-%wWRso_c zv52ZuwE(LC-GO=@04O=GQN}9t8$elZ&$R$>$?N4|l639IIMDX024!_C^ZSEAZizho ze%GK-w{Y6l27^H_cfHnMeanDBYP}@M0Z;fAbpo!HjZ7i{RG!%2xmJ>n6au+MsWC4( zU|-@%=FbCUop0TIG(FFG+!IAWiKD}d)iUiQ$zdG#L_^uxRB`y#P9hdSi6&{|xVKUb t*$Pqdh+54^JoSG7nfJc{1fA;GtDn(^AFPJo=HdVV002ovPDHLkV1l|_i|7CV diff --git a/graphics/pokemon/magearna/original_color/back.png b/graphics/pokemon/magearna/original_color/back.png index 7472bcbace6cdba176d4c6526324c88131e3e339..cf9c0e3236ea05912ee45e60ff7f9cc91cf92960 100644 GIT binary patch delta 595 zcmV-Z0<8U=2Ac(t7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0006CNklvDu3423tkOAwsC|Km0Z7XyOE>Cf$%PF0fg5g_aMdj0Fm1VuLq z)8JY(Oi~GhumnFvgB+c(F3Z}7mAfz+M3?Yh7HIvSvsN|BDdGLrgrT1iFi+5gnZJJ$ zh6##rT7OTN0oJ<$2!Qj1T7rr@kxFu$fNK-)O8^yaub&U58nGEK;dd^f0@Tc|@n?eT z!yQ0Zo*t@S2(Az3H4Ody=#-xb?mU64!OsBb+GeMLAz;gZlmB(nh_FBy0Y>%?aRr#! z8^j!NWfw$ZOaKmV?1fR!u>$1WEN*|1Pjx5&nK6XT+x(Oo0&*cP-Jpz+Hd_rPJp> z_^1Hxh8}^>3P`WzhTu&dp!}4Ks7}+^LrKRcw=kr6P<|s9U+Ss=IrlwgL@YNlzL)Vk zf6hcXK$$jkZwXKumr`l(xoAJSKl+j1a+d_GZ;`mu`hQ4-*x`7)TmzIpqSyry^?1Bm hL<9J#0yE$%^$VMgF9Sz3*j4}l002ovPDHLkV1kLA5rY5# delta 725 zcmV;`0xJER1)TOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00KctL_t(|oaL0UlG-p3hDBvcYp&o1Rm{CW zE(|Yl<2ML)+B7yZsi4Sd0yCLQ6=JGXIZ7%xrE=n2*c(e!fro(sZsNEm zoWS@&zt9=QXCib0(ZEdrcJBmCis2=IDK3FmZUq3QP5^5dKg%*5NeBrrkQhI@vk5c% zi>FZY1L&#oBWMDFM86Hex7c-{m-;cbKx)#P1dt-BeCQHeNNh{##7r*8tRIh~!RHHL z^3LwXBs~M)e@0b>IGNVF`B>G62AdkV&@JHtj&2ACXy}CS)Bz?<9lqr;t$-xqEg7r} zNi>k~`OA|Bn2RmX-V4s>LWu8P0Bj{?F0KFp>Z(*nB-%ad6f1R9N*#sR`gAh?p){a= zim$#VyP{N30igXAV5bZqi+uO&0rE|$D@e)u9-zC-e^(L#DGRw5ZQ$cNXQ)Yh6ykZg zY<%fl>;Pa0FaTcG>lUy%131myRRGKMeZcDP0O!mC%nuO4Sda6W1-86>W>^oeHl0Z3 zUs^IDTBo#!;}AYzMlAtAy8*Dk0(2qwUV!jAMc-EeMo|$9Z;yB;Eph7^0@2$w<=ANt z&bKc`X9w@|fK$!`v2pKuQ-R5{fIkU0BWF?-O#p^m9>ZWEixAi97`l1~C#((&O638E zS*k;$0v;9li=Ixjq_`{_z(NDF6BsjV8G3+E2>kW}|I+>dwQG%q)ENmq00000NkvXX Hu0mjfc(*VD diff --git a/graphics/pokemon/magearna/original_color/front.png b/graphics/pokemon/magearna/original_color/front.png index 4cc57d909e9b409770f39b82c95aa7bfe8750a97..afeb78daed2f647ad839d3932ae25c437377dd76 100644 GIT binary patch delta 763 zcmVYXb3Wo%b&SIe*e$6At}Bc-Q|K5afR< z1PSkiH~qEzJHkgZe*)ag4bd4srj+stFedMA#4{k8dR(p+Qw$vtJ#MDd(5Dn*Dy0xb zyP4A)fvId87vcm*COud<6;}Pmn_fTAFPuA|D1)Z;F}m#7X$tUSZbkDECu@)#KNuc7 z^ipUx2&C|l82Y4yGM$A#14JTxFNl8tS4weiAHoOC!L#K+9hfiU5=kS#PEtM1Z$!AD z8}XrafIiOyG>w^x8GW*o@%|)1H;{HSPiU=$iZtAG5=o<{rFW>oj&?TL5(v-dvrvak z0*dK32Ekw>G0@Rf1r?y}i8|t3*~&dYrJEVS>7oQtfO5nRHj$h54s~e+eYAg=wGc$$ z43!=KTi9^h^rgKxF}5V?S)zaI>~fh;V-yQF1nfoJWjmlPtBB?9t%T>$Yg>VGw=A}+ zNB2{2Z62Ry>)O#1`qlT((X9sw0Yd`+(DN`MIL4sV0B+aom^B8_0GvA_Xyci-2mLnY z!jB9%8~fU~0l;fOc~8M`9xs0YV`&V$o{Hek`k^F*7V-*50&;lL52dl!AlN6YuPRs> z)FmDP;MuIxp=!db3at#fr*DTP@lE4vt<0yf(-IqMy#*j}b)e$q=`I}VT5kspsWk)x z=))Aytu~AKw!=t{iZ}puHxWri=kV$U0$F5EPK}q<&`+Or~(5R>#4V zhkOK}SwIj@MD?3Rq(k0>-UwNz>n#Lyq^52EI*c}X!C3h^;zi<&|DAx9O0Z*Gb}wd! t1Zf>r%#Ddd{a=93?EeE6`F8ouz5pwWCtV2=PecF!002ovPDHLkV1l{BX{rDK delta 896 zcmV-`1AqL&2F3@F7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00QbsL_t(|oUN44PZL2D$9Flfdt~8+ZA{p$ z8Ur<9E%jnzLTBq8y6Vk@l%k0VEk?Fd6Eyx{+lvVY=l~v!2Vps_7lP9ZJ?Nn$hhCMx zK;nS|9M`v7LAyJX7~}M^neV6H_ukCBCkTwCC`xowRFuBce=k*4BZSzmYNG)m4(JFW zwJ!wpClHz(^}hzjkiUjP2B0Hj68IHX^Bj7%0cebz;~B`$-)ZE7dVSYk;-#RsY4c#j<;9S3a+xOIw8=jM zQaRafBoEqdopX?ayxcx)9t`ht%M_lCw5Uo3pK^g}>7EFT5^kBZ^<;yd|KS4011fayfAGrp_y&#UAO`JRBJTb-8l$ZU zAS#qnMQp`(_P>$}QLJ$L$7zGoR@|~I2w{DBYrrq)^4lzf1WM#k zr}q;kf5W0zS3%CD{NbV-3?QFL`9LOt#Du^crp$Hkg%hBi$`h4e^LNM4ob4|)D2I+kDWk|0>T1bx%TklXN>I{D*{+-ZO(jp z&?-C5rft_)kFvZZ!Q+?84%+}Mib4sVd&T$QjSy)Edc0_{U;S@@r~Vf}08t8U{R9C? W5>7P+eHhjN0000dPHC>(09Sxoz)_h!=UY zQ4ub(6wy@*cZpS~s}zo4Uhb6&i=oQAXZ%)#Xh0PLc%+$!*8ZJjzqD|2uGDANZ}BWILDo zalL{+MVq+;^POieZ=VAc_f_LN Qv;Y7A07*qoM6N<$g4Vdbh5!Hn delta 445 zcmV;u0Yd(~1BV2V7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00ApWL_t(|oXwIkPQ)+}MSTKB)+&_Y42!jG zQf)&KDO$OqFiJBLP4+xAbX#&0E`c0dRK_SIWy~%}>#-{ekeJS2U*F%J$Jh@Cd?rkH znV~B@3)D4t9wc=^?kBAe_6{?R3u`t@U%N5!iU)%bcp9LH8<*oWXk5%nI;O;*4;l3Di(*ut{xtTH*yJfqLP+` zAY#9zf-SmU^|YxnmzHF(Q5olIBEWSkM6!vn5`iTXc(y9YHpN)J%U_tR#PQFvOJ;to z0mKGadNvUoPt0QtEst$aI4l>*Y=%Ss&vEz!&`P+i3#COX00000NkvXXu0mjf-`}nO diff --git a/graphics/pokemon/marshtomp/back.png b/graphics/pokemon/marshtomp/back.png index b04c6cc5cb6d34a3c5d5a6b430eca289d64ccb06..baa4e481b4c8145615246d5c8c23fe59bce9d0df 100644 GIT binary patch delta 569 zcmV-90>=I91%U;S7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005-Nkl)#XsAfhki z2iG2fSWVFZcJxV3+W;i_HUJ{u1*kp(HucyyfRf%GfRg`x05txs2xCOwFF#j_42`euv@No_^`L_tGUVYg0Cdc2^dS?tev;N|Q$BWlDd5OT% zCcuZTLd_6MMsHu$5rN_)sS%4r^x-dAAG(Sg0a6=;%CrACW`Wb-#?%dh4xN7`%L^bJ zI*0)d@6_3PtxYC*LAcfc_{#$55a{5gD?;J$l#?u+BLW@b-Vg*JV-f@0IU>-Z!?Y08 z0MAK@`5qC-L?{Ha0|lsshEMlGyI~#x00000NkvXX Hu0mjfeRv5w delta 676 zcmV;V0$cro1?&Zo7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM?|Pl2sV-c00Iz6L_t(|oW+!}Zrd;rh9k}ya+Dt+qLjg- z!xyN8bAX^-3Zw!u1}HT3X$&t!`x5QS46Qc-eyAQ#luX$aJryNj*zo`9zyD4oZ*Km} z%2WYqU2A=p&`Z53;C>k(9a4ZGJqeVgrvRbB0Wx7A0VFH}e`Jsb^34^XgaKH}nCWW( ztBEdi8ZybtU6ybakVzoZ1Aw@&9|XUr0ui_I{UG@HiuCR+0gyr4bx{jJvRo1H(ti6B z0}c*A7h(JTXGFi8w>b%o6Vlx5epf1`J zdmPvES^W#(lQHN1ZdDV2aX_4a=SYRQMa+OKsUmNhNs+cQBA-QVzdyzga?2D4l!B`fWJD(NV#!wh_Ayq zg(?P%HW8pN`4rYDhEeg!R*Jd1hp1SbbG0|Ud{?Tv3HR@>JLlmz(&|3?F76*o;`U|^K+ba4!cXni~7Vc!u2 zj+W^gS!(}_#|5rF)|LML{?j>2W^a34!|Gx;e=!LBSKjqC+I+W;+Jn7+%fydKvs_Gg zzQp%XhTc2drn*~}hxa*3oNfN=?)3HZl|M`l#`)J4DMx+tsaFy^z}J{{jpbvV*9EC) zmaMX`(k(2J3>Mqh{CH41L)he?BvbgiFkXXShr1r6O+9jSoruP)=9Vwn43Erw8Lo$( zn#?3%$Z4Z$!mx))=#bKiV`m+B87vuHUu@-Hkv~CLqjJIR1FQ>K1>P(2UKGC8@Qp{T zr7MHQ;C4%0%u6Sam5$!ZHheQKUfy`~Yy837{hY}RY>lrX#TM`<79E=3U~_(#=+XX6 s27ZT`?01`D+$AJ){9gjSx__bm`N=|-5}PkB2Zkhrr>mdKI;Vst0GSD-ApigX delta 431 zcmV;g0Z{&_1Nj4x7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00A9IL_t(|ob8fLZi6rog~6L{<3{W&s}{;K z8gYR(J%EWuxksf6I6+{WjWf6H*lDm`oC~zP1wy=!H_tysv1--7mt<`o+oe1LfKdGe`fdsri+23glo{4di)7}gCmAZ4)9U>lN{kAbUNd9 z!8F#~f#@;^L8J#FHJ)lBAJJwGy@U$!q;4~+B_OxpzwCH~o+|`E-tTHhq(aC1?OyeV Z^$m{ln)|UL@$3Kq002ovPDHLkV1kNgv5f!# diff --git a/graphics/pokemon/mimikyu/busted/front.png b/graphics/pokemon/mimikyu/busted/front.png index c9c36c1f4eda069a6acc380acd062b7c52739582..09e78fac909396e7acd4d1b81f23d284b3fb5f7f 100644 GIT binary patch delta 415 zcmV;Q0bu^B1n2{h7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00043Nkl$CX02NWT zMufS?0pC3!lg3g+5Kz}13SwP-uG~Yz9R50TutVg3`G^5V{Hoiu05&Ma&cke=DgoNz zKMvL*MC==#1JHF<48H<`VVVcQ39f&3#P0)IcEH#40^)$hZ(XbXXdJ$fXg$SBV7Q@7 z0mW0`O=$ntN65}>57}}V*bWAZS3o_>KaWE&J(KV?L$4v2ANQ9Z0M0|EgAwByWs7s} zMbYTe97JU&q(;E@hOzsLP9!sd$?ya1sN9S8i@9lj_3GdB0sC4B%1QM$7XS+Y002ov JPDHLkV1gh`!h!$* delta 480 zcmV<60U!S81F8g&7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00B-(L_t(|ob8jba)U4ohA~T55+9j419xQv z**rk(7XV849u0G^OPV*x%+lj+E76RyGj?eHRiE@rvK&PZ{d0-kow$T72uOe?6yHG* z5ESpU*Fzj8=gi(6eZXOQciJX}^OO+NtijqOE<7dVY{9vqe~x110l)$&@wEt;e+K{q zfjtmF9xeo6k6PP|2jZcZZG z*k-`gxLSE&a*LyRwSE_zgMh7s$*NDq0(4Gv4eF9b+{GygIj$K!RxTaaNCpj=?0F!T zaMQ>G#SJiKVdJ!DS~cLu^Yk$8M+9={JfB7>r*MR$G<<=GzFQ7RDIf65gu)N~t$qNe WQc{p8o+l#!0000;}i$wYh&c&x!h(wRf>!3;zsH%cmR;E>|xd`QR*d zYMFt;GKU$4kF^Emm(D&SQlFX{6Y1#sAZU(5uj&rxSBIwvx@Xk!pW9mKkl)R6{IK$L zcDwS1CHE^itnYl#RIpvDS`MI_i&I`Bv|K6qWMcpwf=-5{!k6rdZ4LB$LYUcND v;;{>1+4&OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007QOL_t(|ob8gq4uUWYhIxa=vkLEjXQ*U3qg3HyWoM#oAxIDo-^l`HN+UmG}mLohhZgf x2z)4;^D#<8Q}jvc>;%)yvgH- z#|xt6UBa)h=PP04eI6+#SD@rpSo0^LtvPp~Yy+uSwyP1)N`O8OzUIc5^0&ab zpaOg~15$u7k9J*_fx2L8=~jZs6U~5mldS|D7zC}x4v+@SB`5&VAv^)<=zuy|w?G77 zK?iDOHvsKj{0b;_JO((M^)?6rK;D1HGvJ7uK)C{Hx5o<*CERcC12`(MCyQ=DTozgvH3WKmRQNJH8VR08Wb+ zzcg$>zSP$M<*QhY=Q~&s0QD-Bjv&$E oB#$xLhS-wgHKBgqe#gHVzm<0sRa!{givR!s07*qoM6N<$f{I$t*Z=?k delta 528 zcmV+r0`L8Y1la_T7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DhTL_t(|oYmAzQo}F|2H==Q)`_94Yk{+e zzy;cHfM!tFX$E}%BM>`LBfruaR-m2xe^ONUQ51i*?qI(S?%UT*A=)+&0Kot&_#@la z6AzsgY{YZx3DI?(Kf-lr4|E*N9q;?qPjzI^5c9dG^H=9af4q5M8u3EsZwHPaCqDA< z)M7OsOVC{ppBgzh0H6b+nt&^f)KN&A!`!hu5da33jtL0e@5c;qF9?klf$I{2bqK(7 z7HFKVTjCk02$Z}-Y6g}iO5P!11v&y?muT_;92nOlsu&cK0cb)nb&NNFF`J+M(CSpzNmuK3KjmhCo;Z=C>hZU~Ykdz!+zI z$Lrh3J%P5&56C=Y9pFYpJDP!k(u6>HxfLEzkC!4WZw-Blavxvs&;g$ybrs&{a)Wp^~wv*B^eJ&KufNBB!pQ2KsAJpi?*fzv~BV9jdQj SsY?<70000JLlmz(&|3?F76*o;`U|{6-ba4!cXni~NAYY3D z4{Pm~2`~QFe+au08+^N~=vIrR^<<{5%O(;$vly)YPFZn$`IMmZJQEmqxka$Q(0o%@ z{~)(<#?D`V%qIMNP|3)Uy6}~yJx_;j9`75QD)CioHLuJvDCMjd*`j;++EMW+u8H@9 zI{t2G@S5jruW@DiG(+jeqGPsxxBhxB&{!n6jxpDrb&|f@pPf@2`os%aY8nby+;(!V z;bhq@uv_}fhwBUG#rn+un;pd}X1yV{Fs*5dJnNb0NmK5NM!aLX7C7P4UtgaTIaSU3 z`~i7ZZo)esbXv@0{lvXL)9%T_U%NMQJ0^Iqk!L>eGxWg>C$95J+5OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009w6L_t(|obA#vZo)ti1yEML0F%f_DKkJ% z>?KmlI7?5#(p!)zd>=>R0x5jTED^yovv^4vDNOsH{$E)hjc)g653b|}7imyny29My zGzl`q^hWU;klM&xh4_{N8y9YH!@$x9;fDa^e(8@l@Fl?if86#do%?NlVZ`*gC)&jz zX9YwQRmcKeVF2=06sU>||-HLOB{Ab?<%0LKoya%`hi;FD@Q-|$C7kG!we9Ng}o+!qWy%X9TFgNXnD N002ovPDHLkV1kVwr}h8< diff --git a/graphics/pokemon/minior/core/blue/icon.png b/graphics/pokemon/minior/core/blue/icon.png index bda398288b55a912dd1e252310dbc5e3b3704a18..0dbb8fe0e71defefe344c7374e6e101dea9b67d3 100644 GIT binary patch delta 282 zcmdnb{Df(O1SbbG0|SFkK#zZb zYxh14kN5xozrB)@ym(gcA-Q8&iu&JGT)fY1i!EK%U~YMN5`$s3H$#B(CO(GlsE~4& zl=Bh3UP{GNE8Q9!N^|%Z?Z~`iZ*+3%PG*-$5B_pwFg)U}tTzu;zPGeKj;|y)f@z+4 z!*;=zEsL2}{>sZ=Bx|<8I_bDv{EVyr_ZXl4v+DoK_pg#?|H|m(|NHR${Uz6$pD*n9 zwe#6rAvVW<=hs8`g a8HE!0zMW~W_yzPIgQqK-pUXO@geCxSMTxHf delta 373 zcmV-*0gC?Q0>1;07-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0084jL_t(|ob8f5YQsPfMs5P{Im)5u8EZU z$Ib$h0XSQ51Y$Cg+a>D~sbn7VpcvOC>IF$KzE}{vj$bQyf0x9s63q^2{v(*4(35BoxkFXyJ=0Aw4vT@Z1oU#4T$1k^F)^57M` zf{8T+!QKKdz1BT<4$OV1fJB%jRX<4KS&cB{kV2#K6c@FvFjT%z8)4{oh4}$C0DVht T&YBMZ0000<2SrXqu0mjfp0=9u diff --git a/graphics/pokemon/minior/core/front.png b/graphics/pokemon/minior/core/front.png index e9dba883a1ea69f5a43138b327e1b604d7a7202d..ab7e8961565a3b26418ef1106f30530a2c94d93c 100644 GIT binary patch delta 381 zcmbQja-4aB1SbbG0|Ud{?Tv3HR@>JLlmz(&|3?F76*o;`U|=-!ba4!cXni~NcHdzI z9v4G1y`TT(w_qr-BBPL}rO{qL(zdRrxVm4@oAe_j7x>GOSt$o;G{>X-v= z#Xs1kS2}Bcl77#GFXrF3+cjA?1qCmy&AYz$|Fl@nIUkra-uk@N&T#Z#IPm$}j+8I= zIJi6n0<@SN53i4ZtII6FRJm91*awRR=?txV{%|j_XOH0j#nfQOxL9?ioJiNayR&x~ zus1K*{r+L5Uy@z}6J1cVmq=MR&l${$TL)W#u@cW?)ndDafbWc_cz!xoZPh-2;zS+ YHgI$Ey82E?0fsY!r>mdKI;Vst00CsMWdHyG delta 458 zcmV;*0X6=|1C#`i7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00B5jL_t(|ob8iAPQx$|MIE^Zz=%|0JDu)J zeFEGuVhi%5bY0{dR6RkZT!00)Wt<>^$TV3ad{(E6>Ie`4D*pF2S5re@;y!g~RN zIAbp(ge9fe@T4~W+8)!;vdQ+vkJ%< z0`_mABuIvMT+2e7WSWiocP!+%Y)b*&N!xAvl%;kSAgix!EagIQle4}r79W?nlfME0 z?H;6j^v0_zX<@ao-uqJWI`HeG*8s2N&YJZ{Ux^1?yT9UOp8x;=07*qoM6N<$f(U)O ArT_o{ diff --git a/graphics/pokemon/minior/core/green/icon.png b/graphics/pokemon/minior/core/green/icon.png index 529e6052025d649b51f16f09966532dba9fa8379..dc36402deb0af8d08658cb0974b10bafd0528bd4 100644 GIT binary patch delta 281 zcmdnN{FrHi1SbbG0|SFkK^f9I8t6M{B}d*T|w(_KMt+=_k3>Tv+%$Ewc+x&uef{Hyx_0@zig|V4S#J( z)rofTUl!}xt1da0p8s;(ncutqh~rdw10J(aLLA(;E;!q+zHnS3Rb9ZRUWc_wUi1X- Zf_K~;U)|Sf0KLcH>FUSovd$@?2>@5pg7E+V delta 365 zcmV-z0h0dX0=NT^7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007)cL_t(|ob8gkZo@DPMg0f-2m@UMl;YY9 zRlNqNB8~|VOZUr*tPSjBt?J35ymcthp&Sn`A0STG{qdsP2F$xnpm$BA+%HcSkPN`V zf)n7gi9D`Jmq;b^kOsxLHc>Cgf^ly_3_5&-)z?=7v5<15L{V47#% zuwAfa>tZJ1pLzL z{69Z9$v^*kz`tt6yP5wgUL?Nkw^;Fsx$U4^98;pBY}JZ%(O(ja->@{j>|g5eVKLKA a#>_gNBx`%_$w2=xc)GIrxvX@Vz02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007@fL_t(|ob8gUa>FnXMg0dmnh+NSn1pqd zMN8UmQ%$a5DzYN!x0Qu8u~A4>BWq<=(3yfPJahLkJE!aZdC_$P=I2dd@J*!L-VPR! z^uXSNGvK0$+%G|wNF{S0dd0Xl(IAL|@zsKybo^SuP9ndHe={>u;-h?+wVIf-1wOJg zmrX7!n%m1~9@__$*>65VrF+y`zxIU|U-nJI2?#cFzrf*Czf9+#5vXIxhdwEI1ruw` zf)@*t3|jZxI5Q8q0uo`CSp6VHVl~2$N6d}NlUvlb!ch5s+6Y5`E6fjp^JtA)LN4F{ P0000#zZb z>*}U`U;q8T@8@e~w(6$Fo5VF@pNjmQwmiwX9lD&WVluZr=LU|gEDT0zuNgWfxt6*+ zeD68AMa4*cZn_9Z%du|?U9*q26~Ud)76jFWt~$(69DTmhj{=1 delta 369 zcmV-%0gnFT0=ol{7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007@fL_t(|ob8f5Yr`-QhW!r?5s1eO9x@j7 z;Kug1qypWRq8jx6-cA{t*pRWRC+p;`Lm@+Ne0cAJ5P{Im%SzKN9E$I$|k z9ynNV23$6g`z7fTsbua`uNc=R8U$G|zFH82j$bR-N#-|ke`ZDq{4DQgtp?_3fzK?> zWs{4F=JxU#$Mykb_M4AT>Hcf2U;9FfFNdb#1SA`|U*K@6U#4@?4Ae2?Qy&z(f{8Up z!HWe!2CaK;9GQn$0f{h6u6~druo_{=BgaPN$t`MIVW@oXH^R{03iAUqx?SfX4?xlY P0000#zZb z>uNi#z5oAj51!oHn`OpTEwQ?F&z;Evx|X-guC8Rd_vDZ_la7-vV?)nPD~3fWfp-Nj z*d`n4cAoKkF3HNYaHDOI zaL-NPRv(wolihne%WfQa*CAV7lNk2@^EsW*tN$(Ex4J*~)nZkOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007=eL_t(|ob8f5Yr`-QhW!r?kuio0UIRtF z@u2<9sYV?ssz<$lqI;l;JqD_JvQFMQ6f*S2hxa}>p00cFqU#3CPn*Etn@G8R94#Q} zfrABSz-1G;Uy?47O6ETGig9hCL68OGs|7LW__czaWPTH8e`bWh&+=~8YG95Q_{`E= zHo2&1ZZDs4Y#&f&zxfE2?!VUhwJ)^za%dV(K(dkh1rDeBWjZI#KpjIq^+CZam{@ZZ zyjT!q(7NZwk$H#}kO;Hn>IW$Ts}Y7ga%@zd+@iJ>hRXMTBMkkmFh8O&dJ!?0ed+)J O002ovPDHLk0$_p-3YC`t diff --git a/graphics/pokemon/minior/core/yellow/icon.png b/graphics/pokemon/minior/core/yellow/icon.png index 270115f6807b85284596a9f7fb53c775eebbbba1..b0cfaa1c3985f5d6014157fceda8787e255a6898 100644 GIT binary patch delta 281 zcmdnS{FrHi1SbbG0|SFkK- aIs887-L8dMYk=Nk@O1TKby??>&;$Ua_lKeY delta 363 zcmV-x0hIpZ0=5H?7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L007!aL_t(|ob8gkZo@DPMg0eaka*5uWG+;4 zZjnk{Q>fPce{{&)#LisRlSO&!P#{A&9$Y>^oUVKDqU#3CPn*Etn@G8R94#Q}frABS zz-1G;Uy?47O6ETGig9hCL68OGs|7LW__czaWPTH8W`w}cee!PBYG95Q_{`E=Ho2&1 zZZDs4Y#&f&zxfE2?!VUhwJ)^za%dV(K(dkh1rDeBWjZI#KpjIq^+CZam{@ZZyjT!q z(7NZwk$H#}kO;Hn>IW$Ts}Y7ga%@zd+@iJ>hRXMTBMkkmFh4rGQlqdCqmlps002ov JPDHLkV1lZemK*>8 diff --git a/graphics/pokemon/minun/back.png b/graphics/pokemon/minun/back.png index 1e9d01ea3cd8039a67e104c792fa50e555301df2..f8b11aba90b7755feb790c7471b60c8af16b0802 100644 GIT binary patch delta 501 zcmV;Sri1~4Mvlz_0b&;SzQxfbg=JP3aQz>I*)op2{~vT(h^5nxWJFUNp8VPpX& zfGGjj1{y*L;Q_$Y1jvM_5B>>I0xkdtVg-;!`kTmyu*yIofB=ZtYa|5u2nfpw6a;&xV-vi8q z{{pNFX$~+{;sxj}qotH*7C4otp%jM}q{i)A@td&hhAV=l7u5hjeB^<5^r`*P1F=(! z(tzWb*vtcW^xD&^n0ZqkkC2#yrli^22rfX%d6NK7dkB;@Zvo!#+_dFzy02lPpI?)E z1^})F)NN!ZBmUc{p7Ziv9W}O7@>VGUg2!$N_F#QC;00000NkvXXu0mjfx4G_A delta 600 zcmV-e0;m1H1fd0x7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00G5GL_t(|oW+#8Zo)7Wh8mEBZ%}wHA6KpaYICA zNqhyUc4h%Lgqf)qcxlGF^(zH15!|+prSe!Si zLxcpeh#lbB2eicu3VHr;Tpd+OuL@xIA2ufK5AisqWlB^cc=%9)G zB#fj0XmrpTe+jVwIEXnY0I8FeTB&q60qigXYU@g;B~~XLD0TS6fOQ4H90Oi&0ni?| z0DJ5pU7&fFS|i5*1!xI;&HhjzFFVY3*fy&kjR#q`Xg(*SAk5AgGSpy@EDHj^OfulG zF)?e0*Y5=b*U~Esi?Iuz_T}xFz mwsasg4c9-a$EKxzKm7ycI`&+>>(0pl0000vHQL41_HZV;h9u|8b8bh`AW3JN)s1W*9*V|;(*ch3M!;CY4Mes+%os6u#2SOMP5;7R@4%D?kG8$xPe!Vr+EA`+{40&)ifgiy9#?`MLk0A(6?fEan( zoVN@x1Fst&t_#(wIn14cg4ESt+t1T`&$}=bd<-aFqj0Wg0LGB)v9X_C2&jJpr?QA6 z7)$|t0c63`@9$y(oIDO7kN;T%?EK>Mr@s?C0I93&EUHVs(;QHJ40H$R?Q?)EaJvXN zva_i1H`DYUst7Rlmk21Yz!x_kQ=e6E$N|Rwo4|Y2vA-@<-(rV2^K&C5Ki{);SJ}z> z4T7m(vQqk*IX<}MZ5tr@R{(!6myR5l{Aihr-pM}5jOTmm$}JyzqFhni=(hM1QuA9&r*lQf-00zRxi_Zn*4 zZKNrHNDrG2VRl3ERvw2Zxl{B!T3#%?-G_kePX`*U2w(l*`UeiyJlPQU0H(|U0000< KMNUMnLSTZSc02a~ delta 797 zcmV+&1LFMa1>^>h7-Iwj00013M{Ml?000McNliruZQTc1r*N02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00M|fL_t(|ob8mqj}k!?#}{r(ieshWDj3#8 zu7p@%#o-wDPB56<#*2T4W@$0EVG^zAb~_OZCf8aa#^O3SlQY}hjsE~<{|4Xu0A|2= ze}H}~-ur&$y|=q>u&n?3i?Ssn%;dNH%)OdHF}hNj&6!5WoXS z0F^f*2;!;m-zdL)gj@x*+!oKcL5~au1BD}OJF5zVaff7`|Az5(nP%y*A%(E(NdOYF zWCK8$rr#RFHIRdN#=N)u4L*PZ+)sa11%MQ=WX!2Xf1sg5o^$>tJ&sC^VOG?br^^}p zA^a$&e@!F^KN&>Pe{UCc3H$LSfB^`Dk ziej<)f2WC7K=km!YZ-{oYKNHWYO{od1@UuKlB>`+fN>kXT(?Ex*jTM=-TA=N&FUGJux0an~_2<(mV_O%eqXF$H2X1$- b-oLKj0rUjKAuBXB00000NkvXXu0mjfPwr;0 diff --git a/graphics/pokemon/necrozma/dawn_wings/back.png b/graphics/pokemon/necrozma/dawn_wings/back.png index 2c3fcb4002651f85f863294d6eabf37649089e4e..be258fb089c24503b54d36857cb82b0b9016054a 100644 GIT binary patch delta 776 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 Ef`MOZrT_o{ diff --git a/graphics/pokemon/necrozma/dawn_wings/icon.png b/graphics/pokemon/necrozma/dawn_wings/icon.png index 558ff60884d57e48f890db1701dce135b4e0cced..c5fde92c441b1124f506bf155fb9d0880ec434cc 100644 GIT binary patch delta 522 zcmV+l0`>jH1=9qO7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005PNklu$p^2u4F9O(Dwo-v4dK#g4(A+WnZesA?l|3dS~P+kW%_Z{p|q zf&euBiU5(E%oRW`YQ!4TL~|V8McGUv?i&&J1Y;wdK(x>jus)DNXz(KYh{rXVwl|&nMb||l zwgBybkxv|L$1DNc|Mf7RCa`()`l5d+bVoIMTL({E``f)VVwe0XY<~6wa6%l>94AX& z9Ck!`tFHOcO*AND)jM-Xajxx$?m)0?C32#Y_Upf{B5d1X6bW(G-&f zG6AbVCc(7nuL8+}Sp_l+W);XRm{lNEFfmC*AiA~O1T*w71QG`6<2Ll*0s*=~wgGfK z#4^zg((5NZNE3wD9~bV?gRRsBQ4R9wAqiqJ$T-*##A1-VU%xGgFBDlQ_-rr^SpWb4 M07*qoM6N<$f~}P7hyVZp delta 637 zcmV-@0)qY11jPlA7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00HSqL_t(|oTZdOs@pIShJAx!vTGI+$pyR! z6ujv>OK&4Xd0up5fvNEcdW{zdQ9EG&F^720LefYH0j~x(`BA&jNmk0(lpN`Qqu7^skTVU4Zheub(xt8|*Q*=36BE zj^u`eeF$5^3m+^;0ZP&*QkoA1p)^m(sPtg%6gvwe*`DJMrYhF3N+W+@j*MlW68GEy2id5MyS^>ODichI% z^#)9lgaph`v_3r|0do+N-+{4hWIeos1(=in7T5+r7GUftK9^{xn7fXDzno)DqCNIK zF=`WrFjvS!yqjph3l-uODi1|~HaOOT5UX$ixz>3_?%@;QeF_}?We^juegW(KWBmcX X<6sN754r6E00000NkvXXu0mjfvepr> diff --git a/graphics/pokemon/necrozma/dusk_mane/back.png b/graphics/pokemon/necrozma/dusk_mane/back.png index 1a1b9e07e124b9f9077afe0a3b117fc426458bf2..96621697c5d444e83d7512bd070ee4db9eb0669f 100644 GIT binary patch delta 964 zcmV;#13Ubq35f`h7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z000AcNkl5y-Os9;FI6Fd~zRMPn2<7xK5EJ0d?#ugF0TP4| zCJQsfOz1-?{nd?dnWeJ>$;8L|p+-!o~t+z(RQBtvoEufTx8Afv1-zfW8A> zOX7&@CF?VCLr{w}5f%ey_Vfh2tcK|a0R0SjQ9|GYkYm~aUL=tMz=ptI%DR6odWM!v z@*HT*5tspwpyUMRb4}!gW;T#!z^W%ojY&Fzv_3QfcNS()N30o<$rO4J1;uehRDv@Q zd9EsEIa;fZ^^qM{)%asHLiZu+$pY%Di$6#1IB0E%4xvsMjFAui=i%F+DdD1*)E)+f5V(%ngANLobDa-K*(?P!U+oS4KeS&nW{|gR-x4#4|ww%5lOKKOK~S z{gsdi3IVg=fUksJVk^OS(+G{Pa;N8DB3N#C)>nc8IF>fjF!Y=TbijXO^P5$*0UC1R z$Dv4#l}}yPLj$$rp2B@T)~TILdeHMI+aG%SgxnY?w<8Qa%e5vz3&?5<(E3!Yz=vxt zBk3uj7x{Gtz=m$3KCIOb3(S3;r`+h(j@oPl(50pcfPI5=dNXL{T9P=$R}`hIgP`^m zaLX?-ngH!nRWGZ%UUGi`pVk3)SU|3Jri znQ{Y{^jW^&W&&C{^fwnH&;a#rl{>{X^cP49KG}orq!vgnBc4~i(MJFdxIeXf;J~#q zvF!ld=*Izd0A6r2!aZmWAzCfP%Qp(Cq8;#YL^%hXQK=fsgUB$dFF(#>FT|+sM7R`C mB@dwaR{%}`-2P(!i}4HY=T5D%u4{$>0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00YNKL_t(|oTZh|YvV=~$7LHf^tS3+wA)h{ zgV$mYn_5J%_Gaq*0byeddz4{7x0D{yWoot`Jc8B=*fL= ze#qX1($dbwir+`y_nq&XaV+aUujbi50Nwu!G^qjle*;7YfACK&t6{_XszYd=2s|}L zqtT^pKR*Vh=BZVJM0m%^9KXi*W>q?(D}gxb3je#Z8k>39|X$&crdZR zcKHXLL;F&_xpb}$zyu@PXp6?(d2M1LyBWYT2`p+8e{%&0J^PlCa3)^>xdANWe|}X1 z=@&pt+e>X#&oo(^u;%0MWI+pL3kBpgaNfRk)adXSa+ez4Gi zWLAAuE|^>NjKrYsWsmfsIf>JIUJ$mFuMSM)$fOH!7o`dcAld16V#IsEOpoTEsRDz6tpFzKMhT}lDT`T(FvCi`TpsxoCU z;IFrcWGDfPyh0Oco-?tYDG5nXUMPSUofK28VBnjXl2AnG)&x^g387sm;^B8RL21N` zM9w>AOMUgQGkw_YK%yiakMdXQ{rF7fv_@Tbf4AF#MA`RgpB5;POA8RAV1aC{BtoA~ zI}r?~!XF$kfH5w$J9IGxfcS+}kmnXRy$m$LU0!-L@*>_-zep$nhW)7lAd4xD{0;(4 zDOfQ8p#fGdU(qPI@CHZ6){Ci(s3-!yf={0pX5{+3NP)t03lgB2001@7SRXjw#rhh~ ze^dvGq|Xai4o&4`H9H~J#S&_;x)dCDZ(ue(b+yQAKf*cySfyJDz(=SqM)P3@ro3EK z0KjYX2B+GkJK9Ml@XgbwsPG_Gw&rh21hy15LvKRnr3gIx^Aq1;+ zmx77g{nSgLUghiJ&0b1?iB*I*jd`$*aNCSCNpb`p zZ&6}P0tl-H{nNJ_+7neY8`sGtVC@Sp3fKC6Y0h%6|vW}FXP7!~B zYVBtU)oc>zGXNGwH*w_9 zqiFhm&;wzB-3JhoHkI|y-#^|zb6|e8R@shv5X2mwF;K?a0MBfF&!5L#1h(Uggs z`gM`6y2r2rVZlkze@%dmfc>>X&(Lgg`yM_~&Q+uyf#=tk^`O_(>RmP!xZJ)tv|c zw+r{~y87!*K;&TdG7KcFVTA->OBM`xx?HvIIjq|hlLEO#aC)FVHpvR-p&m(f-ve;( z_)sawz|vqB1U z9C4c5BWPBh_cqs?vIYVn;x&Jbj16H=Yow5M`#_)^Cy5|Sf;ym4SBdb=s5Ad7)^9zQ zCwIs&rkuMV3M&vPg5VBFWdGvC!wtX!c7V3M7U>d!M6v0y0qeCw!hlW#SV>?)ZW{rC z!|GZ#zze}lMvkxm4P+HfYN_<`57>Hl;~Wv z_WiU13^4W0e)OuJ0IOZ&8^UIQ*^ct?k_31Fy`dPq^a2P2Ail~GLkKayeS8bGBcW;E z0e5Gd0nkx*0B36c1pv>YInZ8~fUklIFaeFF49`F`^s)27*v0odfZuH_3SNj2EX#_5 zUf?VJSFoxVhsPw`14^u~93l_42a=_MhgX zj@SvWCZwsS7^M)i6HtJxUKxT=zQ3zf@hqB=1bAi%h_V6TJwW{ERIWn~Wz-0muO3dg zjRJ3&^IEpep!?e1590eg1b~O>@x)N^6@9p~>bC$l;MA!l?s|XH4}jaQhFuW{iAEiSr0EPb4FNjgFXB8nn;^twHwdajl&H{ z#8M`#^cTQ|AQER-!?aV6izZ^dhrt5UWa+JEd-%wT`t+WQBDA>N#?=lLmlzs z|D}>e2PWrj3P$JW|BE4p{N$6x37-m(7-Iwj00013M{Ml?000McNliru02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00cuxL_t(|oOP8!YvV=~$7Si@YlKB9J}u*2 zf$EFmaco(8vOR`e+h7`Uv|x%bEQGWxquWN53^_{RqNAdN-FNI^A^6@~zeO*5>NjZn zW@IH!8_&T=e!qF||K`1U(zF-LG_|9vBkgR~IcC=bO=~dre_e14uwAWbu}^k(9B9Tu z0CGno!~pOR9tWBrfg=)(6FZAd023ud(JQ$cV|!SPp_tmk2u#NQN8BJ_orBd2eJI$u zU?(r_&2kd@R=b$>0#GaYkAoO`L2TVy7j|a0B~YcJlQ)E@C$o(JDVT5fnFLB*8gx7C z@#@^H@gO7Xf48$<*#BBO=-JXh2;uu6 zckD`I!t+eidAM_k3}vtrqeKUs2X+R93EM%A4s6atM}^Y*<5trB<9E(8Ov0LqD2k*5 zT&a^v4Mv}}x_|NyU$U^zrk)TYA#czDUoJ9QonwEpfBTC6B?0Qg-AWAjLfZKvS6N0- z_8$3%fAUdIL0}Tml5_O%nM<)+GeX_n&pglbQHGE5HHtniqo0juM?NU4 zJc=knd+tb$6rkw-ooBS5st!8G3 zTS!oHg4wurE3Y)F|@{*4l;21e-|eZk^-aHq*4B@=0IeFp2qK|R zlfa6%3HTd;Z51Pt5`=i36xK=%6(AB1wgM753Ws9#1T@$xX#%Pct0eJ0u}HWE6_Gdu ze_RA^gt$wR(z96P8ra&09&Rub-}l6wpjZrs)4_WI%<%C?GCe*$vi8wY7fz=x_dv{R2;?-0QGxUF8#5PeX0 z+7pLBaJ83oia<5-jrjp!XS3?fxO4*3sQ|O}1Q6$p$v<^M&u)WBHSvw-Jk4(ED}PQ( zE^qT*4P5SH5QdYDU}}1vrt@28km;@xxmT%k!rHfM+-6WGo!f*ArAqx>?ZHkLZS35x zW-g_@AG)CeaEQL!-_1da^P^5l|K-;lFbzF-oIQZs4yvYGj4=d^Uhcg5jct$#c`J9I zpjSVD`oboQY32DfJ4z18;^I|PwH%t!^w`I>@=IU({ui_7IvoH2 diff --git a/graphics/pokemon/necrozma/dusk_mane/icon.png b/graphics/pokemon/necrozma/dusk_mane/icon.png index 90c74736eacfe8ba6c8e61a6fe7f6d8a00397b69..e0e4ef479e9e6ed81b8be8ff08ca391991ffd1c7 100644 GIT binary patch delta 412 zcmV;N0b~BJ1my#e7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00040NklOCkrsO$~qY z-~fk4w$^~l(8vIRxEpZfayJl|V&uav+i)jU1Pa>`0#q9~&q*8+TfzL5<~ifB?H>fG zstlnPXc=M`_|gyVzxT6q93v<)Dr_$lmdTN$K^=i^wH@`VvRT9qyPp|lTkP3hKiS)nbki{ z#}|y>&xEXVVXholTAUU5ioIbucwXH7?C;RlY0PV+n8j1vWjWndqJNFIfxHdm&kW@7 z@4he)`N2RIe>fY+>JJA4x%7vFfn55-WFU|HAz#)Xz5xs#A!)N_;@SWJ000O{MNUMn GLSTaZYRSw1 delta 485 zcmV%ss402g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C1;L_t(|ob8f3Zo@DPhIIo$2r||}nj3^l zS0jp^EYQ zboXXh&?f!Zw7@@oC!Ag$6B2-g+&wF@OfTiohJ=-agCyv`Q~&2vYS#Nqum zh;e{sb3Ede-Q;w?-x`Kjzm9)kegw>X{Rc3+FTmXSSb%x(F#&@QK5znN#m5ND>zWVu bw|sm8pe-Q7dAjRq00000NkvXXu0mjf=Ag{O diff --git a/graphics/pokemon/necrozma/ultra/back.png b/graphics/pokemon/necrozma/ultra/back.png index 798e1290f4be040a6e2a3513d472a72a761a1f92..1dcdc3835c094fcf1a5c78700af88858cfda9a80 100644 GIT binary patch delta 689 zcmV;i0#5zk2KWV#7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007KNklyGUp2!)G+miYefJD}BCwQ4h&oE-k`ZrA4m@p2r09q_LK#*PWF z3w{B>3wH#-U+HD&008z2pdZ_P1C4zE`0g9Xw=u+^ZF2yRg9H>|2ap~h`Vl~fBKCg} z1w4kU-jDND!VSse(f5G2CAbI)av=bl96iOv6bsHX zWI=G3h4kAPvj(V!55^|}qI^<boXph^N(s*8w_Y{uDu7y$e^)1w$sr=50!Rd2 z8>m5n-4k#M;KMCp#K03Eglz){%L=#%xC$9Q0)kV$V`dj>3m*WIfYU6(qYB#qA)GpA z(aQpY5gfi^E(F*HFr5*gWw;5WgMS#HdY^Kr)-oO0ONbiPzB^+E8u)*R1evI< z_0qKsCCLF8y0`N=|*ji?8bqq~oD7%j_kB_o6T z{N=M_+2JdFV(_Ddl0M2^*a1i*HT9DUQ0(kYy>w!`03@+3*YluBK;*nBkB!Q$fv`Kf z^pcl8Yb&^IUF15tzUK?TZ0vtSeF5oUgCoHDOa>h5Ghp?=)r&`mwh71$p9s@yIRa9e zoq=m=v4Equd!;|d`urkTSTIGehmLOvc)h9TWl()Qvs#3=7~f3O2U5%fY>9?ofygW` z_)0$@oL-uNXjd#3q|x>pOR7MPfIWA7OlSV))lw!R&;5COaA!haJ# X)uXjc7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00M(aL_t(|oVCFDHs-)bEij^YC+yD;x?;fZHhX}4%zT~+w`LWUI2((DI2K?wc7{qE zAhz656bnc19A5Uq1EPZ*+2;jC}YKNU9w+7T(7?KVsE0CZI4CU+t=$lmq z!tOsKAWDTUs49qy;hj{6j33 zOo3nB4x=Wp3(%J-PB-WwtH)mi1&}oYZ*#SaDxTUEFfJ#JDcx%-luZx@bnnFfS-$}U WRN~?VhO2V`0000=y#Kz2Y1s&_NwJY8H>mkZtq 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 e{x<}^ga0pL5hYQAt-(bA0000Hlc} delta 553 zcmV+^0@nSp1o8xs7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00EXsL_t(|oTZXMYQr!PMRkKY%s`gWJ-QVL zys2+dnhS`i8y_wZ@Wu!R4BBKm(#TP5N(s~}`!gDU{r`-4@kxhou)D8x6s#d@xSs;z z8#4BxOtU*V>=WxW`@!`A4r3Ss$^_^J^wTwZWCOV_CWmYMe~P2*8itYOgrzyYg)(ui z2Tg)GdRJbvLod6*Ji_&cqin}IL2Q-<&xxZ$%U1p}a4}}1x0K}CB0ORkTv{nrBZQ|p zUM`~nFx46%o)GM(Tl)ur z(jJF=#6jBM;UMid9D4hTLvMdn9D4f=ho9|N9JcnKI6!M(T2LIawlB7m;t;fbL#Ih` zaN52I4F^_d(oe&o#R44%s3`#QhC`-&ut$(fI|K(paqgf4#*`NRr1OG}eG8_3J1W|I2=9e{Y%(jDPyA^-5? zRX-uytj*9>LBBr_UN%%A%>BSwPfz?TEey@nbp+?eNB~?cwAM^>R7%%Op!*(<19KVM zcCL0Y>RTd8cwPXy>ryGeZE%=!0MGq%6Eh&)IdA7HL|=%xiiHq-c@Ho;A@6@BD?qG% z44G!Dm2wj=^sgLg#lh&sn;F2X1}wSNf;Qmy*I5a;nZzT@J-r-4D-+PW+xEpkx@u(t zX&MekzSG5~nwfe7cCduG5wZ?1ml4;U);NyP?%^6wFH!#;V?n4Vk*VJ!m^09Z1!0}3 z%j!>q_T%P?Fq^WE6rXS%vG-ncm(T_nveP;TLRkWrDwfI3@9ZARLa^p>JW~8q9ogYE z2OhxgGrzwM(D&%#$;br^TSR>Xzh>YAXaG2mCO4bmki*_T4WHPKKUnb)A2mNqXaE2J M07*qoM6N<$g1?R)M*si- delta 713 zcmV;)0yh1+1(61j7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00K2hL_t(|oXwTLj?^#^#)F&(xUntzOjd~U z94|t28zn$->@iQ5;-oVVaKJPzir3)rWAHfPqIh-d08o>m7s+ERzdyP|opRVo(43<3Ccv6LnC!3JI&26*)lyW}me07kdw z0G?MrMSz@iRVGAu;nGe|6Mjke+|oS$$?FX9x~wN!#MN_5Ofy6 z*Lj|Q!)}u@o59XujfvFz0&q^P7_up;#QBe~(#j%t^EoX*QbiwPjW6Tp%<8O(51Y#_ zv>>A1d%HdCz-LZ*Qq6C#$`BJy(cZ_`r|+`7O$d5Iu}+5D6Gb-lbBa zSS&d;TOx&x7wN(6bHI!Pq{nJZGKZZPe!Xy_hfT`$)EEKmw-Z4q!#e%eQKHL5R{44o vbB_FpX_L~+Wl&7~%y;b4LtFSxd9Ld(#f^!yKw>+b00000NkvXXu0mjfs3$l% diff --git a/graphics/pokemon/nidorino/back.png b/graphics/pokemon/nidorino/back.png index e5868c58e183f48a2175b7c85c90852bed76745c..a7078074e43c63e1853f424b2481b43c890494e9 100644 GIT binary patch delta 669 zcmV;O0%HA|2IK{h7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00070Nklj}G=f^PsN{t-dXzzKIr02KiQqYM+^ zCWPWZcfSyzqcENTC42;kH(c2^jg?El#}usmC5VoY0nZ2}2q%cuV+4HO2X6uMy?GZh zZ-e&2Z70-I5C-jH?k8cH!g+*s+A;*|bN!1G!7AyiEwyD1 zL{#sE31BV78o!P`2JKfc5u{4dDg-0MUo65<%#TVc!)z4>e+YsLgQM7IF)nZ6AWm5I z5`;ma1_Ba5qAA-e3c$1-RlhI>;0UyAjKFbyi7!dPoXs#bNsD#ty!48IQJjC6!s}O# z1GhKY7DAJ`^1W&cn}73&p7z#Szm|<13P;(N?(n4lm(7SFi{o9UxNN~xudN>J&}d0J ziKA%?CqNr-j%e4b-V*8NzzWbOV1#_xuz#u@bZrTsWD5aRGa`gFKwsC>v!xz}XTbMS zm(ccc*}L_P+TcEIPdr$6o)>>Ykmr~H_O%f+g3yBnpl^iM<wQ#YEJUa-e%YttBt?w-B%~-d-*s@3k;O4A%=2()-I`Kh@sUHBbbwtEtX5IBNd;;R zIRKa|Ssv?kqxaXOL@m`Gkn~he!BD{6ch;Z%M*9a`_aL3zX;?M@000R9NkvXXu0mjf Ds#7{v delta 722 zcmV;@0xkXI1)2ts7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00KTqL_t(|oaK~DisLX8MQu#YqX-pL&n)A) z74aH+7bS_;&^;>x-cT)}N4?9s`r2^5QQLSw+eq}q-QIA zmSA32rKh6>th3J&zt{EZk3eTDLHxR|>*Z)eL_)y-*(HGVa%(}Wj+{n>91?K#2f)v# zA?T4d;9!FE_)ZrsE3ncbSA*9M60>c- zft-d(2wke$?8kCI!o7arqeo6MNuurx%p7rw*rPVJvrOK13E)6%<5w%$BF*XmvKz1x zC8io`Pf)F9fYoX18pE5L$&*6X_8*d9SyUw!jKAj?e`IgF{qZJ`@#9yBdCnf+43k&h ztjkFX;`Xd59{>5LmU1JS?>f%#aWSF%mRgr8z$tra2iGH{zo!i-7WABVrt$&M>YRp8 zfZ&Nu?2z#m5G-gm(TGIn{g2v9*Sp<*EEGjA9Z~qiLjhoD`yu}(fF)tVD(r!hV2T~X z!Qh4jWNVR!W`feSL7EiGHDfDoYJj5(q&R4afsNpivR!s07*qoM6N<$ Ef_Dx}zvjLFV?kLyiYPGEh zHy6ghX{4kt2GG~x48We}HQ${!g|u}OT>waHWOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00G}gL_t(|oZXX4lB*yThP{*v=veJMO<(~^ zm?vIbK#;Tlt=w~zr;r}>tS^;PB>-^#g;&dkSwVf2fG}nxkqElOe>PPGh=n9i$SMS-F@$iB zY;&b!j=`%0s7I|AOY;(tCmm*2%z~YDkR^a8fURa>9Jr#)aWHt0A{Da2-yC3{UH6BN zsSO8kD*){2D=WY*I8B!UJ^sMNBCH&!h_cV8=)%0kb8n;QqU%48TqeeOmZR*$U&eha zrwnPW;WVy4e+2q?p0y)RK;?)s13IFaBRkfH>%6@K(8`f?3ETa<1g<@*6o4#lPP_4| z6M?V~Je5bG^P8HlaR_B}`e2#DHLp#8<5qSfK*bvJ259em=xS~Oq|Jw}CRqb}a_Ipb zfVmw&p_l!buQ9-u0s3{hj3+bf8GMP#;)A7D$7BYXe*vT`El^+G)F?q8rRo*r;$jgA z&~`gOX`OY!vJB!*2$kHi*Cl-0eD?-!)er)xJH6uvz^HHEyM@pTP0Q543P%VH)TlXX zkTM5$Lhn!3nbYH{xJ@AtBLexOCD>!_7biZf)1I3g6MNs;^kN^Mx N07*qo1w^hwV1ker6VF|LfLNcE!RFD;gr*I$w02`83%r%Z(grCFJ{KS+ZZaXYP+Y7VC;-YkrXRD2i%&xh z(Joj6P5qz%o;oPbq0S%FBS;%<8fAa_HYOBB)nc002ovPDHLkV1mcI-sb=S delta 583 zcmV-N0=WIC1ds)g7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L000hjQchF<|NsC0|NsC0|NsC007byu$N&HV znn^@KRCt{2l)p~HFc8MwN?9^-jHDpmdc`rX~e0|#3N*;VR1qMRxg@Z6ZbV$X$2A}y zPC&FrK5S9n@erSJ0Eyj@1pX=xh}RPl4|{(C;{QU~QJ=Yt>}c^G)rELVcevF*>lcI# Ve73Zmd!GOR002ovPDHLkV1gLr_YeR8 diff --git a/graphics/pokemon/oricorio/pau/back.png b/graphics/pokemon/oricorio/pau/back.png index f2771b8b5147fe9efd7aa66266cd6b6c50dd01ff..7969b5019f8d571f2185f597bc8e101aa9d14ea9 100644 GIT binary patch delta 690 zcmV;j0!{t&2Kfb$7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007LNkl0C$FrAa%k#0aSeW;G4EXC_E*^1!yLGKGPJUR{E}P@8mClV(=->ES z>kHBWK!?P4gg_BPmUmQ}XrBPbF(iLrW9@T~_L}VRK-kE@tz~hLh9E-wLB!9DKw1Mp zG`_t3fuSFC_RArN@2H3<%AJF~AvSjwC50~zQ|JTO9(_2By~1%HD`!s=d*@KL^tUm9 ziq5f?L%c&=BNB&WlL=Q1qUBRc@(eHuwqv1pX1#CQrFV7#5R#BBw|=AF(8YfTW-I+t z1st{!z65N43+R0~)V<4_NK{I?9}Xjcb(VCwN|MZAO=4pJf=soBIFF#$0!U{ICCIGD zFB!k3-j$CSK=JJE;dxGKpzxLlfR-7w2RH`|Yr`0eW64)A0(2oKw?QJcFjioS2Vvcr zMFlvyjQbJHDi{(Nkr-D3?*M;+At6m^^>cu$ZlW>uM15P`DDF$i*@G8zq{zd=0(6vf0W1Zwz zhhyvH!(b6W7#2i*?~GuKAP~t>Gx-#9!nhdwbusPy8fn6U$JfRP(rF$=?1sOmh1w(h Y0^FWAceyU8>P-Lu02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00NjvL_t(|ob8h_Yui8+$0e{K&?P5>Gj!64 zkhRvO5a^PWbM4d}T(BhQ7V4bV1}uqo%8(SN_RzIU_jo8BR1nBZXKU;S=-MTpq3@)N zeHWdV&V7Ty_y7Ihd-qPyF#bm^%v}?iyIWOe`D-o>^#u|-0a{ov^C7q zyd5yn20+KU0#$Yb(Q)g5@RKqSt^=jtsq~IbY5=mpFLcs!YJgc@Uie!UIjrB%sp=n1 zr!Wl-AQBwqXyxJ-X}{C72>P>m3nRxRq#Zs4$^@OqKV59|HsXf>0RXiu8##nmYRByT zXSD|#b#SNUf7;bOV#Ypv`=SufF(S}hr9%StX0iAq11H2Lu9$PeSjd5eT%~a$rik`H zW#{Lg0JxP?G%t8^vhA8UYVE`<)*`9}b4E-C|;&0(dOn?;s^Ec3;JzQ%`I zAVuzhH-uL{!%v605?A;jU}M7w&agigzpO~uX(FFpek6b zdXxL9=PDrnW>@Q1nLhyXvSaDf6M#G|_1R@$ww}0A1IqJM5LZ%yM@zYdlz*HVm2{(_ zwvfX5DSKlyyjO)s3r~Fa^~LG3vBwzv&b+=3KNv9d$K9Jm(PF2P{@Xp9gK3@V{Y(%NhT*^c+ZKXd z->O55c74SVr4If0?(s>7T<#c5eOmIy5MpbITmagid!!JP7m!rVjG=Sj1t14Vc^rRb zFhlR1MM{uPqZmB90~nZ1ZN}`@>w|^C5(7_@lVGWf&ooZt2Ox!cSr+EJu0$*O0fXq5 z8EWVS@{OLT6#9V&z^eyfgB&K55WWGJzAzVTj2qx_d(MgezLDp3*G~Y@*Z>;l8+pM3I0Ao2vX)BDRexjNqhGTb7ElT_ksrhUQE{! z5!F9{!3Xn00;jy(>|p*bM=g--*G&4UqO1IqvJ&AfJ`l5dzo8UIC86xR-zOmlUvo zyWeAwXgLaDGAFMfb+l z@jTk3#!Cn~5g!pm^>A|q=r;k-a~|#SDmH|tO}U>7TWvgYc^ziwsW)H{j6w3jb331HHHz Um$T?V{r~^~07*qoM6N<$g41s?r2qf` delta 757 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Ll1L_t(|oaL0ij@m#F#%&3t(1nFOfM?AE zV4EKBhLZw0Mcl1H3MH&xfIn@DNU@X@DXuvprMf0AuA+#-+J|j2Vw*{fAM-<1b-X0gsnvfH**aIA(uB!2{1Re_7b5s-Pwd8?vBnJy1eP zr2yXqcpl}gq34(Yi?q0iX1vxkbrD9f5V5!lOaNaB72K4eES9mDiFh3^(=jMx)(UiFF zjwRbrDCPh_e=t?w%c29Xb9(Y1cVZ5`4CvC{xkd80MW7qRg9PuQxa*2D;Ke>kl27yI z1(P!QU`12fJAYzWfRr1?n7TeDqp&`27l6$`X0b;y*F<0LKlYV$)bkzU#NprYpu|MV zpBfz-8*fkUg(q~-Bfi~DB$vDKwNA&z#rtTs6O(ARf6_VNz~Q`!NS#)?ktqu`(MaKG zrL!o<;yFgz99;eU7}tg(;?Xfh9BLoKtJR{hL}oFX`?{CUrhG_8i`MF@(eeG_4zYcBGq;QOpl#%Y5cmy{o{e5be{ zPqK$qe+Grui%@c?l4d})ov*S9=;0`UfQu>e4p^l_pos|7zzsEP%7%bI9UKqpo?FT% zP!_aJC_{=~hHg>DU{*IkDs;c=XBOk;@|Ibp_S&T1rs@4xb-B~)mGnuy5S1VIsotV= nOkHAkZ%jEdu&rzIpT-{`W7yY!<>MLv0000<2SrXqu0mjfFbrJO diff --git a/graphics/pokemon/oricorio/pau/icon.png b/graphics/pokemon/oricorio/pau/icon.png index a4ba46d2bafda8fd3f158f422d0100a0cb5a651b..c3353a92493b2fe4c14e911702fb41cca20510fe 100644 GIT binary patch delta 266 zcmX@Ye3fZ}1SbbG0|SFkK8f*;|(2~puW?0oV%|3(e zz?%HaqT3!XW)n${PTC+|aASt@fg7Gv6ZGzh&U>TvaW-dqaG5A`{NxL5+bwMbc{V?q zSj=`ZE9Tg=M-CCCo}ISGKZ>t*Te|N8SIWh!4Bm>K-rp7X7=D%8@;AtP)8gPw%k%$m zY_GTRZmBQn+FozMR`jX=mcye*x7iL&Zu~J>l=DlbLj6mA{-rj&{T`J)2|y1qc)I$z JtaD0e0suq*d-DJQ delta 378 zcmV-=0fqk60>lH57-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008JoL_t(|oYj)C5`r)chIs;WkpU*XE4#h6 zyFL?Bo#dFzr0=K$n^$0vt%3t>*qqdC|9?rEzxO4{FBJfA-F2Ohjs7OY-9<*LwN|kK zXw;VNAk439>pX3CI`DLUp_62(|F@i5WR+4f8umi$ z;{SoPC1R#xf^`?-@Apg!$gWqEK`rr&jFvW;!!U4{B4G4cV z1jvP%z#1{WBw!Gc?1J*XAi}OU1YI?b0FtBWBPf(yj>t^6+wFe9s051K^acm z6u|T$sQ#xCZZ8NJy=bY39Y88zO~49Bi6=lxL4J^~`n(k|TB!#xrXOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00L-9L_t(|obA&+Zrd;v0ALw*(baNMXb#gr zt6f@A+9_>FCtV5zBI&I_5sPz7%ix+ZKrc`uV=mCKK(1iq5?zCwp^v0~D948PqHmF5 ze||sIV-Wn0e=s`zJz#LK51>6MG}@D*gLb9pgpql?R_K6`e{CQ_ad;gBy$Bsi$xdG; zPza&<^{dI11|ahn0%{vUrA(E`xtMK&Zmc24JNWZ=EjZ`m;`XKuGz6L$5Eqy=!8OKgwOak&0q7LrkI5GhHybsMxqv1eSQ_xtPk{}9001S@`wM*1P7&aU z8W2Jc>JZo#9Tq>C0{up+J98EH)&2*05Z#5zOL;+ z&Fd6CV4rJI-z5()&fhnn8f20;g7UPS0yTrcQhR`y3Ca}18q{RQGlgQMe9#jH$h-pP zs>CfIU05I~JJ(C1cY_&EmsF-|7Z5p3sLUNWbUpGGkPNOm+!A}(-Vhcr1BmGtZX_JT zumxa>e+*KXd&;3vh&RC|V6aj)l^sm>TdT7R+sl9-%GZ7Tf}Do9v35jA?n0 zq4T=C~WFunUL^((k86Y>1C9&^b^-9(ijwkLV^?PWfD00000NkvXXu0mjfY$ipk diff --git a/graphics/pokemon/oricorio/pom_pom/front.png b/graphics/pokemon/oricorio/pom_pom/front.png index 44deb56e8ed026a4dfccd54503b04ea825b5d22f..5ed6c71b5611f10070cd21cdd26a648510b8d109 100644 GIT binary patch delta 545 zcmV++0^a@I1?dEk7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005lNkleK*#QL}^$AaXXG)hq3717nr|T3c`OZl?7cM0qd<&?KPH`wS*ihyX-OWEX#m zpsjOG^oWX9QqXSScW3d30ViPwAo{-mM9Iaush3L*DOh$Kn_* zJLv-fJ~ddcO^=`+5b~K|l$R-R9|6 z-gc_M?`}Y-*&PD5A)M)0-_&6Mkp6$MbPG`DFM0+jB2qm-Q-mHtQt-jcdmt17S?JNr z9J+b|NEy2N8qmbZ(iEnt1q5daAeA~H>{|?tAE(@z2$fy{QtuE*!MI^D0h05?LwgFz zE&|7(xd_R9Ix7N{0WpRLlCwz84Bw7ZzRVSZ#>lJGLr*UN$kb_K5g+`yLic~hSwce` zmI>nX`FK?Hp8VVfZq))pzyZCNMd!y~9MW%@JG{oNXaiu!j5BTgJj9$ct*1Ep3zs}E zOAim2zu+VQ2;c-w8(&foBbc%c@~@tR3N jtu;c1T5aX8eXOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00IF?L_t(|ob8moZrd;r$0g8%MoUKRS(gA@ zS+liTpe;H$M%Sis_QW+ciw1mar@}@@FEKjy5i$iC^BV2D^himR?3C)54m}tac=zM~ z?)Vi1|Ltik?AuS=_W?<2q3s#>f8r>*xxLEjJfhwx%~?e?ROI;uT6?aMcUPmzE7yie7*b_ zAIC$x`q8dzQziU(w-Nx-h+dTOD}drqBPKwTM(@%BF#w0QhS@%{e$bm&0&uugNeRUL zsZ}V4scZx)e*lUyK{e#A)r407AG!p_>Mdo?14EafT}2x}mHz?IwI>~F)D7THP3Bx_ zPL(!-b(Lf1;SqkrlpbwmV>w#+BmRpAR^~b_G=uAxlN}>%nMbczEzxqxViwv^PM6-WSLKDTu`T0+B@OTF$|Nkg%2;GeVK+bFXTu3N-700000NkvXXu0mjf5St-C diff --git a/graphics/pokemon/oricorio/pom_pom/icon.png b/graphics/pokemon/oricorio/pom_pom/icon.png index ead80b6a2385a6d3d1d6e543100faf5b733cddc6..9f83917ba16f8f41264ac54e3a4d235a7345b60a 100644 GIT binary patch delta 287 zcmX@d{E}&c1SbbG0|SFkKBaE-+ z_N(bOy!sa;rDt7GlRZ^<65ECh-D}PtB&J*OKKy4mXY!>4!TP(q`c-_Ywye>uGH5<= zBC%<)qvOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008nyL_t(|oaK@|io#G7h2IV?*6G~CEW{#> zf?0-w3(!hPsR6-a3SSWsNg=1mS}eqf5HrP~Brw-lINtke1;N|BkMn-cdB>Qy9&*8N zVW?1mi*hN!57NY!k_r*p0?-*>5DMbapi0CUWj6KzA+XsIe>LC-h!2YuQu|NJcowZZ zwCDF-rJn;0-+tc#wYt?NwDxf^GfhI<3Z&hiN%HYNQ7Pta)|C_xgfCZTV0000(xZiX#ePs z5MqoWel19TN=c9}1-W!mASDx~m5`GyWFJDB6*7Q`Cd>n1m&Ro=B0x-&f&!Aeh_HX) zmw;Zr0wf^J1B(@b35dNw?K~5ZCC~tN77*mrF$;1AY=N53&IJe%36b?96o6qSUmA~y zq;4&uRN&7yK>j@wSOoOv??4GL${M`+QgsfjMu9Y@W&@rbT@=MQ*Nt@nd!&hW#$z^O zuEh(;Qc;hgBwO`_LO20yrIHSi(=&ge0D6G^B(-q*g#4ZYjfEXRcp)A0OGWsWa0r0s zeA>5!ab4G~XD9&Ddq{lA*B=GUcoYDvb&tTIFRQTj7xJL1`+YJ3lcrjHef5fotDB$U{C1+@9r%65yf-D&R)x+UBIQBPNaJRaoJB#?hfFV*=n z3)H9s3Ob|81@z)_2#0Xol3l@<-&uomM*j>vufe&5P6>aw31zOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00I(8L_t(|oSoD$YvV8!2XJ|@>DJWHJr3ON z6C`90^lRiec!_&UAi=VG;|-CwLLjoXn+x{^YPxpre9-T5l47@(^_0N9AD=OqT>ME61Um7wXy1yuJ--RBjgdlcl6>2p2l;pz8a2Rc7)iVlcU zG%rsBFkME~DM39iA)2Q7YYAAA6R6AsEq^L8NFi%koBlyfFyPq%r#ehl@cIDv&WN%D z$rpGP@9+1`o7E3xS9A&>0RH@V_JD~5Q1>PTADGKyf2J>1=mWaU&4Ww8uE+wy1s}&W z<^JG=WPPyw9}r!Nu#SN(X#wmF`~>;x0+3=QkR|#NB14W*RG*;UV?bZ%4sax*INkXc zxbIF>ceh>_uO1!1yZ6QbH^T-<#zi0pz{w~qfGp91>H`cj2B3BhT38A05?8eioQ%*; za1R>xI0gvp9AVuXkhK~8HN*D*#T0AT6pww-zp^dh!UMVt&YAB01Am+3X@9jlD*ylh M07*qoM6N<$g34_w)&Kwi diff --git a/graphics/pokemon/oricorio/sensu/front.png b/graphics/pokemon/oricorio/sensu/front.png index 470f684713af6c76e0985709bd731c2071a42529..5abc5e547ef17bbc42fd13e25574c2ccc40d1a89 100644 GIT binary patch delta 713 zcmV;)0yh2g29O4j7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007iNklXwcJ6cQJOhxrYzsdE%jH>ThWD*sVL!cLt9EyL% z^tDz93gK4~j060wAp)zlYKUsqSp3H=5QI?#5En{Uhm?bfv~Hq22@7rcTF{U>qS*`Wu)@)}*zJ>gps;eO`vM9`!z%K|;#In~=W z1YlX$b%6tLJwE}c9svHw{Kx~XVBXit!twwx zTN~_;jkMc@Ip>7-u>;yofIS2wV34-}!2O3cBgiQSE#QJSa`aDaM5?cH)_(+;1I79% z2xoooiJt)=Y~5!7crfx2kTdomI#e>s5y1yQkDzT1J7dSdfhd44OYjaLk@bI^w*U?R zykm(x18j{@YJCQnj+-+*0?4tKmiK@k2t&E_y7vIB!&?Nz)DF1@c00000NkvXXu0mjfAjU|M delta 812 zcmV+{1JnGF2J;4x7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00NguL_t(|oXylRZ`wc<0ARD&5>qghqKe?QrX!a2WV~+l^TGvS1d{ZUI$>W5ZLur&}(&of9Y?p?38>z2>f0{)~dN3 zUR`_-JR-~r9mo|@f*QtQ4=4Uf7~wcyh{<_^afCQKL!5KYHC6DlBu2c(8P``yD-^UY zd8iFmD!U;HA_-#nRolgDoP~%n)qz4^koWLTygr{`lmDACp|A24e}7q_Xg<#{o%W#_-5 zLQsPG5q*s^peds2`0pf03IL5$22^~O2R3-#@r7Y!HO%rw*!AEPFN`PyNe)nnK^J2y zR&n~A=K%O}jufE5jdQ?lc``=xt_FMhH?YA!m6_?qe~<=8Ixs!M_0oVkXVw!K=0JlR zR=5Sw1X@wN1<)%M;j~)}RQmb*Cm`7Kuxw3ig3)|Kgx}@2~-f zOKv%1&yN59Z$H{H(dx;Gpsk^zPkJ9SvFyF}Pk%z-v%|J4l(HYjX*_7?d3a9O$tk75 zlxez$qn)LhqgBT;?+<#LDl9`PeO))0EnH+?nt1xq9L3YESL<(YF?Hmc;h6JtUcb-E zk0&gTe~DWM4fH}Zq{ delta 407 zcmV;I0cif-0^tLY7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009L_L_t(|oYj)CPQy?PMc*G--C$v0VyMK- z=QY!fRJ{ycS_$O?T8Zu;b?y+6->^{h$e5NWCS~C|D+q}<`d!=C_6gw+pIGYyL-p?d z+rD~biPYU~<#L9IdoxlT6BIQC29zQVuDP-719us{?Iv3m z3;*=l#JMyMk8$|Q6VzKauU&>}W_;T|YQ&NkIG!cBA{`<;KsgdumG$bea5x+aFk-TM zf&)el>VXl{Dc=CbCcwznJTMnNJTMnN{9b>;$0r*mvoRcuN8bPd002ovPDHLkV1nh2 Bq(T4y diff --git a/graphics/pokemon/persian/back.png b/graphics/pokemon/persian/back.png index ad7a9d4a65570554df47847bd50aa43238807490..1ec5e999399fa298052aa875930cf58b8de380ba 100644 GIT binary patch delta 593 zcmV-X0atDDqr8teH64#@QL`K{l2u>b(~ z9cF~D^st?0E=365A^?d<7DAPa?!6^6y$Fsh+T-axpz13?!0F!tfQ$gF3vuf4D*%5n zOX8o(DR&`_5pfwxuYCJv0;`qyP-q`5?R7?9|zQ=UNULJJ^n#oA+~IK&QMZUJ18 zUY$0x*49U&BLui20BeS&es%(oCoti4NvQXP>c|1Gf_SSwD06AG8h~p9hI*ocxO-)K ztxx~f2({V?pdDIEW-@&!;{@n-2B?3XpckW%3!sCw-_YukMo=4J=_g$DLaN8UnMN@0 z_Z9${i&|;3;Ov7t1Uwudpf0Cnie@1+A1A^x7>94Yj^8W+%e-0}AP6A@@C10m z8A1$@3~+`J0r&wBzq~v^GCwjN=OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00I9=L_t(|ob8moj+;Ob$6*Un@AO}$Rf1+Ci69#(L&X4Xj6MMGH)!9OA4ygdGrdcC)rIqyTM!5JO!Pz?}orpFnW{+@ya4kO6>OTxx#jPdze`5uha-{GmPo zYA>S>farOK?Jft5L5zz2cLsE!@oZJ>`yq~aE2BFChj9)*6|;c>qW%j&uV;HDdJc4a ti*onSB^)$D#YDPJG{+23voik)`vnKo`|KT}G&KMK002ovPDHLkV1l_}4(2Y9G)kz;y&<44~UV{s0E=`T`Z_B~(hjeque=H@;c}J~RIo8uz;% z%MWN4;BJD$knSxjU<&U1G4-@OVlZd~_X!+=ynX3W9P8kGfI@!P4b1}b`adb5T>ua8 zsi4hMRl#Tnr$Gd;)>!EvcL9@L8V_QnkXKV+@rUIlKfJ{k@^1v485)WQ1w_HmOTo;{ af6p&YZ3_Nu7+s+N0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00A*cL_t(|obA%lO~XJ82H+FY4dBvyCqWqi zxeJ`SK%MFckFWtR(J=vG4L0SRRFQ2$!XrYpR7KJMC3c;2?ppu0>bhRf5plPXuL;g0 z?0*zDw}`-XY?eXA&rj9l*9CAt=KxQ`vvXiN;KQ6l_;`1Ke|HKr2oeklG05DX4-&i$ zFL+RZ&QSp9a(|2x_^_W68eag9xi1$5Vw|Fh1qN~-)J|`>fG~oS1O%(V1Bns%n#hb$ z833?5DF7Oj`=qweegi6Zi3~8gOQ1j?^%uE?23>D}uja2bKHgmL7`$L|uTIAxXe9K+=nBC4iJuvU?;gz%E*~7~AOF t(*`g({Q{W7pj+_aGc)?n4REc$QD0B2UT%>xK>Ppz002ovPDHLkV1gGcu}A;_ diff --git a/graphics/pokemon/pichu/spiky_eared/icon.png b/graphics/pokemon/pichu/spiky_eared/icon.png index 93107b1d3a267fd815290910b14b5837dd9285c9..3a407bc6cb2d65825bb03b833d36d51ace2b4d4a 100644 GIT binary patch delta 237 zcmey)w1a7a1SbbG0|SFkK#zZj zGq!WXbFJNE2bB%!;i{;Bi^|A}wbZesz@MH)x3 zy9$rX`cGE(lqC!mulLIN{aDHP=9=mfhBjZfZ+)+{X?v5-QJfU?7jXFsRt epIH01$M3-{f%~yJxl4d;u#y~cMSA(WJkYY)9^mSxl*x1kgCy{lc zqJ2GMlDE6d|E27ojsj(8d%8G=RLprg$(oPJkjJH#@d+5cQbsde&C8gjkAv)eZHdOCulHxV^9nC-$>Oe*SO7U`3_AS z``9NeJv>|aw7~6D8H1eNjmI4yNUATkIE~c9fMk`k42OLjZdkLxbRq{vQ>LHj>?3Q%dGpf_&rY>gTe~DWM4f)qHSH diff --git a/graphics/pokemon/pikachu/alola_cap/back.png b/graphics/pokemon/pikachu/alola_cap/back.png index eb78995e333aaf29168c6e84ba0a5b0ead838c23..110eab45bfba7dfd36fd9921fe9535d41d4239c0 100644 GIT binary patch delta 561 zcmV-10?z&I1^EP!7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005#Nkli*z^-75f0r`@po(XvgF{Mht)!u(A zcM)O~BCjCKWe9|W5Tg*ZK?nddq5+~v)C7pJ5Cma|9obL_D1fil5kRpL4Dgolf3N~_ z{~%D!zAgN4XCdQjUo)Yqt15IEePytwh==AFiL83Ou3}E@_ z_iw}OPoNqnAOUFA-$GFB7b63*#Pgley*YFOsQvP%7SsUpk zpW-0gw&ws8^)6h%O?m;iyluR{egQn;LH}BK0s!xl3wS4B0P=-A!97C?AaH@Z$4R{t zjh9Ukmd~>*f?E#~SZ}(n?gJex1)>Mr@M-lAiY7kKPY;rM00000NkvXXu0mjfNM{9- delta 677 zcmV;W0$Tm~1nmWo7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00I$7L_t(|ob8jpik(0d#wS=TSj8l;b!4kl zH;f^mP24Nw4e|^rFKjWaHv1Y2DFllPW2!YEco{)GZj;kEbHAV8`Ob`& zkpK09RVGRD?qB+Cnx;3&m%r(+q>fdF1Y`R7CN))V^{dB6f7VI^2c)kzK*a8UT#$&; zo2sf*oA+UhSs)QfUDgix%m4|JRJLwikNBi}01|C>{OAY^@JXg46p*-NZ?CC!IT+xl zP(;*ABD=0(*aEQ-3zv%y0mx{v1D4qkvdNH@lxp3cRJ;I)HO4@zQUgaD0Rbe`n#vs3 z;rL(x*%}sQe?e-s(a5LoJ}_&GMr~lCvc5g&Az-z*>h-3F0)7*Euo<023@ad7bB*RD z0Q|wMCqQ66nJID$Oabu0ehG!Mh+PB(p1zWh7}p30{Bpob)DD<>A8^E|9|MB{;E9nv z(HNjX08YdwbiA7P3Sb=V$fooFHRoIbg*ui^$>TV4e_8#&?g|)N!h9yicP5M=iH_Z= zh48z`4ri4^0y6U~M7sqhd)J(*r+~oW3}N|$V#ZM=^z<$~h*}Nd^kF-wwQxjt*yz%N zfgV#26X^K0jg1*o=9ogAC!%MJpFiBxNYQ00000 LNkvXXu0mjfUtKF< diff --git a/graphics/pokemon/pikachu/alola_cap/front.png b/graphics/pokemon/pikachu/alola_cap/front.png index 658157930e7862a5bc44dc0fa02ba4a61456dc40..2de876f500765d70c1a0dabcaa27b0b7256fbe20 100644 GIT binary patch delta 552 zcmV+@0@wY`1@Hur7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005sNkl1z0DGM4#Lw zj~%%dte9Q$!WRmd|HyX?D={rnGT)8@<2xxZZ@L1Ox`h3GE_-riVBt_-)EGzIgcE-y zP~Ki)$^1A8o%kz*3P#a6d79u597ul?wEW+KAi|Rfo@&s)Rgg343briJL`DeIAP}VS zFX!rAun`{w2pY<;gM-(eBQsQ9tFVu+dn%-!B{@Z`DfC)0q@JgE;$z-~en;CIXr%)m ztqjs@z6oM2je7;W^LUoS;kp;Cg{uJDAY^|h!?l7T zUF3X702hO}Ka%z(Amm+m90B&_pSFM_lSw46LZ^2d(zN+n=EA28Zfs#25^V$7`Dr4N zGao%|)C%^i10&=8HE3GD4R0R}zuX2l6F^VryMu^7;q@xxS~3*R+X98xV;z0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00HqyL_t(|ob8mqj?+L8#uvE=+KLNLz$!<< zHI`f;+3r|f!Ig*?K#GM#c|{b_5ed;-0=ctDfw0|$h8TqMUC)7~S}S5! zI^I-ORdT@7Vy*PqXqw95%NT3^;- z7ng-|Ctq|!06Z*qWF9g!&X*VhA9oo6pP%E=-FApUj@|wp0m&B+NSp!kdp`6w#V`d3 zbF|+&SE3qge;*(Kq@jOW#9!(v_5p$%(p-#UK@bwvh zhFAhvKe<)Iwro8B5YsOR{Y6zq0LEHSyU*J`0dWMAj&kmcMJb}u`~6Y0Ghalph|m)> zYYBA-SOy(|_Apw*01|0_gBx)K9FYG3FwTI>kz2R3e^*KkGh3N?VC=^X3|C}Iz+jV% z39wHvJrMb^qZn{V_iUHlo)B6KI7AH-g4UR}exM>K0taM%2XGw0G_y%tp!Y!E&riw& zZc9d>2z(O~{)(G3b@2~4uz*O&Nm93StS{TfHkUTQO^MWXCh@g!2W4wWYX6;gcfU&~ f^0a?17hb;sJ9;-)D;HSaxL978-h-%h#6b=ZKz z^>EL#r7!;ff7`>GE4J}%F`}NWrzw!%~R)5?p^!GN` zqLwKg7s~erX9?7~te-_or_l1t>F58<3^gM&7tDnm{r-UW| D6k(C` delta 425 zcmV;a0apHi1M>rr7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009?CL_t(|oZXVKZi6rohW!Tj7I}a$Fm|X} zlZC${3{_#v5(#h3!*xY{3cOw-#grw&HEC?Xd!?#gto!ua@|`~+{`9h!sBTUxLQ2)A zY4>zURIOam?>$gy;{fII5xFWgfnIv>l{jFnl#e5{t?K5zf8fpsZXd~pb;&*;sQu&& zdn3bJMx8&Qq>vCM!w6hV00g|ep`4GHZUVay5M(7Z&@CD?JLvqp=+|WIZe0#Q0>uj0 z9_4yyq@yVc7XNgSjq0IZli~jPvoLgYdQ1j+VMrbCN(Esk{c$V^L$9d=3t_ICO4XV< z1lnYKV2oYRJK@%HhuqG>5aYRrorR$srFK6#3)2G?B4G}QgwaJTjK)fs-}d7hz+9le T5&`gl00000NkvXXu0mjfR)nxa diff --git a/graphics/pokemon/pikachu/belle/back.png b/graphics/pokemon/pikachu/belle/back.png index d90d9ba3b450eafd9a388a0d14d59114b769c7dd..b9b18756583ab813959c8d11798dfcf9324ea7f0 100644 GIT binary patch delta 766 zcmV;#uP)||8chyKvDdevv*s2`a(y?{zyVVr|DO}`ZpCB zia)Z*CR}g~P~@Mub52zv9Ks5P@Fl_AyFaBYYx%K$M-caR00dFbUjgJ`JrdSH@BV*1 z^6tl90a_jXgxjjf;T5p^Q&y{GmQqk55j_JGy3fD?M0G}pM}S(JoDe+#Zt@v5f&-2< zPzM|dlskXM73C^o)>9F+wkm56$eY~&AZSMj2LQEZ584Ad*%hj%nc4gZ_TZ;Rh$0HiGitd(t@iJSqR5>|gB6a0y~@pUI`E0r>x{S^QLW-*bk?izq@h}Z}K z$Q57(fz?}@j)1~I4uwE5?gU(f0)a7LJWg|RA;C>tt?IplMxc0Xal6Ni5 z^L)jaZG(N81hOv~12|&{fZnH(V)Gl~;9uzJ#frVo2)6n+|NQ9)XsHMLq|L8M5NolU zZ6E&0K4H!H1Yicq2!kG@cfeB0hr(SEUdFcoJ`MoEV>s1c-#$y!ny+dQ%!-$~bPQXK z-vE$j1$=Dzrt;|kA-s8cA=LJ#3NXa}VL>)6F9d3}>XN4_??JT0GoTokc)f^>@K^@S wL2I`=0RDOaEUo44{GQTl1zz<2jr*VJ4@lcamV~%Jp#T5?07*qoM6N<$f_E}xvH$=8 delta 883 zcmV-(1C0E|2Dt~27-Iwj00013M{Ml?000McNliruz02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00P}fL_t(|ob8l9Yui8=#x>N0ECw&h&`ctb zDg6v3oDf}13cd;xTXbkNC6ERw!VofaX`qVYe_yM{Rkj8@GJp3B$W@(m)(T`X+;t24}cF{^clIipWQA1H&H^!d506f z-c5nBc+3Ml_++ zt$Nst0|YebU2H-`vl#)+2-s=OdY%MKA&EjY@qEswdE1r-i@1#gb;d0f5^tThLC|&r^;?m*W)qG6sV$i zmnag(NDCi6CqT(YiJro7%;*Sd)r-^hc7f1Bei@Dd0l-C}Zu`k8mud-7=UqOA81o6$ zP+b+I<$s<>K6l)uwl6F2fFt? z0VV}snb4u@p3oulq8UW70ss^PKr#2dt`NcCV*x0^YsQIeF8cFm4Azza`%(H3W89#F zjY32T%ul(4qLsoJ4LImg9@wzvfdkm@D1RB~aG`~Q=7E2z-<}j&yp_WIqW}N^07*qo J1w^hwV1hk+gP{Nb diff --git a/graphics/pokemon/pikachu/belle/front.png b/graphics/pokemon/pikachu/belle/front.png index 7f521f287375056bb43e69858025b58fad6bedef..27e11f42eb53f9ade86693d7cd8c40bf8044e4a7 100644 GIT binary patch delta 737 zcmV<70v`Q@2dD;+7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007)NklyGL$41{UwOGA?G`@ij(aY7f4R7m$XmVhF4zSxfK;VedDTI^4y?rv7fDnKm`ry4cPYEnJ zaiNTcfObt?4-oY70l=ogvSk2N^PYbOfW_#kdvKlwx*(phoXZiy@W7!T4xGDi(~SM! zk0ikEcj_ydX*fVTYYqg_)$TI%1XSgO*;D=mU=sW;N!-_!3|ZIJY9&CBkB=TO2fpHE z0bq6fc0B=%oaFZr902kAodD?$AUOeGX3-+2;~|ERzW}-(wV@9}dNW@7^wNJ$_|+32 z!oh@GzMoFY>BqH#!MLI7E_C}e+?3PP&=f)7REOMZRPltI1ij(?Qj(d)Fj2;^bb^1B z(<17|>M_hFtq;I7!Rmrc(1SP;lyyh|Q#%FF-g}rUQki)E#XuTcGYM!`WlLfhFri;8 zig_l9+yhQ!6V{xeHv+J*n$Ld=@I}9%ql&piNz#X|uan0cQs`O?{k+9cv4SjcCt8^! zU=vaI@Lu9j;7ro4FFF$f+y?+M3sdEvkRy~S0AEGB#OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00O8hmjCSTTmFJ64;36GZnVmqN(W{Okq&DToCr0LF@NGsO!CZTsW-<0P$%ZAmHI-i&8hr zUB*ExGKJtufJda>5=WjHa5d09CA)8_@8v-4Pk`bMb$$OmrA0|7fC5l4P!Ck^AcD@F zf4~uiGX)@Dzrvt?m8Q^{Y$1^?+81(#MHQ0fhd_1jPf87zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003rNkldBngCR9;!JL$R`E&xz#!bJDiVok-zTz2 zQRi9BgBTJ}F+mBlDuQN5&rhPrqJ;Wlr|#PSA`U|f<1ismPEbdL=ShF&@)!Zu0;D02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C}EL_t(|oXwKKO2a@9hWiF{@ByUt;wi=M zC4wY}MDWyJI)ayY6Z#l72wNx=Y=!1hAEp<54NYZxnTDh}^pZ7!W|NI)#l7v%{QvCE ze67}R9@)IJNV@}Lwk9M$gkEy0IXX5(^<3!Wkw9gxjAD|7e{d{;a6o?Ebx+3<=!aK) zZPx@M$K*D+G&p8tVaWJex^5W?=((mJx&ze|k#79$Lj5Mip)FS4L{+5MnBBd2{Izsg zh_|C13YFOt-d7;9k8Wv+r*ms=&JLxe1&0pxgufiCHXt5pe#!kxXt!Cg22AE=qF_+* zu_xzkS|=!@91lOLfC1_|=G3kMlVa#_D_B%GpcitBPb#9&$tD|7@iD~v%?brCUz%(X zA6BV1E_a(4Pc&jP3Y6vioqZZya>a*yHfZ~|e0&2q6aUMSr#{fy00000NkvXXu0mjf DO|sQH diff --git a/graphics/pokemon/pikachu/cosplay/back.png b/graphics/pokemon/pikachu/cosplay/back.png index d01bdd1f0825f70c5375ad5ede81b62c0ac9d173..524417f1cba32181e44b21388f398d2aaa143aa0 100644 GIT binary patch delta 562 zcmV-20?qy81^NV#7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005$NklgA%$9P90(x%NeXqcd&QF!WaoOlco(1xHqbkF3W%L(0#OL8nl(TLgh0qdo{&N+ z^+fPfXz_Wkvk*83Oo3t_7+m1!z&oCe048dD|6T=3I{sim`b=O)iaL<1sS-?<42bw`q3U)k3aDaO1$Q;Z9^nShxt?%st z)j}tQn;`q-B#?p6cwFd5vk>eKf+$n`@U z&wSYe9nS_z!EI#&g1>^ZrRaMa%=XEY+@%-=+XxR^K?@^6PvI=^u1<;|n%&ldh`*3C zetOx<36T09oxsASxfbs&<9z;d5qJ=mE~`(%3IGYf1(xo4sciyNSh*=e?Uf76juYOA z_ItSq3+rfyc3_^tOJ6I*aLyi~Wg*eRUH7kzZ=?Djo0qb;C;$Ke07*qoM6N<$g2Vj; AQvd(} delta 668 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 Q00000NkvXX1g=70g0sJn(f|Me diff --git a/graphics/pokemon/pikachu/hoenn_cap/back.png b/graphics/pokemon/pikachu/hoenn_cap/back.png index a00abae9209f668edfd9c283f8e15e894a2740e4..a257b1e99425a0b63dc42da7712aeff3b9739153 100644 GIT binary patch delta 559 zcmV+~0?_^D1@{Dy7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005zNklX8E|eVAP4w-Vx&S~x@4($LRvzIu@czYN9BJM zA%sk%75KRffj|f$WP&dA9&tuAKop3&fFTru(BF6i8wx=M@YMzaDO7?1-V*)~cR=bF z0@V!MhdIyz$U_@LR06s4W<&yd1hFjHoJ4NEw*g|CTId23)D4*cZwZ7}Lb!nXHzR^_ zA4fn65JVBS8il?BEsOzDf69@50cn4EXa^92?C(GvmpR@x{imz`2Y4d95!QesC7>nH zJb?l@uOe6km;o~2XTTu90&*%7m?axL6@)DnS#_;CQ39$C(Keez1$RGLq*bAu(pkaa)Xd{1)<(a<$ zNFQVthAn!|?=FGvw`z4Okk|m4&sm9tcE2H*25z>}5cH|Q<>k9j-j87>Xq|qTBaBlN z!m&LCprCi50f+P%;970t`T7M|2`~Eh!W#g2mzKcl1PCBqXeBJqkOByo!0B;P??mHe xQ-tmFtVLMXiv-r2Zm4sBtw0;}VjF&~{s1|5JN;t$euw}7002ovPDHLkV1i*H1P}lK delta 670 zcmV;P0%8641m*>h7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Ih0L_t(|ob8i8kDM?N#eI<|=+=s^fGW32 zr1V#&J5gM^O(aXer%BMQM9CHu<|?E^3PY80@t4c^FSfa)y(ZIOct75}v4N2P^@i0P zkH^pd(w~Z=cs&02oBmGfSWQe&s;?glQ%$Jf+~3nq8aSZ%e-Ho(egEZ(L{dDqZL8Wm z#4Q$qL?U%rJK!4yB*?L~_2hb_2i*gZ=*shVM_7Q*G96)n#I^i%$E?fA0M9}Z$smdH zE`uoqQXy6@7d-+{vU&%siy>r_scab2y4|UC1rS?|iM5Re&Nc!9NT@ZFIjqCkOz|vR z!>TMurfxJ+e?IuYqAhZD12dDQHzF0VS=8AUbo5<|P1pVAeAr zupG=3l?CPq_-em|+F7J70s=2TNlc7e1O$FLU?VaI%!3a&V$_$3!UXU_$)3m!kRt#G z;uAVv#s>vZj&>v{JwV1eS3s?{B`CQa7cOg<=xq&Se@Cd#r1;K^5hT&mTeT2=7un&W za!5dCUWDjEV76z?nYs#y94-)-KPYA#RYFhinlL- z1MAKLFn6-rT7WpjKoTD0-XR$RV2pL|A5|O0_rROgAA@=Tk#Pz^G5`Po07*qoM6N<$ Ef{Zg7U;qFB diff --git a/graphics/pokemon/pikachu/hoenn_cap/front.png b/graphics/pokemon/pikachu/hoenn_cap/front.png index 19bbcdfe60c649eb8f3e02c886c769eca1d5cd44..2c9749ee2e350d6e398b99433d648843289b5a23 100644 GIT binary patch delta 566 zcmV-60?GZ;1^xt(7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005)Nkll(+U1Bdg7m(V zj`D>onh>N3MNI(2PwbMHj+_I$>`tZdH#pgU)K3UJHh5FbJd6ORsWf5kXk8&z8uUrWKr#0w8?=QX7rA0^EP~@~nr$ zbT6uf8$jAXpeMsr!ICd>91@U=fy^IC{StuWUG;JV(3XF00VV{6P^p5qHxu%<%^`_&r_0>|fOqtKm0=s1 z49{wTs^?=w{m9U4q7st%_&*{eZ~WXGk$=)Z@x(lS0Hb~+RoE-NQUCw|07*qoM6N<$ Ef`L8?q5uE@ delta 651 zcmV;60(AZU1k(kO7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00H+&L_t(|ob8mqj?+L8#y3bVwlqE@M1_L= z0LRK#T@`H+s7&F)_5<7lAmJM6PBK^JbfmCdqDbtx1Q+(c0Z+y3ZUEhSaxKk`qA1Dt z(>H$|#-8FoL>Pw8Uq7Y`APHz}HtI4FHspU}xVS>Ih^39Ao55ovl(9%uXLh)-7}v zWGv8*z*%$fcWoJM32m0qDFWac=Qr6A2S5SUA3$d%e^5CpqxR-iV8g^!mJXPQxdcTO zSs*Z(By$er6O0c;HTLKMhhk55+3yj-vw%a;5*B#Ic=Zz&fesWznDg5`8I{Uv>hE~|_@Ov4=X~FJ)fU@G z9=(Z*_j%Q>8U5*KTw!Xe6j#b9`Xu>-N>#PeUw$s$yUeRXj`Ul(C9IX4UnweCqqv78I#?D`fJ6^X(e!SIhz`wk%g>mB6 z{yGJo6FcQS9cJ};Fex^LPEb+EK5};TzdZT4o;4y>WmkGu1O3k6>FVdQ&MBb@0Po_9 A2mk;8 delta 423 zcmV;Y0a*V30`UWo7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009+AL_t(|oZXT=Zp0uEM!CV9AZJMt-0n91 zQrcD6ZnyJv$w^}=l98*-y0GPHAs`w5&_{|wgXZZQ1jAG6PcJ`YwcHPcMEZ}oC;DiG zITX`*0q&`ffJ(hY9^XBiK}~uA;RtSw_gXJ4b7Q!aAt$A~>x9MP9=K-R^P3RW6LhL73n6;|Er~y|9OW&qatWdZ(DA*o|Z4a7?W-L*0(;X!k#O< z*&dEu;T@y4XJbJiSJ!{&3j4JG#f3dYva_0@5XOJrmLr;&~PV?)HCH zSw)CZh_r$*mLU*!LX1Mt1|a~9hz5uvQ57J@Ob~<}c4R{#pa8yFLjc7>Fu+^F|G^AM z{hdH11NVUhS^zS%HbfzSJ9kEUK#$g*HIyPdR_mFEA|+>;Rq6_gCO-m)YJn^`~C{1zZuH2tII- z62KB@oInPSpdwfVngIj|BVZ6{0g}oDMxwt7erW`chOxJP{E zXZ{2reUMpbw&*&)vjn=|D(_aHZUbmMXE_qs{f1x~Fxg5&(5C|2%U2=4ALB@npT3zR zwo~kcWqS%hQSZVHEYb_W`rHF5sPj4oDaB1osRnfWQS-kCSpI z8ZVnHOrK|W1h*a}u-Mr@M-lAYXv}gv}P^^00000NkvXXu0mjfU%mLb delta 678 zcmV;X0$Kg}1nvcp7-Iwj00013M{Ml?000McNliru`XB%R02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00I(8L_t(|ob8h_j-4EVm1^_eZ!rrbBB{#?fX@t&AW3EF&i05;x(6W9X2*|~FaV!qIzj=7OZN7f8kfTg z{1l3adP!v0H4J+o7GmLY(IEgCEdpSfS3))!vXWA*o0Ezc0I|gwXjN+9Xd)nhgj!RX z!#EsoS3tIge??i4T5UA)>D~oqZPBO=OjOpFTRjA97FWIA^iaTWLJuaRwTNK@M7zGm z^&tSfv92dTU_Px=claxdIAxEW47&e{trr`hh(ZFt&ubOpMP=7(o&p zdr%AEc99*WaJcl#*zFdfTwn<-@FerC1&C7+a{nSjhp68Hqpv&vs5&Sf0xwp70CoT+&b_fzG5`Po M07*qoM6N<$f@g{u^8f$< diff --git a/graphics/pokemon/pikachu/kalos_cap/front.png b/graphics/pokemon/pikachu/kalos_cap/front.png index e03175dc41a6511498424a048777c723fe0abd00..b8d995d8794c64466511dafb165051512aea1a5a 100644 GIT binary patch delta 560 zcmV-00?+-{1^5Jz7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005!Nkl1LNKW4(A6!jL|G`fiqx37Gwj{`@Tm@Hj+R_*^qe_WLm-~a3O!M zK7?)KIshWw;6+fU-gp%bFmc#<6=XPMK4~y+EXPYG7ua(^<s3Dm3V(n+%|EL97q-P{O^KDgd34O*}#9Bpky=^>_xzd ztRi3oi6D(dmZfs#6 zlyn2p_-O*7GoLJN)C-QQLq^KmYtXfRAJ#rvKHLU36Of)RcLxAI;rS}VRx&A`wFN5A y$B6opp}C1lNao}JtbFiub5tDuiT}no=J5mBV<$lHJ}ub*0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00H_*L_t(|ob8mqZ__{&#}8RZ(M>e`1)NHe z%3{e2vb~Y2I|18ASrRdN0B;sq!1fjiiF=;#gnfTh-`xdJ&#zfo`jwT$ z`F`|%-Lo0H(|^zr>cJsjpdQ5s{KeS|A>Q2P-xDvDI`hD6e@z1Ci}RHbGG^;d`Ed%& zAFsr*5+^cVmt|QH!10w3N*+C|eTGrhUiGT|b0H5?FX!#Z# z&=9}|0r+|fAR*=e)=zHKuqhf30L1tULVs2k5rDQ9RPOVpk3by3UOk`sY*w&n^nTZ~ zX5zCbW|8p(&YD9N0+un3F!nGSO#s~B{02AT2q+-`e*>5}11d*u-PT?yHcV_~=7F&r zGtg9#DFTB{GA2Mi!T3PreTy+*mu|@}+btrv7O;zIA_T56ZvB8oU<3-t{0^9L1YJ)i zZGp}MT{k@`54bHE0VB{&aQG`~&e+92U`GNhK_^Mw&XGQEYTH~|12rX7+v>#ELLHQ? oA*uX#Al}~oF5Q!d{X5aR1|jcE3o^UYm;e9(07*qoM6N<$g1@*J*8l(j diff --git a/graphics/pokemon/pikachu/kalos_cap/icon.png b/graphics/pokemon/pikachu/kalos_cap/icon.png index 1d224061e13183d42b86ad989168ba6f0d0e692b..0e93d93b74cb348ffe9967003679bd8519f65f4d 100644 GIT binary patch delta 314 zcmeyx+`>FTf|G-pfq}s%pmol~YWsSDk|4j}|7hT>;-)D;HJ?3Q978-h-%dHm)ndTo z!kzob(c|C${Boh)NwXs&ZXDLLP%oTkxb%Zp<)_S$(pclqOc&1{nmzB&o$I^eIhL9U zMSZ{9!M7k^IkEnRHp8`Ydj_qX&l7pmFN*z&T0OO6f`Vs$Vtt5Z_MiT{q8534(reLs0`6})u)OtB2B za~@-g>4S!pyVI36y_^5XY2TavNQKSzO%7`HE{#3^I+$ku5oDS4Gx=S5y^nU^KaZ~k zAKkSC*3|xT4r+|~yHP-m<9A1^!xHHf#R+zgo`wCt&adAvRp?Ip^1t!G0ATQR^>bP0 Hl+XkK{BM>5 delta 432 zcmV;h0Z;yf1NsAy7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00ACJL_t(|oZXVKZi6rsMg0fwV=ScuQajYF z$-?ajQ_YqPmGDrh`KSyT@;kVriv*Mn7g}tC_exd0SnufC@_Rmv{pn?!sFtSza1e(qR0-l~xgd<%&gS`(hvH}{YR}FT1=< zi0`CQ+87sTLMLI424n4Xpq85&nGM2_!D9~_grN+Do_;b2(*qKbFh@kf=sXriV(DV9B{7g{LV162R=I5eeZAJPdNSL?F09K4e184+s&D=yQ-fQ3SwTf}!2k z#sfL;(VLUNb|?VE-b*z!gbke6addx#II5UyXf<>KBA_EAKxA+Y6(I;f>=hh10SH45 zst`iHQg9&wQxhkG7*?VNyt@kn6d)3uD;;UArviDuzIq?4g(rd3Q!mFV`5)a2YB6k@ z8d{qH9}TERun>j-Zp8^eBOpZwGF$=<0Sb}L?I28maenUwd?YgDd}HSMTjPIy1Zc+1 z#afn?{E9*0d^WknW|({#kvK3w0EOV88-J^F0aV(v1)wb0`#WC)ihk_Egx9>ky;RWD z-vCaFCx08sLKu|a0BCxYh0s{omB4*I%WnuLq>(^y*-4R*=Aidb2y^w7k5Iayr`+rw z1(0o~iYmx`{uWwIO>%-P f^08e2{IU23J_sIn7C%8000000NkvXXu0mjf)NmXB delta 766 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00L=AL_t(|oYj-dZqq;%hR2E2HDfo3O{L_- zpil`Z#&Qr#5?7UAgA=CdGOH*RJE|yaE{Z1ViY}^JeF3DF2cQqY17yK2@4}gzZ-ej> z@vrQe&;R+)84n@(^MgP-EdjjRgXue;NRmZ~q230Mov`43Gnl zr{~swBaWeO0LE;<0sr`16A@!8y9O3sX`;p0A40gmkdTi}1d25p(AJfw%Grs^A^dnK z2+H(_>v^jLG<Nf6Zl&qoR{_J|W@oVxr&y?+pd8USt3T3>hCURn3RoXk%*N;UaOgQWlRs zed%f7DhB}K(NbDC3l7HNvIv0Brov*6XAV4_nUGT0AzCcfbJRitH|>%I0%$Q8(`2Uu zf!zNzeac0le$zaj4*130FH$9vCd)Lq_?`j8Y3Wrje+St60+102rPM%g?w$~v5P>!F z?*0KO5-P{RZYL1=@`{wC8bDyT1?YHcEG3DxU?+tp9!u~?FEUL`F>xUyXc&g8aRCq& z0x?nzbnzE2-5vxc2Wn612yYjwIH&|$1<1_p0)QElX9Yr*tPVnF-0BiZxlv)EGD@J! zg3=_Ve+8a|YeGU;*~crLh*40g_B+*m;!P5DV1Yzvb)R@)fF&Z0*airMZU`N9*nw?8 zoG=X7bMrqWHsDeO#xfwK;mer~biJ@O);->47q1A=960=OZCOx=JZ7fke@m@49GtE( wfY;o1a9o&V2Dkj9-3EnRhwHfw{4@Oq>U;u{5G^)R1ONa407*qoM6N<$f{ngGEC2ui diff --git a/graphics/pokemon/pikachu/libre/front.png b/graphics/pokemon/pikachu/libre/front.png index b83d135ace0c82412a3cc1568548a148a0003d1a..234ad40f955eabe6f1daa2cc6d1d7da6b38188a3 100644 GIT binary patch delta 585 zcmV-P0=E6{1(5}i7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00062NklsoSUO-Gg0C2|`eU(v6>4{)&l@E}f0LV>L*?dpPElSm~ zB?>8F=T9yG!Fj_A^A-cX-T_=j1qZW`Bc&*U@)J>N?UwKUH4tx0$P!re*O$^Tm&>ve z5C~oY?=q2_G+fF_R}cQBH=6zuU4VZ@N@DI^8PXvGSRj2BbkQvLMH9ILSVbTorg{Ky zrG6@*B^voQgfjSjs&h*_wU%%_&!eYUzYwJdF>L@K9Gi*)@9owi*E6m?NeBwBgNNB; z*=;v~l+c&O;x}e-ERBDQpa6t+ z^^X$RzXllV0buJmTD7yS5}S=^7NBm%+uN0?k`0VMEd>V{yaMMf06m$oV{Gt}6qag5 zPw^7$jzUyT^S|C;=x`J60ZnF*q|F;t&Fsu^9wQEdtadHNW!E``b`{hq_nmS4>PguA ze!wJDB}n~)9|W2!K$QRD$38XECkvV|`+m}|PgC@8;?#2=Di4pxC!TIzA}{$r`si5S X_q7!mcqgQ$00000NkvXXu0mjf27nfH delta 679 zcmV;Y0$BZ#1@8rr7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00I+9L_t(|ob8mqYuiu|$DbnbtRGgLF;V;n z)F{HxE#`F*WH8DR=#a$+K~21108oGCSagLrztmL%-uxl)RNzQyjOHlF6{su->GrrfCl z`SeU(M=B}(_oeJqfVa_kaT(Q%3;kgptphJ7MKQ5EQ3 zs|_Il0)Q8bPnHRQI0#zRIzSmWu@!{{hj!zc>=H2PL7h8Jk(s%Un4`T+X(_uaQfqeoDf8YQIoAUM>B2AbF+!_w1hx0Z8 zzRPYxcuOF4c0Gu>Q|n@CyHr3MTEOYX5V4&eV`BhAx7r3BwQ(axY;M~IEHw1zMXQCui1dd z#js*$>c9W_+0&LS?5Tdu$T?qWZ=gcir)4i!+KUv#&aH5cH=Sm|zK(N6(tWvGQa72k zA_|qH4t!&sp?ba{?njcKN8ZU$&huRpy538#Xyb6$nej>Wf4#B6Miw6zk+Uiye-Auw znK`5SM3vW}t(j_fCRZ0bP0l+XkKFffu= delta 413 zcmV;O0b>6A0_Ove7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009e0L_t(|oZXVKPQx$|hW!SoNG;vy#>f&O zMigPSTcZr7TPqgWiXuhIMqjq=cs9gg%;C1+JF_#u4IX}dC;7KOrT*AZJkA65c%b_k zFyhOw;E@qORfHmd!GW_JMd8z9NMXK$h(P!wkitOWV6Y+}tNInOFhK`0YavXR-`0kNFx|45XO4w|QG4$v z#KJ(8mHUYnFT(U@{8VEiOciuUgqa0j5@C*hT*=@4Z9hH%c;cRE)N#;-00000NkvXX Hu0mjfN8GLQ diff --git a/graphics/pokemon/pikachu/original_cap/back.png b/graphics/pokemon/pikachu/original_cap/back.png index c60155b42dade6524f37b64930b8d43e6c5360c0..4f5d09e274c853c6f0bcf70281342ff953f1638e 100644 GIT binary patch delta 564 zcmV-40?YmQ1^fh%7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005&Nkl21r+Zl~qTFUI6Je)X$wD(`an z58M5j%YS0D_H1kjNCX|=J;02N08t=n0)&tW0`I^f8xncJ0Pxj10w@%M0p1e+ z4^}|z7XpEN3vSpiV6`feC7cOaM*-p_UL1 zr1njZfIpo9NCAT=f?B=MRxk>EfY^T@bHra@Tps8FgdqDHaP`aVZ=3d0tN#Y>2u}nX zIB5_-6KI}522MXj&r9b^C1tmcG$md62NLhaXbrUQ= z9r2Z)`3r!?gUmv=Mfdq#B^dj)vTg+u8$k0p%aK6uR|M67#a1f9cq+iWd=v8fG0X(n z>AN{%KSd#I+hYI<<1SQSlRg1l);8|1p8-pF(7zU*0KmIs0@eu-K)jG8m}h7J2uxu2 zI4O6c^0LXo@_AMxnDrom_NE}~Y9C-J5Ixw2Z>xU=bWbwF+A<0N0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00JCIL_t(|ob8i8Zk<37##bpQEDm8IC5l`| zIYEvP2gyZ>rxYs`!5t!!_k?naSGm~02`oia6iGW!pf#c}J#)9fzu zk^6dizvXe}i*!j&sRnZEaRLyFjgA(% z1`gH&0!XMmf0aJ0!ohTLFH6IuBuJ?a8c9C7z^ElEb%24&*k9@a5&9`MsUQ;7D9T+bemi0LD>{tU@nqcy^fCB(k`BH7veeJv=Sj-lHn#!@@M;0NO`ZhY zm3Rb5La7Uk^#;fwb!v>~M}Wo!ri}znGF?i5IBra?FLJ98v@4+Z^Ugo22F16)v&BCd WkfWdPaL$wf0000K2HpW|i` z!l(Fs*0{$2pWsYBs$sco(Agi)V%P*JC8t37xx{@@1JmoeCQmk+z>^gv2N5VO;Szsn z0?)g_Ap}6A3%m+=a!!3&V&wTTbNG1`%nC>4vjyYMa@+(LI7s@H&l`?7G6>$Gdwk** z4GckW;|PHGiCyxtBj8~AS%l#GUg zwFo$oC;~Q+2z31BT)hfbz@0z>raBzp!gJ4o85+-3*v98Qm9%Gp4v||5qn1qC^NHn+xx2Chc?FPP1i6*Qy#m~LdDef!;kp;C zg_}UOfxu3NYXy^D;02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00IR`L_t(|ob8gmZqz^!#}^70r)>`I0Z=6F z34(ZlTa-}HM6yHy(pD~z?TRK3kZ221frNMgiaXIE7r1f56=1tOA+h5QH`x0O%rMH73fvWskKUn$lIyZ8iz%=Wr>{{ySk~VWAWB_`w=1P$l^R1DAaJbW z`02SZ=4U||u*LCNd~&eN5$LVXtFVi+*r|J+wL<{hj+ZFzGNYZ&O$gjyW(a(IVS4x4 z8WZGLZl55Ke|+))Hxqz=&4dGasaC*mulD)jRycEK0&C@$|3^LR)Wg?Ue*zi z5$vPqQ=QEU7L8u-de%&I7D*NvPvERMR3Ts);|OC9f1}X^zzxoCa3hX@0`lL0kr_}q za;vuXO0i)%1u_qe-I#%G1cIlSvvfUzrYXQ5cCM diff --git a/graphics/pokemon/pikachu/original_cap/icon.png b/graphics/pokemon/pikachu/original_cap/icon.png index 68179437b49d024652ff17d2fcaac6b91a61ec6e..6a356991e95aeeb213f16f84791837cbc90729b8 100644 GIT binary patch delta 311 zcmeyw+{ipZf|G-pfq}s%pmol~YWsSDk|4j}|7hT>;-)D;H6J`(978-h-%h#6by$JN zHFegHlz0FCzfF4OWxCSf#$mS8!7pun^R?$p`SB|AHNJB9EADnDFAqABoID=B(Y8 zqR}WKShYUgi}%p_7lMY;f=`cfNi3LtaN>>Y!Z)ooRMxah1gY3v+2`bTwxZAfqU!dB zb9o0DPulr=rp*8UT>9DJe-W&kejVma`PeRg;tjw4gro9)3KQ+8-T9fk(&D%BmBUBn z7dmYD_L85Iwdm_{H-#K+Gi9cUi4%Gqj&;or{u^s=!+7_Q(4nb3i#&k7XYh3Ob6Mw< G&;$UiQOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009p>RBL5ykvbiK$zJEzpLWokcUf6><5hk*9Qrr{6}PPbfQ zZ&kd@Y^o+N}fO-Sm zh-N!9GT9Ubi+@_=vVJ;l$?ZpvC=AKPpdbuAdV@TO!qB@1ok+sWm$TGe5{5KOsSR@o zOx~B4G50|SI+`^1s9X|;7|$bI5{4=?#{XmzW&|`cVOnIum^v56U?a?L`|%B&S)iRw SR#X@O0000;-)D;HD5ek978-h-%h#6by$JN z_2`T*C!hTPUuL)~$XAQ!+Xlz?!8dKY1s^W?^5k;IiGAlLn0GKZ*!4O4)xFF<%TOZJ z%}L84m*M2@`3w*5oL9KC+oRA{aI>sq&zg_5{qhtMP?r~2%8iW7<02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00AFKL_t(|oZXVKPQx$|hW!Tj5FMBhQcuc; z7;x5h$D)KV7a_^_#l|A>JNe zhc(daiOZvJ+WiPF%!vn-$uV-}bMn%NR*rz)-!_SIPRemhe^-5QQst%&0p-i+!i0cu zsxm3|R!(>6b@qUQri8F5dZ4irAmHg4MciWR0qmxLASa=LdiFrOgU&u@@3pD%r_Ki; zfqVg6i()x6(yJ*7BmQZTTlHVtCAsj;pvNQ(`Op6`C$K6 bzwO62AIG2-S4|+E00000NkvXXu0mjf+)1%# diff --git a/graphics/pokemon/pikachu/ph_d/back.png b/graphics/pokemon/pikachu/ph_d/back.png index 568fbf91e726c61d36c3adf2dff04ab498a85e29..83ee2a559694773123d5b924f808cf058a935e90 100644 GIT binary patch delta 676 zcmV;V0$csn2I~co7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00077Nklu%&A428!Ayd-4${*PPR+yVqLyOH)sRZCT+DCgrGbIZJ5zxCe= z@tGcsc}4(yNC13DV8Ani03Hz%fSv)+Tl{TmB97$Y)(AHmwfxpOJ6RRYG6EGrACbD5C*G6G^@ zwLtE2eA5!hW<>F@Bw&h4nLyctg#-X}jw0aCNGQ$rwGj~k&Y@;-Qqhe0h) za7}5n(E?zOV947uq0@^QCQ!H3A+CSDl%W#DeGgz0LfA}a01Lua0ys#bQWOEcCDeI} z84>~5u;{50&~h`G;LQXe3>iQPtmd$!nWLPvsi5omDnqO|`y@~6a$=IA5`Zl;|pgkp4dV0pz6U1o@oeP<8tPMDjZ zPM;XtwhN%SIa&uW*OxRzyy>ok02`or09d7$;!g?UngX`Fogghxf|&uf z_2(uJy&xDN+yXe~6d(_m0Hb4QA9&+(T@aQ4l#m-AJQ>h2%+*(D15gQHa8UFO1NpOQ znIP+}Z2%d;_y6KR&3XlN`h?({Z)G6sc`=WAC7`8$|IP4Y>l@O1Dc2CwWVEsX0000< KMNUMnLSTX+MK@Fc delta 782 zcmV+p1M&Rp1=R+S7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00MbQL_t(|oYj;;kJ3OC$EV%Ivr}jj4;pwN z2Tr)NAqywLXG5|VOVT|9cB_5>KY&U|&vGg^c9V_t6PSP=Jb2o(AHYxIOzV`H*4V55 z6B07-*WY{dNFn4ujoGLGYNr)|#VQn5t3qKxg~Eag1qb>Se*i3>{tYkyCbRM}z!7Lq zR;9Yh7^IIGRud4*fB~)Z)r?R+A!{Q>E5CAkep!P7Kk@n!n z(HsDpw5<=(VyA+j$ccB9QUKm#_2MXKajQ@Sf)I+d$CY|P))$I72arDxmLK5cRjx3^ z;O|M+WaKxgf93m^h|k|jfQrepYf-fQG+ux!2^b&@uif-J&FcP?qAOQV`RW)uUkZgi zm4IKzH$Ax^L7YWGVcUL&TykKw&H(_{Uvh;pwf)Xx0kka-Kd1n-aN-ifUv$vrLnFqA+6f17EPsn(0Wf#*dMfTk3|BSO9}KC)%TuAYgqf1!9hNNdBGt0`oRx*Od4Wwg3PC M07*qoM6N<$f>s$;0ssI2 diff --git a/graphics/pokemon/pikachu/ph_d/front.png b/graphics/pokemon/pikachu/ph_d/front.png index 0022376076b9fa7578ebf360ccc3fed39d19a4b3..75034ed9ded325a4cca2dedaaca6c605af0e1678 100644 GIT binary patch delta 687 zcmV;g0#Nym>Y424aAAc(&IUKxPcJ`l{U0XYx56BIM;jzd5$>>`> ze@SQnf_(}Afylu=LO{xQ96W$%zvHzR;5=2m64(f~8rSDta^8EQU{-%U zX=?LH7XW$*A;yUR0Evjdqc=c^4Sr@zo2(u&%Cp^NbLp%gHr;N{KPQx}xo_1HcJF8->rj2TU^76`Xk? z1jYgq!v{)w0YVt2GOY=5w1jDb2e^O9MkOSk=TY+#2moXS9OMLs#3-yA7eN9cV)HyN z9@QP=R7#<90ESE<$jppn);~mGf%!?zlHw9T7`S-T*GC2Dxec9|p9jTquee!{=eYN3qPiuNR`*srCx%{oWt1kTa`;FVpA@Un5{bP?^+Yb;Y V83TCM>DK@N002ovPDHLkV1jBVOAP=3 delta 775 zcmV+i1Ni**1OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00MGJL_t(|ob8moZ__{+#_gbHsf2t#>Mpl zR<$a;=dcLS>MF*#peYj8h$;X!OyoEYLJ}r~R0V)(Io(dzmf8&f1d+(*!wvx5ZAyh3 zNRs=UPxlVn6yH0UD$8%8NeWnuzHA@gwoI2kI-8D0M+jwr)uXBDnwAN`I4arH z+MR2NjO@wOOmt?hMkS|A586BbCQ-7ZC37YP)opWDf6%`>I5x`9{6^^30q)H=4B61{ zbJfBat*0BR#3L1paIUynKR(6>qCxrq(a^Jh_XLCuqw8T;1~>o*Qr+I?}F-EIH?002ovPDHLk FV1jy%P2m6l diff --git a/graphics/pokemon/pikachu/ph_d/icon.png b/graphics/pokemon/pikachu/ph_d/icon.png index b6bff421642c756eafe3bb33c0065ddc4b2a0ff7..50357beb5b1f2434835443e6a67a5b0c5b6dc80c 100644 GIT binary patch delta 331 zcmeywJe7HZ1SbbG0|SFkKRa$8sH*nYjVO3b5U?u?cLIk)%Q#S6aL^rYjnP?LfHYeYxKwWxc2 z9L&??B)4}O1UYQW?Vb5qCBb{%Vx>ECEwfKrKdWU=v16QJ{kVR@&clWVj2cRJ-Zeab z&=D-lAkwKi{BQ#`@m&_rT3bW`v=96&qU;<3-P$0 zc(3^UAa5f7%z3A;F7}?i{p0?9OJ3Q%dcTsxjdRHlXRal`oPRz%Du2shx&0D{E-+rl z`uW50R=F;FGslqn5>4|7%k6*22yOfIP;Y|rSBH8H`zNnouWbL~zW_E8q>}&u delta 424 zcmV;Z0ayN&1M&lq7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009|G*Fa)3ZGg+QP85gJ}m{H=juJvj&S z8UPJB;7gDYI4dqVQbNv3DJBsBsn7(Z{Z}PYm~2E$z!tF~f5Zg9)-(=d0*a~cdWRts zQ`7a9hL|hX9bbLOmFVs9rP}$B2*$Fj9!Tfkjpoo%t92@k_f(cz5OAtneJAz-JX4vs zaebPL@ALEikB7y%4qWyvgn@81C?Tvi0|;SY@ntgyAI z-dk_7FyLIZIs}jicv=G23SlPOzZr9j$&W>t_tMwd58%hXIvFkfsJn`O(~nQSl*3o~ SBMN8$0000!kE|NrgS1`;5*9z~j$89!91!d`5fi`&=hfBdyz zex}E1dPYEgNI-r_5Wq8n0v-_x0Gs#J@Ik*Iq2m4$!2 zVlr1h7MuaTvS8UR0|K49S zgzE`B=x03Gjs=hzl0!o{HsBUM0Vu<&RtckiCOA4$9if!_K)+_Nv(OP-L)ZbR0zP9M zhoPAO`wR-;^Rv6N_6R=6paOpOfM)NmgaLqf4cH?%=;jY$1wkG0IcwGfg7tsYke-}| zQt~^Ct`S)q7As3w4^0^&vyg!GJ^&jR0$O5PN^CUw6&zf?$x!AluSMzae@;xfwQugMtX*)O}OOe95k- z2yA~E;#RH(WVg*4R>YPhZRt)g26a9KB$-bdc}(-XGH&J%y7UGBPAQW2Ue`XUo6NYG zAEWeLUkIdq4AIjZlOdAuak?RR|5lX(Jiav)AtofErE^V~L~JT0ytQu8=og>Q0lg)o zl&rER+ek`hvoZ+5E>*!O!Rv1d?=joC*vPEaH|2V_aZbalyx5WIoF^f+$IIE$D7h)& z?QcpsHW^F9Vp5o*=IehByEc^(6PJwc^#5A?0g_rL(t*AR+W-In07*qoM6N<$f;wty A=>Px# delta 908 zcmV;719SYz2GR$R7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Q<&L_t(|oYj@FPuoBg#$8m&6-#;+QYF&L zu@xy53>grL$kf6~rCBS3I<+vk0|SrKh`<_w)CC@7oeO!J|9BLnV+2paJEJL3X|Hs|WNsu-UPsZWU~_?3@`c2;0OmgSw*vsi?Bz}< zk&za2#|WJc0xUpTO$<47m^te2ml^^vXKos0oZe{P00OTm@ftyTU@!4=V;X3JG?ME|RnuMf1ID(^ zXYM)4bzC)z?mpQjO_%G8B?RtcQZ>zAXRRqpf6m=q8$C*VuWr+lX%<_KQ#)y%yZiXX z+XPXYb{w-&atejdCLN8vFwqZSLI8L@xXeJbaq i9_ZG3o%ZMV&+0cwoKNLwmj+b;0000V%wGXnI_0Xz&L{P-O|_W}~}5ORJ`1L~AgUuKes2>NpT+tn6*05ZT^2F!nS zM-Kpppi#3hv&k!>Ump;X#iEp2$>mOvK7Gy^1g7Fq_c-L|)d(dA4ODl%{2{k$oMxa= zwrL3qso0Yvd2YLTN)Q#Hb>Ri)0`nhwx&j2-0V%XCJiY20fNRU(WEYSC(!{JxZ3*_` zUB5NNuPKBw0`THv_vu$LhXH_@@jd{a5y+Qa-2lYXWB?Gz06wlOgU`E~zX2>{*oHs)^0##~!mdXZj`6j8 z1013GNTKUYic+9vEB2x8E!-^!UQP=)$V4WyiMQV1di~wb0ND2+|#2I$a}z7ZEXNgxur+tG`wwD vP?*{s0%i{1zgr{U0Q?pCNdJjXT*nu%?i<9uNv3ZA0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Lu4L_t(|ob8l9Xxl&(#t&oASe^(GjVZ($ z+`)woE_ki!6)W!Snv5N)U^+ySqnsT>vKXXz2$Yc8qEm1}gbM|mVi#U1v~!kp_twEv zC>`9)Z1goC}i!<%9Y#c#N$s0vctn zIl#6t1k&7Le?Ej}r0V?yDkk;=gC6h2T!{Fw@h}~Pz{}n`H|XmN?TjB=i2Wqur^_pY z#BdM+TGp4II#Lt&MjS|E#DN&GE09OuAOyIRoLXEE4#0!203$GB0Ej*H{z9{pGXTKg zcW~3tzl*Q897wPpo+Ekygtg}IAwY>PsC1g+-wdqye-0l_pcCo)BT6$n?_Gz)U_GjH zprbwM?q81`9#|Ft`wf>>-RkwY!Q+U4Dzc|}hDYOuVS;FkI%*r*GyL4lS$x8Rkmf+M zwcS@A-+>9TD5O4k48?S?0SJjAiU%Ns!UrWHqmnsd*kNmIMaG zE_=nz7UQRrk|ofIR6F6D+iNkqXeuIrNDRO(TA+yA#2b;LlrgeHAurTPp?el)i=VEE q9VGU6cHQeP`Q=KYN#54d`VEig?>n+Y+Nl5l3IG5}MNUMnLSTZH$62@l diff --git a/graphics/pokemon/pikachu/pop_star/icon.png b/graphics/pokemon/pikachu/pop_star/icon.png index 04a399165b4aed8944166b15305d5a7f802f1ef4..c22ef85a4c1ccb8cbf74e7af0e73a0770c8c4fa8 100644 GIT binary patch delta 337 zcmV-X0j~ax1e*hp7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003BNklH{i09Lk zdwf6nlK^I5C1A+F)jqQO*u$N9tw1#}X0!ruX9H_cl){`q9*^+C0eS=Gg*j^;f&G7& z043|ZO-7)_B}eRY>n9{dM1MQH9n=ZkqP$)l#AKcw9l&7*vF8-1+@!hLQR^v)Xj`b9 z!MQC{9ZqmlTq$Ffli=BC%eJgWXhfW65X(j9>H3T~%QnBMPyK@$E>hmayMFirkg^oYwYGDP00000NkvXXu0mjf&&Hx3 delta 450 zcmV;z0X_bk1B?Wa7-Iwj0001qplF={000McNliruG#xh%%M1Vj02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00A&bL_t(|oaK_SPQx%1MLlPz2S)yY0ffTj zB?HdFK$g4?8JYRvxR>mc;U zWb82tH>X3j(>*9h!$#PK4~0&Rk;O+K`EG5LHMTV&vV?}Je`G9F{8$hT9i`_-7Y$@@ zaZYJshXTZqbkt7OkVcSWm(VfvkhPs(Sw8W|Rk|9MFBhb7n-m-Nc`L75XOMT;i^wIe zxKJXr0fY{OOZMm)`0M6ym-`=vTU@kgE`$D!@Xzkv!u`qcfZ=CjiUj0gjj#nqp+Xb{ z_swL~im^iIRF#>4S!5;Om5@7Nlm?!H@qiilfV6eM3^d$pFb)`;LS6y$fYAWYuWSy? sHoTNRFuYnxF$ZQZLI(^w@?YlT8?o1~wztV(e*gdg07*qoM6N<$f*G{A(EtDd diff --git a/graphics/pokemon/pikachu/rock_star/back.png b/graphics/pokemon/pikachu/rock_star/back.png index 982fd0ba3e70b4b66fec3316d062b580de33e36f..fd86f4d59ce7f92f0bb577c4d356fa1d678c4bee 100644 GIT binary patch delta 693 zcmV;m0!sbt2K)t(7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007ONklyE7;423N%L4&;i>rO9ptH4$!CiCZQCse;R<&YzC zfCKWnwrvUuI1w<$BWFa-XLCYca|a*`^dHbY$g{T^5x)YU0%$u5;Rx0Hx&7&y0N{l4 zOmT#(oxm0v0}wm~LiTwEV{Ae$V5@((xmRK zZ~~ARP$}#?DTb7_g)abMXw^{EuoIe;2N~s@2kMs8g;2AE9ZKQ*%f5pQg@jT-&Zv7i zLI;Rgs1!YR8IM6pw6=BZi;ZOv3?TMUWZo=K2pAD8B%2+U76H=)bI}5N1k`^jj9v8l z9s!)}uk>v#c#?N6=w83*>*E99wz>rd&+YgL6;t?fe~TOLLBSEgoA2ftPdd*`ufT7MLyBS be=dFiZdxdxND4Uu00000NkvXXu0mjfYF|1l delta 805 zcmV+=1KRxj1?&cp7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00NLnL_t(|oYj>*Yui8=$4~Z0k-$ z#|oia6rmxMLTsN2p*2)hZ}7KBOF@)u?NZ3p2oL%eeWAFZW(Z`ohk&6&qVLk@B%LHn zZZ($vjnA^4pa0Lx=`bPxsT#c+pgpPqR90i58Z{Ow)L5uce`A5bxCVgvi@yO1!0fPk z8z2YvXMQE#U9ej1~j0T zW}cz*&LvT7QA7?HY$OQE;~zG@TNdW|w z9BPvw+uT^_Y2HM)`jS4ZhRc<*!$}f32ptthL(@vQOC>e;P@xqvxx; z_DPv=qN23rjhv;@NeR6Opa&@v4tf`~M=FF)3-R0_uY>lb$8^I0)r<)hga-yA8cjC= z(h{Qr=!1TzBhsb%9u%MbCRX8gLk|(mL!++eeG6U|0Fl8AQHTumE)B!??>0`49UH`Y zGjPPmf6vFfg2%QC%Z;r$nyr~;_e zGF>VVd|fZjs{pjD&Jj?0>YaLT+ruq@X>~x#HyBmgq+qw)4A}CIpum71a`?a;dXn+JN_u> zDxWSI{)6C}0sM6Vzj%(vvw|$Y1fX-ybCppRSq;ns&pqY@zz4_+-&B?53?Bl3$j*PV zu$pNp>F!YXpQ1blW{xv0_4_PbEPXaEzf`d`uOeo(S5?y!*xU36ezXVQPwlITd@S}i( zHPLBi8NAgl;B`G63QREYT&p{zBE)|y?(;GwsN%Z`AmeYXx#s3OJSu|ufX^8%!eHhC z$t|~*TJq~M9K4g?+hH1{3q#Z&zIIPE z_`^Lp3{Qf{&r^8k{TCxixO5u%3H#vpQTakZ-u~Wez-A=e09VgEXFv@U3<-aKCaq8q zmITF7HziO4M4CQ>$3k|#>KMccg9hb-l+^sXs+TY~2QIL{U;uA^NfsrD>@C1=ypi+j z%O8gux?n>vd8(VI#94|d!2VI(cpVs*-5sz6IY8Jk(Pf+^76NpB-T(&Epy&X`-Yddw z@(Lye3GX1Pt>P#UFCCHmlYv+#UrlHo8~PEc$LyQU1ugxg&wR8{ORwU@M-N>U-1?xU z$MBuyRr}Bn8ErR{{MdX?5A<9Qo)gkI4=%*HF1+I%{}Nx6U>5({r9(sj0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00KuzL_t(|ob8lBYZ^fqhG)BiS7$|35}`X0 za%qcp)x=9dJ6?(xStlSKL({Vf?HW9V&^q8rjL`W3{Q*lO3e%J9aXlpG-AnUFI%|j} zyVFYPH7_j8?)&i0_sx7P08jcyDcb-o@!x>Hr3ADU*xRh1e<2x=Hy@TLk0ohJgA@Qz z#e*=$H3>irVO9#(Sz7>-jucWUsK(I&J!jGYV129@N5?1qA!AoH*^%^zmCDKS`{6lb z-oM8)nNKUg8r@N zHcXg%siza5Y(@Z(({5qv&Ay%6;R%IEfSwIc?|u%b&3R808QsHLj85-Re=(YKThfG> z$^K&aYM+j1hR;)G)Q{60YN0)g+Ef6NsgBc&AuA?3{R|!1$zl{xGBj%vl5J5sf{G!D zfSHT*ZJE_eQwsH@4A5%u$BcJv2oXxcs1LNf6HF1VBZOo=&|c&N9|e;Bt#;8y@_&)C z4FIAzJ*e;xJAn8ALg7FmdBA|r*G`;-)D;H9tLF978-h-%fGlYcb$( zJzB`j`RDijvW)C4x+P_s4JJ;V{NKwu>HfC8U)z};U7jGlPW^NTw*#Zvq539CUAEc2 zwhJs8cUdu?xIQ)JNHKfG9i}BZN(BKn>Cb*n2srO)Ykum}rTSe@eXMnh9{L~s*3)oB zIpXwmU6-v4_Y|My#4y?)wEKV5&Eck?vc7L8Z@X+ATku)+r;DvlaqG!m+VjTg$?K_~ z*mxah1l@U2zVFwKdsQ)|%|7W>zmq?PmNa!TN&Xf5Yw%N+N{nMF$tDU;3%Ie?I@W!{QSvM5n|YDBA}N O1_n=8KbLh*2~7aPo0|au delta 425 zcmV;a0apHs1M>rr7-Iwj0001qplF={000McNliruF97{MY)=3H02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009?CL_t(|oaK^1YQr!PMRkM0+Bx7B`vAQ{ zZ{WL?u9S`O(gU&2;$;JN31pLiC3h))uX+SjLKcsapD%38P7ASJ3P()Ze>xV0e*?>I_mO%7o3MJv zGK;-q+T)BojmZcejy#L~h`!*VP2aqMff0C$k_(BF=Q#9=ggr|cCBfi=MML*O1!iZd z*i+Hpd3e~rDOj_U!1E%|FIj~E%m{9+5P*SiC%~+N(At7cwe`S2vPauC1Q@gMaS{QT z$pKXHI1q*SJ2^Q%yaOt1u4NW!GJ;*15yl)aJ?BGME|~mUM?D2*<%4ebxB0jM@7=eE TX8E|eVAP4w-Vx&S~x@4($LRvzIu@czYN9BJM zA%sk%75KRffj|f$WP&dA9&tuAKop3&fFTru(BF6i8wx=M@YMzaDO7?1-V*)~cR=bF z0@V!MhdIyz$U_@LR06s4W<&yd1hFjHoJ4NEw*g|CTId23)D4*cZwZ7}Lb!nXHzR^_ zA4fn65JVBS8il?BEsOzDf69@50cn4EXa^92?C(GvmpR@x{imz`2Y4d95!QesC7>nH zJb?l@uOe6km;o~2XTTu90&*%7m?axL6@)DnS#_;CQ39$C(Keez1$RGLq*bAu(pkaa)Xd{1)<(a<$ zNFQVthAn!|?=FGvw`z4Okk|m4&sm9tcE2H*25z>}5cH|Q<>k9j-j87>Xq|qTBaBlN z!m&LCprCi50f+P%;970t`T7M|2`~Eh!W#g2mzKcl1PCBqXeBJqkOByo!0B;P??mHe xQ-tmFtVLMXiv-r2Zm4sBtw0;}VjF&~{s1|5JN;t$euw}7002ovPDHLkV1i*H1P}lK delta 670 zcmV;P0%8641m*>h7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Ih0L_t(|ob8i8kDM?N#eI<|=+=s^fGW32 zr1V#&J5gM^O(aXer%BMQM9CHu<|?E^3PY80@t4c^FSfa)y(ZIOct75}v4N2P^@i0P zkH^pd(w~Z=cs&02oBmGfSWQe&s;?glQ%$Jf+~3nq8aSZ%e-Ho(egEZ(L{dDqZL8Wm z#4Q$qL?U%rJK!4yB*?L~_2hb_2i*gZ=*shVM_7Q*G96)n#I^i%$E?fA0M9}Z$smdH zE`uoqQXy6@7d-+{vU&%siy>r_scab2y4|UC1rS?|iM5Re&Nc!9NT@ZFIjqCkOz|vR z!>TMurfxJ+e?IuYqAhZD12dDQHzF0VS=8AUbo5<|P1pVAeAr zupG=3l?CPq_-em|+F7J70s=2TNlc7e1O$FLU?VaI%!3a&V$_$3!UXU_$)3m!kRt#G z;uAVv#s>vZj&>v{JwV1eS3s?{B`CQa7cOg<=xq&Se@Cd#r1;K^5hT&mTeT2=7un&W za!5dCUWDjEV76z?nYs#y94-)-KPYA#RYFhinlL- z1MAKLFn6-rT7WpjKoTD0-XR$RV2pL|A5|O0_rROgAA@=Tk#Pz^G5`Po07*qoM6N<$ Ef>bdZegFUf diff --git a/graphics/pokemon/pikachu/sinnoh_cap/front.png b/graphics/pokemon/pikachu/sinnoh_cap/front.png index dc2712fdfa83bcb55b49357f8538635ec0cb4cac..91d91acc28c36e79858d2d9dfcd2ddafb94e328e 100644 GIT binary patch delta 566 zcmV-60?GZ;1^xt(7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005)Nkll(+U1Bdg7m(V zj`D>onh>N3MNI(2PwbMHj+_I$>`tZdH#pgU)K3UJHh5FbJd6ORsWf5kXk8&z8uUrWKr#0w8?=QX7rA0^EP~@~nr$ zbT6uf8$jAXpeMsr!ICd>91@U=fy^IC{StuWUG;JV(3XF00VV{6P^p5qHxu%<%^`_&r_0>|fOqtKm0=s1 z49{wTs^?=w{m9U4q7st%_&*{eZ~WXGk$=)Z@x(lS0Hb~+RoE-NQUCw|07*qoM6N<$ Ef`L8?q5uE@ delta 651 zcmV;60(AZU1k(kO7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00H+&L_t(|ob8mqj?+L8#y3bVwlqE@M1_L= z0LRK#T@`H+s7&F)_5<7lAmJM6PBK^JbfmCdqDbtx1Q+(c0Z+y3ZUEhSaxKk`qA1Dt z(>H$|#-8FoL>Pw8Uq7Y`APHz}HtI4FHspU}xVS>Ih^39Ao55ovl(9%uXLh)-7}v zWGv8*z*%$fcWoJM32m0qDFWac=Qr6A2S5SUA3$d%e^5CpqxR-iV8g^!mJXPQxdcTO zSs*Z(By$er6O0c;HTLKMhhk55+3yj-vw%a;5*B#Ic=Zz&fesW;-)D;HSaxL978-h-%h#6b;y9n zmD^0#Y3I-X`%Qg!Z&ZzR_~3ZZuJgG>FxT=a|0};66!$TzoH}q|+sB8}_jZ4}o3JW} z&1Ux}O^)^9&DJ3qz2$X+6?zJLPR8!ATIa!fp}_XO8f(XmkM)J>49(ou1hHDp5n!O1V)c7CzfFe%|*5hQ5;N}_RVTFtZ2loM+e z)TIqnpX?D)c>e!0@AJcdH!yDeTfk`e_XFe3Z-?2Bd^yaj@~ZveI{CDt+4hHQ=KK<5 zbGc^stI5=WThq=q$u=Iej$uB~8Pt|8K}W80aBK+iLHy85}Sb4q9e E02j%W{Qv*} delta 424 zcmV;Z0ayNj1M&lq7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0090^R0;?gU%jH}7?Y#8bBe&_J~VVMM(j z8rj1Xm8gHZC>&}pd*b77&(lc4(5Lh~821r+Zl~qTFUI6Je)X$wDu3qk zAGUj!%YS0D_H1kj1 zd#7w8gpi210za1$flvq`B!Uj`9$-dBfG7|(0Ybr9b^C1tmcG$md62NLhaXbrUQ= z9r2Z)`3r!?gUmv=Mfdq#B^dj)vTg+u8$k0p%aK6uR|M67#a1f9cq+iWd=v8fG0X(n z>AN{%KSd#I+hYI<<1SQSlRg1l);8|1p8-pF(7zU*0KmIs0@eu-K)jG8m}h7J2uxu2 zI4O6c^0LXo@_AMxnDrom_NE}~Y9C-J5Ixw2Z>xU}OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00JCIL_t(|ob8i8Zk<37##bpQEDm8IC5l|; z2+0lNAh}5KlwySn`!YXA~;a`XMlU5h@h23a#cdN20|ewE;kJVkkD)cOrs%WkuJ$8)j)1NP5@%D(a|E; zz`7_~&D4lqy|`%B#fED{&3KD3a*UqW}* z<17)v0*KmNqj?DcADI0B2#iP5MQVY;13ud?A)6(_*#ZI&KZ#HDiv3I~QUIT-@YfjZFz*9JZA8w=Qu~!bAeB%$IR87qJ zZr!Mrn2Bb$o&!oS&~55wygYtweP!B|J_bKe(xJCsmijsTJW09R=2id!UM)bk$&-M) z5|02WLUn<$-T)b-PL1*W2++8|w2{C`rb`JB$BoJLMQ#;>b_Mi)-uXw>p!gPew)h7i WS)-r`;1SmV0000Alp`L(d3q!6-!>2+PBB^yqFCtsGbhFO0E znU*jKgerRwf^!ZK=>k910t624d45bBc3uS;_L)x_j2p}G5L{p<=~q5&IO514c!%!s ziB~i*IKh=80OBWh$;*zM3!KbOW#KbKnSaj@3|uytsb;?J1VcgOBhP2X-Pg({VHFDEvD{kAS-C#FJ%a?L@We2hfAiW7vD~)*txbc7TtcSyN zFKP=nfoubTo($6prhJj(E&;h1$o!GiF9As2m6s!cw*2!JU_wv{l~wTcW<#E~T+3Mb zoWX@H?1PeSAR0eSKy>7jrHy*Qc6G=|d3z1I*6+jGN7IMf;9>&O)8*~}z&ku&W!Oq4 z#k00R<@p#|34xtZ~WZcEC0lQ;~V4n0kG#Uh{)%iiU0rr07*qoM6N<$ Eg3|d4+W-In delta 665 zcmV;K0%raG1mOjc7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00IR`L_t(|ob8gmZqz^!#}^70r)@6B1E5IU z3oH?#phCPrBuf+^ZRG;lZYWMXK%y;3MS=1H6nCORa)BE+TmiPr6H<2E;Rbu3f!W>T zBkM_8nv71qJO6+CpN}2JZsR}1d_F(8f0HhRcz7bO*B`B3e+%*K>^l9<)78aeA&x9C zTT_5|vwDv?lw|8o`C$s&6YnloScQ`7vMh@!un@Keb-1iA5g>(j zpPw0HeinoQTO6OpCx^=%f!^x83cEOsox0aqI|RVpc!}aJGur9ggusJkhQOy+rgwi^ zV}cyZ?Gpr&f6pG^W&-eU`Ow)E!`>jw(R^)PiSbx@g8<+f-!#Vjh|i@r2y$@!a;#O| zeOCxLg8=xb&q1rV;DCkzHVD9%7XS(*2e5i_rG`z>cmP1+F9`KnSwsNZN>I7yRUH8t z!9IFE)!D3I(dhNAXU#-skz|qa1kRd66#|wqjxhEze;Q2y+~E8MH{u8=ApZ>*nE{m} zw`yxYDK;#pK<0t58#B;UktqU$O)@4xoVS3<`xZT5mu|@}+btrv7O;zI!UESAw|>AP z(18LnzXN6*LD!Q>TcGnm*G+HA18z%3KnJ=B4u680Gj{P8*pUEBP)Sm^bEM9j+BTQg zKurmwD{Xb+YoRX6){s>GJ8x;=AM$4XHt6^T<@k~Ye|bEW00000NkvXXu0mjf53w3a diff --git a/graphics/pokemon/pikachu/unova_cap/icon.png b/graphics/pokemon/pikachu/unova_cap/icon.png index 6d448092847230603facae126acd1b177055b160..1dbc18cfae63e36b50e6899f3ff7bb8de9c38a5e 100644 GIT binary patch delta 310 zcmey)+`v3Rf|G-pfq}s%pmol~YWsSDk|4j}|7hT>;-)D;HSaxL978-h-%h#6by$JN zwRKj9!pZ;t-zH62H_OD}#$mR-{!71`^m3>#RiEEB^Rd)M77lqKomT(4*V(z@O^WMT zwwrOztBvcld&rxypP^^#wT-QFS~tJ+c64Fo@JRYCxRT+K?n-Ok5`x7pqoPG5lrU(elo*E9H~^*8T-Mm(4E}ku2i& zSj5P@Xor8N#=H4{oc6uxk5$-h-{W9bAJMqx-v*|ee-c?9{Y-w{Yrjo2ynaX3jvt3b zJJ!_xYL01)`76l5QtG0hBruDOlf}sW&Yf5Pe?4S9lrQwfQla8B(DMwQu6{1-oD!M< Dc)OD} delta 429 zcmV;e0aE^e1NQ@v7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00A3GL_t(|oZXVKYQr!PhV=&bFoLWdDzC}n zzoR{r+GNRCZ^=V+GW2aS74jI?dNovz2^6bJV#&7lLg_8yK7I-5^a=5&%eGNp92SJ6 zEDzV!)62VDRj%naBl!L}%CZ%ds@5lNpi?8DZS4-RR;h7IfB#xYxy!imfyx!@oP9vp zYR?HaMuoc!I(7grWL)H^>V^CufiYK^Uq}HxPt5*KZC?!cbK_ z%avyKf!_JDKW7Y$*Ma(q8>Ds;h8T|>>?91O$hG^)Ntg~O5DBwGB#h2tVKf%P{I(xI Xbfcn1$3*z0 zB#r2`j}rj0BV=2^Fbn{jU-Vl@1TzLC4u23P0G9Z$m;*qqA0Gp#3K$1qI>iYvHb}rN zKt_?4^it33aYo<{zUoZ^_h!qwq4eX|8= zB=YHySABrbe`NrY3F;4~?jCY$AOn9&a<2q!zx`^xtZgkA725Nu?Z-l&eLyBe54P~f zfwnILigbCj5W<&AlXZ&FCWItnu`rAf85o{_Do7@x=7i8aS$m$&iB3ZvY}77pD2RDk zRsvW_AZm-RJMB?+`sR)fX@kmAx&(0H<=yS%d%#d@sz2ZR3)U<|+a=(P?;a)qdYwiC k6(AXK;~$wFJ9fN@Kgc-}Lv%`2GXMYp07*qoM6N<$f-1SkCjbBd delta 518 zcmV+h0{Q)e1kVJJ7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DDJL_t(|ob8iAZo)7SMUzO~*HOHv#3Hfc z6BrHB*o6Ms>DcGNb~sr&)6i%v;M3Oe5HTfm9c(y z6c7cp0MId@1^^l9zjV+=fee7J0Ftc%axH@_Vt}2ZE`npGf2G|+TNh;zKP>bDn+Z@qq(mWiDNN1t&m9H~AH84WbksOm&=JadPtQGrqi6ixy+CN07B#DikS zmN?~{aQo-5r+U4oBp9Ljph%reMabq;>uS0O{IN2GYH~Kl+)l>Os+_IbMtd{nLJZc; ze#oqk54PPHb2TIIy|^t3&3OR6@Y@ndZG-{9^Lk0181?V!2eQ|i=lne~X8-^I07*qo IM6N<$g2a;FEdT%j diff --git a/graphics/pokemon/pumpkaboo/large/back.png b/graphics/pokemon/pumpkaboo/large/back.png index 571144ecf9008fb639ec4c2c30bba23fe551e57e..e5deba0d7d62d0c148a8fbb691aa545ba9e58c87 100644 GIT binary patch delta 474 zcmV<00VV$H1fv9y7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004!NklNXv49F<^=l<;gsDu0Qkbyu0y)BCWjX+L62H3LtAH6`4w|cA)w*=GUg+7&W zt%s2wq9IBI>BD$)a`y;Yy@%>*U#Wlb@nCvrI*?~7fo#ABfSA8CKrP9h`u<7v)EPJd zz8p{NnjrntU!&(&M+7dl-r?dOOZ{o27;H#Y=&OwbX-vgvT;XZesUE&}N3>Z;woAZ~OSuK;ahwcPfYU&j|4i-JvExDf0S?C$6Rb2qv`+v02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00EClL_t(|ob8iAZi6roMFFY%7{Q`a7r`KR`cns86vzPT2Y}*_0QJa&Dq;X_A&TIde<|HW0)j!Mq+|wo7=Sv- zIA|UMIJBIWY=RyO0D2S9gmeO=lo22kI~nbe4imybrZ83r;2x+0777ov-H$-td0@A} z?Y&+hOeJM|M^yC;pmp0@12y^yVjyl_IY$(OuKbXNp4Mo_1|^-2TD)$v^%W?w92-C} z9Qwb+6-ZI*f6;;xBSfjM=M8*}jRW~j@~ diff --git a/graphics/pokemon/pumpkaboo/small/back.png b/graphics/pokemon/pumpkaboo/small/back.png index 23283b1b30431015edb77358ebcf3eac98cb5515..5d7c21e3465d5cc220350e31899fad7acf675774 100644 GIT binary patch delta 437 zcmV;m0ZRVQ1pWh%7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004PNklqD@6OyBmqC4H{SS_V1OUV z**V6vUgggFX#lgg;Mq+;v__b;pa#GX0Ac{ZLx6t*upENs0nq}@RDqBQ1{gO$Nuz%$ zWSRnaJpr)@5IMK{R1*IULgc&$#K&CJTRk82s7<&Vg6YxKXT~MrsQ0-ZTnPL*JzAotMh`R~ z=Va;xVEU#5$|Kd8=>y{WI05WlbOC>&m!D|cg4@Ehy#hMNlgRY>doJH@gyKQH_VTau z$GvN3C0InjymlPed^S)UrUDU!jgJP>Cbo5#%wk%W5EP;jbb0QjAekrzLLloZB9Tk1 zVOeY>sk*pga}ELfR+mh%<^f&a(8)JbqpF7M^#vO(L<2P-+SjQYfL(^!Km{S#41|e) f#2atC@h|ZQU{(>BE4zRu00000NkvXXu0mjf9+b?v delta 518 zcmV+h0{Q*^1J4AI7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DDJL_t(|ob8mcZi6roh5;#ijqp$@16XG3 zR402N=e;=i#ky7EWzwyZ^9Jd=)Q6pvkk}ckN;%11?&H7zj)Nq5#Gi$#@8oyuGM3MF z0-}Hh038Fk1ZX4qMc?*OAOptl06Y#XdZ?m6!rLa?MOxY#e-Skla_<%mtJaXb?h;byi*oP~QXd(Ds#20orxGg8~6( zr@Rng6QJdDe}JmG@Bqb&j1#YZ1t{xK6%WI!L5W76-#gW`JJ-)~V0P>+Rp%Nh(P%+B zWr9dm<+_`gq~pWyR#`p|pM;QQrPXw^2m+lUT9d(;T-9{JTrz6W8-Mgezx1z zgIpSOFel(JTiw+D6<$2>WviI)`ED21f(ORy82&mQ81aAO2gQVyBjODpN&o-=07*qo IM6N<$f+v;VkN^Mx diff --git a/graphics/pokemon/pumpkaboo/super/back.png b/graphics/pokemon/pumpkaboo/super/back.png index f14291657eff9d422c2ea65b69849c1e3f02b425..85cc83e2c0cf730ee55dc22bc5779cb7dfafe145 100644 GIT binary patch delta 489 zcmV7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004@NklFHjk1~X_yw=mg9rBzLRg_Q zhiwBd@HYixk`Loc5|aWJKPY%E34{|<7Nmd@dqKbqfY$^7EC@(&gav_=1JObk%mRN+ z7$9T|Yy!gu=m-hn2c}^IT6tX{;hVtlDv(Vtatmp=1tzfNJqR?)*T7psnt_Q7YQ7X< zT%bx|A_oc$2FCzs1;*w8#7;rUi9N?TYzqBKdFlxuskx5ww5NcjKQ1@?TNV9qkBcd~*DArkdIC0vev!jnMhx zI-UN2(fSkn87_(!ZC3+`fBCs3ss$92?vJ;h6;d0RT-d9Z f;fwCUga3d(TN4$G@g6X100000NkvXXu0mjfMjYkI delta 561 zcmV-10?z%i1o{M!7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Ev!L_t(|ob8jbZi6roh5@yEj9{qLp|SAR zsZRFdocBVx7wZ;@mr1uu&Ku-mdNzhYiruwCPYOc$KmY#kY?9=^*6R-9`h6!w6hJBW zPZ2$Pmph07NIGBysDMhvB0?7hG63-lpm-eUl!^irvM!=se+a0G;2csCGF=t=EdZ3ecRItV0n9IM|b@LwZ&nq?9y;kV6WjlY`y_0k;D{81NMuBp-pm z9I|o*4%MojcN4I~*A*RMDk=33BF7m(^U${)lsN8C4aCj&wMDE3z4jja#hIr9TW?^S z?Q9H4_?iI}fBq+5xSAO>qk*zuc{{KY%W+C|=eMDnE>2oDZ8Zn#p`$4SN8Z2!aDKYn zOa{XaR#U>hvEh}E2{;zxh`=35ZJ%3gMhE5q?G`KHR_C1(xVeUOe=?VXxns*2!*;q_ zxy#smkcDQ)Pe#?Bu+6V$?bbdRCXn^UT#iR$PBVSDLyr20fYSn?K{dt$-ew8>*B_{FGitW#VF-It00000NkvXXu0mjfXI$(d diff --git a/graphics/pokemon/pyroar/icon.png b/graphics/pokemon/pyroar/icon.png index cd0b94401f9d5bba8e353d66b28b6847b960a580..e00595a15955b41156c947af7d7382c083a3c8b8 100644 GIT binary patch delta 419 zcmV;U0bKs81ndKl7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00047NklVhf+Ih(N-)HpW|z#UbHG;{*Vc(zCu z!XK3H?mbgsOaSU~w&a0zx@z6O0;nvaHE&pfvX2%{1SZjUXQiI!bOnqDlU17E2uoWD zRO(>^KnD?X6=);w&WqJCBB3csMe2W$RI`KuEIS1AD?&^61;`mD$|dT2V$<7r3}jW# zP4aXu{n;^TpMh=bZ!n_b7;ZA2J2_8vGmv2r=fu@O>gANf5UvI?{Goj|kkUUG$n*7o zYamB@?+oM#d=2CveqkVsel?J*KWql_${$t(*@CAt{g1qk_%na_0fvz%q`42KYQg{j N002ovPDHLkV1nh#!6pCz delta 481 zcmV<70UrMB1FHm(7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00B=)L_t(|oYj)Oa>6hSfc*w~qw+R%BU`hD z)nR~@cwhz%&MS53k&?mI&?A_^uK&U%o!W)FYO(H%B1g){*s}u0#JO}Df|xm_5;Co6 zL!oj*RWL?Se+mi(nn6hnTG(*(C$pXoK0zZI)a*{af?bIje>~L!rNht}d<%oJ779_2 zzXAMPMs$s=JkXBPSM9sHEAK~PHDs{Zl!e(Jlp0cr`6!E*OCy!)B7jzxUyGXif()>A z%k$-+?66Lw-KDKove#CP0Eenae7DtGzW21%=m9L33EZ0gbU;b$x=Ky?7LRaKHS8&k1lzhfx@?T@@!Dg|XVD znMPqW1sx{BP}E^2OweH_Ow?g2Ozb!nCW3z;Ow!>Y%)^gSn28@*m`6D0g_-L>fAZrS Xq3m0`$`o_K00000NkvXXu0mjf9zD)3 diff --git a/graphics/pokemon/relicanth/back.png b/graphics/pokemon/relicanth/back.png index cf4886a6b77dbdd67b83a1c6d0779ccc31d94627..678602343ae778bf2d80518731078f8ee9627e57 100644 GIT binary patch delta 540 zcmV+%0^|MZ1>^*f7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005gNkl`(zIC1G?3l7tt4*@JK#t_K?gkR0m~t{&aPk3$L8Lo^BJ*9}3b z)n@{F09*lt4UtX(_%#N=m4IsJeZ81~9Uxo)iny;ogUS^37i4guAn2|%my>@DfiE^b zhn1JN7F=7HQEz|%KLw<+{`Y|20@?*Km>WO@6Of;u+{04Y-LiuEF`Y079l+K14`Y9U zlKa0~A}_$-R_yEh+vp^8OK=BB{$rNdByb&pnwb1M$JhII@|RA6)vJc?mBC-5c+?0E e@WvZ&EFXJTCfdH##h?HH000O{MNUMnLSTZM#rgUG delta 673 zcmV;S0$%;(1nC8k7-Iwj00013M{Ml?000McNlirui02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Iq3L_t(|ob8jnYTHm0$K63tG}VZ7N$ER? zgFQrg2n%D=&!GgL!Nz@tLYBTj1InaQT8OEk!5|8k45k!9dxuUMVzOq;GxU61$+n~i z$dLbXuXTU-f4;6eod?}FJ^om2yRE>9{pog(>_r>!##-m$f5ojt62$g{0ub9LO<))X z@s$Dr#Oo&T0>YKE7y`6dcmNl0RRVD<00Cr@4sDw;yc2*h%1X8+2{MNMv;iG zre(ANqbPt#05MxPn&m+VfYS!MEfVxG}$5lSHb~Hl73BO)uP@Wf${eH{IUl0$}*i~ zOpHk%p$7+IFfZh`$!9!;joFxD5-2c`6pa{fjErfn!_qc|0%-ST%(QdUOe6yDG$3k(wzesyskes;H!MV9~Yb( zAeC)jAfFKk#xIBhIW+(~qAa-JECtP91!gc7fWx5ySRoe16r4{}P#RUBIi%qB$$Wn# zhz1pi8xB*j0(_{!1!o2Tz$9S%(b7K5;huI!@$LX$riK9nWd)DUB)mOPsg%mc zCi4BMhAs|pYDEbg_te8y7zAVL%94L=v0K5wRqL--R#?T9hhe6f>dJ);{b)^7) z6hLfYGRQ*F6Eq5_381@8<~lk8U=UEVm9&kBGF^2YLDwW`&b93|q$h#Bl40Nxhb}(} zXv(Pa2sSjxi2!Mg5A$u`=4^j%e^CRcl3X}j_rdi zm^y#kgdv4k!u8D0HPi=5up3PZX_d0UmT}K_MGp_YNl;5j71SfCn?MifRuK9GsNajb z91zM&n67wY{C^yIs|NHdIo~LdE>(fdt6*__db->KQ18UT>l^Jp1Hdvp@*#xo$)>oZ@b!-8hNX4VF~WTcs{D?igourk0nae9#Xn~gZm khqXZW$r~r(fBe$%0cE5anJXoQBLDyZ07*qoM6N<$f;+Jm5dZ)H delta 675 zcmV;U0$lx`1?vTn7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Iw5L_t(|oZXbcj-xOPhN1HUn4z43QqHs; zX|5AuxDUd;7eQZO-(T7|3ABWwk#-L&Z4QLSpa0(uay{=~E&nHApZqn@Zkh*NfIn^n zz30V&KVG*y{3h|@Z-1l>0Q{!+VuG4BJR-m$iK%TifeP<^e?*j1_w^dUyy>Hn+N~l0 z5u0=*Dqed)r~m|I@EU-E<0(I|uGb!Lq(Q|Cx-!wNfZdT4APOStsw~6G1vrAJS|F-& zta2CFaV83mcbT%N(DB$4d#g(#s&ifE5>VfVYumFxr{hi$(fzK@gbLR+2bD{|5HLxi zCi9Yu5ZhP4eB6u&coV*x%|8p$r|`D8_EnnFZ(ue9cCcRQ2shmKND{@aRN^I zdA#-x02Yw?rkXapIY2o9nXZY3!x9hy7~q_xmRtgIQaZCj1rUkXKy|hPBADBZ%x|;H z>|zp5kBc(Zm1dWjCN6=u2EYObyga4PfGvUn=`9yne?S+ZfU1`EPhCuacmg0@eTx5m{RVpx*^S-Czxe5jrM41_z*fePxr|KqOh9CeNrY5B<-iHf%KW$Yvl+xBHa^qC&s z<5R#L3)MG~zhi;wux#KCKxCxjJAaEH07q;;=`RDoDL4*a1J?=(=Nq{sbjbvI`PF|k zkmbVRPvE#lK#^CyB9;kiz@^}8D1lW1s$4>ZA$_d_oCSz7gyX@8MFL!FK*krqW0BD4 z8$bwgp$=gN2sj=O0mS%@fY}yod!-a zkOia+qHrb#NIRCV2rwYDRTMqnjCz0fr_sBl)@4t|Kxix^K-ALwSb!tDV^4qHsp9mHJj5(MYfa~-EAUgG0 z5$bZVbBNkF^FSnZfziu5Ai^Jjj4(l**8$VI@OnLYrRAmE)?hnFFaU0V2jqWddiLUY za@5N7`mS}5miE~9-3i3une~9ps}1T1yu6rD%Ae%H<)%8(_ZCXw^%qGtbrY++-MLdj zM(B%mO7f!^+1zlt41`SwmTR=@8j$Mj`*_NZgz}&QHk~WpX@?$J1A(T5ytBCkp^lPP z-PqKuiL*Hs0|GEUr?X*AWWsH!PeZ14i@(m5HVsm}YXGUZbM*uvdRO%Cj)FpHDt2RYalXUcH{Aj|GN8`d-U bkMD_J)$11CID@v&00000NkvXXu0mjf-I+K- delta 731 zcmV<10wn#(1)~O#7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00KuzL_t(|oaK}~ZreZ*g}DUMYe}sFBrrfN zl>?ANwE-+{Yd{P=>QboSULjRZ;WR4UDmSoC5d?vdG8f1hGW$b{W=Oeo;Q<6edY|6R z?mRIFUaG?68DM_>9I%VN{p>8%*Ci2DHU|0CXX+gscOk zbRG032XMqjf7Fn9Ih0Bnf-RcL0Rr`|f{)%HU(tffgaF-O+5*iU{yHEp>~<}H7`K4d z@gL{!bd?7IZ)ih3AhEzob$~ECj2*Dk+J%mJy=;LhZGq|u0FZcq6Ob9e-*fB?2natI zU>5L{0PFx}Vro*5tgej#eZwX10fw-Z&u@f{+4~2%f26C{-KOXl7KqCqJfcsJkH@1K zXFEtq&eYA}jz`(|hvPlB)3g=39!XUEzN7bd$9s`cXnQg60E^6< z0M4{`Z4!F`kiG+@kuEsv>1`7kENTbPz)wT(iDg57{d1oC#oZVwtO+QR3&a{>90<5y zd`++MM;LP^rpAV#3VGBL1Kgf>V#rrp{{T_6!W7Teauomo N002ovPDHLkV1ngdH~atq diff --git a/graphics/pokemon/sawsbuck/autumn/back.png b/graphics/pokemon/sawsbuck/autumn/back.png index 029ddf1d6f18d29dd1749d9875e00e816fee1e89..3d32c819b4b69f291dd0314e91f082d1c63ec279 100644 GIT binary patch delta 730 zcmV<00ww*02cZU#7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007zNkluByK{0$F6-{J^S>qc3mW1xGv3%|pbqia4=$8@W*Zk); z2O5B?Y6Lo(4t>*-VD$VX>kK`y37~%+2^!4xT~WU9YkfMqlO&)4Hhcu()0uFCz7V(; zm9fAy1(2Xe=Zp&>AaCMY2E0r@AaW$a=YwWaLo!+GT}{f#L5K_>+6V})rmE(|B?ovsl9pu%j(T+X;VpaD8KG157A@>&*L62CW4p7lOqaGz-^RN`Ne7ElKDX zfM;-=mheTbATpxltpe^1(6K^yA(H_Eu-CN#9G0Ie3(6~`)!P|F3qVQy;>G$G17#ZP z*Yan8o7eg$fV-asCI!bFa1+)*#PLcWPitU*2e1YRa9uADLk0-2zwt&e7!bg73!{O^ zfX5a_y%^vuP(0BeM=#HS{gI0plSIo2a6QwOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00OB=L_t(|oXwRzZrd;v$7yr)V#+#ztoQ(u z$reSD4x)I2ASVbQbnqbxcoAac6kZIqo0q`agP`cvwV85&UZL;tk@~RZdMziK|DPZK z?}IjDZgF;Dsp%ykbDQy5KnS}@BRYtW0G=6Rku+d2Fk{^ne`Ul{V@znKjL(C>=!h-4 zz)}RUvC9IXF?wuz5#}NwAmeIow{z3WYB?7R0+i7fSeT&eaumk|fDJ>p>4oVK%D5#% zzr#(`c<`rrqg$Gt0IDNrt!`^@0+==rZo)ypcc-;z^d%r)baml$*`DP=Cymgh$(zsF zkp~AT5Nt#ve^cd9Z^;D+=~P17`#^?+!K84f3D8R$$}ebgn}kAueOMX|{h%0H2od2p zVf%7UfRvJrL=$0#b;e=Q2~#(9&G_AYg0|?IT;jC?W+lT&*Hu*`Q12TbGdr+o9s9zo zs@mV(*VPujOU80r2;nkDU?XoJ5Exc%skqGycZX^xe;>DiZF4s21KOrAIe_{NfOX;; zpj*J+#-FQ-bT-DmYCE<(#A&y{g!IozQ@+>@+?3k^JXm1&_6r_@%QT{Py2&8m>Gz)m z5A74tHcOEZaP5G13BYs&#FeCcs32sadV6{QE>#wBs*f@uwVEo07G8>?P?9-7roPoZ zV4K+3e^}uWOaK9g4)6dcAr*pygIUsgtez0~k>HP#wgY3XST_mC0(6PLT49DWN27#E zJXXF?66>bmouvq92areTrKAHDI3QQvP$+4=cMLERc<2TMc9{SN)?j7ur)&_~3rVy~M(?-m*6k&-Mp-Y9MNY5I!$)6dRB3x$d)i$@w#lT_c z;~=&ta$m>Ay9Dg`2rfGywm2g%Z}?0$vS#_%oqYu44+}_LW)%=$`4^2LgP?0)~V yfGogSKsG;j5s)46CLlNZFst9_!xWHT)Q4|(s2>-6mTbQO0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L009rV?>;Q`-1^SsZJ+>uM!5D982 zcP$@JM0B5VpV<~Pl<^a}6r9o{g^BEnBkeY6m|OSKQDxG~1Bk))n+4b?y9S`38rIq5 zXJ1_p`-gRlI>NZe_QLen!Z=^NFyVhEVZu~KVbUMM1RX|U%(XB}KL%lb>Bl$q#Rd_5 SFMzZF0000&B*}k- zr+OM=8GR}5+C8uZrt^ycz*7{%0MY5IZUpy5eK{@DYqPQ;WxFP_0Bgb>aQnnu8O{KB zQMiVdP)%d_WE7e?xeGHnFV!A??#DWY=buZN5XqT0(ICk%hyYgi=(@XZk3dfNK)GO+9!D7rp*(a)>RdRbx- zqW5j?Lf|=GXSymSuXo7~OqktgJR|p<_`b3Xl8b%kW05;GBLK_k*kP$fve6TdEIcmP zFuhVG5ujWnUVlmMg9uEq1Yd`3gYf5|&yNvMMdaAn{viggzf6H=4w|n3lJb8)b}K?S zBLh_Z4j@EoX~cCsmCSm?Kr)qwwO(f5+KRXI6d1#KMd%N}?*{JHvHYGv-@lMz9CCk_U73A7xCX$1;6O(uvCo&a_WU?_nI1&}NU zV!n(jH?^_fM!J#43*8Q|Yn5;iIs>aGvF}3s5b(xT@V^0F55uQDq`Nt+88~|b`x>A( zK!B7M5JLwDu&;O+3^2fMVKfjkz-(dEvw_?N3X493R<3~EOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Lb}L_t(|oXwKEZrd;vhAD2|bbA1abWkeG}n zSqDgbG!jE!l5p95BzA-ZNjD^-n8UEj~pF2QVY~(pjWz+9hB*Lkc3*4e-mHMX?w(;ldmPV`gu#xNqK$07uth z{ppnm>(%|=BdklmMH>Nu)n^~zHhNd@%hCsQ9qKpb>b^cl4z<$}C_NqxDps$rP=6V7 kqIFj{S3gEl{>SwUKqDn|X*o9{00000NkvXX1g=70f{UL%8~^|S diff --git a/graphics/pokemon/sawsbuck/summer/icon.png b/graphics/pokemon/sawsbuck/summer/icon.png index e699823cd691476598d98400f98287cd97876be8..6d46101dd17c933d89d6b51b1c5003fffb05340c 100644 GIT binary patch delta 315 zcmcb@+{!#bf|G-pfq}s%pmol~YWsSDk|4j}|7hT>;-)D;HD5ek978-h-%h#Bb=ZN! zMR{UFf>Y#xH(*>2F+e}?y-*I z44*}w?6S{Y!?Txf-mrd$so6oRjE!3tR$t~hLY zXyv|M^uVLfo@WBDF?_9^lT*a*u)UhiWZItlr-T1(D*rjZ|9ma;k{Q1Q6s~&z6;g1u zkzsb}wom7pkaB_DmdK II;Vst0A*N^aR2}S delta 394 zcmV;50d@X`1JnbM7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008(&L_t(|oXwK4N(3*%ZJcn8f3YT%#%QhTw-#)V zSQw##L8HBC2A)!{fON>c{jh`Tt9$!j>(at-jeH9e8<2&GagmX;Fj0P#2vbHx7}@cc o!ZbRZh2fvV9Q1x+{QdXf|G-pfq}s%pmol~YWsSDk|4j}|7hT>;-)D;HD5hl978-h--bByH5>3K zpVZ_y`v3piJ7Ox=mKEIKo9xCSI%)0|-xbrJ_A@=G_B8mgGF~M;2%q3Dct8x2)x)tyhMYZg&~Bv6U)h zs~@>~qi53ur75=pz52Oglx-||yWd;9uJGtT+;`zxkE8bS8(J<0H|H^4EXit+JuM-n z8r_im%l2H1x$E4zLk$^{;fxHOYgn?)XZw3-4G!|)?PxvS?Uz+3ZLxTz2^*4B*Z2$9+^>wH4>$*GaCxJo0;OXk; Jvd$@?2>@?@l1Bgl delta 390 zcmV;10eSw01JDDI7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008t!L_t(|oYj)CZp0uAhIxWor%sV7MGbqT z!&8^=j8P{q$-v5ox+@mmWV+z8q`0T7bn zqu^(qSuhH5Cr7OT$2`c>XHXxx@Or$MkUbI0(KgiQ7HVG(e{LsGTjr%L^mZED?uCE1 z+HqVcq%tUV(Qk@x3?eoiXL_&_QJJn_N4!UQCjKzU=opAnqF}JD#>Z4F)B}~yrbju{Pg7!e}DZyU{Yz{zyuyP14B2!w47)Ih7)bTq|x37 kW?q2_J3dxm7=Db8D|k?@su_npq5uE@07*qoM6N<$f^qqrSO5S3 diff --git a/graphics/pokemon/sealeo/back.png b/graphics/pokemon/sealeo/back.png index 162838a2c8b929c5b54f8b2afad1db7aa8b51ceb..84a89788b3f7e684c0e027859d78932991012797 100644 GIT binary patch delta 413 zcmX@X@{DJLlmz(&|3?F76*o;`U| z|LA+)7tVS{y^hazo$Pvv6&zdK*MBZ())c?MB6g1@DKJ#&Ce68zopr E0M~QBn*aa+ delta 511 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C@CL_t(|obA%VYQjJe2H?}(PPz4YYdIN#1cn zb*Z`nfcx6M5aOjqbcLuDED}d?4s^t+p3V$_hG`BU62nsOe_GDX0DuPP<{lMWFjVtk z45xZ5XD~#yfV>1$0Ngqd4Uf6f0lCDn16hWYE8LO^ACdqV^d)9PX#`0yHO0Sz{)Q$z zltA#jrT}_qmXdNrfS-`q0Z2gC11$sO#se&-pc$Lv>m^wsa38{giBe{Z1?h(#I7}3- zyh{Y3x8otif0goA=#+qY9JuQ68w&Jn`i{yagk#R_uS5V%V6U9}!U8wo?bs(NdS;f$ z2lV)FREkgvpxAl+*M7%zZ5XiY(zg6#aRm4Uc&0Jj&g zV01RYf?EgLg}woxcXwY^E1d4QgY=U-aH;>QALCog5oy(cK!yMS002ovPDHLkV1jDN B*C7A^ diff --git a/graphics/pokemon/shellos/east_sea/back.png b/graphics/pokemon/shellos/east_sea/back.png index 0613c7a58a6294b863a40e01c99ce639ea55eb56..2cb650a28c567ed3ec4d7cc99f4fa2d9f2a1555b 100644 GIT binary patch delta 504 zcmV53`Gr;PJ#db-@Pp`x@tlhUpCq4!;CSUV}Takwr_mnZwDhj zpy-V!L{}`hC=hp?Nfm;7ba2fDfvFL2=|6Fduhd;GK?o6{f*4uxI1DuBw@pGoR3dV3_ z=o8))H0I6YA}#gC;4KT*`KR=972{RVBP|)OJPailw}8`CP;$=onV?3mfYXhj=1TdQ zfXF)sx)Wdxp9$2Ez3m{khFY`RaJzp9x{(i30AH%Rqi#~b^Gk785>hyCqT+7;k^=a; zf}7#YFX0gIkuUDm+aI*IbS)mF8t&O3$*X z00i&63R)eh#goDS@KGb_D4_H(suS*+%v?v;MjALeokhHDJ^c u;jsc*Nz+my3qJ9?z;_ltNZ=d)JbnNGbRa;1gC}nQ000041hEB>7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00GrWL_t(|obA&wYui8+2XGC-1pFsi#iO4I2D@e*Y)k zo#%b5f3QaS{@vP~>I=9-p*06466<#nB%T1^#N?BRAijt|e}>-y9vBduhu87>jSR!j z0I>_s0u*r&(gJ{62lxT5tDiv+l8nnhKo10oVF0zb%BW9Z3Lzb~abT1T;L%nmK=p+K zivuXC=?PFyf1eo;9V6B!fN7dr1}HdyqAMBTAHmkLARjV{<~J8{9OBWo+>oBygTl72 zT>UUaSMhbs*f)5u?#aGE&DF*<)o#O!)_sH5=W$mJVCyy*+p4o`{NKn3#evRRyZVM8 z&1}sjbSrJsW$o#BYD)%;?EPMJ;cg@W{Dul;-)D;HP<{{978-h-%h#6b=ZKz zb+*gF_7{Ku@1L7iB0KkMZjYn>my^N06XxXZ{ydkVRCF(s!rpKOmnG6k9(EcGn=RQ5 zj2O6Q%ro5ND4_q=;a0-FN%I)?{OeWwDcA8#W=6v4YYftYmh}pJ3}-kWDt7xGGj+d&K0`b?0RCE{O`Y)#-b(`cR3W&y^yF`7K#-@!wf}ubzr#y)ymX zIr*pGj-QlIe|1OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00AmVL_t(|oZXVaO2a@9hVur4kgEuN00q4Y zMM$BCVlN4J2=-li+CxYmsx9R3Q}NK_76gSJs!7#_95iEcNOm^h1L%L7kNszsncwsN zny7GVes=-Q2QDbpITzAZsy7TjETB>yu)MUOL{@{Lb$p@Le}izuSRxfI>3~_B6&`os zKA6U;;HZ0KqHv$);i?1lIU1*%7&F_Y^0C5tYWp7j#2u{lU9u5_E3LQTjR4=TTI(~p z4?gO=w<7NC@L!AFlK8>}<-i4`<~d6jsr0a95eHT&aAjSTpaJ4cO(Uf mpdZEknfY|r+Y$Hb-}M8I%d6WKin`PQ0000^;aIFg`5HtXZ>W z&HAC3i283&^28~5lG77_=23_;rzZqLIwL7W2?Xi?XNtk}vRraPBS0xZ_Qpa4YoLD= z8;1|ZnxH^8wCDyxs$#S)cjvf|ti$0}R#`S?h z^Y}--&mM)ame{S7Fm~;K2q2a9!l?na>zVroz@jtQCR1mBC~i*%=Dr=aae#kbo|ycB zq7BqRg7_9NK;3*k#{k&B*#X7YbC5vAH@x0@E2iI;WCS1>zute+pX}m)4-kCW1^2T* zjYqe^(F#2a&YCrA)~s2x{&fXS^T*sXb9O_eh7ha&r)$!_l>!GK8dTjck1dJI&Tu6<=x#oy_xGh;Uw?w-fphplQvG}ySz8| z=EHnLgwqQQYe3D>4(?Hg?;Hqlb8jX)>Pu7`shRuN7g-$oXU-hfPIZ58HUjnGL)z3_ zs}CX|&u|n`#nJXFSJOr%h}mntd4I9^banYQdA1f@|M3$RmIG}x`L0!G!~yEl=CJxA zCeQ{ye_B)DXU+PL Z>JOjO8F+Xhks|;A002ovPDHLkV1n!(pSl15 delta 911 zcmV;A191G62h|6V7-Iwj0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM?{!*(FQ&M00Q|*L_t(|ob8q|Z`wc<$Il3N>HxOr)DFJG zv{JHgFGN&XqF^~4&yY(8SlSYkxk}>Bv`W82*M5YG=@_b1p72-bcj-HmRKh;fwXJwU z47?xre|K2?j*wmL>hCPCso$#m7UK<4>sA8}K$lQxR01vxf4Y&&dU=`wt1&+9GM9tY zX@(>V4q^rz00b^(NV3@BTgahpe}vOuc3l|L)g$&94FgOd_V_#&MS$TJfMOpzV|5;1Y({Y4O+0OieOqKI zoyyG>EbIdI{gxnOsTN`BtZI>?zfWCZtMNhv#Xhkbk5f6hYmIoel;2D3ye3(ejsVn3 zm4A!8TlWQ@d6+q#nlOCl{_d%)Ue_|o)#R~{drsbYV*i%a4D>*A)08sAP z4>(dv$dyWyq%?}WquDnNquS+3X?mi%}OiBG>T)gCv-0rwpUz<0KgK2rI7Ij>F zZYSvOdJr1`)c*rOND!A!0*9ao;5{Ty4-LQ>^`I;7)m=VILeAsqED>AO9Z{*Tz13w) lA)B#3*ga}(@9*mWu3sd^+7ZP+E5ZN(002ovPDHLkV1g>~lh^P&`+^^uz_#-q3$% zK?ng#g!sqBZwT~R5GueCWMA>u%II1U5&*UE`nPf-YV{*_tx@IL<{~Dm`I}rhd)jkKT{IYN{0A_cq3{XGObSWtLapuo};P>9o zwiCq)=Kcf-`S*a8;y92>{bLKX3mbnwmPI%O!1LWmI{*{_O8`2j319OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00I0-L_t(|ob8mcZrd;rhN*#>I@mJ&06Inw zAQIV)!bw+E4&6asBfUTny_W$_)aowsL-k0?5-G_E(6v3okfHzc-G6rk3Hcv?7ty-^ zvAP2sxKpBRS*J`mCB6g1AcRe^$;f)W02IJ15Q%s#gd_I8e?>sx37?ycZ-j7ue(gL9 z0DvYU6cd4wSm1pEh@Yqn^L2)g%`N~~#!%uLj@3kNJk;;xVZR#yu>VcCO=bXEHT#!l z1X82(#GtGP>ZbV^OB@UU0Z>)-ZU9o_0DRzxz^#!ehLj6a-h}~Z^(O0~(*h2RK>!@9 zQjfDLpx`_Jf6&1M057r?p;Bs94?vXqIy_nD`u8|X8UkDM?wgiB#thp4FkO| zDU$yENnc#8oaVu-`UE&@M^Hs=L%2Uwaj!RkbVx{Je@3=Ww*hhhXsIpIDV4Ed<35H%kT&YZ}EfR!uNbCj{qaDg4lU6^I3o`Fkr$U z03iYcWDtPJIs}L;>uSD`Vjp7$W*e}VkbuPo$R0d^DWoPYB_7i^=Nf$@C?du5a{C4q*=F5v!jsqkMN6Zstn`za> zES}TX9i+YM)rEYb#3t$fe95HzS*nio>K<-s{Kljs~ zM-O2C9C3kU9zBJ-$3`L(CMqz(GnVNl$o~`C2arWDK=c#!|55vuyZ!*nw+#`E9X!75 P00000NkvXXu0mjfAU(yl delta 503 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Cr4L_t(|oXyn1YJ@Nl24E3N&Jn5Cby(QG z#xA2?d$12sNcUXDHBV6bB&E=&Y@(6sA2o+wb}k;~V=_scMA5y5cn*NR2o$*f7xV!j zu0f#oK_38Sg&^Qv&wh-9iVUOr7Sj^6q>oHf7RO-5FHP()x(rGp;tl2 zrL>`#tM|16E-&Tdy6C3-P^4M`QqF}}LY(J7`X$67FH=4M$d^EJ8vt1dwED0QC;&40 z-UrFk4_wFz!508R@BttWf@KpKed19<6GRB&W_eH)VNfHp`5GRGh-@E;>k?P6iws-M z#%@;%L^S?XfB9MgVKyBfd2G+-u|UTc8^%S*Q`5!9f5xYW@xGBO1u93?zFzp z-(~s0%ycpX5*N^Bd&zi6W5CP^o1+P|=5twsm|VCWG_u+NCwoH{;!qJpgM%9b$Wt6# t6sb4+AR6z1!7enu4hZPzKQQ+kzgR(WR+kDV&j0`b2>?k&PDHLkV1hNo$}#`| diff --git a/graphics/pokemon/silvally/back.png b/graphics/pokemon/silvally/back.png index 3994f8bf209196cfe33c18d39d80b85c5bb80094..94c3826cbd699e2a83c48e877e26a50125604a3e 100644 GIT binary patch delta 568 zcmV-80>}N%1%L&R7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005+NklXNtVMf2t7@439M0`aM#Qq2Y4Pt+Z5WqWxl;J4?4FNkzB}oyq3fOmPzVwz#jsX^?=<@?4@p z5xXfk0k{@<*oBG!>t#ux5pl5Dhbez{50DWUs=8n(u2A($06K+v6vx5>Ku5m&)aK7ZZdZToUCz^%S@B(s1` z2>d%s;Ck2&50L}}u+0&!bDWM;LeR0&qZR{-9CsL3=DmcIUL@Gne;S|!&OK}AVTDk#=cb>}P6F3{t{f$*PQniW^^SCe zg*J$?LF9_g1N8r?HPoEMETAOOQ%yn`lK|6qfNaaROYjF8Z5vSX5yRX70000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00HtzL_t(|oQ;&hZsQ;jhKX|ETGI3Z;!4T2 z6;Pj7#@h#QM!qMKv&TrRjq>&#u(4wdN#~Z#rw`@_L&)!ny*vRnJN6h@W!V$SCd(d6 zP=ONu@lb(8ktSA-*ghk+>Iv~G9uc3LY+LbTAya_(!<4O(e=p?Br6iQEkXYH2UhaSe zVF%c;H-M3l3xz}A=z(w_%n=!rqoRlt@1vq<;>4tAnjkT@nJd1Ub2uy#@0`mdK-N>& z0pS{?ow}-o8Gu}uRz_0-j>N^fd7z7D`v|g~dlS66DM{^tI zH4adthr>t!({Uw$wZE^49Q>Cf{$5n{3#R@)pY|pS^f#)kntgWDF@gK?FsCLv-3}4O z5EBBY{q3-vV>}7yn#=i+Cj|ht(G6b!P9P`Azi%1p6ag4UjRL4>p_cs!QGg-< zd7nl6y>~lkT^8{h>9VXjB!SjGOrVp%TDYgHPA);!(GhtH5Dq{>$APsfv5gEKl#BsF gK@XJu7z;Mm4>rc<&ZO-;-v9sr07*qoM6N<$g5FgZ3IG5A diff --git a/graphics/pokemon/silvally/front.png b/graphics/pokemon/silvally/front.png index a0caf35b63e594f523bbb930b7e5390fc6e5edcd..01d9f14a9c39fbce7b507806004f79965f0d7ac8 100644 GIT binary patch delta 766 zcmVv#muEp6L@<6BQCSI@C-I8nd zJP!j*J*-daAw5x1kLZbPVR;0M%e@AT$QO464ajRf98~d0z8qr2T*ZGa z0P+m@qkWdl8eoWn@^F-tz#5GlJW(5f@y4l&164@tIXA*U8x%mEg@KDiQ>TPg5wD*z zcmP%hfVczk+ceWE2CyXlR)vEAfQ*!(0&M?7Q2n}Y9^E+cC;+=_XVVoRgdSkEVO-|< ziV(uP4bUsa^DK)3^w9-`cSo-Pk_dl*1#(RSk?PwSrgceSIdDw?dH)XW60ryfWWx|I z*l$9Be(nL5b%{co=+@n;$5;KlbO`Ih`C50dVYAr+^xBN=USb9y6BNPU`Yu7&GWiT} z}lwUD5;?#8XTG2<9dM05$`NP8Jd%CD8K0l*4-wc?3v=_}AyVTC0D&Z5#6) z0GF^HvBK*M(&*39Oz(83I5E0fePbr~t8?09j>C z|M`3Z-{pV{0NYzO&|L+vT@rNZRDDTu%%a+l83+LuLVq42#8m_V0u?YqvhWUwJ3Zz4 zTLGoE@V4k(S)9kHbdWwZ5uy5EhjGEE}(0^b=La-0r1SA8v(URQsg_EO; z;CvT&bRxDi!!Uj(NT0yAdu;x+Fhl_J1Awpre9T#17jSg8K4A_q4{f>ZI0R$(YyBrw zis+|FQ2mZ>_WHiFRQuO}scS)YeW35{kRWh-$Frj|00+hXyLqr&;UeFdh2RYF7P|UUGLg#K_%Ao)9OS9eonp>-q;$^z>(q$R76= wd*1xS`kv(|+quLw;5*PY`|q;a(=;ak2TK?zP|cZ%`~Uy|07*qoM6N<$g6t?~ivR!s delta 887 zcmV--1Bm>^2E7N67-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00QAjL_t(|oQ0FWYuiu|$5lKClcnx|5D^U7 zl0N^)u5;Zz79xpGqg-~~IA1?)O#pGovDWxQe=MMINU@{vo`Wt#ra-t{2 zau2-R_oMIKy*nF5CQ7ffnN++gSsQ`U8*6*>=hg-TMxR?7e+(GBReG)g1F-+26R=r# zoc(;g3o7<<^M0}jI$a%uT=r)Oz()ZtJHGTpY4?xzpG62Ms86-Q7;RodO=FdXpW#+v!=I zW|CsFUm9@Gqp0;N2~cpR+SI1F?6HbXr~6#v_wlU`e7hvkQD^hi;cRMkwP*QwqR!ri z3a|vw-_1Nh^c<+z04%EVFuUDJJv|y990H&kx518Qf4A?-9YYVV+5#Jzp3_$&98YQW z-PCTp3bhE}GK%VvSOXkJKtmn4ehDQ!4L(1UT*{lt{Cqb1n*!_zXbN8lsxg^!L`+q%)w&x< z0Qcqf_dB7>3ZP{VNav(;5k-pd2xxdH1;D~g-HxYw79Vm`G@Who=xyc<@DKg>-AVSYQe+m~OGKc{(N`T^WiLMYMpKD*PoL0cX z@WU`%a3iU`r8QApqA`j9Q$0kSB&(!LG>S^^qe*WNr!fdpbB>g*@_uZftTaG~l}7}{M!8ztPJe^`4^{VAi24Df>;M1& N2>?k&PDHLkV1jwygpmLM diff --git a/graphics/pokemon/sirfetchd/front.png b/graphics/pokemon/sirfetchd/front.png index a7ac2a974a3a32186422085a782c0260a5798856..3ae79de6e60402d54fc9dfa9ae834eae100b47e2 100644 GIT binary patch delta 837 zcmV-L1G@Z(2#W`h7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0008|Nklz3jm5QGD10)!;K|J!a=a|t+Z#^|p-+m7*!S|8OHh|}~*7-K%t zRk@w5d?)`-Z@<&e^LPILd;ORF|A+O?eO^Cm-Lklk_0aON$f>`zj|re2fTo{s5LADg z0nPtCfUf{|>hA#5g7zfA*bq2)sn&4Eb^6VtWn!}rb5JadBzUYfUkis1C z?|MlHZb^?VrL-u0-43F``ind3_bEE!)O4?(0F`z`>$LLsa+&L)6mh^(ScLJtTkhf&HmS58CU0J7GwxdbSNGyoP2@a=f^;PsIK z?%dG;#8?5=vJSEDBT!&??+U=xbx(w}E<(sMkT7(C0PnE6Yz3fqm5wj~;%wspK>l1G zl{^9U#`I(X1+-el*aNs2*T;Vpq93QO97{Tj1t6?LlyR7O0DIMQezv}R93m}mwqV4p zcvvw*A6c-hX9ye8)V=^jBIFbrq_M^UFgelueGTXPaD@xGscDeZPtrE%Mf{JzTe%7` z15lJ_eU)*I!>klrZS2AasjZLjQswvx+uW06XPfsLdfT@6_r`P8JFmGL_ldTl!N znp>ig<7JVrqqHF3=Jqk;g@@k&MbA`txlbq<+~SV?+#w%9K3u#bTzvKil+Z2K!p(5* P00000NkvXXu0mjfHJXr& delta 962 zcmV;z13mnU2Z#ue7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00S&ZL_t(|oW+yBPuoBg$BpDjsaTqZB^ezS z*odcW=juTONd%P=r%SiwT-4R%7`qfaL`wOw#9L67ct)s_3sWj}K+3{anSTH!6Q~_5 zx$n*f8k&Tu>Kp7R-_L#Dk9(G+sWF$Bt_eM}_>8WQnZPUMe;ETcJKG?s{&$1tW{~~2 z29=pD#I|De&8!ymdW_bD!OLlYPHWs?Ze?-?N)g}&(|`s7bzVVoG9c-cQD$;Lom>Q? zby^ibW-<_?b%T)^fQ}__0|X`(QK1+W0c0lu*aW5T>6XOrV-oOok5a?huj5ZSi*3Ak z3REphcdZ7ue~?uK?9WeI*xlQ;(4{SfgZK-uz_Ru!-R8n;HP?1}|WGHycPVif}n4fJkNuMe__ zgqGqKe@Cinhbg3Ho|XOL9p5INgVrM8Xek0(M0P%#sltqGt&3STb!_p7yv^}Q2T+5!T6UkazL z3*;Us0mvQ)OpVC00A%;nebA*6kpv(U86Rn}afMU3m*-tC0>X;Y-SD;_K8$m39B>}3 zRK8vRJfJWFX@2P45NS%tcosjv>#L~%L4%9YkKt4c kWS}$zm;r=&X2S)#6y$Act@MUN&dglbp)l(w@34RHSOmEOK+OKemN6kf&aSvqw{=ROB~(Lh1T?V( zIYc+;+GUX7+KmZb6=G0G3<;7S;v9bXk83^qMmOIQ&=*v<=QSpExCh091F-~<7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C7=L_t(|ob8gaZi6rohE0_R;D9X2(p;qO zXPy(6I*aHgv2l7FydeV=^xot1jz5l@~FNBhMaKD+y1 zSrqwczl-HdwXpjOVV_L| z7>`QFKQN<7r@0RZ;ULIa<55J+mD5Owg7u5zD<>%t8N&U=y*q1$PkaVzAFTEFWkAps_skpgJ^e)jFgwy dFFf+!`39@Zi(f5c3gQ3&002ovPDHLkV1fo((iH#z diff --git a/graphics/pokemon/spheal/back.png b/graphics/pokemon/spheal/back.png index e859b980fd92e846f88df4fd4026307cd008b777..5c23636edef66c297f717948d6d993bcde060205 100644 GIT binary patch delta 319 zcmcb~+{rvaf|G-pfq`M}_Qp38tL^IrN`m}?|D%DkikqeY)%@^uaSVxQeLLy2P_qJ$ zYj2Cs)BpB6_V8vHTyPh^^9&!jYK!G+ItwoZnu zcA8t-0xZhdA`T08J8CZ2U~#zTdiaMXuVThyK~i!IT75e8aR~x?sz>VYb6hg}@XD?8 z^InH!iBFjdpJcgf;*>cLrOR-fx^l9nN8~jDB02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008|-L_t(|obAvt5`sVs1yF6MT|h4&9DoTI z(2W+BjOk^@gLn!@kKmrtEDO596$=Xs`2`H*k+7Le#*F!Krs_jIfj2_A_bCF*f?w)# z#_bg%LJ=R1H@r)Jw5ADj2}Q205@+&b}$2t^CXn#BMA!DSH=T9Vqz^r185q0>6KM;9cJ`}OsQ0suaf zBO=hg9yPWJq+4`xEuI|2MQoGbvW?w0^KhzGE`uT!K3 zl`}QZ=m1dXa&p5QGBr^>)#G#n3@IofG@%iQVqe3M1pnRX)k6p9%h}r?SUVnre8T=0+8K13P5)c6@X1IHJIiJNw{sU8M4l=1YZ4(eo2TI3rSae@Q>Sn{91ei07w!%S&mBW00000NkvXXu0mjf D!ip9t delta 707 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 MNkvXX1g=70g5NFq2mk;8 diff --git a/graphics/pokemon/togetic/back.png b/graphics/pokemon/togetic/back.png index 755fcf5950429d8772919e69a78e35c2122c63f3..76312f9b82573b9f5f4f4b69fda3c5553ae36df2 100644 GIT binary patch delta 472 zcmV;}0Vn?I1fc|w7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004yNklG^5!}dl4apdKAVuxvp>grvMK1-k%`? zARrFR1b}mq02I<5z-hp&d_YJ5XL=d{4I6cO?}S`7uBHsJNODI5VDkZ|14-(b3>JS7 zXPXr%a@Ils)Qvkqqh|q1$U15Dd=eC}(9=l>XOMK#=}CgRPZc0;2)Yu0Lx7#cq~EDU z8~`FAq+!-?0Ce)_fP4*qAHcVi8v<)Uo606&>bZ*qPI^=oQVV(^^Z@v(lGMhY38Mk) z7{;*1=Q_klm=aKWO^}I0y!wy@!R~*>B7t=YNPe{Ir1zrqW&RtFQlB!u4vqb;fG_}( z*$nV6XWv@rx102qqsQti7W#oSfamIM(l`=?`H30>(|$q>xR_R>cB9w?R>c8~}{b5K3-0{tiR=VXj1rXo0~X z|KAN66?^qwlKF2^yJVluSe37r!WTdnMtcX`>2t7v8+ib1oaQ(FD1HDryA(ixwl+)v O0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00E9kL_t(|oaK~lZo?o9hOu&ipu#;e0S7>M z2Z)OAf0db!q*-v1-_uZ4srAF_*I=X6|6Tea4)j0((ahiT4S=fxyIunsakf?F8i*tV zpxGZFA`4Iw0RCUklXH&aC<2ypG(>?)8WBL$MDG$uTm--re|!0h@CsPb^5&4Q0AK(y zH31ar9ffg%Tdi_3Mc<^dps32%Y*9stV5-vgL#0cG&B9s#jq-~b3m&49T8 z_9osf?iQd0J;g+=1yoOz2&IoNWJEI9TgDU z+4*!2sL9o{Dw(4EM7ni9k41Wk`SB`5b+Ukc50&!MGnk|9{TOHf%G=tX9@GX0pa{@m j?7k%ckAOIse|7x;zh$ea(f+#}00000NkvXXu0mjfD{|)v diff --git a/graphics/pokemon/tornadus/therian/icon.png b/graphics/pokemon/tornadus/therian/icon.png index dd6db6b5c04ac4ab1ce991b9a293abcd71ef6977..fea79288d249339e894faa064f1e41b2deb6215d 100644 GIT binary patch delta 406 zcmV;H0crk+1>XaZ7zqdi0000?P=%b4dp~~=bW%=J0RR90|NsC0|NsC0|NsC0z)*`r z0003_NklpgDV+e)Lg`F!?m}dp;9*Sdj_uF7XunQs9BYff`5NV zhTfFA#*|^8K3x>@XidBFGe)?l227~EH`aYyVFOp9Yt(Xj4;% z$9-ZW^3}xAS}a1HQ=qZ3Dl&&K#G2L3!oh&GV%?Le-Fg@}37%g<;{lyV7#eDNOU9(G zid&8jB^MBDV!YQfQaKmnPm5yLi_?E$@zJsDlcV_4cGPFvyZ%MJ-uVEKnI9*B%=|b4 zWah^SAPYZE09pC517zbz2FS*b1dz;+4Iqgh10YMpg&$=AWVz(dj}S;?1BV5W7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0004WQchCENtuyBPWVjDpU?QJZr z3xp?k?SYz;0O8dcqrzJ0P3qH8JcmEJSQmCN)-8bFi?GvqQF@LVQo(H_a)q0cv zU@1-|t&e`3RHRhCKdD~M3srFPs{jB1 M07*qoM6N<$f;PxnZrb%|xdNox^S0X*t?ouCMYftYhjs{}!yv_K=Lunu^2Idcf~1>t`H zJVj&Q=ZCfN901a)+S{WW72C%e}#~3sNO9hOJ zAb>^nVBwE5=ZV1PT^kxz0p$dQ81L*P6z@3HD&GBw1IUj>~O=I^Km2S=~s3hku zpZpPu+Qz|KkYAsY(Q zu=%{EPZI*FS~D7;-s$lA)M8vKaDR|=P}o*Q+ecoUDM!(TJiqglvV_^nHSg)PiVwN5xL)U!wr1%842x nPYjHN1At5}l=02~KJ)km4s$p@5P;Dc00000NkvXXu0mjfW5F{t delta 756 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Li0L_t(|ob8mqi`y_1$1}#f9BUWo)89LY%YW+gaxiwo(s_cXG{oR z8)i_9dGE7rgU!1Wc!1glD9?#@lnzkEUxCb?^7Gd<1VnZAx(wjF0z9bgMIbqQpeKNe zlaml9z#cIfe};fTk)u6Ql0k^#1V~QT!~lH`vqy5%>tm_)-iH=3##cF1qqN=wL5+w? zcBd{1cqo5|Yqhv<10Z&d2Jr_P zC1f@3*2nN(5wjlxoO7CPrsm;PnG{Xc0$r6sAqN&0OCgnG%_9n z;u~XZ24X=e)N!pEAW>(jx;6r)?KTUkLbaHxBGrA-XV){xbpRlMN~9)>2Xf|!2e-dD zy9EP;f7Iu+kpw)_7dgP}I{+0qU4&sCL5x86Djg6wK-<28Gy;)DZ+_wBX6O8}>002ov22Mn-LSTZnRYmXs diff --git a/graphics/pokemon/unfezant/icon.png b/graphics/pokemon/unfezant/icon.png index 8b61d1bfba1bb4a21b9ba9bdedea73de74eaf50d..785bd89a9b4c4a0f4394f951285fad83c605640c 100644 GIT binary patch delta 323 zcmcb_+{-*cf|G-pfq}s%pmol~YWsSDk|4j}|7hT>;-)D;HGe!^978-h-%j!5Yc}9< z%@)>F6#Db~{x-Q5iAODZw|rg8zS!HieAyd!ey7X>HT_hN1y6KXc9jNjuxL(BcH(L% z+9)g(b-<}4&2eIbrM6JtB8Kym&ua1nGGEzwCH2xPrUK>#_1AWt;9!xT9^H^O?YoCL zFV_p(YQLz4oo9`0#2K=?igH*N{9PaY%6QwH&Wq;~96rriq&U@sb60}7x?;~l(=%H) zDrG;PJR!a`NTKHM4UHX3ia#meS*XdRw2n}Dif|5us43;DHiZZnGvgS z#hj-$MOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L008z$L_t(|oYj&sP6IIzMSX+Oq)TOaFOW;P z&K`&DB4}dKOp#NB>(FouyrW35C^9%3F&SG_6bRh;>HB+ZJ?H+?l5P(vx1c-_G@;^s z*_#mT=P4yJ;ISkU(*u--iAt8N;OQ{sBBc9zRhW@lVPd_*2m_}m mjW8^oFan)08dt_Y_u~^g?xPf{Y7GDY0000#Fw!qB91Uu{Pk32YoUX}v6eY5`vfNO_K- z7zB+NaL^G{O(m8I;X)U*TJiDK2jfWqwLZm8LURJ)`X(4`gzm)Pw;R}U0z~RQ;<|tG zrz8+RC{bSp%IeE;)nk8IV5?SsPYp&~w4Aag2n~1bw6LhfZhE0o7p$!7YD1{{q zr$RvBE=eic$Z|ZGDsWoRu}QysVI!=>o($EE(Bxi|V^ORK_C2uJzlR?@B)FeBBl*}u zkEhCfeZ&9PZ1sG|d&n7AOa}zJt37{VGDb1RWKJ$2g8O-N0ba@L{g7nlk|o-4z8`|h z2^45($Ov{HuB}3bL+=tjK|ElBbYZI=2{K+A;E^D4m_8EZhzNKjh=v5c6C_r!UV4H^ ztZ>ep>B4+TvcbA!2~vYy-W)TM#fw$x36dq$(u-i40Uev3tsG0%58#3tyU`EL2B`o5 N002ovPDHLkV1lwf!X5ws delta 488 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CA>L_t(|oXwL>PQx$|g?)pOFW`zCAiY7k zjS-td(3dCk6txdQ0XOhA?XEJpwycpHhMe-RKV1NvbUFek*(3|lG3 zj62R}pz*!X#h|w95x5E$)lqNc1o+{zZq+KhTIZN=w4MN?Iy+*!E<(kGVztA# zK8s4f7NJSZWvyC90OmM*3Z7nItm%umX&wPZ7H17h1K90{pK!WCuA#InB54x%NKtOMF9GAGBH4Pet4Ls;F_|kIyQv;X)Nd51O?EXW7S2g z3n&gK-U6UX+%NJb0OvBS+eqO$m*u-A_9$K3?xG5bAaB;m4?=amjDf3N%kLC{%shZzxx#xQd+o7#Vz@%`QJ0(@!L|DBWRE{o{spYGB=Sp#TJ`WXQ_ z4_B+`AHAl??jW!P5%6-5?&$Z_z};UGr@;Nc*9G?+Y_+d+;Ps9y&OM_bL~a*%;H z=qb5_4BW#QbC40h0`4Fqhg!S{rXJwh^lgo`L3{v-9UG)GrK-sQ0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C1;L_t(|oXwL>YQr!Ph35u?E}&2!z_~$s zoKkv$KrWC_sCTVJz&S|3cd@e)hOw${A`DWMq_U)zZcE?B=+m1K^J9QNlluV_pqfwU zKr67(ge?lU3PAGia1_M~mr82LN zB1GIVwm|VvzkG%0cTU`hdL4l6Xw^yK6#zSZ^d7`l`;tnL0C0UFN$%TNv7<&bl-8$7 zh`NnU0$WJ&oB&+XVk?>mtkP;~)24ZZE=h6mKrV#;FF)aYgY4k)vYb2W44^huUaB*7 zb^Xps#`DF3cVie69S_3aVjIEE7?lDNmxrf$3U;WvZiFfB&!8D&%FJUyw`A0f$?78U z6Y+HfuH*Ns@+ksq3+m-20i!L-W=L}!tdz;@eFw0V`|JmCeVGB<+s@_=Tw)5Y`|+)9 b@S8pXJ38$wI&vi400000NkvXXu0mjfsEW`k diff --git a/graphics/pokemon/vivillon/fancy/icon.png b/graphics/pokemon/vivillon/fancy/icon.png index 22fe6f1a0161bc2d18082de80cca10bfcddb8a3f..10d9a2e9b246969bada468eb7c8083bf5de23682 100644 GIT binary patch delta 435 zcmV;k0ZjhK1pEV#7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004NNkl+7AqeG=?tBn&9;^X*J3;0REl4ls4 zLXa5)1{#7OONnDcXejaE@!0iXD8UC*ILK4%K_DD@g2D$X9%Ar4t}#&vNb!mzE-!yR zLIP3>aS(ue*)lxF+^4`&y||wmkQh_Ga!*i9PJPEjiOioJfdVH^aTK7$d7XU@;v6?Q z6JVC-Z78iWn=VOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C=BL_t(|oXwLvZo)tihW7>|Utm#u0Mn;% z8fc*iD5=aPh@eV`a6>o+N|nD#?_Gdvq zfM6iZ35ZF-lvRNg`ns;X1RpS90K@({`y2vbFw*B5g$tk_e>MOBy4vQh*BAj&SHS$S z5irI1t2oTYCgUOqT98iG$ybVeA%h?gN23602bfiRI~G8`LB6(tGJX|DD+`ngG2gy8pi*IUU$`E9RhF?+ zArVBy%KJemk7h1VxyqEUfHt_`v>)Hv#(s+r>j~j~5HGp-IsgCw07*qoM6N<$f>aFH Ar2qf` diff --git a/graphics/pokemon/vivillon/garden/icon.png b/graphics/pokemon/vivillon/garden/icon.png index 03032ba4d85b8862e5c5169d01c1a55fca7fd1f2..868f8c7fe31af20ecc5bb0ed5ec1290d0d5a6d60 100644 GIT binary patch delta 409 zcmV;K0cQTF1mXjb7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003|NklO0# zDju9FDa3OzYnycLg%qV&JBR9pP=C#xYq4p!Xq#}ZhhIE&aKCdR`LTsHepSZt3;&N% zRDbCAP!|cq1F9pp4I~JXF*qleCyH$rû}r?0000U$7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00B%%L_t(|oXwLlQp7L}MSTN}FW?<=fN+DQ zQA&~~p@VI9D7n&JilKLK3L3>MPLW2&yGvplhL%B%C(mDBBTEtD&%*xzR)AfC=m zjw+aKxOQWfkOKh%0GmtpCF})&Bbx$nxBv(s*dQ%N;5}OCe^!BDrHq|A#3kcO$_;e4 z`}!;8_^wDz__6}lwAH4&M_hn>{pbg*V%5H+vh9*8zAp@QZ5=!IR98f4e@DXZu8xl+ zxEOGs065U*F?t4povo|WM+*piVsX-lJV5;a2ougXh>g$N3S*oz0JCfIR=uls=W{g~ zr(KZ1xQvOgaKUg3^$M!iIhz8)Q{icy0-HwbQA}}v%uz~dqXPW3Bt0gp3#492?IZA7 z-E7O}2$&1%heW|67v+OVJsLK{Q_`XLP?|RTL403kfZteiu7Cri;JhE-o=yA~pU*$p U*CwEZZU6uP07*qoM6N<$f`b{!9RL6T diff --git a/graphics/pokemon/vivillon/jungle/icon.png b/graphics/pokemon/vivillon/jungle/icon.png index 8d83dd4291218cfd3d5965b3cadd85dc832f3c7b..1a3249596c47875e141358689a23f8a7a28812ba 100644 GIT binary patch delta 396 zcmV;70dxMF1l9wP7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003+NklqPitHW5Nnyn`aE@VQ3OPDAglC$IS*0iEcAT$gVA{@rtruzx4mLTJ8_|8G-|} zydXX~afitWPRh!~EJUk#e$Q3V5$<^ZCnsZ-RZwqYGAh_(sk+ex)BxyO?VYSA+(BRg zBH-&FG^%NIfzClmYQX2$07?q7)=fSi50>a=ln{kjy>&Qt2QW qpb6YTGKVUj1WONaZ8=-HmaGq5w;jEk4OKJ%0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00BQqL_t(|oXwNLQo|q+hIxaXyZ{~Z0O=dl zi|6{}(Mykon)DieD0(!zVrvNKcy-(h!^girv&*8?pN0GYK~cy%5*35uRYftRdh+MMiu^5qv3v|o^#ag?Ne-d)WUDIq%2F8A+#EXWW zVKU$Wy8%aw#gv=#>j=E`*<zYmcd`c2pbcD(G>6B~+ z?#QWO^ppXvV;9dhj|==Tc=f){4`S0afwO{S+hFj;=o0i9dRl=D`hM3HkI&p7hqCyes+@bm)GIkZrXnpV5+=ees5fRv zPvI6ZKY!@StzX*~fh?hMGBH6=aZw5hXn!$S+ z1W|`XUPJ2yAwY6Ac$b18X_1$w6J!M-vrdo|p<*_JAR7jBZ97|QZ4p1@r5X`-n(6WS P00000NkvXXu0mjfgN(=9 delta 484 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00B}-L_t(|oXwLva>F1HhPlBGr5ilf0hGc` z(l|%(wM1i&JJU#Klbk{{D`cw>4I69+0m-DzWE%}1`(Sr}G4^LhKY(FimJ<-040F*7 zCgZQ|kOky`0RvF$XY|tyz^U0Q_?6`r;g`b|sc_n^d8$(Adj5c1&2G5196MMO8@= zhs0dbt5X7Ck88y-0%s;Oigaim0VOH!J}ft2|KI$Ea|Jm~d0Rwk$^cBZ$y+6RK0dxn zl3_l27Z}2tc2G6S-$EThWvy4LSOBVf;d$AD(@onBY>xWTSMJ3#haCRxFC5z;kuIRP zppX$zE8chICIaUQ?E1F^46Y~-I?d5I-5-(;iJ;Un`$4EHGvGd4>v9j+Lkb@H_%=57 an|%WN`s1Cx1a|ZQ0000lLSDyU zg3vq$I@l3d3njJ%;X*eQOZeFJ!4M%CuC(n_>?D*?E6m;m!6I}#nWZlY7B3ulpo)Q`=r z@l;vIH~c?VG5jH(A}6z;gG3IsjU-rlz`&MwE5?HO0qv(5Jo^v2ri}mq N002ovPDHLkV1g53#LfT! delta 490 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CG@L_t(|oXwLvZo@DPhIIo%7f?_gK)ykW z7+rddb}$z6(`AP6#eNX}#h@Zf<~RKP$zkad#Ul3H{v%0tko0#{3X6+LI z-fz-U*_X%bd^rc{hT|xKZWwbJ|oA}K>0aWeV0o~;M1& diff --git a/graphics/pokemon/vivillon/monsoon/icon.png b/graphics/pokemon/vivillon/monsoon/icon.png index 6430f1f1b7a9fad31ec8da751dc1b3d151fe9dbf..2eb6221ef4cb427ef2d392c005b7cbcd329607cc 100644 GIT binary patch delta 420 zcmV;V0bBl}1nmQm7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00048Nkl1i?QeI$q z34+fU2rv+srzy4t;X;X9!6WLy5TO`OxcW2MgFv|U1i>3loN(!J)kGr*AL4lfg@1oe z0=!nUL8Fy8(&42HDPSm!XAUymcdOPBgn89xG4q3|&=HuRvUlY#W%pxf(iupN{NkAq z*rhNP67`r(6}Tk$5PtWNJ1I?~pUDSPlr<)#fl6<0XH_Vos654WIu<6?*m8?}L*`B}>qKPIsxpR(Vw5 z0wW<%1fTQSDy%0c1s5S41YrfeN)f&s#D@&(^Wz{$w&r$_>Du7iL1trNBe#R>v&}v4 zQp+73O*I^n#|nwz$1ODn$^1o}5R%x7sx${#WoQnv@PLLb-&T$#=M4w-837QuRyIEX O0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00BlxL_t(|oXwLxa>O7Eg>?fBTcyHd(xk$L zd;17`r*yf*=4`Mj;znk%YborH4J4B`6Ez+_o&-`N`Onh0Yp3mSbDt`LXktjeis01f9(VJMz)MrsRpg;het}h zXwp%CKHCRiM}u=_QnCScUc6IJ(|)SAWQ}>*0f;w_ygg;dLi%8-^cSf$uczE3VB=K@ z@JNkOlmUk|L|Zm3A(W!TRReV({QpQ3u3r$JrM4x~uNA;`8EdPu4BhR!7n!+B5}da& zQ9rh67l#adYP^I3%;K&G$6% z2;wndpdpB|OmS=oZJf#_zlaGHA zkWyl^V}Wp55YIWrl!hJ=aB@9!z~HF|C?+p`$DCP#B?bZ$yzr7B1es!L5)uLz1xdBm zQtEh2x=T`mG_pvk-mStKX#{0j{<{}0Z>6SIe1){2pvF z1^wFG9_=f+-F1kOg&yaVVvAusFs8$g-DF~Llb1|k+J>&kKy8tEo{y#Yxaf*%h zbN#2e%mgYPnU8&sLl2$eSl(Mjo>ZYHQM!Ye!8qOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C-AL_t(|oXwN5PQx$|hW!Soynrk60O1YF zV#G$4MwF#Yl&y?`rCktem(H-1XGn37DlS)gQntqP~W1q>K~C=S(!kO1dleJ)Yj0Lq&Ne*i!xSrv~PAt1^m#8H#L zH0PPzM#5Aad0q#GA{u>_Y~DHYQba~WC)iE0VNYNKyyZuliBlsAX@Eh08b6v>DD~Hv zPv>pNg#2lac7Ge3-Cd5`Au;Xei|2(kwGcaf#1?3&WVNt|RwE!wVwc0*0QUc*-mvQ+ zy&|_QqM>pCf2iu#ZI!Bcvi};9VtZAmK+&uTd!eXrVPrtmE6ducV*~JP_i$;}qF0k7 zDOlC|C*OFUC)J<ip7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004BNklbC)}WC(*coO07=u!n(idmBt<6QPeWCf#xZS`hk}buEAV zX+^x>rW$MUMZHrVqd!BSqVRpjfNJv)FN0|+cI72fybKH=5UpB7n4(WjYOPE`oqx@{ zq{VcvMYFF8FQioU9hv0lC8`vu`A79a7({Ar;M_0*M68T#uoOOcuzvEn3e&Ny@r<%x z-}L{rTfv9*9@?OOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CA>L_t(|oXwL>YQr!Pg>{2LIe(cC5hZ*nHt;6N86)dd^0(9}t4{j_vjIvb-;@69lyF=Kxg^aEH1Hk^Ri zWSNgDnCyH#n#_;`1`I%%yZas%psMHdh&BZmPg?u}PD%2KQ3&hwlp;#G8 z=QN-ww=xci`PuWB065@!%P|6PCp*Y=XfpyzQd~7G4`Ba4<`>R4$oG`DMYNkT0MmHR zTcvS#zI{UydgHDVFv~OHzJ8u>p$b4L=WGg4T?@M^tjnd=+AtUQryn@yb_@!j4M%NU zd=@~_q1Z=2T0E6fMc{pbZGTFD@rA7VG{?sGx=cDG0@KO ed>b44Ej|Hr=H!eSDi{6$0000Kv zeq=yn_)uWqGE#RRTELEt?=uIQR2vM^!u0D@nZoY|CNNm+(F+W#MC?0DNVit#S|u%e zFmtd4uTB-{EohG>M+R151IJ-jJF=0(-6jUk4U51`TT%@cA8NMfsC&rC4D@3wdpxtO z2e2^47}2C z^eVW|G;~w+{zOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CV|L_t(|oXwLxZi6rs$9;n*tGlCe06Ju0 zB1g!fvKXmK1{S=K!*uT*ARVw&J=}!BEOwow_@h zWKzTg6->%q&tsC10s;g;jQ8w&D1i3p&Kgw=VCD+|0O@Qve=bH~tyEC#76CDgNu_z^ zGae~j0T<2wE9LybkZHk-1(*)YPVOqvE`Xjc{U92?D4@?VuL|xzgV;WkIPBU`u|?MG zF|O~7;`yZvO(G_H7wZVX7FTPE0T?x@OBpxKA+V9fRYTGM^8dq4INcy4ZCaMKVoCr^ z^D!;e&h_E;fAl7!J~#=C%cxOoYIh5*2Te6=x2dHESYKbPTfZ)+W7myDhy9UfN~yYd z1=uHw-KfJ@0NDvy5rFO3rp$Q&#$?zJbp%F}<*kf8jz$izQH9n*K0G8pi0$)r49uJ9 mOsaq_#Nf6c-`Ylgi%&G==cz2mv#kIC002ovPDHLk0$_s8@zNOp diff --git a/graphics/pokemon/vivillon/river/icon.png b/graphics/pokemon/vivillon/river/icon.png index a7427d685e854d2e91d25e6d665bff8f5eeb5759..d33d8271c3751a739b961bfa0e0247bb377bf2f7 100644 GIT binary patch delta 410 zcmV;L0cHNB1mgpc7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003}NklPtkoYwMHvfOo z?V;yn!*mgPye*KCIG-Nq@>m0^wM~EJs2~GCgAH5DO*LOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Bu!L_t(|oXwN5Zo?oDhIxY%FF;g3fcpli zB4zK=IV0ZU4L18(aa6pWi7T0nD@kett-4md1^MH@JKgb{u|Es?0UQIjeE~7=SV$`H zE?zHFkx&8#3_!Mz>_@l<0FN#Q;Pnb10>`{QuZ4g}I#8Q{e+40|^IFO^u##$?#y3kNr995SlCKSyH^Z8~}Z%2`q#6tDX z4;g?ScSnv11n1pV RBl`dV002ovPDHLkV1g3^z$E|x diff --git a/graphics/pokemon/vivillon/sandstorm/icon.png b/graphics/pokemon/vivillon/sandstorm/icon.png index e90306872fe1cd403559b466f595d622bf0aa560..e5e0b987ebea774b762e8a73cedd061e034fe151 100644 GIT binary patch delta 405 zcmV;G0c!rF1l|LX7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003^NklHBJ_R4JOn7;~B9_)`P;3ZUd% zgO~)(2)O79x|SBl2KZH}cfl}gAPkU>x7>9!8vx3E225rvp;MMwx0(pRe3tp#fs=nf z?TGmtQ-OB+h)#qaqXimH&Zh@Lo@>A~z3gA2fXD>U;KHR%DfO&LZH*|#4EgV!WUv~zH)%~hJA9QsAmALn_oN>y5Bj2{MgbpzFqd?oBls` zBl4l%L)dfK9uVxULN*o@No>x^EqZ^)^S!PDA0A7R*(xdD#1d2ikU&()0KSL2Rle^v zJZKRK;sKMS3%BY?5Lq0o&nH2!>c@~EJxg1BBuEbEogj1g+!dY#sn#HoAW{Ur?~)}* znI6t~f>eN4u>`3S%I~Hp$R-0q+up5OE5;AUNF2-65PQ@B0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00BrzL_t(|oXwL>YQr!Pg>{2L7jUQ#;NBqJ zbe;PNOnjMa41;|JIV*!0t8O;}p{bJ8mekU1>1>QXy?J7OEX1D${{U8i-A};6SrL*7 zoQ>ChDH2K`KmcI($bN(c=*M{WWOD!>Hvj-_w88Uc1kA04e|{H;P*uiyRBFq3lJWqk z`r#{OeXFSQs>clkO-DV)47CAyeV=B9>D8&B2HOM#PqiV_52<3NGY*v3w^Fn?r6!3` z8+FM5bacR1N+4KgKTdhmA_C4VZW>Vri2omP!sP}9!(~~_=n4SNk7cRsalC(bljSaf zWg8RWi18MNYy{AIn*(ZZ5Bu}JE@sqv5kBpYS*4WL?F!&$NqTWS=7 z5JF9HgEFv$x*6u&qYLvqWEC<)V=l!H!c$X#Fb5q<1$2;u`+j_DoA@n00gT!A4tiES Q3IG5A07*qoM6N<$f=J)J=>Px# diff --git a/graphics/pokemon/vivillon/savanna/icon.png b/graphics/pokemon/vivillon/savanna/icon.png index 2665f3456ddaf9b4eb7e9441b008969ab1432b30..37fc6570df34d5ac7bca82f81ab88202b96a363c 100644 GIT binary patch delta 413 zcmV;O0b>5M1m**f7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00041Nkl8A;XPG9V0>k8v= zWl+uGp-o1Dc)$ed!mYX!MCNA$d?W~Z{A#WQnJu`)oggtmuLP-qg<~&0L4<}A56u#! zYpqE(*e+RuNI2r;n2{`AY|2QGETOhB1j`H<*z#`WSW<6|f*X<^VjCj>000R9NkvXX Hu0mjf%ig}m delta 489 zcmV7-Iwj0001qplF={000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CD?L_t(|oXwLvZi7G&hUW$&F0fWO0KS29 z3JN4Y&P9VyLxB_}6@?|c0LulE88#bHAd#J5TkIoI+9=bY{q~=KH4gy(EcgeIfYO|h zK}pb7g-TA>L+2&<01yz9{UiGk@&RxlX~1Sbozod0Vkx0df3n#KnM;XrF$+KoagqJ{ zU^1S9V1e<;q^Ng6Vm!qL=!#ZVn{N&@gW&v8x2L0hwT>uyiDLtR>#(J3k=crw#Bob* zeTvFF$!wEAhu3xC09?`{x1N(gDmi3s(4yEXm{a8eRKw0M zm4|$H{~D8Sd%Q`oo5w`yE}w2Ov!EP%=>j_59`4N)bn{kK9rSj88WjYA9E}2b8Bo=I z+OZ&sGl|3kuEg^ya)8z$)tABnoerbd#`W0i_Of*q`3yT%rr^ f`|+)9@LPNV+!pO+x$cg)00000NkvXXu0mjf)jrRF diff --git a/graphics/pokemon/vivillon/sun/icon.png b/graphics/pokemon/vivillon/sun/icon.png index 7b7974210f5df659b5131604942b88a27e62082a..0a8af5e68ffd56e6fd40c2166260c993111e1617 100644 GIT binary patch delta 411 zcmV;M0c8HI1mpvd7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003~NklsvF}<0IJ@_ZUn;hNidie8ZH5DJ<$k|QUY9eel)}JoQHn~ zY4>F~jSLbzs-5-J0IOx}0mJmL?_5lREgl3495^&7!LfreQesh3s#}9-m!zE zt-_7eBC13AdoOAh#5#lwH)4C35O^4Dg3w~ChYubmxX+xC{Mtf~r^OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00B`+L_t(|oXwLva>6hWhW7?LzJQqc0Okgy zQ9?-rl%xW8p~IaytBe_UYem7h)5gG9k7UwjvW>@|{{7{B7~s!>e*g`r-5W9(4c4pB z=;8R%MhP(h1jOayk^Kn$0N9fb0rtfR5K(IAigGkUW~p(Ve~$vNLe#q3Ntf}IBokc8 z-I!uN1c|F$IbapdRJ~nF8bNaUtZMn{OtH!+TW@#nGk~kKrt_-w6*Gy$hQj&`$(OwJ zO#+*qm-7JNlqP}aAkaqlW!SU646LukCFr28y1O!N^5Z4V(}p3AkHQm6k|(!JhQCh zoBkiGX#OxiL(aHjIUq)@&0%K5$BBQ%oFYXPJkMhn_?2UDGVfCKAy9`~Wqy|+sLd<; zord3(BG;!f)o30}(HsO(Ap>3xGOR9hKMn%TZ_Vu>GA4+deLF}=0lOVUHM_ZSmY0KM z8JrMzkdjx}&Kv6vGIft&ypbuu0?k2Y4i&o@4zloorY(1Cu1(?x)(;!suFeihO8@`> M07*qoM6N<$f?lM$ivR!s delta 495 zcmVOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00CS{L_t(|oXwLhd0IZai z>GWQW5f4JlP^)eJ6>@%;Bs-;(5!iy#;*{-`8i6=o%35vRt7S~_KG72ZE~AR-EO!+% z$>o~-`p%@5tJF0KY*eYt1Gu1>R^)&+t+}Lr(|UyLrMPJzG=%?e{e;5}vNeZgG3zz} z*mj4oRPOYAe>kTk%^<;M91~?b-QQw90j)1xzp3d2=;`)wmrv_bABv)Z&h1Zq7D5=O zKzqkBzYv6IKYLRr}4@GYa=R8uO4V@6t8PP$J|y`?p4T)ag_xhgv&Sp_RSVH lRNw-AFzm;-w!v@q3FvR{ut8XfUH||907*qoM6N<$0fJwo(}4g0 diff --git a/graphics/pokemon/whiscash/back.png b/graphics/pokemon/whiscash/back.png index 8741f6e9ac109ae6820f40920cc05232b64331d6..07e3fb0f68647426aad382e7d614e73beb00c760 100644 GIT binary patch delta 537 zcmV+!0_OeH1>ppc7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0005dNkl!^7z|gem3h$H)CN)2zTz>X@rnp z=mGgs;WUjF`|}O&w0|_k=LQ-UIxB{;|J7zTLPWk1tboWgO;8jD@m%n<@Nx1;Sf_tr z=)?2UvGPHtXju&7PG32;0#i(!V1S^eJ%cnyvllR)-5}D!k+GpT2-qv66Q36AX&(h2 zV-{G2CT>Y*!zKWkd<$oR?3thPLJ(7OiS%&riOc)3@mY{tuyk;d=Tqg0`_va;5VB4& zi5vwME)2R0Qr-d%!x6LiyMk;BU4egB$U}^6d^OA*cS9*iUcbRRj$3RWWS&L1DL{n; z!I8(6F&6`A@D;yGEx_Z43K+tf&-iXA1!HN5jRAn){$V29(O3x93ba-@3MxJuh#=5< z5B?5PJ@HiY5ReO4mpSG=jN}5=gTRVad^X^@vy1Hp{3ehFJ&s?{_PB(BGOK?EUT>vB zF=}WCi1;MP>-c&xNK5Dl+B~jjH?4lM-!6bN>A*XJR)H)5QS%=O>^;FDTo>pH@WS9X z1YI5_OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00H<(L_t(|obA%TPvbBY2XL1(QpP&HO003| z9?HTKOZ-sH^y|{%5G2Rg^opg_eMl;ZjBZQP;;})&He<>EF-vov{SD_h*K)nbc zfn0)H1Bd+o%OD6`F$8#Vd2Sn+TwO-E8N+GVtQ824=N`x}Xm8 zp~wm8n{_~0FwOG^fcUO5!X@Ki?#Udcv0DZ<+c*+{sH@*qu-I-Kuav{f)N+dvIACl; zy;2Ul)gQkKe`XXO)BY*g{R)yTz6s#)77HiOU`$Bwr2^V)<}g;uiE*`ip8FDPXOvyb zoKk)86HX;S_JS505Q74Y1^_m5Ghpx`o^o(bcn%Xi2TOhrd!05bI*b(W42+F*1Ky*@Zr0))ORO8= zsUU)Y|cJ?YX*+BwI5n8_nP%4VF?A1hX zgLslZ%r|Eg5A);|u*v{D_X9A!&1P%@a9cZs1QY86F#et__q9{XW8(dY+q1AXV;P_* mio*Jg9z~Ba4$)`*7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004?NklNRbT43A=xtpqA+`WY8{mLYdZ2$a80>u)KmgVe4YL9|9;mjI`O6uomr>1V4!9nW zN1z_P4UiB*j79*Apj+H*E2M#38zRxVJY$Fk(5MvvYWt!F*Z`a%u2HJ6u}}a>=QOPy zX&-S;U1cwEX7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00FB>L_t(|obA%FN&`U<2H<7EHqUUZO9F~b zX0Z`0_J$xtQyE{tcPQ)rQce_8ziaoib|TDEt&1T#VG zq-j)KQ3BZIJRNNtOk;rEj?y5`(*nqh#Q@x}1bQt7VUI?Ps1e+$4k35I$|5if(DHH( zpu{2KioqEDRosjzMZ_qBoH~IDV1OII<1knwoFfU1Jt10@(|?p73>okq5|KdMMg~nR zfhYhj0(7luv#ubRO-F;z3V%u=c=1NhblrV1ib8pj`l=leYYl z9r&CscnGU_2)pj*Brp4`>rA%y2m#Bh0Vhjh+V}UFKC$? zCh~x$3c0^wslv-vLPh~>s_-!uN`BP?rMJ1Qh^5->Q2$GVX3}SIwWL0(A{Wj6tyv(R z9L=h8p_1f`-of(WxjL8W`0g6ZB(EtDd diff --git a/graphics/pokemon/xerneas/back.png b/graphics/pokemon/xerneas/back.png index 30654685a9aa68df660096ea723b76225466e367..5f38d48dd36b1254066a07ff5e00277c72cb8209 100644 GIT binary patch delta 669 zcmV;O0%HBf2IK{h7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z00070Nkl^IC%2VRT|9| zxMwxo3&Sc&&|Ja00~FmY09vQ?Wd&G*1z0@{ZmQ1V0syaS?79GOnxO$K^}u=5g3W)R z0C>?Y^hpBMLIZFUK&MaDS%kADSb(mY-H;0=l*-Tm5IR+(*WE}l#ta6a3A7m&M$RWq z7y(8@OB<#VY!d(~0A^X5-Ec(-V;8M~fu#55Gc?JN0UUbL3k8S;o52ED{^HmRb8p%U z)6WJ#lLr()Z-5>pY=IG|1OX)H*y?{rK(c@tQBM^J05iaC^t=t|3Zk(<0QOb$r!hb8rsh9{p16aWyi+WkUSZ)Xmz>+}ZxGZ1$ zAT3J-1IYE)_B#tifDi-#)y2NNT9954K>(WIByTOC1&E8Yz5rqlj8RUg%nN@#|0+rB ze9R#KDS)~_;sS`?iwT(*>c{{ed9t1jm?<~yKvbDBP}vNim7SswTR?~zkb=-(nX31} zZ;v7oiY|$~nc2VrKm^|j^S>Cyz!tz3LRLkSfIkUQ3?$IjLMg2yaTpL!1`?r^Zb#%1 zt^l*aS|0w8KrM87T^`RPpZ|Zki%S4mSOenmi6R!p3?jafCqi!_CVBH3yC=AgKpW^i z;yq!pnfUfE$;%O^UGVr`n^#YTOA$HdXsRx{X zen-GZW&ahR+k`&=m~-??{g;I3OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00L@BL_t(|oV}CFj-xOTMGMKJY+G3Dmwry2Cy52eMA*_!NjytCO404 z36yadh@2{9v7;s+`Y`*fQ`6V1@PO>&wd;^tzV-qAX;eCae+(YNl811DAhpX zfT(QTu(iX?3_`}XiA=;^r;LlKPnjDaDQ6!RAbsfpNqOMjEXi6eVrg6&;PZgEohE94 zRF)#uy=Wjie@Mh!`A%;bf1>g(%#W2v0tQbb1VFn09%~B#$KFdf?|ER4$)kGI@q3;Qyq%g5all%$-o52p@NL#QCTcZNjga$PMeK_?3-cRYj0xWz} x{sGvizqDzu?fN?V!1Zb-`D29>{U6rAAKMYd5wj-Y1XTb4002ovPDHLkV1hL=PFnx~ diff --git a/graphics/pokemon/xerneas/front.png b/graphics/pokemon/xerneas/front.png index d219e463b93701b4354211829bc84210b9308993..357f3b4294afcae027cab5710590b6abdfe3e65a 100644 GIT binary patch delta 728 zcmV;}0w?{B2cHIz7zqdi0001;w}I@Ddp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0007xNklPY+YxU>{)#u!8nKLT0^B&K_%+|+xpoW@x4PeM&<%HdEjTH>hadzOOi)=|frV}b znv}G)5PS$B;%~!|c92w~%{q=jhSyWh<=&vdbu7mLCIq#}1)spD z9|XW_fbuxJ5-$Y^Q1X`o3s5Hb8$ta{1Q-ZJ8h;%ioCR$f?6UzABU`y{Uv_^%UCtIk zq<_`$ay^RZct2?Z!HRel_hnOqh1(Mt3;d*iACxSV6Qh{jc zLpT3)Ems^Ly*$4APW%dd;wk-JE8T#mDG6VHGw0WZpD{WHwI-{ zU~|Q(01qF`0A3boRS1Bt3$P_Ip1d=G8j>xeNdd8KJav1#8~Aw@96c~Wt^%N?Ed-v7 zz+KR`R$ST!mDBxB_05pm8^Xb@3CgEn&G3t05YA73Cjcy&OEcZj)O80000< KMNUMnLSTZ%%v^^6 delta 839 zcmV-N1GxO3295`i7-Iwj00013M{Ml?000McNliruOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00Oc}L_t(|oQ>7LPuoBg2k>{ul7(1eyQoqp z;-pk`OH7w$Ii;3R$^ryCRY!^si3wHsuHvug4=+x(776887+6UDxxRBq{5$PaVwC%S z{9b$)2>?|lzR3bK& z`i6nIL7^n9cW2%VxT>xO(#`e(j{Uh&0#df=p12OH_f$#es`=VmE*Z_rL_{W}q zY#X*)5hoR%f0!@(O}ky1|6D>pF?rt{xo&k1p$G-*hrH%~1RiInwm7fLK_B{F{|#RQ zy1_ToXSEZ++P(g?%Tlme$ce+8F1t=2Ve@+dv>0O-r|H7D0KjAiqwp#N?h8P3b^^V`yh92m=}f0*lR1%#YRnVWEwfDvBRR*271 z<{Rh=aEAM!Unzu-J|Ajsi)db*jLJOxwzTDq7WD@E5k9@n-m` R^`-y-002ovPDHLkV1hU+cg_F+ diff --git a/graphics/pokemon/xerneas/icon.png b/graphics/pokemon/xerneas/icon.png index f59ee416fa95623291e0229eef19fef615a5b3d7..31036c9ee11e4e1e55ecb75adbeb05630153bc3f 100644 GIT binary patch delta 361 zcmV-v0ha#N1hWH>7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0003ZNkl7F)ZQd${)(RV`BxU=9z_bMVyX(Z&U9_D+vSSAx-bj8E56kw}#p;~LMcbi-m^^v&% zNJxJ+HiQHsBJl|3tCWIg)gx&DR;>hbx=c?R9;z_fPVrIKDw{BON+5CISKT`~mp=%N zdvHAmc-!hGuJs3CD2>2|C1B{ip(IuB-BYv|fOZABPN3Zbo}xe2Lca<9HL$(X|80He z$5iFh=0`d}runfNAY*>q3=q%p9U$)=Agh0PA0X@XhxzaWA^RkSCYaLj00000NkvXX Hu0mjf`>n28 delta 524 zcmV+n0`vW|1JwkO7-Iwj0001qplF={000McNliru`02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DVPL_t(|oYj)QYQr!P#`OkA_O^MEKA;T6 zUL|njXXzG!V$reSCS=PX%PL)BkgcBo%b|rrr)rVz<9v7D`A5hv4p;)+ZSm2Epsd3u zC^rbIEtEUqBR>(}DNY)B6qdMBdDW+&BAA7DZ3;USEjZ(ee~%AZjcpv`5#Q%V+NrOI zcpjxv&66~|&=}iUfc(PcZixwK_L*M-!HG!HBy=Mvtt|0Nj%N`%tf0=DeMX^2#Dq|AI`(sgPN?o<`wYGGO~Eehi)OM{)xUc$d;2FvXPvQy_DF z&>8;D!VklERCq#~V_uGC8o?vxulhLgfp{>UKA9Pyj-V8Im;oa2_M8hTePGo@si=Zk zTai4PfDe!?-P3R(j?ow^EObCkGqM5(YMgxqOilk49x$Qb4w&`%nU62IsxmsNs@!@2 O0000<%0l}1qVIkQEUNX zD=5*C*J7`Dcfi`zd_MD5wRwKLt3Z!JuoTDpir0f&93&>AfXsfEp*A z=n1^$Pk%rEZgvkndgkutc)QNf`M7+yZwwdXATO;_gbBF9Yf-zZCr|!iegG8c!4rvk S>OAKF0000OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00C}EL_t(|ob8lNYQr!Pg&mXwRJbPBh!~qd zx=HYaEV`^k&S7fM6?%_$rFC~bMlaE0bVl;8l-RpMA#eM>d3qx`Ns_z%k;KCiP%ja? zB|?}bVz)$y%^U%cB+ASXg-$_aGlVF$hEmTEYm_oAE>l84e@IZoh=Bcjm{BkxyK!p| zlSLFz1QT07ZY_>mf+PWCRO1zBZ9DZ7Ql#(56}eVZ>6;m z`A6S@S~fr57Cys^a=w%&O~L}c4k55cl6=%&PfAa zbOmBG-iz1ner77R(S71|3+0iGrdKVO{^0KVL;V6q6ECI(W@KJe00000NkvXXu0mjf DX7JH0 diff --git a/graphics/pokemon/zygarde/10_percent/icon.png b/graphics/pokemon/zygarde/10_percent/icon.png index 3d968a6b698f72dc28537462de56151147e500b4..222eb1b80a5a53ad9d015506ba4482133819abd1 100644 GIT binary patch delta 307 zcmdnT{FiBh1SbbG0|SFkKGU*&q{r<(KE<{%+Mwa3B z5+)hth%?G_@|9n5`oEo|;h3^TBvVv{dGl7Kjs4X;6^d_YC>m&@PlUm_LXR`enP=yL{7S3j3^P6OV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L0081iL_t(|ob8e^4#OY}MY)0HAuAlBC#aOJ zMUk30m+0KPMrv0e5?OIgLP}ujP-Uto{Pe#u#zK4-ROL{E;265n0l}7zV0H>HB*IcA z`6fh?u?)?_g0YjRV(oTV6wnw{@#O952=X)%+rh6nAS*c2e_p4quP9w&!w1GKh69e%99qTa<0LESsU>*_J zMvH~7UszPcmsHQ;65p1 SX7K<3002ov22Mn-LSTX>JeG3+ diff --git a/graphics/pokemon/zygarde/complete/icon.png b/graphics/pokemon/zygarde/complete/icon.png index 8575e8d58d804fa5e6a345881dd1fbcb9268c4bf..663b98fd74fc782251a0cd6b406460310e1104f5 100644 GIT binary patch delta 464 zcmV;>0Wbd01epYo7zqdi0000?P=%b4dp~~=bW%=J|NsC0|NsC0|NsC0|NsC0%^|Xs z0004qNkl+qNHH_?9aM zwMHF?4_OjWh6L~cK!qVGadHhPGy9TN2?CCt!i>5kCPcMRd0&76gCn zG4oQ^fEPHlRvArP2y3y2z0nz94*xqbj{|l7DfpI z9NCXR-rzmAQb&#XUrqp`nM6LEp%1W)^LQhW243X9c>N1x`!fPT7RY6g$g@CV(vv`_ zha`}0kR%WSlR)~yo&qs{41vU!INPxE=l)232!kYnxIdB~xl02g#cSaefw zW^{L9a%BKVOhiylM<8}(av(DOV1ZP1_ zK>z@;j|==^1(6{?e*t1kM@0Xn2lB-L00DGKL_t(|oaK@+YQ!)QMRkKg5Zq-#-Mz_El|4;MYkb_e@3h_0Fn+pN~M+zVBtUg z*aa9qw^X!>WSJ7$w6d3oDPv05$)c5mRFcC6p2nS&ui9eB_{4M=t7rDZL&iw=)DV%M z6vx^U9!d2rYSUcQNzdhsP8AZ%t~;LIW*{6;-x7N8em~4WSYnGa;L9Mu_g$0rt&JnG z8Ny*F@}*bff0tvMPVa%O7=R%H>l=seMXUf^+$A(*O;flT-=5EfyJzqDxAm`taZwnx z3ge Date: Fri, 24 Feb 2023 15:22:58 -0300 Subject: [PATCH 110/125] Use proper symbol styles for Hakamo-O and Kommo-O --- include/graphics.h | 20 +++++++++---------- sound/cry_tables.inc | 8 ++++---- sound/direct_sound_data.inc | 4 ++-- src/data/graphics/pokemon.h | 20 +++++++++---------- src/data/pokemon/level_up_learnset_pointers.h | 4 ++-- src/data/pokemon/level_up_learnsets.h | 4 ++-- src/data/pokemon/pokedex_entries.h | 4 ++-- src/data/pokemon/pokedex_text.h | 4 ++-- .../pokemon/teachable_learnset_pointers.h | 4 ++-- src/data/pokemon/teachable_learnsets.h | 4 ++-- src/data/pokemon_graphics/back_pic_table.h | 4 ++-- src/data/pokemon_graphics/front_pic_table.h | 4 ++-- src/data/pokemon_graphics/palette_table.h | 4 ++-- .../pokemon_graphics/shiny_palette_table.h | 4 ++-- src/pokemon_icon.c | 4 ++-- 15 files changed, 48 insertions(+), 48 deletions(-) diff --git a/include/graphics.h b/include/graphics.h index 55174442c..49ce74b2e 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -868,8 +868,8 @@ extern const u32 gMonFrontPic_Bruxish[]; extern const u32 gMonFrontPic_Drampa[]; extern const u32 gMonFrontPic_Dhelmise[]; extern const u32 gMonFrontPic_Jangmoo[]; -extern const u32 gMonFrontPic_Hakamoo[]; -extern const u32 gMonFrontPic_Kommoo[]; +extern const u32 gMonFrontPic_HakamoO[]; +extern const u32 gMonFrontPic_KommoO[]; extern const u32 gMonFrontPic_TapuKoko[]; extern const u32 gMonFrontPic_TapuLele[]; extern const u32 gMonFrontPic_TapuBulu[]; @@ -2082,8 +2082,8 @@ extern const u32 gMonBackPic_Bruxish[]; extern const u32 gMonBackPic_Drampa[]; extern const u32 gMonBackPic_Dhelmise[]; extern const u32 gMonBackPic_Jangmoo[]; -extern const u32 gMonBackPic_Hakamoo[]; -extern const u32 gMonBackPic_Kommoo[]; +extern const u32 gMonBackPic_HakamoO[]; +extern const u32 gMonBackPic_KommoO[]; extern const u32 gMonBackPic_TapuKoko[]; extern const u32 gMonBackPic_TapuLele[]; extern const u32 gMonBackPic_TapuBulu[]; @@ -3288,8 +3288,8 @@ extern const u32 gMonPalette_Bruxish[]; extern const u32 gMonPalette_Drampa[]; extern const u32 gMonPalette_Dhelmise[]; extern const u32 gMonPalette_Jangmoo[]; -extern const u32 gMonPalette_Hakamoo[]; -extern const u32 gMonPalette_Kommoo[]; +extern const u32 gMonPalette_HakamoO[]; +extern const u32 gMonPalette_KommoO[]; extern const u32 gMonPalette_TapuKoko[]; extern const u32 gMonPalette_TapuLele[]; extern const u32 gMonPalette_TapuBulu[]; @@ -4521,8 +4521,8 @@ extern const u32 gMonShinyPalette_Bruxish[]; extern const u32 gMonShinyPalette_Drampa[]; extern const u32 gMonShinyPalette_Dhelmise[]; extern const u32 gMonShinyPalette_Jangmoo[]; -extern const u32 gMonShinyPalette_Hakamoo[]; -extern const u32 gMonShinyPalette_Kommoo[]; +extern const u32 gMonShinyPalette_HakamoO[]; +extern const u32 gMonShinyPalette_KommoO[]; extern const u32 gMonShinyPalette_TapuKoko[]; extern const u32 gMonShinyPalette_TapuLele[]; extern const u32 gMonShinyPalette_TapuBulu[]; @@ -5748,8 +5748,8 @@ extern const u8 gMonIcon_Bruxish[]; extern const u8 gMonIcon_Drampa[]; extern const u8 gMonIcon_Dhelmise[]; extern const u8 gMonIcon_Jangmoo[]; -extern const u8 gMonIcon_Hakamoo[]; -extern const u8 gMonIcon_Kommoo[]; +extern const u8 gMonIcon_HakamoO[]; +extern const u8 gMonIcon_KommoO[]; extern const u8 gMonIcon_TapuKoko[]; extern const u8 gMonIcon_TapuLele[]; extern const u8 gMonIcon_TapuBulu[]; diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index 7714cd00e..7b5947506 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -1127,8 +1127,8 @@ gCryTable:: cry Cry_Drampa cry Cry_Dhelmise cry Cry_Jangmoo - cry Cry_Hakamoo - cry Cry_Kommoo + cry Cry_HakamoO + cry Cry_KommoO cry Cry_TapuKoko cry Cry_TapuLele cry Cry_TapuBulu @@ -3249,8 +3249,8 @@ gCryTable_Reverse:: cry_reverse Cry_Drampa cry_reverse Cry_Dhelmise cry_reverse Cry_Jangmoo - cry_reverse Cry_Hakamoo - cry_reverse Cry_Kommoo + cry_reverse Cry_HakamoO + cry_reverse Cry_KommoO cry_reverse Cry_TapuKoko cry_reverse Cry_TapuLele cry_reverse Cry_TapuBulu diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index fb4c6b44f..74f5529d7 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -3522,11 +3522,11 @@ Cry_Jangmoo:: .incbin "sound/direct_sound_samples/cries/jangmo_o.bin" .align 2 -Cry_Hakamoo:: +Cry_HakamoO:: .incbin "sound/direct_sound_samples/cries/hakamo_o.bin" .align 2 -Cry_Kommoo:: +Cry_KommoO:: .incbin "sound/direct_sound_samples/cries/kommo_o.bin" .align 2 diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 385460228..a39f6f35e 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -801,8 +801,8 @@ const u32 gMonFrontPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/front.4b const u32 gMonFrontPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/front.4bpp.lz"); const u32 gMonFrontPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/front.4bpp.lz"); const u32 gMonFrontPic_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/front.4bpp.lz"); -const u32 gMonFrontPic_Hakamoo[] = INCBIN_U32("graphics/pokemon/hakamo_o/front.4bpp.lz"); -const u32 gMonFrontPic_Kommoo[] = INCBIN_U32("graphics/pokemon/kommo_o/front.4bpp.lz"); +const u32 gMonFrontPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/front.4bpp.lz"); +const u32 gMonFrontPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/front.4bpp.lz"); const u32 gMonFrontPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/anim_front.4bpp.lz"); const u32 gMonFrontPic_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/anim_front.4bpp.lz"); const u32 gMonFrontPic_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/anim_front.4bpp.lz"); @@ -2013,8 +2013,8 @@ const u32 gMonBackPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/back.4bpp const u32 gMonBackPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/back.4bpp.lz"); const u32 gMonBackPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/back.4bpp.lz"); const u32 gMonBackPic_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/back.4bpp.lz"); -const u32 gMonBackPic_Hakamoo[] = INCBIN_U32("graphics/pokemon/hakamo_o/back.4bpp.lz"); -const u32 gMonBackPic_Kommoo[] = INCBIN_U32("graphics/pokemon/kommo_o/back.4bpp.lz"); +const u32 gMonBackPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/back.4bpp.lz"); +const u32 gMonBackPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/back.4bpp.lz"); const u32 gMonBackPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/back.4bpp.lz"); const u32 gMonBackPic_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/back.4bpp.lz"); const u32 gMonBackPic_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/back.4bpp.lz"); @@ -3219,8 +3219,8 @@ const u32 gMonPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/normal.gb const u32 gMonPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/normal.gbapal.lz"); const u32 gMonPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/normal.gbapal.lz"); const u32 gMonPalette_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/normal.gbapal.lz"); -const u32 gMonPalette_Hakamoo[] = INCBIN_U32("graphics/pokemon/hakamo_o/normal.gbapal.lz"); -const u32 gMonPalette_Kommoo[] = INCBIN_U32("graphics/pokemon/kommo_o/normal.gbapal.lz"); +const u32 gMonPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/normal.gbapal.lz"); +const u32 gMonPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/normal.gbapal.lz"); const u32 gMonPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/normal.gbapal.lz"); const u32 gMonPalette_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/normal.gbapal.lz"); const u32 gMonPalette_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/normal.gbapal.lz"); @@ -4452,8 +4452,8 @@ const u32 gMonShinyPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/shin const u32 gMonShinyPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/shiny.gbapal.lz"); const u32 gMonShinyPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/shiny.gbapal.lz"); const u32 gMonShinyPalette_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hakamoo[] = INCBIN_U32("graphics/pokemon/hakamo_o/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kommoo[] = INCBIN_U32("graphics/pokemon/kommo_o/shiny.gbapal.lz"); +const u32 gMonShinyPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/shiny.gbapal.lz"); +const u32 gMonShinyPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/shiny.gbapal.lz"); const u32 gMonShinyPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/shiny.gbapal.lz"); const u32 gMonShinyPalette_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/shiny.gbapal.lz"); const u32 gMonShinyPalette_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/shiny.gbapal.lz"); @@ -5679,8 +5679,8 @@ const u8 gMonIcon_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/icon.4bpp"); const u8 gMonIcon_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/icon.4bpp"); const u8 gMonIcon_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/icon.4bpp"); const u8 gMonIcon_Jangmoo[] = INCBIN_U8("graphics/pokemon/jangmo_o/icon.4bpp"); -const u8 gMonIcon_Hakamoo[] = INCBIN_U8("graphics/pokemon/hakamo_o/icon.4bpp"); -const u8 gMonIcon_Kommoo[] = INCBIN_U8("graphics/pokemon/kommo_o/icon.4bpp"); +const u8 gMonIcon_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/icon.4bpp"); +const u8 gMonIcon_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/icon.4bpp"); const u8 gMonIcon_TapuKoko[] = INCBIN_U8("graphics/pokemon/tapu_koko/icon.4bpp"); const u8 gMonIcon_TapuLele[] = INCBIN_U8("graphics/pokemon/tapu_lele/icon.4bpp"); const u8 gMonIcon_TapuBulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/icon.4bpp"); diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h index 0ecfa59cc..d27399d32 100644 --- a/src/data/pokemon/level_up_learnset_pointers.h +++ b/src/data/pokemon/level_up_learnset_pointers.h @@ -790,8 +790,8 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_DRAMPA] = sDrampaLevelUpLearnset, [SPECIES_DHELMISE] = sDhelmiseLevelUpLearnset, [SPECIES_JANGMO_O] = sJangmooLevelUpLearnset, - [SPECIES_HAKAMO_O] = sHakamooLevelUpLearnset, - [SPECIES_KOMMO_O] = sKommooLevelUpLearnset, + [SPECIES_HAKAMO_O] = sHakamoOLevelUpLearnset, + [SPECIES_KOMMO_O] = sKommoOLevelUpLearnset, [SPECIES_TAPU_KOKO] = sTapuKokoLevelUpLearnset, [SPECIES_TAPU_LELE] = sTapuLeleLevelUpLearnset, [SPECIES_TAPU_BULU] = sTapuBuluLevelUpLearnset, diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index f4ad3b566..bb6d97be9 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -15978,7 +15978,7 @@ static const struct LevelUpMove sJangmooLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sHakamooLevelUpLearnset[] = { +static const struct LevelUpMove sHakamoOLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SKY_UPPERCUT), LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), LEVEL_UP_MOVE( 1, MOVE_AUTOTOMIZE), @@ -16003,7 +16003,7 @@ static const struct LevelUpMove sHakamooLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sKommooLevelUpLearnset[] = { +static const struct LevelUpMove sKommoOLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_CLANGING_SCALES), LEVEL_UP_MOVE( 1, MOVE_CLANGING_SCALES), LEVEL_UP_MOVE( 1, MOVE_SKY_UPPERCUT), diff --git a/src/data/pokemon/pokedex_entries.h b/src/data/pokemon/pokedex_entries.h index 492538260..7952f44a3 100644 --- a/src/data/pokemon/pokedex_entries.h +++ b/src/data/pokemon/pokedex_entries.h @@ -9408,7 +9408,7 @@ const struct PokedexEntry gPokedexEntries[] = .categoryName = _("Scaly"), .height = 12, .weight = 470, - .description = gHakamooPokedexText, + .description = gHakamoOPokedexText, .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, @@ -9420,7 +9420,7 @@ const struct PokedexEntry gPokedexEntries[] = .categoryName = _("Scaly"), .height = 16, .weight = 782, - .description = gKommooPokedexText, + .description = gKommoOPokedexText, .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h index 6048d2121..a28bd184e 100644 --- a/src/data/pokemon/pokedex_text.h +++ b/src/data/pokemon/pokedex_text.h @@ -4703,13 +4703,13 @@ const u8 gJangmooPokedexText[] = _( "tall mountains where Jangmo-o live. They\n" "grow little by little battling one another."); -const u8 gHakamooPokedexText[] = _( +const u8 gHakamoOPokedexText[] = _( "It sheds and regrows its scales on a\n" "continuous basis. The scales become\n" "harder each time they're regrown. Its\n" "scaly punches tear its foes to shreds."); -const u8 gKommooPokedexText[] = _( +const u8 gKommoOPokedexText[] = _( "Its rigid scales function as offense and\n" "defense. In the past, its scales were\n" "processed and used to make weapons\n" diff --git a/src/data/pokemon/teachable_learnset_pointers.h b/src/data/pokemon/teachable_learnset_pointers.h index 28998aae1..c8adc8668 100644 --- a/src/data/pokemon/teachable_learnset_pointers.h +++ b/src/data/pokemon/teachable_learnset_pointers.h @@ -790,8 +790,8 @@ const u16 *const gTeachableLearnsets[NUM_SPECIES] = [SPECIES_DRAMPA] = sDrampaTeachableLearnset, [SPECIES_DHELMISE] = sDhelmiseTeachableLearnset, [SPECIES_JANGMO_O] = sJangmooTeachableLearnset, - [SPECIES_HAKAMO_O] = sHakamooTeachableLearnset, - [SPECIES_KOMMO_O] = sKommooTeachableLearnset, + [SPECIES_HAKAMO_O] = sHakamoOTeachableLearnset, + [SPECIES_KOMMO_O] = sKommoOTeachableLearnset, [SPECIES_TAPU_KOKO] = sTapuKokoTeachableLearnset, [SPECIES_TAPU_LELE] = sTapuLeleTeachableLearnset, [SPECIES_TAPU_BULU] = sTapuBuluTeachableLearnset, diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h index 19b22d9b3..2130b18a2 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -29445,7 +29445,7 @@ static const u16 sJangmooTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sHakamooTeachableLearnset[] = { +static const u16 sHakamoOTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -29475,7 +29475,7 @@ static const u16 sHakamooTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sKommooTeachableLearnset[] = { +static const u16 sKommoOTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index ebe0c316f..c018d8987 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -790,8 +790,8 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = SPECIES_SPRITE(DRAMPA, gMonBackPic_Drampa), SPECIES_SPRITE(DHELMISE, gMonBackPic_Dhelmise), SPECIES_SPRITE(JANGMO_O, gMonBackPic_Jangmoo), - SPECIES_SPRITE(HAKAMO_O, gMonBackPic_Hakamoo), - SPECIES_SPRITE(KOMMO_O, gMonBackPic_Kommoo), + SPECIES_SPRITE(HAKAMO_O, gMonBackPic_HakamoO), + SPECIES_SPRITE(KOMMO_O, gMonBackPic_KommoO), SPECIES_SPRITE(TAPU_KOKO, gMonBackPic_TapuKoko), SPECIES_SPRITE(TAPU_LELE, gMonBackPic_TapuLele), SPECIES_SPRITE(TAPU_BULU, gMonBackPic_TapuBulu), diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index 24ebc78f3..e346dd4a2 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -790,8 +790,8 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = SPECIES_SPRITE(DRAMPA, gMonFrontPic_Drampa), SPECIES_SPRITE(DHELMISE, gMonFrontPic_Dhelmise), SPECIES_SPRITE(JANGMO_O, gMonFrontPic_Jangmoo), - SPECIES_SPRITE(HAKAMO_O, gMonFrontPic_Hakamoo), - SPECIES_SPRITE(KOMMO_O, gMonFrontPic_Kommoo), + SPECIES_SPRITE(HAKAMO_O, gMonFrontPic_HakamoO), + SPECIES_SPRITE(KOMMO_O, gMonFrontPic_KommoO), SPECIES_SPRITE(TAPU_KOKO, gMonFrontPic_TapuKoko), SPECIES_SPRITE(TAPU_LELE, gMonFrontPic_TapuLele), SPECIES_SPRITE(TAPU_BULU, gMonFrontPic_TapuBulu), diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index a8c986d79..49551333c 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -790,8 +790,8 @@ const struct CompressedSpritePalette gMonPaletteTable[] = SPECIES_PAL(DRAMPA, gMonPalette_Drampa), SPECIES_PAL(DHELMISE, gMonPalette_Dhelmise), SPECIES_PAL(JANGMO_O, gMonPalette_Jangmoo), - SPECIES_PAL(HAKAMO_O, gMonPalette_Hakamoo), - SPECIES_PAL(KOMMO_O, gMonPalette_Kommoo), + SPECIES_PAL(HAKAMO_O, gMonPalette_HakamoO), + SPECIES_PAL(KOMMO_O, gMonPalette_KommoO), SPECIES_PAL(TAPU_KOKO, gMonPalette_TapuKoko), SPECIES_PAL(TAPU_LELE, gMonPalette_TapuLele), SPECIES_PAL(TAPU_BULU, gMonPalette_TapuBulu), diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index 012a95cf1..0a327b37e 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -790,8 +790,8 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(DRAMPA, gMonShinyPalette_Drampa), SPECIES_SHINY_PAL(DHELMISE, gMonShinyPalette_Dhelmise), SPECIES_SHINY_PAL(JANGMO_O, gMonShinyPalette_Jangmoo), - SPECIES_SHINY_PAL(HAKAMO_O, gMonShinyPalette_Hakamoo), - SPECIES_SHINY_PAL(KOMMO_O, gMonShinyPalette_Kommoo), + SPECIES_SHINY_PAL(HAKAMO_O, gMonShinyPalette_HakamoO), + SPECIES_SHINY_PAL(KOMMO_O, gMonShinyPalette_KommoO), SPECIES_SHINY_PAL(TAPU_KOKO, gMonShinyPalette_TapuKoko), SPECIES_SHINY_PAL(TAPU_LELE, gMonShinyPalette_TapuLele), SPECIES_SHINY_PAL(TAPU_BULU, gMonShinyPalette_TapuBulu), diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 0758ea37d..85a69fa93 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -816,8 +816,8 @@ const u8 *const gMonIconTable[] = [SPECIES_DRAMPA] = gMonIcon_Drampa, [SPECIES_DHELMISE] = gMonIcon_Dhelmise, [SPECIES_JANGMO_O] = gMonIcon_Jangmoo, - [SPECIES_HAKAMO_O] = gMonIcon_Hakamoo, - [SPECIES_KOMMO_O] = gMonIcon_Kommoo, + [SPECIES_HAKAMO_O] = gMonIcon_HakamoO, + [SPECIES_KOMMO_O] = gMonIcon_KommoO, [SPECIES_TAPU_KOKO] = gMonIcon_TapuKoko, [SPECIES_TAPU_LELE] = gMonIcon_TapuLele, [SPECIES_TAPU_BULU] = gMonIcon_TapuBulu, From 1e1686b69a7dfbac4480bdd62867d6c0ccc81548 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 24 Feb 2023 23:38:23 +0100 Subject: [PATCH 111/125] Fixes #2414 --- src/battle_ai_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index a626ef49a..2d4d07528 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -2632,7 +2632,7 @@ static s16 AI_TryToFaint(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (CanIndexMoveFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0) && gBattleMoves[move].effect != EFFECT_EXPLOSION) { // this move can faint the target - if (!WillAIStrikeFirst() || GetMovePriority(battlerAtk, move) > 0) + if (WillAIStrikeFirst() || GetMovePriority(battlerAtk, move) > 0) score += 4; // we go first or we're using priority move else score += 2; From ca81d7a0f921e52419f2309b6b452b53a62e31bd Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Fri, 24 Feb 2023 21:58:09 -0300 Subject: [PATCH 112/125] Forgot about Jangmo-o --- include/graphics.h | 10 +++++----- sound/cry_tables.inc | 4 ++-- sound/direct_sound_data.inc | 2 +- src/data/graphics/pokemon.h | 10 +++++----- src/data/pokemon/level_up_learnset_pointers.h | 2 +- src/data/pokemon/level_up_learnsets.h | 2 +- src/data/pokemon/pokedex_entries.h | 2 +- src/data/pokemon/pokedex_text.h | 2 +- src/data/pokemon/teachable_learnset_pointers.h | 2 +- src/data/pokemon/teachable_learnsets.h | 2 +- src/data/pokemon_graphics/back_pic_table.h | 2 +- src/data/pokemon_graphics/front_pic_table.h | 2 +- src/data/pokemon_graphics/palette_table.h | 2 +- src/data/pokemon_graphics/shiny_palette_table.h | 2 +- src/pokemon_icon.c | 2 +- 15 files changed, 24 insertions(+), 24 deletions(-) diff --git a/include/graphics.h b/include/graphics.h index 49ce74b2e..443dc4ade 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -867,7 +867,7 @@ extern const u32 gMonFrontPic_Mimikyu[]; extern const u32 gMonFrontPic_Bruxish[]; extern const u32 gMonFrontPic_Drampa[]; extern const u32 gMonFrontPic_Dhelmise[]; -extern const u32 gMonFrontPic_Jangmoo[]; +extern const u32 gMonFrontPic_JangmoO[]; extern const u32 gMonFrontPic_HakamoO[]; extern const u32 gMonFrontPic_KommoO[]; extern const u32 gMonFrontPic_TapuKoko[]; @@ -2081,7 +2081,7 @@ extern const u32 gMonBackPic_Mimikyu[]; extern const u32 gMonBackPic_Bruxish[]; extern const u32 gMonBackPic_Drampa[]; extern const u32 gMonBackPic_Dhelmise[]; -extern const u32 gMonBackPic_Jangmoo[]; +extern const u32 gMonBackPic_JangmoO[]; extern const u32 gMonBackPic_HakamoO[]; extern const u32 gMonBackPic_KommoO[]; extern const u32 gMonBackPic_TapuKoko[]; @@ -3287,7 +3287,7 @@ extern const u32 gMonPalette_Mimikyu[]; extern const u32 gMonPalette_Bruxish[]; extern const u32 gMonPalette_Drampa[]; extern const u32 gMonPalette_Dhelmise[]; -extern const u32 gMonPalette_Jangmoo[]; +extern const u32 gMonPalette_JangmoO[]; extern const u32 gMonPalette_HakamoO[]; extern const u32 gMonPalette_KommoO[]; extern const u32 gMonPalette_TapuKoko[]; @@ -4520,7 +4520,7 @@ extern const u32 gMonShinyPalette_Mimikyu[]; extern const u32 gMonShinyPalette_Bruxish[]; extern const u32 gMonShinyPalette_Drampa[]; extern const u32 gMonShinyPalette_Dhelmise[]; -extern const u32 gMonShinyPalette_Jangmoo[]; +extern const u32 gMonShinyPalette_JangmoO[]; extern const u32 gMonShinyPalette_HakamoO[]; extern const u32 gMonShinyPalette_KommoO[]; extern const u32 gMonShinyPalette_TapuKoko[]; @@ -5747,7 +5747,7 @@ extern const u8 gMonIcon_Mimikyu[]; extern const u8 gMonIcon_Bruxish[]; extern const u8 gMonIcon_Drampa[]; extern const u8 gMonIcon_Dhelmise[]; -extern const u8 gMonIcon_Jangmoo[]; +extern const u8 gMonIcon_JangmoO[]; extern const u8 gMonIcon_HakamoO[]; extern const u8 gMonIcon_KommoO[]; extern const u8 gMonIcon_TapuKoko[]; diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index 7b5947506..c9da7e679 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -1126,7 +1126,7 @@ gCryTable:: cry Cry_Bruxish cry Cry_Drampa cry Cry_Dhelmise - cry Cry_Jangmoo + cry Cry_JangmoO cry Cry_HakamoO cry Cry_KommoO cry Cry_TapuKoko @@ -3248,7 +3248,7 @@ gCryTable_Reverse:: cry_reverse Cry_Bruxish cry_reverse Cry_Drampa cry_reverse Cry_Dhelmise - cry_reverse Cry_Jangmoo + cry_reverse Cry_JangmoO cry_reverse Cry_HakamoO cry_reverse Cry_KommoO cry_reverse Cry_TapuKoko diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index 74f5529d7..611808d23 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -3518,7 +3518,7 @@ Cry_Dhelmise:: .incbin "sound/direct_sound_samples/cries/dhelmise.bin" .align 2 -Cry_Jangmoo:: +Cry_JangmoO:: .incbin "sound/direct_sound_samples/cries/jangmo_o.bin" .align 2 diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index a39f6f35e..314d081ea 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -800,7 +800,7 @@ const u32 gMonFrontPic_Mimikyu[] = INCBIN_U32("graphics/pokemon/mimikyu/front.4b const u32 gMonFrontPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/front.4bpp.lz"); const u32 gMonFrontPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/front.4bpp.lz"); const u32 gMonFrontPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/front.4bpp.lz"); -const u32 gMonFrontPic_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/front.4bpp.lz"); +const u32 gMonFrontPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/front.4bpp.lz"); const u32 gMonFrontPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/front.4bpp.lz"); const u32 gMonFrontPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/front.4bpp.lz"); const u32 gMonFrontPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/anim_front.4bpp.lz"); @@ -2012,7 +2012,7 @@ const u32 gMonBackPic_Mimikyu[] = INCBIN_U32("graphics/pokemon/mimikyu/back.4bpp const u32 gMonBackPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/back.4bpp.lz"); const u32 gMonBackPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/back.4bpp.lz"); const u32 gMonBackPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/back.4bpp.lz"); -const u32 gMonBackPic_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/back.4bpp.lz"); +const u32 gMonBackPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/back.4bpp.lz"); const u32 gMonBackPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/back.4bpp.lz"); const u32 gMonBackPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/back.4bpp.lz"); const u32 gMonBackPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/back.4bpp.lz"); @@ -3218,7 +3218,7 @@ const u32 gMonPalette_Mimikyu[] = INCBIN_U32("graphics/pokemon/mimikyu/normal.gb const u32 gMonPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/normal.gbapal.lz"); const u32 gMonPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/normal.gbapal.lz"); const u32 gMonPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/normal.gbapal.lz"); -const u32 gMonPalette_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/normal.gbapal.lz"); +const u32 gMonPalette_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/normal.gbapal.lz"); const u32 gMonPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/normal.gbapal.lz"); const u32 gMonPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/normal.gbapal.lz"); const u32 gMonPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/normal.gbapal.lz"); @@ -4451,7 +4451,7 @@ const u32 gMonShinyPalette_Mimikyu[] = INCBIN_U32("graphics/pokemon/mimikyu/shin const u32 gMonShinyPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/shiny.gbapal.lz"); const u32 gMonShinyPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/shiny.gbapal.lz"); const u32 gMonShinyPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Jangmoo[] = INCBIN_U32("graphics/pokemon/jangmo_o/shiny.gbapal.lz"); +const u32 gMonShinyPalette_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/shiny.gbapal.lz"); const u32 gMonShinyPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/shiny.gbapal.lz"); const u32 gMonShinyPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/shiny.gbapal.lz"); const u32 gMonShinyPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/shiny.gbapal.lz"); @@ -5678,7 +5678,7 @@ const u8 gMonIcon_Mimikyu[] = INCBIN_U8("graphics/pokemon/mimikyu/icon.4bpp"); const u8 gMonIcon_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/icon.4bpp"); const u8 gMonIcon_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/icon.4bpp"); const u8 gMonIcon_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/icon.4bpp"); -const u8 gMonIcon_Jangmoo[] = INCBIN_U8("graphics/pokemon/jangmo_o/icon.4bpp"); +const u8 gMonIcon_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/icon.4bpp"); const u8 gMonIcon_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/icon.4bpp"); const u8 gMonIcon_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/icon.4bpp"); const u8 gMonIcon_TapuKoko[] = INCBIN_U8("graphics/pokemon/tapu_koko/icon.4bpp"); diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h index d27399d32..9fa91ee23 100644 --- a/src/data/pokemon/level_up_learnset_pointers.h +++ b/src/data/pokemon/level_up_learnset_pointers.h @@ -789,7 +789,7 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_BRUXISH] = sBruxishLevelUpLearnset, [SPECIES_DRAMPA] = sDrampaLevelUpLearnset, [SPECIES_DHELMISE] = sDhelmiseLevelUpLearnset, - [SPECIES_JANGMO_O] = sJangmooLevelUpLearnset, + [SPECIES_JANGMO_O] = sJangmoOLevelUpLearnset, [SPECIES_HAKAMO_O] = sHakamoOLevelUpLearnset, [SPECIES_KOMMO_O] = sKommoOLevelUpLearnset, [SPECIES_TAPU_KOKO] = sTapuKokoLevelUpLearnset, diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index bb6d97be9..17af6b888 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -15960,7 +15960,7 @@ static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sJangmooLevelUpLearnset[] = { +static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_LEER), LEVEL_UP_MOVE( 9, MOVE_BIDE), diff --git a/src/data/pokemon/pokedex_entries.h b/src/data/pokemon/pokedex_entries.h index 7952f44a3..83b58c1d1 100644 --- a/src/data/pokemon/pokedex_entries.h +++ b/src/data/pokemon/pokedex_entries.h @@ -9396,7 +9396,7 @@ const struct PokedexEntry gPokedexEntries[] = .categoryName = _("Scaly"), .height = 6, .weight = 297, - .description = gJangmooPokedexText, + .description = gJangmoOPokedexText, .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h index a28bd184e..5e28a204b 100644 --- a/src/data/pokemon/pokedex_text.h +++ b/src/data/pokemon/pokedex_text.h @@ -4697,7 +4697,7 @@ const u8 gDhelmisePokedexText[] = _( "It maintains itself with new infusions of\n" "seabed detritus and seaweed."); -const u8 gJangmooPokedexText[] = _( +const u8 gJangmoOPokedexText[] = _( "It expresses its feelings by smacking its\n" "scales. Metallic sounds echo through the\n" "tall mountains where Jangmo-o live. They\n" diff --git a/src/data/pokemon/teachable_learnset_pointers.h b/src/data/pokemon/teachable_learnset_pointers.h index c8adc8668..31a39d516 100644 --- a/src/data/pokemon/teachable_learnset_pointers.h +++ b/src/data/pokemon/teachable_learnset_pointers.h @@ -789,7 +789,7 @@ const u16 *const gTeachableLearnsets[NUM_SPECIES] = [SPECIES_BRUXISH] = sBruxishTeachableLearnset, [SPECIES_DRAMPA] = sDrampaTeachableLearnset, [SPECIES_DHELMISE] = sDhelmiseTeachableLearnset, - [SPECIES_JANGMO_O] = sJangmooTeachableLearnset, + [SPECIES_JANGMO_O] = sJangmoOTeachableLearnset, [SPECIES_HAKAMO_O] = sHakamoOTeachableLearnset, [SPECIES_KOMMO_O] = sKommoOTeachableLearnset, [SPECIES_TAPU_KOKO] = sTapuKokoTeachableLearnset, diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h index 2130b18a2..6365af3b9 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -29414,7 +29414,7 @@ static const u16 sDhelmiseTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sJangmooTeachableLearnset[] = { +static const u16 sJangmoOTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index c018d8987..29eaeceed 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -789,7 +789,7 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = SPECIES_SPRITE(BRUXISH, gMonBackPic_Bruxish), SPECIES_SPRITE(DRAMPA, gMonBackPic_Drampa), SPECIES_SPRITE(DHELMISE, gMonBackPic_Dhelmise), - SPECIES_SPRITE(JANGMO_O, gMonBackPic_Jangmoo), + SPECIES_SPRITE(JANGMO_O, gMonBackPic_JangmoO), SPECIES_SPRITE(HAKAMO_O, gMonBackPic_HakamoO), SPECIES_SPRITE(KOMMO_O, gMonBackPic_KommoO), SPECIES_SPRITE(TAPU_KOKO, gMonBackPic_TapuKoko), diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index e346dd4a2..4530963af 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -789,7 +789,7 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = SPECIES_SPRITE(BRUXISH, gMonFrontPic_Bruxish), SPECIES_SPRITE(DRAMPA, gMonFrontPic_Drampa), SPECIES_SPRITE(DHELMISE, gMonFrontPic_Dhelmise), - SPECIES_SPRITE(JANGMO_O, gMonFrontPic_Jangmoo), + SPECIES_SPRITE(JANGMO_O, gMonFrontPic_JangmoO), SPECIES_SPRITE(HAKAMO_O, gMonFrontPic_HakamoO), SPECIES_SPRITE(KOMMO_O, gMonFrontPic_KommoO), SPECIES_SPRITE(TAPU_KOKO, gMonFrontPic_TapuKoko), diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index 49551333c..7311dfd0b 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -789,7 +789,7 @@ const struct CompressedSpritePalette gMonPaletteTable[] = SPECIES_PAL(BRUXISH, gMonPalette_Bruxish), SPECIES_PAL(DRAMPA, gMonPalette_Drampa), SPECIES_PAL(DHELMISE, gMonPalette_Dhelmise), - SPECIES_PAL(JANGMO_O, gMonPalette_Jangmoo), + SPECIES_PAL(JANGMO_O, gMonPalette_JangmoO), SPECIES_PAL(HAKAMO_O, gMonPalette_HakamoO), SPECIES_PAL(KOMMO_O, gMonPalette_KommoO), SPECIES_PAL(TAPU_KOKO, gMonPalette_TapuKoko), diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index 0a327b37e..81bc45d4d 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -789,7 +789,7 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(BRUXISH, gMonShinyPalette_Bruxish), SPECIES_SHINY_PAL(DRAMPA, gMonShinyPalette_Drampa), SPECIES_SHINY_PAL(DHELMISE, gMonShinyPalette_Dhelmise), - SPECIES_SHINY_PAL(JANGMO_O, gMonShinyPalette_Jangmoo), + SPECIES_SHINY_PAL(JANGMO_O, gMonShinyPalette_JangmoO), SPECIES_SHINY_PAL(HAKAMO_O, gMonShinyPalette_HakamoO), SPECIES_SHINY_PAL(KOMMO_O, gMonShinyPalette_KommoO), SPECIES_SHINY_PAL(TAPU_KOKO, gMonShinyPalette_TapuKoko), diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 85a69fa93..5e2e8a656 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -815,7 +815,7 @@ const u8 *const gMonIconTable[] = [SPECIES_BRUXISH] = gMonIcon_Bruxish, [SPECIES_DRAMPA] = gMonIcon_Drampa, [SPECIES_DHELMISE] = gMonIcon_Dhelmise, - [SPECIES_JANGMO_O] = gMonIcon_Jangmoo, + [SPECIES_JANGMO_O] = gMonIcon_JangmoO, [SPECIES_HAKAMO_O] = gMonIcon_HakamoO, [SPECIES_KOMMO_O] = gMonIcon_KommoO, [SPECIES_TAPU_KOKO] = gMonIcon_TapuKoko, From fc5c93fd83efaf64129a32f52646d7922177e0a8 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 25 Feb 2023 12:15:40 +0100 Subject: [PATCH 113/125] exclude status move type check --- src/battle_ai_util.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 4641ba2cd..8cb3d4660 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -802,7 +802,16 @@ s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef, u8 *typeEffectiveness, } else { - effectivenessMultiplier = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); + #if B_GLARE_GHOST == GEN_3 + else if (move == MOVE_GLARE || move == MOVE_THUNDER_WAVE) + effectivenessMultiplier = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); + else +# endif + if (move == MOVE_THUNDER_WAVE) + effectivenessMultiplier = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); + else + effectivenessMultiplier = UQ_4_12(1.0); + dmg = 0; } From df47312e329b9f9576036b4c7604f40e1c70d33a Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 25 Feb 2023 12:38:57 +0100 Subject: [PATCH 114/125] Fix move to battle_util.c --- src/battle_ai_util.c | 11 +---------- src/battle_util.c | 18 +++++++++++------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 8cb3d4660..4641ba2cd 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -802,16 +802,7 @@ s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef, u8 *typeEffectiveness, } else { - #if B_GLARE_GHOST == GEN_3 - else if (move == MOVE_GLARE || move == MOVE_THUNDER_WAVE) - effectivenessMultiplier = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); - else -# endif - if (move == MOVE_THUNDER_WAVE) - effectivenessMultiplier = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); - else - effectivenessMultiplier = UQ_4_12(1.0); - + effectivenessMultiplier = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, FALSE); dmg = 0; } diff --git a/src/battle_util.c b/src/battle_util.c index ccc7445b5..0a00372c0 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -9851,7 +9851,17 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat && gBattleMons[battlerDef].type3 != gBattleMons[battlerDef].type1) MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, gBattleMons[battlerDef].type3, battlerAtk, recordAbilities); - if (moveType == TYPE_GROUND && !IsBattlerGrounded2(battlerDef, TRUE) && !(gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING)) + if (gBattleMoves[move].split == SPLIT_STATUS && move != MOVE_THUNDER_WAVE) + { + modifier = UQ_4_12(1.0); + #if B_GLARE_GHOST <= GEN_3 + if (move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) + { + modifier = UQ_4_12(0.0); + } + #endif + } + else if (moveType == TYPE_GROUND && !IsBattlerGrounded2(battlerDef, TRUE) && !(gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING)) { modifier = UQ_4_12(0.0); if (recordAbilities && defAbility == ABILITY_LEVITATE) @@ -9869,12 +9879,6 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat modifier = UQ_4_12(0.0); } #endif -#if B_GLARE_GHOST >= GEN_4 - else if (move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) - { - modifier = UQ_4_12(1.0); - } -#endif // Thousand Arrows ignores type modifiers for flying mons if (!IsBattlerGrounded(battlerDef) && (gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING) From 31ab56bceb00c12a54f02c520b057911de7c94ae Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sat, 25 Feb 2023 09:23:34 -0300 Subject: [PATCH 115/125] Fixed footprint symbol names. --- include/graphics.h | 6 +++--- src/data/graphics/pokemon.h | 6 +++--- src/data/pokemon_graphics/footprint_table.h | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/graphics.h b/include/graphics.h index 443dc4ade..f00c72788 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -6960,9 +6960,9 @@ 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_JangmoO[]; +extern const u8 gMonFootprint_HakamoO[]; +extern const u8 gMonFootprint_KommoO[]; extern const u8 gMonFootprint_Tapu_Koko[]; extern const u8 gMonFootprint_Tapu_Lele[]; extern const u8 gMonFootprint_Tapu_Bulu[]; diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 314d081ea..1d6704416 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -6891,9 +6891,9 @@ const u8 gMonFootprint_Mimikyu[] = INCBIN_U8("graphics/pokemon/mimikyu/footprint 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_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/footprint.1bpp"); +const u8 gMonFootprint_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/footprint.1bpp"); +const u8 gMonFootprint_KommoO[] = 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"); diff --git a/src/data/pokemon_graphics/footprint_table.h b/src/data/pokemon_graphics/footprint_table.h index 2b0dd0a4f..8e21b0604 100644 --- a/src/data/pokemon_graphics/footprint_table.h +++ b/src/data/pokemon_graphics/footprint_table.h @@ -789,9 +789,9 @@ const u8 *const gMonFootprintTable[] = [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_JANGMO_O] = gMonFootprint_JangmoO, + [SPECIES_HAKAMO_O] = gMonFootprint_HakamoO, + [SPECIES_KOMMO_O] = gMonFootprint_KommoO, [SPECIES_TAPU_KOKO] = gMonFootprint_Tapu_Koko, [SPECIES_TAPU_LELE] = gMonFootprint_Tapu_Lele, [SPECIES_TAPU_BULU] = gMonFootprint_Tapu_Bulu, From 7ea82820ec66bfb91a4171a51c1a94fc8721964e Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 25 Feb 2023 15:07:45 +0100 Subject: [PATCH 116/125] Consider nature power in AI_CalcDamage --- src/battle_ai_util.c | 4 ++++ src/data/battle_moves.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 4641ba2cd..a48c051ac 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -744,6 +744,10 @@ s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef, u8 *typeEffectiveness, SetBattlerData(battlerDef); gBattleStruct->dynamicMoveType = 0; + + if (move == MOVE_NATURE_POWER) + move = GetNaturePowerMove(); + SetTypeBeforeUsingMove(move, battlerAtk); GET_MOVE_TYPE(move, moveType); diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 82883fb8c..50e10d414 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -4847,7 +4847,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = [MOVE_NATURE_POWER] = { .effect = EFFECT_NATURE_POWER, - .power = 0, + .power = 1, .type = TYPE_NORMAL, .accuracy = 0, .pp = 20, From f249b58c01862fdf55a95dbb866a14d3c9b28388 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 25 Feb 2023 15:24:31 +0100 Subject: [PATCH 117/125] fix style --- src/battle_ai_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index a48c051ac..22e88aac4 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -746,7 +746,7 @@ s32 AI_CalcDamage(u16 move, u8 battlerAtk, u8 battlerDef, u8 *typeEffectiveness, gBattleStruct->dynamicMoveType = 0; if (move == MOVE_NATURE_POWER) - move = GetNaturePowerMove(); + move = GetNaturePowerMove(); SetTypeBeforeUsingMove(move, battlerAtk); GET_MOVE_TYPE(move, moveType); From 8143f57eb9d487e3e2285ce6ec839739451b4722 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Sun, 26 Feb 2023 14:06:32 +0100 Subject: [PATCH 118/125] Fix sprite palettes up to Ampharos included --- graphics/pokemon/ampharos/anim_front.png | Bin 1115 -> 1128 bytes graphics/pokemon/ampharos/front.png | Bin 699 -> 684 bytes graphics/pokemon/ampharos/normal.pal | 28 +++++++++---------- graphics/pokemon/ariados/anim_front.png | Bin 1369 -> 1308 bytes graphics/pokemon/ariados/front.png | Bin 806 -> 794 bytes graphics/pokemon/ariados/normal.pal | 28 +++++++++---------- graphics/pokemon/bayleef/anim_front.png | Bin 1123 -> 1112 bytes graphics/pokemon/bayleef/front.png | Bin 700 -> 710 bytes graphics/pokemon/bayleef/normal.pal | 28 +++++++++---------- graphics/pokemon/chikorita/anim_front.png | Bin 880 -> 871 bytes graphics/pokemon/chikorita/front.png | Bin 517 -> 503 bytes graphics/pokemon/chikorita/normal.pal | 28 +++++++++---------- graphics/pokemon/chinchou/anim_front.png | Bin 1117 -> 1120 bytes graphics/pokemon/chinchou/front.png | Bin 656 -> 644 bytes graphics/pokemon/chinchou/normal.pal | 26 +++++++++--------- graphics/pokemon/cleffa/anim_front.png | Bin 600 -> 592 bytes graphics/pokemon/cleffa/front.png | Bin 415 -> 398 bytes graphics/pokemon/cleffa/normal.pal | 20 +++++++------- graphics/pokemon/crobat/anim_front.png | Bin 1121 -> 1125 bytes graphics/pokemon/crobat/front.png | Bin 690 -> 677 bytes graphics/pokemon/crobat/normal.pal | 26 +++++++++--------- graphics/pokemon/croconaw/anim_front.png | Bin 1152 -> 1054 bytes graphics/pokemon/croconaw/front.png | Bin 681 -> 668 bytes graphics/pokemon/croconaw/normal.pal | 28 +++++++++---------- graphics/pokemon/cyndaquil/anim_front.png | Bin 936 -> 887 bytes graphics/pokemon/cyndaquil/front.png | Bin 572 -> 540 bytes graphics/pokemon/cyndaquil/normal.pal | 26 +++++++++--------- graphics/pokemon/feraligatr/anim_front.png | Bin 1680 -> 1688 bytes graphics/pokemon/feraligatr/front.png | Bin 975 -> 982 bytes graphics/pokemon/feraligatr/normal.pal | 26 +++++++++--------- graphics/pokemon/flaaffy/anim_front.png | Bin 1125 -> 1127 bytes graphics/pokemon/flaaffy/front.png | Bin 669 -> 655 bytes graphics/pokemon/flaaffy/normal.pal | 28 +++++++++---------- graphics/pokemon/furret/anim_front.png | Bin 1058 -> 1124 bytes graphics/pokemon/furret/front.png | Bin 634 -> 658 bytes graphics/pokemon/furret/normal.pal | 26 +++++++++--------- graphics/pokemon/hoothoot/anim_front.png | Bin 825 -> 830 bytes graphics/pokemon/hoothoot/front.png | Bin 557 -> 548 bytes graphics/pokemon/hoothoot/normal.pal | 28 +++++++++---------- graphics/pokemon/igglybuff/anim_front.png | Bin 553 -> 579 bytes graphics/pokemon/igglybuff/front.png | Bin 392 -> 407 bytes graphics/pokemon/igglybuff/normal.pal | 20 +++++++------- graphics/pokemon/lanturn/anim_front.png | Bin 1145 -> 1097 bytes graphics/pokemon/lanturn/front.png | Bin 740 -> 680 bytes graphics/pokemon/lanturn/normal.pal | 30 ++++++++++----------- graphics/pokemon/ledian/anim_front.png | Bin 1291 -> 1326 bytes graphics/pokemon/ledian/front.png | Bin 736 -> 738 bytes graphics/pokemon/ledian/normal.pal | 24 ++++++++--------- graphics/pokemon/ledyba/anim_front.png | Bin 1222 -> 1218 bytes graphics/pokemon/ledyba/front.png | Bin 683 -> 674 bytes graphics/pokemon/ledyba/normal.pal | 28 +++++++++---------- graphics/pokemon/mareep/anim_front.png | Bin 975 -> 931 bytes graphics/pokemon/mareep/back.png | Bin 577 -> 520 bytes graphics/pokemon/mareep/front.png | Bin 619 -> 593 bytes graphics/pokemon/mareep/normal.pal | 28 +++++++++---------- graphics/pokemon/mareep/shiny.pal | 14 +++++----- graphics/pokemon/meganium/anim_front.png | Bin 1511 -> 1424 bytes graphics/pokemon/meganium/front.png | Bin 887 -> 852 bytes graphics/pokemon/meganium/normal.pal | 28 +++++++++---------- graphics/pokemon/natu/anim_front.png | Bin 610 -> 570 bytes graphics/pokemon/natu/front.png | Bin 412 -> 381 bytes graphics/pokemon/natu/normal.pal | 30 ++++++++++----------- graphics/pokemon/noctowl/anim_front.png | Bin 1159 -> 1143 bytes graphics/pokemon/noctowl/front.png | Bin 727 -> 702 bytes graphics/pokemon/noctowl/normal.pal | 28 +++++++++---------- graphics/pokemon/quilava/anim_front.png | Bin 1033 -> 984 bytes graphics/pokemon/quilava/back.png | Bin 775 -> 715 bytes graphics/pokemon/quilava/front.png | Bin 649 -> 599 bytes graphics/pokemon/quilava/normal.pal | 22 +++++++-------- graphics/pokemon/sentret/anim_front.png | Bin 948 -> 929 bytes graphics/pokemon/sentret/front.png | Bin 634 -> 597 bytes graphics/pokemon/sentret/normal.pal | 24 ++++++++--------- graphics/pokemon/spinarak/anim_front.png | Bin 727 -> 704 bytes graphics/pokemon/spinarak/front.png | Bin 536 -> 508 bytes graphics/pokemon/spinarak/normal.pal | 16 +++++------ graphics/pokemon/spinarak/shiny.pal | 2 +- graphics/pokemon/togepi/anim_front.png | Bin 672 -> 683 bytes graphics/pokemon/togepi/front.png | Bin 421 -> 421 bytes graphics/pokemon/togepi/normal.pal | 28 +++++++++---------- graphics/pokemon/togetic/anim_front.png | Bin 771 -> 720 bytes graphics/pokemon/togetic/front.png | Bin 464 -> 478 bytes graphics/pokemon/togetic/normal.pal | 20 +++++++------- graphics/pokemon/totodile/anim_front.png | Bin 790 -> 795 bytes graphics/pokemon/totodile/front.png | Bin 556 -> 538 bytes graphics/pokemon/totodile/normal.pal | 26 +++++++++--------- graphics/pokemon/totodile/shiny.pal | 2 +- graphics/pokemon/typhlosion/anim_front.png | Bin 1408 -> 1365 bytes graphics/pokemon/typhlosion/back.png | Bin 858 -> 817 bytes graphics/pokemon/typhlosion/normal.pal | 28 +++++++++---------- graphics/pokemon/xatu/anim_front.png | Bin 1059 -> 1042 bytes graphics/pokemon/xatu/front.png | Bin 610 -> 589 bytes graphics/pokemon/xatu/normal.pal | 28 +++++++++---------- 92 files changed, 386 insertions(+), 386 deletions(-) diff --git a/graphics/pokemon/ampharos/anim_front.png b/graphics/pokemon/ampharos/anim_front.png index 1b3930f64a134c42f1a17bb59405adff5039642d..4e71838b007865af7fa9ed4b3bf1d842546dc141 100644 GIT binary patch delta 1119 zcmV-l1fcud2lo1dVFz4bV%gt_L{%jCoS`WX0BM=Lb!rz%w z>Asvs`Tg-Mh<^-6aX~!0Ss3yNfHNm4S^g#%&*T)qALBs?A%X`0QhpaFQYq^7Y%Zn% zW2Xt6i`Fflk2DTJf0~R3*f)l=QHQt+P?PhuzyY|WWH)M%*S6V`fGD?01ia;Fh2vG| z*VX2Ps5Th&M+oPy;sNWnR^+~}9RT`%(;~4-Kyo7{dVgzSA*iRN+k@>@(Yvyk1DXq7 zhdy4Y+RHP5Y6F%eEC?S@Zbg#-_Nx%mXZ}s&hS^@gsR20y_91}ivp3i;Ho*b%zu z0@$zmB-e(d`5AW7V5Z;I#c>3rw2_k9hM9g>SNA)Ba>*`f=K89fAo^>7%NtN~i<=Cv zhviDdHGcuUo(~JA0FnCuE&*;EIEoBF`?25-z{M0X1!yYtH&v1WZn-)j%>@X+pn14FaqFt2l5MaEChEp zi`GsOq_;YfFNqleV$0X5=QKVA)lJ~je0m9gPk&q638*%>)ZZ+DJH-#j)~AE>-wG?; z$C*t{3<#PU{|^HKCddD1K+KN+q%0c{v*W)vAiV#;!~4Ye?^?HYjf3~h_%F@g^!Ok3 zGX9UxuI2bY4fsyrg8(e#lLmy=pUCo10qH6_$LNL zKOxEDV{&`rkbwaS+IH$(}@ z43IWpp*Yl22jD!u^X$#mK=}@-0a5_E41b8!0J#X@!hooq)*%C;0*I$FHz1ntaDGxZ zAX>L8oSL|X0nwaX&kjh#fM|w*g#*$uAet3I91!s@E)0lf2*Cjf2F8^E(GEczkdWzZ z1EO8!*a0aF41LyLlu33#n*KwN0RRa=4(&WyFI34GRpbt{FD@$d&1d$7$el&he+sg5US?G l@$|mi2|4hjGyLDohhI&(HHg4n5`h2!002ovPDHLkV1fjF1p5F0 delta 1106 zcmV-Y1g-n%2-^sd7=Hu<0000~l79t5rwVnf*wTf}{ukZb zp?m4OJ3FzRyNfzh;v`U{`||Gj-TB=Y%lfB5=n|m5T{8prR#U{$Vtv<*b{*H%0(-|t zZ0x&DEwKOoE$jI`eX6%#-?1QUYk|t^3&yq@(XI~YFdV0Js7(QZ^9~DWSGNLw|K%#i z&_&?Dc*K}zOn(6bv~<8o&Vv?MY0HjP1-O6u-#i0!F;r<%|@uL6d!$4DJ9^4)NUt^3P2pgaHs`3r+yq?htSR=$A`0z z5o0@X9B*JEb7bY>DvOWv0=NS{GUE0)mLV$qNQF2be}51__B6N0uMTJP%oe~9r#)&F z0Wm-3E5vcFN9Vh~a&ajF@cDB)1qzS$>@)w*kE~~d1l9`x5xm1#3+wzw0QU;O>QSCr ztOAg8)|gAPo?d0Up9m0Sr)HffEh~#0r~=0Gwz90Bhfqq)EzE zNJo`|H<^5+yosoL2mvaODp4+hdzLjoCj{loIe&t2Mk-rC6$_oNg%we>0OGT34cg!N zq{?yLg?q|w`ZQK2KM%2_2|tn{1;dc65R9rp4}@T>8uWk*Mqtu|y{jXm9$5PqC#+@A z1MAC)Sq~~p^nkZgt_RwyH`4DVg31|ePie+qfExlmitL?Mxu0b$tPMmf1g26ov*m+Ga7?KzdxnQVw zLlENLyKZX;u@yovJdLB!P~OdVkZ+VZL*dVm35LQ@1mMpMWWi7@ae2$Dx1lhU0#Fc6!ykO+pI?1|TUN8zb zZ#_MwdBG^$drl~;niq@$K-w-ps71jjBtczpo3tnxh0BN9Ew?Nf1%NnpEWv>HpMyl{ z2M+2(H1M%M9VALWAOe6?4|o8D!$d&_+^Y-(i6AqSb)`TMil($S;ex@NgzDH6XiH3_ zU|`ltM`@8%Fff8bAkYbFxzCI5XZ6&dXXYpb0=H`ZC9)_GIlYh%Ren(HK}&wN|2Mt( Y3%)DKK1$T4$p8QV07*qoM6N<$f*>gEod5s; diff --git a/graphics/pokemon/ampharos/front.png b/graphics/pokemon/ampharos/front.png index cc9711f87d9def90a2dc62fd6ab60e82bfbc47be..244dfecde3aec8bbaaf5d7c9101280dddc8501ef 100644 GIT binary patch delta 672 zcmV;R0$=^R1*`>-7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gQ5D;2g zTK~lm&5IC&S~0~z0RQev|6&0D|No010IaO6=H}-AVgOnI0L4K7CHK{^0006iNkl5au#1hCeaLVyW( zi1o%G;sPlD#sS7Thu(XzUi9Mt7h-VU69Z@_plevyzz!gwMH&a7cR}>t8X$?pu>NBf zfM~)2H9|cEBPR6`iWhSL50vzi4t%08>;Sd$aR4-GJA48rkP4B~?@U$l%~{OvAJ2lq zUClx!4kl+GEilE}U;g z04}%-xy-c#K%YD95~~MP9kJ5K2n)e=T5=4+dZFjB*na|kHCPXQX{c7@4Z!>kSSq(5 zU0&{rz5?ubF4WKDq$ObSDd4n#oB{g~AnThG>^DJRK$~0|iOzxjZcpMhq|VP2NsoXB#&9-Q4we0K>_i(~S43mXP)L0L~jQxr_S-uqWdYaZfU?T5iPfDTi{8epl@f0>dBVBQ0ZR1{`;8D1n2=z^@=zE zAH8|5R|F*jY+I5;#y-<8+7RUZn^?(j7y;<_4zvw)%muE^Znet^@^m_qjKqcjW#xOQ z*EBvk^_Za5d^&{m=@=gZE*D&SzAOP(@ypNFw;3PK|7Sl8>>6STt$Hp10000kicTbdDz+l z2@Gw(Oy|)G9Dm6?BHDU%*aR`7$39WkACZ9F1`2?SseRa51upggY2FSz@S)!h;3(gx z(0;YMem}7~C1cWNr3Rue)^SpF5QV_$)C!E3kr3Y!%>G2?m-nwJ=chu50X4Ei4%S~Q zeab7~C(5XZ&0J`Sj=WL{<;7VV2GWCbA(bJ$J&VEsu6 z$o$GJf!fg?UCUp2WkVM=@T3MX#e19&$>(!p|CA@RBwiqvgqS(gu8oj}ge02$UqXdfM1_0O#0A?DX zeBq__CVwCf1{jVNAoJU_0k9ZQ1FJ&DT@#>>Hq}6=0Pin=L7HX>t&gx2$ec!iM*unf zvJ{A$fRu1cfCQQqB;iRwRX8>XNTMGjKK@k{K5M#AMi(%=z5M}liI{f?L(o^18B5U2 zss-pJX#6;5xTr|u3h0v2Wi4{VumV`bs~Rvly(lvExZA?HahpCA=H_=2dzSEj#&2Tt V;W2-!`>Ox|002ovPDHLkV1iE&I=}z` diff --git a/graphics/pokemon/ampharos/normal.pal b/graphics/pokemon/ampharos/normal.pal index dd9818d6b..af1e4ae87 100644 --- a/graphics/pokemon/ampharos/normal.pal +++ b/graphics/pokemon/ampharos/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 16 16 16 -88 80 88 -248 192 16 -200 136 16 -128 88 48 -192 0 0 -248 232 72 -248 32 32 -248 248 248 -168 0 0 -176 176 176 -224 224 224 -248 176 160 -127 63 75 -198 121 121 +90 90 90 +255 197 16 +205 139 16 +131 90 49 +197 65 0 +255 238 74 +255 98 0 +255 255 255 +139 32 0 +172 172 172 +230 230 230 +255 98 0 +90 0 0 +197 65 0 diff --git a/graphics/pokemon/ariados/anim_front.png b/graphics/pokemon/ariados/anim_front.png index c579c4c01492c742a68b81840bb08cea41c441ac..024aa0bebf9e98b4c1e72e8d2397ee354c54a71d 100644 GIT binary patch delta 1301 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 N00>D%PDHLkV1gjBX^a2> delta 795 zcmV+$1LXXg2Brp(7=Hu<00013M{Ml?001yhOjJdf(4c5g82H#g0002Mut=C#z_@_m zU@(}7AOOfHIPget@Q9dbXlS^&xcK<^Pyhf&4~obD00OZ|L_t(YiS3jzZ__{&$1l2} zMd}ce46Hpn1Dl&?w{=^PV!IM64R&S}<+@g)VPPp`amLDvuYZhLuvexgEU0XaI(Hx} zl^8(kXW%(@l1pPLVnw{c^4S}X%F`#tPheV;7{l0b89Dr=|$Jc95){Lx-`FPlb!RUQ!G8d3za}JEJ{nm} zfk=S)eo??XEs}%l;qc29SPGaTG(Rj{@(w>Ou3slPM1L?bA;N`A-f?w%Jw`v)DFCg^ zQG-bmYi^U)p8)jY!~hiD5}_lNn;JW$0_ZZ)9|bkVLqNU}+bx9@J`UmtiAV_D_P80! z0=#7v_mcp+7@YtI3~mOpK>I|05#upo1x-=r0EXL;YE9cNCboNl`+ovB#|XQ|QB~TZ zR&D&azkeSmDPR?J#X|{8>I=%$6F}k?B?Lg}slglINNuJw%oxVwTY(wiTGMb}f-ZGV zO|4_8VB8a7Pe8>M!I4_tvSzJAJqLl#FJFjGLx63Hz+rW8s%>qS0~X!*eJO&U2w))) z*d)5gPcp!LgI{BRAcDJAn4Gk)TdatUnDtq$sees?OVNc^KmjzOJ1Dv{117=Hcai8C zS$*jtw(*+bP4=K^Ive{!^n}ndz&lRrGa1n|o9BCYO8)dJ8!kqeEu8|l=pRpOLnrcj z3Z#=acfIi0c>YFt%_%UQxm!QG`97cN;FYCBHXs}K2lJtx^Kes;2YGK4`5S=1D&U{8 ZKNQ5$@ov96lzRXG002ovPDHLkV1lC)Y^eYM diff --git a/graphics/pokemon/ariados/normal.pal b/graphics/pokemon/ariados/normal.pal index 5939c4fcb..66aaa7bdb 100644 --- a/graphics/pokemon/ariados/normal.pal +++ b/graphics/pokemon/ariados/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -104 80 24 -248 216 64 +106 82 24 +255 222 65 0 0 0 -192 176 72 -152 88 192 -184 128 224 -96 48 152 -136 32 0 -200 40 56 -240 72 112 -240 136 152 -104 104 104 -184 184 184 -248 248 248 -80 0 0 +197 180 74 +156 90 197 +189 131 230 +98 49 156 +139 32 0 +197 65 65 +255 90 74 +255 139 115 +106 106 106 +189 189 189 +255 255 255 +139 32 0 diff --git a/graphics/pokemon/bayleef/anim_front.png b/graphics/pokemon/bayleef/anim_front.png index 3b5b90f511e14e66622bbd863e9e024381f33986..05f44e73b544892b06fe09fada1bef2560e52d28 100644 GIT binary patch delta 1103 zcmV-V1hD(#2-paa7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!gpQV3Fe z2#dWjYMc-d5D=t;7-~`g_U207y($0y|NsAstT6!9i&A1@V#US9bt#JC000BlNklFz~?(#kZEVyIZdW*F4;v75PxX7Tz>-H!8n5IkzI<$qpK#?jK}lTs z&H^VqtwetZM9eVeF+nu|#$$+NI8^n<;2s!@O)-FE@MjEE?;rROC=EWwkbon>8G;1} z7;#0MaUsO7?0^6Ey~2zOMDQgwTsI*|qb^_}fPGtWCXGap(+}Gkrs`03(GK5}g(QNI zp*Xn{Af?1-DWuu01c*s&dN)IdpV*4o2UG`Ut^?Z4)d8nHZHz$Ik3cPLBn#ZSiJ;;m zooym8Uu)cu+2hud7!Ta2ZEpC5uLP)gCXm+bt#NqqA%ArQu*hfTJWyL-ngev0W%-dj z!jXU(My_OeM^rf9sfjKY<8Gu_`HMSZ!7sA9^@@@7@t5leq$r0Y@jjgV>l6etNE}Y^ z7!fOo}t zklxw|l7IYpnNRVV!`F3%0t6p&m$}B*Do6!=Ehw)nZ7y8bQ!?oCb)v~DaACmPEh*k& z>m&_M0o=pcu%1LAD~k((?Lc5ksgJzjuj|+2OTk0x3~vk26JV$q&E9Yi zY=I*Ia6Kvml&i{=#p*2Rx|}>n)+9b^wi*F{hky3I1R-Q!VaG-Q`@Y-u0j%p@HasM` zV)Me*$9i^F|G5&|@GI@$4%ip|*vCHhhwLM~{HwwX>mGB$3wsLPkTER0Jjot&lVUG> zOfVGLV_x^jvd6scQDqO+JthdEFsSY^8iUFn)4GSs9`m|~ZlY=3g9%jk=w%0cLy~88 z)_*^tjnJ=m^}{=uac&wrxC>X$;PrXYR~^M6e~$B$T1w-kJGXwe#vB=Ozw&tV(`xbJb`djjci{ZDV?#jGE6aK0O2 z_fE%4f|GvG1cWm2;ibTN)(?&X!tLyS(0>ok0z&M@k9Q1BKX@e|#B@LRRQ=$UfDkQ% zm+A+v1cYcAysCb177(Ikes21~lYpQT?A<=h`hgy$L-NW9dqcpdsXvUWom7H5d_TQs z0in+R#_5^Paynb6B=-a{zG6TnxQhXE&Ja%o`pJz8m~_L+(Ay-0!ytampuZ;9gh;}w zf-pkBH%-5=Q9=L=b>0VrVF^Ko|D^v_2fa&12?3wx^{gR`N(cu=))0Oq0sQw8!fz>F VJ9y?**0cZs002ovPDHLkV1jc?2w(sJ delta 1114 zcmV-g1f~1f2;&Hl7=Hu<0000c~G1~3!P8r&CL5TU&j7Ub9^+r+xJ6pi}Qn#+0D5?yTLh+OvIjc3lSs0 z4-EdW_7D8AagAU8edh9Lzny#-AKWGYT|H92i6R+t)aJ4e<1H3P)DpEx_aR z6e=5#BXIvbw`ZBZ0g&g1cEH0LzkKSb(}P2RWmhAn>R~qP0^Cd~)wvr}rB1-!2MSRj zaNB$w$bu=ZunY!vfC7|aX!df>t}5DYK6FeMZ%>5#)PE`%hq5OOJGvK(VXlEF5TR+y zxd=}*FySIH<>16O$q$u?O)H>{Yd}rt0vT5DeLAw>A5_xROCE<|ivER&rRnxyk+JA& zAQWkRvUe785by`!!y*jsQ=~NhpSZ+rHW~ z+91R=jDJ6bazcOt)j0l6h)L3)p_J)rjc2P-NissskLhP@mkPcmJ(Kq0K;~9O7FHJn<>L~6m%!n+OLXcjWw{DQT9r0@Y4vW zO;H0=8&J6tKk>^5c=T(6e^y5b7?Sj;xf&R;xqtCc-IThv2xaZ%xGKSE_-R1f(4eITH;sR!n& zYD)8BGPI}%CMN~$co|sK1J+logL1rGq4n6h*P$kAkGpCtg!)1I7k;XrdanUo>Ia;y zQM$w+`7ZEFKR`h98|Ka7zts;5oX(+$Q-3`?cbCxm0fIq)5sGj~~-=SOA&Lbp_LQ4lJ2f%>9u_4R|tXHR|kZMWbCy6(qm3BFwi>C@P2}%X_*_=IqsP g1cEfmk3VTY0g{gUKIWa5umAu607*qoM6N<$fc0004VQb$4nuFf3k0000mP)t-sn9!gpQV3Fe z2#dWjYMc-d5D=t;7-~`g_U207y($0y|NsAstT6!9i&A1@V#US9bt#JC0006+NklcE+!``cG;kq5kr~ z6|bK3Gc$96fyV`H0RYc=Q{$L_Ef!JGv`BA{f?+<$q{v7UwiJl*~AP{@M&8KNb z_|30TkbmKGnKJkIUInXQ>;;8q8*}--o|eH-)=5iVg&PCEZAnwhW0DNG2JjvZ<9-s2 ztU5OW-+^EeIY&P5_w_sDYr(UejNcaEOu)HgTK3*o@S;Gl6;1@?Xn`vMp&p%q>Z)>O zv5TeV7s(^>Ch^g;H3;yF{d0+OE?Vi}K|sfG_%r%|_Wh_0Phu;!IQCxFi`e#cSGMU} g+C>ie9sjrX4Yzq6HIOAH9{>OV07*qoM6N<$f*veAS^xk5 delta 688 zcmV;h0#E(M1-u227=Hu<00013M{Ml?001yhOjJdf(4Z(#2vB$kh`2Clm=F*U5U7AC zXixz7=%CoRaQOK6`0&WkH~`RyP+(wSz`($(swKGq00KuzL_t(YiPe?8irYXC$0dVK ztz}{2_IA+&NE?$rPvEoJSZ=Nhu{$@1rF1TY#*o(5%@YK!2!Estt!*|1>`$bIVbr&1D_e zjPX|=dVxxYm&xmFe8&JuBPoM8vz})ON$Do&ewKJQyRB!fz4YD!Y8I}cc9hRH8WsRh zxq;x;PKdbTVt=kCS6$qU6l|7IyMZ{b>yL#y#`-hBhwnLToxoRs_s=;TT|hy={d3{Y zviJgEpVw|6q#A#GyHaNeYk>M%BUbosx48xcJ4C!XjTPb}xck5^N&@cWcLC_){l zZh#$BW-6;nc`uO1t){-Tcmtz{+$xxBJ2JvV2bq}`Eq{>2MoS}CMnAT|LYYL$!Ovc? z4o8zo5y<8pfD2wAAwm@Kk%ee{v{ElsrgcvG-egwV9x5_3lNQh>?@snvAfJFJg$VYU zF$o;V#S+i_L^?I;-b65>B64W#63zk7#)<%yR|{>XKx02Ny*3zgOa7-&Ef_$+-tqS} zCCM*CWqd2>I!fUdAl} zLXsgjw*_Y2gLtUkY-V2Ys|D_V3w;Qle$vy`t|@G|t%3vc%YmLgIlpq9S?O2tkL?d8 Wd-<|t)QNEb0000a#3*ylTuh(>u&Ls zss|F)q@==286wDA3nGMS)UnWq;u7?9R)>0P!y};nLQSQO;Q_A1sTc&BE`z1tmvv7t zD&3=z^9i`01_T(J?NmR0Ho;J0Lc|Fe4E0a*70Sdjo@fPJ+cli&})76CKs-Ma>aA&3F6 z&5qV!-nY%Uj)kOQZyUHdmyyjQ4I9tGqMtbD#|hAsvb2=ea(#RN!W$vklTa(Cce()n zax@lH^%om3sngSw2Q~no8nmjN4#!>$`=N~h_I7|zF@NbD+rlNl4Fa45fa7-;asdGE zg|i-n07pkMWId4HvH=kM;>YpWL0D*k|56em+#LzwgJ?W^C!)^#c(aLscr7^<^34XP zLV6~)q;(ZIzxFbwf9k1!vO;tkQDbW8O@Nq{Vr0_vTV0GuYE^QJh!Ewf1RqKag11~3 z`4l6E?0=Xb->OPp(gTL#=X+2;{hnTn4@fmN!k_$+{!pL-FI133RTa$R)`K%T$T^9cYw$+0pJ6MRn# zAPpcTc(Db)r}3u*F9w_wd_Q38Yyl*|763i#;D2}gg>CjdCwM8qZ4RHk9|Mt(fm}BL zsf7e6xku6h07yY28^9Q=*m36t>uRmdv6(KEXeXHP`jDo{&-_=~IF~|Wo1gi~I|I@J zf^->71pvqkAvl&oTnrGL(6W;JE)1o;=%O+ZVl1CvQ&aXdACh6rg^*o{j%RZ;hVv*W zeN_tpNNC(k+6M>0 delta 869 zcmV-r1DgEj2Ji-u7=Hu<0000yMG zPAc*ODKfKnMTmrIZaGDN0##T~{_4q9_}H z0JKFD8`5L|Yq}*0*ec4*T6H2suCefUI&DP&f8A)^SH1kr47&fIe$E@&-$j8x>8-?)b0U==sghsym0O{`Z0>M*8Sz?vH<4>IAeiF5v1^R zzyjCjkq$ole2y;=fAaf=2fhRF?$@^!!2GLz!vQk@#sHjJ0Z73DZ$lkS?qa^rVQ@Fn zXgv2>&q75Bi*nw~r5YxagT=;3=F!s{~Qx2H=0S1_k;(ZD@h-1|Q;7IL_ z$nTIJU6?IX!nvk_8+iTF>;rMRpy6xBW6xw_&h3#M5Q>1+{_me_`TY;=#i%0$^{r!9cd z=1!dpu+c~oY_b_J!1fdVXjid-Ht$DyZ`Cb-jT~fP>q`NvUu>=L!+>D-n*qTNC{ijG z=7D41Wj^0QH}3brvQ1&jOkLTY<4{KmcGo zo?G;PcBfI-S_!6fNQzY4E9s%spX8^Hh0MBPfMrWumb#QCccR*JW0^pfEJ{{u#f~S=*Nx*X$ zqh5UL4c0004VQb$4nuFf3k0000mP)t-sz`*!oizz{3 z7=z|9YP2Z;002Q+7=x5j)%J_-|HZV;YQ@FH|NsADL0ZKrDeilFp`(M)0004XNkl5ju741@~_m~f=;|F&xbO>?k`O{A4p%KV}g^D#C@UVpDgkN$}iN^9M19;$jE z#Z68U4rPdJ-$oE2)W%(eITV+mhrK&%)P_euf5T1E#_#|wa}|R??J_7mHg!!fs?O2K zIRdWRfB<8cIIARed=UY_k*xjxrE^84e~35-z%)&+AbtyYT7#daOTy{;ZUyKeECF&S zKhR^|sa|J{sz&*emZATNr2apQDvF=_QkV_B)AURKa;O3OP z@7PExJ0mNAp#}2TOvb2@fa&sI2`9?_2B&?moSO>u0j!gu$`o#te zYPWjLzy{!|*{ing@a)a72X6tej{_Xd7wY_Jv5H*rgfQINcy f<(~i1qrcJ*XCW5~JXLB+00000NkvXXu0mjfrcvJs delta 503 zcmVT7=Hu<00013M{Ml?001yhOjJd{!1z#zAV6RkkkDXgut)#^0AOG^ zn3!1L=&11U(74EWz`(%x`1oKzSimSK=y-Ux70(?200EFmL_t(YiS5*}PQpMK2k?`m zkhm2S;%EvyKsla(VB(00M~qV!wQ+JGG))|cksggQ+Xo=Tdw&52)KM4X8}JJH0uFw6 zrPa{y%Ay6+n>0~=J7^}6@>}S9stSQuw641&5=Ez2>N(-K=J^Gvv z9krJ_V;y4DR)0V#x(D%Vz*srxLlkk&o$TR~0wV>6TCg2Ki#`vuU^a?)@aXA#JVE{O z*IWw400000JX)YJ000BtNklHc3N0e=GN=jXA<{!t5T0Pwvy zntj7aDd%Ar0wNMB0N{0Y^d)NuY3%;10RZsYPE+VID*(3CJ5Uplmleer(E-Ylegj|# z^A&&T;v+do-m4h^z;h=n`DOA1wrJ>7s7ruad6h+3=nqsTL3_Y?EQOP zCm^7+9e)iNbHC{t3u>rGuG3PB8GkOi=-BQp8(6< z_D2Akj@$+@hu~CDHChR5h0~G7vIA%ZEPe%37dC|Eqi_iII=qA+CCmpHVPOQRc6#C0 zPA0Vj{eMbm3>?5w4U_%Q6R07Kr+T^C9YQU55gi7g1}%bb=`an4b=M672$n#AA1s_t zKHhlwxxi{E=F9=RPbf}87_Jk{U0h#0q$O&&_}*9zx3?M}Ro34HSSYgr-qx?7JoeaQ zk3II-|7@^c>R(v^d!K!YkmsFv05W^{0ui>!3x83(I=-m%L;WBmxJwXy{WIMJgt+e} zuZ~cT^t+xNJ`A^{Y1;$p7ZSwt;nrB3c6f6Ebp8>Khg&j7IRSv}3dHGvAU%ZBPA`CM zK@SMp#d!U=B>}2r;^YGI0YF`-^$c(b)<$`aWDjs%&`!_*yGfS-TD=FbS=_rMXESi? z(SHFtg0-UWcM^RM*zf1wg=G47VZgGVwNumi1$+V6+D7iRVE zCpEuY&Zbx}$Ot7h`eCSD;Ddh(C^EAs3x6Rc1q?0VbPQH9_vQYWe8j@>7K)KLEg zp~=AcFf7ORGeDjP1j__uJxg~0;srybCT;iO0ytlVj#H1(ZaCnY6^>gDbcD5Xd`tM9 d{ISP;`wJozBS8h~8pZ$s002ovPDHLkV1gCV?wJ4p delta 1108 zcmV-a1grbt2;B&f7=Hu<0000}@jIJm&* z2q;(p004ksP*5ls_~?MxxG<2Q;IIGy0001fzMgvk00ZbrL_t(oh3(frZ`(!`0PrJ0 zfKsNMDM&8h05S!X9-4u=LiQp+MySF`v>4$5cJ0M=ap_P4vVRNox)_k`7?ulkC=df4 zG>)@(i&&w+q<8S$8LF?v#wu5)C!|Q$yQ2umo z1SnJ{L2<{q8GmJg4(|&v#14K8(m+SeyJ`%u{Y3Df35qB^z7xR3)^!S~kg^{SqawE z+|J}A2rEEci7EiaPUj)=$U%k1pq&7a-5u9%k^}Fbet$1o0OOWeoIv#peDRm(dE>P_ zAQP|R4$d~4-WZ{%L>uEbqV?uMA8%c4B4k>~>i*Vc$5U-5V9ta*%?7t4gT=LvYsUJ{t{s<2(Xa^;7EuQ-qlO1 zmjY@(0*gHH>Q|5sgNsG&!4Ex<7e_0)-vK>E@BrK!Ghx{g>*u zkK}o74Zn>4HKx`God#GL7BbEICK6@lF^_rtkAETiZ~lysY6z{)5Rz8c_5KW@)vN5) zK3$!2_@(tI%C6wU(QZ#WdZnCR1MWrqWE5%^M`&D zwN;8z6W0)@fXr?O9VeDh-1rptL9o~3#1b7G1Gx+2pi%Yj7_<|BZDTpO7pf;}u+z() z1b^T-20M-&oc|oi;k}AM$8lb_Boc1KIEjF0qU|_Nt1Lh?p~PK2W#CQO|1{u&L06Wi z0?9vF;b0|dR~$M)327fb2+n3Sm;g%9;&3})C@Hujr8PvYII2$qW^*4m@$7`4w)Rwkh z`k=E*c#Wc)0i~@C21+0Bdmrd}5ods8-Lf7w{=o0Zepe@CH~~uQY>XNWE}xM-mj9lO zIIXl;hHQ-LytsHo?lcIOc5ZM6$Pj))rQvOv)M10L4=4-x3}dY~_6=RvUB|h}0!=`D zfl#Fvd_Fk<3{IFZSbiD+bZ}0C_tpoma{vpK&mQbCvvc!NwAp_xGl7Eb{0bth&*bNk aiGKkr6DrRT0143m0000c0004VQb$4nuFf3k0000mP)t-sn9!hFbHyoA zlxn2r#gqX5%~F)j<_IZT0001kVp38m82|2r=Cmn$z2>w400000JX)YJ00064Nklg|DU@jpjHH1z5B8co|$%9JLhW>LVw`r=h378R0J{e@6AKe zZx|tnjN?eEYML3h?IJLjubFX!Q0x+?-7}->gkl$&s;406RsZV+dzuci{UU0qhBiWmOjt4IrKQ-vA|AT12@a zgp>kg9{{@AbAK*JLUeoV`B#8e#iXH0!mMjw3CGpcv9lJR0Cd3L0=oms7U#S5o!k&%9128G$oqs~`ckKW=At(<3paMuDQSsvo zKIy@q2Vk#^jFLM+%K1Ww#DcS|0+a#R-TtWIupCc#kp#0Op&riP0PETI#{sz$Ke-EIZ{002ovPDHLkV1j*)B-8)^ delta 643 zcmV-}0(||11&{@h7=Hu<00013M{Ml?001yhOjJdf(4bgwz$j3Vc$nC@m>}@jIJm&* z2q;(p004ksP*5ls_~?MxxG<2Q;IIGy0001fzMgvk00J9HL_t(YiS5)eYui8+0N{%; zNY0e23U(m@qYlc_L3z+-5j1dyCU`OELEL&t2c?TacA?j$V1FeIaS9y@4S49_v40?w zmISOR?GOT`i>CgOo-FGurRQ|%&>?RShu+6~Psg1Ixr=`tl$!Nh(*UqxF3dCZ_W0Y^ zut+dO?h~RNgSv~zx5v{}u%XJA5%GDt)D2$&8XXf=c^FZi&(=(blsLr0f>+ z6k@Mi<#W);0V;MUaviT5{|p9M0mP@WxJR`Ic=A1tzLF|c5?Zo#4PSf@GK8VUy6fts?Tgt09ufNTAKL!ffU0^Ma@`yH6W_! zubasP{1CkTx(XavF`Qxu5D*Z>iz)c{_|1cZ|D>dx0000000000A@I%!0005bNkl3{R>Rw|WBr86R;Ykp?A z65)PE#Kiz^sx$817j<(Juc4VMYro$YA#RL$kiOjSnGD$7FBk*9@Iz-K49|DL@Z&QA zmSySZ5^TYk6Y(V#Cg`dI=*iZVA(Cx*~;x|IcfDhg;mh&S40a1k=C8S!x zgdd*@uYNv8D}SZ>QMV@ERuLt%*0KSlEbEF+R`ODwTd!KY;&y9shYYq0@kOo`1rB=WhfAdr#nh(0>q545O#< zKVV%B>dWK58+xpOyaY_)|Dg9t{6FA(7XJ_UPUHWecjf)E1)N_7RRX>8~SC!XO9Bzd3gB<=p0|vW#4T*!jpw(~w zzo&Q2(mcDp6`)yq9|`*@K$`xM(2fMMMiVYU7{zagmW=iWM~9rGAnMZGRJypd5q~;rVxfbRLfXz^L$_*U z%^TFLK0+Ts@Bzfxck!nFnZB=C1VwTPcR9Z#-@RNoM~G6T{<13d0zlfEi3(tE6#zIs z;r-|uzH9f=8RutLvLo%o=|jr+OC=#O%(9FkjA?cW2b~;jDOZX+EK&;d%z=hH9&6E7-1KluBv4VGYWr;xsD1&xZUK-m zfG|INFHtiZm@89xp&nsC`@--BX?mynH;gYt`n{AYRe!3~zf^HOKw&+=rg~75P8SWn z9@NItvB1}Z+IShj0wS&+jI*Vu!=JAQadv^ai-LN9&Gld%?wjhtI^5ZMpwnLmYmnE2 z5xLR6x&I`sgO!!i2T_FwyuAU^rn9}8?_lR8Uzuz-wPi`YG?;o&4L@3tWBOb@SOYqG zTYi%Ultd=%A4&f+F8$}9>3_zhzoAq!AA$RT5Q)+Sp_y#6*U|{vH|n&{**P&Q+d-+{ Z);mLijbH)s@B;t<002ovPDHLkV1lBt3oHNt diff --git a/graphics/pokemon/cleffa/front.png b/graphics/pokemon/cleffa/front.png index a8d989f263c27bb07603e6760ac8a9c935f5da57..5b28503ac2ae9ff943ae30ed7f2d8ca5203e847d 100644 GIT binary patch delta 383 zcmV-_0f7FW1C9fb7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!i8P*DHX z&HtpN&4YttAQ*E>F`Qxu5D*Z>iz)c{_|1cZ|D>dx0000000000A@I%!0003DNkln7ok)NE_{C&y!N;s zrBtd%+lzQVMR-I|)hd9D<@rP<8$~gymLeFcaF2nGGzebFV8SneprZs7-Ubta3I4ni zXyaxUB82-S4?y7{?d*>g$Rz**Q~>8SR0E(EW8czhM*u6nY93Zk1;NbgkMsNTRA1Cq dtJV51{Q?XE2zS&8C1C&n002ovPDHLkV1h_es0;uA delta 401 zcmV;C0dD?|1D^ws7=Hu<00013M{Ml?001yhOjJdf(4eSLQ25Zu_@JQ3fPhdiC|EEc za7Z{15D=JvaQOK6_;678n0UZIKmY&$0001Kmk~%EFQwsedC%gw%lvBsV*vR<}aa z;2S_zj=&u_0T;sM-}ISGNDO(3vb>+2&sG@g)8{`Y8gu|IeisoS_B#O1&cnUAg-*rH ztwVi#!*ec9R!=U_KS~acMccNNh*#}3M#y)-E{U(i)?NVv;K5pJD6m+j*roA(Ma|Gu zA3ZW-g5VH%#(&rY@}O~rF>nvj82XrObMy*azWAF8TxJ2}BR_=FAuudX-!S1)Z)s5S z1HZl)PE}2BQNjaJAW=2_SCnazLLU1^Pe>5SuVgwS!QMBRO*=px04(|JRV~*v*vLex v(vL8wdlsv?b6a_F7w8#tKd(N0{wnX+yhq)H*SrJ(015yANkvXXu0mjfWkjgU diff --git a/graphics/pokemon/cleffa/normal.pal b/graphics/pokemon/cleffa/normal.pal index d6dafd798..c4944c7c6 100644 --- a/graphics/pokemon/cleffa/normal.pal +++ b/graphics/pokemon/cleffa/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 168 80 80 -248 208 200 -248 160 160 -200 128 128 -80 48 40 -88 48 32 -112 72 56 +255 213 205 +255 164 164 +205 131 131 +98 32 24 +115 74 49 +156 98 8 16 16 16 -152 128 112 +197 139 41 248 248 248 -248 112 80 -248 152 120 -192 64 64 +205 131 131 +255 164 164 +156 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/crobat/anim_front.png b/graphics/pokemon/crobat/anim_front.png index abf3b22be46eb2945cc395ee1587e422dc0951e8..9275d830942664f0889805238c7dbc8bdbf96d01 100644 GIT binary patch delta 1116 zcmV-i1f%=m2;~Tn7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hFDRYBL z&CQGU5D*XuL24jsl&o6+N}RpblmP$L0JH!AYHDhvq@@4<{{R30TAy<@000ByNkla>X3`LPF|gYo-B$_dRBo;6xBY94kmNxxgs*u*lJ7|`fN26o`My&=I!BOa zrFxYY20VZX&UFD`5LCZwP#awkb|s08wdd8L39idI+yep zKp^l1*dbt{w|`Xt-=bpy99ml+K>&z_-W;N=K3g@AEp!Zc{e2M>fSp}73E-?vggRi~ zgM~|eK-lCVqRoUBfGxVF+O86p$d?(c?%`L@#-KoPyjgU`d|TblH=WbH(-lg zkO1NNss%LB0{>5Eg-ShXob+jdi3J@4COxQuIDnhf2Y(;6$%2l-K+vBIRK*!$13|~& z5LK^Z@dmnb&#=jYWWJ;)(U0X3Ar=nRn-}^gfVWw12frl{;q@&RzF){N+2!+kF~Ng4 zUijmV*MYo#7WGPS`1^kUqT~mV9I>Ql0yx&c-#^aBs$QPjTO0(!vRtQ~-J=e{^%8v> zkb@ryjDHoE@V5?n>?P_JAX(sK^1uQ_06Ss%vISO%D#a>6v{VA9`?{*@WiciFwqyaq zv=b7kfBlYo0N7~L%%@thFo_7p({J_ajh~vH=p2{hJbwEstlYoj@S^(6CI!A!c z&LNqF5uv+c_=ye)gC(bkE@8OhXs|CPmMrv_(|?2X_lZw@;uD|vFY&OymGx%*1GNKq z@VV;>0Ql;6(Lm}70ho2YZx{vn6MY1T{H6!(LtX`!z9bkf9ku0nEm^>SiJuX^yI3MZ z;pmRz{K`-AlL`5y*JC^w3P<<-I!<>A@@oApljY)Yxo|vw93HP1o^I4FqR5~2mulgt zC4Wbnf`MESadysyBb0;h$ny}PEF85d0VS|>8>i6?2^el)Jq`ZM1OT>bt3(b$A29LSfGz-g^Hm!F z*dyT3K;Ht44U``47vhY*@Nm6!QeUjL3VH7BQ-4dtcml5kx*S{R{laa+X|;9i5m~d| i`Sysvb!_tATK)mxV@vU>X}FFKZWF-Tet|pTT4@Ea2vWE)Tz@B3jH}!Qd4N2EA0eHe zAl_%lklNLX5{YYr;HI&p@3-HK_(vQg^q&tx5Wft|n93zeS3x4muEIK5AoRsf z`YocpB$Yzw)t%qM>Nn=!N4>hF~W?tK=JzpCHa%UAa^i|8_v%c`z#j=+7YT>!6A zc~RH3>Tf^X(|=X8aEMecw{`t~0B&Xa-B^zsYw!*YK(3Voh-Nzipa|9!P6}ZRjx}0< z>dq;$t+wYH4RGtGz*$wDYqUiO2cQ=fSd4)?=G4F{2nVQX2gBFjWhib9uyuf4gQBIq zi5i3(15_j6uHFgN1F!QAU1t`kejMHcUWp}y4UnOH2?j7?*N|Z(TLes~%GW$!H+GmNI!xcTrU@)V zsS^}ubKMZT;!7#zBfP_#o4Ibb2mksn`Tb*o^@Z{Q=q>%~@#*2$mNi}jNb*zr{K9pk zJHG)!n}1&phbOJIr@}t)x6d#CXm@G3Kr33V^&$*t6K$4+fJhjC^H7Z_V#c81Bm__Z zTES@%&@s=ri7b?Z@{I)w>IX0{kR?MJtqzZH2U}G>he`A~gTh7Zc z!09RF)f}KB09N&UNdPeT#(rQ_+114?hZ%))#D9EdfrkQYY~D;QCIAop;LgJpJbIcPl!N4usYOvF8IEi{J&ip1vzQBJ}0({G?f8bhq&`K*==Y znhVVu=-W0kU;%Y7dvG=#FVyTKcdXPzrhTG`D+{!o1$2~VMh74;o3S*25S;A&(}`CJ z)f^la(!cWZRdQud-dIYX1&4JI_a|2>SASC?;xOd^6qIKQ{UB!qh7QX3s<_+~2AC2U zda$*!mx}cGiV#0wU)aXDSI1h8-mM3;3+!d*0`7!IGhpokFioTXL9o@Q!2X;vwfYoj zMnJzX#(;2oJff$7*(Iau3Q;{> zr_2HHyic_j0}#!3qO}-)B|MF8GzQq*ptn$`5`0?;p8+=cm>h$ga>Rb!5>|-=x*@_{ edLQ=xoPPna{4u^xM;7z|0000c0004VQb$4nuFf3k0000mP)t-sn9!hFDRYBL z&CQGU5D*XuL24jsl&o6+N}RpblmP$L0JH!AYHDhvq@@4<{{R30TAy<@0006bNkl@4F=qZlkPPw$ zGz=*CP!-5WG=CycLi<=2`h`d{bzIhw*;KdIC7y_4AT%34rFOMtIH;nLg$HyoQh_9y4C?F+U*l zGsv4E;(J-Xq5FY!M-1^|peX#Zyy9A;yq?;k36fzLx7#l1VJ*bgqCXexB}YQn#7C_k zop`hs^?#WlN04Q5BLZy#Nh0`g1R<2lHEK|nO93~(uIjuFQ|8@J1WLD^!EE{M|F|0h z$IdpNu^ORMk%H&HB|mL_bvbD3`*^u)rx5CbZ7FsNDq(p*P;a%*K#eDd^)6f)niC@@ zdTF>AIa4$ZmlMYq&qc?`QhS_ktiS*I6ZHcP&k_<7gfj=700000NkvXXu0mjfq53D- delta 678 zcmV;X0$Kf~1+oQ@7=Hu<00013M{Ml?001yhOjJdf(4b%#cz8&duz1K25D*AJXdq~i zpjgOAn7Gi80Qk@VumAvPXlS6Ip!oRs0002_3l9$f00KQpL_t(YiQSX2Zrd;rhL3`p zqMJn75ZWoC6lg0Tvw(*#a-bk<3z*&wBt%xJ0yuT>VtDS@F@G=7N61^`37R}ZkF+a` zlDHSW#iITX|NT6j0si?4LtvL~nNVIpv~Ut$%8L?6v~cU;4B*X{Pg{83cqmGMi~Y2P z(bxLvVK-%A^!w5Phbar}FXWwhyf}<3yi1Q4Ldx|CI7G?@$Rgr%DP?&)J{;)6n^{D} zi;a}`9kAokr+>cg*T&!uIv`c01?2Un2VjV}&a4)>HaKN809CCOvJsneMh)!j79P7@z0MLQS)*NfE)V$@#*J}Caxz9u*uiv`Gu)kwbKRwtM9L`PfDqYgvTNupI?3} zd$nw!$$uNB)XWViT}=|W058`7W3G(g#oC}|p$ni0G&!T0Lnka@x)N6p%2o!*=rllB z28JjdJtzX#6=O3XZov1eik5^;4V$33{`EFN+8hr`qMx! z+4X$XLr>vcJ{wt(E`X`k)zD%9ATh8QO|Ke!kstARXM-N)5ctpP5ArLTAtXf4_5c6? M07*qoM6N<$f|4jZ{Qv*} diff --git a/graphics/pokemon/crobat/normal.pal b/graphics/pokemon/crobat/normal.pal index c8b289770..5db72c9cf 100644 --- a/graphics/pokemon/crobat/normal.pal +++ b/graphics/pokemon/crobat/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -96 24 120 -120 72 152 -176 120 200 +90 41 115 +131 74 205 +205 139 246 16 16 16 -8 64 104 -32 104 144 -160 88 200 -72 152 184 -208 144 0 -248 208 0 -176 0 0 -104 104 104 -160 160 160 -248 248 248 +8 65 106 +32 106 148 +172 90 255 +74 156 189 +213 148 0 +255 213 0 +180 0 0 +106 106 106 +164 164 164 +255 255 255 0 0 0 diff --git a/graphics/pokemon/croconaw/anim_front.png b/graphics/pokemon/croconaw/anim_front.png index bdd5340fd5ed0cc33fbebc7fdbb627a874c59070..3fc9ff81f28730f3aedbf0549c0b431078ae8b48 100644 GIT binary patch delta 1045 zcmV+w1nT>M37!a$7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h{5Fr1o zS`ZKr|4K^L7!V+0dmxLwYR%1y?&kmh|9b!c=0PBfVgT;6O8@_2=^P;y000A=NklwYa2%vEjfGCfYvyOq{(H>CrAhMp`PJ|4yBEEnGB>nRV zGr+YH30O~r%z)tcAb$g(XAYKBK=e-@L8?pY8bbr90~O#IK`QC-#Q_Z^>)y`d0+itZ z?Mx1A{$>F{DfGr!A1S)U4)h`LcMOn9A$@|eDZm84J%1o-E&`b39q^uj(6dowAIi|T zF}$Be(gzF^U?K!|0gt8-c5E&bwFby=u!bugAG~igBZY|~`g{}ud>%^zob;0)1UT@X zjuQ5vW}*)2fM5jhJWvRYu{V7<9Ky27b%dfQ(kAKzJAmeR1LQ^IuZ|FX4h(p|hLSpE z1#}rIp?}IVeWs%z93eM{A{oEEZmaiWfbgnU0DEr(EV_4I03=jEvZMk@7!434p>=>U zmk^>3g&)t2pnBU83vJ(rl!t*KmkdPJ<0O|q+0S^8+@T{#d_}P2l5Z|RwLUDQWM?A) zKl^3GgrN1c0f3*3-;!5%$LN6nc6sJqmtFRoc7L@Ht`@@8LbzH8Z2zH!fc5r#x`n_6 zI3&Knx?GUkcHu>&`n#0GO$678+b*f(2>+V63Bf%GH=vo!qO<&-Ei1q=26)j60DT(* zCV5UZD1A+kH1t`^Z)Y0?n!Gmvyqg;2u9{SjC-$_~-wYsm^j`fq71e5i-QPKy&G&WD zOMgm0_PiBB*1K}kYf{-e!0f_G)^{{g4Fg(8S!xbM%EojgbpWR(h#-ZK0YExE4VA!o z0kY&)Q`Lj2Uy?e#*V3g_f?)))Ue!}gCvqfY0a(iSrM56Q4{AE$K$6Ny3TVp`w8lf4 zdN@+Zb4Z!iu+RQzA@ma36v|qHYYU+RB!8yCl-fZ%5aLCtdTt=(aMVEPfKh)-6GGg# z)&Gq!4yHDJF2FLvIKou_n;Hn!+7xIDVKfjtwR4 z4B)ka;Q1GUq=DW*aP|-S7^cTP{ez{o5MG~l)%4mzus;4T!qr0fJ^KXWvquBRxDJ?9 P00000NkvXXu0mjf%xmHE delta 1143 zcmV--1c>{d2!IKY7=Hu<00006JA5D*aXP*}()I3Qqn zAc(kV$jFH3;Q09XcmM$4Kp<#P0LZvt_~3~37Ae{Q00aw3L_t(oh3%I?YvWcB$0Y>v zDUkK{3$*nIaCsZcO*Rf8&fb@jp0}7t>Y=3|@KXzGD1zr%Xn);9A=%KQVG9fU1?t># zYu!_zxg`f3eDd>Q58X?w&Pdr7q&H4!E_>*M5Xk&AGkS0I{{L9kySUbGiQ6CE6{zps z39v1@v1i?1@%TCd&L^w#*Sot9RsmfE_E!S9ZUqh=uL2(V{y~$C_v?>BfF28c{roV5 zqy-#MI{|>?n|~-wIN(_T@bH&$TQNW!#{g%)j@w)f>D z8HcdFiNIqc;f%M&lgVY;0(D^Ctfsp)*?gr_fDPt2T9ebW0$|?bd@`MObQ-f6(zn2& zxrepar_<@BzK9_)XCUBAYYzc)4{O(_)8F-60_~J*+JB10)^taw1jxvfhAca;#gZz3 zl2S&cVC^f*jjl3%F6qp?D&QXbI8H+3aRSOEdNfaPmA%P<05g<;kB@^K$Z{Z({c?}a z(Q^!BSwW=b(Y|N30Viq*@I!`GMrrx^`nsS8*%NOXKH_HG~jNDi-*L8cx4|Q-9j=lrjMAFnl{_jxd$*g1~(B{9VHM z*#GOlFZ(v2&a2+P1MJ4#fOS;grp+Vv`vh=uk>~%Y(Y?RF3fOIQ-&-N?b|W_kw*dPG zycckM)d3Lsd2fDVI{;Ah@q#7C%Szr7Tk{MUwfnSb{X0j5TN z8Gk|_FKxzyxXMRC+I+R`$4nDDS?0s$)%D9zmN?0egPY1%SZsNHf%8JUc{Ge z&L21hpxbcBcZu;iaQ?vBrUH6~05cNK4#snTz@50$(Q|YlinokHcrsSKAvY4fk8%OY zQ7|;8a8E$_g4D@$SL6Ep1V`pa0^+LVpnt;OBUMtKP-Gjcl(p zfG<0ccvV$%zs3Ix{=nSFkzRnPik6#*<{Him^g4Pm98~wg!D*z45}wwJ<)HeO4(V=g zf<}u>n`DvR0Ao=21H)FM@Tz#UAYeI@tt#Ne3O&x~4P?uKerl-U$Ufv2BSY~{O>j+k zVF75#08S2c^bCOuqq>us8x}ytffO|)3`yS21|tV>U6MgC`qjcf^eHYF|3C%;J<7QV z82@0kf(Q)+>mTwa^1n0w!E%(kxttgyfEL8~cKc0004VQb$4nuFf3k0000mP)t-sn9!h{5Fr1o zS`ZKr|4K^L7!V+0dmxLwYR%1y?&kmh|9b!c=0PBfVgT;6O8@_2=^P;y0006SNklu&5I41~i@V&?|D|JxqhTtd6j2GS$-Pu=cTsxlvAY=2Cq=`T9M{Z#+L?*iOw z{yl(8dIh*A5chHgfaMurhU#aB`6*ydfO&Zg$njIavMf*9(Ez0J$N-Z7h*k~4Fo3sh zrN!ic{22wPJ_UH^2LxU>V$+|;z5|lQpk9A8PMiraW`Wik%&<)uvp}oVj=4Z+C)><^ z6To&H$8IabV}DP8#q}c~c?&=&hYum=ApO|iQ1T$DURD=EfK_CyAwi-)PqcucN_ePV z2tffn?jXDYXk-s2A7T1aGw`XTLpc;cHjn@#8TjarZw7KJ^`7lu77#B3ax%5C^{WSf z7-hv)ze;yo+~}G0n;1Su(R*Bn0$l*wm?+O8ppjR=XMX~rPNP*l#7kdt_`HjvXW|CX z5LhkH-4sd^a}8~DS_N_$5+TWh{QA2l zyjrepMSlrhJsqphIe@?FGeF(<0j7L*z5qm+0lsGx*uW?Nwt-dwowGy`DHVM@6hhYb zU9l+Vo_)9i9kb*@Bt129`&a)R51So11Fx?LJ+tJ^0#ekpNQPY>0s8E>j0GX}?E^rc qT;GOQwbN-}{O$6|T7U6B;vbrmC2|t<8^8bn00{s|MNUMnLSTZOcP6m_ delta 669 zcmV;O0%HA~1*rv)7=Hu<00013M{Ml?001yhOjJdf(4c?-2>6JA5D*aXP*}()I3Qqn zAc(kV$jFH3;Q09XcmM$4Kp<#P0LZvt_~3~37Ae{Q00J~gL_t(YiPh9GZ__{&2XIH0 z(y3BvJ_3AzNLS*}K&z^udxf%BifVg8NS6Ez5?w4gkAbq$B7a6p-S`4HTeiwf9lEu{ z4ViKsI>18AJG*7D@7$paSc)>d-@X6k?m33>FFu`n>aE8Q1=h}kK+9-7*)bk9EbkC7 zUp4i&hTH2+U`XI)BcSJAFxqPZyN)yJYU_cu>miP{;O)tQhfxo8VC4%UM(=zt(t!^y z;`8rGKh}US41W=4XGvd|LHk3T_{_t74RBm)f$=FuObOW6H1Y7o27x`LFq1)&rkA{j z@ko7G-S!~e_$D~wQ_Xes(&?-On%{ArX4$6Tp|%6R0|)9otlmts>{48W7^yo*FcZQi zpx(pk?`if!ECA(6wN*!PJ;=5MmjHYl6kWD%*it5741WNArMU9OX!}>WI0t!Wb{({j z9U3Rbin;{Vh_Rd}yvlzSz@-iq@a)(vKwbbJg6ba4&nHyK^HT8YXs;Q4q=}j!e#$B3 zh*#HJ9VQosw@r?C^#rVKgJ!Wn5=>OUFjmg67ol?!FavrqKi@xm;)bI zjuB%IV}I&@ozouX;_$++0{KGF=OgX#C(uk(Z^EXcSAr#|fJv8Jf~6p^sNE$AkiZv0 z0$v9sC29kq5QXsqL%byK|F)gQ3#2XBj_#Ez`6x~LgYz*Sn|~;0mSt*c>iqgZh+#pk@*1V=%ivTVorY5vlG-frHh|Bp&9`OC2Kzc z8vVxDbzQA7b@2!PJ;1CYYfUxlZEG!{`mF`F(reo@;I58`wb_m(5Mig=@4G(gqK=16 za?Tk7(7n;W^?&+3$r+%VCLRUi^kg0Ox%Gd~>iTfKcx21>il| zQ9wSM?JY+^2;K!*1DJge_I&#*djUZ5<5q^%)*2cPlC(eyh#;q8wbIAy4LDSg_P|31 ztn1d$zygr|;VHnwlnK@}9AgHo;&%bvF5*Ad9{jf*cz@u~BLLh_@xbeqQG){b z$UZeSHGefV^)ECU+dl@B!9hwn-2;T2juN1IfKYF&^}-=~6u=R-`kPmhEF6C;pd-Mu z<&ggg&>Y}%Dy52TMp@3}f?y_W{BX;4nZKiSKY8AoKz# z{^PeI9S9hj9~?qE4-h`e|F75cvjM;yAWTjD34HBjE6vw3|AW}3){sy|i1iHi(Axk%3uzyKbt4lWz#$#whWNd{j z#c1f*EL~$Toa`agV9;}x(qfRExe&KsAs-?1-N{2E-6^G8zz-x0{~zz(Jq!MSP21FS zE(;&K7_fAwK-V4JDLn-cOC@4|os@_guxzcA0=ksZZQDYbIQUC(zU>eWAemRU+&!JF z0qm61-9xWhA%8+AwglMnJg-p|a=B?sPS{6)()XlHnr#kbo9s}o(*v?gTA}De9&d98 zRm!doNW0nYr@-SWKBImNaCO%1hka6R@j-I{0DL`bhhe{sjGY-2fg_klaR&jcW>)9G z@iYSHgde%?rgSf_Ym4cLWhWq-E0<+|=ZxBu5@?gGd(Sb*0+V?-wi zTWH))8X*1#Vi=%~hScHipU(#`xoN_k4}(s)jt7~5fi?j*Xlj$%Iv$XW`5FksfQD5| z^3<2Z)xFU1Zwgb_Ihj2c-Fc69HqZn2LZQ(~%g1hzGPH{~(u1v^?htqbmPm zO<=$H!Y2qw%Y>K%5lHg`FFzOuw}tt^?5?l z825>9F1tnXz{gjRr~y$I4^QL+!!Oo1^%som4{{G+UPy1Vf&c&j07*qoM6N<$f>45= AH2?qr diff --git a/graphics/pokemon/cyndaquil/front.png b/graphics/pokemon/cyndaquil/front.png index 448a51f8a91ce20152aaa0f05603df43fd0a9f49..b8b7e71aca85e21c3b6fe01c6fa111d6a792850d 100644 GIT binary patch delta 527 zcmV+q0`UF31e^qr7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!i!00945 z04Y*ZIbwTagPi}I01yxm|K0!?IZDN(YX9z}dtxBw&1$TytoZo&y#l1x0004+NklSZ3>n~~oeTKw z=9>Zm`R(Q}1>?M{w-SuM;W`DLV|V`$bn@Oq z2m!p`FMr^#1wL2+{0`4C_7<@70H~ zag@&z@+gP%OMeA1#@5VBLAIDcV&8F_#ea$_pqvZx2VtrLvs~euAZNijC>%7rXBEtl zsn{LRr&Qqc_%nPHVC8v~CBR-o$0At^tbi45D*{*_&j)a*pw1v;6NC^u8n_9pf4l{} zOw9nkV~tf1jHkjht^5bTfxqm)!Ve3MsJOJE?WXVgPk*u~k2p=jS}PmhCy@FX7rx|T z4pKo6uACe{O}q$LvMv;v0{aZuo0g3^!6uim5UZoDSlsf{Rr!n|`H`UD`euY1I^5j?f1EgpaH#I=I R&;S4c00>D%PDHLkV1iOD>~sJC delta 559 zcmV+~0?_@O1iS>07=Hu<00013M{Ml?001yhOjJdf(4g1=0Qfin5I9gUXnAs=6vq=BL~uy_2Dw2xDpFj!<)ol%(to8}2FWNb7^x{;O2`MO zOIHQqqEicjJi8SF#?FO)h<=39m)J$`&d!1l5)OVp{_ovO6y;RMTpB+5VL?-k16(y! zqxPRbG#SKvmDGq_&~&A?6;z?4>bi!Q7jX!5kwYN+H-z$A{hI=0y)1t+>d zDA~4cnFX#px__XpXWj^jsQmCW6llkqBvx4fjw@+ zckIFQLKp+Y^uj74_(f3~WdNVJ4l4}%2Dj=;aS8BHuz#=k5p$u7e9C4WjA(L;M!||8 zS+gaeVT!)h#D>IU%N4xh#!SKQHn|2*$pGg>p(zlaAy%r8Wh+Q1ZSY*l;(<~I9~KZL z^im*{2lyKMFkS)7L_$&NhX)Mct1aPGwqE9ACURlH*gd?lfvm-vZP*=Sa=~YFKV@t# xw_Bo5qi`D=C|Nq6s#sB7uYEl6I=8Mg}VgLXDD8((_000ISNklC)OT3`|fIkq~(Q$E_}3iH}fb`lFu0@X_pAl5JU9rhlnE=EnDT$NYfb2$sih zCd`lJXM&~X!+e)^i39~?zUA0#1}MR7!E_e>`bKDF7A2S!uMi7J%dZ;2B7@-uv5-cy zh6Ib@mtcnxDBDc}8({B~hSaRNwYE+GxFSRY+?+cGxU0CzK!Dt)`vj<9p>PkrAfV?g zc%m&Z%n>f39Dh5r}e zFL?Q9W>^Ek2>)EOfm<+PrNq!Bkf{LFXo1Bh8dK3@rF+xYPASl}l)8wK3|s1hLHo{V?A6M*Iu3=yi} z)p1@nz|4FJj3wo5lXX=VkcV;tOVRvD2)xG5;b^Ilb4#!RqHPL}brfug&S~8D;K!CgGV&4N2~V0VblI`y029b|;@6R14{xwML42tBpo
X?*iEic zUc)aqU{}1xfh#+(Fnl3yp}7E7rOL)kVYp=oSP(P}R$hf#K=#yq0$B;rt3C8;wz0<^ z>|g{tNPVUZXw%0H-Sq@zD~SQS^?$&J?#U?%IkTRvo+Ui>EJna~yc2`%YCBqeQ4Bte zw;(10+ts|K9z#Kh50Y5`ju(O;gtW@Ll3-W!IR?=HEgiM3x^c2TU<6xc!0OFAH(nzd zfm?WA#2`Z$o(%uQ#>HC@WC7$7iQE7*1t6$oEj)60t5>X*cn~CjC?Rx30Dp-!ofLpV zL%^;GU=6SqXNFD0=!pQA2Dl8Le$x{HE)6h1*8dwGGZEkt!Ak?2uE>bD&rla3Dh+T!klWKJ^3M%$ z?m-~}KtshTOE)Y+P>2A{B7ZCUTDDVRKqdlkN*rC3Q4q=)k_a#)z!DllA4P!CuMAo1 z{XB6fPyEfHk1w15sOt)k{CdzyNJD}Zq-SrZBY)~BJUEiLJ0QS}AcN<O=5r*nCf}9fZ6b)d!z{ z*!`cigIp$sv3yX`4!qs>ZoKb7OFPJ`5$Na#W9?uH8*Qx$2xIMFiuyxKKp1ET(S)A_ e1o$rngg>kOVw3#6JA5D*aXP*@0PkU-Gr zD44j2==k{f_`txx__%O@SOECoh{(8L0002WpEgkd00tXLL_t(og{_ypZsSG}$0;zv zwWjPBIL8k_V=U4%&H-#O{UP*{x*(|tt`3Nc3kYiOf@^}nHh+7;2$WVxf^*UxQYE!r zL`ri=C%JJe=ovDzONk$%bxqc`ENlLpncbb;`B~HQ(a=6JTINRtr(2utjlGWwI{EuL z?I$G2EUk4xLug|s(G0Yl;2&V9&K6fl{@b!2$B}XAtQh(3{XD@!94rVyWMK`Sq^k_Dn z%qE$jm$DElo7J8z2MVGK-o5ZDieqKIpUWhp)aOxIp_Af%v9RTIqYKvOVI_@!7C1mC z58X7W3Zw!=pH?b9Ow-gV3z|&x0E83>amc!<^}J}u4_J@cf+F+;upsidS$v#FJPMLn z3PhZySATvng=Qaj5FiPJEhAX$b^1fWLDLU$^Wgj|M}Ndo=L0Mv9bxAZcEK{xP1qg4j;n!Vx^gEskfmW2$|hwk+`y0cUxH!z&Sp z$$wPVwiN~9^_306PV)27#LW`NO99rTAOY=QHgpoam4bzxi1bR>Hi&{i3s4Z_@x$V` zW2zo{UhRn*xT!*XMyF$LOW#tE@4BW-hx5f^eAgCnkYF5jtoK%ju zM|Ba)>Xp$eW;`3RFii;L^M&-4JrJt2v41cDOdTVX96Wh5Oz6<9vO+&4g)6oxdps$Mg{~QT>MZb*4 z7yxgggzVTEjare_^Lwu}WA~)7v%6a>z+!*i*maFoZR5p>al8$`kWI0sbK^K-j(>$c zkJa~Gba1mjyrv^}_J{)=z6I=T0Ic2tPBS(Piy!@IojtY^fnjX_^3C6av(u+Wt>DNo zoNL~O$aO!h6?ldLc+Uoyrdhk<_CCg-8;ouRqh>KtunpnNqK4PlU0=-R2nD0_*#{mW zZ_#Qu%DFag_6>M;;R%WpehBKk&OALa0R^c`MVH=a2sQwHC3Irh%3-@U-@QznG3CIH8?#RCBXL&Av4gwSNYXT%2&wonAY%7lPtB7cZc0XFr2 zhPSySgcSf}-5LA0>i-FNk`PuoEW5KU0!bKn8xkR`BCNWz0th0AG9j$GbC#i~62h`O z$Fd(%1SSa~--WC@n|kIz5kkI9tL~f$l%rxNSaxSiv4bRput-7Kh36@OA_TK|iK+K2 zR9vbELEEVwVPYi}LK4E7fPeAjP=rwZ7en>-OC>=n3wP{sSjn WM9kuFe69ch002ovP6b4+LSTXffg)P~ diff --git a/graphics/pokemon/feraligatr/front.png b/graphics/pokemon/feraligatr/front.png index dda82ea749535a0385fb313f01d0f1d50abfe8b3..ed0e53f63ec55d212dbe773d435257c93dca9bb8 100644 GIT binary patch delta 972 zcmV;-12g>32i6CW7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hu00{q! zgAfo9_EK6YN{d>w_Bo5qi`D=C|Nq6s#sB7uYEl6I=8Mg}VgLXDD8((_000A2NklEr&)+Nz z&+%u#*c-!e7dsZfPBPpY*x&{XFnE|jk*{w=tGyUtFuh4UkfU++0HZdMyTl_cwk`pq z>&NWF0Yv;PBum!9xP6@PqwKW?cb3t^0*sI^~wSNgw^}a#Q2&iId;C5c6f8xAB zjuGoSH-Ncypg}TS0SZFp#Q-xfd&4P!Y(Hq)DlY)Ng^s`gbfTVZx>&;g&;u3#(V+p~ zb9NCkF)F~ipK}0xy`@XBVp$Q4#sHLh5`cCNUum41*P|flzGQNJ2f#_bUns)zCeM|6 zfKny&{(l?5DaqztXs3VZ-q^|Gmo9)nOEn+*0Kn=A<%BwV8@NmxsIjlXcu`JC=hZ0C zhgyJ_Xn7#`JqmWG_8?Xv1oPk+NQ583x77Bdg3d0KfkHueF_;KmKFBZ~p*S>@nV=gZ|_I00006JA5D*aXP*@0PkU-Gr zD44j2==k{f_`txx__%O@SOECoh{(8L0002WpEgkd00UY{L_t(YiG`HGZrer>hF4$( zUu`u{5cmNYj7eGrTtLz09)MX=DbN$Kqa1Q0s7Zoeioh}Nf`1V(S0jfu#~`tp_KuIy)Y zdk+kZlUN_}%YW!tkM{xN1TprVtNlQNF`};??*|Tke}Z%wV%8H~AO3h7NbIL7M0}); zd8QwATo{!Y%>Vk#Sy+RZ>62ZcU-G{QpTF=E69GEsFe%a5^MD^y{+@IJi-0z(%uJn3g7kPO*a3cVobw z=?YWs@)=A@^H5*XvVNw=dz!5+*IjQ`#EX!~g z=o=LSkOPQL&7=&Uwsro)Oie@*VM<_98>8P|juvfNh23z2uvVSI1(R1Z(bS|iAfXm>@ zttVfA3};qSinkFUDx$yzP>S1rc$v(m2zd?k*w1ht8J1(#jb#AXMJDdtjUYg32ms`? z5MN++RSoBJa>p?61@L}Jq24a%R=&$%p3MPe#DCOa?Cue`s*~Y%Ps(?)MbR+_z7dXn zUhMh10KQzgjZ(m43{7)Ngyez^CUmQLRQ zc~t1u2%d6@^VQdd^nM~GE8>FSSrg&(f>OF(y50_LO0O;=pr~l(qtC^nv+n@+BncoD z+<%xSz;6y%M+KD^6h%NSK&1@iJbv8#Q7+vh>+71-#ziIiS*GJAa=snVR9$(_;mvxz z_&cCHEjSJppxP!~0gHt!raYp&=!|$QeUZEFb}2^$d)c|HpOsH(WVC%#B1ZM%@b?U)hS4{xs2|C?7q n1$O~z=ns9k3-Gqhe4qUX0KTXU?VT3;00000NkvXXu0mjfxOB~f diff --git a/graphics/pokemon/feraligatr/normal.pal b/graphics/pokemon/feraligatr/normal.pal index 166ae9add..3322ac24e 100644 --- a/graphics/pokemon/feraligatr/normal.pal +++ b/graphics/pokemon/feraligatr/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 0 8 -248 136 128 +131 0 8 +255 139 131 16 16 16 -240 80 88 -8 104 144 -64 208 232 -40 152 184 -136 232 248 -248 248 248 -192 192 192 -248 184 112 -128 88 0 -248 224 136 -200 184 96 +246 82 90 +41 74 139 +90 180 246 +57 139 205 +139 213 255 +255 255 255 +197 197 197 +255 230 139 +106 82 0 +255 230 139 +205 189 98 0 0 0 diff --git a/graphics/pokemon/flaaffy/anim_front.png b/graphics/pokemon/flaaffy/anim_front.png index 0cc7d0439e647ec2a552f3c86ae2cdf1ab2bdb12..c09ccf4922e56a2824ee152d9e0f8af917cbc624 100644 GIT binary patch delta 1118 zcmV-k1fl!o2e#_R_~000B!Nkl0|T)LNqDiPqbXfN$3EwzlKW0PCX2MwD}Dtp(pfxC#F#V2Rus2qkBB0-EU;{%H**DeNl24p3_=!py;W zmTx5001bM*6q5HS21}u$dP5)f=iq+7{{~1&niik+P$rA*Qn|;+XL=xL z>f`->OrZD{T7q>A_Xn2nIH-sSk9+8q5O#og01z#H_nz2+r6laynCL3H1W7N3{}f#+y`r7nzF#_uidrA*Ld(rDp05SmQE~ZjTT^BGwSONeiFE*)F7mmc&1hjgN z%e^R}Z{7+J&$j_7G!bP;8TvCXz&-_&*u`io(Gs`-H$60_;kg!{9R%#jlkfZkn!`j3&jAI}_BJ}=vc>giW z@PsxZ=!RwnZbBKY!PfUX2MBHHh}FhBEfdtEKbZvbSm&)tgncF3$w)5uz5;$2-5InL zk`u7@cmP!N+u1iiK!4L_qp8hVMt6`s1B@(cSf{>0ulC;q0HG+Mw>Ikk$!Gs9h0z&l zdw&W0Pd@XVWoyv`O6Z>-z*h{1fVUajz~m{S28AG|Ht+uC-cRXM>My~nzcR|&TX&Eg zgctih5^$wJ={1Ew`vJrWeTZ)<;C;HXf{@l4TmdB0j}kh2RgQD)Vb1^q?Qq1@)ayL%q)9afOmGj%kSLjrI1eYkfulX^7pt#}>{<gqvL~?!}4dtZH6l(YXwGDs{X!XJTJRHiEH~(Mz45dqlCp{d>X$pJ)KUeHO zzr2-)L%GfWE1+I*->S8dFqe8o5BonSKG)nkbYW`v5`g3SMYa)yKY?9|_51348DAsE k^pXCyn`VCF8~<1Q2T9^E{+*&yz5oCK07*qoM6N<$fLD%daJ2vfKQ1l%s7Z7<*=^x++PkJA}cRwEQ`_;6Y$j934kK~E1Y32%OlMvG+ z_UCAU1|gdOmGKS@+a`om&<-}KR7itVupR(ZE5s&F4eQ{z#BNlG<9(q7)}g&a${w*W zKyCscVp~lmpnqQj`*cqUJn)F^LEhSbi~t>4ehyW(jsx{R_0H}-8+sm`asdE96Bnn;E9sSp>*Z>H5$Z&TZziE}?ZI4PYrzo$($pEFrN0T|s-)LNW#nb%tVA|N0j&*lH>JFg2sNdgxc zV7yVx)qk^VfHO8bJu2kktgeB#hde=nLiFPeqgrciKU*Kq-d&`FJ4C zlcC>Mj9uwuAUgoW17EQM&4|J%;xL#oM<%~_0vq^R0u%LIPvd#W-$4gnJj84foX;7H zVxAx$hIYsUO%FLAB6*$4^M~tHoIwUKIc2)Pi+^><;uhIonb$P7y1-4`#Q%=9+iT{k zyhZApWQBiNBcu-RXc;9yyqf@2Z44-N!&6y-U?t!U<5l@sy9h7>qMGW3`oky*cwl~( z7KLH}=<365VpkCLm%y(NBd=*;z(Br&(R1b_fDy}wG)|8BW3@ea!u#?CJmX?V4fwO} zC4W5BXYEtO9^9HG@I3LL-Eolz;z_C{TR!R^v^faHJ+sC<%&TpG%1jXdh58p`-D(i0 zZqYh&4w{$gE{MOWUPN^PSQNP}FVk*XrfN^RzPYdubbCt;NF&&gYrp}=O4o=zwfCht zp9XN7BI!{; z-KF{;b9eXb>9XN7qF8N8jcQU+?5a6obKt`CG^`xU-z$n?_Q%B~>tC z*^TB5pAn7U0RZ*@`!GV@XRH^a>aQJkgO%#9>35*Ez5=)}ziV(9sJdrMf6&I}VG-Zm iU7gq1M+)48I{pQvJDnI^wD)2F0000l diff --git a/graphics/pokemon/flaaffy/front.png b/graphics/pokemon/flaaffy/front.png index 373ff986f2920767332d5f33faeb46faacda9b0b..6bb2dc324a7812b07301a045d9643e3495c7925d 100644 GIT binary patch delta 642 zcmV-|0)73R1&;-g7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!iTz19E! z|ATXj-sbiY5D-dATHZlo|D>e#_R_~0006FNklQx z1v0%7wCn@o`f>nr2Zaf$E2lo^C?I8*f_`Q90ztw70RMJW0SxL@;^J~Z3X})|dgm4c zfIXvtF@syBR7xNQdJ%*#R+H^ zc1o`RetXc{rvj=1<_;4zYPSYDNLx_AguWAFA3vIdACQ&RhCV ceQKiq0gDzG8R2J%H2?qr07*qoM6N<$g38n-ApigX delta 657 zcmV;C0&e|}1)T+u7=Hu<00013M{Ml?001yhOjJdf(4ere(D?ZHfN+S&*zgb#5J*T^ z&|rA@u*mp`nE1%hh#)XPaHvp#z<|K`C_sqUe+KCQ00JmUL_t(YiS3iIZqrZ{hA*m2 z1}g$L;Q@SXb|7w~j@UO@SU}W31Y2n$X5<9Zk)d`rR0VUI4SxwKxhzE}kdP-}?Vgd5 z!V@6QO$burd&3L#$dmss=RfE84`Ua#UYD-^M+ciRYXh_mU|C?_&^GV^wh1cf9empc z07vU!gX4e?j?ROCTMpRZ?&uuc3fR5_u6I`nY>~YSB@fCvKrTTL*yTV87)zkeYf9jO z2ewCgx&BlGw10W&6?M7xEK=`jw0FCr0&YW8)kCt!*M&$c%@|7>zvLd`9)|Y(ot&ou!47WX(!S^P2kzPiJR!hbX`H@H0q&Q^i1;`I`!9m_Eyg}|H~YCu89aE-gK#9|B6fwNu5=&>qo!g4W+rixAO$l; zP4ZtH(E^VoFjD7woK9o>LJpWe;$jHIX&5FcW|}_++sB9*F=9`n8(iL>KBwXa3m}v! rGn%_Phech6`bM3xaC3u;($pV7?8{b$%JOpn015yANkvXXu0mjfj*u*Z diff --git a/graphics/pokemon/flaaffy/normal.pal b/graphics/pokemon/flaaffy/normal.pal index 9b6781342..5dd45e400 100644 --- a/graphics/pokemon/flaaffy/normal.pal +++ b/graphics/pokemon/flaaffy/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -176 176 208 -248 248 248 -128 112 136 -200 216 240 +189 189 213 +255 255 255 +131 115 139 +222 230 246 16 16 16 -72 72 88 -208 96 120 -248 176 200 -248 136 152 -248 200 208 -136 32 48 -64 112 168 -80 128 192 -128 192 248 -40 64 136 +74 74 90 +222 65 98 +255 164 164 +255 115 115 +255 189 189 +164 0 16 +82 131 197 +82 131 197 +131 197 255 +41 65 139 diff --git a/graphics/pokemon/furret/anim_front.png b/graphics/pokemon/furret/anim_front.png index bd0119c5684b6bc8201f0e1f0d8236bd14e8bba2..6e84d7410355a84dcc717919a421f2c1366a4539 100644 GIT binary patch delta 1115 zcmV-h1f=_-2;>Nm7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h7DIn&> zN_#;$ARsBloI(HYl$>Hptb-~4|Hc3R|8sM5oB#m-lwx>5H~;_u`8TpK000BxNkl2^#<@wJ%;9e zN@)+-09cI};|>6b3LqsSmT&0=kO?9uM5Mi#1Xh7qk|(h}y*d#5pM5<8T$nBG=?`f2 zu&Y0^9wm4Zj9vXfk!baaWHBM)F(BXyK)Q4=mO)_e!eR_8XaE-0Ai()c!!bMq z6#ZThz_uJw1%M9F-BdlmPrvXYfPMm?0}ba#eGDdmqJL-euR*^QtMJ?b@^^d?0E8Qa z4Defo&F+M#TP%lQ4yg40#8*o6(>;@h1SqOP;zJB|9zp@|=theX&;i900VF$*^AKi- zJMeH@|K$ZSQ3XhRVGp+hVCR6os3s(zAWoFVQN-SXd>^ru>78yS)J!B^LeV4%696X^ zLO69EwSUTRvJwrDFMtAQ2{;EB0n2Pq#GIYDe4#G@zRH3>wzj%nH45@Y1K9J1-UyWo zE#gs<6L_whae_^n&PZZ+qL@{wMqC#?-c+zJCpvW$SATZ7uPAfcB_1^j6W7QbKOv zX>0A$_p!!SzAItYngbGd`@fcCEtFDXly-9Y1{XR}tPs<*m6LAK^APH+kV*+s632m_ z(3${kc|%~y|5-K+^;R17>B#JaCF(^~_pEso$L*P!0ln)rWL-%<1$*85sB2X5*^ z{eN8BQs{lLTSABvfHr8n^jQM>yxyx?4dAf1r~N9ttxU?;v=|(@5UL`n|Cxyg>okSX0d6J% z#DP*I%F^{O@l&TC0$d+$Nr9P+=n3FFZGYlfHs`WEJ_A(0f36Atq_Nw*#8+Rd_lJu- z-dA9`gK!RDs2>67z6J4AU$r0_2QJ;LF~Caa-hoR$Y*K?l-GL}W!CpTpVj&mrEdX2j zysM}LjYSy?m5yBQBuujm2;P9`)>GYzm;nxLAe0`8qI4^JBVzquZqh)o_JMaI6jT8A z4jwgQfOKbRD?$J|FV;-3EwjvxKyP^Rfaq~4fFmEBYk*uJxq~6!r$FU=(KjoA<#3Q+ hpv~y^vb%rZ{sR3!Ix!Iq>}3D|002ovPDHLkV1jig`6~bb delta 1049 zcmV+!1m^qX2%-p(7=Hu<00005GLG0)Pe&(WvoYZOJ10DoQFJCbrFT8uljK#?1y zAorPfCsKF6isFAXe!`u7wmfuXoLSI<1ZHI6v91ZGAN2tV}YRiEMRp5_qKD}9Prcu{Cb9L5m#RT z;3opPDy}{vuz#_jb3pmDUm?^n1#AZm#V`@jX`Lnl!xB2Jv!Z_z&|Cn9G`pk>1__YX>4C!- zNcMB3owFWTMPQu(bP#V}0qV;D9s&Z`kV8Ms(cvD!Cx7~@8J<)E(EeZyR*PXb4kK*tcn;6+%V4b#&Y2#_By(yZVU0lFXWC#L3{UqzZH?Vd2i^yD)^Pm&;Q zHqHaj?c_vMIz+JAZTcPo{dkj8WzA|O*h-334d zze#{%seg7XY^T?YSrgW+OhBoRk*o@2=4Sv2?Pcl~A_D4u)y$ghi=W3HE99kZ@Cd$WIS ze=4}LR$m1A*Zqq)JuU)_XOgW0z^g>_mHY%Ke1AvzRP(XJ!bZNNPPgTW=3{y_@J@Ro z(R|e&G!O03(qxfILoS;RL>NTnN*f$*a=L(p2AVL3*yk|2R7om`@TsS&uvHgpa+i3+53b&CxOKMc>mw(zuI<3sb&dG>?uZ`*H9j}q@| T4b;md00000NkvXXu0mjfd>+=u diff --git a/graphics/pokemon/furret/front.png b/graphics/pokemon/furret/front.png index bab4d95b6bcba4c421d01f93c445ed66ca1bffa7..4d7361e08b3487221742f694e1f356894eb4e869 100644 GIT binary patch delta 645 zcmV;00($-W1d;`i7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!h7DIn&> zN_#;$ARsBloI(HYl$>Hptb-~4|Hc3R|8sM5oB#m-lwx>5H~;_u`8TpK0006INklYXKXJVPTxiBI{Q;vMqWZ)1 zsL9i0MD+({s-+W?M1%n(vLa_0;Tr@NS<&B>5U&B>sd~>h0|cwUHv=G3%|Z}B5&}TB z945^|EC!ht9)AxbU@C--3ow*g{iYAn2U5Zk#15c7A4ENYngjZ_O9H6dvV2a!Xge3Q zSVG8nEC{#*P+2;dTM#(Au!%tg1K`PrT_M3|T)7Yi%r0z_0Ow507+wQ3eJlx3w;WLi zfC(_&R5QR&zw{=6egaSeP3K>84lV#qFXo@YycE0ie18S7Z#)P9!T`Ylev63JJ0X`X zW+}J^bb24jm6H8*H`0;-P1Q(ph+(NiY5<9DwHN^%&^%E9*YnsyxH{ZH!X5qB2O?7k zV7aiD+W~NLpgf8uu@^`hrF9l@cEIimnuH60G!#lWb)L1(@M0xa zfL#C$Fn$v78c+$?szDj8J8}6&-vDxzB_EEqyIxBc^ur3M2`WEZ-xt>OBa@htLY|>OBJE`_Pz*pOF fLEtw;f73nzN0}cF3JCJ*00000NkvXXu0mjfW`Pj; delta 621 zcmV-z0+Rib1^NV#7=Hu<00013M{Ml?001yhOjJdf(4bH#AkeUActAKHASl3?K;jtRJDz5ig96o0ULw%;WSq_9^x?N+}8S;(yLac3CS{b1ZZYQpo>V z^N&W75dUMy8+x&i^J>VDBQX4^56eL1f{r!ZWdOWq-Ky7&hYqFOb%>Z*pg`B5COx-6 z;V{Pc9MDC5m(j&15|zT&i~}J`Lj{6yS-_hbUVM)aIpEv_{JKE4h}Aa$_(?#niq%&F zS`Q`%l;^{i5P#R_HnN1zZv^b0np2__as?w_a(@(+n!0gJ0lsgtLRAB2=@WpD zA*G=~dEkbbc@6?tr=hW1cxJ%3kNqTTh+&n+o(-NU#r)(Kig%JBV_OWsrJJ3IwTT(L z!PYqf%xRd_xgIStGz>f@w{xwdg-~sXq??8A0zj8y1ez4kPZ3a2w+SFN`jIQaUIoIc z;{woVt!C8}>7gYPN)gbF`WKPLhCX(Gi01kYDk#TZb6C>#!uud&ju?xNn6%10Y@)vW zz)02FhKa#mdyGCVs(v9IUAqj3i)&8uPV9! zRiR`K3H0)tj{)1ir^EZtGG^Znf?nSsOKSb-0ciifumanpt5^M+P*(y5 zz%coF_B2IRmVY36VUlr10)ldYE1yci*kwWi2$0kSQxm|}=tA_U!28@pt-zKhh$HR4 z_ana2JesO8h|>jNoF-rqs@<9D099PXT25?1=|p1tCVRL+AuMT5q+~;gU=?B?y4zFR zh|hNP8VOrJ@zJO_Qz zlrRjQu&ME(f)lo|`Nx299K9c^y1()x_8AX9wng~+j6-qMvwfT&EddX@KeUOD zJASs5fPXpg>FMe{UsqRGSJ!`5r}y7L?-9O-Exk9ux3PAG?`k{H%cQ&Oh)dP%t^SBf zF2i?q0w3YKmfjP5ds^YUj@}b|D?2yA_mJQ_qVEddHT0g~8{oTz?*j5&ZfI?SZ?Cth zRq)M;>)2)Zo~CgN-;^)%eo8sR)w<;K%R8PPWfEX1@>?}D!9eT?v({YUmL{1*WB|2ujw;rAHvj^2y8=LdRs zmTR!-h2EVWZsq=;>Ak}Lj^5i7Tm!cr=v^AnbES724}jQ@Sm>Yzdm>T@9O#!`Ud;wB<5O)!!7^-002ovPDHLkV1gMfl@tH~ delta 814 zcmV+}1JV4x2Dt{17=Hu<0000CaaRE(U15o%fNO3bDF=}IbK>VE(YMk<}a;iUszsur(7 z%3zc)0P=)X7H{1^Oh^$ESv!SKkfH4tsCxD_5#W1G#|rUVjP!f-p6>uZCghm^F?1gw zNB5wz%CFMH2OpqCd9OvqfTpRO+Y2BoxWGxaRMk*Gl27xd*+f@hM80F1D#g#Eoa&gL zX!!!`Pg*Ll0e>1)5Fjth(4v&4+Q@)(?QL9DoNC+t(aq0-ol3l4p1Bi+ z-?-udH|UR=kaKUq84e^Dt7Lak#79u&CbpopfDsXD(Qv600E~v0$PRd{(a^$Mx1ZUA z03vd4&ws9`_D>x6^@Cc!>1Du(1R?!^gFNP#gUeyqUy`HT{{6(6V#PEW`8F4c|SnzPhyj2^Qk9yF_2cq?=3F(w6AoZzInA_ zjVwg&<#r|1Vsdwep4=Ir*R}y@dvbTadU7|SOn+KiK!|CP$^F79a=9xV^Tigx%${Su z?H1p7a<75eD{S9H-EaX{S?tmVFn14&$(;>w#R@#WqX<_w?eEt=BR1_X=m~kWKV*eH zd9=TgEeL@P`wROm`-`(_e{ufWU%}1l*`Mk~6yWwR)llHy>`$Zsb9(j<%0Bx?_Sl~c s>?fH$8wL!xx4-RsJ%~n*uLlR5KM>zMugXjW8vpa!X*Z=?k diff --git a/graphics/pokemon/hoothoot/front.png b/graphics/pokemon/hoothoot/front.png index 0cc0353801b46a3b5561242631a2a2ff14160725..8a89546b76fc5104f8ef9e89c1e6ae87abc30359 100644 GIT binary patch delta 535 zcmV+y0_gp%1f&Fz7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gQ5D-B@ zL7Zwab4nOeF#x@bLCvIlYB3nSS}FEoG48CC-o2dv=EeX2|9g9Tpp~1+0004^NklCzh!eG3SG30+VM zCj$NX<|APLdpcczRtS3s9WMs~eP!JM%rS}#1Sq2>X1zf=5TGDfi~knL)$NZODgged z8hib$NbLl_e*jB*{ip$KTJuvcfte%6EQB!JLtuez_U?7R6Z#@x01+lz7NfbS zGlKYyNzwuWKz|!R+ow`6c9{_X0I5X?J%Gr;8_|%!Y%8KC;8ubtdHu~2UUeQr*BC^- z0fIUKP3U$F-2hiDWCw^t&syQ%`wtN?igKW!6h{bHgo5xf`^gYtnvAfh@le4I+gSWF zAf;qBbyff1uK*kIZuSL-r7?s(7Ho>i_x7}`BY>42s~2&7;C&&yTE delta 544 zcmV+*0^j|l1g!*+7=Hu<00013M{Ml?001yhOjJdf(4Y_y5I{gcm}oF~SWr+f0Jw-i z$e?&=Fc`R4DDYq~=%|p`xS06h!1(z1czAfs1Wl6w000SaNLh0L01m_e01m_fl`9S# z0004_Nkl9G!P``k&<>CT&Wz>PUw8{JBfA?N1NvHac1;>CKJ3?i`o}u5D z1E9rNUyJd9rV-|j0>KGB2wxTqO$b7AT&J`yJi!xslTrfWeH7D8`UJ&0Q9s-u=mlt4 z5&&J6u>k<-dw)SdrgEba#W7Ti9}za4u?96~A`8yY6O-h;>o^WzjtdNBd^?{`&OK1) zf-0%?=ToER9l-@>7eIP*+q)#7#oJ}1t`d7N@D@o_b# zufN`IR=zW@4*TVdj$6N&IOtcctopbETjYr@8>F84ozCOVIhE704 iQj)p>iy1uCpVkk7jGD8Ert(Sv0000{#R#E(azP=6@=6%f(S;#=c91CcZk zFsbI^tq~*Mlv_%LHWmhilX%9D>2t0 z084~G_zEJk&_0n};>{77B)u@q_~1g5n4QBz6<9QgT@Zf|yn8z`4~kRBntk$BM>rP2 zJD5no1wgsC&UNG@Y|1s6LZMJ76bgkx;X9N8@xKiS+<%-G10tHj;vbw0h~R(xUj3^9 z5j+3IU4z4bh&vF3oBd=!#2pAHI1Grm1F;?U?7Ov*9^DYAo><7UPKKn)VqXv1BWK*a1Ra#A-2(C8%5SZm`D2w zi5Eq86E8z3XF!m+_aGw4>wh&6^7g@IAe4PjC=`ARpAUu(_XF!iga7~l07*qoM6N<$ Ef|bSY7ytkO delta 540 zcmV+%0^|L|1gQj&7=Hu<00002v5kR0lMNbKJzy{^LR+*Oy378-P9A ztf1892I*HvgW0*?n^ng$;@WL=V2AAcTIKq!X%mA_Ug&o@nDp337={D52dXOvQ8j!Vo6cNDXl(+cD3Ofpml?3o!ts zc~s1h!ph3Z>YvLR3>l}b!9b6KUJV8|vs}0u49p&6m47lAa`Yi{b5JXTQBlmJ3~FUC zwg<$cxU)+6hX$DIYkWVCgIQIbA<-5wmt&buih2uaqTR+EZsJ-XEpEV63%ILm_z9-^ zcJV797}sAJSNs|b#G;T)D1(9<2q$a}2DX5l{_7^}8K!%$WKWrC`t!WIMlFuYu_PVS eyRovmrxhPoRDa+x@;0gf0000c0004VQb$4nuFf3k0000mP)t-sn9!h{7*hYu z)&H!$v{G{r5D?~roaQMIivR%s|Np%J0E++s000000000000000yUrHY0003MNkl*K?8 zWR4Rsn83MD@qc{;=k#<8ny^Ue!5iU)CR|rIehwBt+~*uhfVD={am0HWNT~o!?*bx9 z`-HgpW2$tM{6<**;zGkBKJBFroEa=`sy_&GdT(_el!>sb`sS-nI~QS2uu;Gaz~pmu nGeZd?(#`qQipqJ6&|dTL2QHP7Zop0o9)GX1Sfd+wgGo7W-9TU_0MUI+ z7V@!PAX4*AajFv$Y>OR^BB#mpSa0YD!?f*Ddg{Th(~-x4g&5f&9)MjxmG)T7nsrNm XX?Z{X9*zp)00000NkvXXu0mjf=U=5( diff --git a/graphics/pokemon/igglybuff/normal.pal b/graphics/pokemon/igglybuff/normal.pal index 4bf00fcd7..c0e93f53e 100644 --- a/graphics/pokemon/igglybuff/normal.pal +++ b/graphics/pokemon/igglybuff/normal.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -136 64 64 -248 200 208 -248 168 184 -200 104 96 +156 24 82 +255 205 213 +255 172 189 +180 82 115 16 16 16 -240 120 144 -224 40 16 -136 0 0 -248 248 248 -184 0 0 -128 0 0 +230 131 156 +230 41 16 +139 0 0 +255 255 255 +189 0 0 +139 0 0 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/lanturn/anim_front.png b/graphics/pokemon/lanturn/anim_front.png index 69166b66bc60f5aa0d7fbb583dadc1ea8ef7b994..b84c0a77fdddfbcb6fc80656a46ec76950d80724 100644 GIT binary patch delta 1088 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 KMNUMnLSTaB6G+7X diff --git a/graphics/pokemon/lanturn/normal.pal b/graphics/pokemon/lanturn/normal.pal index 792d90f29..377916306 100644 --- a/graphics/pokemon/lanturn/normal.pal +++ b/graphics/pokemon/lanturn/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -136 120 88 -248 216 96 -224 184 48 -88 112 192 -144 160 224 -176 136 32 -48 56 96 -120 152 216 -16 16 16 -248 248 248 -80 64 40 -184 192 232 -160 48 72 -232 96 88 -168 0 0 +123 98 74 +255 222 98 +230 180 82 +74 123 205 +123 172 238 +172 148 65 +41 49 115 +98 148 230 +0 0 0 +255 255 255 +65 49 16 +164 205 255 +164 49 74 +238 98 90 +164 49 74 diff --git a/graphics/pokemon/ledian/anim_front.png b/graphics/pokemon/ledian/anim_front.png index 57d90f93be59369c6608ef99074290869be8bce3..c866d2769f9d5680379729ddbdd52bf46e4c73cb 100644 GIT binary patch delta 1319 zcmV+?1=#wF3a$!}7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!gQ5D-#Q zQpGu1|AT{bAQ1mbK>!e1`1tq$YTmT8w4{3g&9pi8=5y86)lg7SN$_JA000E6Nklyn!=422_Wg~5h>|HrM4Bna7V42J2C&cxGcvm4HbY=6s_qdp#=_D>tpO?kQn zptRHX$3lDkg;-Rcwzs~-a!r2)a8n<0X5O>T16;!V^#vA5FTiI_2jpo|MCLvK(=<7NCvBPf^tJ|n1qj-)UK3aBBVhO(~o0P0-1K6D+x2YrC<;k}{ehkiJ77QdvPu0EpCD0l+Vc1;=k!C)qQ_P6PdCS?aQgugyef z09c9o4Ef<^dL`J89#ztDsSUkt>Gb_w@W#+DP9p=;w|#!EPv73~^a@xo6*eZtzDw`r z3h)RJ!+)mNPUuXW1X#L(K)(PYx)ysd^(nz13Tr++IY&&D=@Z9A3qqKMgG`<+DvdHaYE zwx)#VMVFt1<}%s?l<))4T*3PmkMGYi`s+7m2-g7*`s*;IKEQU>eI?wrKlk*X_GzDX zvE5#KH)|KSiyv1i4rc&o+=36@uX@3$ceF7^*Zp?-@;bPU6Yg;b7+#Ep$rX73SVMoB zUVnM&;bZ25E(Cygu30vHSdSAu;MMeQ1ljbpeLIQ(Q1{quzxEpDz~s1c90Pb)IoSbl zOS9Woy9WV?%13tB4Z{+bztX;A(gqmFZ0ne_1N8N7#o8Bb5ai1<#+<+Uc6NYY5KB6| zs%u+2pr&>-NZ-4S3z#!5QfaO_!QGh#llGU-L0|1P_B>;K# zV>0V*04Gp;76c2%iXVPCMe!h;b4C)8xvn-~fV&*imP6U}2B^twV|xUoy1~sGVPLCfmB!-glMyJh5241ZRF zLHz>nPnZ(?ZI^dT$>w^9UbE{hyWyDps_7Zowj5^A+$Ea@M=3-t42WW;(JBZHfSO;t z0wbpVu21L6>=l4?;8`BAaLt?Sy{}N%&vZs#JpLzOk*H7~nwAtrn0*1l+^3GfsT;dy zO4Kl@yaF%?CoT>?OuD^duOrKDwbU*dJ%D&`9)rZe^x-3 z^FcOX4TDhqRO$lwF07j%RS%*v^|&{;>3-IsqJ|lG^n^g3PGz<6adqhclvV$7;pwn{ zUJ-lz{6Crw`?qG@ohzS}f#otFHb&H9uf5(97j=V+u319g>DyljHvtd&r68Emji6I| d$fy1P?GN%qIe)C}HoO1;002ovPDHLkV1jaSZ(aZZ delta 1283 zcmV+e1^oK13X2Mm7=Hu<0000m=G(!N^b5#8pQZ0hO^U$$?D*f<(YBtswV_o5&OcxI;Vx>SaI$D!ZNsKwp*u)o0!dpwus|QS-bP z^-Vy-^Ck^SOMh$VxH%bZ0;qf7(+$9g8nOV&lmI6QaClM%Xm2Sr=<(~Hs9OSr_zZM* zS`IwH^3&Pra#{u~4=6o8pUp@K;GQG!_4%?!iqD&PPd@>}VXhauo_~>+5UxJ-yl;mJ zF!09_p_I&oa0lKIzOX`!deCYS65k0?_k8G_HL@MoX@8RiQ7rePkw0#B*x4v^?D~YU zc?*PS-PFlAVj(+wmytkV;j{$oT|mDpBDPp9TBA%2lPwl|wrv?e#v)p=4sT^^n5#|* zoQDPsFRvobok0ANIaM>{ferkN5AleCVdeoXz7J5WlxA z-~bO+_J4})tk>(m0tv)W=bW$C57|!cpu#%93UPc(UKIe^oVC~R5kS55egE&Ur+2bOiZ5qv8=(DjX|)m{8O4th z+l;Anod3T*pSAT6x5baG`9v$t1$jWv+XehPn&_jPuW7i6Gd8sdeQ=bs&J>`ji42bX zp??ZUdE?RebozxmgU_z(A%n&d-Y~EHzIl#a}{o~Umsddp47hfrZ z7ztV7@D#1T+nh6=11d1J8}x8CtGQ#7*?+vP0^KCx9KK#65Xq^m0K^;7Ne#V!`Nka! zlLyLM=tuq&I&IMD`BFqFumPR%w$~@U_PV1uN@a%y+_v@-=OtiqM+NYyOb*iA<9-jl zH4Ib%<^b3UaEloozalEIaMFMg$D&uuUsG*`5d_kFAo{NQ|I&G#uD}MYZSy* z(}Bv)eJj3}VT=}pPH7`HfROGTO?*kA>+G=5Xo*X_S0w;`n}ho+adqPsJ0G@UZdJ6s z-`#4X5YVt!f&8UYEwM&zHOKy^lc?AlO%!u;3c<-$Tr=XU@A002ovPDHLkV1o5|S$6;c diff --git a/graphics/pokemon/ledian/front.png b/graphics/pokemon/ledian/front.png index a51f2884e99b8fa29062792c998c641d05ceb518..cf066921cb6d1d2b0182c28a8aaba57fd342482f 100644 GIT binary patch delta 726 zcmV;{0xA9A1>yye7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gQ5D-#Q zQpGu1|AT{bAQ1mbK>!e1`1tq$YTmT8w4{3g&9pi8=5y86)lg7SN$_JA0007DNkl77cFMkTQ#4bqN21VjE0n@g*fHy>R4%!GpE#c;yh_ zQY&t18L;9iklq@)wNr&e(MLd~ioChCrhHXiFNB<3G2tWSoC^%C9eCB2LSB?1fI=n) zF+S%20~uTEPQt9yf>;eyCk7XkP?W}0_FW%|##g&iEPp+Do&psehCzD>b~xb2`D&K} z9McpC_rM@vMI)#{WZ!oc=oiJ3($pmzk?i5NqExET+F{pnc+ ztjj*(?U7FRd(k^~zPXJ|On3YIoDX*o9eoIzZiTH$v1{Qu4uNN&IXrkw0z2`hz{*Vx z^n;*hH-9sb?RBPc33L(21wFf00xhI43i=ihX_3=ha8x1cAcJv&Trwg_IZ1-GH< z0@RJLy>xX!o<85aV1sQpI??-C*N{|g{8WIEa+LBzfR8Lz<;ItZzz$Op>hD%=AnOG$ z@)!I~jWWk5f5b6m>V)zE88P6rUdv!WJ-mzUcC&VcJHc0EYhr z(+(b^4k+6pa1{> delta 724 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 diff --git a/graphics/pokemon/ledyba/front.png b/graphics/pokemon/ledyba/front.png index 10e52bbc70c46ac677f73c31c836c7a0de690b4d..a34bf944a9993029d172aedde4bcec4a87bf95dc 100644 GIT binary patch delta 662 zcmV;H0%`rL1)>Fz7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!gQ5D;2Y zQfes}v_UcUS{VPFAl1#y|NsB2q@>lfd;jK~|Np(DdjM);v`R5^CHT6E0006YNklu&5I41{B2mdkF!`@iiOn}ki(iV#-k-&(yYoiFxyK!079Z+)vglWAg9cmUJ;vbKP_g>r-K)mXW;Qf69 z^RBM|@9yeDl-7X682Kh4MNZ9vn3&_eEGCW=q&5$Ij6{*-1|lK5Zvcg$09ZMU06<4L z0D2gL0Y(WJ`G07@dyIpA*ol|nTY;16HHA(IAq0j6XkqwVL+A1nm4OgALZSc}8G=y& zIF-L%FCe6rHZyRr7^w-oh^u-Kp3V^XT3hHN5J4k2YI+n-rCvTw{A5EGvd4WBDJ6@FuA*25cXcTUqZ_yq>R(`A zh*NQmpccw#jP(8JG*MZc({q4NN45ltV+e)~b(F=`LTeQ;MnD6*7w6$X4gDCM2*35V w;uzAP4S%_N3w>TH+_7B6oR{#J207*qoM6N<$f?nb!D*ylh delta 671 zcmV;Q0$}~31*-*+7=Hu<00013M{Ml?001yhOjJdf(4Y_y5Li%9Xeb!4KrrxF82FeV z(8$R6`1q)xpwO^*_~4lM__&~W0BB&aNHB2N4`mww00K5iL_t(YiS3j>Z`wc@#%+@& z8)raZP=f8K!gMM!EMzh{q^<=n-=OS{Dj7zjN?b>>5XLCmMSrNOvT@-P#ABwQDB=S& z72VVJ&TUoUe~~)pS?_o6^S;k}Izf0*Sm2p+QG14x`I(pmq(9;8>tKG2N=DjykudU*6E z1~{v>S%J5wMt@9{yGFi^Q1254t`!YvKHxgQMUkWKYE>VQH5)~yDUCiLCIjRT+E!E> z(zM+*P1JEtvblGWZ=%t?qzkjB0hsHBJtSRi9MWrVQHKyVPo_BLqhevf} z1qo?@#|Ncr&!hB9#)54HkGD-EJj$z0>fKOE>RH%2!++Qg0EVlkE-9sp3k$;5q!0ug z4iwpaQro+Qt-@%$4G7hVyv|xhLcl$l-@=0HOtt~Bym?&TUjT4N2$@?OWf+bMJeKI3 zaDno7AcvC_K#4AWV1J$Kgt8Q6HM^qA1qaTvs1lfhMQO{a*L2C}AavQ0@mLK7p?{@x zMY$d}*nhy=9^#;4|5&en1B?CjGz2)dyvY=~2Xi?u>%nD+Q^!sVdxVwXeOihWY*Lw} z1zmh1Jc-XwuofN@u$_Z%O~Rsl*jQ0H3A&?{Q_cC^y!Nx;jv{~xU^Xe!G=*}(#cBjF zoc%Et?ff_bkY;~ZEINZ>1R(tDTnRphpc4PO7a0AYegWKd$|rv>#kK$d002ovPDHLk FV1geCF)#oC diff --git a/graphics/pokemon/ledyba/normal.pal b/graphics/pokemon/ledyba/normal.pal index eb13383da..cb287fc01 100644 --- a/graphics/pokemon/ledyba/normal.pal +++ b/graphics/pokemon/ledyba/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 16 16 16 -88 80 80 -104 40 24 -176 64 48 -240 88 24 -248 152 32 -208 200 200 -248 248 248 -168 160 160 -208 176 120 -248 224 152 -248 248 184 -160 120 0 -104 96 176 -72 48 112 +90 82 82 +106 41 24 +180 65 49 +246 90 24 +255 156 32 +213 205 205 +255 255 255 +172 164 164 +213 180 123 +255 230 156 +255 255 189 +164 123 0 +106 98 180 +74 49 115 diff --git a/graphics/pokemon/mareep/anim_front.png b/graphics/pokemon/mareep/anim_front.png index 5c67de5094474dde0d3cbcce0331fcca58f21ae2..47961b201aa02804d11f34e5b7b99976d50ddb83 100644 GIT binary patch delta 921 zcmV;K17`fs2crj&7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!i+tN_iN zQvd(||K0$cVjvI@5dZ(Z?#**jQc|R(q_legQiHt!N|bY?_F|OY2Dknq0009aNkl2i$|9@MFmr3Fnk*qqyU36NHbtQ!CntyY&1XOK^v)>7^4ASN-&F48I4 z$Z?}%!`J}$FQnW;o7C$8@m2?tWaNXm{kY_i)qkU+ap9MEySyj2Ez7n=2dgYV*5LME z(ar{3fpgg)wm>rmMEC5#20v^-5DQ=fK%mff2ow$OvxS6S%C5CeS)-Y)d+_E zA<8Hc$A17|?cPW<$M5?dLf|206G`41y_5JnZ8FJ<*?p4CT76(b@WTd@w}#LM@h|0k z@kw=4jQ-Tr)YR0})PEE_bCA*CbY}a=0$L2QwiY^|RU=;<6hP|~Ak_Fi&^jjwPz`!O z>kUCDFsBQ&P6M`t$D%L4P<5dOWKo2v2K>i@*-gat%SSX9n(a z4~grm1i{)SHXVP^(RPKi1R5L!p(2QbKp5KS3TH(GQ3=9yAMG)0MVAS;{a)L?_DuPHWh$lhnVT=cY;4mVDCcaOzT7n=1qC$kM-WleU zAb%VOS?GeCcLbpr^y1$Vgmj`t1N;{U?Lc3*9L+p`V6e6b0=u z79r&<>2pOve-1`&Knhzc1sXd?hX@Y}!H5hcc=ZZyi6T(6pa?XCp@c9N&kiC%2;)ca vum|BF@mK#5LkP9rv8A7BB7~_ao&EspLlQH)LmG-w00000NkvXXu0mjf&6}Qu delta 965 zcmV;$13LVp2hRtP7=Hu<0000zF^)J2v000SaNLh0L01m_e01m_fl`9S# z0009;NklVF+4{QYQ=XdW(!taOB zI{t3d?ySyNwjZtrHn%r-R|B=pgO$MJT1^dTZeCe?a9f?X=<}TL)CKC4QiER&RDkAM z4CuIUJ$j`88h^CI01F6hqL@;nMRa!2#wP_(p9Ay+4ZbP>*Zp0>JtA_GTAdnmqWMt) zzzOqHyfKjrz=$V2ZPCd0)H9rP`F9waa*rB~4BE@jsCOf|g+8^S1|}S6*jNJEKBZx+ z030j<`sl1ndo6S1QQ8eL#$pfpR0c4rwQ1fPd6N^Yq%^Pu_g~HlR?zkbw5v zEc=-Z$HM{b7#O=!llqfcmLm`o+$*=&|3m{O?Wcu0C5>S2(kEt|bf z@Ox=U)_+6CBm`SIpvWT)N*92s$Rp%%g7si13$R;>i!kKZkw=wa2kwBW{yjo*dUfGB z*gG!CS5vrmgap$PK%er*bCs3>i16Bh^pJ!I;<6s+CzZ^&j&-c#KM2irSEm~^TtR5u zF~WRfRc^{agKusy3>LTUiM!F|4g&$1%Kf{7u752E1e{UXsXbZ-76bxhO53R|%hrNG z&@PmCymPP&{1FH?2$T^15*G!61EP#+Tp$h$4>FJ@%2*!+!mx87GSP-0V{HNg;n>iG z9opvJ(YvL*KKcLxLBKF*gd_9pOMe-daDf<(-yZ^i{mDQWqR9n<8wLX$V=Qjh_G>N> zV1F0@U|)1noq#~J$3wpx+6*v77b^s!PaHdnKrzH;oeM-lT#RkluhM?Dwm={*_=a{= z3!V$a)Zqf*s62@agpc|9XFFQqlMxdL2c8p1j4$PLKVa`n7=gs7Hh3!sK;-b2s5tx# zmaw_VVJB7r$b}p)KvHQ)h^k-Q1T$7|@IGpqu;gV6ACzqHI86yTj+4^;9>mEx($jK- n(8)PBk+OUdDotC*zY)Ix2ilIakHnta00000NkvXXu0mjfV%fJf diff --git a/graphics/pokemon/mareep/back.png b/graphics/pokemon/mareep/back.png index 027ad17ce9a04f577704bd21c77cd29ad8bae22e..c0d26a07b66d3bc2361f03f53cd6bc8648dd9814 100644 GIT binary patch delta 506 zcmVc0004VQb$4nuFf3k0000mP)t-sn9!iur~uGl zxcK<^@Yn#T7>E!M5ctUW=$P10P*9+tps08NFo?JiNRWWQ@KC7WX`O5{0004oNkluWq#*x2zno6$qbVha-J^0jq@3K&JGXXnWpTJ<;73_v{~92jSSZV3awM8GlN7-8s- wg9yg}y0%0AA({(_F5G3v+gJV4($e47FGI5)1b=3XvH$=807*qoM6N<$g46irt^fc4 delta 564 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 YJds^4sk3;)00000NkvXXt^-0~f{p);s{jB1 delta 1505 zcmV<71s?j43+D@v7=Hu<0000Wq)gACk=(DXe|-Yq2P{V z$kFRfkAcWp9RrD@JqG$G^X!SV$&vb2(knOAASb%oTG*_|i*y0&!`fc-b^plq(7ndNBt0beYoimHBHx zXj(1;lyb{-qkl>7Kng{_qLm`R7bQy9DwJ-|Lo?=Mrue)`>C!_=TZ+E46unX^E&_ewPY01Aoyoa4I&8w8Z5@bXDTQeU zfGZ9e0Ds@Q?&&lHWawt2w(q(2*&%MIJ@MFfLr;-u!pzqG_-ynEuJ&E6;Mw6KJCK+; zp3pQ{ik7B{<7v1LCS#Q??_7+uj~J_I+Vx}qc?eKpt8NX?#iCZ=Txg4V`6-l60{~y- zM+G4skHqLp8Bi?-3pEm=a4H;85WYW_dK~~h+<%S$^vRd1%&-9P&tC&@264I90BqrE z`QuY@6#NLc5&-K07@Qx!83u7%27(PS9pIvSo)23p1i+DWh7-8&PXON7wkK~&IFnoM z&>Q!$(kb7UmI4o@5o~52q-hf_pPf#fbS!q#sdtC|xK9W%B%n>m4sM0I;dlf1L*(NL z*MAHINY$`0o(yo#V}T3+l}e>v-rg~5aexW{sn?;l86X#_lIpE0T(2pr$q|UWBC5Sd z2ta@M-|dSZ;nD5CeSe*|%hg&0P`7!zTD`cjUG4SX$p9d4d%cU&)NcP#-{Mdh2%5(^AUAURq~1IUk8!Gxp$^fmx@(tsSLX(|j@A!vdQh8JP4FPC7=Hi`2()AEpC9izmUQvniL^UI|#InTz@%5hOGbqCZ&Tle)rUNW$|t{_)~B(fh%Tv1@It> z1Z=YJCvRLA``FTikhB{d1Z7*$snN$59z{g_0ow$RG69ofvD!$>gOie;(_%NFNU$-7 zT#WMCb=e<)a-w95V4M|1J_s#Vq2w z!~kF@0b3AX_+ z;fL=K!$yx13k2HCXC5O87+N!JR!uW7Arer%Ri0_{3@C?-Z1*00&1c%YQ{zz&0{-Eb z_c_%E?}%BJ4lgLX`maAbH`X46YmkO&cmGNS6t1SnKa76>6}uZifKC4f00000NkvXX Hu0mjfkzK5w diff --git a/graphics/pokemon/meganium/front.png b/graphics/pokemon/meganium/front.png index 2a813e11888ce778d4973a253000eac4cb6248b1..8d2d25f6c19d8617b843fc297877998dbcd61c16 100644 GIT binary patch delta 841 zcmV-P1GfD42Gjc0004VQb$4nuFf3k0000mP)t-s_`vx8-XLO1 z0OqU!YOFyJb1A+5dyC#N5D*am|Ns9vT6+*V_N1K6AUVy=&1!0DK8Rlp+2D&hTO{knD+ zj~L5pYPeXRAOxUl=Ohh5+^q)mmV;}E^&Y~n$RQ8{2oH=Q)*U&<(KzKjYQT`B4!F8)oau53jjjkoC`C@7WXVTQD%*&05FQ^3q1!oS90C; zPXJu10>a}IDnU51{fPS0MZMR8hEt~a#q5m1vH}~?dT{0My@@yd$a*cv3}M|fMZbdc2Pyk zmWa_ua1!ddA!2>(V!1F7TfQWRrb50f+ujUtCubaliz0Hf8zZ(7`eos>9yPey2JK&H zfRch15q~NjBL#RX;-v*^ps1qgy)MgoLx>!N(Me$Iplu&TpuSPQj30|19wpxOn@Z%L z-YzL;E5Yz29RNE^xpqL)4=hkT0l<)tM*+3V2No!P5vl_6Y2@lGDu6x!sccyL7{OT@ z0gjFU1N*04F={>O;xrqe5$di7Az^sX7291{ihnIAUXNnPy5;gqKeG0l!6UPpmbvdp1JTwAbN$Av67Tn@;*=?527o5qKp0!(!I0{~mh0vs72MEt>k zybsVSc^1%$5R_mg`veS%2ml58qc)o`ozZ8ze)vkDkSOf{TaNktp4&xCmXiO`_jE0z zyh6Qcd^I~ft7JN115fK=M7;5P>VY60WHNpDWq3<}6Bc?RDSaiZ-lpVz^33diO{+0) T`K0F>00000NkvXXu0mjfxe#@g delta 876 zcmV-y1C#vJ2KNS#7=Hu<00013M{Ml?001yhOjJeq!1(ysAYe!U;HUtYs8CR77|`g5 zxX@@25D@tI`1m+jcn~=7pqR)YILOGzXlQ8a+23{m00RO^L_t(YiG|cZYui8+0Pu5K zgTRv6iT6+5_`-bMQ(>q$)z8__8Gi5;6!rV41a|htXKp*6x?$R87r$D z1GSO&#_^5$4&B;!a$C^f-eURQ@9v)N-U%Up6GfERL`f=#XQ3~eRj2GEd zRzgyKGcJ+TMs@>!q`VX(9&K(sR@Hs9g}9J5BEYjfj1TwMwn2zuHU#q7J$zKd?_dff zZHf61c#+5Wb$=1#<{E6qTEr61YZw1^}BMO_r>cl*o@ zSK1bv_GDQu1wc!dPkAX+O19gFKXUMTLSKmkSt*%39uEw|hy-Z>#bU9t+dNgvQ9uA7 zS7j=Y+aC~2QjnFm3iOwepc)*6J`qayiUZgm<5z3-;BW2T!{2_RwX2jvKxi5*MOh7O zDc#=BAOP~v?XFT2+P$mL=fPXWEd84ZU|6wtj~*gniVsE{Qp&kJ z9R|*jO3sIaM-2Wj=)aqoPlK>k+`ecXiNF=0a||prLt%$6#EmAPBUOj|M)f+7MJd>3 z_n!1*;Ex1xWS!Jnke01c2dex;#zw@1=?-4ycRbxOy@3@Ht?Ajs7WZRWD;F?3NH4MWr z48!>4%q4fy&m{MzpECHk-nm)5x_LMaKB?#a0)nPJ5P!IWkp98z{JG1mXmc7=Hu<0000FnjF%a^_@LoZ~pTa{apsp5RyY^LTHeyM8(9HuV^ozZY}O#`@si@^y#K{Ba$W!)<%#1%lR!6z*CbQTVd z0Kzcg)6XueXmjp|Qi+(d*Z{Z+xDmquQI|pLQUY~hJZD6+*VQJ>RH)#&Yc^PU_t$*0 zz2nULDJyNgnE|}JO_}#aSghdf7a{>j6DmTkT)A@ny?-p-?-c0ncO1(&kOrH-G+-73 zpIIXMCzz9RCoE1Tw<$gf2+volDI4Jkc0N$m~aj;>EsNO() jr8bb1OV5j3xor9dE-0+xU7CV=00000NkvXXu0mjfvSJV; diff --git a/graphics/pokemon/natu/front.png b/graphics/pokemon/natu/front.png index c77e0f9bd7a5780f4ca098c22811ccf77ac5e580..ebf3bee930bad2d31cea062a4faa02d22d485b99 100644 GIT binary patch delta 366 zcmV-!0g?Wk1N{P!7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-s0I=wTDFF6b zTGc69N|Zq>5CbINY3TkFtG>FaS9Y!6 zn*N2PqjxQ>`NK|5|0BIU%_Gp#2WnT);Vq$(dN>c@)x(`#EEbDt9xzyJUM delta 398 zcmV;90dfBQ0-OVo7=Hu<00013M{Ml?001yhOjJbxu;_p&0Qgu~*eF;?kU%JCC~&wy zkk~*F5D^TJLIaHr@tDuz zmS!x7Pu{(}%q1-qw*t5F^76E_v<5;7GH}VWrlpsc0Ttk~gR?UY3Iedp&sseVssOtq zX0KYcGcBbf1gM}9Ye;p06vW&(7nV75hN1)(1suCq?Vgs`aU^ZlS_?rXY_@dl-rbg# zmg2c;t#Pv;Hh&`+I%cM&xwy<)wc~E1u?1FlhPVL1tlc||n{g=M04eC+J;Si01DhLw zpcSaVV>eD|h>Fn8MyxJ`07i?B1`gZ?@Lm*_5XNmh1H=8^8^%H!7jP@+=2Bm85QGghP0N0X`;Kg~q!-R@#;(ilWr#;(stu%(DEgs_~^hy#Z9# zzX8+)nE~^Jn%KaLHn3Xsp8!A?Af?CuORu~EXro2}O&_0s6To02zA*s$7Z~(VzcZlv zF~Dg6q;3XAJE0i>C{loUG7~ufSk6M90V70vx)H!-z*>x|GXUnCJqDHql>n_B09neR zHv;Q3bOTbO4S$d}WNUM-$kp^71NA`FKgwl*R{Q{<$AADf6n%wO7#s!|aBLW)`Rlq9 z<{;$(EHx7kUBGqQR*Jd00Z?V=OF-I=$PFpQ3E=qy8Ra8`SY2@D|>qZ1%w5gLQ+`RD|6gv>!T!NcI%WVs@d$}t*( ze~@Eg;o@_F%!dUaiNU)fKlL+9!UGT| zp3kOF@x;@4ImX#Xo1WLSp28=_PqO3M0gQ0#3+;D+n*f1ulRmWbof`lp^gh%%B&U8S z0Dm=b+x$Uy8(6;)hbFvrg3AJ6*3*9Cy*a@JsC95z(csEmh%2|m4y@9Zb@+wUP74V+ zyvy-G#CDI9uFI{T36*$az!|(fwPQ=l#J9 zKrayN{$TFz%Uq?006+iz>rutpnzz48jSw{000SaNLh0L01m_e01m_fl`9S# z000C1NklPiq@T7{&*)2%Vg-5Ee=GStE&_jIl<$K7ZLzc~o8O3Tr(Q4(POK za$1b5ZWcq^FA+jWFujx>+C#oWAi>8FDUMH*(t|01Lf_eylajpeh#q?A9QFM6{Ua^& zJYwwMoYyP#^}1VsHFpE+jc)y}6WHW)Cot!mdsC6)~y}rbOk%lvEe;DS|8S3yn5EeK^0FSqH z+=2?Si;lq9kdN8`2r0W*2gXXU-M-exQcA1?V;$&ys1)cuRA=voyeae3M|H3NXbJT2 z5xoA>p*$3DCin>6H@{q|lZ*7w7#v`4X7cLkuV*x{+kcVC_*wN(Q@|+h#XTk8>if9P zyy<8(=SJ&m0w`$}CZH!o2gWA$*VaiEP(biD*CR0?X1LKtC+1p+8Uf@ll%5Hn=&|?3 z5~vV8f?S_Q+d`mwtldNwxGwmBJlkh zx(3UPFu}F(k0_w@gE0$p=GTr0fR!i4m>npf2*45xk@>!#4hUjnCbAe-LpD(^cd!HFrf5O{ybrMFHXW1rSrfZu;}EAw)<4Uef8=B||+RfT`@k7pcf0!g~)A1vv#w1qXt! zm1=bwIbg7NCRFk8$it;Uv#>h3-LMO>7;e&^l+5F%DvXhqwo5z>*l1Fk&Hw-a diff --git a/graphics/pokemon/noctowl/front.png b/graphics/pokemon/noctowl/front.png index 6665234c049e535e1cdf21c8254b7062e5b05416..c646747b44a09fe7f1a239131143bafbd8081bd6 100644 GIT binary patch delta 690 zcmV;j0!{tb1-=E47=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!iCdrD$K zG5_|ods<4~&00YzAk~y&5D*YzVq*XQ|HUyFoB#mD#l@6bIi!PX;F@LK0006!Nkl0;2HC8|}m^B8B`B!AQNTUGNz{rm(_p??CX zvlIaC6Y2~D4|;%_`fq?}2r$nd|Ibx<0`R6r0f#<+en-Gy6F(Rb|3(Hq)SnEvehlz3 zAgqgl(M326h%78oeKBVX0Cahk#td{q?r-k|2^r`etLr*IODPcp)1*$2qYsh73g|ll z`XZ+R)@TFlp?~zAOI6gNj~J*;UH?%b1GefHKqCeS*p&JzM`;Qe0HAG}*#5firX{f= zfTFw21sS}OH$ifMkC7-1YmxoC?AGcISe5^EG(*vF8om>*T)RF1yzh; zt!cTV2O+(G&5+ypj((JAy~vf55YsoMf6AF4M=6I0a(~&67V2{jS&){$0kI}N3?L5I z%XkvGd4^vG0t5muN5{Tyr#=i&`p~z5@kQtW`3o>?0f(^oF!SRMfGG%%6}bzro+B4g zu7Kf1uu#`mb zDE9+sqkn)&%@33Wh`CsU0A`U6hV}Pr5O5+mgKh#bgbrC$Hgmb=j=+ZnHWn1_1)PUT zskGk87@|>J@ZfMmqUa|3-kb+_=(a;mx!Nf?)kqZ|m+3?7X13M2EB;fcNc? z;iAT?4xTaHrw8a~rMQM}nHLZ14!}O+vRC%-`77)unrU09wRQ`@6$7RJeFHE(Q~tmD Y1JB|apKcbBZ2$lO07*qoM6N<$g0h%0CjbBd delta 715 zcmV;+0yO=;1=j_T7=Hu<00013M{Ml?001yhOjJdf(4eq*P+&kX@ZhL;SV-8okU%IP z$dGUl5D;KsVEFj>z%Uq?006+iz>rutpnzz48jSw{000SaNLh0L01m_e01m_fl`9S# z0006_NklljA6bJBAWks37S3s5>I_H{*DXNl}OMfPi2xnz!h!S&-7(7|I zP7w;mvO2)GV5urL1{S^pQV}B}AJ+9br4N z2o``of!?IO4S$@jlx&pkx{rfE>YBB0!rabK)Bo2Z1J4m)(T0o~dIImG5eS*kpsfLL z-p4i&QqtEwmhvg*9NR!hNADgAq5B@%C*LQu&bKu{`_|x14m>=9H8`K}A?OP62-cH# zYw_$N87hSX@-61;^Y;rgc+lbV=?8ZxO(2N8$P@fZo`2$fV$FhJNtKiv11L$+o$LPG zuz`>;d)jiIG814|+rAGYLxyXqAg@5`A5rf~tCy+Q~{yGB=K0%LI`76-_X4_Tt43a8PYyqPB(ziv1{kNEVW(XTJj4{<)?qH)p` xC)oI1mER`6K9ko4ASGu%NZAasHAT(;tKV+j^4uJA>WKgV002ovPDHLkV1jdfLW2MR diff --git a/graphics/pokemon/noctowl/normal.pal b/graphics/pokemon/noctowl/normal.pal index cf763b733..0e4e0b077 100644 --- a/graphics/pokemon/noctowl/normal.pal +++ b/graphics/pokemon/noctowl/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -176 120 80 -96 64 48 -240 224 168 -120 88 72 -216 184 144 -64 40 32 -200 144 112 +172 123 74 +98 65 49 +255 246 180 +123 90 74 +222 205 90 +65 41 32 +213 148 98 16 16 16 -96 96 96 -248 248 248 -192 48 24 -152 0 0 -192 192 192 -144 88 56 -160 128 104 +98 98 98 +255 255 255 +197 49 24 +156 0 0 +197 197 197 +148 90 57 +164 131 106 diff --git a/graphics/pokemon/quilava/anim_front.png b/graphics/pokemon/quilava/anim_front.png index 1c2709eb4fa1be8d3d810c929e6ce19bee38a4df..e65df16880e20c1a5699d66bad855c8b9e2be742 100644 GIT binary patch delta 974 zcmV;<12O!G2-pXZ7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!i!00945 z0RPnh|C|6AVuLY3YC)W=5D*Zk008*-__Ul-|L&yb&1#EcAP_J(9L-F=000A4NklT0Kzf_z|2l(lxI1bLezTzA(laU0LofpdA7j%T#V3K z2S9?Tbdq~L6QW*g!iJ$Uv-faBXb1o_`18{M5KVO@+kY7x5ZWZY=mC*{rm-+ShDGzO zG{6tpbzNOFx%xpb#JV!JX>sxSs}OEZKe8`-Oaehv^WC1QZ{#cJo~^x?92Ay1W( zr9hn1M}Nn(v;elXS~sN+JyZU1t;a?*)4p4M=jlq@8kjA&QuetsFk8i_yJesO+1Si& zeE_(rshty^$=`bGt+(F#y}G+b$g;azfST!^064+j0YC~^mm&8Q0GtfvP5qLhr3&f$ zK7f;x&z@LQ({}_;1bue=2EYa|Ca*gH&Ymgy-G3pd8vWYr_=Sa}=j?a~piG+`?-07^ zcmuGDj=Fh6Cmt>|`{=0i4rJ~H#Tp$;_RVit*}i<@V2zF;z-53)ugL<3?aP4BL`Sxe zH&na`x@d$oyRV22$jw@=MvN%&kCTcrSrB0*I>odPjv3!+WduFqciZnH5GGcwI45Hy~gAyK`$7 w-|5>l?cAgI&kKZyfSIMuC&IfxcZWT!xsF~+ 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 diff --git a/graphics/pokemon/quilava/front.png b/graphics/pokemon/quilava/front.png index 061f319982b80c36d2c45c9e24433d121e596235..65c45aedd235d390f444350dd9d0795fa0fdb45d 100644 GIT binary patch delta 527 zcmV+q0`UEb1=j?S7#0Wv0001;w}I>c0004VQb$4nuFf3kks&^R0o6%FK~z|U?UKQA z!ypVqEkK|NnE(IWA^|owIH7fW>3C1cn0>5PEX$)u|5R|-e;1%`0^m0QO5O1*Q2Gx6 zZ|8#yP{v#W-mfT4FaGNQ9~v$It<|VS_y~~kIe;FP0D_+Y=%hgjpeo?92X+_0D1ZV! z0Q(p%25e*|Fq2`XI@<`fH@>ws+oeSrFH6O>`Pgk}ezwIhIO zD1!!dX~3X!NC!B#BMVmfrS^}k0H^b!!#>g0~E&|Is=Ln930vEeB!!gPu z)H>N60uXL309JO{QSEZng7_1F5Vs-|0QIi1y++9Xs*JFI)-s?#Oxfhwp9$i(mat*i z$~zaKyV*Yn;G;wt5RFoGayd2c1^fvfAr`(`T{b!89)<| RiZK8H002ovPDHLkV1lIk=i>kX delta 578 zcmV-I0=@m$1c?QZ7zqRe00013M{MnpE2$Wzu3H1Po`Qf-;kopWdJxqO92?3!yl_IpB6f+VT;Q7n}kwKd82P**Z zPJFN%1+X(?v0D``A?AFNN(;nCJYs+GAtQu%wgUp*h_6>!gR_`Nt^_^==R$nEIyR>R zxDpOa8Q*h5yanJgF=HOQ;znW1H>pCT2?&VU8Gj8x#C-Q3V>S_Dc4>&?nGi{0BN}2v zCu#bl1d?f)#mgBQVss&z|1gajwy4aiS|(;zX$owSh#}Dr=P50`|dKEYq}W&S|GdI=9p0HOSL)eq1MNL}l@ zYMh>r*2N9HTj-mn@;nCzH7lW^1-;E99mxaz62&<9~7dMgTxeHa`*|Qb3Og zLzWOA2AG5-T?h~emyS|S5dfq#bd+;Wfj)>XSqhYIIWhq)eo2ss20oeBx& zM<4;zzRTq#Um*a(34mB1$n?^>eZ_*VYU|$sK+d)n8o>pSyP&of28;_@a)=Q?`;RS{ zf^L8r><5UtY4T0=l86(q+BSri%+7Uqrml!O2p&L}+CYb%HF+67^aJWFu2k7tbLvTI zlL=rWFn@aidKZl9P62YH`L==quDVD7&b{;w@a{!A%Oe{D|7m!oU`r@)C6LvKqy6Yv z2s6TGA5+K-fS? zh*&_#pn$l5Sorw(pm0by7!b(FzyJUM0002I*f2!^00TcsL_t(oh3%F>YZE~f$7kDt zUUKj?kv4d-)gB5ST(**ide}AF#6@~&r3H^dn|n!Nva}aZ?tiAI&`2`r2QXdmAQdVU zPaX=oJqt>|i*Gi`$$3-tAP9YsT>ig(Z)bMq{U2k09&pQ`;cp_pMCz7PK)@~-0NZ5~ z04@b^8w!js%+bK~JOY~=B*0cTz~x)(G~m_OU0#1l14=Xkth$3GOaQMISaqA$k?^2u zNWj=sGu|};Q-94Ul1Bz$Hi}{?>Cb8Pp2i(1J2W5zX#gBnl3~|0oJiSMHFOmi%hePh)t@#25`V415D?k~2=uXjFL^771dM(C zK9H?ObfNjHUai(+O}l9|&=f(jA2Hy)^Yp2B0FAc%jswYt%|E zhnhnJl^F%(X@L98b9|qE2SoA?-Q|7@$jej1Dlv-D@duM`;q^Xs4SL>LiO*>u{p>hS zi3D=#$A9S1abSf2a`^aibO=Cgq)P8B$M30bpMz%9b>R4v1d6!AHrzP}Vkf;2fiA$= zE(OS5gv|v6)kwXpEg)cD2T&iAhpKM?kOz_%5okl6zBOK`5}3}T2LJ`rdE~zD)6f6I zuxM)^#&y?%)HUs<)kFW64{4x?{*FhFP#tE4Lx0!TK=%fGdXWUm zag1j_^LPD(P(BiJr`s%F8TaTd0v*8n1Lf`~*#x1x=DdHRyg38(=J;i7|6QRy_qlX1%pmkS zyC_`>bobYSa_5Rz`_{a=IwRegi>1unX`s=#%o32DtkzglI_>}baSdf+30e5L3!D$g z1X+@_VsL*20L}=PamH+?% diff --git a/graphics/pokemon/sentret/front.png b/graphics/pokemon/sentret/front.png index 6505891305bda2599251b2511082a2c025447952..bdc69648941c47262c1557b30932bea69cb23499 100644 GIT binary patch delta 584 zcmV-O0=ND81l0tP7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!g~F(5ez z0AfKg5D*ZwAVJ106a5wEHM!# z7=~me00!a7Ny-TkP)ePXoO1$dFfK(3lFy7Rg3#GPInNUjED#nrnR^MK;1HQ9V0|bmB4v}ZO;j0#WdA(lc)A3Buy5QBLYzuq?c<~aNt|)8bF3>&xxYoqJ2&%ih8QME? zF#g>jfwuPyg#T@55O0RAfb#Dl>2g@F>q1(L_@9iuM1NQzfpHEBjRBAVd+qi(*$5Ia zEdgOQNboj$jIfZq+xi~?+1=Kl6`TTl3uD W6&P$@hKD`?00005+K-fS? zh*&_#pn$l5Sorw(pm0by7!b(FzyJUM0002I*f2!^00IR`L_t(YiJjEHZ_`i^2k=Y# zq%IjaY^jZyKw>~*v0jlIb+J{GU@^4_Bt|6YUQx-h%EI=XPJak)44&`^A5eo329M>OMT!GY1AvWDb>ssZ zBV*`=2W%Nr5r4^#vopI>O^K#5pqxBFLysmmh$~rlO<5mdNw@A-tcEy`Vl%fPBd%i? z80O7uqPd;nngGxpT0r*8*?`4(@e>rz1`Osrf7ZMzgntGApT8_<{N`K+pFVu!Dx?WK zOcgfW=XYYJ@hyUKo#FGblx4Mu)`%!Bhi=f-SH>X0k?bNKl9|K>`)#l?FuLGD^wZ3C$D0006$Nkl1JU?!Jy06TwrbK2=l)2VkW34fA~zG*U-ALflo%$Ezr1?sMjt$++TC@e?*KRlfU?m^8eKwNQ z7?H!l1PFmBa6qJ@oZ+|xKX9V#mkvC}4b@i?oO9?odhI2!d0qM3Ibe&W_#A**8~I)l zkXE9k0S~!GM}G(xz~SUm3e5yaiT&)0+v5>scBpoTA#we{Wwa9@1(Fk3BKtAdE`HCx z+yF;363Pta{G*mHcKO2KJxK$;{qB-q28fVvkX#=CNkBdrIh-H~?HO{P8wV8e4-XK# zcAgX3Gvq#D1AGaH8o(2fE6|z11U|`|zxrpCp0olgmw%`;Lv67(pw|cF5^HIs&ejZb zrxWb^aeGu)e7@a&EcP`#1kkOeT}bWHOmdzg+(*KgeC*<_E|6f0rNB_5UV6 zkfn?R{C_Dw7;E4&KNtcKQ-dE20*DSj=l}@C2Tgv^0T8ky_xM38q2PlPe!z3B{GhSB z!AE`|E2D1z9RQ&jXZ%3de_5Y<%PZgGQ+`m^{|-JV0OEun)b)P=K%Db~y8gE(AOPY6 zKN#A*^CJ}>WPnil!NB^jPaOE50))5xb^^TOgDn$)Ftq+dHT?|`uHb`HfN)I)5KJc1 aHT?h_Cm3ylTUh@90000sF5HLs(C}3cS;4rB0U{J7V zV3?qASRlZ#7)VG+`1ttv;7G{8z>qK~_*h7_NalzD000SaNLh0L01m_e01m_fl`9S# z0006_NklljA6vywFm?A&7YGSZb#j-5OfD|1{K!0KZE*_Zcg{_z9MkLfv z(5;rTL|w3yg_bV>BNao`fmq7Y6^X$WbMg&bo@157XUB|4)c^6`|K7Xz?kxWZsZ{BI z7X>JdgJrQY2iV?$VA}TltnYaPr?b^ybv@5xPhS_O0Jt~geeYl}bPEk|}gav z0%=@!bd2*?00K^NOf<-LVa~Lq0?ugfknFJM8p*yaid{EJAa^m%MVz*lphj2DC36}9+dHe5wH(yekiJt;fDgipc#HB0t|&8PLy%cIm_~c zsr=Sx$P|7sv%gMcoHakdiXXB+KG@`k$ryYUFz}k!{1En_F<1MnZ}0=+fl3DnVEo|+ zEy064U~KS1f(KMNf;rpZhXOpnm0Ijzbm1iYkVMA=1dL^@OKB~mRpvY%09i&j47iEX x4Fz~WlMs!g+YNaoYt3l;i%v~{iC4Pw`VGg%&$VZ&?2!Nf002ovPDHLkV1nQ*NG1RP diff --git a/graphics/pokemon/spinarak/front.png b/graphics/pokemon/spinarak/front.png index 36c6e8f60d4b4a33635a1a1b1ef8f90ccdb5654b..7af7440985f29889d6015110b5256cb7cada0c6f 100644 GIT binary patch delta 494 zcmVc0004VQb$4nuFf3k0000mP)t-s0I=u~5D+j( z5D*X$h~O}&@L*7|XkeJ2gK80k?bNKl9|K>`)#l?FuLGD^wZ3C$D0004cNklXL7=-&KJKw94+*x1;wkh2Pc$Nn~eXp<08A4c(pQF*>e zpcq9W07;rE!y`htu~GQ7LEyBr`5M7{&jILdM1XnQuy+9V)WTN)TQ&)!5R^BOY=A@0 z=z<^s;1Y6(>DK zlyVl^y)XKkuNS1j3E6Y1|14y?2kAL44K{E|ZMEuYk6s&&Ma@QM`30~$y#uICbe6C4 ke(&S`n=h29si}XdAGb^lLxd8GQ2+n{07*qoM6N<$g3P+(EdT%j delta 523 zcmV+m0`&d-1DFJm7=Hu<00013M{Ml?001yhOjJbxu;>sF5HLs(C}3cS;4rB0U{J7V zV3?qASRlZ#7)VG+`1ttv;7G{8z>qK~_*h7_NalzD000SaNLh0L01m_e01m_fl`9S# z0004wNkl|N?c?6G^|in*K!x8~Ovt?0zoG3B_=8|DcH*2f z8xlf56Izp|He?c><7!8zyHf$Z4o>w3S_oQvw0?nG0e|B%!P*EYH7rI|ot*&)=&Chg z*PkLiB1;FgqeKnG=rKY5mxWd8%%`d=<dEq2mO{h@l2eh4L%6-lkrvLx| N07*qoLmvXF diff --git a/graphics/pokemon/spinarak/normal.pal b/graphics/pokemon/spinarak/normal.pal index 22db1c2ce..ccdc73a40 100644 --- a/graphics/pokemon/spinarak/normal.pal +++ b/graphics/pokemon/spinarak/normal.pal @@ -4,16 +4,16 @@ JASC-PAL 0 176 232 16 16 16 48 72 16 -40 96 96 +16 16 16 136 224 48 168 240 96 80 176 104 96 152 160 -112 88 32 -192 176 24 -72 72 72 +131 106 41 +197 180 24 +106 106 115 248 248 248 -248 224 72 -200 192 192 -144 48 40 -248 88 72 +255 230 74 +189 197 197 +123 49 65 +238 90 90 diff --git a/graphics/pokemon/spinarak/shiny.pal b/graphics/pokemon/spinarak/shiny.pal index 970ece98d..9c966c9e6 100644 --- a/graphics/pokemon/spinarak/shiny.pal +++ b/graphics/pokemon/spinarak/shiny.pal @@ -4,7 +4,7 @@ JASC-PAL 168 224 24 16 16 16 40 56 104 -32 56 96 +16 16 16 136 176 232 176 216 248 104 128 184 diff --git a/graphics/pokemon/togepi/anim_front.png b/graphics/pokemon/togepi/anim_front.png index 07d7f05b89cf35d9cf06b55e00767d79941f5244..9fc22b9f843f554675efb964b4e4e90c6393301b 100644 GIT binary patch delta 671 zcmV;Q0$}~11*-*+7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!h%#W7;6C}2`0Fb?~jT9Z>T@?N) z%7%eIa**ETOMm1K4b8ySt*zPfysoR-NsItsaexu7QtG85kzM5Ogi+c6-~^!KGX1-M z5)AMm0ML6F(CesejN0+{83jy2AEWhK!MlWQydH0BaR3O9f3y+z+l74meJuD76?O*v zp;P?$@i`>MfJEbd+(*s!#&(8fjqsV9IqT|I%O9w%t$(ept*x!Ct^XqaVTFL;t5zZK z($731>mD*8_J?!xL5#dF?9p8)9=tvJtKQ|o8o=6v>G$}*)?SDQe~Dk)vA-aF-|phyjB20HK5Q zt`DKKQ7!yN`-6H~hfzkyn|D@7t0UE8yiItPb!sQ8_tdI!J* z@H(`N1mG;3PJdVm4bR}3ylNxKD1{)?J+6{EhKM`N68nh#PxwB1a2ep$1NJ}TB@SID z-J%*@5Bg7+_rtF(W*5up0LM5R#tROZ-`%c1E@vD-9`Sk3pUw}23?tj5m^$<{Y~|47R68y3(SU2~)9H-A__B!5u`SvThol`B`ST>qw| z&;|dH(o1O{JKGu0puS^!tqKclx1C)Z4%yL8;h?Q-;Ag)msv4ySiU%eGQ2wZSK=DB5 zfV#4}XFVs=qj}Z?FW^q1ND;^HL5T}FWI;{p9yU2ZDIIjw(PaXLJh3P}AVweFrmmnt zP)gFnc0004VQb$4nuFf3k0000mP)t-sn9!h%#W7;6C{0hk)&kgO;!X#Di9=AH4AUW1u}VbFip{&fLEbgpuWTeit-pEc)IX~0s_f- zCWgXGgajDB%o#wCG`;}_W!VkqRewQ{G{Zpj;iFr?7Y_mXgE3OH!Ydp2E0kOVK5~#= z`CDi%7V5xdqJOpe`fjZiKZy|mkSTCO%egdDjZBgIG>lva1aAmBF4O<{%ix0B0736z zK`*1!F-ph#J1V#geT>>a3Em})u{~_9aRCeuKkA6{ejy*ej|KiP<>>$)I>ir<-ywAe zq88_IA1(O@`x(|X!`+)X+3H`*57o}j&d%@o0*n|8_YiIOdRqVh002ovPDHLkV1f-9 Bw0i&m delta 407 zcmV;I0cifE1Em9y7=Hu<00013M{Ml?001yhOjJdf(4dfTSO5S3@aVwEuyAllNbu00 zs30Kt`1p8;kkHuJNPxiDaA?3lK(MgDFkq;1gAIoO00A&bL_t(YiS3gyOT$1IhA+YH zm1^i1j_M#-NUvnKNyJfWgsut6_X~v1**=J+Ykz_u(Nz%Q>VHotrRh*`lEzgiv|a|c ze3>2ctnb6U?{OSsH8uYjMOT`tUM2L7E^hrQLGT+hJZx47hGjy>8B#Th5CR}{ff8DM zLka;D<+TH+pn7T_u}v_haN>`~N?G*6>O z&hAj6wIkr=9e=YT#|ZJ5IN}U3e#M7u;S$360^>KFVB*^472WJ{8vjf_lFuP=i_LtB z@3>6zH6^TGp7zh1B_+s?e4pl$@(FTfR-|7kDX6PL*zTwX#<iBx&GH^(N6|cy{s-N>`)zlFD0(UrW(GV*n(QE(!002ovPDHLkV1iR{ BzuW)- diff --git a/graphics/pokemon/togepi/normal.pal b/graphics/pokemon/togepi/normal.pal index 0fb20049a..3d6967dca 100644 --- a/graphics/pokemon/togepi/normal.pal +++ b/graphics/pokemon/togepi/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -144 112 88 +148 115 90 0 0 0 -240 232 192 -200 176 112 -112 72 72 -240 208 160 -168 32 32 -248 248 248 -120 136 144 -208 216 216 -72 128 192 -216 112 104 -192 64 64 -176 176 192 -48 96 168 +246 238 197 +205 156 115 +115 74 74 +246 213 164 +172 32 32 +255 255 255 +123 139 148 +213 222 222 +74 131 197 +222 115 106 +197 65 65 +180 180 197 +49 98 172 diff --git a/graphics/pokemon/togetic/anim_front.png b/graphics/pokemon/togetic/anim_front.png index 1079c2b014888720125726ee8bd7fef75f37be3f..c88c0e4d61ee613687dee1eb16870f3c32ad1ff2 100644 GIT binary patch delta 708 zcmV;#0z3VK2G9kN7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!hedxQV~ z{{R30ti`?6?(W_}IlUMNDU{|AV!hr$IlUMN000000000000000W3d{Q0006`NklgaHuL_?XI+k8Ne|Fe}ARy*zsc!Ey^oyz+9-- z%JAToO%EHW*!5~-|MIDzDm4t6s`C?x(JhE8vXa}NVtSE9gOE*|^rIkJn?UKABUC>O z;SqLMbdok8Vroz3)+&$@P;yn{NSJT zf^F!=L!PVPPx|AGEe$wygL?Y-c>~RR7^p)`A$hFWgCkqQX^Uw3NpB-6d|mS~%5mfm zHr>nSU|%`p1P(@)w^pw=UH&1Efgfwvr9YYq?3&<5l79z$PYDZPCygK#^E{XHa;*nF z(jkZ+5qQ9k9=!9%;KA(uL3r>mfVKq9 zV?mHzt%)B8Qzgnfc+FI&4+B2r4LW@o@F5EiXwnCcDo(e)6aeKs#oz-54+ecO_<;2O zoj%kHh6hF;3_sxTfG2){yMG?=0PgLcJ^d0J%hR$t)?@*%|H?kQY;8rrOr9glM4D-&1EiT~3Z5~2sV1YPue%GRW{9HsW zK5HZMNTu?_Y2luzuB{d@Ju7?7cR%?}%qCfgoCm|Ue=xzzz##AUzKegS5W|ojZ@D-PCHuwEFSu6T;pqDwEtAhI~A}sz96S? zjq>Kk`s5;DpyZfRF1RLj+S5<8*4;pT`VB7ul4H#cj9bu?_}DnjJ|ZB$9R?@@m2$aA z{V;w$6n}H)c~9Jb-qPvZXS3Y@<;yKBx|GiJ((u0vkW!h=_R@an2~iIo_b%#(bekhP z$RtIiY=g0E+CHbkYkf2i{%u0?mXE zj$Wc(U|>VfzeF$4P#7_o=i3eW5lxLu-OG8{cW^)9SlPEpFP`v0@hjbpM+_w0pZz7lKqh?0**`UL@rmU4}m_z!00Wbd01KtCW7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-sn9!hedxQV~ z{{R30ti`?6?(W_}IlUMNDU{|AV!hr$IlUMN000000000000000W3d{Q00048NklPxlo!B9$n_hX?Vzo#t=J#NV77^>8tq(d z=xG4NsRw4f^-Ce@T7ZDMA4qv0CZK|4V2vecb|TB?&GCC`vL1vRr3K*}A=UO`6?89;h> ziRji-s)iMP^ndjQnEqM4W1&FH>Cr_V89U4f|FfY-@r)j*LFhaG(mOZMVVAtu!C(6Q zsF5ZJ6QD=>?*mZx0)S8?Nk3cAZ;ZU)8Ca`T_cObkO08jMDL>>ijW%Al@f?FdOmXUe@(DuL4mw)6xHs-&Us=TKMRqid; znr>^*0SJh7Vah@Tb_`4seh>B21#sSi6)=+asxQ+LrQ5QHprRtQ!nZHxe$B#)|T^#jq=`}fhK?) z+9R$nHHSuOk%5N*GT<4&%N9Y(jGthAz0~uQ_)^95M_%)A7E?F8;v+WacS$$yZT@Nx zBm*3}PkOn^xi)SfqA2S(A}S4dlh_aPW3lc}o4p1=dpopAn*ku&bW|Kd(|J??7o*X? s%D&4k3c$4m^$vXP>JH%K(EsWB1{oqdE)waMqyPW_07*qoM6N<$g2NoedjJ3c diff --git a/graphics/pokemon/togetic/normal.pal b/graphics/pokemon/togetic/normal.pal index 0b1731459..951bc0f04 100644 --- a/graphics/pokemon/togetic/normal.pal +++ b/graphics/pokemon/togetic/normal.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -112 120 128 -248 248 248 +115 123 131 +255 255 255 0 0 0 -168 192 184 -208 232 232 -216 64 56 -184 24 8 -40 144 224 -16 96 184 -192 48 32 -136 16 16 +172 197 189 +213 238 238 +222 65 57 +189 24 8 +41 148 230 +16 98 189 +222 65 57 +189 24 8 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/totodile/anim_front.png b/graphics/pokemon/totodile/anim_front.png index 49e4fee75ad7f0ce5fcc5477e38bd98c3ab94b51..25e0a234e6d0854573fa83f9cf7ecfcbed86101d 100644 GIT binary patch delta 784 zcmV+r1MmEn2Ac+u7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-s(3rR}gT*mg zgKD(ql-2(b5D@?W|1nyFw6wH)7yz_NQq4gi=6idrgDL;TQn+YnIVFyW0007+Nkl5dmM*FUx}Dc8NftS0}DS0Sl=fp*6VVf_|?2tgW^CO1!C60jj_6LRbMGVtD}3 z4PDP|KLj8yl=PB5)DYH{58lfFSQbCL0gxOJ797CPOYWKPd^Af37XW_tpG*_NkMt?9 zE0CiOk?mcNA%BTrQ>icP=J5!DbDh;h(-gq>ZQu8eM?!GHB~z28wKtLPP4w22_KWGF z26bRRj$^l+^hj&U1Jlb@z@}FZu%A$DY^^443fQ!#&eK~v?SK-v-H&542hIT~v^8kj z_pLQ|;ItTAzhy91e0Fq}0X0N654K0j4@4v{MK*o!T7Tg}*d956nbl$MLvDme1%RSf z2YM6|f+8fYq+SvU3h2?1L9j@Y04LBzfSrW>|IiOY(gD<@x#AZ0^!91py0r}1;Cb^o!>41va|D>1psk= zcIKh7XG?r~k)54=0YLOe7}VE^^<3Hv%II5Sbjp2Qa|Fz3m0a8r; zIsO*`(l{Uh>|^|wYQjno3b3hHWAI|u>ds%S0}#`{-tPM1^wrAb1RR8z!-bHH0UZ#8 z@rUzQtHj_F``8}@r_#^f)6v<(kISau&{U-0GLo%$Uq?IczBS2Ao$>jxM*n3%@h*=000SaNLh0L01m_e01m_fl`9S# z0007vNkl!U-;?b=Ea8R>R%Wq%65^!G<=C3ai{2`dE+ zN)es`QP2b_&|4x(OM(0ZAU6oPJWD(P_YBNlKsNI1wFq=$SKi;vH#f8Le4f|De;RzJ zwOe-%eGXCLKEKm{1ORazpdb?34YW1rd#B*m5E}L-XXnRPS1thb%jx9B{_GQZ3_if# z;AV0W&)(1#N`Ij*PKHjP{TRRkXXlz$=wJ)L9G#p39Fu^G1XQ75M7~9iO~~-P3$Q<< z2nIUwy2co6_UxnF1n!za;vK!azC^%uI-Bie9!tF8^)!zFKbq|K4tq8KlIugP_J9Jm z9tJn_X|9*TG4ri{{CxgF=@N(jgaW+w;PvNc@W2A}$bW?yzI}?ocdM|y$@mb*M(Jf) z$~5ub6G@~}0OPVOfCt+%QiT~)*z<^wXuuyYmOrpjnsbwpWu}YeH=HMgoO3FLi0_Y~ z2Eg~=9Pc(*jesg4;`pcqV&0+@e0(nCft`h+dnqjuZ~;_)j5L)zU?!#C03#QbGz(jX z2AHZ!V}C*jM+$cPd#+T?-w1|p91=}5(ZpYhf5{(^%iCM?2Q;wq2lRGd^9M9=u<{4A z!n!}WBzE^7{(#!u>;51ncQ^Wj9J(f}a!|V){Xq`DMW}f&7XLbq0O;La*$vk0gkol zi*8(4d*A|C6vRDi545B;Sj2g@KmnEK=lW%YgG1`UmSS%#6}dXgk6R z;)cApd5~8A!E$t!2{ZULHc9R7#yq5hS!Kc`wE%|0!ZgvuPn#putVM$&YybcN07*qo JLc0004VQb$4nuFf3k0000mP)t-s(3rR}gT*mg zgKD(ql-2(b5D@?W|1nyFw6wH)7yz_NQq4gi=6idrgDL;TQn+YnIVFyW0004)Nklsx90aQ*2yg;z0_-I0`_n%O!2qaDbH_J8f#HQ3ck|B8U0`0AM*KlAtUqUE?!XXi z^RQC<0FX`2tXOm4N`AG_N5iBG`dWL;{<au&{U-0GLo%$Uq?IczBS2Ao$>jxM*n3%@h*=000SaNLh0L01m_e01m_fl`9S# z0004^Nkler5uJ~um`R@78{ZEMF{OgZOmdZ=h>S#y=QE`2? zu?ZlY251Dz6ay6lvv7c74`opA9-r;q-4y{a7rpN3O8U%};R5yMpnD#s*ZhROGUxlP zLZGq*Gmza?%*!fH&JQ+S} zlhM+*Il!qjuU?L@ngjgGm2KS~67ZQj%ug~d!q93n%6~FHj+_UkiLW)#$+8bfZ$4#R zgtZ@eJ&=pItiw~gGx<3 diff --git a/graphics/pokemon/totodile/normal.pal b/graphics/pokemon/totodile/normal.pal index bf7ef18af..ce70fb252 100644 --- a/graphics/pokemon/totodile/normal.pal +++ b/graphics/pokemon/totodile/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 208 152 184 -32 136 184 -40 88 128 -80 192 216 -152 224 248 +49 131 197 +49 90 131 +106 180 230 +148 213 255 16 16 16 -248 248 248 -64 64 72 -176 176 176 -120 24 0 -152 80 88 -200 64 32 -232 120 120 -144 128 32 -248 224 136 +255 255 255 +49 90 131 +180 180 180 +123 24 0 +180 74 82 +205 65 32 +230 123 123 +172 131 41 +255 197 82 184 104 104 diff --git a/graphics/pokemon/totodile/shiny.pal b/graphics/pokemon/totodile/shiny.pal index 6c3f51204..3bc0bc64c 100644 --- a/graphics/pokemon/totodile/shiny.pal +++ b/graphics/pokemon/totodile/shiny.pal @@ -8,7 +8,7 @@ JASC-PAL 168 248 216 16 16 16 248 248 248 -56 56 56 +24 104 72 176 176 176 24 72 128 136 64 64 diff --git a/graphics/pokemon/typhlosion/anim_front.png b/graphics/pokemon/typhlosion/anim_front.png index a4f46ae24aad76de64828e89b401310bdc5d6cc0..bc4b7c45cccb7b1e341e1e6429808cb640a11c3f 100644 GIT binary patch delta 1358 zcmV-U1+n^o3)Kpc7=H)@0001tU!Pb20004VQb$4nuFf3k0000mP)t-sn9!i!0094D z0RP?q|C|6pT9gPNT0w)Pq>D=b?v!d$DG(44|NsBh#d81v03bnXTV6U&000EjNkl{I|9|@c_avaH8EdwBlY6|NF~aAg4S#d{fw}!i)teq;jD4qH zOoPF{m*tf{0n)6-tnc+CFqQx;pVylVuo$&nO_VQ&#}t6)vZ(xVIx@cxFVYoHlmy*-?-qv*>{ zl2b_bz1z*{{f%JyApnZ;D`I?zJ2@5IS^vVdb^CvYm7EdWs;E&P5{Tj5EbElkCb zqQ@}EN+HZ!Ktu@b!SLDw2hv93tA(jFlHPX!M!bmuu4f|=Uc})19pGQYaMN~#2@6kv z=zk6%7;w`B0pNWm4D=xB3nAzpL_kdgB4ma;C4WG%5Q3HmC4#vibU;a@Owa(QPy1O- zLLtx*-@lYZ_zgESxFn9FJsHmON~yak6mj}Ur09EcB!v1ZM7{jqOaP6brw0juAG_(p{c!^P?#?}$D&Th& z_kX9h3u4*+vSrXt$x^k@8v^X77MisUF^q|4PTH)`s;LG50qkNMKvqpQ5Gd>fuq$7) zW05eZ+Ij#M+k8pqaxuBkYQ`(T5&&mkmlVbeIqO#}vPc}8Ah}wZl4k=9px((^tDQmF z)c{z?zZycr7&=IRGMKUE>Tx23q&w2@jDMNg1Wl=WEWKV8-}^WFaV$q8*UPqt{>?^+ zj-lkxJ@#)B;%?%Ka8Byq)c#Aq3wj2A2*v&lBjO?|{;?#J`!}hLq^=-@LH{Q0MUenr z>E9q>9lcGU_HTfPUi&Nkn|wcs3<>ejzhOpyVFeJoCy)J`har8>w&(uMJfZe)XnzDr zEfe+_A$`>`hHDq6ACF&k?%y0C7=z;QaL;V+dCwN8e?#{sB+wKW0tCL7Y8K)k3&1yz zZZX^m>1wOxkpTy8gxCXW0kvEVp0<@naQSNIo(UeWM|uqTa&;?u^W7HCL9vs^)k3K_ zC-rv=FAMj}N)`(*E{E<)aBnLAYk%*cuEcBxZoLEl$^un9Qt3b4!?_?G_pzL-d{n$Y*{vSga80dm{v@iqkFH%7D z`$f&|gI!DkxL!@ogDcdZ1ds@U`!DCU^2e9C>d}H+ncn&a>Bn5|`qDno4o7CVspHSv z?!hm}ovdi#afXH=0%G4lKDpcW!PC(C20cRD1zO)AKc%z}27QA<_}}e=KmF8s1H`>C QbpQYW07*qoM6N<$f~Tv9c>n+a delta 1401 zcmV-<1%~?73V;ic7=Hu<0000^sfSHnukCs~c1%5d-+$$9 zne!Wj)ctO^dw>3Ok*`rI0w+iH4&=LM2ge9(5^B3rk&}Z?_x!Zm^?f8-lu|igKRfB3 zcMc#A1eS1=Ro2ga|JSnfJ;3{%-`>6#%#m zGEw(g|EGHnFaWYm5Q+LBR%dw$SRw3!E1uN`B%)ac^r?&CNN2gx?~gyu`Y{53@Vu+6 zBD%F`5RWHFP<&nf7%)D6Sd!*~Hvs|9e^m3tN~YG$B$KgkfA1e@MAW?L<-pax?N2oT z^1X{}v42B<|G5SaAi_i0k8-I z(5MP{m#w||P0e*&C-W}`e_(HJIUK-u4YxH|4*=Y@LmeF5jxNP^JeVUb z2R({w$P?T3?DlpGnwax7ciY=;fk(l4V}Dv|4a~=OYY$9{>uOUi1NOYVUC-OiMwY$| z4se6ghGw3lEwhIH=LP&=ywtY|M>1x=8ca}WfllvU@O(>ASXv6c8;?83PeGk;Aw8V^PT39x#XRRTp_|dmrH>6Fax>D z5Zr@daFfzK@O79Zj0^XG!{$iOHv`ce7)?+KgeDQvRO}l>1acll{AO5UMXbr6>!%7Z zKDpyGj-M*PvdJy#P$xS#F=7j?0(S>Oi;)Vb?m!3L$t`jq>=moIUpz{Cb#lX>E_%Ij zfrgJ#1?zWi9>6+V^W+{YByUBHm3M%cCkfipm3$g={(2TMw-2koBmlfa^#-(okO1%w z(jNj6OX2^rcgP75P`m>M=(rXZ5o;e%^I^GEpUDwNS%v=q3k?MsD);c000000NkvXX Hu0mjfo?VG_ diff --git a/graphics/pokemon/typhlosion/back.png b/graphics/pokemon/typhlosion/back.png index 3252c26e906c07fc71b9d726ec69b149ed3b09b9..81bcbd42b6d14f5aaf013c92cc2613fba8c4ae0e 100644 GIT binary patch delta 746 zcmVc0004VQb$4nuFf3kks&{SuSrBfR9J=G*4wtD zAPffJ1_H8-EZ+ZZCkbbz>Y857VOEFcgrX)00Z7}q8XG0mzDqyKo(@2J_)g9f&qQC ztpses0GPZ8Ns*L)Ea#2BdyFfO71r~^>|@>!LrJkLnnsT^Ge z(_1K$)PdjtK+s3v(@3-j?EuQwlQ(Ry4yaffD1QUx+I0yk=MRiPX&&{T?XsNmbmS2X z?{xr8j#@l_pIPmn?@sioKof9m0ZkvOttUkDLGqt$d`1B$VSZui1uF9=(~_egdHmKv zU4@>%8Gu~cOnzJcHvp#!7f0ynGd;4Cr#o_f^>ibR7FC&ZS3xPrlv&z0K=j8d_Yo0A150J075A zi=gYkng@-?7-(^Dl8>MAxon>va9(!evVU5IwP32#@+(2#^A}?ABkJbx<#rBF#&Y$w zTnLZEZ43Dpc(;W6yqkbU`dtIPg;oA`1ZQ9&yjcP7f$s}=ZeS1LvIAc>P*$+t0QU{l z5zq}uaGP&4jC9^cFM&El*~oEaJgi`7A+C*w28LfoF*f7xfR0QfeF9uqRwtf-bw1o) cS^rY~0a;y2C;7b&_y7O^07*qoM6N<$f<0kRJOBUy delta 787 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 diff --git a/graphics/pokemon/xatu/front.png b/graphics/pokemon/xatu/front.png index 93c7947632917c03109708c89b8efe36b6a13592..e90c44fadf83ad6e80182169700b909ca0bab413 100644 GIT binary patch delta 576 zcmV-G0>Ay@1kD7H7=H)@0001;w}I>c0004VQb$4nuFf3k0000mP)t-s0I=vvltGl$ zK`Ck}w2L5fy+QxIF^gIN5D*am|NoSflu}YsgDC*CF#yfY&F(n>0ir$x0005YNkl6YOcXzLcVmAb{OqMxV1D z5WM#h+sT;dORj{p@BIV;pa~8aIWIYL1TBCGyaKQsfNp~LL6Eha1Vs%8pe{uSx(E*d z6I6i1Ujan`TtYwL82|(_nh4<$fFH#Z&_#F&u!E z|8V*X@!y4`3H0|F6MdB1hf*+jGC*ob9d^D=!andN79KoFcf0|BO3MRKo1g%kgQxUB z0f-cT0yHH6a1B|w1Bw$~4wD;zH1?BmJK9E+ay8P>(Vn0zx26F=Oz3>B#{u!{2sDiy z4JZ1mXmc7=Hu<00013M{Ml?001yhOjJbxu;@sTK#hp0P*6~SC;+f90LaM5=r{mYM@p#x00HeuL_t(YiQUt&OT$1E2JjOL z2HU~23K?9Cbhn7mRXNn9gOx7M5*?*~!D$CiYU_M0b~Xq_2Y;cpqK*#ME)E?`T?5hs zaS@EfOIqpBdvz5bA1Y zKq+l;n@HfPZj5uzuQ=~KC20f%7U#kyRP$6fen9650Do2h%A#XabqNWITmsS3hXEmk z;{(NwK8PY^i9W#UmI06z#GVfZOZZ<|>@Fb6&j`!?MSp=q$UHj!paY=9t)i%iibIxk zbU%UMaU*UV;OEm^@39A_)&S6ykJtPlL=CF9KVV6HqFT?%N4~H=*w7!A>j9?D zdw(VaV@`h>GR)tBapa-FkOqV6=9k^31^f9yo!85r*J70AU%a|14|DDW{WRurmC*Y2 jS)qIm7VY6*z+anhmK7jnEFVYx00000NkvXXu0mjfxeW=o diff --git a/graphics/pokemon/xatu/normal.pal b/graphics/pokemon/xatu/normal.pal index eb20bf6ae..05aeca9fc 100644 --- a/graphics/pokemon/xatu/normal.pal +++ b/graphics/pokemon/xatu/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 0 176 232 -72 144 64 -144 208 64 -40 104 40 -176 136 32 -112 184 64 -248 184 48 -136 88 0 +74 148 65 +148 213 65 +41 106 41 +180 139 32 +115 189 65 +255 189 49 +139 90 0 16 16 16 -248 248 248 -144 144 144 -80 80 80 -128 40 0 -176 48 0 -200 200 200 -232 56 0 +255 255 255 +148 148 148 +82 82 82 +131 41 0 +180 49 0 +205 205 205 +238 57 0 From 8ccffa617aa0b335aca2a18225fa95bd5243033e Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 26 Feb 2023 19:47:44 +0100 Subject: [PATCH 119/125] fix createspriteontargets on electricy anim --- data/battle_anim_scripts.s | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 75a831a33..46c7d3fbc 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -24206,21 +24206,21 @@ WaterBubblesEffectLong: ElectricityEffect: playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET ElectricityEffectNoSound: - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 15, 20, 5, 2, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 15, 20, 5, 2, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -15, -10, 5, 0, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -15, -10, 5, 0, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 25, 0, 5, 1, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 25, 0, 5, 1, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -8, 8, 5, 2, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -8, 8, 5, 2, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, 2, -8, 5, 0, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 2, -8, 5, 0, ANIM_TARGET delay 2 - createspriteontargets gElectricitySpriteTemplate, ANIM_TARGET, 2, -20, 15, 5, 1, ANIM_TARGET + createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -20, 15, 5, 1, ANIM_TARGET return ElectricityEffect_OnTargets: From 41bf9ea63ce4ea5b348ab573fefbcd24d38517e2 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 26 Feb 2023 18:43:15 -0300 Subject: [PATCH 120/125] Removed trailing whitespaces --- asm/macros/battle_anim_script.inc | 6 +- asm/macros/battle_script.inc | 8 +- data/battle_anim_scripts.s | 152 +++++++++--------- data/battle_scripts_1.s | 18 +-- src/battle_anim.c | 42 ++--- src/battle_anim_ice.c | 2 +- .../pokemon_graphics/back_pic_coordinates.h | 2 +- .../pokemon_graphics/front_pic_coordinates.h | 132 +++++++-------- .../pokemon_graphics/shiny_palette_table.h | 2 +- src/debug.c | 2 +- src/easy_chat.c | 4 +- src/event_object_movement.c | 2 +- src/expansion_intro.c | 4 +- src/field_specials.c | 4 +- src/frontier_util.c | 2 +- src/mini_printf.c | 16 +- src/rom_header_gf.c | 4 +- src/trade.c | 4 +- test/ability_insomnia.c | 6 +- test/ability_water_absorb.c | 4 +- 20 files changed, 208 insertions(+), 208 deletions(-) diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index 6ff387690..85320bd3b 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -270,7 +270,7 @@ .macro stopsound .byte 0x2f .endm - + @ same as createvisualtask except takes in battlerargindex, which is the battle anim arg index of the battler to loop through .macro createvisualtaskontargets addr:req, priority:req, battlerargindex:req, argv:vararg .byte 0x30 @@ -282,7 +282,7 @@ .2byte \argv .Lcreatetask_\@_2: .endm - + @ same as createsprite except takes in battlerargindex, which is the battle anim arg index of the battler to loop through .macro createspriteontargets template:req, anim_battler:req, subpriority_offset:req, battlerargindex:req, argv:vararg .byte 0x31 @@ -298,7 +298,7 @@ .2byte \argv .Lsprite_\@_2: .endm - + @ does not overwrite gBattleAnimArgs[battlerargindex], some sprite templates are too dependent on the value (e.g. heal block) .macro createspriteontargets_onpos template:req, anim_battler:req, subpriority_offset:req, battlerargindex:req, argv:vararg .byte 0x32 diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index 66c60a7cf..c96b5fdd2 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1299,7 +1299,7 @@ .byte 0xfe .4byte \failInstr .endm - + .macro callnative func:req .byte 0xff .4byte \func @@ -1317,7 +1317,7 @@ .2byte \holdEffect .4byte \jumpInstr .endm - + .macro jumpifmorethanhalfHP battler:req, jumpInstr:req callnative BS_JumpIfMoreThanHalfHP .byte \battler @@ -1328,7 +1328,7 @@ .macro cancelmultiturnmoves battler:req various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES .endm - + @ Stores Healing Wish effect. .macro storehealingwish battler:req various \battler, VARIOUS_STORE_HEALING_WISH @@ -1954,7 +1954,7 @@ .macro shellsidearmcheck various BS_ATTACKER, VARIOUS_SHELL_SIDE_ARM_CHECK .endm - + .macro jumpifrodaffected battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_ROD .4byte \jumpInstr diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 46c7d3fbc..cd011c0f4 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -12036,168 +12036,168 @@ ShellTrapUnleash: monbg ANIM_TARGET waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 delay 0x6 - createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapYellowImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x0 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x0 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x4 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x4 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x8 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x8 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0xc - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0xc + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x10 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x10 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x14 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x14 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x2 - createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x18 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x38, 0x18 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 - createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 + createsprite gShellTrapRedImpactTemplate, ANIM_ATTACKER, 2, 0x0, 0x0, 0x0, 0x2 delay 0x5 waitforvisualfinish call ShellTrapFireLaunch1 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 delay 0x3 call ShellTrapFireLaunch2 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 delay 0x3 waitforvisualfinish clearmonbg ANIM_TARGET end ShellTrapFireLaunch1: - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xf, 0x0, 0xf, 0x38, 0x4, 0x4, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xf, 0x0, 0xf, 0x38, 0x4, 0x4, 0x1 delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0x4, 0x4, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0x4, 0x4, 0x1 delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x14, 0x0, 0x14, 0x38, 0x4, 0x4, 0x1 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x14, 0x0, 0x14, 0x38, 0x4, 0x4, 0x1 delay 0x3 return ShellTrapFireLaunch2: - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x0, 0x0, 0x0, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xfff6, 0x0, 0xfff6, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xa, 0x0, 0xa, 0x38, 0xfffc, 0x3, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0xfffc, 0x5, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xf, 0x0, 0xf, 0x38, 0x4, 0x4, 0x1 - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xf, 0x0, 0xf, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0x4, 0x4, 0x1 - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0xffec, 0x0, 0xffec, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 - createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x14, 0x0, 0x14, 0x38, 0x4, 0x4, 0x1 - createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 + createsprite gShellTrapFireHitsTemplate, ANIM_ATTACKER, 40, 0x0, 0x14, 0x0, 0x14, 0x38, 0x4, 0x4, 0x1 + createvisualtaskontargets AnimTask_ShakeMon, 0x2, 0, ANIM_TARGET, 0x0003, 0x0000, 0x0006, 0x0001 playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 0x3 return @@ -14367,7 +14367,7 @@ Move_SCORCHING_SANDS:: Move_JUNGLE_HEALING:: goto Move_AROMATHERAPY - + Move_SILK_TRAP:: loadspritegfx ANIM_TAG_PROTECT loadspritegfx ANIM_TAG_SPIDER_WEB @@ -14376,11 +14376,11 @@ Move_SILK_TRAP:: createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, FALSE waitforvisualfinish createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_PROTECT, 0, 10, 10, RGB_LIME_GREEN - monbg ANIM_ATK_PARTNER - waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 + monbg ANIM_ATK_PARTNER + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 0x10 createsprite gProtectSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 waitforvisualfinish - clearmonbg ANIM_ATK_PARTNER + clearmonbg ANIM_ATK_PARTNER end Move_WICKED_BLOW:: diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 0d8f80f77..35d8db8dd 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -418,7 +418,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectTeatime @ EFFECT_TEATIME .4byte BattleScript_EffectAttackUpUserAlly @ EFFECT_ATTACK_UP_USER_ALLY .4byte BattleScript_EffectShellTrap @ EFFECT_SHELL_TRAP - + BattleScript_EffectAttackUpUserAlly: jumpifnoally BS_ATTACKER, BattleScript_EffectAttackUp attackcanceler @@ -461,7 +461,7 @@ BattleScript_EffectTeatime:: attackstring ppreduce jumpifteanoberry BattleScript_ButItFailed -@ at least one battler is affected +@ at least one battler is affected attackanimation waitanimation BattleScript_TeatimeLoop: @@ -561,7 +561,7 @@ BattleScript_AffectionBasedStatusHeal_Continue: BattleScript_ShellTrapSetUp:: printstring STRINGID_EMPTYSTRING3 waitmessage 0x1 - playanimation BS_ATTACKER, B_ANIM_SHELL_TRAP_SETUP, NULL + playanimation BS_ATTACKER, B_ANIM_SHELL_TRAP_SETUP, NULL printstring STRINGID_PREPARESHELLTRAP waitmessage B_WAIT_TIME_LONG end2 @@ -1428,7 +1428,7 @@ BattleScript_DoubleShockRemoveType:: printstring STRINGID_ATTACKERLOSTELECTRICTYPE waitmessage B_WAIT_TIME_LONG return - + BattleScript_EffectPurify: attackcanceler attackstring @@ -3342,7 +3342,7 @@ BattleScript_AbilityProtectsDoesntAffect: call BattleScript_AbilityProtectsDoesntAffectRet orhalfword gMoveResultFlags, MOVE_RESULT_FAILED goto BattleScript_MoveEnd - + BattleScript_InsomniaProtects: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp @@ -3435,7 +3435,7 @@ BattleScript_EffectFreezeHit:: BattleScript_EffectParalyzeHit:: setmoveeffect MOVE_EFFECT_PARALYSIS goto BattleScript_EffectHit - + BattleScript_EffectExplosion_AnimDmgRet: jumpifbyte CMP_NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_ExplosionAnimRet call BattleScript_PreserveMissedBitDoMoveAnim @@ -4255,7 +4255,7 @@ BattleScript_BattleScript_EffectParalyzeNoTypeCalc: resultmessage waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd - + BattleScript_VoltAbsorbHeal: copybyte gBattlerAbility, gBattlerTarget tryhealquarterhealth BS_TARGET BattleScript_MonMadeMoveUseless @ Check if max hp @@ -7727,7 +7727,7 @@ BattleScript_GrudgeTakesPp:: printstring STRINGID_PKMNLOSTPPGRUDGE waitmessage B_WAIT_TIME_LONG return - + BattleScript_MagicCoatBounce:: attackstring ppreduce @@ -8009,7 +8009,7 @@ BattleScript_AftermathDmg:: waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER return - + BattleScript_DampPreventsAftermath:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp diff --git a/src/battle_anim.c b/src/battle_anim.c index a7faec1fd..724587588 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -447,14 +447,14 @@ static u8 GetBattleAnimMoveTargets(u8 battlerArgIndex, u8 *targets) case MOVE_TARGET_FOES_AND_ALLY: targets[0] = gBattleAnimArgs[battlerArgIndex]; numTargets = 1; - + if (IsBattlerAlive(targets[0] ^ BIT_FLANK)) { targets[1] = targets[0] ^ BIT_FLANK; numTargets++; } - + if (IsBattlerAlive(gBattleAnimAttacker ^ BIT_FLANK)) { - targets[2] = gBattleAnimAttacker ^ BIT_FLANK; + targets[2] = gBattleAnimAttacker ^ BIT_FLANK; numTargets++; } break; @@ -463,14 +463,14 @@ static u8 GetBattleAnimMoveTargets(u8 battlerArgIndex, u8 *targets) numTargets = 1; break; } - + return numTargets; } static s16 GetSubpriorityForMoveAnim(u8 argVar) { s16 subpriority; - + if (argVar & ANIMSPRITE_IS_TARGET) { argVar ^= ANIMSPRITE_IS_TARGET; @@ -493,7 +493,7 @@ static s16 GetSubpriorityForMoveAnim(u8 argVar) if (subpriority < 3) subpriority = 3; - + return subpriority; } @@ -519,7 +519,7 @@ static void Cmd_createsprite(void) gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); sBattleAnimScriptPtr += 2; } - + subpriority = GetSubpriorityForMoveAnim(argVar); CreateSpriteAndAnimate( @@ -536,22 +536,22 @@ static void CreateSpriteOnTargets(const struct SpriteTemplate *template, u8 argV u8 targets[MAX_BATTLERS_COUNT]; int ntargets; s16 subpriority; - + for (i = 0; i < argsCount; i++) { gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); sBattleAnimScriptPtr += 2; } - + subpriority = GetSubpriorityForMoveAnim(argVar); - + ntargets = GetBattleAnimMoveTargets(battlerArgIndex, targets); - + for (i = 0; i < ntargets; i++) { - + if (overwriteAnimTgt) gBattleAnimArgs[battlerArgIndex] = targets[i]; - + CreateSpriteAndAnimate( template, GetBattlerSpriteCoord(targets[i], BATTLER_COORD_X_2), @@ -575,13 +575,13 @@ static void Cmd_createspriteontargets_onpos(void) argVar = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + battlerArgIndex = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; argsCount = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + CreateSpriteOnTargets(template, argVar, battlerArgIndex, argsCount, FALSE); } @@ -599,13 +599,13 @@ static void Cmd_createspriteontargets(void) argVar = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + battlerArgIndex = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; argsCount = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + CreateSpriteOnTargets(template, argVar, battlerArgIndex, argsCount, TRUE); } @@ -656,21 +656,21 @@ static void Cmd_createvisualtaskontargets(void) taskPriority = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + battlerArgIndex = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; numArgs = sBattleAnimScriptPtr[0]; sBattleAnimScriptPtr++; - + // copy task arguments for (i = 0; i < numArgs; i++) { gBattleAnimArgs[i] = T1_READ_16(sBattleAnimScriptPtr); sBattleAnimScriptPtr += 2; } - + numArgs = GetBattleAnimMoveTargets(battlerArgIndex, targets); - + for (i = 0; i < numArgs; i++) { gBattleAnimArgs[battlerArgIndex] = targets[i]; diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index 44c1a4f22..e6a5607b5 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -1289,7 +1289,7 @@ static void InitPoisonGasCloudAnim(struct Sprite *sprite) sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - + #if B_UPDATED_MOVE_DATA >= GEN_5 { s16 x, y; diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h index 8dbc2d2a9..5593e10a7 100644 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ b/src/data/pokemon_graphics/back_pic_coordinates.h @@ -518,7 +518,7 @@ const struct MonCoords gMonBackPicCoords[] = [SPECIES_DARKRAI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SHAYMIN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, [SPECIES_ARCEUS] = ARCEUS_BACK_PIC_COORDS, -#endif +#endif #if P_GEN_5_POKEMON == TRUE [SPECIES_VICTINI] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 7 }, [SPECIES_SNIVY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index a484b8596..ca880e7ef 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -920,7 +920,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_OVERQWIL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ENAMORUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif - // Megas + // Megas [SPECIES_VENUSAUR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, [SPECIES_CHARIZARD_MEGA_X] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_CHARIZARD_MEGA_Y] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -974,11 +974,11 @@ const struct MonCoords gMonFrontPicCoords[] = #if P_GEN_6_POKEMON == TRUE [SPECIES_DIANCIE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif - // Special Mega + Primals + // Special Mega + Primals [SPECIES_RAYQUAZA_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_KYOGRE_PRIMAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_GROUDON_PRIMAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Alolan Forms + // Alolan Forms [SPECIES_RATTATA_ALOLAN] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, [SPECIES_RATICATE_ALOLAN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, [SPECIES_RAICHU_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -997,7 +997,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_MUK_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, [SPECIES_EXEGGUTOR_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_MAROWAK_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Galarian Forms + // Galarian Forms [SPECIES_MEOWTH_GALARIAN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PONYTA_GALARIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, [SPECIES_RAPIDASH_GALARIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -1042,15 +1042,15 @@ const struct MonCoords gMonFrontPicCoords[] = #if P_GEN_7_POKEMON == TRUE [SPECIES_DECIDUEYE_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif - // Misc Forms - // Cosplay Pikachu + // Misc Forms + // Cosplay Pikachu [SPECIES_PIKACHU_COSPLAY] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_ROCK_STAR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_BELLE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_POP_STAR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_PH_D] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_LIBRE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - // Cap Pikachu + // Cap Pikachu [SPECIES_PIKACHU_ORIGINAL_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_HOENN_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_SINNOH_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, @@ -1059,9 +1059,9 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_PIKACHU_ALOLA_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_PARTNER_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, [SPECIES_PIKACHU_WORLD_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - // Pichu + // Pichu [SPECIES_PICHU_SPIKY_EARED] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - // Unown + // Unown [SPECIES_UNOWN_B] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 16 }, [SPECIES_UNOWN_C] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 16 }, [SPECIES_UNOWN_D] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 16 }, @@ -1089,40 +1089,40 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_UNOWN_Z] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 16 }, [SPECIES_UNOWN_EMARK] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 15 }, [SPECIES_UNOWN_QMARK] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 13 }, - // Castform + // Castform [SPECIES_CASTFORM_SUNNY] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, [SPECIES_CASTFORM_RAINY] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, [SPECIES_CASTFORM_SNOWY] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 8 }, - // Deoxys + // Deoxys [SPECIES_DEOXYS_ATTACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_DEOXYS_DEFENSE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, [SPECIES_DEOXYS_SPEED] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, #if P_GEN_4_POKEMON == TRUE - // Burmy + // Burmy [SPECIES_BURMY_SANDY_CLOAK] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 12 }, [SPECIES_BURMY_TRASH_CLOAK] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 8 }, - // Wormadam + // Wormadam [SPECIES_WORMADAM_SANDY_CLOAK] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 10 }, [SPECIES_WORMADAM_TRASH_CLOAK] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 10 }, - // Cherrim + // Cherrim [SPECIES_CHERRIM_SUNSHINE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - // Shellos + // Shellos [SPECIES_SHELLOS_EAST_SEA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - // Gastrodon + // Gastrodon [SPECIES_GASTRODON_EAST_SEA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - // Rotom + // Rotom [SPECIES_ROTOM_HEAT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, [SPECIES_ROTOM_WASH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, [SPECIES_ROTOM_FROST] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, [SPECIES_ROTOM_FAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, [SPECIES_ROTOM_MOW] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 12 }, - // Origin Forme + // Origin Forme [SPECIES_DIALGA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_PALKIA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_GIRATINA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Shaymin + // Shaymin [SPECIES_SHAYMIN_SKY] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - // Arceus + // Arceus [SPECIES_ARCEUS_FIGHTING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ARCEUS_FLYING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ARCEUS_POISON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -1142,42 +1142,42 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_ARCEUS_FAIRY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif #if P_GEN_5_POKEMON == TRUE - // Basculin + // Basculin [SPECIES_BASCULIN_BLUE_STRIPED] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 16 }, [SPECIES_BASCULIN_WHITE_STRIPED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 10 }, - // Darmanitan + // Darmanitan [SPECIES_DARMANITAN_ZEN_MODE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, [SPECIES_DARMANITAN_ZEN_MODE_GALARIAN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - // Deerling + // Deerling [SPECIES_DEERLING_SUMMER] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, [SPECIES_DEERLING_AUTUMN] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, [SPECIES_DEERLING_WINTER] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, - // Sawsbuck + // Sawsbuck [SPECIES_SAWSBUCK_SUMMER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SAWSBUCK_AUTUMN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SAWSBUCK_WINTER] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Therian Forms + // Therian Forms [SPECIES_TORNADUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_THUNDURUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, [SPECIES_LANDORUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Kyurem + // Kyurem [SPECIES_KYUREM_WHITE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_KYUREM_BLACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Keldeo + // Keldeo [SPECIES_KELDEO_RESOLUTE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Meloetta + // Meloetta [SPECIES_MELOETTA_PIROUETTE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 2 }, - // Genesect + // Genesect [SPECIES_GENESECT_DOUSE_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, [SPECIES_GENESECT_SHOCK_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, [SPECIES_GENESECT_BURN_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, [SPECIES_GENESECT_CHILL_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, #endif #if P_GEN_6_POKEMON == TRUE - // Greninja + // Greninja [SPECIES_GRENINJA_BATTLE_BOND] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, [SPECIES_GRENINJA_ASH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Vivillon + // Vivillon [SPECIES_VIVILLON_POLAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_VIVILLON_TUNDRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_VIVILLON_CONTINENTAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -1197,23 +1197,23 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_VIVILLON_JUNGLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_VIVILLON_FANCY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_VIVILLON_POKE_BALL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Flabébé + // Flabébé [SPECIES_FLABEBE_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, [SPECIES_FLABEBE_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, [SPECIES_FLABEBE_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, [SPECIES_FLABEBE_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - // Floette + // Floette [SPECIES_FLOETTE_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, [SPECIES_FLOETTE_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, [SPECIES_FLOETTE_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, [SPECIES_FLOETTE_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, [SPECIES_FLOETTE_ETERNAL_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Florges + // Florges [SPECIES_FLORGES_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_FLORGES_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_FLORGES_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_FLORGES_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Furfrou + // Furfrou [SPECIES_FURFROU_HEART_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_FURFROU_STAR_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_FURFROU_DIAMOND_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, @@ -1223,41 +1223,41 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_FURFROU_LA_REINE_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, [SPECIES_FURFROU_KABUKI_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_FURFROU_PHARAOH_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - // Meowstic + // Meowstic [SPECIES_MEOWSTIC_FEMALE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - // Aegislash + // Aegislash [SPECIES_AEGISLASH_BLADE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Pumpkaboo + // Pumpkaboo [SPECIES_PUMPKABOO_SMALL] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, [SPECIES_PUMPKABOO_LARGE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 12 }, [SPECIES_PUMPKABOO_SUPER] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - // Gourgeist + // Gourgeist [SPECIES_GOURGEIST_SMALL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 5 }, [SPECIES_GOURGEIST_LARGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, [SPECIES_GOURGEIST_SUPER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Xerneas + // Xerneas [SPECIES_XERNEAS_ACTIVE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Zygarde + // Zygarde [SPECIES_ZYGARDE_10] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ZYGARDE_COMPLETE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Hoopa + // Hoopa [SPECIES_HOOPA_UNBOUND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif #if P_GEN_7_POKEMON == TRUE - // Oricorio + // Oricorio [SPECIES_ORICORIO_POM_POM] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, [SPECIES_ORICORIO_PAU] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, [SPECIES_ORICORIO_SENSU] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - // Rockruff + // Rockruff [SPECIES_ROCKRUFF_OWN_TEMPO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - // Lycanroc + // Lycanroc [SPECIES_LYCANROC_MIDNIGHT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, [SPECIES_LYCANROC_DUSK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Wishiwashi + // Wishiwashi [SPECIES_WISHIWASHI_SCHOOL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - // Silvally + // Silvally [SPECIES_SILVALLY_FIGHTING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SILVALLY_FLYING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SILVALLY_POISON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, @@ -1275,7 +1275,7 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_SILVALLY_DRAGON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SILVALLY_DARK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_SILVALLY_FAIRY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Minior + // Minior [SPECIES_MINIOR_METEOR_ORANGE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_MINIOR_METEOR_YELLOW] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_MINIOR_METEOR_GREEN] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, @@ -1289,26 +1289,26 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_MINIOR_CORE_BLUE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_MINIOR_CORE_INDIGO] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, [SPECIES_MINIOR_CORE_VIOLET] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - // Mimikyu + // Mimikyu [SPECIES_MIMIKYU_BUSTED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - // Necrozma + // Necrozma [SPECIES_NECROZMA_DUSK_MANE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_NECROZMA_DAWN_WINGS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_NECROZMA_ULTRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Magearna + // Magearna [SPECIES_MAGEARNA_ORIGINAL_COLOR] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, #endif #if P_GEN_8_POKEMON == TRUE - // Cramorant + // Cramorant [SPECIES_CRAMORANT_GULPING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_CRAMORANT_GORGING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Toxtricity + // Toxtricity [SPECIES_TOXTRICITY_LOW_KEY] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - // Sinistea + // Sinistea [SPECIES_SINISTEA_ANTIQUE] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 17 }, - // Polteageist + // Polteageist [SPECIES_POLTEAGEIST_ANTIQUE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - // Alcremie + // Alcremie [SPECIES_ALCREMIE_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, [SPECIES_ALCREMIE_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, [SPECIES_ALCREMIE_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, @@ -1317,28 +1317,28 @@ const struct MonCoords gMonFrontPicCoords[] = [SPECIES_ALCREMIE_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, [SPECIES_ALCREMIE_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, [SPECIES_ALCREMIE_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - // Eiscue + // Eiscue [SPECIES_EISCUE_NOICE_FACE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - // Indeedee + // Indeedee [SPECIES_INDEEDEE_FEMALE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - // Morpeko + // Morpeko [SPECIES_MORPEKO_HANGRY] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - // Zacian + // Zacian [SPECIES_ZACIAN_CROWNED_SWORD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Zamazenta + // Zamazenta [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Eternatus + // Eternatus [SPECIES_ETERNATUS_ETERNAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Urshifu + // Urshifu [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Zarude + // Zarude [SPECIES_ZARUDE_DADA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Calyrex + // Calyrex [SPECIES_CALYREX_ICE_RIDER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_CALYREX_SHADOW_RIDER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, [SPECIES_ENAMORUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, #endif - // Egg + // Egg [SPECIES_EGG] = { .size = MON_COORDS_SIZE(24, 24), .y_offset = 20 }, }; diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index 81bc45d4d..5ad52f6dc 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -1328,7 +1328,7 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(CALYREX_ICE_RIDER, gMonShinyPalette_CalyrexIceRider), SPECIES_SHINY_PAL(CALYREX_SHADOW_RIDER, gMonShinyPalette_CalyrexShadowRider), - + SPECIES_SHINY_PAL(ENAMORUS_THERIAN, gMonShinyPalette_CircledQuestionMark), //gMonShinyPalette_EnamorusTherian), #endif SPECIES_SHINY_PAL(EGG, gMonPalette_Egg), diff --git a/src/debug.c b/src/debug.c index 90081eb61..301bae51d 100644 --- a/src/debug.c +++ b/src/debug.c @@ -1255,7 +1255,7 @@ static void DebugAction_Util_Weather_SelectId(u8 taskId) if (gTasks[taskId].data[3] <= 15 || gTasks[taskId].data[3] >= 20) StringCopyPadded(gStringVar1, sWeatherNames[gTasks[taskId].data[3]], CHAR_SPACE, 30); else - StringCopyPadded(gStringVar1, sText_WeatherNotDefined, CHAR_SPACE, 30); + StringCopyPadded(gStringVar1, sText_WeatherNotDefined, CHAR_SPACE, 30); StringExpandPlaceholders(gStringVar4, sDebugText_Util_Weather_ID); AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); diff --git a/src/easy_chat.c b/src/easy_chat.c index d08ea4b33..6595e0a10 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -230,7 +230,7 @@ enum { PALTAG_TRIANGLE_CURSOR, PALTAG_RECTANGLE_CURSOR, PALTAG_MISC_UI, - PALTAG_RS_INTERVIEW_FRAME, + PALTAG_RS_INTERVIEW_FRAME, }; enum { @@ -240,7 +240,7 @@ enum { GFXTAG_START_SELECT_BUTTONS, GFXTAG_MODE_WINDOW, GFXTAG_RS_INTERVIEW_FRAME, - GFXTAG_BUTTON_WINDOW, + GFXTAG_BUTTON_WINDOW, }; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index ae48223c3..e1a02e3ee 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -499,7 +499,7 @@ static const struct SpritePalette sObjectEventSpritePalettes[] = { {gObjectEventPal_RubySapphireBrendan, OBJ_EVENT_PAL_TAG_RS_BRENDAN}, {gObjectEventPal_RubySapphireMay, OBJ_EVENT_PAL_TAG_RS_MAY}, #ifdef BUGFIX - {NULL, OBJ_EVENT_PAL_TAG_NONE}, + {NULL, OBJ_EVENT_PAL_TAG_NONE}, #else {}, // BUG: FindObjectEventPaletteIndexByTag looks for OBJ_EVENT_PAL_TAG_NONE and not 0x0. // If it's looking for a tag that isn't in this table, the game locks in an infinite loop. diff --git a/src/expansion_intro.c b/src/expansion_intro.c index 8fdb7c1cb..e37ea4b2e 100644 --- a/src/expansion_intro.c +++ b/src/expansion_intro.c @@ -33,10 +33,10 @@ #define DIZZY_ANIM_SPEED 4 #define DIZZY_STARS_SPEED 12 -enum +enum { EXPANSION_INTRO_BG2, - EXPANSION_INTRO_BG3 + EXPANSION_INTRO_BG3 }; enum diff --git a/src/field_specials.c b/src/field_specials.c index 3ae01543c..3996b739a 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1015,7 +1015,7 @@ static void PCTurnOnEffect(struct Task *task) if (task->tTimer == 6) { task->tTimer = 0; - + // Get where the PC should be, depending on where the player is looking. playerDirection = GetPlayerFacingDirection(); switch (playerDirection) @@ -1037,7 +1037,7 @@ static void PCTurnOnEffect(struct Task *task) // Update map PCTurnOnEffect_SetMetatile(task->tIsScreenOn, dx, dy); DrawWholeMapView(); - + // Screen flickers 5 times. Odd number and starting with the // screen off means the animation ends with the screen on. task->tIsScreenOn ^= 1; diff --git a/src/frontier_util.c b/src/frontier_util.c index 1863aa622..0fe2c94ea 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -497,7 +497,7 @@ static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZ }, }; -static const u8 sBattlePointAwards[NUM_FRONTIER_FACILITIES][FRONTIER_MODE_COUNT][30] = +static const u8 sBattlePointAwards[NUM_FRONTIER_FACILITIES][FRONTIER_MODE_COUNT][30] = { /* facility, mode, tier */ [FRONTIER_FACILITY_TOWER] = /* Tier: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 */ diff --git a/src/mini_printf.c b/src/mini_printf.c index d96a9379a..9fb4ecfac 100644 --- a/src/mini_printf.c +++ b/src/mini_printf.c @@ -41,7 +41,7 @@ #ifndef NDEBUG -struct mini_buff +struct mini_buff { char *buffer, *pbuffer; u32 buffer_len; @@ -95,9 +95,9 @@ static s32 _putsAscii(char *s, s32 len, void *buf) s32 i; struct mini_buff *b; - if (!buf) + if (!buf) return len; - + b = buf; p0 = b->buffer; @@ -118,9 +118,9 @@ static s32 _putsEncoded(char *s, s32 len, void *buf) s32 i; struct mini_buff *b; - if (!buf) + if (!buf) return len; - + b = buf; p0 = b->buffer; @@ -159,7 +159,7 @@ static s32 mini_itoa(s32 value, u32 radix, s32 uppercase, bool32 unsig, char *bu } /* This builds the string back to front ... */ - do + do { s32 digit = value % radix; *(pbuffer++) = (digit < 10 ? '0' + digit : (uppercase ? 'A' : 'a') + digit - 10); @@ -243,7 +243,7 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) { len = 1; len = _putsAscii(&ch, len, buf); - } else + } else { char pad_char = ' '; s32 pad_to = 0; @@ -270,7 +270,7 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) ch=*(fmt++); } - switch (ch) + switch (ch) { case 0: goto end; diff --git a/src/rom_header_gf.c b/src/rom_header_gf.c index 118cc5e27..7b8822acc 100644 --- a/src/rom_header_gf.c +++ b/src/rom_header_gf.c @@ -9,8 +9,8 @@ // The purpose of this struct is for outside applications to be // able to access parts of the ROM or its save file, like a public API. // In vanilla, it was used by Colosseum and XD to access pokemon graphics. -// -// If this struct is rearranged in any way, it defeats the purpose of +// +// If this struct is rearranged in any way, it defeats the purpose of // having it at all. Applications like PKHex or streaming HUDs may find // these values useful, so there's some potential benefit to keeping it. // If there's a compilation problem below, just comment out the assignment diff --git a/src/trade.c b/src/trade.c index 9186864fb..1f9e68886 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1281,7 +1281,7 @@ static void Leader_HandleCommunication(void) if (sTradeMenu->playerSelectStatus == STATUS_READY && sTradeMenu->partnerSelectStatus == STATUS_READY) { - // Both players have selected a pokemon to trade + // Both players have selected a pokemon to trade sTradeMenu->callbackId = CB_SET_SELECTED_MONS; sTradeMenu->linkData[0] = LINKCMD_SET_MONS_TO_TRADE; sTradeMenu->linkData[1] = sTradeMenu->cursorPosition; @@ -1900,7 +1900,7 @@ static void DrawSelectedMonScreen(u8 whichParty) StoreSpriteCallbackInData6(&gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]], SpriteCB_MonIcon); sTradeMenu->drawSelectedMonState[whichParty]++; Trade_MoveSelectedMonToTarget(&gSprites[sTradeMenu->partySpriteIds[selectedMonParty][partyIdx]]); - + CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, whichParty * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(0); diff --git a/test/ability_insomnia.c b/test/ability_insomnia.c index b9fe38753..9398bd30a 100644 --- a/test/ability_insomnia.c +++ b/test/ability_insomnia.c @@ -11,7 +11,7 @@ SINGLE_BATTLE_TEST("Insomnia prevents sleep") TURN { MOVE(opponent, MOVE_SPORE); } } SCENE { ABILITY_POPUP(player, ABILITY_INSOMNIA); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); STATUS_ICON(player, sleep: TRUE); @@ -31,7 +31,7 @@ SINGLE_BATTLE_TEST("Insomnia prevents yawn") TURN { } } SCENE { ABILITY_POPUP(player, ABILITY_INSOMNIA); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, opponent); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); STATUS_ICON(player, sleep: TRUE); @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("Insomnia prevents rest") TURN { MOVE(player, MOVE_REST); } } SCENE { ABILITY_POPUP(player, ABILITY_INSOMNIA); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_REST, player); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); STATUS_ICON(player, sleep: TRUE); diff --git a/test/ability_water_absorb.c b/test/ability_water_absorb.c index 1748ee7ff..aaaa149ac 100644 --- a/test/ability_water_absorb.c +++ b/test/ability_water_absorb.c @@ -78,10 +78,10 @@ SINGLE_BATTLE_TEST("Water Absorb prevents Items from activating") ABILITY_POPUP(player, ABILITY_WATER_ABSORB); HP_BAR(player, hp: TEST_MAX_HP / 4 + 1); MESSAGE("Poliwag restored HP using its Water Absorb!"); - NONE_OF { + NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } - + } } From 44d2cc7232e2c64866edbc832f417608056496cf Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 27 Feb 2023 09:11:25 +0100 Subject: [PATCH 121/125] Fix bugs related to Trainer Slide messages (#2699) * start working on trainer slides * use cmd->nextInstr --- data/battle_scripts_2.s | 26 ++++++++++++++++----- include/battle_message.h | 2 +- include/battle_scripts.h | 6 +++-- src/battle_main.c | 4 ++-- src/battle_message.c | 45 ++++++++++++++++++++++++++---------- src/battle_script_commands.c | 22 ++++++++++++------ 6 files changed, 75 insertions(+), 30 deletions(-) diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 9b26cbd0d..21a12d886 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -192,16 +192,30 @@ BattleScript_ActionWallyThrow: waitmessage B_WAIT_TIME_LONG end2 -BattleScript_TrainerSlideMsgRet:: +BattleScript_TrainerASlideMsgRet:: handletrainerslidemsg BS_SCRIPTING, 0 - trainerslidein 1 + trainerslidein B_POSITION_OPPONENT_LEFT handletrainerslidemsg BS_SCRIPTING, 1 waitstate - trainerslideout 1 - handletrainerslidemsg BS_SCRIPTING, 2 + trainerslideout B_POSITION_OPPONENT_LEFT waitstate + handletrainerslidemsg BS_SCRIPTING, 2 return -BattleScript_TrainerSlideMsgEnd2:: - call BattleScript_TrainerSlideMsgRet +BattleScript_TrainerASlideMsgEnd2:: + call BattleScript_TrainerASlideMsgRet + end2 + +BattleScript_TrainerBSlideMsgRet:: + handletrainerslidemsg BS_SCRIPTING, 0 + trainerslidein B_POSITION_OPPONENT_RIGHT + handletrainerslidemsg BS_SCRIPTING, 1 + waitstate + trainerslideout B_POSITION_OPPONENT_RIGHT + waitstate + handletrainerslidemsg BS_SCRIPTING, 2 + return + +BattleScript_TrainerBSlideMsgEnd2:: + call BattleScript_TrainerBSlideMsgRet end2 diff --git a/include/battle_message.h b/include/battle_message.h index 9f6905abd..19f8bc4ca 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -237,7 +237,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst); void BattlePutTextOnWindow(const u8 *text, u8 windowId); void SetPpNumbersPaletteInMoveSelection(void); u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp); -bool32 ShouldDoTrainerSlide(u32 battlerId, u32 trainerId, u32 which); +u32 ShouldDoTrainerSlide(u32 battlerId, u32 which); // return 1 for TrainerA, 2 forTrainerB void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst); extern struct BattleMsgData *gBattleMsgDataPtr; diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 8c6b074c1..63c128ec5 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -295,8 +295,10 @@ extern const u8 BattleScript_MoveEffectClearSmog[]; extern const u8 BattleScript_SideStatusWoreOffReturn[]; extern const u8 BattleScript_MoveEffectSmackDown[]; extern const u8 BattleScript_MoveEffectFlameBurst[]; -extern const u8 BattleScript_TrainerSlideMsgRet[]; -extern const u8 BattleScript_TrainerSlideMsgEnd2[]; +extern const u8 BattleScript_TrainerASlideMsgRet[]; +extern const u8 BattleScript_TrainerASlideMsgEnd2[]; +extern const u8 BattleScript_TrainerBSlideMsgRet[]; +extern const u8 BattleScript_TrainerBSlideMsgEnd2[]; extern const u8 BattleScript_MoveEffectFeint[]; extern const u8 BattleScript_ProteanActivates[]; extern const u8 BattleScript_DazzlingProtected[]; diff --git a/src/battle_main.c b/src/battle_main.c index 6588d3c5e..96b2e90a5 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3866,8 +3866,8 @@ void BattleTurnPassed(void) BattleScriptExecute(BattleScript_PalacePrintFlavorText); else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->arenaTurnCounter == 0) BattleScriptExecute(BattleScript_ArenaTurnBeginning); - else if (ShouldDoTrainerSlide(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), gTrainerBattleOpponent_A, TRAINER_SLIDE_LAST_LOW_HP)) - BattleScriptExecute(BattleScript_TrainerSlideMsgEnd2); + else if ((i = ShouldDoTrainerSlide(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), TRAINER_SLIDE_LAST_LOW_HP))) + BattleScriptExecute(i == 1 ? BattleScript_TrainerASlideMsgEnd2 : BattleScript_TrainerBSlideMsgEnd2); } u8 IsRunningFromBattleImpossible(void) diff --git a/src/battle_message.c b/src/battle_message.c index ec2527d84..4e49e39f1 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -3887,11 +3887,11 @@ static const struct TrainerSlide sTrainerSlides[] = */ }; -static u32 GetEnemyMonCount(bool32 onlyAlive) +static u32 GetEnemyMonCount(u32 firstId, u32 lastId, bool32 onlyAlive) { u32 i, count = 0; - for (i = 0; i < PARTY_SIZE; i++) + for (i = firstId; i < lastId; i++) { u32 species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2, NULL); if (species != SPECIES_NONE @@ -3911,12 +3911,33 @@ static bool32 IsBattlerHpLow(u32 battler) return FALSE; } -bool32 ShouldDoTrainerSlide(u32 battlerId, u32 trainerId, u32 which) +u32 ShouldDoTrainerSlide(u32 battlerId, u32 which) { - s32 i; + u32 i, firstId, lastId, trainerId, retValue = 1; if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) || GetBattlerSide(battlerId) != B_SIDE_OPPONENT) - return FALSE; + return 0; + + // Two opponents support. + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + { + if (gBattlerPartyIndexes[battlerId] >= 3) + { + firstId = 3, lastId = PARTY_SIZE; + trainerId = gTrainerBattleOpponent_B; + retValue = 2; + } + else + { + firstId = 0, lastId = 3; + trainerId = gTrainerBattleOpponent_A; + } + } + else + { + firstId = 0, lastId = PARTY_SIZE; + trainerId = gTrainerBattleOpponent_A; + } for (i = 0; i < ARRAY_COUNT(sTrainerSlides); i++) { @@ -3926,28 +3947,28 @@ bool32 ShouldDoTrainerSlide(u32 battlerId, u32 trainerId, u32 which) switch (which) { case TRAINER_SLIDE_LAST_SWITCHIN: - if (sTrainerSlides[i].msgLastSwitchIn != NULL && GetEnemyMonCount(TRUE) == 1) + if (sTrainerSlides[i].msgLastSwitchIn != NULL && !CanBattlerSwitch(battlerId)) { gBattleStruct->trainerSlideMsg = sTrainerSlides[i].msgLastSwitchIn; - return TRUE; + return retValue; } break; case TRAINER_SLIDE_LAST_LOW_HP: if (sTrainerSlides[i].msgLastLowHp != NULL - && GetEnemyMonCount(TRUE) == 1 + && GetEnemyMonCount(firstId, lastId, TRUE) == 1 && IsBattlerHpLow(battlerId) && !gBattleStruct->trainerSlideLowHpMsgDone) { gBattleStruct->trainerSlideLowHpMsgDone = TRUE; gBattleStruct->trainerSlideMsg = sTrainerSlides[i].msgLastLowHp; - return TRUE; + return retValue; } break; case TRAINER_SLIDE_FIRST_DOWN: - if (sTrainerSlides[i].msgFirstDown != NULL && GetEnemyMonCount(TRUE) == GetEnemyMonCount(FALSE) - 1) + if (sTrainerSlides[i].msgFirstDown != NULL && GetEnemyMonCount(firstId, lastId, TRUE) == GetEnemyMonCount(firstId, lastId, FALSE) - 1) { gBattleStruct->trainerSlideMsg = sTrainerSlides[i].msgFirstDown; - return TRUE; + return retValue; } break; } @@ -3955,5 +3976,5 @@ bool32 ShouldDoTrainerSlide(u32 battlerId, u32 trainerId, u32 which) } } - return FALSE; + return 0; } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 86db3c994..84a28804f 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -10109,7 +10109,8 @@ static void Cmd_various(void) VARIOUS_ARGS(u8 case_); if (cmd->case_ == 0) { - gBattleScripting.savedDmg = gBattlerSpriteIds[gActiveBattler]; + // Save sprite IDs, because trainer slide in will overwrite gBattlerSpriteIds variable. + gBattleScripting.savedDmg = (gBattlerSpriteIds[gActiveBattler] & 0xFF) | (gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)] << 8); HideBattlerShadowSprite(gActiveBattler); } else if (cmd->case_ == 1) @@ -10119,12 +10120,19 @@ static void Cmd_various(void) } else { - gBattlerSpriteIds[gActiveBattler] = gBattleScripting.savedDmg; - if (gBattleMons[gActiveBattler].hp != 0) + gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)] = gBattleScripting.savedDmg >> 8; + gBattlerSpriteIds[gActiveBattler] = gBattleScripting.savedDmg & 0xFF; + if (IsBattlerAlive(gActiveBattler)) { SetBattlerShadowSpriteCallback(gActiveBattler, gBattleMons[gActiveBattler].species); BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } + i = BATTLE_PARTNER(gActiveBattler); + if (IsBattlerAlive(i)) + { + SetBattlerShadowSpriteCallback(i, gBattleMons[i].species); + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[i]], i); + } } gBattlescriptCurrInstr = cmd->nextInstr; return; @@ -10132,11 +10140,11 @@ static void Cmd_various(void) case VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF: { VARIOUS_ARGS(); - if (ShouldDoTrainerSlide(gActiveBattler, gTrainerBattleOpponent_A, TRAINER_SLIDE_FIRST_DOWN)) + if ((i = ShouldDoTrainerSlide(gActiveBattler, TRAINER_SLIDE_FIRST_DOWN))) { gBattleScripting.battler = gActiveBattler; BattleScriptPush(cmd->nextInstr); - gBattlescriptCurrInstr = BattleScript_TrainerSlideMsgRet; + gBattlescriptCurrInstr = (i == 1 ? BattleScript_TrainerASlideMsgRet : BattleScript_TrainerBSlideMsgRet); return; } break; @@ -10144,11 +10152,11 @@ static void Cmd_various(void) case VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON: { VARIOUS_ARGS(); - if (ShouldDoTrainerSlide(gActiveBattler, gTrainerBattleOpponent_A, TRAINER_SLIDE_LAST_SWITCHIN)) + if ((i = ShouldDoTrainerSlide(gActiveBattler, TRAINER_SLIDE_LAST_SWITCHIN))) { gBattleScripting.battler = gActiveBattler; BattleScriptPush(cmd->nextInstr); - gBattlescriptCurrInstr = BattleScript_TrainerSlideMsgRet; + gBattlescriptCurrInstr = (i == 1 ? BattleScript_TrainerASlideMsgRet : BattleScript_TrainerBSlideMsgRet); return; } break; From 919fb184fef007829b1aa242c5776ace52a240fc Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 27 Feb 2023 09:12:52 +0100 Subject: [PATCH 122/125] AI knows how to handle Illusion (#2726) * AI knows how to handle Illusion --- include/battle.h | 1 + src/battle_ai_util.c | 66 ++++++++++++++++++++++++++++++++++++++------ src/battle_util.c | 28 +++++++++++++++---- 3 files changed, 80 insertions(+), 15 deletions(-) diff --git a/include/battle.h b/include/battle.h index 611041366..1ae49b1a2 100644 --- a/include/battle.h +++ b/include/battle.h @@ -252,6 +252,7 @@ struct AI_SavedBattleMon u16 moves[MAX_MON_MOVES]; u16 heldItem; u16 species; + u8 types[3]; }; struct AiPartyMon diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 22e88aac4..495e2ea1d 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -538,23 +538,73 @@ void SaveBattlerData(u8 battlerId) AI_THINKING_STRUCT->saved[battlerId].species = gBattleMons[battlerId].species; for (i = 0; i < 4; i++) AI_THINKING_STRUCT->saved[battlerId].moves[i] = gBattleMons[battlerId].moves[i]; + AI_THINKING_STRUCT->saved[battlerId].types[0] = gBattleMons[battlerId].type1; + AI_THINKING_STRUCT->saved[battlerId].types[1] = gBattleMons[battlerId].type2; } } +static bool32 ShouldFailForIllusion(u16 illusionSpecies, u32 battlerId) +{ + u32 i, j; + + if (BATTLE_HISTORY->abilities[battlerId] == ABILITY_ILLUSION) + return FALSE; + + // Don't fall for Illusion if the mon used a move it cannot know. + for (i = 0; i < MAX_MON_MOVES; i++) + { + u16 move = BATTLE_HISTORY->usedMoves[battlerId][i]; + if (move == MOVE_NONE) + continue; + + for (j = 0; gLevelUpLearnsets[illusionSpecies][j].move != MOVE_UNAVAILABLE; j++) + { + if (gLevelUpLearnsets[illusionSpecies][j].move == move) + break; + } + // The used move is in the learnsets of the fake species. + if (gLevelUpLearnsets[illusionSpecies][j].move != MOVE_UNAVAILABLE) + continue; + + // The used move can be learned from Tm/Hm or Move Tutors. + if (CanLearnTeachableMove(illusionSpecies, move)) + continue; + + // 'Illegal move', AI won't fail for the illusion. + return FALSE; + } + + return TRUE; +} + void SetBattlerData(u8 battlerId) { if (!IsBattlerAIControlled(battlerId)) { - struct Pokemon *illusionMon; - u32 i; + u32 i, species, illusionSpecies; + + // Simulate Illusion + species = gBattleMons[battlerId].species; + illusionSpecies = GetIllusionMonSpecies(battlerId); + if (illusionSpecies != SPECIES_NONE && ShouldFailForIllusion(illusionSpecies, battlerId)) + { + // If the battler's type has not been changed, AI assumes the types of the illusion mon. + if (gBattleMons[battlerId].type1 == gSpeciesInfo[species].types[0] + && gBattleMons[battlerId].type2 == gSpeciesInfo[species].types[1]) + { + gBattleMons[battlerId].type1 = gSpeciesInfo[illusionSpecies].types[0]; + gBattleMons[battlerId].type2 = gSpeciesInfo[illusionSpecies].types[1]; + } + species = illusionSpecies; + } // Use the known battler's ability. if (BATTLE_HISTORY->abilities[battlerId] != ABILITY_NONE) gBattleMons[battlerId].ability = BATTLE_HISTORY->abilities[battlerId]; // Check if mon can only have one ability. - else if (gSpeciesInfo[gBattleMons[battlerId].species].abilities[1] == ABILITY_NONE - || gSpeciesInfo[gBattleMons[battlerId].species].abilities[1] == gSpeciesInfo[gBattleMons[battlerId].species].abilities[0]) - gBattleMons[battlerId].ability = gSpeciesInfo[gBattleMons[battlerId].species].abilities[0]; + else if (gSpeciesInfo[species].abilities[1] == ABILITY_NONE + || gSpeciesInfo[species].abilities[1] == gSpeciesInfo[species].abilities[0]) + gBattleMons[battlerId].ability = gSpeciesInfo[species].abilities[0]; // The ability is unknown. else gBattleMons[battlerId].ability = ABILITY_NONE; @@ -567,10 +617,6 @@ void SetBattlerData(u8 battlerId) if (BATTLE_HISTORY->usedMoves[battlerId][i] == 0) gBattleMons[battlerId].moves[i] = 0; } - - // Simulate Illusion - if ((illusionMon = GetIllusionMonPtr(battlerId)) != NULL) - gBattleMons[battlerId].species = GetMonData(illusionMon, MON_DATA_SPECIES2); } } @@ -585,6 +631,8 @@ void RestoreBattlerData(u8 battlerId) gBattleMons[battlerId].species = AI_THINKING_STRUCT->saved[battlerId].species; for (i = 0; i < 4; i++) gBattleMons[battlerId].moves[i] = AI_THINKING_STRUCT->saved[battlerId].moves[i]; + gBattleMons[battlerId].type1 = AI_THINKING_STRUCT->saved[battlerId].types[0]; + gBattleMons[battlerId].type2 = AI_THINKING_STRUCT->saved[battlerId].types[1]; } } diff --git a/src/battle_util.c b/src/battle_util.c index 0a00372c0..e10c9dbcf 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -9817,6 +9817,18 @@ static void MulByTypeEffectiveness(u16 *modifier, u16 move, u8 moveType, u8 batt MulModifier(modifier, mod); } +static void TryNoticeIllusionInTypeEffectiveness(u32 move, u32 moveType, u32 battlerAtk, u32 battlerDef, u16 resultingModifier, u32 illusionSpecies) +{ + // Check if the type effectiveness would've been different if the pokemon really had the types as the disguise. + u16 presumedModifier = UQ_4_12(1.0); + MulByTypeEffectiveness(&presumedModifier, move, moveType, battlerDef, gSpeciesInfo[illusionSpecies].types[0], battlerAtk, FALSE); + if (gSpeciesInfo[illusionSpecies].types[1] != gSpeciesInfo[illusionSpecies].types[0]) + MulByTypeEffectiveness(&presumedModifier, move, moveType, battlerDef, gSpeciesInfo[illusionSpecies].types[1], battlerAtk, FALSE); + + if (presumedModifier != resultingModifier) + RecordAbilityBattle(battlerDef, ABILITY_ILLUSION); +} + static void UpdateMoveResultFlags(u16 modifier) { if (modifier == UQ_4_12(0.0)) @@ -9842,6 +9854,7 @@ static void UpdateMoveResultFlags(u16 modifier) static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 battlerAtk, u8 battlerDef, bool32 recordAbilities, u16 modifier) { + u32 illusionSpecies; u16 defAbility = GetBattlerAbility(battlerDef); MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, gBattleMons[battlerDef].type1, battlerAtk, recordAbilities); @@ -9851,15 +9864,18 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat && gBattleMons[battlerDef].type3 != gBattleMons[battlerDef].type1) MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, gBattleMons[battlerDef].type3, battlerAtk, recordAbilities); + if (recordAbilities && (illusionSpecies = GetIllusionMonSpecies(battlerDef))) + TryNoticeIllusionInTypeEffectiveness(move, moveType, battlerAtk, battlerDef, modifier, illusionSpecies); + if (gBattleMoves[move].split == SPLIT_STATUS && move != MOVE_THUNDER_WAVE) { modifier = UQ_4_12(1.0); - #if B_GLARE_GHOST <= GEN_3 - if (move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) - { - modifier = UQ_4_12(0.0); - } - #endif + #if B_GLARE_GHOST <= GEN_3 + if (move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) + { + modifier = UQ_4_12(0.0); + } + #endif } else if (moveType == TYPE_GROUND && !IsBattlerGrounded2(battlerDef, TRUE) && !(gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING)) { From e537be76eae85f21c6cdac20028f1070bdf3c877 Mon Sep 17 00:00:00 2001 From: AgustinGDLV <103095241+AgustinGDLV@users.noreply.github.com> Date: Mon, 27 Feb 2023 00:17:07 -0800 Subject: [PATCH 123/125] Z-moves bypass protection (#2730) --- data/battle_scripts_1.s | 5 +++++ include/battle_scripts.h | 1 + include/constants/battle_string_ids.h | 3 ++- src/battle_message.c | 2 ++ src/battle_script_commands.c | 8 ++++++++ src/battle_util.c | 16 ++++++++++++++-- 6 files changed, 32 insertions(+), 3 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 35d8db8dd..e8b751777 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -10330,3 +10330,8 @@ BattleScript_PokemonCantUseTheMove:: printstring STRINGID_BUTPOKEMONCANTUSETHEMOVE waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd + +BattleScript_CouldntFullyProtect:: + printstring STRINGID_COULDNTFULLYPROTECT + waitmessage B_WAIT_TIME_LONG + return diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 63c128ec5..0751ae809 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -455,6 +455,7 @@ extern const u8 BattleScript_DampPreventsAftermath[]; extern const u8 BattleScript_HealingWishActivates[]; extern const u8 BattleScript_LunarDanceActivates[]; extern const u8 BattleScript_ShellTrapSetUp[]; +extern const u8 BattleScript_CouldntFullyProtect[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index e561a9cb9..f3e702ec4 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -641,8 +641,9 @@ #define STRINGID_PKMNSABILITYPREVENTSABILITY 639 #define STRINGID_PREPARESHELLTRAP 640 #define STRINGID_SHELLTRAPDIDNTWORK 641 +#define STRINGID_COULDNTFULLYPROTECT 642 -#define BATTLESTRINGS_COUNT 642 +#define BATTLESTRINGS_COUNT 643 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, diff --git a/src/battle_message.c b/src/battle_message.c index 4e49e39f1..29580ded0 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -776,9 +776,11 @@ static const u8 sText_AbilityWeakenedSurroundingMonsStat[] = _("{B_ATK_NAME_WITH static const u8 sText_AttackerGainedStrengthFromTheFallen[] = _("{B_ATK_NAME_WITH_PREFIX} gained strength\nfrom the fallen!"); static const u8 sText_PrepareShellTrap[] = _("{B_ATK_NAME_WITH_PREFIX} set a shell trap!"); static const u8 sText_ShellTrapDidntWork[] = _("{B_ATK_NAME_WITH_PREFIX}'s shell trap didn't work!"); +static const u8 sText_CouldntFullyProtect[] = _("{B_DEF_NAME_WITH_PREFIX} couldn't fully protect\nitself and got hurt!"); const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = { + [STRINGID_COULDNTFULLYPROTECT - BATTLESTRINGS_TABLE_START] = sText_CouldntFullyProtect, [STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN - BATTLESTRINGS_TABLE_START] = sText_AttackerGainedStrengthFromTheFallen, [STRINGID_ABILITYWEAKENEDFSURROUNDINGMONSSTAT - BATTLESTRINGS_TABLE_START] = sText_AbilityWeakenedSurroundingMonsStat, [STRINGID_ELECTRICTERRAINACTIVATEDABILITY - BATTLESTRINGS_TABLE_START] = sText_ElectricTerrainActivatedAbility, diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 84a28804f..2d9f6f6c1 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1591,6 +1591,14 @@ static void Cmd_attackcanceler(void) return; } + // Z-moves and Max Moves bypass protection, but deal reduced damage (factored in CalcFinalDmg) + if (gBattleStruct->zmove.active && IS_BATTLER_PROTECTED(gBattlerTarget)) + { + BattleScriptPush(cmd->nextInstr); + gBattlescriptCurrInstr = BattleScript_CouldntFullyProtect; + return; + } + for (i = 0; i < gBattlersCount; i++) { if ((gProtectStructs[gBattlerByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) diff --git a/src/battle_util.c b/src/battle_util.c index e10c9dbcf..1625ff919 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -8243,9 +8243,15 @@ bool32 IsBattlerProtected(u8 battlerId, u16 move) return FALSE; } - if (move == MOVE_TEATIME) + if (move == MOVE_TEATIME) { - return FALSE; + return FALSE; + } + + // Z-Moves and Max Moves bypass protection + if (gBattleStruct->zmove.active) + { + return FALSE; } // Protective Pads doesn't stop Unseen Fist from bypassing Protect effects, so IsMoveMakingContact() isn't used here. @@ -9632,6 +9638,12 @@ static u32 CalcFinalDmg(u32 dmg, u16 move, u8 battlerAtk, u8 battlerDef, u8 move MulModifier(&finalModifier, UQ_4_12(0.25)); } + // Z-Moves and Max Moves bypass Protect and do 25% of their original damage + if (gBattleStruct->zmove.active && IS_BATTLER_PROTECTED(battlerDef)) + { + MulModifier(&finalModifier, UQ_4_12(0.25)); + } + // attacker's abilities switch (abilityAtk) { From 468625ed1dc3c079710ec6c57d92a2d0f31e49eb Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 27 Feb 2023 10:32:45 +0100 Subject: [PATCH 124/125] fit long z-moves names on battle textbox --- src/battle_bg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_bg.c b/src/battle_bg.c index e56884b55..0ed1eec2e 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -185,7 +185,7 @@ static const struct WindowTemplate sStandardBattleWindowTemplates[] = .bg = 0, .tilemapLeft = 2, .tilemapTop = 55, - .width = 12, //for z move names + .width = 16, //for z move names .height = 2, .paletteNum = 5, .baseBlock = 0x0300, From 501cff84b946d78d26819f9fac4a9783f768a995 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Mon, 27 Feb 2023 18:09:54 -0300 Subject: [PATCH 125/125] Removed unused single-frame front pics --- graphics/pokemon/abomasnow/front.png | Bin 1055 -> 0 bytes graphics/pokemon/abra/front.png | Bin 635 -> 0 bytes graphics/pokemon/absol/front.png | Bin 903 -> 0 bytes graphics/pokemon/accelgor/front.png | Bin 681 -> 0 bytes graphics/pokemon/aegislash/blade/front.png | Bin 914 -> 0 bytes graphics/pokemon/aegislash/front.png | Bin 882 -> 0 bytes graphics/pokemon/aerodactyl/front.png | Bin 905 -> 0 bytes graphics/pokemon/aggron/front.png | Bin 1131 -> 0 bytes graphics/pokemon/aipom/front.png | Bin 628 -> 0 bytes graphics/pokemon/alakazam/front.png | Bin 932 -> 0 bytes graphics/pokemon/alomomola/front.png | Bin 588 -> 0 bytes graphics/pokemon/altaria/front.png | Bin 786 -> 0 bytes graphics/pokemon/amaura/front.png | Bin 519 -> 0 bytes graphics/pokemon/ambipom/front.png | Bin 970 -> 0 bytes graphics/pokemon/amoonguss/front.png | Bin 752 -> 0 bytes graphics/pokemon/ampharos/front.png | Bin 684 -> 0 bytes graphics/pokemon/anorith/front.png | Bin 669 -> 0 bytes graphics/pokemon/arbok/front.png | Bin 800 -> 0 bytes graphics/pokemon/arcanine/front.png | Bin 1107 -> 0 bytes graphics/pokemon/arceus/front.png | Bin 1079 -> 0 bytes graphics/pokemon/archen/front.png | Bin 645 -> 0 bytes graphics/pokemon/archeops/front.png | Bin 1091 -> 0 bytes graphics/pokemon/ariados/front.png | Bin 794 -> 0 bytes graphics/pokemon/armaldo/front.png | Bin 1121 -> 0 bytes graphics/pokemon/aromatisse/front.png | Bin 765 -> 0 bytes graphics/pokemon/aron/front.png | Bin 466 -> 0 bytes graphics/pokemon/articuno/front.png | Bin 1038 -> 0 bytes graphics/pokemon/audino/front.png | Bin 633 -> 0 bytes graphics/pokemon/aurorus/front.png | Bin 900 -> 0 bytes graphics/pokemon/avalugg/front.png | Bin 837 -> 0 bytes graphics/pokemon/axew/front.png | Bin 511 -> 0 bytes graphics/pokemon/azelf/front.png | Bin 643 -> 0 bytes graphics/pokemon/azumarill/front.png | Bin 664 -> 0 bytes graphics/pokemon/azurill/front.png | Bin 525 -> 0 bytes graphics/pokemon/bagon/front.png | Bin 525 -> 0 bytes graphics/pokemon/baltoy/front.png | Bin 472 -> 0 bytes graphics/pokemon/banette/front.png | Bin 701 -> 0 bytes graphics/pokemon/barbaracle/front.png | Bin 1215 -> 0 bytes graphics/pokemon/barboach/front.png | Bin 479 -> 0 bytes graphics/pokemon/basculin/front.png | Bin 588 -> 0 bytes graphics/pokemon/bastiodon/front.png | Bin 864 -> 0 bytes graphics/pokemon/bayleef/front.png | Bin 710 -> 0 bytes graphics/pokemon/beartic/front.png | Bin 858 -> 0 bytes graphics/pokemon/beautifly/front.png | Bin 833 -> 0 bytes graphics/pokemon/beedrill/front.png | Bin 840 -> 0 bytes graphics/pokemon/beheeyem/front.png | Bin 667 -> 0 bytes graphics/pokemon/beldum/front.png | Bin 488 -> 0 bytes graphics/pokemon/bellossom/front.png | Bin 518 -> 0 bytes graphics/pokemon/bellsprout/front.png | Bin 479 -> 0 bytes graphics/pokemon/bergmite/front.png | Bin 502 -> 0 bytes graphics/pokemon/bibarel/front.png | Bin 669 -> 0 bytes graphics/pokemon/bidoof/front.png | Bin 518 -> 0 bytes graphics/pokemon/binacle/front.png | Bin 726 -> 0 bytes graphics/pokemon/bisharp/front.png | Bin 894 -> 0 bytes graphics/pokemon/blastoise/front.png | Bin 988 -> 0 bytes graphics/pokemon/blaziken/front.png | Bin 888 -> 0 bytes graphics/pokemon/blissey/front.png | Bin 797 -> 0 bytes graphics/pokemon/blitzle/front.png | Bin 569 -> 0 bytes graphics/pokemon/boldore/front.png | Bin 686 -> 0 bytes graphics/pokemon/bonsly/front.png | Bin 479 -> 0 bytes graphics/pokemon/bouffalant/front.png | Bin 803 -> 0 bytes graphics/pokemon/braixen/front.png | Bin 745 -> 0 bytes graphics/pokemon/braviary/front.png | Bin 973 -> 0 bytes graphics/pokemon/breloom/front.png | Bin 789 -> 0 bytes graphics/pokemon/bronzong/front.png | Bin 859 -> 0 bytes graphics/pokemon/bronzor/front.png | Bin 434 -> 0 bytes graphics/pokemon/budew/front.png | Bin 439 -> 0 bytes graphics/pokemon/buizel/front.png | Bin 613 -> 0 bytes graphics/pokemon/bulbasaur/front.png | Bin 519 -> 0 bytes graphics/pokemon/buneary/front.png | Bin 522 -> 0 bytes graphics/pokemon/bunnelby/front.png | Bin 654 -> 0 bytes graphics/pokemon/burmy/front.png | Bin 488 -> 0 bytes graphics/pokemon/burmy/sandy_cloak/front.png | Bin 454 -> 0 bytes graphics/pokemon/burmy/trash_cloak/front.png | Bin 508 -> 0 bytes graphics/pokemon/butterfree/front.png | Bin 790 -> 0 bytes graphics/pokemon/cacnea/front.png | Bin 642 -> 0 bytes graphics/pokemon/cacturne/front.png | Bin 837 -> 0 bytes graphics/pokemon/camerupt/front.png | Bin 918 -> 0 bytes graphics/pokemon/carbink/front.png | Bin 616 -> 0 bytes graphics/pokemon/carnivine/front.png | Bin 788 -> 0 bytes graphics/pokemon/carracosta/front.png | Bin 920 -> 0 bytes graphics/pokemon/carvanha/front.png | Bin 666 -> 0 bytes graphics/pokemon/cascoon/front.png | Bin 554 -> 0 bytes graphics/pokemon/caterpie/front.png | Bin 496 -> 0 bytes graphics/pokemon/celebi/front.png | Bin 510 -> 0 bytes graphics/pokemon/chandelure/front.png | Bin 673 -> 0 bytes graphics/pokemon/chansey/front.png | Bin 591 -> 0 bytes graphics/pokemon/charizard/front.png | Bin 1007 -> 0 bytes graphics/pokemon/charmander/front.png | Bin 577 -> 0 bytes graphics/pokemon/charmeleon/front.png | Bin 758 -> 0 bytes graphics/pokemon/chatot/front.png | Bin 552 -> 0 bytes graphics/pokemon/cherubi/front.png | Bin 432 -> 0 bytes graphics/pokemon/chesnaught/front.png | Bin 1048 -> 0 bytes graphics/pokemon/chespin/front.png | Bin 575 -> 0 bytes graphics/pokemon/chikorita/front.png | Bin 503 -> 0 bytes graphics/pokemon/chimchar/front.png | Bin 611 -> 0 bytes graphics/pokemon/chimecho/front.png | Bin 482 -> 0 bytes graphics/pokemon/chinchou/front.png | Bin 644 -> 0 bytes graphics/pokemon/chingling/front.png | Bin 447 -> 0 bytes graphics/pokemon/cinccino/front.png | Bin 769 -> 0 bytes graphics/pokemon/clamperl/front.png | Bin 645 -> 0 bytes graphics/pokemon/clauncher/front.png | Bin 604 -> 0 bytes graphics/pokemon/clawitzer/front.png | Bin 956 -> 0 bytes graphics/pokemon/claydol/front.png | Bin 934 -> 0 bytes graphics/pokemon/clefable/front.png | Bin 639 -> 0 bytes graphics/pokemon/clefairy/front.png | Bin 528 -> 0 bytes graphics/pokemon/cleffa/front.png | Bin 398 -> 0 bytes graphics/pokemon/cloyster/front.png | Bin 861 -> 0 bytes graphics/pokemon/cobalion/front.png | Bin 877 -> 0 bytes graphics/pokemon/cofagrigus/front.png | Bin 981 -> 0 bytes graphics/pokemon/combee/front.png | Bin 491 -> 0 bytes graphics/pokemon/combusken/front.png | Bin 721 -> 0 bytes graphics/pokemon/conkeldurr/front.png | Bin 915 -> 0 bytes graphics/pokemon/corphish/front.png | Bin 744 -> 0 bytes graphics/pokemon/corsola/front.png | Bin 575 -> 0 bytes graphics/pokemon/cottonee/front.png | Bin 480 -> 0 bytes graphics/pokemon/cradily/front.png | Bin 860 -> 0 bytes graphics/pokemon/cranidos/front.png | Bin 579 -> 0 bytes graphics/pokemon/crawdaunt/front.png | Bin 989 -> 0 bytes graphics/pokemon/cresselia/front.png | Bin 838 -> 0 bytes graphics/pokemon/croagunk/front.png | Bin 597 -> 0 bytes graphics/pokemon/crobat/front.png | Bin 677 -> 0 bytes graphics/pokemon/croconaw/front.png | Bin 668 -> 0 bytes graphics/pokemon/crustle/front.png | Bin 841 -> 0 bytes graphics/pokemon/cryogonal/front.png | Bin 1100 -> 0 bytes graphics/pokemon/cubchoo/front.png | Bin 521 -> 0 bytes graphics/pokemon/cubone/front.png | Bin 495 -> 0 bytes graphics/pokemon/cyndaquil/front.png | Bin 540 -> 0 bytes graphics/pokemon/darkrai/front.png | Bin 786 -> 0 bytes graphics/pokemon/darmanitan/front.png | Bin 822 -> 0 bytes graphics/pokemon/darmanitan/zen_mode/front.png | Bin 572 -> 0 bytes graphics/pokemon/darumaka/front.png | Bin 529 -> 0 bytes graphics/pokemon/dedenne/front.png | Bin 637 -> 0 bytes graphics/pokemon/deerling/front.png | Bin 525 -> 0 bytes graphics/pokemon/deino/front.png | Bin 520 -> 0 bytes graphics/pokemon/delcatty/front.png | Bin 747 -> 0 bytes graphics/pokemon/delibird/front.png | Bin 717 -> 0 bytes graphics/pokemon/delphox/front.png | Bin 1009 -> 0 bytes graphics/pokemon/deoxys/attack/front.png | Bin 936 -> 0 bytes graphics/pokemon/deoxys/defense/front.png | Bin 822 -> 0 bytes graphics/pokemon/deoxys/front.png | Bin 877 -> 0 bytes graphics/pokemon/deoxys/speed/front.png | Bin 925 -> 0 bytes graphics/pokemon/dewgong/front.png | Bin 643 -> 0 bytes graphics/pokemon/dewott/front.png | Bin 575 -> 0 bytes graphics/pokemon/dialga/front.png | Bin 1149 -> 0 bytes graphics/pokemon/diancie/front.png | Bin 812 -> 0 bytes graphics/pokemon/diggersby/front.png | Bin 839 -> 0 bytes graphics/pokemon/diglett/front.png | Bin 371 -> 0 bytes graphics/pokemon/ditto/front.png | Bin 343 -> 0 bytes graphics/pokemon/dodrio/front.png | Bin 944 -> 0 bytes graphics/pokemon/doduo/front.png | Bin 603 -> 0 bytes graphics/pokemon/donphan/front.png | Bin 878 -> 0 bytes graphics/pokemon/doublade/front.png | Bin 904 -> 0 bytes graphics/pokemon/dragalge/front.png | Bin 850 -> 0 bytes graphics/pokemon/dragonair/front.png | Bin 727 -> 0 bytes graphics/pokemon/dragonite/front.png | Bin 974 -> 0 bytes graphics/pokemon/drapion/front.png | Bin 1069 -> 0 bytes graphics/pokemon/dratini/front.png | Bin 476 -> 0 bytes graphics/pokemon/drifblim/front.png | Bin 753 -> 0 bytes graphics/pokemon/drifloon/front.png | Bin 460 -> 0 bytes graphics/pokemon/drilbur/front.png | Bin 672 -> 0 bytes graphics/pokemon/drowzee/front.png | Bin 632 -> 0 bytes graphics/pokemon/druddigon/front.png | Bin 960 -> 0 bytes graphics/pokemon/ducklett/front.png | Bin 497 -> 0 bytes graphics/pokemon/dugtrio/front.png | Bin 587 -> 0 bytes graphics/pokemon/dunsparce/front.png | Bin 624 -> 0 bytes graphics/pokemon/duosion/front.png | Bin 498 -> 0 bytes graphics/pokemon/durant/front.png | Bin 526 -> 0 bytes graphics/pokemon/dusclops/front.png | Bin 857 -> 0 bytes graphics/pokemon/dusknoir/front.png | Bin 907 -> 0 bytes graphics/pokemon/duskull/front.png | Bin 509 -> 0 bytes graphics/pokemon/dustox/front.png | Bin 799 -> 0 bytes graphics/pokemon/dwebble/front.png | Bin 524 -> 0 bytes graphics/pokemon/eelektrik/front.png | Bin 684 -> 0 bytes graphics/pokemon/eelektross/front.png | Bin 942 -> 0 bytes graphics/pokemon/eevee/front.png | Bin 535 -> 0 bytes graphics/pokemon/egg/front.png | Bin 318 -> 0 bytes graphics/pokemon/ekans/front.png | Bin 593 -> 0 bytes graphics/pokemon/electabuzz/front.png | Bin 830 -> 0 bytes graphics/pokemon/electivire/front.png | Bin 1066 -> 0 bytes graphics/pokemon/electrike/front.png | Bin 551 -> 0 bytes graphics/pokemon/electrode/front.png | Bin 472 -> 0 bytes graphics/pokemon/elekid/front.png | Bin 609 -> 0 bytes graphics/pokemon/elgyem/front.png | Bin 506 -> 0 bytes graphics/pokemon/emboar/front.png | Bin 1166 -> 0 bytes graphics/pokemon/emolga/front.png | Bin 648 -> 0 bytes graphics/pokemon/empoleon/front.png | Bin 867 -> 0 bytes graphics/pokemon/entei/front.png | Bin 1022 -> 0 bytes graphics/pokemon/escavalier/front.png | Bin 840 -> 0 bytes graphics/pokemon/espeon/front.png | Bin 616 -> 0 bytes graphics/pokemon/espurr/front.png | Bin 492 -> 0 bytes graphics/pokemon/excadrill/front.png | Bin 905 -> 0 bytes graphics/pokemon/exeggcute/front.png | Bin 636 -> 0 bytes graphics/pokemon/exeggutor/front.png | Bin 916 -> 0 bytes graphics/pokemon/exploud/front.png | Bin 1135 -> 0 bytes graphics/pokemon/farfetchd/front.png | Bin 752 -> 0 bytes graphics/pokemon/fearow/front.png | Bin 1025 -> 0 bytes graphics/pokemon/feebas/front.png | Bin 592 -> 0 bytes graphics/pokemon/fennekin/front.png | Bin 655 -> 0 bytes graphics/pokemon/feraligatr/front.png | Bin 982 -> 0 bytes graphics/pokemon/ferroseed/front.png | Bin 470 -> 0 bytes graphics/pokemon/ferrothorn/front.png | Bin 895 -> 0 bytes graphics/pokemon/finneon/front.png | Bin 469 -> 0 bytes graphics/pokemon/flaaffy/front.png | Bin 655 -> 0 bytes graphics/pokemon/flabebe/front.png | Bin 760 -> 0 bytes graphics/pokemon/flareon/front.png | Bin 726 -> 0 bytes graphics/pokemon/fletchinder/front.png | Bin 663 -> 0 bytes graphics/pokemon/fletchling/front.png | Bin 423 -> 0 bytes graphics/pokemon/floatzel/front.png | Bin 873 -> 0 bytes graphics/pokemon/floette/front.png | Bin 624 -> 0 bytes graphics/pokemon/florges/front.png | Bin 947 -> 0 bytes graphics/pokemon/flygon/front.png | Bin 949 -> 0 bytes graphics/pokemon/foongus/front.png | Bin 389 -> 0 bytes graphics/pokemon/forretress/front.png | Bin 824 -> 0 bytes graphics/pokemon/fraxure/front.png | Bin 778 -> 0 bytes graphics/pokemon/frillish/front.png | Bin 645 -> 0 bytes graphics/pokemon/froakie/front.png | Bin 561 -> 0 bytes graphics/pokemon/frogadier/front.png | Bin 699 -> 0 bytes graphics/pokemon/froslass/front.png | Bin 658 -> 0 bytes graphics/pokemon/furfrou/dandy_trim/front.png | Bin 732 -> 0 bytes .../pokemon/furfrou/debutante_trim/front.png | Bin 760 -> 0 bytes graphics/pokemon/furfrou/diamond_trim/front.png | Bin 740 -> 0 bytes graphics/pokemon/furfrou/front.png | Bin 751 -> 0 bytes graphics/pokemon/furfrou/heart_trim/front.png | Bin 785 -> 0 bytes graphics/pokemon/furfrou/kabuki_trim/front.png | Bin 787 -> 0 bytes graphics/pokemon/furfrou/la_reine_trim/front.png | Bin 716 -> 0 bytes graphics/pokemon/furfrou/matron_trim/front.png | Bin 728 -> 0 bytes graphics/pokemon/furfrou/pharaoh_trim/front.png | Bin 742 -> 0 bytes graphics/pokemon/furfrou/star_trim/front.png | Bin 790 -> 0 bytes graphics/pokemon/furret/front.png | Bin 658 -> 0 bytes graphics/pokemon/gabite/front.png | Bin 866 -> 0 bytes graphics/pokemon/gallade/front.png | Bin 767 -> 0 bytes graphics/pokemon/galvantula/front.png | Bin 759 -> 0 bytes graphics/pokemon/garbodor/front.png | Bin 1047 -> 0 bytes graphics/pokemon/garchomp/front.png | Bin 1024 -> 0 bytes graphics/pokemon/gardevoir/front.png | Bin 740 -> 0 bytes graphics/pokemon/gastly/front.png | Bin 601 -> 0 bytes graphics/pokemon/gastrodon/east_sea/front.png | Bin 637 -> 0 bytes graphics/pokemon/gastrodon/front.png | Bin 614 -> 0 bytes graphics/pokemon/genesect/front.png | Bin 828 -> 0 bytes graphics/pokemon/gengar/front.png | Bin 702 -> 0 bytes graphics/pokemon/geodude/front.png | Bin 510 -> 0 bytes graphics/pokemon/gible/front.png | Bin 630 -> 0 bytes graphics/pokemon/gigalith/front.png | Bin 925 -> 0 bytes graphics/pokemon/girafarig/front.png | Bin 833 -> 0 bytes graphics/pokemon/giratina/front.png | Bin 1271 -> 0 bytes graphics/pokemon/giratina/origin/front.png | Bin 1283 -> 0 bytes graphics/pokemon/glaceon/front.png | Bin 602 -> 0 bytes graphics/pokemon/glalie/front.png | Bin 879 -> 0 bytes graphics/pokemon/glameow/front.png | Bin 729 -> 0 bytes graphics/pokemon/gligar/front.png | Bin 851 -> 0 bytes graphics/pokemon/gliscor/front.png | Bin 940 -> 0 bytes graphics/pokemon/gloom/front.png | Bin 657 -> 0 bytes graphics/pokemon/gogoat/front.png | Bin 1032 -> 0 bytes graphics/pokemon/golbat/front.png | Bin 782 -> 0 bytes graphics/pokemon/goldeen/front.png | Bin 710 -> 0 bytes graphics/pokemon/golduck/front.png | Bin 756 -> 0 bytes graphics/pokemon/golem/front.png | Bin 886 -> 0 bytes graphics/pokemon/golett/front.png | Bin 804 -> 0 bytes graphics/pokemon/golurk/front.png | Bin 1142 -> 0 bytes graphics/pokemon/goodra/front.png | Bin 856 -> 0 bytes graphics/pokemon/goomy/front.png | Bin 439 -> 0 bytes graphics/pokemon/gorebyss/front.png | Bin 646 -> 0 bytes graphics/pokemon/gothita/front.png | Bin 495 -> 0 bytes graphics/pokemon/gothitelle/front.png | Bin 873 -> 0 bytes graphics/pokemon/gothorita/front.png | Bin 648 -> 0 bytes graphics/pokemon/gourgeist/front.png | Bin 861 -> 0 bytes graphics/pokemon/gourgeist/large/front.png | Bin 982 -> 0 bytes graphics/pokemon/gourgeist/small/front.png | Bin 909 -> 0 bytes graphics/pokemon/gourgeist/super/front.png | Bin 988 -> 0 bytes graphics/pokemon/granbull/front.png | Bin 791 -> 0 bytes graphics/pokemon/graveler/front.png | Bin 747 -> 0 bytes graphics/pokemon/greninja/ash/front.png | Bin 791 -> 0 bytes graphics/pokemon/greninja/front.png | Bin 899 -> 0 bytes graphics/pokemon/grimer/front.png | Bin 665 -> 0 bytes graphics/pokemon/grotle/front.png | Bin 922 -> 0 bytes graphics/pokemon/groudon/front.png | Bin 1228 -> 0 bytes graphics/pokemon/grovyle/front.png | Bin 876 -> 0 bytes graphics/pokemon/growlithe/front.png | Bin 631 -> 0 bytes graphics/pokemon/grumpig/front.png | Bin 896 -> 0 bytes graphics/pokemon/gulpin/front.png | Bin 416 -> 0 bytes graphics/pokemon/gurdurr/front.png | Bin 844 -> 0 bytes graphics/pokemon/gyarados/front.png | Bin 1211 -> 0 bytes graphics/pokemon/happiny/front.png | Bin 470 -> 0 bytes graphics/pokemon/hariyama/front.png | Bin 911 -> 0 bytes graphics/pokemon/haunter/front.png | Bin 589 -> 0 bytes graphics/pokemon/hawlucha/front.png | Bin 792 -> 0 bytes graphics/pokemon/haxorus/front.png | Bin 979 -> 0 bytes graphics/pokemon/heatmor/front.png | Bin 887 -> 0 bytes graphics/pokemon/heatran/front.png | Bin 938 -> 0 bytes graphics/pokemon/heliolisk/front.png | Bin 596 -> 0 bytes graphics/pokemon/helioptile/front.png | Bin 519 -> 0 bytes graphics/pokemon/heracross/front.png | Bin 724 -> 0 bytes graphics/pokemon/herdier/front.png | Bin 678 -> 0 bytes graphics/pokemon/hippopotas/front.png | Bin 554 -> 0 bytes graphics/pokemon/hippowdon/front.png | Bin 944 -> 0 bytes graphics/pokemon/hitmonchan/front.png | Bin 730 -> 0 bytes graphics/pokemon/hitmonlee/front.png | Bin 666 -> 0 bytes graphics/pokemon/hitmontop/front.png | Bin 817 -> 0 bytes graphics/pokemon/ho_oh/front.png | Bin 1280 -> 0 bytes graphics/pokemon/honchkrow/front.png | Bin 811 -> 0 bytes graphics/pokemon/honedge/front.png | Bin 699 -> 0 bytes graphics/pokemon/hoopa/front.png | Bin 768 -> 0 bytes graphics/pokemon/hoopa/unbound/front.png | Bin 1287 -> 0 bytes graphics/pokemon/hoothoot/front.png | Bin 548 -> 0 bytes graphics/pokemon/hoppip/front.png | Bin 529 -> 0 bytes graphics/pokemon/horsea/front.png | Bin 452 -> 0 bytes graphics/pokemon/houndoom/front.png | Bin 866 -> 0 bytes graphics/pokemon/houndour/front.png | Bin 570 -> 0 bytes graphics/pokemon/huntail/front.png | Bin 934 -> 0 bytes graphics/pokemon/hydreigon/front.png | Bin 1074 -> 0 bytes graphics/pokemon/hypno/front.png | Bin 821 -> 0 bytes graphics/pokemon/igglybuff/front.png | Bin 407 -> 0 bytes graphics/pokemon/illumise/front.png | Bin 646 -> 0 bytes graphics/pokemon/infernape/front.png | Bin 943 -> 0 bytes graphics/pokemon/inkay/front.png | Bin 579 -> 0 bytes graphics/pokemon/ivysaur/front.png | Bin 737 -> 0 bytes graphics/pokemon/jellicent/front.png | Bin 807 -> 0 bytes graphics/pokemon/jigglypuff/front.png | Bin 478 -> 0 bytes graphics/pokemon/jirachi/front.png | Bin 625 -> 0 bytes graphics/pokemon/jolteon/front.png | Bin 651 -> 0 bytes graphics/pokemon/joltik/front.png | Bin 403 -> 0 bytes graphics/pokemon/jumpluff/front.png | Bin 698 -> 0 bytes graphics/pokemon/jynx/front.png | Bin 724 -> 0 bytes graphics/pokemon/kabuto/front.png | Bin 445 -> 0 bytes graphics/pokemon/kabutops/front.png | Bin 834 -> 0 bytes graphics/pokemon/kadabra/front.png | Bin 917 -> 0 bytes graphics/pokemon/kakuna/front.png | Bin 451 -> 0 bytes graphics/pokemon/kangaskhan/front.png | Bin 974 -> 0 bytes graphics/pokemon/karrablast/front.png | Bin 506 -> 0 bytes graphics/pokemon/kecleon/front.png | Bin 722 -> 0 bytes graphics/pokemon/keldeo/front.png | Bin 778 -> 0 bytes graphics/pokemon/kingdra/front.png | Bin 788 -> 0 bytes graphics/pokemon/kingler/front.png | Bin 805 -> 0 bytes graphics/pokemon/kirlia/front.png | Bin 528 -> 0 bytes graphics/pokemon/klang/front.png | Bin 796 -> 0 bytes graphics/pokemon/klefki/front.png | Bin 712 -> 0 bytes graphics/pokemon/klink/front.png | Bin 516 -> 0 bytes graphics/pokemon/klinklang/front.png | Bin 1034 -> 0 bytes graphics/pokemon/koffing/front.png | Bin 657 -> 0 bytes graphics/pokemon/krabby/front.png | Bin 652 -> 0 bytes graphics/pokemon/kricketot/front.png | Bin 564 -> 0 bytes graphics/pokemon/kricketune/front.png | Bin 772 -> 0 bytes graphics/pokemon/krokorok/front.png | Bin 741 -> 0 bytes graphics/pokemon/krookodile/front.png | Bin 1152 -> 0 bytes graphics/pokemon/kyogre/front.png | Bin 1029 -> 0 bytes graphics/pokemon/kyurem/black/front.png | Bin 1228 -> 0 bytes graphics/pokemon/kyurem/front.png | Bin 949 -> 0 bytes graphics/pokemon/kyurem/white/front.png | Bin 1260 -> 0 bytes graphics/pokemon/lairon/front.png | Bin 877 -> 0 bytes graphics/pokemon/lampent/front.png | Bin 508 -> 0 bytes graphics/pokemon/landorus/front.png | Bin 1025 -> 0 bytes graphics/pokemon/landorus/therian/front.png | Bin 1053 -> 0 bytes graphics/pokemon/lanturn/front.png | Bin 680 -> 0 bytes graphics/pokemon/lapras/front.png | Bin 779 -> 0 bytes graphics/pokemon/larvesta/front.png | Bin 541 -> 0 bytes graphics/pokemon/larvitar/front.png | Bin 454 -> 0 bytes graphics/pokemon/latias/front.png | Bin 752 -> 0 bytes graphics/pokemon/latios/front.png | Bin 942 -> 0 bytes graphics/pokemon/leafeon/front.png | Bin 737 -> 0 bytes graphics/pokemon/leavanny/front.png | Bin 671 -> 0 bytes graphics/pokemon/ledian/front.png | Bin 738 -> 0 bytes graphics/pokemon/ledyba/front.png | Bin 674 -> 0 bytes graphics/pokemon/lickilicky/front.png | Bin 741 -> 0 bytes graphics/pokemon/lickitung/front.png | Bin 787 -> 0 bytes graphics/pokemon/liepard/front.png | Bin 783 -> 0 bytes graphics/pokemon/lileep/front.png | Bin 677 -> 0 bytes graphics/pokemon/lilligant/front.png | Bin 887 -> 0 bytes graphics/pokemon/lillipup/front.png | Bin 524 -> 0 bytes graphics/pokemon/linoone/front.png | Bin 617 -> 0 bytes graphics/pokemon/litleo/front.png | Bin 577 -> 0 bytes graphics/pokemon/litwick/front.png | Bin 394 -> 0 bytes graphics/pokemon/lombre/front.png | Bin 618 -> 0 bytes graphics/pokemon/lopunny/front.png | Bin 783 -> 0 bytes graphics/pokemon/lotad/front.png | Bin 492 -> 0 bytes graphics/pokemon/loudred/front.png | Bin 937 -> 0 bytes graphics/pokemon/lucario/front.png | Bin 671 -> 0 bytes graphics/pokemon/ludicolo/front.png | Bin 1035 -> 0 bytes graphics/pokemon/lugia/front.png | Bin 946 -> 0 bytes graphics/pokemon/lumineon/front.png | Bin 650 -> 0 bytes graphics/pokemon/lunatone/front.png | Bin 585 -> 0 bytes graphics/pokemon/luvdisc/front.png | Bin 334 -> 0 bytes graphics/pokemon/luxio/front.png | Bin 676 -> 0 bytes graphics/pokemon/luxray/front.png | Bin 832 -> 0 bytes graphics/pokemon/machamp/front.png | Bin 1013 -> 0 bytes graphics/pokemon/machoke/front.png | Bin 787 -> 0 bytes graphics/pokemon/machop/front.png | Bin 568 -> 0 bytes graphics/pokemon/magby/front.png | Bin 477 -> 0 bytes graphics/pokemon/magcargo/front.png | Bin 915 -> 0 bytes graphics/pokemon/magikarp/front.png | Bin 676 -> 0 bytes graphics/pokemon/magmar/front.png | Bin 919 -> 0 bytes graphics/pokemon/magmortar/front.png | Bin 1087 -> 0 bytes graphics/pokemon/magnemite/front.png | Bin 417 -> 0 bytes graphics/pokemon/magneton/front.png | Bin 850 -> 0 bytes graphics/pokemon/magnezone/front.png | Bin 869 -> 0 bytes graphics/pokemon/makuhita/front.png | Bin 615 -> 0 bytes graphics/pokemon/malamar/front.png | Bin 979 -> 0 bytes graphics/pokemon/mamoswine/front.png | Bin 1036 -> 0 bytes graphics/pokemon/manaphy/front.png | Bin 545 -> 0 bytes graphics/pokemon/mandibuzz/front.png | Bin 859 -> 0 bytes graphics/pokemon/manectric/front.png | Bin 789 -> 0 bytes graphics/pokemon/mankey/front.png | Bin 620 -> 0 bytes graphics/pokemon/mantine/front.png | Bin 636 -> 0 bytes graphics/pokemon/mantyke/front.png | Bin 545 -> 0 bytes graphics/pokemon/maractus/front.png | Bin 885 -> 0 bytes graphics/pokemon/mareep/front.png | Bin 593 -> 0 bytes graphics/pokemon/marill/front.png | Bin 547 -> 0 bytes graphics/pokemon/marowak/front.png | Bin 610 -> 0 bytes graphics/pokemon/marshadow/front.png | Bin 627 -> 0 bytes graphics/pokemon/marshtomp/front.png | Bin 665 -> 0 bytes graphics/pokemon/masquerain/front.png | Bin 791 -> 0 bytes graphics/pokemon/mawile/front.png | Bin 764 -> 0 bytes graphics/pokemon/medicham/front.png | Bin 658 -> 0 bytes graphics/pokemon/meditite/front.png | Bin 602 -> 0 bytes graphics/pokemon/meganium/front.png | Bin 852 -> 0 bytes graphics/pokemon/meloetta/front.png | Bin 626 -> 0 bytes graphics/pokemon/meowstic/female/front.png | Bin 668 -> 0 bytes graphics/pokemon/meowstic/front.png | Bin 729 -> 0 bytes graphics/pokemon/meowth/front.png | Bin 620 -> 0 bytes graphics/pokemon/mesprit/front.png | Bin 690 -> 0 bytes graphics/pokemon/metagross/front.png | Bin 904 -> 0 bytes graphics/pokemon/metang/front.png | Bin 816 -> 0 bytes graphics/pokemon/metapod/front.png | Bin 412 -> 0 bytes graphics/pokemon/mew/front.png | Bin 525 -> 0 bytes graphics/pokemon/mewtwo/front.png | Bin 847 -> 0 bytes graphics/pokemon/mienfoo/front.png | Bin 563 -> 0 bytes graphics/pokemon/mienshao/front.png | Bin 781 -> 0 bytes graphics/pokemon/mightyena/front.png | Bin 820 -> 0 bytes graphics/pokemon/milotic/front.png | Bin 936 -> 0 bytes graphics/pokemon/miltank/front.png | Bin 771 -> 0 bytes graphics/pokemon/mime_jr/front.png | Bin 564 -> 0 bytes graphics/pokemon/minccino/front.png | Bin 613 -> 0 bytes graphics/pokemon/minun/front.png | Bin 454 -> 0 bytes graphics/pokemon/misdreavus/front.png | Bin 587 -> 0 bytes graphics/pokemon/mismagius/front.png | Bin 727 -> 0 bytes graphics/pokemon/moltres/front.png | Bin 869 -> 0 bytes graphics/pokemon/monferno/front.png | Bin 777 -> 0 bytes graphics/pokemon/mothim/front.png | Bin 716 -> 0 bytes graphics/pokemon/mr_mime/front.png | Bin 780 -> 0 bytes graphics/pokemon/mudkip/front.png | Bin 539 -> 0 bytes graphics/pokemon/muk/front.png | Bin 738 -> 0 bytes graphics/pokemon/munchlax/front.png | Bin 575 -> 0 bytes graphics/pokemon/munna/front.png | Bin 430 -> 0 bytes graphics/pokemon/murkrow/front.png | Bin 529 -> 0 bytes graphics/pokemon/musharna/front.png | Bin 636 -> 0 bytes graphics/pokemon/natu/front.png | Bin 381 -> 0 bytes graphics/pokemon/nidoking/front.png | Bin 1016 -> 0 bytes graphics/pokemon/nidoqueen/front.png | Bin 859 -> 0 bytes graphics/pokemon/nidoran_f/front.png | Bin 489 -> 0 bytes graphics/pokemon/nidoran_m/front.png | Bin 519 -> 0 bytes graphics/pokemon/nidorina/front.png | Bin 663 -> 0 bytes graphics/pokemon/nidorino/front.png | Bin 691 -> 0 bytes graphics/pokemon/nincada/front.png | Bin 563 -> 0 bytes graphics/pokemon/ninetales/front.png | Bin 874 -> 0 bytes graphics/pokemon/ninjask/front.png | Bin 791 -> 0 bytes graphics/pokemon/noctowl/front.png | Bin 702 -> 0 bytes graphics/pokemon/noibat/front.png | Bin 687 -> 0 bytes graphics/pokemon/noivern/front.png | Bin 972 -> 0 bytes graphics/pokemon/nosepass/front.png | Bin 516 -> 0 bytes graphics/pokemon/numel/front.png | Bin 541 -> 0 bytes graphics/pokemon/nuzleaf/front.png | Bin 661 -> 0 bytes graphics/pokemon/octillery/front.png | Bin 645 -> 0 bytes graphics/pokemon/oddish/front.png | Bin 454 -> 0 bytes graphics/pokemon/omanyte/front.png | Bin 497 -> 0 bytes graphics/pokemon/omastar/front.png | Bin 863 -> 0 bytes graphics/pokemon/onix/front.png | Bin 832 -> 0 bytes graphics/pokemon/oshawott/front.png | Bin 469 -> 0 bytes graphics/pokemon/pachirisu/front.png | Bin 531 -> 0 bytes graphics/pokemon/palkia/front.png | Bin 1243 -> 0 bytes graphics/pokemon/palpitoad/front.png | Bin 630 -> 0 bytes graphics/pokemon/pancham/front.png | Bin 491 -> 0 bytes graphics/pokemon/pangoro/front.png | Bin 895 -> 0 bytes graphics/pokemon/panpour/front.png | Bin 650 -> 0 bytes graphics/pokemon/pansage/front.png | Bin 625 -> 0 bytes graphics/pokemon/pansear/front.png | Bin 591 -> 0 bytes graphics/pokemon/paras/front.png | Bin 582 -> 0 bytes graphics/pokemon/parasect/front.png | Bin 659 -> 0 bytes graphics/pokemon/patrat/front.png | Bin 600 -> 0 bytes graphics/pokemon/pawniard/front.png | Bin 584 -> 0 bytes graphics/pokemon/pelipper/front.png | Bin 774 -> 0 bytes graphics/pokemon/persian/front.png | Bin 769 -> 0 bytes graphics/pokemon/petilil/front.png | Bin 468 -> 0 bytes graphics/pokemon/phanpy/front.png | Bin 461 -> 0 bytes graphics/pokemon/phantump/front.png | Bin 570 -> 0 bytes graphics/pokemon/phione/front.png | Bin 510 -> 0 bytes graphics/pokemon/pichu/front.png | Bin 445 -> 0 bytes graphics/pokemon/pidgeot/front.png | Bin 949 -> 0 bytes graphics/pokemon/pidgeotto/front.png | Bin 694 -> 0 bytes graphics/pokemon/pidgey/front.png | Bin 549 -> 0 bytes graphics/pokemon/pidove/front.png | Bin 483 -> 0 bytes graphics/pokemon/pignite/front.png | Bin 745 -> 0 bytes graphics/pokemon/pikachu/front.png | Bin 587 -> 0 bytes graphics/pokemon/piloswine/front.png | Bin 624 -> 0 bytes graphics/pokemon/pineco/front.png | Bin 544 -> 0 bytes graphics/pokemon/pinsir/front.png | Bin 851 -> 0 bytes graphics/pokemon/piplup/front.png | Bin 491 -> 0 bytes graphics/pokemon/plusle/front.png | Bin 487 -> 0 bytes graphics/pokemon/politoed/front.png | Bin 720 -> 0 bytes graphics/pokemon/poliwag/front.png | Bin 540 -> 0 bytes graphics/pokemon/poliwhirl/front.png | Bin 715 -> 0 bytes graphics/pokemon/poliwrath/front.png | Bin 779 -> 0 bytes graphics/pokemon/ponyta/front.png | Bin 658 -> 0 bytes graphics/pokemon/poochyena/front.png | Bin 563 -> 0 bytes graphics/pokemon/porygon/front.png | Bin 490 -> 0 bytes graphics/pokemon/porygon2/front.png | Bin 480 -> 0 bytes graphics/pokemon/porygon_z/front.png | Bin 564 -> 0 bytes graphics/pokemon/primeape/front.png | Bin 823 -> 0 bytes graphics/pokemon/prinplup/front.png | Bin 665 -> 0 bytes graphics/pokemon/probopass/front.png | Bin 842 -> 0 bytes graphics/pokemon/psyduck/front.png | Bin 495 -> 0 bytes graphics/pokemon/pumpkaboo/front.png | Bin 586 -> 0 bytes graphics/pokemon/pumpkaboo/large/front.png | Bin 607 -> 0 bytes graphics/pokemon/pumpkaboo/small/front.png | Bin 554 -> 0 bytes graphics/pokemon/pumpkaboo/super/front.png | Bin 634 -> 0 bytes graphics/pokemon/pupitar/front.png | Bin 509 -> 0 bytes graphics/pokemon/purrloin/front.png | Bin 529 -> 0 bytes graphics/pokemon/purugly/front.png | Bin 942 -> 0 bytes graphics/pokemon/pyroar/front.png | Bin 1049 -> 0 bytes graphics/pokemon/quagsire/front.png | Bin 621 -> 0 bytes graphics/pokemon/question_mark/circled/front.png | Bin 397 -> 0 bytes graphics/pokemon/question_mark/double/front.png | Bin 306 -> 0 bytes graphics/pokemon/quilava/front.png | Bin 599 -> 0 bytes graphics/pokemon/quilladin/front.png | Bin 710 -> 0 bytes graphics/pokemon/qwilfish/front.png | Bin 537 -> 0 bytes graphics/pokemon/raichu/front.png | Bin 805 -> 0 bytes graphics/pokemon/raikou/front.png | Bin 968 -> 0 bytes graphics/pokemon/ralts/front.png | Bin 445 -> 0 bytes graphics/pokemon/rampardos/front.png | Bin 1006 -> 0 bytes graphics/pokemon/rapidash/front.png | Bin 1012 -> 0 bytes graphics/pokemon/raticate/front.png | Bin 718 -> 0 bytes graphics/pokemon/rattata/front.png | Bin 528 -> 0 bytes graphics/pokemon/rayquaza/front.png | Bin 1030 -> 0 bytes graphics/pokemon/regice/front.png | Bin 919 -> 0 bytes graphics/pokemon/regigigas/front.png | Bin 1198 -> 0 bytes graphics/pokemon/regirock/front.png | Bin 1049 -> 0 bytes graphics/pokemon/registeel/front.png | Bin 899 -> 0 bytes graphics/pokemon/relicanth/front.png | Bin 742 -> 0 bytes graphics/pokemon/remoraid/front.png | Bin 568 -> 0 bytes graphics/pokemon/reshiram/front.png | Bin 1053 -> 0 bytes graphics/pokemon/reuniclus/front.png | Bin 720 -> 0 bytes graphics/pokemon/rhydon/front.png | Bin 976 -> 0 bytes graphics/pokemon/rhyhorn/front.png | Bin 681 -> 0 bytes graphics/pokemon/rhyperior/front.png | Bin 1213 -> 0 bytes graphics/pokemon/riolu/front.png | Bin 537 -> 0 bytes graphics/pokemon/roggenrola/front.png | Bin 387 -> 0 bytes graphics/pokemon/roselia/front.png | Bin 680 -> 0 bytes graphics/pokemon/roserade/front.png | Bin 672 -> 0 bytes graphics/pokemon/rotom/fan/front.png | Bin 699 -> 0 bytes graphics/pokemon/rotom/front.png | Bin 457 -> 0 bytes graphics/pokemon/rotom/frost/front.png | Bin 691 -> 0 bytes graphics/pokemon/rotom/heat/front.png | Bin 644 -> 0 bytes graphics/pokemon/rotom/mow/front.png | Bin 672 -> 0 bytes graphics/pokemon/rotom/wash/front.png | Bin 756 -> 0 bytes graphics/pokemon/rufflet/front.png | Bin 608 -> 0 bytes graphics/pokemon/sableye/front.png | Bin 606 -> 0 bytes graphics/pokemon/salamence/front.png | Bin 1073 -> 0 bytes graphics/pokemon/samurott/front.png | Bin 992 -> 0 bytes graphics/pokemon/sandile/front.png | Bin 480 -> 0 bytes graphics/pokemon/sandshrew/front.png | Bin 582 -> 0 bytes graphics/pokemon/sandslash/front.png | Bin 792 -> 0 bytes graphics/pokemon/sawk/front.png | Bin 835 -> 0 bytes graphics/pokemon/sawsbuck/front.png | Bin 728 -> 0 bytes graphics/pokemon/scatterbug/front.png | Bin 428 -> 0 bytes graphics/pokemon/sceptile/front.png | Bin 936 -> 0 bytes graphics/pokemon/scizor/front.png | Bin 958 -> 0 bytes graphics/pokemon/scolipede/front.png | Bin 954 -> 0 bytes graphics/pokemon/scrafty/front.png | Bin 719 -> 0 bytes graphics/pokemon/scraggy/front.png | Bin 502 -> 0 bytes graphics/pokemon/scyther/front.png | Bin 758 -> 0 bytes graphics/pokemon/seadra/front.png | Bin 607 -> 0 bytes graphics/pokemon/seaking/front.png | Bin 883 -> 0 bytes graphics/pokemon/sealeo/front.png | Bin 717 -> 0 bytes graphics/pokemon/seedot/front.png | Bin 449 -> 0 bytes graphics/pokemon/seel/front.png | Bin 622 -> 0 bytes graphics/pokemon/seismitoad/front.png | Bin 977 -> 0 bytes graphics/pokemon/sentret/front.png | Bin 597 -> 0 bytes graphics/pokemon/serperior/front.png | Bin 902 -> 0 bytes graphics/pokemon/servine/front.png | Bin 562 -> 0 bytes graphics/pokemon/seviper/front.png | Bin 835 -> 0 bytes graphics/pokemon/sewaddle/front.png | Bin 482 -> 0 bytes graphics/pokemon/sharpedo/front.png | Bin 695 -> 0 bytes graphics/pokemon/shaymin/front.png | Bin 502 -> 0 bytes graphics/pokemon/shaymin/sky/front.png | Bin 722 -> 0 bytes graphics/pokemon/shedinja/front.png | Bin 668 -> 0 bytes graphics/pokemon/shelgon/front.png | Bin 627 -> 0 bytes graphics/pokemon/shellder/front.png | Bin 514 -> 0 bytes graphics/pokemon/shellos/east_sea/front.png | Bin 507 -> 0 bytes graphics/pokemon/shellos/front.png | Bin 469 -> 0 bytes graphics/pokemon/shelmet/front.png | Bin 537 -> 0 bytes graphics/pokemon/shieldon/front.png | Bin 502 -> 0 bytes graphics/pokemon/shiftry/front.png | Bin 918 -> 0 bytes graphics/pokemon/shinx/front.png | Bin 523 -> 0 bytes graphics/pokemon/shroomish/front.png | Bin 450 -> 0 bytes graphics/pokemon/shuckle/front.png | Bin 598 -> 0 bytes graphics/pokemon/shuppet/front.png | Bin 472 -> 0 bytes graphics/pokemon/sigilyph/front.png | Bin 905 -> 0 bytes graphics/pokemon/silcoon/front.png | Bin 533 -> 0 bytes graphics/pokemon/simipour/front.png | Bin 829 -> 0 bytes graphics/pokemon/simisage/front.png | Bin 922 -> 0 bytes graphics/pokemon/simisear/front.png | Bin 873 -> 0 bytes graphics/pokemon/skarmory/front.png | Bin 952 -> 0 bytes graphics/pokemon/skiddo/front.png | Bin 625 -> 0 bytes graphics/pokemon/skiploom/front.png | Bin 463 -> 0 bytes graphics/pokemon/skitty/front.png | Bin 607 -> 0 bytes graphics/pokemon/skorupi/front.png | Bin 664 -> 0 bytes graphics/pokemon/skrelp/front.png | Bin 563 -> 0 bytes graphics/pokemon/skuntank/front.png | Bin 838 -> 0 bytes graphics/pokemon/slaking/front.png | Bin 969 -> 0 bytes graphics/pokemon/slakoth/front.png | Bin 567 -> 0 bytes graphics/pokemon/sliggoo/front.png | Bin 568 -> 0 bytes graphics/pokemon/slowbro/front.png | Bin 894 -> 0 bytes graphics/pokemon/slowking/front.png | Bin 845 -> 0 bytes graphics/pokemon/slowpoke/front.png | Bin 534 -> 0 bytes graphics/pokemon/slugma/front.png | Bin 470 -> 0 bytes graphics/pokemon/slurpuff/front.png | Bin 620 -> 0 bytes graphics/pokemon/smeargle/front.png | Bin 717 -> 0 bytes graphics/pokemon/smoochum/front.png | Bin 483 -> 0 bytes graphics/pokemon/sneasel/front.png | Bin 677 -> 0 bytes graphics/pokemon/snivy/front.png | Bin 487 -> 0 bytes graphics/pokemon/snorlax/front.png | Bin 799 -> 0 bytes graphics/pokemon/snorunt/front.png | Bin 509 -> 0 bytes graphics/pokemon/snover/front.png | Bin 694 -> 0 bytes graphics/pokemon/snubbull/front.png | Bin 594 -> 0 bytes graphics/pokemon/solosis/front.png | Bin 413 -> 0 bytes graphics/pokemon/solrock/front.png | Bin 922 -> 0 bytes graphics/pokemon/spearow/front.png | Bin 561 -> 0 bytes graphics/pokemon/spewpa/front.png | Bin 497 -> 0 bytes graphics/pokemon/spheal/front.png | Bin 476 -> 0 bytes graphics/pokemon/spinarak/front.png | Bin 508 -> 0 bytes graphics/pokemon/spinda/front.png | Bin 624 -> 0 bytes graphics/pokemon/spiritomb/front.png | Bin 766 -> 0 bytes graphics/pokemon/spoink/front.png | Bin 486 -> 0 bytes graphics/pokemon/spritzee/front.png | Bin 549 -> 0 bytes graphics/pokemon/squirtle/front.png | Bin 528 -> 0 bytes graphics/pokemon/stantler/front.png | Bin 806 -> 0 bytes graphics/pokemon/staraptor/front.png | Bin 781 -> 0 bytes graphics/pokemon/staravia/front.png | Bin 590 -> 0 bytes graphics/pokemon/starly/front.png | Bin 532 -> 0 bytes graphics/pokemon/starmie/front.png | Bin 831 -> 0 bytes graphics/pokemon/staryu/front.png | Bin 588 -> 0 bytes graphics/pokemon/steelix/front.png | Bin 1016 -> 0 bytes graphics/pokemon/stoutland/front.png | Bin 1000 -> 0 bytes graphics/pokemon/stunfisk/front.png | Bin 586 -> 0 bytes graphics/pokemon/stunky/front.png | Bin 579 -> 0 bytes graphics/pokemon/sudowoodo/front.png | Bin 651 -> 0 bytes graphics/pokemon/suicune/front.png | Bin 1061 -> 0 bytes graphics/pokemon/sunflora/front.png | Bin 652 -> 0 bytes graphics/pokemon/sunkern/front.png | Bin 402 -> 0 bytes graphics/pokemon/surskit/front.png | Bin 428 -> 0 bytes graphics/pokemon/swablu/front.png | Bin 519 -> 0 bytes graphics/pokemon/swadloon/front.png | Bin 510 -> 0 bytes graphics/pokemon/swalot/front.png | Bin 696 -> 0 bytes graphics/pokemon/swampert/front.png | Bin 933 -> 0 bytes graphics/pokemon/swanna/front.png | Bin 673 -> 0 bytes graphics/pokemon/swellow/front.png | Bin 731 -> 0 bytes graphics/pokemon/swinub/front.png | Bin 370 -> 0 bytes graphics/pokemon/swirlix/front.png | Bin 534 -> 0 bytes graphics/pokemon/swoobat/front.png | Bin 889 -> 0 bytes graphics/pokemon/sylveon/front.png | Bin 769 -> 0 bytes graphics/pokemon/taillow/front.png | Bin 522 -> 0 bytes graphics/pokemon/talonflame/front.png | Bin 1002 -> 0 bytes graphics/pokemon/tangela/front.png | Bin 642 -> 0 bytes graphics/pokemon/tangrowth/front.png | Bin 967 -> 0 bytes graphics/pokemon/tapu_bulu/front.png | Bin 932 -> 0 bytes graphics/pokemon/tapu_fini/front.png | Bin 939 -> 0 bytes graphics/pokemon/tapu_koko/front.png | Bin 1101 -> 0 bytes graphics/pokemon/tapu_lele/front.png | Bin 845 -> 0 bytes graphics/pokemon/tauros/front.png | Bin 842 -> 0 bytes graphics/pokemon/teddiursa/front.png | Bin 508 -> 0 bytes graphics/pokemon/tentacool/front.png | Bin 634 -> 0 bytes graphics/pokemon/tentacruel/front.png | Bin 927 -> 0 bytes graphics/pokemon/tepig/front.png | Bin 487 -> 0 bytes graphics/pokemon/terrakion/front.png | Bin 960 -> 0 bytes graphics/pokemon/throh/front.png | Bin 793 -> 0 bytes graphics/pokemon/thundurus/front.png | Bin 1035 -> 0 bytes graphics/pokemon/thundurus/therian/front.png | Bin 1061 -> 0 bytes graphics/pokemon/timburr/front.png | Bin 576 -> 0 bytes graphics/pokemon/tirtouga/front.png | Bin 540 -> 0 bytes graphics/pokemon/togekiss/front.png | Bin 636 -> 0 bytes graphics/pokemon/togepi/front.png | Bin 421 -> 0 bytes graphics/pokemon/togetic/front.png | Bin 478 -> 0 bytes graphics/pokemon/torchic/front.png | Bin 464 -> 0 bytes graphics/pokemon/torkoal/front.png | Bin 1043 -> 0 bytes graphics/pokemon/tornadus/front.png | Bin 1004 -> 0 bytes graphics/pokemon/tornadus/therian/front.png | Bin 997 -> 0 bytes graphics/pokemon/torterra/front.png | Bin 1119 -> 0 bytes graphics/pokemon/totodile/front.png | Bin 538 -> 0 bytes graphics/pokemon/toxicroak/front.png | Bin 794 -> 0 bytes graphics/pokemon/tranquill/front.png | Bin 612 -> 0 bytes graphics/pokemon/trapinch/front.png | Bin 433 -> 0 bytes graphics/pokemon/treecko/front.png | Bin 607 -> 0 bytes graphics/pokemon/trevenant/front.png | Bin 969 -> 0 bytes graphics/pokemon/tropius/front.png | Bin 968 -> 0 bytes graphics/pokemon/trubbish/front.png | Bin 490 -> 0 bytes graphics/pokemon/turtwig/front.png | Bin 552 -> 0 bytes graphics/pokemon/tympole/front.png | Bin 449 -> 0 bytes graphics/pokemon/tynamo/front.png | Bin 353 -> 0 bytes graphics/pokemon/typhlosion/front.png | Bin 813 -> 0 bytes graphics/pokemon/tyranitar/front.png | Bin 874 -> 0 bytes graphics/pokemon/tyrantrum/front.png | Bin 1032 -> 0 bytes graphics/pokemon/tyrogue/front.png | Bin 537 -> 0 bytes graphics/pokemon/tyrunt/front.png | Bin 672 -> 0 bytes graphics/pokemon/umbreon/front.png | Bin 533 -> 0 bytes graphics/pokemon/unfezant/front.png | Bin 840 -> 0 bytes graphics/pokemon/unown/b/front.png | Bin 355 -> 0 bytes graphics/pokemon/unown/c/front.png | Bin 395 -> 0 bytes graphics/pokemon/unown/d/front.png | Bin 352 -> 0 bytes graphics/pokemon/unown/e/front.png | Bin 325 -> 0 bytes .../pokemon/unown/exclamation_mark/front.png | Bin 294 -> 0 bytes graphics/pokemon/unown/f/front.png | Bin 364 -> 0 bytes graphics/pokemon/unown/front.png | Bin 337 -> 0 bytes graphics/pokemon/unown/g/front.png | Bin 359 -> 0 bytes graphics/pokemon/unown/h/front.png | Bin 424 -> 0 bytes graphics/pokemon/unown/i/front.png | Bin 305 -> 0 bytes graphics/pokemon/unown/j/front.png | Bin 334 -> 0 bytes graphics/pokemon/unown/k/front.png | Bin 347 -> 0 bytes graphics/pokemon/unown/l/front.png | Bin 315 -> 0 bytes graphics/pokemon/unown/m/front.png | Bin 414 -> 0 bytes graphics/pokemon/unown/n/front.png | Bin 379 -> 0 bytes graphics/pokemon/unown/o/front.png | Bin 417 -> 0 bytes graphics/pokemon/unown/p/front.png | Bin 312 -> 0 bytes graphics/pokemon/unown/q/front.png | Bin 320 -> 0 bytes graphics/pokemon/unown/question_mark/front.png | Bin 332 -> 0 bytes graphics/pokemon/unown/r/front.png | Bin 313 -> 0 bytes graphics/pokemon/unown/s/front.png | Bin 363 -> 0 bytes graphics/pokemon/unown/t/front.png | Bin 316 -> 0 bytes graphics/pokemon/unown/u/front.png | Bin 391 -> 0 bytes graphics/pokemon/unown/v/front.png | Bin 349 -> 0 bytes graphics/pokemon/unown/w/front.png | Bin 355 -> 0 bytes graphics/pokemon/unown/x/front.png | Bin 337 -> 0 bytes graphics/pokemon/unown/y/front.png | Bin 347 -> 0 bytes graphics/pokemon/unown/z/front.png | Bin 324 -> 0 bytes graphics/pokemon/ursaring/front.png | Bin 918 -> 0 bytes graphics/pokemon/uxie/front.png | Bin 611 -> 0 bytes graphics/pokemon/vanillish/front.png | Bin 606 -> 0 bytes graphics/pokemon/vanillite/front.png | Bin 440 -> 0 bytes graphics/pokemon/vanilluxe/front.png | Bin 826 -> 0 bytes graphics/pokemon/vaporeon/front.png | Bin 695 -> 0 bytes graphics/pokemon/venipede/front.png | Bin 505 -> 0 bytes graphics/pokemon/venomoth/front.png | Bin 736 -> 0 bytes graphics/pokemon/venonat/front.png | Bin 610 -> 0 bytes graphics/pokemon/venusaur/front.png | Bin 1187 -> 0 bytes graphics/pokemon/vespiquen/front.png | Bin 809 -> 0 bytes graphics/pokemon/vibrava/front.png | Bin 679 -> 0 bytes graphics/pokemon/victini/front.png | Bin 552 -> 0 bytes graphics/pokemon/victreebel/front.png | Bin 801 -> 0 bytes graphics/pokemon/vigoroth/front.png | Bin 787 -> 0 bytes graphics/pokemon/vileplume/front.png | Bin 704 -> 0 bytes graphics/pokemon/virizion/front.png | Bin 745 -> 0 bytes graphics/pokemon/vivillon/archipelago/front.png | Bin 1025 -> 0 bytes graphics/pokemon/vivillon/continental/front.png | Bin 1004 -> 0 bytes graphics/pokemon/vivillon/elegant/front.png | Bin 1035 -> 0 bytes graphics/pokemon/vivillon/fancy/front.png | Bin 1080 -> 0 bytes graphics/pokemon/vivillon/front.png | Bin 953 -> 0 bytes graphics/pokemon/vivillon/garden/front.png | Bin 1010 -> 0 bytes graphics/pokemon/vivillon/high_plains/front.png | Bin 971 -> 0 bytes graphics/pokemon/vivillon/jungle/front.png | Bin 923 -> 0 bytes graphics/pokemon/vivillon/marine/front.png | Bin 996 -> 0 bytes graphics/pokemon/vivillon/meadow/front.png | Bin 1017 -> 0 bytes graphics/pokemon/vivillon/modern/front.png | Bin 1049 -> 0 bytes graphics/pokemon/vivillon/monsoon/front.png | Bin 909 -> 0 bytes graphics/pokemon/vivillon/ocean/front.png | Bin 1050 -> 0 bytes graphics/pokemon/vivillon/poke_ball/front.png | Bin 1029 -> 0 bytes graphics/pokemon/vivillon/polar/front.png | Bin 976 -> 0 bytes graphics/pokemon/vivillon/river/front.png | Bin 941 -> 0 bytes graphics/pokemon/vivillon/sandstorm/front.png | Bin 958 -> 0 bytes graphics/pokemon/vivillon/savanna/front.png | Bin 1025 -> 0 bytes graphics/pokemon/vivillon/sun/front.png | Bin 1019 -> 0 bytes graphics/pokemon/vivillon/tundra/front.png | Bin 947 -> 0 bytes graphics/pokemon/volbeat/front.png | Bin 746 -> 0 bytes graphics/pokemon/volcanion/front.png | Bin 1042 -> 0 bytes graphics/pokemon/volcarona/front.png | Bin 927 -> 0 bytes graphics/pokemon/voltorb/front.png | Bin 380 -> 0 bytes graphics/pokemon/vullaby/front.png | Bin 673 -> 0 bytes graphics/pokemon/vulpix/front.png | Bin 633 -> 0 bytes graphics/pokemon/wailmer/front.png | Bin 619 -> 0 bytes graphics/pokemon/wailord/front.png | Bin 776 -> 0 bytes graphics/pokemon/walrein/front.png | Bin 954 -> 0 bytes graphics/pokemon/wartortle/front.png | Bin 780 -> 0 bytes graphics/pokemon/watchog/front.png | Bin 668 -> 0 bytes graphics/pokemon/weavile/front.png | Bin 743 -> 0 bytes graphics/pokemon/weedle/front.png | Bin 451 -> 0 bytes graphics/pokemon/weepinbell/front.png | Bin 594 -> 0 bytes graphics/pokemon/weezing/front.png | Bin 934 -> 0 bytes graphics/pokemon/whimsicott/front.png | Bin 706 -> 0 bytes graphics/pokemon/whirlipede/front.png | Bin 671 -> 0 bytes graphics/pokemon/whiscash/front.png | Bin 815 -> 0 bytes graphics/pokemon/whismur/front.png | Bin 509 -> 0 bytes graphics/pokemon/wigglytuff/front.png | Bin 670 -> 0 bytes graphics/pokemon/wingull/front.png | Bin 468 -> 0 bytes graphics/pokemon/wobbuffet/front.png | Bin 653 -> 0 bytes graphics/pokemon/woobat/front.png | Bin 541 -> 0 bytes graphics/pokemon/wooper/front.png | Bin 475 -> 0 bytes graphics/pokemon/wormadam/front.png | Bin 561 -> 0 bytes graphics/pokemon/wormadam/sandy_cloak/front.png | Bin 586 -> 0 bytes graphics/pokemon/wormadam/trash_cloak/front.png | Bin 532 -> 0 bytes graphics/pokemon/wurmple/front.png | Bin 595 -> 0 bytes graphics/pokemon/wynaut/front.png | Bin 489 -> 0 bytes graphics/pokemon/xatu/front.png | Bin 589 -> 0 bytes graphics/pokemon/xerneas/active/front.png | Bin 931 -> 0 bytes graphics/pokemon/yamask/front.png | Bin 440 -> 0 bytes graphics/pokemon/yanma/front.png | Bin 681 -> 0 bytes graphics/pokemon/yanmega/front.png | Bin 779 -> 0 bytes graphics/pokemon/yveltal/front.png | Bin 1154 -> 0 bytes graphics/pokemon/zangoose/front.png | Bin 767 -> 0 bytes graphics/pokemon/zapdos/front.png | Bin 910 -> 0 bytes graphics/pokemon/zebstrika/front.png | Bin 864 -> 0 bytes graphics/pokemon/zekrom/front.png | Bin 1055 -> 0 bytes graphics/pokemon/zigzagoon/front.png | Bin 651 -> 0 bytes graphics/pokemon/zoroark/front.png | Bin 862 -> 0 bytes graphics/pokemon/zorua/front.png | Bin 547 -> 0 bytes graphics/pokemon/zubat/front.png | Bin 557 -> 0 bytes graphics/pokemon/zweilous/front.png | Bin 778 -> 0 bytes graphics/pokemon/zygarde/10_percent/front.png | Bin 776 -> 0 bytes graphics/pokemon/zygarde/complete/front.png | Bin 1259 -> 0 bytes graphics/pokemon/zygarde/front.png | Bin 1030 -> 0 bytes 816 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 graphics/pokemon/abomasnow/front.png delete mode 100644 graphics/pokemon/abra/front.png delete mode 100644 graphics/pokemon/absol/front.png delete mode 100644 graphics/pokemon/accelgor/front.png delete mode 100644 graphics/pokemon/aegislash/blade/front.png delete mode 100644 graphics/pokemon/aegislash/front.png delete mode 100644 graphics/pokemon/aerodactyl/front.png delete mode 100644 graphics/pokemon/aggron/front.png delete mode 100644 graphics/pokemon/aipom/front.png delete mode 100644 graphics/pokemon/alakazam/front.png delete mode 100644 graphics/pokemon/alomomola/front.png delete mode 100644 graphics/pokemon/altaria/front.png delete mode 100644 graphics/pokemon/amaura/front.png delete mode 100644 graphics/pokemon/ambipom/front.png delete mode 100644 graphics/pokemon/amoonguss/front.png delete mode 100644 graphics/pokemon/ampharos/front.png delete mode 100644 graphics/pokemon/anorith/front.png delete mode 100644 graphics/pokemon/arbok/front.png delete mode 100644 graphics/pokemon/arcanine/front.png delete mode 100644 graphics/pokemon/arceus/front.png delete mode 100644 graphics/pokemon/archen/front.png delete mode 100644 graphics/pokemon/archeops/front.png delete mode 100644 graphics/pokemon/ariados/front.png delete mode 100644 graphics/pokemon/armaldo/front.png delete mode 100644 graphics/pokemon/aromatisse/front.png delete mode 100644 graphics/pokemon/aron/front.png delete mode 100644 graphics/pokemon/articuno/front.png delete mode 100644 graphics/pokemon/audino/front.png delete mode 100644 graphics/pokemon/aurorus/front.png delete mode 100644 graphics/pokemon/avalugg/front.png delete mode 100644 graphics/pokemon/axew/front.png delete mode 100644 graphics/pokemon/azelf/front.png delete mode 100644 graphics/pokemon/azumarill/front.png delete mode 100644 graphics/pokemon/azurill/front.png delete mode 100644 graphics/pokemon/bagon/front.png delete mode 100644 graphics/pokemon/baltoy/front.png delete mode 100644 graphics/pokemon/banette/front.png delete mode 100644 graphics/pokemon/barbaracle/front.png delete mode 100644 graphics/pokemon/barboach/front.png delete mode 100644 graphics/pokemon/basculin/front.png delete mode 100644 graphics/pokemon/bastiodon/front.png delete mode 100644 graphics/pokemon/bayleef/front.png delete mode 100644 graphics/pokemon/beartic/front.png delete mode 100644 graphics/pokemon/beautifly/front.png delete mode 100644 graphics/pokemon/beedrill/front.png delete mode 100644 graphics/pokemon/beheeyem/front.png delete mode 100644 graphics/pokemon/beldum/front.png delete mode 100644 graphics/pokemon/bellossom/front.png delete mode 100644 graphics/pokemon/bellsprout/front.png delete mode 100644 graphics/pokemon/bergmite/front.png delete mode 100644 graphics/pokemon/bibarel/front.png delete mode 100644 graphics/pokemon/bidoof/front.png delete mode 100644 graphics/pokemon/binacle/front.png delete mode 100644 graphics/pokemon/bisharp/front.png delete mode 100644 graphics/pokemon/blastoise/front.png delete mode 100644 graphics/pokemon/blaziken/front.png delete mode 100644 graphics/pokemon/blissey/front.png delete mode 100644 graphics/pokemon/blitzle/front.png delete mode 100644 graphics/pokemon/boldore/front.png delete mode 100644 graphics/pokemon/bonsly/front.png delete mode 100644 graphics/pokemon/bouffalant/front.png delete mode 100644 graphics/pokemon/braixen/front.png delete mode 100644 graphics/pokemon/braviary/front.png delete mode 100644 graphics/pokemon/breloom/front.png delete mode 100644 graphics/pokemon/bronzong/front.png delete mode 100644 graphics/pokemon/bronzor/front.png delete mode 100644 graphics/pokemon/budew/front.png delete mode 100644 graphics/pokemon/buizel/front.png delete mode 100644 graphics/pokemon/bulbasaur/front.png delete mode 100644 graphics/pokemon/buneary/front.png delete mode 100644 graphics/pokemon/bunnelby/front.png delete mode 100644 graphics/pokemon/burmy/front.png delete mode 100644 graphics/pokemon/burmy/sandy_cloak/front.png delete mode 100644 graphics/pokemon/burmy/trash_cloak/front.png delete mode 100644 graphics/pokemon/butterfree/front.png delete mode 100644 graphics/pokemon/cacnea/front.png delete mode 100644 graphics/pokemon/cacturne/front.png delete mode 100644 graphics/pokemon/camerupt/front.png delete mode 100644 graphics/pokemon/carbink/front.png delete mode 100644 graphics/pokemon/carnivine/front.png delete mode 100644 graphics/pokemon/carracosta/front.png delete mode 100644 graphics/pokemon/carvanha/front.png delete mode 100644 graphics/pokemon/cascoon/front.png delete mode 100644 graphics/pokemon/caterpie/front.png delete mode 100644 graphics/pokemon/celebi/front.png delete mode 100644 graphics/pokemon/chandelure/front.png delete mode 100644 graphics/pokemon/chansey/front.png delete mode 100644 graphics/pokemon/charizard/front.png delete mode 100644 graphics/pokemon/charmander/front.png delete mode 100644 graphics/pokemon/charmeleon/front.png delete mode 100644 graphics/pokemon/chatot/front.png delete mode 100644 graphics/pokemon/cherubi/front.png delete mode 100644 graphics/pokemon/chesnaught/front.png delete mode 100644 graphics/pokemon/chespin/front.png delete mode 100644 graphics/pokemon/chikorita/front.png delete mode 100644 graphics/pokemon/chimchar/front.png delete mode 100644 graphics/pokemon/chimecho/front.png delete mode 100644 graphics/pokemon/chinchou/front.png delete mode 100644 graphics/pokemon/chingling/front.png delete mode 100644 graphics/pokemon/cinccino/front.png delete mode 100644 graphics/pokemon/clamperl/front.png delete mode 100644 graphics/pokemon/clauncher/front.png delete mode 100644 graphics/pokemon/clawitzer/front.png delete mode 100644 graphics/pokemon/claydol/front.png delete mode 100644 graphics/pokemon/clefable/front.png delete mode 100644 graphics/pokemon/clefairy/front.png delete mode 100644 graphics/pokemon/cleffa/front.png delete mode 100644 graphics/pokemon/cloyster/front.png delete mode 100644 graphics/pokemon/cobalion/front.png delete mode 100644 graphics/pokemon/cofagrigus/front.png delete mode 100644 graphics/pokemon/combee/front.png delete mode 100644 graphics/pokemon/combusken/front.png delete mode 100644 graphics/pokemon/conkeldurr/front.png delete mode 100644 graphics/pokemon/corphish/front.png delete mode 100644 graphics/pokemon/corsola/front.png delete mode 100644 graphics/pokemon/cottonee/front.png delete mode 100644 graphics/pokemon/cradily/front.png delete mode 100644 graphics/pokemon/cranidos/front.png delete mode 100644 graphics/pokemon/crawdaunt/front.png delete mode 100644 graphics/pokemon/cresselia/front.png delete mode 100644 graphics/pokemon/croagunk/front.png delete mode 100644 graphics/pokemon/crobat/front.png delete mode 100644 graphics/pokemon/croconaw/front.png delete mode 100644 graphics/pokemon/crustle/front.png delete mode 100644 graphics/pokemon/cryogonal/front.png delete mode 100644 graphics/pokemon/cubchoo/front.png delete mode 100644 graphics/pokemon/cubone/front.png delete mode 100644 graphics/pokemon/cyndaquil/front.png delete mode 100644 graphics/pokemon/darkrai/front.png delete mode 100644 graphics/pokemon/darmanitan/front.png delete mode 100644 graphics/pokemon/darmanitan/zen_mode/front.png delete mode 100644 graphics/pokemon/darumaka/front.png delete mode 100644 graphics/pokemon/dedenne/front.png delete mode 100644 graphics/pokemon/deerling/front.png delete mode 100644 graphics/pokemon/deino/front.png delete mode 100644 graphics/pokemon/delcatty/front.png delete mode 100644 graphics/pokemon/delibird/front.png delete mode 100644 graphics/pokemon/delphox/front.png delete mode 100644 graphics/pokemon/deoxys/attack/front.png delete mode 100644 graphics/pokemon/deoxys/defense/front.png delete mode 100644 graphics/pokemon/deoxys/front.png delete mode 100644 graphics/pokemon/deoxys/speed/front.png delete mode 100644 graphics/pokemon/dewgong/front.png delete mode 100644 graphics/pokemon/dewott/front.png delete mode 100644 graphics/pokemon/dialga/front.png delete mode 100644 graphics/pokemon/diancie/front.png delete mode 100644 graphics/pokemon/diggersby/front.png delete mode 100644 graphics/pokemon/diglett/front.png delete mode 100644 graphics/pokemon/ditto/front.png delete mode 100644 graphics/pokemon/dodrio/front.png delete mode 100644 graphics/pokemon/doduo/front.png delete mode 100644 graphics/pokemon/donphan/front.png delete mode 100644 graphics/pokemon/doublade/front.png delete mode 100644 graphics/pokemon/dragalge/front.png delete mode 100644 graphics/pokemon/dragonair/front.png delete mode 100644 graphics/pokemon/dragonite/front.png delete mode 100644 graphics/pokemon/drapion/front.png delete mode 100644 graphics/pokemon/dratini/front.png delete mode 100644 graphics/pokemon/drifblim/front.png delete mode 100644 graphics/pokemon/drifloon/front.png delete mode 100644 graphics/pokemon/drilbur/front.png delete mode 100644 graphics/pokemon/drowzee/front.png delete mode 100644 graphics/pokemon/druddigon/front.png delete mode 100644 graphics/pokemon/ducklett/front.png delete mode 100644 graphics/pokemon/dugtrio/front.png delete mode 100644 graphics/pokemon/dunsparce/front.png delete mode 100644 graphics/pokemon/duosion/front.png delete mode 100644 graphics/pokemon/durant/front.png delete mode 100644 graphics/pokemon/dusclops/front.png delete mode 100644 graphics/pokemon/dusknoir/front.png delete mode 100644 graphics/pokemon/duskull/front.png delete mode 100644 graphics/pokemon/dustox/front.png delete mode 100644 graphics/pokemon/dwebble/front.png delete mode 100644 graphics/pokemon/eelektrik/front.png delete mode 100644 graphics/pokemon/eelektross/front.png delete mode 100644 graphics/pokemon/eevee/front.png delete mode 100644 graphics/pokemon/egg/front.png delete mode 100644 graphics/pokemon/ekans/front.png delete mode 100644 graphics/pokemon/electabuzz/front.png delete mode 100644 graphics/pokemon/electivire/front.png delete mode 100644 graphics/pokemon/electrike/front.png delete mode 100644 graphics/pokemon/electrode/front.png delete mode 100644 graphics/pokemon/elekid/front.png delete mode 100644 graphics/pokemon/elgyem/front.png delete mode 100644 graphics/pokemon/emboar/front.png delete mode 100644 graphics/pokemon/emolga/front.png delete mode 100644 graphics/pokemon/empoleon/front.png delete mode 100644 graphics/pokemon/entei/front.png delete mode 100644 graphics/pokemon/escavalier/front.png delete mode 100644 graphics/pokemon/espeon/front.png delete mode 100644 graphics/pokemon/espurr/front.png delete mode 100644 graphics/pokemon/excadrill/front.png delete mode 100644 graphics/pokemon/exeggcute/front.png delete mode 100644 graphics/pokemon/exeggutor/front.png delete mode 100644 graphics/pokemon/exploud/front.png delete mode 100644 graphics/pokemon/farfetchd/front.png delete mode 100644 graphics/pokemon/fearow/front.png delete mode 100644 graphics/pokemon/feebas/front.png delete mode 100644 graphics/pokemon/fennekin/front.png delete mode 100644 graphics/pokemon/feraligatr/front.png delete mode 100644 graphics/pokemon/ferroseed/front.png delete mode 100644 graphics/pokemon/ferrothorn/front.png delete mode 100644 graphics/pokemon/finneon/front.png delete mode 100644 graphics/pokemon/flaaffy/front.png delete mode 100644 graphics/pokemon/flabebe/front.png delete mode 100644 graphics/pokemon/flareon/front.png delete mode 100644 graphics/pokemon/fletchinder/front.png delete mode 100644 graphics/pokemon/fletchling/front.png delete mode 100644 graphics/pokemon/floatzel/front.png delete mode 100644 graphics/pokemon/floette/front.png delete mode 100644 graphics/pokemon/florges/front.png delete mode 100644 graphics/pokemon/flygon/front.png delete mode 100644 graphics/pokemon/foongus/front.png delete mode 100644 graphics/pokemon/forretress/front.png delete mode 100644 graphics/pokemon/fraxure/front.png delete mode 100644 graphics/pokemon/frillish/front.png delete mode 100644 graphics/pokemon/froakie/front.png delete mode 100644 graphics/pokemon/frogadier/front.png delete mode 100644 graphics/pokemon/froslass/front.png delete mode 100644 graphics/pokemon/furfrou/dandy_trim/front.png delete mode 100644 graphics/pokemon/furfrou/debutante_trim/front.png delete mode 100644 graphics/pokemon/furfrou/diamond_trim/front.png delete mode 100644 graphics/pokemon/furfrou/front.png delete mode 100644 graphics/pokemon/furfrou/heart_trim/front.png delete mode 100644 graphics/pokemon/furfrou/kabuki_trim/front.png delete mode 100644 graphics/pokemon/furfrou/la_reine_trim/front.png delete mode 100644 graphics/pokemon/furfrou/matron_trim/front.png delete mode 100644 graphics/pokemon/furfrou/pharaoh_trim/front.png delete mode 100644 graphics/pokemon/furfrou/star_trim/front.png delete mode 100644 graphics/pokemon/furret/front.png delete mode 100644 graphics/pokemon/gabite/front.png delete mode 100644 graphics/pokemon/gallade/front.png delete mode 100644 graphics/pokemon/galvantula/front.png delete mode 100644 graphics/pokemon/garbodor/front.png delete mode 100644 graphics/pokemon/garchomp/front.png delete mode 100644 graphics/pokemon/gardevoir/front.png delete mode 100644 graphics/pokemon/gastly/front.png delete mode 100644 graphics/pokemon/gastrodon/east_sea/front.png delete mode 100644 graphics/pokemon/gastrodon/front.png delete mode 100644 graphics/pokemon/genesect/front.png delete mode 100644 graphics/pokemon/gengar/front.png delete mode 100644 graphics/pokemon/geodude/front.png delete mode 100644 graphics/pokemon/gible/front.png delete mode 100644 graphics/pokemon/gigalith/front.png delete mode 100644 graphics/pokemon/girafarig/front.png delete mode 100644 graphics/pokemon/giratina/front.png delete mode 100644 graphics/pokemon/giratina/origin/front.png delete mode 100644 graphics/pokemon/glaceon/front.png delete mode 100644 graphics/pokemon/glalie/front.png delete mode 100644 graphics/pokemon/glameow/front.png delete mode 100644 graphics/pokemon/gligar/front.png delete mode 100644 graphics/pokemon/gliscor/front.png delete mode 100644 graphics/pokemon/gloom/front.png delete mode 100644 graphics/pokemon/gogoat/front.png delete mode 100644 graphics/pokemon/golbat/front.png delete mode 100644 graphics/pokemon/goldeen/front.png delete mode 100644 graphics/pokemon/golduck/front.png delete mode 100644 graphics/pokemon/golem/front.png delete mode 100644 graphics/pokemon/golett/front.png delete mode 100644 graphics/pokemon/golurk/front.png delete mode 100644 graphics/pokemon/goodra/front.png delete mode 100644 graphics/pokemon/goomy/front.png delete mode 100644 graphics/pokemon/gorebyss/front.png delete mode 100644 graphics/pokemon/gothita/front.png delete mode 100644 graphics/pokemon/gothitelle/front.png delete mode 100644 graphics/pokemon/gothorita/front.png delete mode 100644 graphics/pokemon/gourgeist/front.png delete mode 100644 graphics/pokemon/gourgeist/large/front.png delete mode 100644 graphics/pokemon/gourgeist/small/front.png delete mode 100644 graphics/pokemon/gourgeist/super/front.png delete mode 100644 graphics/pokemon/granbull/front.png delete mode 100644 graphics/pokemon/graveler/front.png delete mode 100644 graphics/pokemon/greninja/ash/front.png delete mode 100644 graphics/pokemon/greninja/front.png delete mode 100644 graphics/pokemon/grimer/front.png delete mode 100644 graphics/pokemon/grotle/front.png delete mode 100644 graphics/pokemon/groudon/front.png delete mode 100644 graphics/pokemon/grovyle/front.png delete mode 100644 graphics/pokemon/growlithe/front.png delete mode 100644 graphics/pokemon/grumpig/front.png delete mode 100644 graphics/pokemon/gulpin/front.png delete mode 100644 graphics/pokemon/gurdurr/front.png delete mode 100644 graphics/pokemon/gyarados/front.png delete mode 100644 graphics/pokemon/happiny/front.png delete mode 100644 graphics/pokemon/hariyama/front.png delete mode 100644 graphics/pokemon/haunter/front.png delete mode 100644 graphics/pokemon/hawlucha/front.png delete mode 100644 graphics/pokemon/haxorus/front.png delete mode 100644 graphics/pokemon/heatmor/front.png delete mode 100644 graphics/pokemon/heatran/front.png delete mode 100644 graphics/pokemon/heliolisk/front.png delete mode 100644 graphics/pokemon/helioptile/front.png delete mode 100644 graphics/pokemon/heracross/front.png delete mode 100644 graphics/pokemon/herdier/front.png delete mode 100644 graphics/pokemon/hippopotas/front.png delete mode 100644 graphics/pokemon/hippowdon/front.png delete mode 100644 graphics/pokemon/hitmonchan/front.png delete mode 100644 graphics/pokemon/hitmonlee/front.png delete mode 100644 graphics/pokemon/hitmontop/front.png delete mode 100644 graphics/pokemon/ho_oh/front.png delete mode 100644 graphics/pokemon/honchkrow/front.png delete mode 100644 graphics/pokemon/honedge/front.png delete mode 100644 graphics/pokemon/hoopa/front.png delete mode 100644 graphics/pokemon/hoopa/unbound/front.png delete mode 100644 graphics/pokemon/hoothoot/front.png delete mode 100644 graphics/pokemon/hoppip/front.png delete mode 100644 graphics/pokemon/horsea/front.png delete mode 100644 graphics/pokemon/houndoom/front.png delete mode 100644 graphics/pokemon/houndour/front.png delete mode 100644 graphics/pokemon/huntail/front.png delete mode 100644 graphics/pokemon/hydreigon/front.png delete mode 100644 graphics/pokemon/hypno/front.png delete mode 100644 graphics/pokemon/igglybuff/front.png delete mode 100644 graphics/pokemon/illumise/front.png delete mode 100644 graphics/pokemon/infernape/front.png delete mode 100644 graphics/pokemon/inkay/front.png delete mode 100644 graphics/pokemon/ivysaur/front.png delete mode 100644 graphics/pokemon/jellicent/front.png delete mode 100644 graphics/pokemon/jigglypuff/front.png delete mode 100644 graphics/pokemon/jirachi/front.png delete mode 100644 graphics/pokemon/jolteon/front.png delete mode 100644 graphics/pokemon/joltik/front.png delete mode 100644 graphics/pokemon/jumpluff/front.png delete mode 100644 graphics/pokemon/jynx/front.png delete mode 100644 graphics/pokemon/kabuto/front.png delete mode 100644 graphics/pokemon/kabutops/front.png delete mode 100644 graphics/pokemon/kadabra/front.png delete mode 100644 graphics/pokemon/kakuna/front.png delete mode 100644 graphics/pokemon/kangaskhan/front.png delete mode 100644 graphics/pokemon/karrablast/front.png delete mode 100644 graphics/pokemon/kecleon/front.png delete mode 100644 graphics/pokemon/keldeo/front.png delete mode 100644 graphics/pokemon/kingdra/front.png delete mode 100644 graphics/pokemon/kingler/front.png delete mode 100644 graphics/pokemon/kirlia/front.png delete mode 100644 graphics/pokemon/klang/front.png delete mode 100644 graphics/pokemon/klefki/front.png delete mode 100644 graphics/pokemon/klink/front.png delete mode 100644 graphics/pokemon/klinklang/front.png delete mode 100644 graphics/pokemon/koffing/front.png delete mode 100644 graphics/pokemon/krabby/front.png delete mode 100644 graphics/pokemon/kricketot/front.png delete mode 100644 graphics/pokemon/kricketune/front.png delete mode 100644 graphics/pokemon/krokorok/front.png delete mode 100644 graphics/pokemon/krookodile/front.png delete mode 100644 graphics/pokemon/kyogre/front.png delete mode 100644 graphics/pokemon/kyurem/black/front.png delete mode 100644 graphics/pokemon/kyurem/front.png delete mode 100644 graphics/pokemon/kyurem/white/front.png delete mode 100644 graphics/pokemon/lairon/front.png delete mode 100644 graphics/pokemon/lampent/front.png delete mode 100644 graphics/pokemon/landorus/front.png delete mode 100644 graphics/pokemon/landorus/therian/front.png delete mode 100644 graphics/pokemon/lanturn/front.png delete mode 100644 graphics/pokemon/lapras/front.png delete mode 100644 graphics/pokemon/larvesta/front.png delete mode 100644 graphics/pokemon/larvitar/front.png delete mode 100644 graphics/pokemon/latias/front.png delete mode 100644 graphics/pokemon/latios/front.png delete mode 100644 graphics/pokemon/leafeon/front.png delete mode 100644 graphics/pokemon/leavanny/front.png delete mode 100644 graphics/pokemon/ledian/front.png delete mode 100644 graphics/pokemon/ledyba/front.png delete mode 100644 graphics/pokemon/lickilicky/front.png delete mode 100644 graphics/pokemon/lickitung/front.png delete mode 100644 graphics/pokemon/liepard/front.png delete mode 100644 graphics/pokemon/lileep/front.png delete mode 100644 graphics/pokemon/lilligant/front.png delete mode 100644 graphics/pokemon/lillipup/front.png delete mode 100644 graphics/pokemon/linoone/front.png delete mode 100644 graphics/pokemon/litleo/front.png delete mode 100644 graphics/pokemon/litwick/front.png delete mode 100644 graphics/pokemon/lombre/front.png delete mode 100644 graphics/pokemon/lopunny/front.png delete mode 100644 graphics/pokemon/lotad/front.png delete mode 100644 graphics/pokemon/loudred/front.png delete mode 100644 graphics/pokemon/lucario/front.png delete mode 100644 graphics/pokemon/ludicolo/front.png delete mode 100644 graphics/pokemon/lugia/front.png delete mode 100644 graphics/pokemon/lumineon/front.png delete mode 100644 graphics/pokemon/lunatone/front.png delete mode 100644 graphics/pokemon/luvdisc/front.png delete mode 100644 graphics/pokemon/luxio/front.png delete mode 100644 graphics/pokemon/luxray/front.png delete mode 100644 graphics/pokemon/machamp/front.png delete mode 100644 graphics/pokemon/machoke/front.png delete mode 100644 graphics/pokemon/machop/front.png delete mode 100644 graphics/pokemon/magby/front.png delete mode 100644 graphics/pokemon/magcargo/front.png delete mode 100644 graphics/pokemon/magikarp/front.png delete mode 100644 graphics/pokemon/magmar/front.png delete mode 100644 graphics/pokemon/magmortar/front.png delete mode 100644 graphics/pokemon/magnemite/front.png delete mode 100644 graphics/pokemon/magneton/front.png delete mode 100644 graphics/pokemon/magnezone/front.png delete mode 100644 graphics/pokemon/makuhita/front.png delete mode 100644 graphics/pokemon/malamar/front.png delete mode 100644 graphics/pokemon/mamoswine/front.png delete mode 100644 graphics/pokemon/manaphy/front.png delete mode 100644 graphics/pokemon/mandibuzz/front.png delete mode 100644 graphics/pokemon/manectric/front.png delete mode 100644 graphics/pokemon/mankey/front.png delete mode 100644 graphics/pokemon/mantine/front.png delete mode 100644 graphics/pokemon/mantyke/front.png delete mode 100644 graphics/pokemon/maractus/front.png delete mode 100644 graphics/pokemon/mareep/front.png delete mode 100644 graphics/pokemon/marill/front.png delete mode 100644 graphics/pokemon/marowak/front.png delete mode 100644 graphics/pokemon/marshadow/front.png delete mode 100644 graphics/pokemon/marshtomp/front.png delete mode 100644 graphics/pokemon/masquerain/front.png delete mode 100644 graphics/pokemon/mawile/front.png delete mode 100644 graphics/pokemon/medicham/front.png delete mode 100644 graphics/pokemon/meditite/front.png delete mode 100644 graphics/pokemon/meganium/front.png delete mode 100644 graphics/pokemon/meloetta/front.png delete mode 100644 graphics/pokemon/meowstic/female/front.png delete mode 100644 graphics/pokemon/meowstic/front.png delete mode 100644 graphics/pokemon/meowth/front.png delete mode 100644 graphics/pokemon/mesprit/front.png delete mode 100644 graphics/pokemon/metagross/front.png delete mode 100644 graphics/pokemon/metang/front.png delete mode 100644 graphics/pokemon/metapod/front.png delete mode 100644 graphics/pokemon/mew/front.png delete mode 100644 graphics/pokemon/mewtwo/front.png delete mode 100644 graphics/pokemon/mienfoo/front.png delete mode 100644 graphics/pokemon/mienshao/front.png delete mode 100644 graphics/pokemon/mightyena/front.png delete mode 100644 graphics/pokemon/milotic/front.png delete mode 100644 graphics/pokemon/miltank/front.png delete mode 100644 graphics/pokemon/mime_jr/front.png delete mode 100644 graphics/pokemon/minccino/front.png delete mode 100644 graphics/pokemon/minun/front.png delete mode 100644 graphics/pokemon/misdreavus/front.png delete mode 100644 graphics/pokemon/mismagius/front.png delete mode 100644 graphics/pokemon/moltres/front.png delete mode 100644 graphics/pokemon/monferno/front.png delete mode 100644 graphics/pokemon/mothim/front.png delete mode 100644 graphics/pokemon/mr_mime/front.png delete mode 100644 graphics/pokemon/mudkip/front.png delete mode 100644 graphics/pokemon/muk/front.png delete mode 100644 graphics/pokemon/munchlax/front.png delete mode 100644 graphics/pokemon/munna/front.png delete mode 100644 graphics/pokemon/murkrow/front.png delete mode 100644 graphics/pokemon/musharna/front.png delete mode 100644 graphics/pokemon/natu/front.png delete mode 100644 graphics/pokemon/nidoking/front.png delete mode 100644 graphics/pokemon/nidoqueen/front.png delete mode 100644 graphics/pokemon/nidoran_f/front.png delete mode 100644 graphics/pokemon/nidoran_m/front.png delete mode 100644 graphics/pokemon/nidorina/front.png delete mode 100644 graphics/pokemon/nidorino/front.png delete mode 100644 graphics/pokemon/nincada/front.png delete mode 100644 graphics/pokemon/ninetales/front.png delete mode 100644 graphics/pokemon/ninjask/front.png delete mode 100644 graphics/pokemon/noctowl/front.png delete mode 100644 graphics/pokemon/noibat/front.png delete mode 100644 graphics/pokemon/noivern/front.png delete mode 100644 graphics/pokemon/nosepass/front.png delete mode 100644 graphics/pokemon/numel/front.png delete mode 100644 graphics/pokemon/nuzleaf/front.png delete mode 100644 graphics/pokemon/octillery/front.png delete mode 100644 graphics/pokemon/oddish/front.png delete mode 100644 graphics/pokemon/omanyte/front.png delete mode 100644 graphics/pokemon/omastar/front.png delete mode 100644 graphics/pokemon/onix/front.png delete mode 100644 graphics/pokemon/oshawott/front.png delete mode 100644 graphics/pokemon/pachirisu/front.png delete mode 100644 graphics/pokemon/palkia/front.png delete mode 100644 graphics/pokemon/palpitoad/front.png delete mode 100644 graphics/pokemon/pancham/front.png delete mode 100644 graphics/pokemon/pangoro/front.png delete mode 100644 graphics/pokemon/panpour/front.png delete mode 100644 graphics/pokemon/pansage/front.png delete mode 100644 graphics/pokemon/pansear/front.png delete mode 100644 graphics/pokemon/paras/front.png delete mode 100644 graphics/pokemon/parasect/front.png delete mode 100644 graphics/pokemon/patrat/front.png delete mode 100644 graphics/pokemon/pawniard/front.png delete mode 100644 graphics/pokemon/pelipper/front.png delete mode 100644 graphics/pokemon/persian/front.png delete mode 100644 graphics/pokemon/petilil/front.png delete mode 100644 graphics/pokemon/phanpy/front.png delete mode 100644 graphics/pokemon/phantump/front.png delete mode 100644 graphics/pokemon/phione/front.png delete mode 100644 graphics/pokemon/pichu/front.png delete mode 100644 graphics/pokemon/pidgeot/front.png delete mode 100644 graphics/pokemon/pidgeotto/front.png delete mode 100644 graphics/pokemon/pidgey/front.png delete mode 100644 graphics/pokemon/pidove/front.png delete mode 100644 graphics/pokemon/pignite/front.png delete mode 100644 graphics/pokemon/pikachu/front.png delete mode 100644 graphics/pokemon/piloswine/front.png delete mode 100644 graphics/pokemon/pineco/front.png delete mode 100644 graphics/pokemon/pinsir/front.png delete mode 100644 graphics/pokemon/piplup/front.png delete mode 100644 graphics/pokemon/plusle/front.png delete mode 100644 graphics/pokemon/politoed/front.png delete mode 100644 graphics/pokemon/poliwag/front.png delete mode 100644 graphics/pokemon/poliwhirl/front.png delete mode 100644 graphics/pokemon/poliwrath/front.png delete mode 100644 graphics/pokemon/ponyta/front.png delete mode 100644 graphics/pokemon/poochyena/front.png delete mode 100644 graphics/pokemon/porygon/front.png delete mode 100644 graphics/pokemon/porygon2/front.png delete mode 100644 graphics/pokemon/porygon_z/front.png delete mode 100644 graphics/pokemon/primeape/front.png delete mode 100644 graphics/pokemon/prinplup/front.png delete mode 100644 graphics/pokemon/probopass/front.png delete mode 100644 graphics/pokemon/psyduck/front.png delete mode 100644 graphics/pokemon/pumpkaboo/front.png delete mode 100644 graphics/pokemon/pumpkaboo/large/front.png delete mode 100644 graphics/pokemon/pumpkaboo/small/front.png delete mode 100644 graphics/pokemon/pumpkaboo/super/front.png delete mode 100644 graphics/pokemon/pupitar/front.png delete mode 100644 graphics/pokemon/purrloin/front.png delete mode 100644 graphics/pokemon/purugly/front.png delete mode 100644 graphics/pokemon/pyroar/front.png delete mode 100644 graphics/pokemon/quagsire/front.png delete mode 100644 graphics/pokemon/question_mark/circled/front.png delete mode 100644 graphics/pokemon/question_mark/double/front.png delete mode 100644 graphics/pokemon/quilava/front.png delete mode 100644 graphics/pokemon/quilladin/front.png delete mode 100644 graphics/pokemon/qwilfish/front.png delete mode 100644 graphics/pokemon/raichu/front.png delete mode 100644 graphics/pokemon/raikou/front.png delete mode 100644 graphics/pokemon/ralts/front.png delete mode 100644 graphics/pokemon/rampardos/front.png delete mode 100644 graphics/pokemon/rapidash/front.png delete mode 100644 graphics/pokemon/raticate/front.png delete mode 100644 graphics/pokemon/rattata/front.png delete mode 100644 graphics/pokemon/rayquaza/front.png delete mode 100644 graphics/pokemon/regice/front.png delete mode 100644 graphics/pokemon/regigigas/front.png delete mode 100644 graphics/pokemon/regirock/front.png delete mode 100644 graphics/pokemon/registeel/front.png delete mode 100644 graphics/pokemon/relicanth/front.png delete mode 100644 graphics/pokemon/remoraid/front.png delete mode 100644 graphics/pokemon/reshiram/front.png delete mode 100644 graphics/pokemon/reuniclus/front.png delete mode 100644 graphics/pokemon/rhydon/front.png delete mode 100644 graphics/pokemon/rhyhorn/front.png delete mode 100644 graphics/pokemon/rhyperior/front.png delete mode 100644 graphics/pokemon/riolu/front.png delete mode 100644 graphics/pokemon/roggenrola/front.png delete mode 100644 graphics/pokemon/roselia/front.png delete mode 100644 graphics/pokemon/roserade/front.png delete mode 100644 graphics/pokemon/rotom/fan/front.png delete mode 100644 graphics/pokemon/rotom/front.png delete mode 100644 graphics/pokemon/rotom/frost/front.png delete mode 100644 graphics/pokemon/rotom/heat/front.png delete mode 100644 graphics/pokemon/rotom/mow/front.png delete mode 100644 graphics/pokemon/rotom/wash/front.png delete mode 100644 graphics/pokemon/rufflet/front.png delete mode 100644 graphics/pokemon/sableye/front.png delete mode 100644 graphics/pokemon/salamence/front.png delete mode 100644 graphics/pokemon/samurott/front.png delete mode 100644 graphics/pokemon/sandile/front.png delete mode 100644 graphics/pokemon/sandshrew/front.png delete mode 100644 graphics/pokemon/sandslash/front.png delete mode 100644 graphics/pokemon/sawk/front.png delete mode 100644 graphics/pokemon/sawsbuck/front.png delete mode 100644 graphics/pokemon/scatterbug/front.png delete mode 100644 graphics/pokemon/sceptile/front.png delete mode 100644 graphics/pokemon/scizor/front.png delete mode 100644 graphics/pokemon/scolipede/front.png delete mode 100644 graphics/pokemon/scrafty/front.png delete mode 100644 graphics/pokemon/scraggy/front.png delete mode 100644 graphics/pokemon/scyther/front.png delete mode 100644 graphics/pokemon/seadra/front.png delete mode 100644 graphics/pokemon/seaking/front.png delete mode 100644 graphics/pokemon/sealeo/front.png delete mode 100644 graphics/pokemon/seedot/front.png delete mode 100644 graphics/pokemon/seel/front.png delete mode 100644 graphics/pokemon/seismitoad/front.png delete mode 100644 graphics/pokemon/sentret/front.png delete mode 100644 graphics/pokemon/serperior/front.png delete mode 100644 graphics/pokemon/servine/front.png delete mode 100644 graphics/pokemon/seviper/front.png delete mode 100644 graphics/pokemon/sewaddle/front.png delete mode 100644 graphics/pokemon/sharpedo/front.png delete mode 100644 graphics/pokemon/shaymin/front.png delete mode 100644 graphics/pokemon/shaymin/sky/front.png delete mode 100644 graphics/pokemon/shedinja/front.png delete mode 100644 graphics/pokemon/shelgon/front.png delete mode 100644 graphics/pokemon/shellder/front.png delete mode 100644 graphics/pokemon/shellos/east_sea/front.png delete mode 100644 graphics/pokemon/shellos/front.png delete mode 100644 graphics/pokemon/shelmet/front.png delete mode 100644 graphics/pokemon/shieldon/front.png delete mode 100644 graphics/pokemon/shiftry/front.png delete mode 100644 graphics/pokemon/shinx/front.png delete mode 100644 graphics/pokemon/shroomish/front.png delete mode 100644 graphics/pokemon/shuckle/front.png delete mode 100644 graphics/pokemon/shuppet/front.png delete mode 100644 graphics/pokemon/sigilyph/front.png delete mode 100644 graphics/pokemon/silcoon/front.png delete mode 100644 graphics/pokemon/simipour/front.png delete mode 100644 graphics/pokemon/simisage/front.png delete mode 100644 graphics/pokemon/simisear/front.png delete mode 100644 graphics/pokemon/skarmory/front.png delete mode 100644 graphics/pokemon/skiddo/front.png delete mode 100644 graphics/pokemon/skiploom/front.png delete mode 100644 graphics/pokemon/skitty/front.png delete mode 100644 graphics/pokemon/skorupi/front.png delete mode 100644 graphics/pokemon/skrelp/front.png delete mode 100644 graphics/pokemon/skuntank/front.png delete mode 100644 graphics/pokemon/slaking/front.png delete mode 100644 graphics/pokemon/slakoth/front.png delete mode 100644 graphics/pokemon/sliggoo/front.png delete mode 100644 graphics/pokemon/slowbro/front.png delete mode 100644 graphics/pokemon/slowking/front.png delete mode 100644 graphics/pokemon/slowpoke/front.png delete mode 100644 graphics/pokemon/slugma/front.png delete mode 100644 graphics/pokemon/slurpuff/front.png delete mode 100644 graphics/pokemon/smeargle/front.png delete mode 100644 graphics/pokemon/smoochum/front.png delete mode 100644 graphics/pokemon/sneasel/front.png delete mode 100644 graphics/pokemon/snivy/front.png delete mode 100644 graphics/pokemon/snorlax/front.png delete mode 100644 graphics/pokemon/snorunt/front.png delete mode 100644 graphics/pokemon/snover/front.png delete mode 100644 graphics/pokemon/snubbull/front.png delete mode 100644 graphics/pokemon/solosis/front.png delete mode 100644 graphics/pokemon/solrock/front.png delete mode 100644 graphics/pokemon/spearow/front.png delete mode 100644 graphics/pokemon/spewpa/front.png delete mode 100644 graphics/pokemon/spheal/front.png delete mode 100644 graphics/pokemon/spinarak/front.png delete mode 100644 graphics/pokemon/spinda/front.png delete mode 100644 graphics/pokemon/spiritomb/front.png delete mode 100644 graphics/pokemon/spoink/front.png delete mode 100644 graphics/pokemon/spritzee/front.png delete mode 100644 graphics/pokemon/squirtle/front.png delete mode 100644 graphics/pokemon/stantler/front.png delete mode 100644 graphics/pokemon/staraptor/front.png delete mode 100644 graphics/pokemon/staravia/front.png delete mode 100644 graphics/pokemon/starly/front.png delete mode 100644 graphics/pokemon/starmie/front.png delete mode 100644 graphics/pokemon/staryu/front.png delete mode 100644 graphics/pokemon/steelix/front.png delete mode 100644 graphics/pokemon/stoutland/front.png delete mode 100644 graphics/pokemon/stunfisk/front.png delete mode 100644 graphics/pokemon/stunky/front.png delete mode 100644 graphics/pokemon/sudowoodo/front.png delete mode 100644 graphics/pokemon/suicune/front.png delete mode 100644 graphics/pokemon/sunflora/front.png delete mode 100644 graphics/pokemon/sunkern/front.png delete mode 100644 graphics/pokemon/surskit/front.png delete mode 100644 graphics/pokemon/swablu/front.png delete mode 100644 graphics/pokemon/swadloon/front.png delete mode 100644 graphics/pokemon/swalot/front.png delete mode 100644 graphics/pokemon/swampert/front.png delete mode 100644 graphics/pokemon/swanna/front.png delete mode 100644 graphics/pokemon/swellow/front.png delete mode 100644 graphics/pokemon/swinub/front.png delete mode 100644 graphics/pokemon/swirlix/front.png delete mode 100644 graphics/pokemon/swoobat/front.png delete mode 100644 graphics/pokemon/sylveon/front.png delete mode 100644 graphics/pokemon/taillow/front.png delete mode 100644 graphics/pokemon/talonflame/front.png delete mode 100644 graphics/pokemon/tangela/front.png delete mode 100644 graphics/pokemon/tangrowth/front.png delete mode 100644 graphics/pokemon/tapu_bulu/front.png delete mode 100644 graphics/pokemon/tapu_fini/front.png delete mode 100644 graphics/pokemon/tapu_koko/front.png delete mode 100644 graphics/pokemon/tapu_lele/front.png delete mode 100644 graphics/pokemon/tauros/front.png delete mode 100644 graphics/pokemon/teddiursa/front.png delete mode 100644 graphics/pokemon/tentacool/front.png delete mode 100644 graphics/pokemon/tentacruel/front.png delete mode 100644 graphics/pokemon/tepig/front.png delete mode 100644 graphics/pokemon/terrakion/front.png delete mode 100644 graphics/pokemon/throh/front.png delete mode 100644 graphics/pokemon/thundurus/front.png delete mode 100644 graphics/pokemon/thundurus/therian/front.png delete mode 100644 graphics/pokemon/timburr/front.png delete mode 100644 graphics/pokemon/tirtouga/front.png delete mode 100644 graphics/pokemon/togekiss/front.png delete mode 100644 graphics/pokemon/togepi/front.png delete mode 100644 graphics/pokemon/togetic/front.png delete mode 100644 graphics/pokemon/torchic/front.png delete mode 100644 graphics/pokemon/torkoal/front.png delete mode 100644 graphics/pokemon/tornadus/front.png delete mode 100644 graphics/pokemon/tornadus/therian/front.png delete mode 100644 graphics/pokemon/torterra/front.png delete mode 100644 graphics/pokemon/totodile/front.png delete mode 100644 graphics/pokemon/toxicroak/front.png delete mode 100644 graphics/pokemon/tranquill/front.png delete mode 100644 graphics/pokemon/trapinch/front.png delete mode 100644 graphics/pokemon/treecko/front.png delete mode 100644 graphics/pokemon/trevenant/front.png delete mode 100644 graphics/pokemon/tropius/front.png delete mode 100644 graphics/pokemon/trubbish/front.png delete mode 100644 graphics/pokemon/turtwig/front.png delete mode 100644 graphics/pokemon/tympole/front.png delete mode 100644 graphics/pokemon/tynamo/front.png delete mode 100644 graphics/pokemon/typhlosion/front.png delete mode 100644 graphics/pokemon/tyranitar/front.png delete mode 100644 graphics/pokemon/tyrantrum/front.png delete mode 100644 graphics/pokemon/tyrogue/front.png delete mode 100644 graphics/pokemon/tyrunt/front.png delete mode 100644 graphics/pokemon/umbreon/front.png delete mode 100644 graphics/pokemon/unfezant/front.png delete mode 100644 graphics/pokemon/unown/b/front.png delete mode 100644 graphics/pokemon/unown/c/front.png delete mode 100644 graphics/pokemon/unown/d/front.png delete mode 100644 graphics/pokemon/unown/e/front.png delete mode 100644 graphics/pokemon/unown/exclamation_mark/front.png delete mode 100644 graphics/pokemon/unown/f/front.png delete mode 100644 graphics/pokemon/unown/front.png delete mode 100644 graphics/pokemon/unown/g/front.png delete mode 100644 graphics/pokemon/unown/h/front.png delete mode 100644 graphics/pokemon/unown/i/front.png delete mode 100644 graphics/pokemon/unown/j/front.png delete mode 100644 graphics/pokemon/unown/k/front.png delete mode 100644 graphics/pokemon/unown/l/front.png delete mode 100644 graphics/pokemon/unown/m/front.png delete mode 100644 graphics/pokemon/unown/n/front.png delete mode 100644 graphics/pokemon/unown/o/front.png delete mode 100644 graphics/pokemon/unown/p/front.png delete mode 100644 graphics/pokemon/unown/q/front.png delete mode 100644 graphics/pokemon/unown/question_mark/front.png delete mode 100644 graphics/pokemon/unown/r/front.png delete mode 100644 graphics/pokemon/unown/s/front.png delete mode 100644 graphics/pokemon/unown/t/front.png delete mode 100644 graphics/pokemon/unown/u/front.png delete mode 100644 graphics/pokemon/unown/v/front.png delete mode 100644 graphics/pokemon/unown/w/front.png delete mode 100644 graphics/pokemon/unown/x/front.png delete mode 100644 graphics/pokemon/unown/y/front.png delete mode 100644 graphics/pokemon/unown/z/front.png delete mode 100644 graphics/pokemon/ursaring/front.png delete mode 100644 graphics/pokemon/uxie/front.png delete mode 100644 graphics/pokemon/vanillish/front.png delete mode 100644 graphics/pokemon/vanillite/front.png delete mode 100644 graphics/pokemon/vanilluxe/front.png delete mode 100644 graphics/pokemon/vaporeon/front.png delete mode 100644 graphics/pokemon/venipede/front.png delete mode 100644 graphics/pokemon/venomoth/front.png delete mode 100644 graphics/pokemon/venonat/front.png delete mode 100644 graphics/pokemon/venusaur/front.png delete mode 100644 graphics/pokemon/vespiquen/front.png delete mode 100644 graphics/pokemon/vibrava/front.png delete mode 100644 graphics/pokemon/victini/front.png delete mode 100644 graphics/pokemon/victreebel/front.png delete mode 100644 graphics/pokemon/vigoroth/front.png delete mode 100644 graphics/pokemon/vileplume/front.png delete mode 100644 graphics/pokemon/virizion/front.png delete mode 100644 graphics/pokemon/vivillon/archipelago/front.png delete mode 100644 graphics/pokemon/vivillon/continental/front.png delete mode 100644 graphics/pokemon/vivillon/elegant/front.png delete mode 100644 graphics/pokemon/vivillon/fancy/front.png delete mode 100644 graphics/pokemon/vivillon/front.png delete mode 100644 graphics/pokemon/vivillon/garden/front.png delete mode 100644 graphics/pokemon/vivillon/high_plains/front.png delete mode 100644 graphics/pokemon/vivillon/jungle/front.png delete mode 100644 graphics/pokemon/vivillon/marine/front.png delete mode 100644 graphics/pokemon/vivillon/meadow/front.png delete mode 100644 graphics/pokemon/vivillon/modern/front.png delete mode 100644 graphics/pokemon/vivillon/monsoon/front.png delete mode 100644 graphics/pokemon/vivillon/ocean/front.png delete mode 100644 graphics/pokemon/vivillon/poke_ball/front.png delete mode 100644 graphics/pokemon/vivillon/polar/front.png delete mode 100644 graphics/pokemon/vivillon/river/front.png delete mode 100644 graphics/pokemon/vivillon/sandstorm/front.png delete mode 100644 graphics/pokemon/vivillon/savanna/front.png delete mode 100644 graphics/pokemon/vivillon/sun/front.png delete mode 100644 graphics/pokemon/vivillon/tundra/front.png delete mode 100644 graphics/pokemon/volbeat/front.png delete mode 100644 graphics/pokemon/volcanion/front.png delete mode 100644 graphics/pokemon/volcarona/front.png delete mode 100644 graphics/pokemon/voltorb/front.png delete mode 100644 graphics/pokemon/vullaby/front.png delete mode 100644 graphics/pokemon/vulpix/front.png delete mode 100644 graphics/pokemon/wailmer/front.png delete mode 100644 graphics/pokemon/wailord/front.png delete mode 100644 graphics/pokemon/walrein/front.png delete mode 100644 graphics/pokemon/wartortle/front.png delete mode 100644 graphics/pokemon/watchog/front.png delete mode 100644 graphics/pokemon/weavile/front.png delete mode 100644 graphics/pokemon/weedle/front.png delete mode 100644 graphics/pokemon/weepinbell/front.png delete mode 100644 graphics/pokemon/weezing/front.png delete mode 100644 graphics/pokemon/whimsicott/front.png delete mode 100644 graphics/pokemon/whirlipede/front.png delete mode 100644 graphics/pokemon/whiscash/front.png delete mode 100644 graphics/pokemon/whismur/front.png delete mode 100644 graphics/pokemon/wigglytuff/front.png delete mode 100644 graphics/pokemon/wingull/front.png delete mode 100644 graphics/pokemon/wobbuffet/front.png delete mode 100644 graphics/pokemon/woobat/front.png delete mode 100644 graphics/pokemon/wooper/front.png delete mode 100644 graphics/pokemon/wormadam/front.png delete mode 100644 graphics/pokemon/wormadam/sandy_cloak/front.png delete mode 100644 graphics/pokemon/wormadam/trash_cloak/front.png delete mode 100644 graphics/pokemon/wurmple/front.png delete mode 100644 graphics/pokemon/wynaut/front.png delete mode 100644 graphics/pokemon/xatu/front.png delete mode 100644 graphics/pokemon/xerneas/active/front.png delete mode 100644 graphics/pokemon/yamask/front.png delete mode 100644 graphics/pokemon/yanma/front.png delete mode 100644 graphics/pokemon/yanmega/front.png delete mode 100644 graphics/pokemon/yveltal/front.png delete mode 100644 graphics/pokemon/zangoose/front.png delete mode 100644 graphics/pokemon/zapdos/front.png delete mode 100644 graphics/pokemon/zebstrika/front.png delete mode 100644 graphics/pokemon/zekrom/front.png delete mode 100644 graphics/pokemon/zigzagoon/front.png delete mode 100644 graphics/pokemon/zoroark/front.png delete mode 100644 graphics/pokemon/zorua/front.png delete mode 100644 graphics/pokemon/zubat/front.png delete mode 100644 graphics/pokemon/zweilous/front.png delete mode 100644 graphics/pokemon/zygarde/10_percent/front.png delete mode 100644 graphics/pokemon/zygarde/complete/front.png delete mode 100644 graphics/pokemon/zygarde/front.png diff --git a/graphics/pokemon/abomasnow/front.png b/graphics/pokemon/abomasnow/front.png deleted file mode 100644 index eec72b6476714d1e0606024f2a509c454a32b482..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1055 zcmV+)1mOFLP)9o#F_PvKqI(3uc+H zNi2dMfE6fXS9wH0>Wi!c1cl%SvJ`88x1Wj7fLIz}5(EJOjLd(*x`B6(luf0zv`=Tr zjF>s(`_qFe-aUSM0M!FJ%N|G?c>H%=eEItAL1DyBz^nrp!sF||*KePm6jo+iZ~}zR zCc*pr&#<|F!YYXdz`{s6R{8#kGX3+PJi(|_kAP{7U>8yhqrU2Z&;r&<uwNS}b}}CU39fY?jqyO} zipyb=8jw(Q0EH?bmU0*)=DU)#2Ln*3YgLUxI4sZ09atX)>|u}bs0{j;Wev&#YL7cv zjT}&n^EDOEB(bB0*EB%Rgb$u%O!wCUbzM?NFq$msviQ*n0BMg=m!_Z*J(if?Kc<}X zW09!S01eH8FSxzl-vb7s$#*k9^}YWA$OFzjSER!fUY_hPbrN&eb&n2M12@6Zej8}u z&UH`EU%LCZJ)qQ0@X7#O@DqSR(8XvPx|N8#J68xdIsw7}dUzFGd&Kr`lml*s2<)&E zE5uc+0q@kX3j!{?3!;HHZ98{|?}&>(^fq$b8X$GsmXGF|eIUSnL)y0eK*8N##$)d= zT^2gHTQqf2IopWRN#z49hdZSiym-9{>Mi9ai-MMr+ zemc&9MkDol9XazeF$S1O`Lgq>W#RF3oC8&5&ii~gqy2oGgbow+FgbbdT|HdOp8@P7 Z{s%K!sBYKLaJv8i002ovPDHLkV1ip1;79-f diff --git a/graphics/pokemon/abra/front.png b/graphics/pokemon/abra/front.png deleted file mode 100644 index 0880fbb48e8abee9b1f5371d6cb5c0da7731d493..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 635 zcmV->0)+jEP)Px#Fi=cXMVQc_SU3oHU>N`ADOx!Q&AlM@_N1tY7_5US5D*Z9VhGT%P_Uqw00000 z0000003H!9f&c&k`AI}UR9J=WR?%|9FbE5_2`2mh|DA-BwAs>b9iI&mxdJO9ffT8=w)B2dDnpAX9&?JIR*PLD3h+8-394y*1n@n9pAKL|pK}5z z;jn*C3IKr~2vld!5lm8#1d=7NBVM&637(Hof*~gXCny`<^%_C-1K#ok>H{ApcsdJk zF*1QSwJWV?vS+~DTdodQ5omyUCfvREG)3#~DBziJUpgYk(12OM0C4kV;kPBlKu~MW z$Ks9eAWBJqapqJ`WCKMyk!}Y0I0~@oLL3AwI;t&F{)abv?l>F)NgSnABy#x&37hA! z1UE{lK_HKYkoO!|DNp#dmn_bqYfI_dq83|^>caZvji95Vv30=X^C^X~Uu1X{t3?7L zu|EdOkT67@FtFvY7_aeJ1Pb`I*3E_b#Bkz-(6qRBVzp9?ufs{l{kUuR>ix`1QfOF* zRaDd91O^O#QkU zm5xz&F2M_Hb}tsr65mDxCv>KDl zahLE8CqSWX_!k7z?^eNb{^%YA>wl%1xf`~^_d(zR&)+RX$|~{_oXBgiJMQ>Ud;`Bc V5mG14{Br;R002ovPDHLkV1n`m6GH$1 diff --git a/graphics/pokemon/absol/front.png b/graphics/pokemon/absol/front.png deleted file mode 100644 index 0026dd2744c458f2bada1dacfaeaaae48c600665..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 903 zcmV;219<$2P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_Fi3D1AUJ4vut->d5D*Z6kg)jp_*h_g zsIcJ3;P`krIM6si;E0d_000000C3OUCIA2c32;bRa{vGi!vFvd!vV){sAK>D0^mtR zK~zY`&6K}y(?Ar*uaS(hUeX8wOXDO+MJ(yLVovK0l^9%t3#^dm7`z9a!PjNppMu9gD(k{UINqTjp?iD4q3Ngvjxh9bT;ry($r^G@u9 zR!qV6rc#WWMppo84p=Dyek5s8skSE#YW7(v$^nK6P+9`YPTTC$XQ6)(1Bymzg-BMg z=jw|Pn1j(nL}}5?Y&0G+F;G9u0jx93Q=!?>+4^}mSD$nMzzj>FR5E_@>6faOK3*VT z_sANcc>eNGfBt)W4F2@WD|(-^?RVcXrnjhWgAd}nE3SqafQz!GAF@^m^lZ6liwHt& zYr4)VHrN1Ttk_^x!o76QkLr5MMj(J-y6kEap(9+Xw>XS_2)H#{_9QX0YxX&Z03!tW zsTjl0Bx#sfW$=B>079bQ%~s09MuKlI0Dv5z2+@x`3t+ej2x9*v2N3ft27*Xrl3z8` zO#oiR-#nniz&Nms7${_bu?dqf1>Z9WeoWV>W<;=v3t$uiPM78Zcn@9#C@^uH-YS4` zZA^b00mW+vEeCM8o}jp8gx$*lU%*$O6IgH;0z|R0fIIhz&Hd3#EC#;gthA#j<_6)! z8r_P~TEG>3H5B&DWE{N}0EhA%SHbd9Ky{wJHDm#Cfsd9odL55rfp$x8((U0ChcLvs zf>%upRN5_`07~;Q3M3ElPAEp3lVpLn9>Giogcr#!6DVspyE8)qGE0HCV0|wgkm#Pd zSuJ9f*A7y_x)9$$y659)C#k={j-h^BT?OQX3e8=p9`W1-lbTZE{8fYS%>cTT2KkE_ dIA~~qz*t~_xVXsp`1k+-00000u>SKj0006s zNkl7$U_)=bLBYB^#%Fe2mrj9UB3aCh-dGz zF2vGi@sa$6c$f$a&|d<47W6auejZrC8omm0fyeW}kNXXXX8;Gzr|d7+6mbb-a4o>M zHAQ#;_s#;Wo}wy(JBH2_1G(J;QM3^TfDRxP?mt(beu4o!7`Jqdm^Ur%-H90jc*|gj z*ccE{4FND}J!eTkdIEf)&h@c@(Hn>UlL5Rr+>Nef?K@Dd4(#f^d1~JP5>qo=rKg8> zF5H0deQI%w7$iEAMn4*`4NdsvH-~tnFx6UORb1V}E~qS6EU*fxY8 z@t3(uZ|lxIPJcq(igD#czx*i{su_**P-~5G6T<~(?oE-bcVR)cgG5(VG$H0@nX2Sz zqKj>#=d)u`xSee14 zk+&_KDYei#MluMiZ`qXz2m?BVs{KBl8iobuvP3Ju0#31l&I5LO!v9_q!R7$IZS#{2>=UMCj-CM0!S`{%^<-I_! P00000NkvXXu0mjfHoh}U diff --git a/graphics/pokemon/aegislash/blade/front.png b/graphics/pokemon/aegislash/blade/front.png deleted file mode 100644 index 288bdf5eb07bb229b95896e4759cf4ed60d100a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 914 zcmV;D18w|?P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_NH{R);D8Vi5cv4`kbqFIpjapD0_#ac zK~zY`rPaT0+CUTsa3c>{W2Z8U6A8CKM=KX%N}UdoI&@8%4&59p7j-OF^HRy4GQ@0M zs?ssaP^nwj4wWnhmSaF2Sh%6e7|DM_-}wg+FfhamhWq$^-`&9>&0m|+>Z|nhvEa#C zV3@0cx(3LH>%i+ZKs`Eg9|synbv4*q14?g?YVVeJsYtSsfYOp3Q#a*mm7bZBx}=C& zkqIFUv$Sk2)UCZk!#F0p%fPPs3;{jctt|yrjG*qRTMXoV$7f|Klg4?Tb{WPAgZ=5Y9AZ7X}yI2 z@zVOGC@p+;17I#B3zct9P7r|4dH+F3UJ=3ZZxeXLIUmD=0y&`W?FQ#VMHz6uxsZ^8 z0H0PXiq3~K2{Yiw7$7n#MrC_iVlpWKf)P%ktr~{I|IW7{fW=3^eL$dYkIe#LZ;yfz z9~vS=DF7}Xjs{rcq7GEgGqA@Qpq4Sjw*n4>MbHwUjum_x=Nc3M%^s_U&LG0Y;1Fb8 zS~K7P7g1-d7mPu)QUnac)gx;(f}jsUF)&;U1^|BFW9c44x0CJFPt6vfE=GZQdImm+ z;Wsm1r{SqVfrHN&vsnf%uP?82;EolgJisr5&dSOZK*vm%fx29yWn80n9ojWzOUfc3 zOo2w-fkp!{1KbR%_Y&{|w|4^Q!B7CdZ`7!kf#x+_CIBZvsXbOK2L2Y_I%x}16BAN! zLn(Dx)MI_N?@+2wK$wD-0MyodzTeZR=CCwDYIbv=(WFElz}Bde7m&NnP8fc{n>YcE z-3P)n9M1~KVe=~NUQNKxT|^keMal}Kpeewge+jt9@d(HBGhzZHB7hSUiP#bAP0o-h zNHTU}tc>U7^rxGGP6nJfoPx#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_NH{R);D8Vi5cv4`kbqFIpjapD0?SE6 zK~zY`rIj&j+dve@Wp2nCDMf)06@0BtN5wCW;?(XC=+HGS9lFUP7rHeS?JaT_E$VCv z_879c-=IUmWbh&nMuV2zP%?BV=ri=41c@bE@{n7E^?rW;_x|s6rxe$=QoU-=9t%9# z2vD;c&^7?%bQAD;1E8IqIgbO{v{4NlZUAcU&YJJbt5g+2Q=nEdF>RYP8tmLuw2~xR zod7`Ftd)78?Hry``W9McKudd$06T9rOMwPTFsJXV2gs3aeQt7qCaec6*WoXM3+^(@ zT^9%L!k6!Fe(*L}9M%YM*CcHO+z%$P_^L?y?&Zhvg?o*(<(ex3GV96L=4Jaj%eNws zVz^Gs`-DXSWy=f0c@`;%WC^w|Lmr0vd^zVmAphqrX50(+!%xbph=u&tROOsc)!SKC zH8%?>JZ(1&<3(SUDKPF9s&uE+n|Yx|>-#q{UTA~xuBLn6{?1#rUcZs?qT4Xl>IjGf zoz~}8K|qd|Oesom(V~ck@IQ)(L#768Y= zG7xlibOCTHa9c+J0N>?+o^}z29G#pWF(VoW!7@Og6ZBM^)C^}4-mC$FA@q#F%o76~ zSFESN7#^G;NFNA}E_kzq#|s3803$yK^kOdq27I7KBdOpo84&=)UOW)qoC|#HjB+K& ztrqyZT!_dKLU1lRW7*~s&_Q1A$0H_&n3%_kNb1q;SO;vnNm%M-82^y-E2|OcI^hNm2p) z{==Ro|0=E=NYv!6yacI{BzMXNp!!aGRh>Yl*l_PE#R?VWKaZa^mB7k;-~a#s07*qo IM6N<$f{(d>WdHyG diff --git a/graphics/pokemon/aerodactyl/front.png b/graphics/pokemon/aerodactyl/front.png deleted file mode 100644 index 36181a6c2647821628baa8a187460d60ceb4522b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 905 zcmV;419tq0P)Px#Fi=cXMVQc_b7F%*F=D;F-kgi9b5fL)V$H0B-VhKF`1tt9$jC8sDT5$E%{fZu zi=0R}P+abmL;wH-2T4RhR9J=WmfMn}FbqVoY(Ow1|Npt$EnzT3BxL4wwNqP_m_E_n zblsmVrSvy|-hB%Jh{5$MAS@JeC?mTuJeAz&uN;sp?B?W7{~BP2D9G_R zbH3bs&lX2+h?3{Rt5DisW|y@g-_D!~}DII~Q|*UMh@0JkFk%5Zny_#r2bo zjU4qwtGX983t~W^aCMpzM^`*CTLyM@pzL^Gh!7z2&ujn&Azlr3;d`~MJTnpfNjCcG zfYeF-eYsS3_E0T=UE1b?k*qsE$dNw+jKbem_9Fho^@aMkauxvDvlfIHMbe`F_K@%C z=>iaVR+nXAs~EszGXFp6JKveQJOF?T=>+)bfD`c8LPH9;g==B%IN$_@{$T_H_PMwR z=-4F7~4X8)~|;jMAnkC*SI@}PbZb0Agyalb%p6%O7+QktI6 z<+)58W^T6@AnR~>x%{3x)h5je>KT2&a_lLv=H{&p^IzZ0E`S{{&8WdNbM}wx$@Ffk zlC)%zX>*ezbVWyIC(FTs(gHjli$>a;RIPVv#{APZoU#%2?0G_xHh?`epN2MG2ON`c zNzv{|@Z@qCr8D5P2`R^4gOqJq%9<+sf91Ybo|z=~r6cNedhLY!h2BTcv9#f=>RSBu zlU@Lv5q_@})g!OL-I3Zf(gNiEOjeDct91V)7cbG5fJ2|+J+-@d|GOrLFPRmfhqnLT fh`PSm{#*ACzvCQxV@xm!00000NkvXXu0mjfS3#;J diff --git a/graphics/pokemon/aggron/front.png b/graphics/pokemon/aggron/front.png deleted file mode 100644 index 0d59202cac6fe3b5e7960ab4637955b5c40884a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1131 zcmV-x1eE)UP)NU=R=x`1tt9$jG3esHmu@Xu$Z0h=^!tXi!i{pfEt-P*A|g$N&HU0yY6Z00009 za7bBm000ie000ie0hKEb8vpZS9P)qXc9uA;j7few^TB^19a-%;&uSJ%YXO1XBokdJG^U zV|)f%z;ByQYJtExp9LJ=@R0c}WWbn5=SL!@AyH{T;ryQ(NfNTjr1M z4sz|1gU+9vhxsLi$i{Qo22RPIzTE;=#O+ud02ho;-V!i>lF~*djbV&d{h>Mq;7*tpG6PS80!c0!_7%YXTZE zx->;0=-~0)Q&`|es;Cr7y}CHHQwC_>JwHE%q%l^ba^3`7JB6+>KR^FR8X;Elp`1&I zb-NNc%%2~V0?bB9Q7+KvgHpNr27c$H(I{Andt=Pucw@+tA~!~ZR6=fKyXEGygSLWb zU^JIXNjYe((An29$pk=vvQ*VZRdx;=F4lkdPkm64D9iamQ7PdU7$kWEFxs#&0dxp} zxB?|-ufW;jgH~Tyyaj}knnWlyEcP+Z?lX$cP;UW=gNnkm009O~m}?;WJ!+OxwWNLx z;fjiYVXg(xL7h;~B{qS@m~t#~5X-WxP>%7}O@+FVrsjx2k-KvOmZ;(|i7P}j`>CSV z0BLed0zPUb8Fe3YB$j61@xJZ4TQ17-4+21QFxn>7UN9`@|CV#Af(ozE#1`1~y!Lc9 z8odCT94PBT@9MBsvmQkRlvS)$WjjYc7N%d0KHW2_YW*!po2Sr>_S|n__`cm0V1FVymLxecA7&2G(?m) zQV$GFI!dm@!TQlM(Ckv}=;JC@6wodV3|Pab5i0-y002ovPDHLkV1lRt2P6Oh diff --git a/graphics/pokemon/aipom/front.png b/graphics/pokemon/aipom/front.png deleted file mode 100644 index 227584fcba5155b39b249447cd50654ddb926ee1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)%N6(~`Jp=R)^mx5VcL$UBwd}>HlmRTqyo1T|;>EppOTCvDPadoT z;xzvB8S(OX!4bW6AKXrSbcA?*zBtL>b}Rsd@t3cNAC4C%+qMcO;$S&Je74jb9@>0> z+xo|3@=xXEFA!&E@FcR!)!&&q4rA; z+$=vOffddGGMtkESOY`+Mgntfnq!*k5a9dB{M^(hf!`9XfNh~~igDZHaZ`s}v_uHi z(gy2Vo|nJmlGFTWKwA%iqQ?PHRoC=N);?l!-4I}Q0`Yl6z^Vp{hJ;@Ly)qkBksF@| zhFF$`o>ydn3`e7~Y*^c2k>>By49OBKWq4+=hEuS7W-!_}Pe{`k?D`2sdW+0xHSPx#Fi=cXMVQc_a99Zc?kUy15D*X$|MskdVhB<(2-UPww1X*FSXlV@_^`03*x1-$ zU|3Kv2=q0UPXGV|B1uF+R9J=Gm)n}_AP9wnk~m51`@im9EHH=Gw3(T!*|})@sp}UI zAsvSQ^bz?jApMdcDPIxp87C=a?ay42UjV&@lCQwePwtr@-O+0kp4JM+UIyO*&WkC( zZ$JRBT*Sg2^7{sO5VE+i$-kqg36jQfr1JX)5McTsd|Pk1==$-XzYmy7$vOR4KTTir zEOa5I9{{E=JkkPp)R%HcU*_5LXMkh_%<~-t0JEeXzzFk4LerlJt|#CFVOgeWp4DB> zn_eA|J`$F-f-p^L3SCM=wPTRv(BXC9VLCpccr(hfb0$({&${{DcfLgsnoWen2$N^yN zmEb@@X?6wJ0)x0meKDB zdqFw96z{jvzTf;`@D}BtS(d{L323rnrC_-Run}din)$p?SwwKc__`wC^}-ggo$~^o zW?K=#_%(pH&p6#+FTFB$TAS7}Z5)3d31poux z3kJLsd;~NCAj(=mf?{Sa5)tqtl$2813PutrFe?oilEIA1Dg?gMPa+zgOLbK`KqBZ+ zJ18v>Tj&r41KI)Sn>?3yU|y zIx8GVPa#MQ`iuY(%OW1)UJ}<#Y zsH?c|L@m{onp#nd0SxkfcYiN*_o|#%0Py|KgV&qEux*0yjHoI(;?Pa8RJz_u9WbaU z{UL(!7qYWh{v5<^nwu;HGD^<|a+hOdGlMX&Uo{!T_!b6g!XX*~VDDfHP?O-7*RK87 a0sjF#_MWw|1T;hd0000e%4xM**=wiD87jD*y zL2l%9Q!CubbmkaZK{?ZTw`$NhMtM(&G|CX**eLfrPaI>EX|BAzhceYj7y=lZw0nK` zs7JbM(m7A=bEyn66Z5&ZZxYtE_h~*q^Tt~M4;{RddcaBA-vYcLy;q-M*{Bb{d+j=4 zdC47b_@N$n_f`6>lUY5`SW5Y8>2KLh6Zu0)|4*&XUa8;C?R~w0r6!IrKI3(1coGPx zS_4Rc4qPy0f-DX2oB$D`7ZqJ;E#VOp0O0lkqRRbJ#&Y2#K(vxUR8GM)TFFI=5+IV& z2Mqlc&^0asKh+Cxo~&3HlpHLb0raz2#3cu&S2ACaR&K3zSO9`DU_nSv zpyaSg;13X?reyc zD>32x%R!E4r`rzS-cuVdHv+#J+~KbaIb`wdxcKtk@FUS5yFwfn2ztGvX;-OBeqbZP zh$vWCN?lCpfN`7Lo{BL$64e83mW~|QE}cbg^_#JtToc!3$H$j7D>v8Fe}(LmY)6%` QfdBvi07*qoM6N<$f-Y`fxc~qF diff --git a/graphics/pokemon/amaura/front.png b/graphics/pokemon/amaura/front.png deleted file mode 100644 index c9dbac51806a800a2b1ce0c2e8dbc076c0e1bd21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)C(lJZJKokJrH-xt93n7S32_?HdN*$YW z28=j{bZn{|c5^BH0TJ9q3Ki{uhwfnW+Wjn~j~JE-}q=X3AzJdP8W5jO)=7LJXl4z03mCEiD=MAxhD~lE92P z1%aRjUG5lV2akjevdDD+~!gBCKejIf=<(m_Y@U(nb;!X8lU2OcP8 z?cgayUJ&s0eT?Y&h5@by{s@%uxJ7-Rc!H5Ke~&HrjA=1~cvIl}nOgOEaQya;ZfF6x zjL~nK@-T1%4cds2u>d&k5YNu600009 za7bBm000ie000ie0hKEb8vp=%n7*9}+vTu+mV8(Sj@3 ztuhe@6~P2K1Y%%l+SL*U*^by;6a#QeOkzxdZ}p=aPX2j{SDk6gqdWDwqsWSZcVQ)GW)&CC3JE z?LJt@^^lHAU{@>5E5zj>QK4D0=8I0pZ;w+8ID|n9QLa?#7{Kp#{q}4Dh({z+7%&$F zq=(kIcAE?aNggT_fvX0D0>Pzifu+C{dnzw@pL>LzET5KK*pP7 zvkHhc@EX>C5<+<@0#~SXtdAw|UZ0w7r$|QEVS;c%`GpGa&hTVD{e6&U8bE^=01|)T ze*pN^I*@O-W0P@%MWEF};0%E~Wp^~Q03L-F|MU2psc_T&W!q&R0CsZL`8>oPWETGq zFaSu1=6?76A5z-=Uj*36&*S62U!TZK+DkkKX1IiZIzRsnd0t&|Zvnu+%{{1&%k5#_ zw?2@*lZ>#W8)uMbD!2p$eLYF_(M(FfC>vnJl!TcW6__d(dM}4x=yas>KqTXAZjS|~ z!M=*%_CRE6Vk$FLDWC@3QzP!FB8+F{Hj}|TPiP)d9+17^ONY8`FP~OCMeM7rrkc z&)sEdG+F|ahP6*N!|UKxx8-t}oD6CKeH5#cyhOnOX`KX1^m|giR?7sG8pC2Q&udB~ saJeBx@o`uhUZS)C%T2`YYBMY2A5ZsmC&DIe)&Kwi07*qoM6N<$f+t|B4gdfE diff --git a/graphics/pokemon/amoonguss/front.png b/graphics/pokemon/amoonguss/front.png deleted file mode 100644 index baec9f8dda240cbdce4ba40bd6f665a4e1e9f638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 752 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 diff --git a/graphics/pokemon/archen/front.png b/graphics/pokemon/archen/front.png deleted file mode 100644 index ebd166254a3791fd74ebc35ab5afa33edaed5e81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 645 zcmV;00($+4P)XxLClFo5uoKtKQh0N~)@n3$+AP?$J4I8Z<+xR6lr$Y1~f00000AY3z%0006I zNklT4iYaBiqq8?TF594sZ*EqC}t-c(xI3T z(AJOOp*YY;Ll+H^yn2c5yYxnEF3md#>7L&`&wH;VgkI`@Ep5<0tdq0LLxg4$ zgI*rm&xkjn6$=c!qIXP2*v)mt0&Zy)aEVK-AfO+9Z=ciW`=WFOtO9!Xyq(qzknXw$ zxw*DW;8@Ca12iVY(`WOr1Tb|!)(z0q2%t9%!*UhBHyQ>An^VSq0UF0f(*U6nV@xJ! z>csr~j6zlHZX^x>7y8tZ{hDJ3YC85GgQAbuuEvo=ETiF$gU4W_QV4OajzNaC8LRT5 zNC8+UmOnCyPMW~?osdAcM@XD(QJl>k>WpQltccF+Jjmjs#uKzYT7+g-o&{`(u#jVYpy8Y5 zG;rX-)vLE0C!dpDKB4XZlw--vIQq1@2MF6e6wFM{>ty8(!Z2(Nyv$LTuP108!k^>{ f_!s@9{>l0Y&>z>6RWPCn00000NkvXXu0mjfpkgA0 diff --git a/graphics/pokemon/archeops/front.png b/graphics/pokemon/archeops/front.png deleted file mode 100644 index bbbf6e3a24f99a8d0bcf740d4f16d608d655b611..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1091 zcmV-J1ibr+P)ygfxyrK?^zcq4mCa)7MBf91)(~W;LbR`0{H4wLy>MGDM?q zjxR4ID;MQ$evyD8aVi6&EB0yqYBzCn!0M;9OP4I45@?F9iSpfUvv#t)*|?j}sRNkr zXU9mizUjStx3*ITo-Vw_+-o3(k(~%JwEklCt0l=<37KNZsKFR0olK*q$*yI|&NQom z`4ws~u*(}Z=n80B-*sKf&W^!cFp9K^ybYx*B8BUkS&0VAFY`QGQnZZ0E!so|4~}_W zV_{*wIPE#57ArA?YzHs^fa^|=01Bw_$pV0*iuUjf;7F{%5mJGD7=_>*8FGz<(RfUU z`$)))UDXVR=;@@FI-(VRxc$yYM7Wn+ySiAJ zSb_DR8z})w_%rZXB>Q`LIZr1w1iUZ0`VCXb-+%D8u=6*_G4ni1otdZ; z=y!Pim%o8vYuc+7bxdqfC&E|Cp_`2xc>ba30|(nB?)QkM-*6Wo@Nihy@{`~nuGSnk zgXN0SA9Mrq<-?lK2U@RxFL0(!(@;qV3P3T>*AKwVnwgCjLwprH0eE)Eyu2{cuBN&0 za)7_(PJ-DPy@W*5s)^T+{`wSi5vtTE5OFA==j_}j$#d-P44w`WoT~0@S~!^X`X`#W)gf1wBuF`A4#{A=XinR+es|Db{t3Oc#`_Dgo%@OEZZ_f zWT=xfuK-?X!*6}ba?#RV@ysiLJyS)kQ*~Sww*#C3sG6n@xTz(pXJ112R5io_-U`*K z&@GQT3!R94?fl*XP#cOb0WJ{0pC``&!;9eyX^d;`rTza`{0oV+eI7|VPx#Fi=cXMVQc_YEl^g-a!BW0L8RQoLa@bgXUr}oQog;#X&*;T1x+mb82d8y}iBv z|No010PJxlz5oCMm`OxIR9J=WmeF$SAPhu}1qK{D|NpsnSAy71ASIKhI}^RMX}!m* zML?$MSHF5w?pyu*CBe<|E#M8o4Y+#;7;*ra!AtPo51 zL_djV-Z|&h3PAsf9xWs9yxv#_@IDBfd;)N{TB>)l<~&XiTG&_s@B{R#q+x<=ZY}_n zn0^(JzX&1~;IR(QjpBl@-z@M9w<*TUyuKV+2-XOb-2-i@8IfK4J!)OH`yfg%-ce+zuq9 z-kuf-5;;O5MN|^Pi=;-lp-9Rpz_goO#I9m&5A$9c&@^+Ivx=%H>%u&Dxv(VLR z0Nw&TT8CWYV+E$%o+Q!J#_C8Jd;3!zD*$5))oj>$|e0`AZz!oSa@AUo>$(6D-w}(-jV|JWWq1#9$Ok8 z8wB|C1rWo1Rb|FliY}k6q?#uIKXJNV3AzHVu!(dLf@FW@}1=Jzf_t$Ybte-`4esH_rv6m3R z-T>$d*rhMs?+NGu7cxNm)_Np{avb)rSv5o>Tl2qu>|3-**Wu`QoG$uXz|{5jtN*wD Y0h3%DfRC8XYXATM07*qoM6N<$f^2JN^8f$< diff --git a/graphics/pokemon/armaldo/front.png b/graphics/pokemon/armaldo/front.png deleted file mode 100644 index 2ab629340582eed5407715f2b897b56c76e28a30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1121 zcmV-n1fKheP)05Nr_k;Jo z_wMdd)BgW3472p#)rzq)V4Wes;l5U3hAabY%0AkC%t6#19QVoqI#?GEj{uzR;J91n zOh0}$Ipdob&b@nfPzrqUY;w-02&}J_RX`KnZ_YQTuN}jHQeD&O*XLUo;PP8^P5Zch z1^_A`w*fWc1GvgU;O<{#K!sVBQb9z_JClo2Vx6JhhzNN&otA9ml}7gzG-9v4F?jj9 zM4z60$RUnnZ+Cq9Q%QoY>0{qRUBqF346kl_&?j$?=3Xq^IQkI=(;F`D0*s%}M?xtt zg7I%RT~4Nbcr@Qu2*i9mc$u|RM@lb%&FR}0o%z$A5(xDF$lI+SV0X-7z4>O`i9W9i zHHzC5e*Pi#p!=p)gM-54#<;V?SPOv&`ngNp=T`s{DZp9?kkemtmvv#*tO9`gK?X3_ z3rT-4$$D8AyjJH$Bl|DB_8x1AmH=bp^f=q5?u(NG*qXi>iyho08_gE&&q&?|-EW`l z7R$~4^F&~U(M*Vt#6_R#?U8RTTiHyK9VTX6DIi{0IRCcGSIul%$y_9JDrHc$mMNTW z(I+qgSR?5q+?Fh$uuM_QUs=VLT|?R==`3sn9#G!Mfr`w5Jtlk9u#HYR zDsq_qR#;0)07;si1rRB>p<2|akJ*=sZaI_Lo$gbiq1<`sxm0FVN+W^##dLsAN` zFf|<$kc>mU8$#&K_Gb%WcNL`^W~T1Qo{<7N>Jmcm;)r#U*p@J)#A*UHR6eeB)R(}Q zvpAG&NUK)!(nurohmNV{3F_bo zb7D+jIQ7Fr?!FIbuogIq=pYQEO07emyVpkg2WSh@h63Ezxe%0I1Kia3vYrcIkoQOO zo$uw)UHL*g!>e6p@!hfWNp%I-QmSh+9WTU_qveM{=O=ivuk9kWx7zbBPVgta0bGUt n1YmIMcO?xROZ9)#|7-jW4NY_bf|jV800000NkvXXu0mjfzkm$V diff --git a/graphics/pokemon/aromatisse/front.png b/graphics/pokemon/aromatisse/front.png deleted file mode 100644 index 3fcd8c4f6ce9e8a8ed8e8fc142e45eed1b4597da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 765 zcmVPx#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_h%ji-ILJs4IQYn50001xcu3&r@R+E; zC^$e^APDFv82I@3xL|njh^TNlNTk~WLjV8(32;bRa{vGi!vFvd!vV){sAK>D0#->x zK~zY`&6F{3(@+q{U0L2agBjRz&SP$D!Pp@~XFG6;qSP7s6{^Y=E2^m2GeG7F#NMTR z1jfqaYle!^uT#cE+;igK_`Sf|OPtv6e)<3J{4RE$RKT<5g_%FVPV?f>B%;P*6k06Y z{{y_LnL|FcTJ%H5WyTeb+qD62`=S8|)1iARD(^_F&n*BZ6~JGw`<=unq1#8{Bax4> z-|d45;4xw+<|70+1{;8<=%WsJ2^PS`ZFD#vm~FBIzxjweHUY=u90M`N7ZE%sQ(z#% zvonnIIM1Whra+^2xz2K2P6LaAGaCNT+0Wn4M^j6Q41B%$mgg7Ox1%p<;FuEN%}$1& z@(;hpqbUHH8qu5C3FQ?)sqH>QVm2N!@N>)-wk}*8*8qW~iv#dq-3)WOy1ub@ji%DX90W>WHK>o*z6+&fSAd`=mJB2aTYQb3ku7?M0hm7 z2|*?!3=9SS+dRZ-AXG^j$mV7Vp;GGiM5$8V=^7Hl;Ye+w?4gi`MHH@TK=ruEHsGSz z=2h{6ftH8Y1WJ+yu)s+JkS4Ht-vE{suv^568Ui+;X%I^bko^VjgcZ2o0+AK)q*^17 zC2xdW8f|#;UMkHzKJeVEfyIu6UMZQG*T8(o!;_mRWy)JQmy9f$7Q8gyASpkmSg$p6 zyhJs?Q^^2PYqMxw26v|cb6(bUENg(wq1HaSj)Fac!Xeuegb6OKr~rGUTx*grkn90G vApUI%`|=DVN%grGpbh5yJIHxj;W&Q)6sU?$$WW@(00000NkvXXu0mjfuzXkF diff --git a/graphics/pokemon/aron/front.png b/graphics/pokemon/aron/front.png deleted file mode 100644 index 72b0da8ec8602a6495225f164be4d29294e60e3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWU1Vm(9xNxIm!VC)w zj~_pN2nYxyBqSJQ%*fdBBOoB5pkjiB1xPOhIQ{A70J1m>JR*x382FBWFymBhK4}I9 zMh{OH#}JRsx0g2N9dh7dd*Iw_!eDn5j5DM%hhHNr?Z#s=I+~ zatr;#)z@A*dVOn9Yk2*~zZ=(F*}Cp)yQ#$Ad-ARpAzB~5J#X0(%DC3{uk<@%UgqNW zjH`QoPhnU4)+j0%@Q*>R!REk@sVi*~43a18J|(gs)!~oRG2x_nk6Hi73lvY9%W%wA z;WD%4(Tdw&IT^Gbv)__s?6R12?}bB{Ip2X@d-vy|LwwR0EU z5W2G7)_~^WvyGiNBn}bWwl|^&83cSd( z-?rc4<1(h0^2n3rU+>Rv-F%08->OOdzm_{`-rxGqy_QM3Gye6RqX{;kAoq0jb6Mw< G&;$UFTEF7} diff --git a/graphics/pokemon/articuno/front.png b/graphics/pokemon/articuno/front.png deleted file mode 100644 index 71b411a3806c3b9cf5693270a8fe4dab43026943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1038 zcmV+p1o8WcP)Px#Fi=cXMVQc_AX1!^#s4XDy?dnp5D*XuFi;?fu$0CB`1ts^C^%X<7_^jgi)vEH z;P}AE$j7YVhX4Qrj7da6R9J=Gmg{n(Fbstew&bLS^!?vx~{)x1X@?>fZs9#g}AO;2NNibfEL0qWU(-WYIqw! zji;E#m=*&bb6NX4nf zp?N^3dc_fRwm>2R0QE`#<^eXhh8_Tkq8gP_3;5{46`+OEqbMXvB7CTOy9e~vwao`_ zDK~-Deu2?vD0EYGiJ1>AVxnFuWp=0o1LT}fXUGe-|}8eMd(-W&Q! z59O=~A2e=4vtTy1Xl+plG02kloY^IUYApu9h0BJwatc&;sYASPxd3om%h)1JbAV>N zSgB)Hr%W#TAV?kbWuRWWz|6H-ZAJy?ECw&MD*i=qW*!Vd@ZCm%{-raDy0JQrhjQU{u*Mk8N{NBu5VKl$%+i!4y5fB!>eQcnKwSq0? zII;m=4{`au+5nLiLWZ%>y{ZYfha+^_3Ja2H32gxCfSY4$6ZBD~98eVSfLsBS>Tx;w z!u0BmMpjV{0AZTF@>El?GurroNeY1Y27uWa@mO&K@F^YO1Ya`%L2mhB%rGFN>3;@@ z%2S^Z%s_xphf}D8Nf0sk4-a6r8?+34d20YRr_+pQbwkQ{rb?Jp!4<&F^8U3^qN73P zA-n|GD?=R!I;BWv1{A>6w`PK72MO+7fNXzGkWiAl7rl6?^xfhB#O#Ey-rDh@7r6jb z@AXzUQ+Ws{N64VYNvgB+FyFbz&4OO-4lqJ0d(qV16{LVt;JjzA7Y&AVmnD@KkwR{Z zEN-f26gRHeSY;kng47oegHwgLlZ=NeH-C7`xp{6*+wEfqq&5>gY5P`lrz|wI^LE&*(5LD@0_b^9UhsFiy?my}aoz+U?*6Ci5BB&Yyr&{KqW}N^07*qo IM6N<$f`*RZwg3PC diff --git a/graphics/pokemon/audino/front.png b/graphics/pokemon/audino/front.png deleted file mode 100644 index 5aad0eb990cb18921e998f01e1d5f89fa678edc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)KlRs~pKp4ia3IpmCkgCqSC%0<~Lpo%z zDuOI;wftJhTP<@%*`f|!5i!vX+4BjEqD=W7`BHrkjm#GO{wI!Rs09A&@mR>6==6~q?@0C{;t+6FbC0#_+0Sf|foij@(pnxAm zIAz(KI$DZBwFm0D!ol$nYp|h`8YJ7Fp#Z0009I zNkl0!*fgF8EuMM^t^cuH?z)r0h5mvR zF)9on3WJsYjdcW?vl-MsBZr>6Pm+_`vD*m}2fdHJ_thskgb-qo{|vj6|FEn#0mE|L zPA%Z5Y0L3m1-eq-^}NG30I7Rkw^lcB-cY*NHLRK%HUhTN54*NoC2(=aP`YP1uIpB8 z5bzysfR7r0I2YeO@K3r%?MB`u)63hv70|5$gZZ7{qwBmtwcD-xyWai7@LU0|RgJK7 z*PFfn3FkUyjm1tc;*U8{7t+{|0Qlt!@G9FhTnYeJ;q|NgwD(|4A@J5fwZt(1)c~Gp zO)G7W^C+)yV7b+8;IcUK*BM{*md~`uZa;gj+vN!aOj{IyLVyPFVW2{KaVBa25s)Tj z>OREFg#>KeLcxOi_>mrt7t@8h4^|mqP1aBz{Yk&m)o1iGz68w*hPSzxgBHkwlz6f0ZTZme=VuXfPI29eEn+v z9Td<)hsEy>ar#1tujQPefh8;+4y=BZrfDdOzyMedOyIo#BUPh7G?E<1=#&P71kzMq z&o$8)CkW=LlDG>{Ve^r{v6U`k|O1UV~IhD;M!V1CaP|WS;2(FTxP?Z+= z6|&Waznj}MQcajfc_pk6&ek0}HO;mJ#^ZRZ@<}8V>jLOunlw#d{5i{fNC1WaLh!<& zU#O4xpEOmh~nUl)%vn*edH}BrUPorxIvG z5-_q^Kpc}C*g`TW>%H1Z#Un@4im%X!6 zpY;72$o7*I{%qovl9EsBMT~I|;Izi~{TErL_(}uB_Q@~!8T;P#*J?D%fqMW4pGkGn zS1%C_`AYf{q+{&Ku3=ZF=SM(6%28saSmst|!3jz_b*!F@&c}GR0VE%mZ#g>b5K!k3 z4JDUZ0b~V`iAq~0gry3W93?4;*}lClFk&`EN=70P!+4KCZkL#53$z%4%9(o_ ztdvvlDUQWe%A*ie1m#9RSQ1#yQkWW7>{la@Zy^?I5=b9IVX8T*xl&H06eHj{K+*_- ziiV+5jb2vieP)y_C zSrUG}{dGZ?cbW=D4(9^!JQUJX2qvx`??MH(no*?_Fn}cyjhrI=r=h;O{Xy-r6^*7N zN5{ax17`uLIU&HqJw$QAY0=fX974tluOA*LFVD2L>`K@E1p5*DI=K^Us;c3A%W&j5A=Ss}C|F=PI6xo}5D<8va9C(q$N&KN`1r7}&|m-nfY5Nz=%A30XfQZ9DP7FL00009 za7bBm000ie000ie0hKEb8vpK)Ui&(Fc1ddSR!HslQuB$5>@&Fk=(MB zibzc?28fXA%NTWVJa(mHSGK-IS0uV+WegiD>e6;Bc4wbE!qAg4-KV?XmSWF4)!)_C zkv{1@xIxfz0}`>GdqBqxNOS}QQOgAgjk+#Cf{u>B&{L2girB~jbid1bI3P^-V?6=` zEyh?J(ou|UFdzhIV}R&BEm9B|nCJynLNjrRf;bej#Wi3VD;h$woKp<=pzCq@hE6a* z+`P_1fowPcI$MAXKte@!Yd^)=eP#pV_7F4& z`TWy-kDx?iUZi|N+esh5K4LSeKL+nF31A@0XkD+QF!y0y03ee(Qvf9h>xf*b4ejwt zZUJ(8h}>sNrsl%<9yteBN>u;_SN5FSQUkp~p#YSU3iLNcRupO{^$>|f@I0=jdz}OQ z_x!5Zd;SiYZ$MeBy>po2k5rl-)RAY-s8jvN`UMB5hsKOzB31wZ002ovPDHLkV1h9+ B(a`_^ diff --git a/graphics/pokemon/azelf/front.png b/graphics/pokemon/azelf/front.png deleted file mode 100644 index 67d155bbf05858848b02e0717b11f0c69162ca0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)&aFD2oKtMo15KLo!0006G zNklfbrq`{JRJGG!TqGZhIh2w`hUh!O_ds;ywfH z9DK_2VZt^MJo>Sn4<8l@*F<=h=km$r$wgnjpngqcuN3NZcT&8f?4 zXRj1dLzpO`4CvLG?9qjPMxg?Lm1UXu7K|6=HQxl$rJmS|vYG+YBqG-b0=P+BM%2dHDW ztWsEHMg_IV+`xsnSuz%zi!me7Y`nueJUW1}5StO~lI!vk9icE|fQ}d;C(shJJtX(N ziEtN{<KRwWZrX17=CceR_j7W!8yKz8VJ24V4FpIkpMGXUFV%`15G_a;l d|E%)wqhFiH`v-&k+w=ec002ovPDHLkV1oSaCd&W- diff --git a/graphics/pokemon/azumarill/front.png b/graphics/pokemon/azumarill/front.png deleted file mode 100644 index 6513b5f21158679d520762f5df4977250c2d7530..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 zcmV;J0%!e+P)@KF;BdJ35D*ZU00_t^0O(KvP_Xd$`1q(WAb7~==zw^@z|h#>_)xIWg+-F100009 za7bBm000ie000ie0hKEb8vpY0AwmX0N^;l5vSvTk_Uk4C#;4VLZo8=6J(t_peaItWk@x%kE+RL0bu*+q_gHC z1SEBpmZf=K3;|5!S~pD`FjY4V7?1ig0#%(eV!EqaR;093kAI!O80ZRXut zfdLX7^b@{)?7CmuCwPA92g$sPeBAEpr|V}ZB7lo0=U!0$BH;XGFpHgpwh0+cYqh^t zz7ya&;T4BBcm7AHZND;IU1?o|2M8cSpQQ;W6C&(D{uC1csn%xI)*`7rAaie8O{?xB y)v!0t8cV}-czLP${sfK=62QpxF2@aIoO;_%J|N000000000000000`Pjt80004) zNklXidA+2^4hF!f{CO?nnwyiZ0+v zDm)exx;nsA04`|GjwHQTiE=8Basd9jIUrRnpl#q|t>0+%St_$mUE4rO85zJ#p*7n; zlR{<20VF2B?|X6;L`{!6(7u(m>Q*5DLs0im>BX_RQU=%t zVg}Y2p;GN3xu0R9NsNt>z@EU!Z++)~0o)dF`9jD(akziig$Gu2)?euh>2hXHb23a% P00000NkvXXu0mjfF{SxfN)Ug=-_-xU)_zHf=P&>0004) zNklU8MrUky>+5bOxbqRHc{)0fhmS7^#N@@@qmzdhblFQLq9{las4?eO(EXVc7+US_0PtQM z(e6>!1Y1mOZqAR%po^#yWf#w1G5K2kEtJ|zl2J^?NAtQ$o>irIRs>4lsyK*f)B?Z` zWLjLt9OuE5BU={cVaDsw?twalJm(&NV$jQ{Yvzm=s6@rHz)S*MV$S3#!#M)AkNll^ z#f(ZU*ZC83=mKxaGPhs_K**QLYuw`;gDg#7?Tdkc9pxxZ$BtnHWRz0z3V~V_*#6b= z0?s04W3%d_3xJx=i`Q`sXHinWdymQBe_gRApX>&skEI(_Pr-+=S&sDshj*q$htK_S P00000NkvXXu0mjfM}qut diff --git a/graphics/pokemon/baltoy/front.png b/graphics/pokemon/baltoy/front.png deleted file mode 100644 index c1bdd8e9060fbfebad9a6fd83e852b125567e586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWU2nYxy1Oz;Iuwupp zj{^r18X6K7C^+13NchlD0aS$s0w#4yFfcGCd%8G=cyzvSTx;RCNrl_ks=Y6I^dcD5~eswh{M{pBe~p~R(@bL|DL9`ghk85CJUA6e-(L~y)X zC10JePK0;O=aPM=zjwWP__eOg@_laXA#UdLzvn3Lil6K-rQZIl;5xCZ44W6-eZHmt z zx0GqhN^{4Zovoc^TCAJiE<3B^Bk#>HTlCvqvGfaWo4bVEtKaBIpMDZyu>q;i|WrbJK-c)I$z JtaD0e0s!`^$2$N3 diff --git a/graphics/pokemon/banette/front.png b/graphics/pokemon/banette/front.png deleted file mode 100644 index 48a48753ec095bba1390349f14fa0b724006b2ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmV;u0z&<80Ok=4Zc-%~KS3n+PKqPxWL(f?OYL|6?!UJ>LY`oB1_yxN0ieUf0|Nf!fPgQe z{{n_wh>1J^1Y8dGhY81t9Ywk$j&tOQ;qPFsHgj5NT#c__>(9nO0`M;BvQyqO4d zUe@@pa7vc!IXKLR0uZ8li}CM|$)3J)VU za1{WJTeF<^J(Zu2K02Zm7=22VMecolCxi_~4FsmD1p9(O&<6OYAJ9m6`u4jk0Bu5Z zb$X-z81EwZ{7ozs&~E}mDYQj6PM4|zcG{@%JT2nK-O}!0UWoc?buO}eo2~DDuWyzS zNfaQ$8gX%109b(#s)3pln#=SmTc;`5synIj4Iq-om@e{2$dmds9sD08+LODFaZSL& zrcvg^!&@mO>lIuqDTxJakd!M;>lF|Pz)Jwaq+ID3m{+SHyjYEA@-RZ|hdoNfC=gk0 z6`;<8Ar15ec9axAP<)Ro0#x5W?IVCFMBNSPUOSZ*s9rHWU$qL+QP$mFI~5a@HGq73 zzmZjisREK6aFyrxIM|AW#cXW_0Tg?Eo97v+1&yS(f`DZ4d5*CmM#O5-BuM*w{l}0f z0UhkPx#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_U~o{-=&%qF5TLk_Fdz_kU@%xnAn1Tl zuuv$Nps@J(_<(?bP>86=*yt!&c#*H_cmMzZ32;bRa{vGi!vFvd!vV){sAK>D1Qdb=TnguCJ2Oh@+pD^-4bKRY+-L;Y;aw2AHYX!pjCVjX8B!n?>B=rZ{pyzE80Qe$}wt(^4v>i!1eVP93Mb8R=I!3T( zEnhx2F#uXt%j(teh`K?n2=L1q$mmCQBLMCUdz%22z6C(hidrEn4ims{&!fOK20&7* zvqsS(XRu=8uYPhOkvB1M^ODlA8pJS!!mQJ`Q9!j?okCJ=+&7GS>_FyvgpgPbBq(w8 z6uJBT?q}@u^HPs?x>8I`n;d+4)uZ$pI}f*?H>tZ*L>3|4_Eqb<4#af);XQghYsXBe9mLp(Phl%N=Df^Gl*H=6Y`KVy!21bX%)!d2*T!$QCKA`!cJrvb6nhs8 zdGmbY#-?j8RO6gBMX4&s-1kOku@E;otQ?7tatwHHG?0x8x#s$tOT0a0t8xy%pA%a{N$oL6&SV33eunu&y21 z#!YzTliBzdT=2(30Z2y|xd6yEeq8~TvB)|M)46c7s0l#Uv-@ZFp^L|pipaxkj#zLf zO;4o&IIK2SK~;Q)D*n98JU;*~b?B9HwpMUfF+KmDK^#5CeD_Z=FTiGK3Y%u8Qo0C% zQkZL$tpT8Kdeu3lA`^i0!iT3EK!4RT>vpNyl)ejq5v5_GL<5$y>t1H!7VRPrfD)xa zuamT@6a#E{@`ynUR@sG)4#VEsMF_np5hPOGZU(PA_LsO>!g#8RA)6c?RF*5)GIfXqh8yyw|zYW<@I=9 z321}X_&VGLT$NxysAmgDdw`AtI-yR$Pr)v5vj)Z(?*XE=sz|8 z*E;TB4cR=&61LK8>spzaGd3SiV`-DHY_V`W6L`kC5G4R)kN}(hh;Fg5wxNp$IrId) zgHjBO8Q%n=LC$#>`$C9iyo3^Bu{0bI;f_a&p3oYJawJG@oaq7r&sXLv<{KPt{(~Bz z9zdPTDclxc<`EkLX^!{=!YaTblQ!a{dT$X@ScD${ko*Az)q4q4_WQ4S!2YD;)-Nc) VcVM9k{0#sA002ovPDHLkV1n(5%q9Q; diff --git a/graphics/pokemon/basculin/front.png b/graphics/pokemon/basculin/front.png deleted file mode 100644 index ac3f6ded33d072854c411366f815e21aea2346fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)BjE6vt1d*>#ejxLNFz(n2%kp1*+8mqL>c&0u|iLga5ysgT8!yt)+1 zlcqoxx08kp$*loH`=xScl~{^pX>B2Y(DeV^dw;!q5@XN$e`R<0y(7kk9e`n4fRP=v z0nQ7s{Wic2K*G4UJE;#a8XX6%0APSSfxU@<5#o54KMAAgvp^g&(d=4z3*N z4hdhSf9RIz#|)3fK^3q-9$ZAT@2i);X-S$8KD_?)X!nEwJPD`$e3h<&ZvsG0H-HNe z;QKJ?XCE)mG_ddhoHy|XuslFK;W5$m{gRdo5A}^4@taBn50O*xigHDC<>5Op;&zod z)zRpu38>)`fXdA9dv<8g&tym4P=={&OMWWt4&BfNl^lHmt}NQ=+`<_ zsy@rVz%tJ$Cr!wwfR!s%b|F%#;BZ*5I-rbhO%3f|5BUBQfN@pom-h8#GHYvLO5)C( zM{N9d_`WGna5E{{xcC<5W;zz4gtotc75LI`{Y`kT+>Tf);lQBHHyhXiFt-b^I{at- an|c7KCb6SKP)oA_0000aCjgnFu<5t_|SN0U_c-sAh0+{`1tq$0000000000dt9vs00009 za7bBm000ie000ie0hKEb8vpKl)rD&P!Pu*$?e>${oGKdypRq|q%ZBz z$xfbW)a^AshE8?WScokW!lhfJNIck>=twGxP-Zs%Iqvz@X?~b8BXL8c=05&@@6LB| zod2;H@Rxk889okdH(xluBmXS6%{wlW7`kD#SdH^ej439=z_3*%03b4ag$e9)u`U4~ zWtBm22z=ec#fKOocxxUpE`{=|08_-ASoI(awFqDpa5ZA)S*Qfa1N4{`M&@s_*5(}8 z`CudxtN?b5g{o@Wj0>U^Knk@C)O9h2s}VUw83|psR{%RFng*5d4iv+9(Ss>FLJQ>iP>s-k zkjOH)f0PccC$7l;FT zp7V@0uCKL4VudoaCLjdWcuGQh8TeYiw*U>sZlBu#0}PB6&oZq)T930CSYV@(OH-l{ zf`}#&Hxn|N?Bdi~3>x`cQ=SB`Kwj&cn2huZez!oELyrKzxg)QiNhwqK#1cJ*7%y!X z-6rhcp$hnqFV}l8?K3sOz8))9?tf4G&jKoameu=BlF_fx7oslZ4MU>7Ywcv=WgMM-Qa-$|1%cXw*o3FG-Cq0RmzI0>YwZ-)jpmErE?r#G73V+yWpo$=q$xt%sl2@ qw0L6$SPHk>;_{Kak$F7-55{jCUIV%;860K+0000xpGAS diff --git a/graphics/pokemon/bayleef/front.png b/graphics/pokemon/bayleef/front.png deleted file mode 100644 index 864172795c4c0f8ad9a17b90ce0a3012e3c3e512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)Px#Fi=cXMVQc_DN+bhdkBlYF>0I;5D*ZggBWU30QTle-n}XR|NsC0i>xsK)r(SM zVq(R`#dRr);s5{wL`g(JR9J=WRtaw7Fbs^OQZ(Jv|9@^d)Mf7?4y6JMEKnlIVPuBG zL!=&$U;9TEnk`~uO6eoQ0?`Z@kkqU&#OS6tgJH2*a54OWP8tYJ1o1ZcE+!``cG;kq5kr~6|bK3Gc$96fyV`H0RYc=Q{$~wi3A48U`{HkC6mCVNm;I#DtYV9S;H<&Cwf2G!1ehpk&Y7dC;+* zh5$Xx=6)uRbR_`8%u2RyoCvHamm~2yobq=K z0t^;MFuaNwqmi`5UNfLyAUnV}DC~L^iw0pN!_xXX3hZ-DgAqhHCMqHbKq+Op&8Xc6 zVyNQDX6qmjd%w-6X-4?XuThZUbD1*t_+AC8VC)5jXB%_*zMhuBP}WIHUWFS2zimlV z%VUxZxCZbZ4�jjjTF10^fmP5jjUb@b~pQ<7>gQoQ&TV;7q`|V_Np!SMZ`huoX@O zB$@h0)nvo#3ti~VznaxPlw;6XsgarpXx_Wh_0Phu;! sIQCxFi`e#cSGMU}+C>ie9sjrX4Yzq6HIOAH9{>OV07*qoM6N<$g2j_N)c^nh diff --git a/graphics/pokemon/beartic/front.png b/graphics/pokemon/beartic/front.png deleted file mode 100644 index 18d3083c2f21dd9f25b4a1a3ca46a00fe9377a85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 858 zcmV-g1Eu_lP)5kS_y#319$1m<6B!6p+lH$B=xZB4*D+NFTRL04oc4IRVT&f$#A3 z_v-=>yZ4JbP5|wM9)84*fUXFPn*)*M)%W7u7kBLdJTyyG<-P`pAfVA;WeL^I5Q=T- z7Z2{2bC+HNtrD3R_}FW#fva<80ya(C62Sv}TUzZm-o78tlw?=!QY5F@_2&)%>)N;ETploE^`S~iCa&FaO+YpA1on0%qChG5p1LZ0Vmd~o*S$iWv($a_d>z$w)9-mkB4wZ2ApXR4| z#KHq$bW!gVaK1JRAL-LU`Er}nO568XuROqI1+bQ&KgD_neG0>6?O8*_{&VWsDzGsf zDQnzo(LB)$A@+}rrp5YmnkORWgLm~mFcIQ2z|_kQsgE8Q>eqnaOMqw{o|6y|XFZTj z0XAL&LWmPs28#5i(XkOB+*B~t2HnPc0JIWv256fwQyD@S)G&040I;{fuupp1ka6Yn zs~I4rmnfx@ay1R8)Z1evg>OcU0Qw6UnXI^!)(=&Tysqvh5!ZZ^C;?(M1<)qX6Uvr? z909Bbu*)_y!UOtNZuF*X53ng9tR;Ft4*<52nzy&?4c!H|Im_Gilm@b1PLo~Z6gP6Y k*39BO5Cr)q==AQzKX2p8rf0FOWdHyG07*qoM6N<$f>Y3O`v3p{ diff --git a/graphics/pokemon/beautifly/front.png b/graphics/pokemon/beautifly/front.png deleted file mode 100644 index 41d5bc0ca9fd9ac44c64ab9b68384d0b6c68b43b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 833 zcmV-H1HSx;P)`rg!pc5Qto(p;Rl3 zxq{IOc_8v3x641xMd0p{s9DDdlYRXoQ8X`5-+AQ?X6 z0IvynG$EF>-T^o?dDZFxR-_TQ`1zQC13OY_)F4%0vW~#H0owLdy1!ZP6+jIc7CxMB zU5i<5+u8t4v>3X50Kl0S_Jo+(!9FqC)Z@VEiT!H~gCR0dvt;TuTlSt})7d*W5DdP-ffolUeyRK0mQ2b9|tRl~l3JK+_() zd?$A&V1#JRANW74WoGu7`B~`{tif)57@DoI;SQL%`+58ye-pm}e?czPY5L(>00000 LNkvXXu0mjft4)Rv diff --git a/graphics/pokemon/beedrill/front.png b/graphics/pokemon/beedrill/front.png deleted file mode 100644 index e1f22b5a7df5112be77fb053b151371b1eba8d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmV-O1GoH%P)Px#Fi=cXMVQc_i+hy4ti}KT{}>n;-p%$>T6=>^0Oph+|MsN+%}SgA2-O%d|CDO9 zVi4%y`0Kw0-~a#u#z{m$R9J=Wm+N-oFbsr|J+XsB^Zt+9kz^%-C6_IG&i<)Sfi`$P zk1i4PcKcobV~NNoJ0<0uE+UZf>rRzteOx2x_9ui&vp-!TAlYHd-iEeAE^^l^$qXYEegh6A7Xh_&IkfHJnNB~5fkTiz0H4*vw3Kc@0eJb; zwV{(AZDji^lTl@;1f%srwc3qSRC&P*Y8%R=+1I8JtL_c z1<}i%hxfG)#E{~1A$BT3Ay!nr)c1fuNa#ykudS$sC68^FU`bo^5-4qLhSTfFrW|(x z&ooUWx*JWx+|$qwEIbp+N>D#tPr^kD(G3xhmWC-*!bJ-mA-Dc@pN_IN-pbh$tw?0020!AmGRVN@}SY0006e zNklyy>8nu5XWgKT8s`>l0JZsG6QI;Ny$aVlIH{{I=FEN6fMv}D)a&^puRv+ z?LmiROh%8H62C&%JVBB7=uzz?lWMo3w-NW_ef~+t{yQ5b$*_MPV2Fq$z!WE8fc$WX z%WwisK#nF1xCrNns}QjNH^7vDU=g|m5P29FK?ShjLqH8s&oJ1=C>2sv1mLp(z(sjd z(jY=@jD)UhNq`Ol<)Q{rX$S$P5)~|{l|T)VuK5REflg-u0P3_9C8RO{?9m(?0HGXz z1hgdJq|6EM=P)JJupo-e*XW+$l%R$V@P*Ko=m44n@O(D}DOyOb7w*2zjR!DJaL%5t z@kQZDk()-Tys_#KmCw)S&)cuqwCyJ~_wPGCZQnHQ7oyPm{EVs3ZA%e8s(_y{+aNX# zdJFiSWvvj4%izOdY;5iN_-Y8a%<=f!Ko0iqo^Q{w2*!wC-eiDP>j2&Z9-V)@m6>#smOHwQ*KWzQL50Wc{gou1<`zoh7cY2Ac!ak zm?sAVlF4QIIP)DumAu6SM&-+00009 za7bBm000ie000ie0hKEb8vpK(y>m%Fc1dd5RnHs*X>LWJ3IIZ8l87y zawS6WBsiF@lg8&+!F9C z-JdxDppqfdcQp!0iF0>RBO(A?C4k0#B|#xg=20X-#`fBkB4C~Xd2pAY0xnYkXRg|S z#WHn9!@L;4gc1~U#N>14W}_$=;1&6)DD2HcqYZiFVIC6&KXzMHlec}SxNpELS=mAg^5vJ<)ACA>)>6et$~?**t%K90FrX e?AspeAJi8QgIb-LTB!*D0000N diff --git a/graphics/pokemon/bellossom/front.png b/graphics/pokemon/bellossom/front.png deleted file mode 100644 index c0b1a0e3d349ad0ca1e83ca22ce6a76bd6a32e29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)VuSQ{EgJv|Dxyu|*vSI`$b5?h zI5UA6%$rt~4=Nr)p#2TyRGuffG@M1JLn(ouw1Z5U;GKO|ri z^DvmvN0$_!0(hUX^2e8oj{#5(7}FS=;X2Tv$`~6nHh%+3m?u2xaRh;m9x#6aK5;8_ zgr@HMQzKyWX(JSf3-I3bxM~8xTYxqP`B0EIJb%)`1_y;^*p0R|*PocUrTdzzhOV)$ z`dSXx#~g%iDTsou6>!y^2ms)ZRupoXj0&ZH%0&NzmhqSI4Qhm(ygdC9>;M1&07*qo IM6N<$f>f>Fe*gdg diff --git a/graphics/pokemon/bellsprout/front.png b/graphics/pokemon/bellsprout/front.png deleted file mode 100644 index 492c8b29f84e579956baf1ef4e328b429fe53d27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmV<50U-W~P)Px#Fi=cXMVQc_lxji$|NsB)q*^%u=DmaX`1lYI5Rhm`jO* zou)f??))7mxq?3)-g`$@{vlyQuo)^Z0-M2k-+3P_2Ir4h1nvtbJ_HO45DUznU=y^} z5rawK&g~lnDTNn&n4f1>oHHh1o|As_i$oViGp1S~ugpRMOF0ip- z+t@&m)e*7eN|(#$iHKp_7#2uA7qHSAep!pLfO-BIN3siC8GXDa5Cs|koGG>&*+;*%31}A- zgSsEQG4Rny>NY^VSPV@;dj6%jD~5Qy6w3?c6ME!@(2sG|^L@ZTZwEfq!<{?-F5g+! V6l#AzCnNv>002ovPDHLkV1gMF diff --git a/graphics/pokemon/bergmite/front.png b/graphics/pokemon/bergmite/front.png deleted file mode 100644 index 8526648893b707672a5416d98855aa32246126ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmVKl0QzvFc`%>SfZ;f7RJ0}h&t98GLk?zDDjSTY7eJhV(nI02LPE-yWCf{D%H&_Z_xwFGcGRC0?*gLp zF2L__a4tIlkreF?vK`=#RAIZrX*&=LPpL+aG~EM1BM^x+l5PtS3mHiy%@#4>0ZH>c zIe-{m^EJ3vjc5a0Yhpc`7m)-N;n|d&t}Ic(VFahA@KOybzzt_~jyO~(;Yb^EMgu5) zz^Up8DIf*>5)igfvM`SRi;%$T(QcdSBfCg3ye3wS+q5ZDrTIYs1XA^U+4;n9W63EP?LPq%_qa4^IXLnO$vaIOQz-_^L s*865uFfziAPBi)ZFHJknkNUs*1`{x0%0DD=RR91007*qoM6N<$f=vF@#sB~S diff --git a/graphics/pokemon/bibarel/front.png b/graphics/pokemon/bibarel/front.png deleted file mode 100644 index 1963eb81a15eb27c87f86af86bef21cb8688af3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmV;O0%HA%P)vXnf53%*2IiEvhAan~~nsWL#5 zzy*Rx6jCV_=PuyX2myss3sHaKU2(3^G4Tpfi0hgG)8_BbeIQ~0%et;V^14i}u%rqZ z+O>TefQbq$P}!#r0HxhfZyVr|cVLA?PpwBtEO2XpbVi(ikEH(ryx^$?A`8rE&kj*v z0%ZoABh|KrvOc&#WB{|4oMO)3;c(=hT$8rZ^aSu)>!Ysgi34PSXrjhNs;!PLATnzY zAZr2rrv;|8Gk}Z|b7^WgO$5PgE6q%5xJw{Rqz%lb9iXicLL-@2D^T<+M9@{yOW+5b z1VQElCc}U-K<6jU?Q5gvrs&1_-#f*XTAG`p7iXZW_~MYr%`_?H%LceOB1RmO=52$- z{dh1s(19i$v?obV@{AIBfZ#l9G^gFrfqk~)oByo8jJgo)m@6$V00000NkvXXu0mjf D^6n{O diff --git a/graphics/pokemon/bidoof/front.png b/graphics/pokemon/bidoof/front.png deleted file mode 100644 index 299e487496b35074c4c259ab5ea37f2c5c7ee895..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)_?fcWUR`1tr(Kq%-~NXWQ=$iTpWfPer100000C3yzh0004z zNklqq#FNWFJ&P`+S3z+EG!8A9z`YjyX z_y7)m82?x7atB>p9Qqa#-jDZx_Xij|>7>8P_mBHdjNUOn3W4Z|A0P(O?jgQU0SLQ> zxCM~K$bh`vpW+}JC@vWzznFFaE>h+IL!=!5J=mjqQ(X{rkeLb4?X#lLt_D)c&11M2 zQv3cKnFb&%!22zi&Gwhn+9efSR(INJIBQWsHL9x3c#S-42QC&BX|rrff?pf{Wc;Fm z#~l#t0i%P9vDCoBEp?!`neoJ|II31k?W#>vvjxCvph#=IWtw0DOkkki-;~pF diff --git a/graphics/pokemon/binacle/front.png b/graphics/pokemon/binacle/front.png deleted file mode 100644 index c3d184282424c553acd14b445be04204af3118d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726 zcmV;{0xA88P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_U~o{NxR4MK5YXtbNH8Gyh%l&NAb4mv zSV$=N`1rW6sL0spP>84~Sa_JAu>Sj=L;wH)32;bRa{vGi!vFvd!vV){sAK>D0xwBK zK~zY`?bI=A+dvct@Dn0?O%QXH?P z1k|yFe1OvJ>amkgOCXbV9ZI)?`py?hEuC%XR_Hq;8}qyWyJuvPf3}P}>wvWmRPEKE z`gg!^)Z3;6-txwVZyUZIR6GSd1xm9T+iIKZRV64-Vz&JGSFZ0$u-L_L>_0%=uUdw` z5P*$|+ro=s6L-H}t61(LAXVR<18iKc)wegTox&WZ0y4OMw--cl%_;)VM}Q|YgRnCQ zyC?0!3~pk-3AA7+$rC*W}nhi72JjRIVo2YJFDOT zKnKjWqk=b*3pmn&_%?VWNiOU)Akl)WmzTtG9CDZ>?}!d0$yNKyG<5)$gC`R<{S5Hz z;}Q@fU|#`1`{y?SVlfl!2H;o=8qgDrP1pp%Ctbh~5R5Z6V>i85OcU`q$NdN<(}|d| z?`5zzWBE_UWD~4w4M_7e&js!l-o(dr{c@a8bBH%pZoD0E)y%JU<6S? zN>UI{+m_k1O`1bWCIl*okPW@%QV0q35XgqTiiNQDXd!ex2<`S_R!=>-+k=pv+CM<> z;G0Q`k$KVYVMutNeLv>CnIU9SckhgUED&7xmd1pYz=2z-iO!bEqb-;c@ z2u)>{WCqk0rVeaBBx~ut6&WDeMgX?Gw36ENdZx^v?O;GAv+Q}^5k#uk3)301RRYEQ(rD2Q~m0#1RL82~pMo zDpFT*{4LL6BZRO!8bGY=t@!-s#ZUnZX%}_2q8GnR(w_zp?w+Ot((?8#QFJO=5{>%Y zNhUB`UNawvs?gds>-FmSNBPHIuQ1@kv^3!MvDe!h4qkct15P;9q=kS+q=%T@^hE7;>5SKZfCnf8_fLppzf71T0rM2|UaBeSHHYKnKIMD2ku> zeZ32Y1Hjw`DMV4kk90ef1OvA9nY&+kez&396~M!xEu^{}14ObES$3Io7=+i@Bvh=O zv(<7wygn=MB4-9dfbRq=g~OU7&h-$60|QVbMluj$fTTc-HVh#QNFm@HDH4E=sJK;_ zm+(3YFb^bKab0uX7MDU)uri6Y*j+F$?VW%-Xqm+7th(lpaxVO0p=A=b*lv?qR{F%D z%qkLsS=l6MzT*e5k$f}`e{06db|{?O1I{+)0S2Z=CJ zt6wKH_Ya^UEwnWy1<(T(oKFRek~+|II#5)Tz#7=~B{fr4K(;syV56JQ_#Z&a$b&YK z0)WVKBxT>cbj(KIU2rf03vL5 U2QzyUR{#J207*qoM6N<$f_wgiLI3~& diff --git a/graphics/pokemon/blastoise/front.png b/graphics/pokemon/blastoise/front.png deleted file mode 100644 index 0419463d831cd9a62caa1dad906739d0a06c4f22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 988 zcmV<210(#2P)Px#Fi=cXMfkw@AY!ZtIbxKo=30x*N=ixq007O+)mk|il$4Z)}mwJ6ZT_ZF+4uhtYz5v+p97IJ1nkWG|=PwABTsd@8$uxVfEN&)2 z*o+S3@hXa9uu#`pN}g;m+XF=N2s?M7{QN*@R70PqsR0C`Kc9_Y<0Sz4Ah>>-9ME2S zAYAGz3GTn^wPn9#YpE0h(xtwbM`7XrXd3#-%ESUPhiappW-#;?goxi7V3@4J8$~;a zWj!xIL4QGk5Bi^==i{LQgCH37&OEkbf+WMYG?I`a02ss81I5sgiVD9(LOCrX!O8m5 z7%|8ZK!T{Dp?fZyz%}q9Z%=SR=H<5wB#diArwOdoT!_~*(2+42^vj~HobHW4Pk`Fy z0HY0IGJbLMVZ}(o64pCH-78cBfaXDpd|RHl%gB+|bjpm(jWBx^`Eo{}0OSqe1&nQ) zUB3}*Bg`{jPpJlA3jsw~XAxQ~^)!3{@Tr0@q8f_H#HL?9%VJ>_Qk@ek?h{OXhgt{N z&Dm_B&sN)7!8FbZn9Zg9GRPa5V_daUaY>6 zE(xw*Pf)FO32|@3;(89FYrr-=v25lM*Ea$FpPODT63LDFdW2XPMi;hGB3FbM6T36W z=AFeXbHGUqk)7cNU@^z^3xL`|ALH~U1l#EW*m4*V_JMq!Lo=0~UaYnhwn6H%^rjK4 z-v)=sl=w}@N8k!L9jGgy-6z-M$NB(GqrTYX70&_9_6^7Fz3E{W1nmSnHmvn5VB}t3 z5+ByyeA+F3DsZ=79t;jZ>^+XNZn4`-ax!_f)0H;|3o?aaAkk^czw4zJ0q|#l@^b1Q zAKd4EyT{uFu19`H{$BrRw>`h*eDZ_h)QRlU?|u~R33qA!H|-Dho-q2w-JUoA0000< KMNUMnLSTYCZ_E_{ diff --git a/graphics/pokemon/blaziken/front.png b/graphics/pokemon/blaziken/front.png deleted file mode 100644 index 5336ff9b32db68f59e18fee8538437f0b4ffa6f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 888 zcmV-;1Bd*HP)5WujIkbq$DU|{%wVBp}eU{FYaC@A>YU?_Od;Gj^ThKoke?izaJQPedjL57OD8a;a1B z8Io>|EvPffpuuZ~P>-!!lrdEdaiK1iLqbElb}{}EHWW&FVDO~H8M>#W9gQKqlbpzj z?((L?_w)a~CkcQ%wW0%INdRC=djO<$?7psV9f(2Bb<>aWmKeNp-#Iyqg%R4Wo8Eoi z!&@%|V5Mp7HBRan*MuP5{B9p(VH3Hz_w@%2sEX#4_nN;nC%0J^MNj}U2)l2wDB{#t z3mChtswm>4YTGH=~Hw_cNxF3)957(X5GCnMNW_+LeQ)FIVqrk-_ zr(spg8ylDL7{$q_5ai#GpRE#Jch0QJ2AT#jFul$Jkb4+^84b$re0WvKLG)I^77DCAEECI>%JOom;il#YE-B zKuZmQ!%GMQpy7l)R3T990s{?BLMEduO!i2{w+gAMr^qz(X$uzBDwYXRCi zpo40V(__v+%F=-ZZ5whT7|68g3y{KblRz25EX=d-(72iR9w0C~3_lABhFmbrk`X)6 z9)#0FAtX!2H(7KTlRaYaWOz=pBR&X!RtD#bQxXt81pPsDTCVHxp8R8= z&jCtw9|g}CxYt8^Mq7;M(f?-sK1oDK1QCJ|h{5>!u0UYENL9{5kX%I4Z}thNOzaUi zi@;a}0E$5JQQg*Tz*{3OrB4PFjIV^?dOn(w(E}}jqATPIJpgDep3;ArtunJ-6TY7S O0000t zkx)AEz6M0Be>S=};B-f}h1+M~+~`O2O9*vhH^D$(4Hh~_X4M(>6E9WjqZp{?$PxJw{elRiBQXaIm&cRgS3rO<FUvhKQZf&&)EI1EV{Be?`2SVp#`tb*U$P9<{EqUOYF;v!HUu+LXr`V$3^J>{NlLk}93F0rpIK0uaOa zVYS&ZWS2>^Y3eI+_-BftTe}ovy^P{g7x|4-3wH&Sv@@f+?l>J?LDpp}Ng2KfxbbG4 zu3Kqz`HJ3X1%c$)du6>3y&%|e2z$lh1His?+@KBnF9WXR00000NkvXXu0mjfDo$$5 diff --git a/graphics/pokemon/blitzle/front.png b/graphics/pokemon/blitzle/front.png deleted file mode 100644 index 8eb3033d290a05df2509099286b5d44831bd92c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmV-90>=G`P)b@6|IP5{fmCOWl+ZfQ&bv@MH? zMhE~Bh}IxrODv+B(TMn?EYT*xd3hG?f&rfYA^E+fPNteGT^HXKt+NKhO0b4 z7Q&MVrrbW%*(`*m2&#s^r}C5DrwmqO2!8solq*a+OzxWI^(_P^025|>W5&(EM*)>^ zW-xH$=Y<4nSMf28@10&sK;8T?4Du!lW?MkjHGI(dtBL}eMG`E&fV553BhYiYaS6~{ zI(?Z03uP{p+Pf0L=wk&u&Fn%3PL0;xGZMl(HtF!&z)r?r_Jx65LScnb00000NkvXX Hu0mjfWCZe_ diff --git a/graphics/pokemon/boldore/front.png b/graphics/pokemon/boldore/front.png deleted file mode 100644 index d5fef1c2fb1adb273549bf5325674d6653be663a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmV;f0#W^mP)cS5ctSI000000000000000rX_OD0006x zNkl87-7!g@Eh}K>PrE z=@s?T9(!zGuH#Tb5}>Gu-qu1W&U~I3kHE5C)_+>gnfQh4{T;aO?Ku#f4%T~Cjf<}J z>hlROTy4Q}bs|B!?nPXvhE99OfnJWIC=ho#JxmezGB6NPSA^5$=1kpbPOv|Og1#EcH97Pd_X|_40KDtVGtVv1Q{uVtZgPQ^&kTj9EeIae7qx7@=lL{gy3lE zK$e2%02Eb9b`Z25p{2(ZFM@F@bKu~lWLwYVB=tLbhyVp9-OXtW=&~=@EA|I~WI3>b zFa&nem-h?S8qZ{QW2L+tfB{z9qs%6H#^&WBptF_Gc;8Moh08iDUCe? z_AOwIX)@pKnsMCs>?+Vnl6Q>2bVUXQU`;W{cJNs6!PYp(+8Wnj@t+_DQ@9bdz0(dufS1NNB;FY8~|Z&dP@ U^fL$9LjV8(07*qoM6N<$g2+uI{Qv*} diff --git a/graphics/pokemon/bonsly/front.png b/graphics/pokemon/bonsly/front.png deleted file mode 100644 index 328a0b031557350796c9484731e133777bed74fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmV<50U-W~P)3f0000000000&@H0-0004M zNkl!LzBM}(B`-QX=eZ5ah$XMq#&^Sm(kctxRWS~Fa86Jdf?Uu#L?Ia%wiD+++ZsH z0|eZw=jXZNdVe(ylF_zf~$Vj=`LJyeCEnpR>Pb~S%iFl-f`j(^c`&s=g^e_D*;|C zKx4LsmzDur^WJg$gn|7*0EQ9$=JmcCq zYW@7hoVTDVuVk|!q6Ps@%503pR22X!A-F76fpYqVF59*(DhSj{S41`b>`e878{`o^ zQPmL8D$m3(&~N%m+8kVO81O|DE@rVH^ZAaNFv!3Px#Fi=cXMVQc_F)1KQK`{UT07@|!lxi_*N-3O!TK3hP|HVrG_RXw|DLFYoYHD+w zq@=y1do%4XmH+?(p-DtRR9J=Wmg{zdAP|Jbfd!41_kY{&1(YU=Ci&U!IZaWVk6~HR zuKSPwXoYhw|9q(K``&)g0r*5-LNDGTu%H51)4f5cN3SUG95*L$KoAchgd2zxxr7kH z72#aY9=-;sg^O&q05*v>z%^3vn{do&t80Kic5(%9u4LgufURWUnmSpIb3iWWOkh17 z*OcY(nIoHncceCrK+Nz5dsH3*UVXsDlp-@Q3<&&B=7D4Ys>bJTq~!22fn-6$K#3s) zc)nBsrC@4iN;m5dlAlHn(jG3W5lXm7Z}t+|H(8hvPUvFH)I7;wEQBy^-8M z0zhXV0CoUzQ}jv@8jCU5b1&uWat;bWFJb`{cbwGR^_)ZJ5Ut}eaBCpaCE3nvXK*AU zBcQGXsR1VFm{Bb7Qx9Fpy$Zx3-(|U41TUj273Fe3%YgIDYQoFGK*U`S{*lO%-iF=? zuwN60gQLX?a}#74VTVXlsyGK7?#JqRX0Y^rpN8 zplP0`X^ zlg;V8 zh|mUTf7CqdpLjs6mj~MKc~IQP;I{y0WU2?EEztk~002ovPDHLkV1jA@ZxH|h diff --git a/graphics/pokemon/braixen/front.png b/graphics/pokemon/braixen/front.png deleted file mode 100644 index bb090c9d17130421d7a70441ec0f921e9f45f453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmVl&H6ae5uCkDh4T$-ti4-a88Tqd8x>Pt zjinGm?%fJa0W(d#PK4YCgiCqJ4aO1xvDZNhZWkD1>ds3*cC(0n8tk14-4P#4j^*bI z$C`0g)Np$8|JXF*9P0}(8O1Dn!da9JVA!VCBAmEyv$Q4u|r2Oy}0p!k6pOu=~ z8ayJmQ9M6^`ZL|U{D>7O3N=;BWVkX`0Nx74d8G7B!n63#R#sQBTR;STp{V-=EKy=n|hqsfR!uFc3lW0c( ztUeB)#yY-rA+YBSz@{Kh^8o3@iP8Y;kOIAfPZX5D*YRFd$G+aG;QA;NalU$f#gYAgHLYFfd5Cm=NgDSQuca9S=K&000A6 zNklK2q*(aRk~!rCt78%(h(7K ze?S!prbbaZL`}N%Phj+tiV4NZ!c-{?Rd#w`|H3A2nnMD?``ml)&UYa6h>?9zO=Xry z=HGKONYNeuvSb}8B%^4lWF$*SLjanh$y%~rFk1r1%S1^6gx+L2S|UUduk5`LS8pKz zG?FLs`oiK|-7@L{uoeeWGU&`;7J?EYMI(9?kclbu2J-+Yp^>K%B1KH*>Y^lMV3Low zkPAWshSpsm4}i8FF%bSR8cnbj86@5!Rq%B;0xT8)xe(}<``xur@?Fjd!$6-@&(-16~EI8AKq2Apz&sq8&jGB3uGvoYSL=i0VLuK)6k& z8GSqo0GT;pnI@cu$n(K?4ZFuCOb9D_BPT41dUO|zxwx|T=}FEnF@I8#+3h!jgJY4Q z1_`18od@i#@a@4sl)!7*OlS~k&=bJH=TZx2WrD+sktOuXe7k?t?uv^DzYqZ6 zwH3RF9?Lz+BPj> zOoN=IPQIgPLg%~$r^L4HAy$i6(EnR`ioxQ+yx7% z{diw~*W-ssvi)J0&J7I$PiNUaiezS~sPKTQU9MrY2|5J|P$5wq&|fl{ODoR4k2c3P$1 z{6Dva7E;wYrOQ@{T4R>r0Lwi$^yOBm@o{1$IEZ16B^~L;s5)uVM4;r|_p~#T5_Kfz vyC2RdSr55${b3-z`yaq)Jgf&*9zFg7V3TszoGV|-00000NkvXXu0mjf@yoJ@ diff --git a/graphics/pokemon/breloom/front.png b/graphics/pokemon/breloom/front.png deleted file mode 100644 index ebfe14335fd80493d91b4c76d8bf455fbee50c52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 789 zcmV+w1M2*VP)%{dnXmNGYNfy|> zg-9PI-u|BJW`Uf<8hl-*vUWcHnVsGJt!bYcmi6UaTDK@2TW9h^ioq(W(b<0Okw0FU!570NOlx5n{o49sB?C&25nKp;y-*wDeX z9ThMaB}SZD2oQ%-=X4xf6aZ^9({$HyPg;<%EN2?vhdLdz&T&aVhVHV6#lO__K$gg> zpM;GdQ+pWfWRpCXAIdq$iJC7YvE^waJy3vMnF%QYJZ-kk+cgGTAxeRxT6_Q-rHMyz zz-e#FL$hv{ZNL<75dwfjBdG#!z;;4JuxXmx9ov8p4)YN3p;_Oz0V8CDPF{}RZ>CKJ zQM7>Trz?Ek%fr{(RlU9!hgOA~V2Z%x{^532ol-82Ex-tadG-Dw@bNwjav_ebNg7X6 zrvfGqQ)iK9_(qgnf60008! zNklzv2Nl(5QYtsA7B>nDY+}y3AS|Z?jY%nHq-`Xi9}}u+aygQAzz*#x-wT? z%CnRd+oidR=9)C{P&aE6FvQSj3MBM@^Uv(gELhfu3t)%!O1l#t(isoxgXRJM_E}J` zeLtY9i4Z}(ya+TaZ6(BBpwjMoB9HS@gBpxGD*#G?78nhYKFV9T$n-woKETG7=t3W$ zC0Mh(Ng+5i5SS2MEJ04d0Mg=Qq1q+4c>z>`g;v#AsPWl56Kb*xjnEz#K=j7#7hAwTfOJ5_3?$q5}n{7hyOLFDOsz|E%hJDE8mU@#8f z0S%+y-6u0JKyfk>Z~88`1Nh%-twnIB6}o%hQwFmWYqF$@Ts;3KhM=-PdTv~Z?JK;BAG7j}4ryfoH9!~fRB4AMo0-OoyDvI^f=2dGP&h&nh1@U@<<0czhA8zAYyL{W$HzXYs@ zUFA8DJ#mxnTrC%|*6T@C8P6R|dj!PJ^~-V#I8M3wGUTSXVqYJw|IK6lWNjRDngNlz zT14#e=ogjnw}H%V5Ucs}<>B!LvnC50%kys|REsaK2}4cysCNM4H`3nn^DCnRrfIPP zU17eYRqf4}<^r-PJ}a7|8)m@OLahL46+>b+w^8bt;wD^cJ7kt%YsAbTl~#GkRr>ya l6-fr}zVy6bc~Jha@gG_F2dcwaM6mz>002ovPDHLkV1nu-eKG(5 diff --git a/graphics/pokemon/bronzor/front.png b/graphics/pokemon/bronzor/front.png deleted file mode 100644 index 71a928cc3b4eb57eb080293c7aa092c0e10a6acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWU2v~S%G%S#asBlI6o;(2RME|%GLtz7v*TEdSz3|4Eha^^2Ryq+!nY?LSKgtbhjO&cAR9k1)V-2S|t z_pE^z6Gw&=n}ge>Od(x0DTjxZPdwTtRv3S-o2Sb7Yr)L5DyQO{HVJ&;kqQ>sEuFBT zfzM|CoXgXhrnTGNoBlL9Zu;E^aW!D$z9Pn1X>+q`i zmZWD`t;_d=8|0(5B#A7Ww4&5wYnw@u>_Lu5Zsl#BauYdprDD9>(Xcz z-MqtxkA1DabXob0#QMn@bC)M3|L+c5`+3UVd$XL*#QneY=J(oXZ@%;2-Cf7feAw%n T_xrcAK*8(j>gTe~DWM4fPIt4| diff --git a/graphics/pokemon/budew/front.png b/graphics/pokemon/budew/front.png deleted file mode 100644 index 09a81838ad521b7139b39e69d9172dc17e84892c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmV;o0Z9IdP)rkPr|MI9Mon&{&Xw0Ql%=;J7#-P)IO%U`UW~pvZXGcz^%^00000(3CI70003( zNklT8qs!y5NOw^JfzM@1jY&!XKw}W7*(p|@C6B9 z0RFkUJMVR_%3bgAefL?G9p|cltQz~p_e75bm=K*I84z|mT?+68^92zx5+W2K0fe3} z#4Ryn6m!p~fC)g{3|k}s&+!-sTn;b*;;QNlBA@`LZ~YnJ*CP%w5m2)gARztOI3Skf zFi*B47@`3%-%Gj0OL9o0l&?I-BKS<+TVjIUgPo8jaw8caHS6%WkrsG|CI&p&0crMu z0h5>MK1nmRj@jiBgW{xiE2R!O1{}K)V)sQKoAG;McxNs)*E!K#}R@q{+88!RsEkc^W(J5xz~la8af$nyMB|V= zz}_OpgC%0n2t4}bPl2ciWR3I182Hq@CFBCn&J+hgf5GAEfl^#>WrqM*#n@jxh`VNdMcl5Lljwg$naj@jlr)0UR>L6s=r~vWWIgYs`$Vt$q%W3Oq1iV0;bGGDr)Swv&gUyO#=b3;v+FxqReH=87E546|}0 zxyoEXhX|b0(qpal4oG0zwV{egKo`iN61DNFO2JnnIt5zZ4jw4QIK{LDIFLw?*pL`VNH~y?fat(5aByJIu&4kq`1ttvXkef)5Xi{LzVcSI0004! zNkl>OK`Sl9-wDcaBxU_ zFW}H@Lcys|kVmj%9Q8{P9PXl%gV6u_|K+>y4q{om?DFT?`>k(~>T=)r4jX>6UD;m* zLB~0(2G|FI?|24acgq1maCz)^jDTNvXPD{mDF~dSa{~}FArdtdTj1*>I2QuA5=jYK zhAkr@CcqP=(vuSCXWZfd5L?i3TAmqjkpKe6@jY#c`fx6A$(xT6gigx@>R9MkC{Q*EoD3pMK>Bopw8d@=env~K6 z>S+m7+O~_LF!a`VOxxBd#_5C@f4v$Zmc3fNn7Z#&e7wuQ$R}NMz((YrPQm~H002ov JPDHLkV1fcf<@f*q diff --git a/graphics/pokemon/buneary/front.png b/graphics/pokemon/buneary/front.png deleted file mode 100644 index efb01359d430686eef174527feb68c84ec0fd73f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmV+l0`>igP)Kls!(vKoEr;$ubQEwiSA>A-%m4v?=^k zPz8D7HZjUZqC(d|r-KvX=*)%&z>H1lN7`%8_&13;utWF*#E zej+8LI?WR?fg}O(cK|UWPPJCjkdaoo2#l0cQUU>qI+Fk|9Eann1gro+2DS%);C0t7 zeh9pw2za-@0Bl6x3-(V%G4(3;nPC42&{QyIt69@7VFj@c-Bta0C|MzK57AZ`ltcw3hm>oZVYr*B4Asz z5>X7Rgkr(_w968JtEO+E46{ku&N%>@gidXMi|}njeyR*RW3^0mp63%5`25wSic25` zYS5_wMAW7*5uR9@NOf|?#B}Ke4|Fs^mkGc!%N94W6k!Z~y#Fs&AI(&0&kY^^$^ZZW M07*qoM6N<$g7?VM)c^nh diff --git a/graphics/pokemon/bunnelby/front.png b/graphics/pokemon/bunnelby/front.png deleted file mode 100644 index d307c4ff339e397a4f9fdd1f4e51012b9694ad68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmV;90&)F`P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_NGK4Xa5!*KAOHXWI5;@4u&8)IQ1F0| zh=_Q|z`*$U_)sVi00000000000Pv%<@c;k-32;bRa{vGi!vFvd!vV){sAK>D0q03X zK~zY`)zv>w+%OaX@E0lBNmAI8>leu7gv1uWoMd$=Lo5X*)ZF7v>?imFy>!NjV)Y|* zg#kVtwz*@-<(V!WYA=!f%X|Kp82(A|4nFCQ5+{g~bQ112hr6&|n&?^#!-i@00irb9 z13K)kElN$@1G??&_HknB5QG|R8{^!R0q~M(lIAn>804cMjd!gSNOa?|1vmOBoDF9= zHE&^U0N%vM_+$TABAno^H}BgA3{hO-1uzmHpRyB+}$A8jKGyx;6+Fk?ept}SRr zfyuqxr~<@o^K&GF4Y6$A!Fm(`N7XzOP%WF$3;;e?{VxeszZnl;#YRHVKS%&d^s+2_ zRRAqoTqrVtEbb<0&gKHX;c-_qJ zp0WH+fH@*_&eQL3p}SX%93xtQR0a?nuY?Y;paApP>l0%InF8RPo#*+C?)NkEiN=oI zJex#W>WBcBhmwcfbsiRavsDq4BtU^&)%0$NRfW7mPA!$+c0zUnFQ{|t%d(#9)vl>w za*1|3$RSvuPd2#{T+I#m;Q-u#M-uo-a@DFw`bOf4u?t0i-Yh%OeHHzG$YcEz_u>;e o0z1_g%G7lrz+7J;{AUH=4IMb8qS!f~0RR9107*qoM6N<$f}F?}k^lez diff --git a/graphics/pokemon/burmy/front.png b/graphics/pokemon/burmy/front.png deleted file mode 100644 index 20e449da87023f317b15367182a1bed485d385ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 488 zcmVP)Px#Fi=cXMVQc_DJd~pT3R_dL4$*P5D*YCN;!L+N>Xz{|J6#Iiz$n0N@7Ymz?f(N z000000AYRq&j0`cW=TXrR9J=WmO*yIFbG5~p+PwI{m)wl#rq(ZHSe{}WYL zLB&S^Nv&rjzuI6vZUK(+=>@53<+oZ>Yg{R)iJO(?8@ZJ3&LgBRe*S%EKu>n*FFbE!@E z05?L;k2HbBBJnQ=0!_WaT{!*a0hrS#qCVCHAWRfW2_t&`sN#2k8ZB%(Rl~>#Lgo!? z1)>P%HZ~;H#aKdS*GO&2{850#k4AdU5@25y3-A%7Tfk$g4rJ0`HlB+Bog^b$Rc($n(Chjjsk!1f8+UTY#ItV}QpN;NiqMzAOJF ez468yKgJ)>QVk14g6d2F0000Px#Fi=cXMVQc_DJe08gnK$VLRwl{5D*ZAb7R)Ub7N9ct(0^B)=Hd=DPwDEgp7>v z*pL7K0Co9!vH$=9L`g(JR9J=WmBE(7AP7aHAWEYD|GNdP?Q~WHta>JIe{WvEnB%zf z4M{1;=a>KxV}gVb;*SInGhjw60UmP36cD5!FC)a@F-R#UK%HU0fH{Yjkb=C95FoOH zqs;hukS_@X74#HpyoMytCy8GmaFr1HcxsiEXRg#7yuxx7)D^p-DXu#Jb{Uk%wFK}9 z=)AHvI4{%+Y&FR4uA&9X`K(Y)%WRBi0Ud%g@Ck%1^BB5#nIS1U1+)ZgF~|;>SZUV7 zIH$-KLtD=z;=04!j1}HlYcy5B{)s;ge-_{vy?(~l;J1JmZ#awiQ_#E8wk_bG{qD6( z9kW1AqGZ+Yql1|j0r3vZ0%Q{$MWNpNOJn4xK;C|=_S(mKHOmxWyynM_-%}w5d42Nq w-xc2RTxR{#J207*qoM6N<$g8Y)j&j0`b diff --git a/graphics/pokemon/burmy/trash_cloak/front.png b/graphics/pokemon/burmy/trash_cloak/front.png deleted file mode 100644 index 39004627d58c86ade363eca822cd7d42837a1fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmVCl(9|%K@f)b0_U}2;tO2v0StE%G}j12 zVtEO)-z0&HVpvZiV=h@{S$A zi36yC1Ms@82=N&Y)T15`G^0~~LwJ?(05tdwqTvAQ9mhFzLSQp^p`)b-F<(ODdCvN^ z1kPEY837y8YmMS5cUeaYD_k%mCTKM!{V^`%3qw#N0$e80RfsPHP+$@Qv=N6C@cfp* z`kLMmllX$4k_dhKpnO9)Jo|E0mzk|p317CZu3c+mgyr2 zh*T=2(vLO;^o^zUEZq_j{Lf8gHQN#c{9QJfTi}lPb^M+1a|2`yAjC~I6g8rQu&d>m y?6_A@4J6Uwdrj$=b9O}LFZd_MJVFltzv>H*2b_BARaB7x0000Px#Fi=cXMVQc_0000nF;ZGebAyAu?(Y9{VywNr=H_C9Vlg@YoU|}7P~I^yQhUW} zz0L6W_`V=PJpcd#lu1NER9J=Wmf4o0FbqVa#ViT%|DQW5$p!;Xpr_B7mx&&7dP!ZE zOETv1_||_=^jkguk{~|?5bXq;0lEhwMl}F*&kC`!Cfx{ST?5~8K%695t%M9PBRBP$ zf*|EDdn5M@D03nFP!9m)R!J+sSx-?deS+FP!UEMkN(m8mX-gdu#3IlFqbfzZ|CV@0 zo|7C~gA64A>K4uhD!Ibw5fF>}CvrR*Smgq_$3T|dtR37T&({pu)Y$%U2z)6Q+qzYT zpRXxP%m54fA+SD_9aJG+8L$zW*-sG~2}iL5%@4&312F7E2nW_kQr4^%lTGurJzC_G<;_(LIS9xCO8fp`Qb=_ybk$?%w_y7O^`I9pa0006F zNkl1gK4Yg=M!cqO-U(DNa={py$tEmD5dw=E!+e3Qpk%P>vb@l{g} zu)bxQed{hU`f`9;lUvieLo{xrzN&Zeiz9qAR9yyCZsx!TsB4p%EnR|kgCAX-U97d4 zEw7>bWZlK-_g@;auW|r>PB6V#*U%4SetGoaTvQmq1i1_-vl0GLnun});6GY~pES(! z6!J{%@UZuuT8HeD&~vE3&{<5Wp0~Q~%iG;WEM%*~LZe9;QhUs{#;P zBwTDE3d;6zRdUSd0ncZkVmca*GafO-in{|eOwoth0!2HL1@~fzFvsd1$Z?WzrP_&x z_RwFBy@6Yc^g7OWiPzJ&^MKIz{IfIQA@{gK!;1R=IREDQTfp-?E=n9LM0H&BcR<;3 zxj2(H7Qi58x=0#89mYF=vRcd(qIWhcgq|l1Dx%8vQ2`G?A#I4gC2!jsfYkV3ErZQB z!+{l#4cpng&<;Ns8^dA%P`w8j9CXxpw@IJgZYPc&`lPLI7p)!{$@@aYzed6J-b#8a cPWlh@8)LrHxxuZae*gdg07*qoM6N<$f`9oT1ONa4 diff --git a/graphics/pokemon/cacturne/front.png b/graphics/pokemon/cacturne/front.png deleted file mode 100644 index 0e7587f6f71cfb7e9cc51fe314d8b02999be9282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmV-L1G@Z)P)Px#Fi=cXMF6nqAW{Gj5D<&KVq&yvN^=k~lu{UKAWEcCq}6kaYB^F;QufUNd!%B$ z?t^G(XsAn`4FCWF!%0LzR9J}}A6>v@`@!tPz1*XZ}(Hp_}`HmOh?*YWw4n%GMCV$5Vv&(>A z3Dg(BPlVY!8@>>(AY_vl12)8fKSd^){qvasVFNf1p;u1{aLhhO{j&!+J^~BsDS?xL zVuAA=fmtQz-hcxsi7<6~a2WKQU_Vbh>kfpEi3@!&9wa0SxNkmCExO@&s+nui`^SfR zy_!oJ0%nW;>;DU{_zM86MKc|c81;HZYT5#HqA7@%4PZtFF!@3V66u3+{bnjRLE|ac z(6!|+o8dHV(nRP0latfxtsLH4Bo4KQ=kMG*w-95UZAzhIMBis4zd^m)!g+!nEHPRL z(jK@rcf%P<_wETI`e4f1iXlv@R=aef@)ZHzfJ*Z;eOGtvQR29agmo};NH7fvECtFb ztP?nQpPO9G$4y=g4@-ukWoQ1bD$RS+s?!LIjqq;RiP6Rev93WKvg@KQi|Yv)n|`wu z(dc6%&jCz&w-KUPPe4WR&)5NS#N$c@!jgJg2E>|8$aC`^(E{?DCX=c3Nxy`ymaxv= znb5spC73knmwheb2w=!#KaDA4J~$fiem%R5^(AAD^2v$GWqSgOw?7U8sI_D*;n`0= zYpzMBtDaFiKMp#6$@!{h>iJ7uZ9e2~ymnbEiOKVyy>8nu5XU7z2r^c(vvm=rxKoFSNjqe*T_VzCpjI>%NL<6#R3NA!GVLme zMEU@(^8|s{0?m-AL;3_=vl$uv3_X&vY{O3G_6%4M|G)d-@hHRi*UYwU{dh|Ea8Pd= zCdRh?VvBBiZp#bmhKUez{cV7Q!PhtT5-hnbKmx9T1Y$4P7GW<*pa|DQNf%?(d+6N!NFiZvBn(s@F&DMsJX>=sP3B!3edJ0ENBbdDggS z6lrq}FdHAC1vWxqMmZf`q@1k*^n~{cRO>n@WRyyTiq#ZD8qq9s_Y>deR2!q>Y$4|W zM}4x10xyvGY*7xu+DbcPL<-gE-;_=^HS&%WNmdO-(E z?+N_IS2sBn0fCFVTPzDDra}Rh zYy@06u$Sb$Ujo-EyaJRt3V5A-0D!}}Y40UqdJ1sw9RLJlOo*)jvXPFkP+?PrntQ7R z5QWkL)c zOGmJfvgphp+7bMARIs#c1d)1O4M#{dV2J_fWN~o_AuR~303hU`MYA;RSC_X#=8yf3 zJXtwfD#XdG^Eh7x=JT2QOvqcWhJbWtr22eV0H}NR07*qoM6N<$f=C>g-~a#s diff --git a/graphics/pokemon/carbink/front.png b/graphics/pokemon/carbink/front.png deleted file mode 100644 index 31db1394a04c4605e4c1251a5ebf14cc470a2613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_5D*YJKv-yCh={1j`1tsUfS|zO_!wBI zpqR)2p!j%*uvozG*x1D0l`T` zK~zY`?UTQ5+b|G^X{DPN(?QaqODYBKY@PqWgMp%A(FbTRMQe0Oh#s`J0f+8}Jr)L1 z@BzAH^3cFT&^O3Z1kMuZT|!Ek!jp#1{sH3heLRXsQtYw|AK7Ww4~tN{Hh4DQ`g)`Syd1;)EzLWY-ti2ct5Fi7|wfvOCfy8xhqQLi83Fm{NWYfku!c!%yILcC}A9#%Q|>V_F3Os2Sfbnvzx@@QgVSkf&PMG^jHq^+HL{$=WT z@h=b#$=a1S-mkpSXM~9}hIs3iDhl`+2rbgy05@0wYdfJp7 diff --git a/graphics/pokemon/carnivine/front.png b/graphics/pokemon/carnivine/front.png deleted file mode 100644 index 2d26ac90484e7a138ab95f414b790075cbb49da8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmV+v1MB>WP)0|5)00009 za7bBm000ie000ie0hKEb8vpKls#+PKp4j_gCO22A-ADq@kJtZzGg6< z93G|dW-E6%j!UN`yP@VhrbDpk6yk<(cnUNWJOzvgb5jOyqFcA*8}vi;xpQ7^t5cUk z{ve<2|4+}`okYls{y#0bs8`v(>#L6^G|0PNxWMOy)4-~gTuppvv3~@GsLvQ;J^YA0(7Pi ze@fUCQ0D;UnJSzDPRJkyfL+P`S)VwePd$tRUTs%Of4&PRThU0ILAi*WFLZ_tLv5)|v*efQpMw+wI* zUGj2cRK5308+T~Dy@Cn6w-?bD$ZIviLy=R8v0)Kcn}e4VKk-(M0rDRwO{Im{VT|<| zQ>776B!>j};Q7YCPJd~I7Gv66!z$Skxf9~laKKO&H|h22O;c+lLpE z5k_a%tLbezX&P^As0}RG8MC3fn$|t8xwmQB9GME38Zu@ZYUti@jK${qdL+`{>Es(k zmMD#tCHi{YLtgcm8j(*wCyk09IXz~j&P)nr3H+t2#1Z`ba|No7z`smc2sE`)NEG{8 zW4tauZ-Fn45Eb{kEwC*NqwS2lydwS6cby}WJnoty?tId1LESw)mz|{ZWZwnOMojl; zxeZYRb`vR&o*k-(gv$dCVWUctgkmqf)O526hJSYo>|j(Yy_m?n^B`U_q%4>I#`7QCgNDgH}S%mlxE}c5M+}@+3MIpv|40SWf~q+Sav*C)$ zM@WF6dW6n>upUbB-Ok#fS|oxW{{LLaqekPud#tnf_nW|&r#}pK0tkdiHQ~egQJ^~! ziIbuLw4`@r-wcJ}|c|OUY2+ z0b1yBpYI4@JM*$4+y|(D!P%BTgzqN3)dU`UOb9*1s^3$kp6>LAZ{Lh%;6&fB8Y2X_*A`Jke4Od0q$x*h&zmR9zMu!NfvnM z#IQ<3bgL|qqy`iovtaU#UduwL`6f!!Czeh*6XS?+&Y3G&Pl-qa^)L&4%o~9icSix| z5gWxrUID~g0az0=<2?2Z#wJ-D^H>8(4H#|(G$x#X(rXmSvP=VCNqvEhnT_F?eDWu* zmH{835vEB=GNr+-WT@h?xF|SK@IXlTfPkR5(BNozEuB^X0006d zNklljA6aZjb9x`;XQ4$dtGa!V7g02p!2pPRw;mmAVcMBbmq7bVpED^GY zE|ygxcR=cx>n|XpBglir!q6YUP+;IU@Ltj?6hAvN;tg5emwWHtoln#Lx6rqNTRr^k zRf8tx^lo*9XC|tk8aVDYFxGmyQw#LKZ~`4GX)^*yZjYNXXk)L9ISJbCuJk& zf(zc4LIP++#5kIQbJvkVKrWnCfUzT`FzE_wAf@!N!ngu70R%O`+66Gi7N~Kxg_{9z z_m~#Gl0=hj(Mh0#EXy9pG;p)T@jC$0$fJQu9L&QKLX?}>IliM#{Z&3oJ+Hitol~XG zI#+=6a*5@MQcIO(dnjyT4$Fl)J5h`DNgYsXG3%ySqXcyGgTi<>?4CoB)U-^^vNma} z<=_1Y`5zyL-_9plVp-g`qc4YpuStt@JhjbE494Z?-o?fHhfmqz zAht0t*o~bsHoDAz$d8H`BeIG6U=*JV zAS*HF)QuV<00Lk_90dSx|C3w;YSK^xw!U9riTPU+Xz*1PE5IVMgl2f_3KJvZCbdz6FT-IsLQo8%15-uSS$bf&c&j07*qoM6N<$f-pHR Awg3PC diff --git a/graphics/pokemon/cascoon/front.png b/graphics/pokemon/cascoon/front.png deleted file mode 100644 index 54081095cc1deb0a0233ffc294993765e17e75d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)Klud5JFc5|FbAcG8UQ-LAc1MMqeUeEI zKrnl|!BV$9LRY9)=qbA9avg_|#tsmvYaUWicpvZ07!=RD>#mFP=YyMYegVh_H?I>w zxVh93|9vaH418Q|Sf7BtBNPs>T(v{M+$V&X0JkBi4dE9r6adz%P>e=c)+RUwA;cDn z*loZFvGPJ*3ZpFn7y%e@_Jsh*GxHf4V#$`AeJsf#LSGMo0EasR7_m@3(ah>tK%XEu zmQbziArb`kt-TWkK$R$a&_F@C>jL(`5pWg>GUx(?s1a}ryhT;kq6dnq8UY*-*eu&6 zcmZ!Nki@`+c=~LQffto@fkyydZVrbB^bu&rK!dwIe;s1{IibiZ>l9I82OLj;)Xo-R zs&oeV`|;SI4U%eY9rQZYib}}z_m2jALx46wqTWZGC7J?7C)E;PiZLWfm(Li+1={3l zyizSCjyPi+qTw7&8n?aBQ~!+Ft1x3LgV=wB0g=c?Nvf{-I0uV!=Hxnxvs*68uc8T{ sxmn;@kAN$HoEjpZ0KC~0aMwTe3mnFKW-vkq!TPx#Fi=cXMVQc_dpSz~dqMxSIsZXHAbU!z_CWvu02o?9YSl3@tU>nfi`Bh@dxJ_y z$SCmWh*r%*X8-^JZb?KzR9J=WmBE&SFbGABnm`Eo|KFVlQIE@@yN>U)UG-jpkak(V zeEIU_my=R@$FJL(-l)>PLXeTP?fYXxDJg9b&;!9RppzXubDYnGU|3h+RI9`d0)fSF zM50~fQp}JXZ>?$6Aaw`^-$^wl$X<7HzP8?pf+cXhr4c<5h;5OK7KnOSz&6I3S=^v1 zLZPE%E+)VNh$#f28ZmG!;wWku!GT5uRIP=KN7LXl$zkYyO5g`683J+~pBSd`Sc@sc zc&?!qm{jT^(8(I^d zxGn*vp?p?0I|Nh>ntTkDuj{}(Spvq0mtAJ^9@MV`V>bgA%Symqf(2{A%FNes%<&DU z2Hv^=kGln4W;1{86Au*d*lut;zqz}VpU_}H+(Sorw(*yxaGaDcF|xWE7a+u^;70004r zNklUGFkJg~GyDQLkDAmW&zIQP#G(#^S3>`-3N zp>&YmHz=W#gR9_VKY<|l8N8(HyJXa%Z@A_Cc<&`I7l3{I+px-cpq5vHH8Rszz>c!= z#akHF4Y_V|^gI~4bdLisDR2Xp>kdfJ^L8CHAbaRkqPoCX7P$5-mQQwh1F-p9yyhu*B>~u# zcpc%#IpUHA5X8E=l%J6i=<2ewX(@VJDR`FsxUEdzR7-=71}}y@wDkyQ{mZRs1hDaG zDet9flzwPXm?$OXc3Jw4-)YfQIu;jSQxkw;TP^$-f4VVE0d`ZZFmfEz-EgW^rG*aa zRXE^ah>zomssu9%aEUlVR=0g9P%Z447|T&8Og9f;ECv>18KA&iCWP=!yVQRMQ5lMw zs2IViXn=IHdPsdVGe8=4F39;u0mz*EKK?9z0f7a0C)k8Z2><{907*qoM6N<$g5vSy Avh;J^|uIxbT!6 zf8+xwcqIo2CYXF=y~+qno&!>M}hmE$FReiQEP$Z0+1a6PB*#p$qjs& zJOEh-451sOW3O(6ZOVf0PK%cYNRxF*LuL%{xD5Ti7wg#Y^I&2BmkkO zI|%vHReSHXp76!wrK#!+czrhuKACPr1B~ez@|OgBHTBv8W*MSvoQoDv0QGjq7o0E5 zyYN*pJ!=7mf_-dvTke2OTQ)%YjbwmHt=Pwt1FEU1|Kzg10w0p=Bem?Kl1QdtgW~r!Olr}4aj8rLtJnY{JUOgZ70Z@?I=3r?7rUe1E(-x4W zR6+)TWbCQ17FNMpNI~ut^?>$3`nZ~}Ly`ozYp(ww?Uqc@c%YiTktG>Z)QzDmZ4rpf z%uN6`TG5$%fNPSLcJpguctwDjzaUBk|Ak$frQ5NUSy#N68s$<$t=d0`^jk#oC^qPD zYy~=iZqW)aM05ZPdu(U2yVbn3M03u10`8OfJjo(Njs)CQgj8DvseSDNjtT09LK>ot-z?I%S69!a1B-pBbs^=Kv9b|FZr9yxOI*YZ7_s00000NkvXX Hu0mjfU1=^z diff --git a/graphics/pokemon/chansey/front.png b/graphics/pokemon/chansey/front.png deleted file mode 100644 index 4dd2e2fe277c4fa97cf22d424880f6c735a28520..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0Px#Fi=cXMVQc_=6i#SK|%lK=Ks~+i$Ou|dwcezocQ?o5D*ZHK|%JUw5+6ab81TF z-n{?-016DnX8-^J%}GQ-R9J=WmFseZAPh!@8YD%1|HoYt!bJq6+rNG@9e28(V+d|o zmN#$SOhjqQ*R)bUD@A?f@U+h=QGZr2o_L=L0|4~-2?H2oqC>BZ3=N(n!M1JOce>vO z%uX5P=@hz=Z^yN~Jam!-l(ORA%SCGFDIoJowbswy_`gl+gqwjCe)UT3l#8wmzDXND zt6>Q1&pZ{ZOPKz#MMEus)B)YxLK2W8Y?f&(L3)5#LS;Y5KyK6OKr|q>AD`9$((RT5 z5TWx576t>!(cI3G_w`@5)PE_DpAx9lxNOk!zCn-A0u|qf(%>AT3B79Lbq7>ZMS*j^ zRb9LiP!Fy`7t-f1EvO%#_({RK?)!dU!MtGKt+o5nC}2)NxV7hb-1#X%;JqLj+&6+V z3*4L_8jkZ6J{a63qv@OlDMy75`9(Xo(vP+fK*c*8p0}D`SCb9?b1m?5ra$0CV5A88 zPx#Fi=cXMVQc_=s+NVFc|Ql5a_U2_~2;GQb7<95blF12tZIEaFEEz$oTm90D$=J z-h1w}S{KMs&Hw-dZAnByR9Ju>x8(zOR_A; zvP{Q1zx?@F*H!-h53n`>(N|)dzTO&vety0o*z|S1{oYC#a)tSGJ^Ol2FaS6ua&PoL z8uG~^{WXGKLrRH7n{>QD5V7jju7nT(MW}`35PioN0jX9ODFLWHJg5Z#S%<-92shXO zX5cq=f|9H6GL#`{o#yUYa1uFUsO+;)$ z)1LtM5uoAcTnWv>t<5+9MhmhzIX8kwrv&;Kkb6K7N===UXnAa3ioOTPS0_NR*aJEX zZh+_rP%;gBGzYi=VlNfpB(4j~klIJJ*z~dv4*>)~OO6>!N6-^61F$eqzmh3pyuD0_l}T7 ze3C>IfD)pkoB&Elbwp37h)CeQq!#%ex#Gaw`T|FjtL$!0QrMbZ8pac)Pr(P2AqJ+ z9)7r5V16C}*eR-F0!S7kVMEAI1{Po5lJuAnB##?eNqewI19eArfg>R5QW8~9+ADpc z=Nw?k4E-CxvqwDZ1E9BQDa1>?1B?&|eK!J2W$D)@^;oo0-`}()Xx>6Aqd>YrvN(`#vpor0T^$8_8Z57z}JK}&3`BrLV6p+ zCTE82>2L;?s(uZSzPN3)O`Ib1ZyW&oh8>g5u36aM5wJ{4Mei;fZ~HsIOLIGD-|1fg d+Vv*x{sPnANiW%&oW%eD002ovPDHLkV1ht2y4C;y diff --git a/graphics/pokemon/charmander/front.png b/graphics/pokemon/charmander/front.png deleted file mode 100644 index eb0a9590d997ad1972569ca6df798dcc42e722bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)Kl)p~HFc8Lrr3?*|9Wqv`-G!w{!4$Cr zJ0Y^@k^v#LGp|s@3$T@`Yw6OpeFm0-IvNQv<7eQUq@X%>gqRrm4gI70x&h#D;O+tCW5C})qYCIlk{@7f5^YF8Xav9X#)8Jo1O)7|ha-A&=5nU-ZK;5n2|yjC)Y?*3;6MYV zuhDrmUIIl8WN|Ng1K_m;+BN{<>Z1Tyz7Ru91Mj*C#BBCQu`aQMWiqfv(*p3OQWCb= zg^e{=)e0%^NU4Ds)*>z5O?kHfaDt^J0RV9(B?Z4^a%D5W4~EDjg@tD?ElXT`1}t+4 zAIu&HKzoH^%ZQ2+h1uG+8RqKk=Wi8t-XXpa`PXoG??_Qfh?<*jtH0|D|BQmCgt?59 P00000NkvXXu0mjfSg-s? diff --git a/graphics/pokemon/charmeleon/front.png b/graphics/pokemon/charmeleon/front.png deleted file mode 100644 index bdbd577e223dc1dafe79c248e29923195ab60363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmVCl)Y}#P!z`xi6v*m$qSH#2S|GR01>g> z0SPhW+JHb}uup^l$%8)#OR`k7%neQ1BN|?SH|Ug^EoEV?x_~-{bL|jcf2c)bgR@*+ z|9|&<-E$4_ui5RJfaXm=<*(v*{sg)v1WBw@xpUp=Dq}kx*fK_5X9SSg+H4hkSUAt* zy@GBQXcN$>vg+?z6f5VV#kvh9doj_?5VxB3j1GZ?PEP`wT5CsRQnP$SbR|$5 z!DO>n(XkMFGSJf60Hc|aL=F+j$MZA=t={NT2I>jAdXnRd$TS@Z(C*%2Q2QKU?3k*& z|K)=<+ya%lw%cd$e$K5pHv(Rcjw~DXqgh-SJrK$Ou5NNUnU(Ezj|Zz0AR>9M@}>J$JqzNC%5 zS`Eqok7jwJpYvV`Fr-ovef7;K0F(reg#J1Pf?|v@bszC8cCh+h0;oT^iLaK=V&F?Igz;7<2=tY5)KL07*qoM6N<$f*`n4j{pDw diff --git a/graphics/pokemon/chatot/front.png b/graphics/pokemon/chatot/front.png deleted file mode 100644 index 41d53718e40c13f920c10f42b2e692c821bf50ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmV+@0@wYCP){kjNk~cqm}7pok#w&_Ezy5C8xG^cvp800009 za7bBm000ie000ie0hKEb8vpK(=kuNKoke?yV?)XcNUF?g=ZNZpkZTZ z$w4#`l1k5=MEU_-bR}`%D>N>|xELoBwoXPybTCc^23LoE2CoETQhH@Fao}yu|JV24 zU4f8I{oA7J05jG!u$^_Fv<_hY42D?B6%t_X5N1h{(}E(Gz)^$B0$7T-0Ssnsxhg=n zZ7eaX<~J08*>)9~DLkEJ0*VK=9N!cMX(+&=ngXDac?z}!-GaymH6eKRj)>(`#8zKG zW=?i5P!zD#3M$zbO)syQR{)S5JOvmI{3e)z5)6m#PA>tTV#M%z0CK|b3T8?i4O{>o z1V4v>^mXd)IhT1&>?JKIFee4dXMwDK55kdrVpS^zG|`np2rmpD6R`5hH6ib~n*#_6 zUwAeDI1D3$0^-UC(ZosFf0y}9w10~hPwz+w*C*|dP&SC7F|NkRLFeqTY)D diff --git a/graphics/pokemon/cherubi/front.png b/graphics/pokemon/cherubi/front.png deleted file mode 100644 index 75b735e577a52abc12330650baf50d8562f71a44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmV;h0Z;ykP)Px#Fi=cXMVQc_Ide*L%~~-*Qc|Q!L6kud5D;oPN~}R@-eQA;F;YP>G5?FK|Ns90 z000000Dk#~b^rhYE=fc|R9J=WlslrsAPfYp2=oEx{?~mHCXTyEyq1ld6f-Oc`#5%X zc6LGm%fIlK1#p>v%?tx#R&?`jKrFQ;73C`^Sd0Bku~xv&q2>*MNS_h~CZDQcq2h|- zx%d^smHNq|pjIM6%nPOgh^~K>7975Ep&O$t?+lDf$jm8>J>HxE5Qs%pCB8miKx0Ax zIuN>Q#=vq8zBOYE>fL?4Yj78==Xt8*9v6sS4T2TK1u}W>-9^+k!9f8V2MKh!>&6kt670000 diff --git a/graphics/pokemon/chesnaught/front.png b/graphics/pokemon/chesnaught/front.png deleted file mode 100644 index 5e2191810666df6fa503c6b6459e53712e4252c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048 zcmV+z1n2vSP)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMF6nqa9}tP5D@6tn6RK|_y9;?ATTJXAaFn+ z`0(hsxUl&6_-J5YI3NfZcn}yk7)j)R&j0`b32;bRa{vGi!vFvd!vV){sAK>D193@2 zK~zY`y_CO;+ej40$I}OAY{Rwkv-T`cuoroJ%QaV6n&#Stb^7GIffOkWS#>tJ5*%(0 zuFw)#P`APm$bVt8mD8Ajnr%!P?UKf%S>@?Ryq09P%rp{upZUJ;)69G17p~ItLtokB zE7cFhyL*5rN|c1M4-_Oy)qQ|83KCV(B^e-=C^42gV$N zmq-XSkQImk!Gx6fFpv282O~m{q`EoNs%S9LJvw_GNfZSTF!X5Ka1cqD zLKq|uG;o{fHDigMkOhF&W55{3fRsuB(9J)wM&lyRQ7Z@#R#R$O9$Ty1cP(JjZbwVmLS-p5`qIX#GFHunYB* z!5iyh0J!!mQS}er+w0}E^GY1O8A0>CDzl|h34DIzd2nhTS#5uHfdFK3sMS*ss9J8Cvg=$Pl2m))g85!4GYowIJM_{rYe+Lhm<6vWr&|d4xvL@R}5)JRm51a7o z!gC2&_#F)Nzt~#VI0d$ot##)(OHU!ZX-&9`Kd2o^Shq=%hm93}aGW{1qOQd~PwiKH za2|F^LMwEf#ifg{%Q@h`s@Du4t*f6&%3F*(3orWZu*A6MM%R%qq9k{51$cy)^Q3H! z#2h432wlWU?$N^c|5}dcCWe78=dO&~o;y(z1Yn^}Juf*|+T%+X`exKr)N`()9Mt9r zqylvTT$O!nAKU<*+p#8uu6cWv3Y4&W4SFxec_SB*nyKAkbbB@(8FRz2`X3L;}z$3hu5A-t(lTnVF0itaZA7 z@hD3Hx@#Gl84^^oN)E`b-FGC}(*QfHP-i=Zg8&thJp#oM_00E$tR+C7vEqnY&t{){ z{RF5Tn6uC9wf(u5oEtTL-_Oq|8cm$^TJ%=P)P8|dO9bnr9yE)|jHu7cp!KNmRi|M7qC-6fW_&_BucegWKhfL$vAMhvUXc&r41 znhhQUVqi9?p$HoSTF@cC3V_OVfq@Gh8wi?_13?+lBfxX30R&Kly%P1dd)fe1Be31W z0|4mi0?G(?=a78r61eUV8Ub_}V=JI7pd#GeGbyvQ0imXVlAGMfOT;va^nksa4J9HD zeIsy-S9pu)N1-0rd%Q=ar!WCYdvlEKjX6N;`Sq!_F}yGUR#K!Ki%c4URV;OLVVJ^N z!UWYajcG9~IM3)D!f^I`oBEKHCDO=`>bfDI!Q3Kq!T5?PV@->hBu>M|=UM>;49`Ki&_(Px#Fi=cXMZm!LVv8w3Vi<$wF>16a0000%S{Q?rQq}g0?*GNK&1%KP#sB~RVnJHP zDJkxId!eI)&;S4dbxA})R9J=WmFbSdAPj^H37BxC@Bg-I15IjMtG4a%?9H$TZvn86102od_v{EwfWHaw5&+ik z8+HKz=fd6(LV%|y85Tc~-?9Oa^Ww+xbAnJ9fqyB9kY^V{{vevbK8ffHp-eUfP{xv1 tVVP{O71B3xONvpDyq)Eq|Iwqr(hp}L7YaO8YDxeA002ovPDHLkV1jkE-dq3x diff --git a/graphics/pokemon/chimchar/front.png b/graphics/pokemon/chimchar/front.png deleted file mode 100644 index 1a0e606a875800d070872c5ba861a693630224f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmV-p0-XJcP)U~u3_An4doBL$@Y00009 za7bBm000ie000ie0hKEb8vpKlreA9KorL>STP&Y#VxSg%8k36=S!sGBL1r33C_PYvy}bsdN99 zb;JAV{r`G?XF~3DD>ZHc?saYe!nV84gd6aLa9bGQmD^%VFjtEPWi04B>Mdpz;Q$w+ zX9%=~wlrMSUR=>qsNCVJnWW?%E|`hBPiQY0)&qM z0p_|3Mh9|wWCa$d8fy5WOT9pVj{y49>Ad>9m{>zjR|fdHS{Bpq2=L1U__7b*8uq@ zz+XG@4&d2j6JU+>$dcVbV9o~^K)irb6X6^M;y}iGWWD}}gz#8@#N+4R&W{nG5s|cv zf)~dZhzIWwxgXKs^3o1?p&7=kP3g-Ey9GBl;-PL0=-dBRz(gcly_^qPk=;QabiAG3 z6CU;Kcgxo>_E@;hw^?ZYUiXXYh{Uwtg_v3azbF#o#VNoH0aQNrb5&IJOzm1jWC)S7l1%Y*7xMrB002ovPDHLkV1hKEd@3lb^u<`J8zvj z0j)b%#zilYN#|Xj^AH5QT+Z{D!@r5BltV_q0eXZSkPd9?noF0f^;iL5DZyPRfwY3a zBPpFBIH~~9DwVl2!>mjR2pEXXp{6ECOnw6=dLfh#Px#Fi=cXMVQc_T64uIQj}_>=Eal%|IJdA&E^OxS^xk5gJM!rDH#9mgXXj;d%fng z0000006bctF#rGp0!c(cR9J=WmQk~#APj|XA~C_@{{Nr5C!kgYTfO_T51yHJT07@! z5<=kT=h378R0J{e@6AKeZx|tnjN?eEYML3h?IJLjubFX!Q0x+?-7}->gkl$&s;406 zRsZV+dzuci{UU0qhBi zWmOjt4IrKQ-vA|AT12@agp>kg9{{@Ab1p|hbbIXiSAbT) eJbLu#oBjecxDhjJT)jR30000Px#Fi=cXMVQc_YB@2iQZeRYQq|S=q@>LN003fAO8?bby_`z_=9GhKO8@`=00000 z0000002iZ0<^TWzJxN4CR9J=Wl-q8^APfa#12zu(|KD4iP14XxZBKZr#CeFck!E~> z?6$3}to#}xn!`Dz2?OOkB_IyLz+(eZDw#;={w5(yk;G2038FgW1(G@t_SVGs~= ztOXEI%K0`!tRT)sequ&J_FRHKklzgcyI?CWD1(3r;a!mU6vRB4nGoLB=zA--ZVGxY zLm(<%RXSg=`rRPaqkf{^3(mVityYWm!Sj2}dU-YGC%oCd*PiCP5V(A+`|EWWDvmpU z7gR<0KK*|2)gW3`t$qnIgPKhXzVX!%gP2&=k%t7Eh*X&oxZym$lQ--j)!MPU6IWBH zhi2B=u|4r0J?Ke^pp4bALNgh$R3md!H)CKkW$C>ibCf{1 zJwSl`%HA<{Y*7xnhX!o;-skQ}z9$LsTGyMS!x!S~-?!26QAZ78iXW}@DC$WcNYoj{ z4>x)O9uWX25{`vf>i}`P07cFi2sS$89e_(5j_AwjZ6I(VD$(Nt@U-HWfMh?QT#rqM zY0?2?xd!^&U&;>f;XC&rU_ihZ1|~kBo&h!g+6CtGvdkIK4oEt{_e*MWOnGf=V#B@_Tx9>80J%_``qu?K{3U7WH_`8_BqWqlyfFgtliz-f=2 zEo$LcXmt9>z{z`1Wnnvj$nNy&o`A;(+Ji-Zk3v|~E9woa2bfvx0zqn*1z$#?^D$!6 z(KBpJ0{j74AufG=G^8wy$m%2c%bHNa@E= z`aq6c(W{*;q(Tm$oEa@si%lGiJb?5lGGs*pWr|HL0y@yMA(l?WZTjvR*XPz^OvG>t z+{CU8135WH0F6VqwKTw(3k(|uDo_R)5Zj>$2^dgI0>G3&Zo6c=_1wmzMbtx_@<_{U z4K!OItjVPe%~JBa#XbQ+y)#uyL4XnAQcAuDH&NEKCL(0>4#vhz$06MmCAW3@Pv(VE zPNkfLraRNLQqCGvkG<-1ow4*w`^10r*Sh`z9BdF#=@JN=00000NkvXXu0mjfWX4fJ diff --git a/graphics/pokemon/clamperl/front.png b/graphics/pokemon/clamperl/front.png deleted file mode 100644 index dab2d9881d398721004ea079608d459c81721767..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 645 zcmV;00($+4P)4NLX-~(CB!W_^7D3*!YmZ_y7O^2`FcF0006I zNklljA6bJB2l!5idVJ{{QvvsI*D33G}EUw}p6*`0@7t|3fcV#fbbyZIw z5#R%u8<-e~?h~M9MatsLB@*`;IM))SXEz%XL;s`SFYn#E$R^}E|7W1SwYg5|-A(n1 z>r!Zwig^{V7#lzX4QQ7B9KiB$0C3X*)uxcDL2V0>0l3U51Gn6Pp@2Vx9*)a^HR(`> zh+`MA<21}IeL~+uHo`o+4&2t)tv<%TQGn96-eC=NoNcB9VvW`Wn;Z=r8mRZyXL#sq zpkl6f$i|E=gAVg9gIyh<7QbBrx*<-dZ*%ZW2NU%$;!`1J@575lG*HV#^m%@!1P@9M zsl@Y;e{$zSh!08DLIKYk2RjptBF>M6h`3yZ*wL5RX?1xL@n||#EQx}`J=J<$|1gPG zoJSc~ksA5dQilD|x@suJ1+M?H}?x z%&-d$GErwQEC6QuKnwSj3uCN44co43l-CKlM{NLV*RQIR8l`~uL4WDihtLM8Vc7xy fh)u=o{Nwxv2%Yeb6H8b~00000NkvXXu0mjf%5)== diff --git a/graphics/pokemon/clauncher/front.png b/graphics/pokemon/clauncher/front.png deleted file mode 100644 index ade9f6518cd4eee7dcf205ea8e3067cd9a41a9f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 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 ZegM+EDV{HN^O*nu002ovPDHLkV1f;T6JP)U diff --git a/graphics/pokemon/clefairy/front.png b/graphics/pokemon/clefairy/front.png deleted file mode 100644 index 4e959bd4ee1661acb40f00ad356e9af4f2159404..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)Px#Fi=cXMVQc_oKjNedwc)Yy>m)AS}`D;gL4oN5dW;Kl$4bJ|NrhmIh2%?usA3H z0000001HTVg#Z8nj!8s8R9J=WmD^&2APhhaktIO;|G&Fja9-+4Tpwp1>ZP7TND!y# zjyvwSBNPDe37!%nURTT-#-j(Uf8;#o^ZX?-rwI@@hHUpm5fI3e88K}HNhZ^I8Vkgb zl~ObT@NzB&;jam-i0nsZ9iJja$eH`FdO)&Y7J=|#LF#!g0=dH={CEZ`FkV-H^F4z^ zu>@rKaUYx&abBmO8RW>i^2&E=IYlmNkdD4L6f>n1P|d`^R`G82Q`FR z?8(-e4o+0bFTEGQ!!G`2xw!;p!ci4yD|ns>MvHlG*zstB0WXH#EY?W6E(t#{ zXaXrBfL{b07n~Y6EI2o?2{^*5;HY5dAtrDGA81QJc9po`H7LlN0bVV{gWc$m0vsKq zcll%z;()XY!nhhr=?MIZm(8)3{uL2JQQbAcwD}0heyX}_{81MArrmMJe~xe1MG@Wc STVEjn0000k44ofy`glX(f`7zFr)xX!q+ zU`0T{|Ep*JFIjT7xj9KeqS(uDP7;TJfWXmi%^yF000n_kbAal>K=H#l4xl+ao-U3d z5v^~hob5ZTz|->DzF^zi-}~QH%_)g~+A{laoQ;=*)0yRrJlmsJU(MPY=Hhbw&zT}t z!8*1_N)1=vNPm~Od}xi3PIGpM|!`QQy$?c429XIm^{a=m}{~o4yHiig(IK2K?cAWsj36X!|3q!c{ zYU(BSeA^+vG-Q?g?d}SDSC@dRS`9rJ1&dik z?y(6sa{k*Rl<_!COsVC!3ctfcg|~0|MNgmdKI;Vst0EPx#Fi=cXMVQc_ds2hdz3!}gy-FZb5D*Z>#l=BELHPLil$4ZWVq#J$T7z1oYC(gf zd%bvIuqFZdegFUh+et)0R9J=8m+5xmFbstwTP6z)@Bg@?-Ofzxko4E6r!5D#A6M3r zFinpF;F&JuDdVr?DL)6O{IQ70EWgm}DDD-m9(67;RtYAU z1p{!2`aQ`B(_7}(yb)ug;3Q(QvJr*=eggw23PrV`dIIp%S9%7N@|KX60@r6fD~*u> zmm9%m%9LQ8_qP!n12#bNpPvedsmx8=|1;p&8X&y^mO`iCgetBJFZ2m&3E04{dIm57 z%t1bv3qXp*fKMF2M*&1g&0wC$jX(gdz_K`CVL&vrm7-Hev!DP&EM@r!z%~>xq4Zh_ z1Hi_^#9MPv08qmZdJzmjsmCEGz*1mse;Oo3A$S*kZkp_gmy@1iA?>jj=y(WeZvjkAyA zzVD@|fy4+LR#7*nEfhlRA}_vIWu1(6n(r>QFxyHho7cbqBL|HILoj7sbruaU^*5SY zkfWM;E7LD+Rr_H>tMW+gCMn}cTyS$0NV2x1UL{j+Xi6Q6lsMa z0CP*=et5+wYh2vzqBJD91?t;6Nz@V0-2Dv+ny(h!0i1lni(3Uv!mc6E-fsEn6}$rQ zT-fcx0Z^LPhx$oY8$uUw9lAWwieZ2|Ulc&Tm<0gu0;CZpzgU+^EZj4YFdlH~ba}t` nO(&Wa>>gk+z!&jc`M<;;R}3JN3>kC)00000NkvXXu0mjfOviQ7 diff --git a/graphics/pokemon/cobalion/front.png b/graphics/pokemon/cobalion/front.png deleted file mode 100644 index c57b709d3636a42cad563edf9610e031d3f1e311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 877 zcmV-z1CsoSP)SWr+<7^tvlXlVHO_=vE;FnEZ-*yvzjV7R!rG50?X0008` zNklrqz4vpX`0C?a#~Z9C^cXAf&>j%C=|kh)g_iBLk1g6 zUcp6*#KTc=xFtieOIj!dL%}aNWN>J1>LLzi$kw6py-Ta!cfI?D`?&Z2@!tP?_q}86 zzZGWwOIaW&?yW~q3un9&MCMVCc_*OcO3cRwIZz^g7Nc<%;eHk)afSN;k>~vYb>pOlx^Y?w-7?+rsu|wj>LHsgJy)-_>_+ksonQml$1}IS{75k$LtLMr&cRGW9$7RDS?>)phl>C2K#DRdk&ZX0J`}~7y;pMF>RV>Ljr0l z=V3KtStpjm#a{qa{)qFmMeF}#Akb`5jn^Dk=8*Ig$1$)^gW)Bxn9n1iNsVlt|FkP` zzKr{Z)pqDCa5fqZFM#>*96+*_auN?l=c5E{^V!>E0^oV;K>D-~M*{>f{TxK zYMrqw0D!j?N{oTvRY3J(Cm;Z>U&Y1GBVc==OfrxdmmuJ)o#{Ty%qtviUhEwhCK*N6)TBA@P|CT zELkBSfC2$8EEmwVLjimyu~XT!3&^ffNPA|FT*%m6ll~wf<2^=DNRv=D8e0-jHjK3% zJqsk{jAB75ffC+xd=?+0FqzfvO1Cytpui-?C2xNKLydJ3Cy7B@00000NkvXXu0mjf DcG`vk diff --git a/graphics/pokemon/cofagrigus/front.png b/graphics/pokemon/cofagrigus/front.png deleted file mode 100644 index c48dbdaa4450b74da6ee670dbd748fd0bf482f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 981 zcmV;`11kK9P)kXn6Se`1rUmuz)aVSRnW?AebOPczAfQxUc{K00000&Le$!000AE zNkl!twDjbcp@eRjR(AP8O1G4VX-n+N&tva0!1fBnnCje1D7VtO#mJtEnRY3s2 z0|N7l{(!K60I9-ey&4F>E+Rlh-C-3XXaE}KHBed)j$YbuMuEAb*Bu~rnhuf>6#pcQ z0q~W{bkt4ul^iHw01OaVz(vsAqpVa(!b*Wdo8=k}k?tO2mL~}-HQE>u=FVh6z$?UD zn-KQ7A%#t+18cgAh|#Fmga~*OUA{tIXcgmF?~am_Dg^H`A;P>6;~UKJqJNMkW!|je z03pK|H?ksD>qoo2G6!!9EfAgJv?!)ykjcSWnS_3NTuiYsQsZp47{kr_AT2qMDm!Z# z*y#56iv{LOSUaA4N`^*6&^Si!_J?Y#Tx{RM8cq@iQ~?Yy2w@A=a$C}7navcn7x{*O z?d3NGx8Eh=WkQ?T0LCs-55n7RfaQ-E@z4RjY2~ChT;2lQP=G}D7^pRx|8kP`)$<#G zXEa{{j30OPOdoj*p3$zDB{pdwL#__n!@i9Qi&3H<{&LJ6-fd_2^WS-^vU`HP#0|Fkj z4NzsIccLCX1&CN(9_rpZ3pBOzRIn3{rw*u3y_YHC)Lb@;rgPLHV$6`Q3J}m1BFIb& zy0UAqOWaq=A_%y?sx@@l07#r&8>SX1d=2zut00L*m8N&H93YI!DFfgGbsx1N2>3V) z!OPNVrS)pyD&!REqvKjoz&la!DzlZ)HtWD&gPTCi?^BQ!+aGKaCS5SaX#=*;TD4BH zRcQdz%x%~90IPB_$yRx%sz&Vg#CjXEBKw?X)|8@>)-+qvF!_*T>AAM*cdp>+*K~?m z3BIjGvt@FUF0i~R=PO|g2&ye(PnG2yR?Dze#rhb+CQrjvseB)R{eBtQGUVx8wY=y7 zC^e}$ap=o_3?cacw#*MedqBH3>pqQY}`P%00000NkvXXu0mjf D)_cGt diff --git a/graphics/pokemon/combee/front.png b/graphics/pokemon/combee/front.png deleted file mode 100644 index 4c1368df4b8c7bc2facd1810f0220bc70ecf35b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 491 zcmV@c8g>0BBeM_|OQbfB@h)IIvhC$dD-TaEJf^00000IUKZh0004Y zNkl{~fzT~npj9~PJ=%hL01`Uuh1jz(C`!*5 zMGh0pmztnbWI%&BeuDf=Fs1>{k)W$>BC`0_<T1;K z6Pq@k)O6hm*t9k9?Ey@fe*#huVAA%_VADpRyTd8%2~^!1*tA7mdtzwP7Q5Q>@ft$j h_VL$%y5-+>*DsG7qY}`N<}CmK002ovPDHLkV1mk9(SiT~ diff --git a/graphics/pokemon/combusken/front.png b/graphics/pokemon/combusken/front.png deleted file mode 100644 index 2c2b6a5a1b2eaef7e8a3ed57d9129deabb8804a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 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 QF#rGn07*qoM6N<$g6@NO3;+NC diff --git a/graphics/pokemon/croagunk/front.png b/graphics/pokemon/croagunk/front.png deleted file mode 100644 index 6725ae39e7f7c010b23ad53d92b14d535ded68f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)C>HB%U(d?`}?@5nQd(!iy4&1==6Da|5 zCn3@_1yb$;4hcB1gsa4hw`uyS8c$s%_D2MaznoQ&@g??0(-g)ZFDqBZyH6B9zO(?J zF)|i7{aj5Jd`43F82}=DTk#nYY&H4*W5H&GptNu2OBt%GNMn|r)ISUXWt^6EafZ76>_-qrNm?h-DM2sBgm0*Ha zAFdo-hI7&TtpgBJi5tYbuDy*iE(0?q)};2PWt*Tu1<&r*>u%Hij;Ff-)&_#(Kby^_ zZLf`azvCNYiXdvOe&zH&@DI%S%IH1+4f%h4+y&~gS(-p({ndilm~zlWebLkftsR}0 zR1jZ$H9G(m@D2gAlo0{TAs~*HWgzU`RC)^xn-E%i7NFZtK+)9PiHq0$vW1WrEB;49 ztMB#eOXYZlGU%U@{od1vv%W+q73Yi6Aoh;H8COCSg_&DJ#3iyBT5o%g>v}kae-+2E jWA7ib^#6XRPvUhCN3E7(HlyFl00000NkvXXu0mjfPx#Fi=cXMVQc_S}AjbO3lrS_7D&d2tjHfYLu*6|4N*_)sz7L)c~{r0BUM#q@<+( z|Nj6009v1OH2?qtBS}O-R9J=WmeG2HAPh#yPmtAizW?JciHNi!g1gzp^6g@?J*R&p zrgQGUepMvp0NkbFy(dTB-%&tmPi!Vp+`%Qk@-9rH21LU{Fy2jHV}^_;UJYOUhKx^{ zS3$P{8$M0EU+pvKSs8D55nvUFA;zYFJjnRTip$q50we;6&v-Qyd^iZS3Hdn}aHO4o z50C_qCK>@4F=qZlkPPw$Gz=*CP!-5WG$K$$2=xw>r1P~1@LL4=&F%`9JX^i-dB8M+^?=Ni1=t!mpliw1kRwb%Y#2H(%yi`D=VrXoQFHe#UwNINbH~l5Yus=BGw@&JdYC z<^8;dkR~28Uhy$MAoDZGn<3(RS-zqBfpkX<@nWDT{Ia~_TBE$4+M)@PVHmgDF6m({ z#MYue7wjcRLf6Dctsk9uv=;T5AV-j8aw7t50!bqHa0DTg$~9_GmP-LQzpm=M4pZjc zPy|Z1oxyDR?f{oapRpRDQ;~w_za>9yeRVl#>-%`QYo`$Ef^8{w3MyfFKu~YB z&p?eQhxIO88JZI#CwghP7&%ik4VM$g7tck<$WnWpZmhrm`V;j74bKu2gfj=700000 LNkvXXu0mjf@8>3; diff --git a/graphics/pokemon/croconaw/front.png b/graphics/pokemon/croconaw/front.png deleted file mode 100644 index 22ea63306b4b3372df2d4094e11a074a9f0578e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)Px#Fi=cXMVQc_oDd-YtXdEd5dTU_)ff;UVtXKqy=u+Pi|*$C|Nnac0Omm;i(&xo zv`YW~V(AV$+|;z5|lQpk9A8PMiraW`Wik z%&<)uvp}oVj=4Z+C)><^6To&H$8IabV^4s^^&=p83qUA`4WyMy%N_Sh_=$ZAK7(PbPdt8SCT>#pcD9<9GkypTH0-;W$ zRXxN@Uvl`oi=t=Z2G9^#EzsQ-VxwXq<|u%Gn;JT~KJ?t=iNp=X^x>`r^ggx$*ytM{ z0=RK6SBZK^lc<6!fI9)Y57I(c?nTeHDNN2@N2H5ZIYgDv50E{cL0UxpRD|gRE8uet zZFE`%av2gK$%Fj*yC%F^u5CpLT|FJE&pCj<>N7yy_W`DScD?{am;t_L6xhHh0Jecv z0iCl%5GfUXJQPCK_g%3l=bnAI0v)sDLL@yka{E{R9S@rwIRme+2tBjp%>q)?v`B_s z9|8L8w~PfL_3Z;dpIqODSGCh=VEpa!$y$H$KjI&nlO=Kz^c%nc0000tK7-%RM=zvK0xOn*Z_&7K?xKJ=SFdzT`00000JhiIH0008i zNklyzi-n(6vtgf784TBCdrf`ZvFtw;ju%DQzXQ2R(fP{heDdEOC=&B)V0#7 z3Ono!NUXpD8?wS+q*zs?4$c3xLAdlYouK7Ep1Oq*1Mt0C*K3EgEK0dy85E2`h_+Oz2r> zSxKS^2|!KChG-%bIl?OH*+f`KB4(NjK=VK?UfrcIQGhw5wOxi1c&H9|y-b48zzyBs zwM1kqRh1%$NBbh!I>H;R0DE5Xemovyur;m$da;lOU=4`1MhJ|@V9KE0vKLnx?T!th zfJbp%qsJ`)n0KrLa+fcmr9CVlbL^Qih|`h8kpb#;>dNC2z_Dt|+CD7+8v)tY+q%x1 zffoWel0a)rHE`p&i~|_JA@xqs{Yb)N^KmxpSFIwd+ep~7z)D-nZX{JhDrF2H!QfSz~Gzsv@Hhb5+DY6een_JK0QmCPd_Je zFqIaOH4r-Qr}?D+obiiyII06XmpGO8zvr|5*U8)El^FRX^bN2K{VP5l9-N#N2PcOm zbdboQ+QeP4bzThFaF)%o5=R|AT?4N3=u2_NXENaPX@U+_`<4wpe4v1))0sQAd(_+X&ufY9hbXz(CFpa1{>AaWMd000Bm zNklb%?EsUszC)+z3br zrn5!Z2bD2G;oQYEBxoxl0@RRQ05v>U0o){U<68eAvqw?lQ4#{gTkvD&xp!xG-koD? zZp0qU&&&hq+eCpeP0tzXtz5( z0!lN$0&H}v_d7ljjiLwi<1Iw9wB2WtrVka`4?SU(vu~Bnj7j zqvJ!`l8y)977ZNH3z@1qlUp!Xom~&pYLZYvCY?;>zt3W`FbEwm! zM1%l9bsEnDl#gny9AvF_yzv8_%zz9xV#%>t{y%XIDH4dEQR?s4arZ-YN_rpNIL$T`k>Tm5G2wtjTC{KHfb1gC2y#OrEH zDchMN8Jusp&;7$k1dKm5Fk-1VB94MU>hV`_zB~RrBM=V63j*}~lYd4{^TlV3Dv-p* z+3qFqscVQYI4400zsuc^1mH!hYk)*tlhGWW)VIqoz91!0=@x-Eav){^+iIY(y;YWS z#qWgx6+^JtwBBre@1RdW&pq)qP$1wHh?sE+a84)LH=6HyTfXm$bO=y6jZ4QYI4T6h zukbvKLrnuIdupi#*Ew!yKGYzsdMm>5yfT=)wXZ!TE&-P>XB64t-4<=4SulXhiRV&N zO99WQoW1PJkNEh!PM$NvI8R<#3iwmxAV*_-6r7QqcO|WC!Iy^v&3+oSR0M+O$0QN9R-7Vk;LF038cb~4YvTp0kvekH4KeH zKq7)9g0X&0G??!CsjSX{l9~tNle4+JmbU=Wy+@bOIeg_v{Fg#BrT+umwZy*_$!4+K S5|%9h0000p8 diff --git a/graphics/pokemon/cubchoo/front.png b/graphics/pokemon/cubchoo/front.png deleted file mode 100644 index 82e5e9194ea2062abce68141c5cb14dd57e3e93b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmV+k0`~ohP)KlQB!fP!xsJ5QA%K7dLGx+KPj@RUE5* zU;|yGpg*8!XF>YJNhL#y9W&&Tj%p#lpn)tx1`BU;?|<>7El%%tb?I5pmwV2Ac~8^U zT8mV{T4CyCt*`}U8rX%R4FEeNU_`CfL9W@Wj7LVT$N8jVTTXN+R$}P-?9O#!=(}9XA!5p(o z3Dg4{h?DHu`<(L*JGRumX4EB@uUet^e0A>w$+700T2D00000 LNkvXXu0mjf857*t diff --git a/graphics/pokemon/cubone/front.png b/graphics/pokemon/cubone/front.png deleted file mode 100644 index ddf94b1a049d519acfd95edb6ff569b729a47b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVPx#Fi=cXMVQc_i-T(T`1mO)DaFOrQc^jTYFfpdN>Vux$f$_$(6Hd(=l}o!00000 z0000008M$}{{R31ZAnByR9J=WmCLe(APhteO+xVhKlmnquUV+k&0W}4GgeXbp@R{o z>C>lA|64>?0~h|3Xm24KKoF1`qhZ{hatP2Pq=89szX67QDC%E|Sp6>mIcNLh$9@2r zUIZX1MV=5A0E)>08R6IHVktn65DY;}07WVs2dot+8i1p_umU6@w*d4gfNvc@{Hy>% z9%6a|AnTyq8qwkhw}6%wY!54dDAon!D_iZJ03r-%#BSnVyDe`1CJiFE*@anF1rfG^ zke%CpB|;GEK>v))S8FwZ(Mq`;!Y3D>U&=gJmji9^=BwE3<{wf_NOB9n%<6W>)D=*z z5l(x-Y~x|gqe)u~nK$8ldG9^$Zf`yvWk?9n&)?L8j(ymbAg2UcPViBumY!e`YV}4q zkKh;Bc5t>Wv@Xy(bP1Te{B6ei3GDnA037Z=9Q@k+SAgS@F)S{<<)41q1P6;Fg2ys` lZuFKV0+^!nKYjZ2Qh&Tx4i0!oBtZZG002ovPDHLkV1kB1(0%{_ diff --git a/graphics/pokemon/cyndaquil/front.png b/graphics/pokemon/cyndaquil/front.png deleted file mode 100644 index b8b7e71aca85e21c3b6fe01c6fa111d6a792850d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmV+%0^|LOP)Px#Fi=cXMVQc_-T(mqS^z0hQaNIKVuPIjoB$9I5dYo)7&%JCq-y`}q_`L$8)&Kwjnn^@KR9J=Wl-rhrAPhxC0>Oao|Nrge0%{*d!LHRO&+26!+?$Z3 zGfhvPJo#N*`*x>~oeTKw=9>Zm`R(Q}1>?M{w-SuM;W`DLV|V`$bn@Oq2m!p`FMr^#1wL2+{0`4C_7<@70H~ag@&z@+gP%O9e5;*33&mwwOR--*KD8e~K!goD1>?VX6YN zT;ZD_XTdor95lRV70i&S*d5TPRN(XYGkgce*ja3kgr@}O?{0G2+zwE%m4-1Z{xU{0}rtkVsvM7%@ zO~P6$8{a38`WY9#dWqEP{g0kIUk$-iEu4z!dz0-mQa_vZ)BO3j${W9sfGh1RSMYJO|Q2VqP3d zi16FEXi*e*R}n~iY2ky!tUzEH1#I*-0eFkRa`3ZxR0tmL5E$yI-1Y(iV249MM?gn` z0RV3Yz(EiwmLXW`y^qZa<2^oqMF0dfD-{fG!jTL0P^`mHR>}``mI%Og)fI$41PuEz z@V(}t2s0#LnsDy&?zVCXXyZ=-r<0Eee7#>+&dK~3NPzy=2>keSU;gqdDg99dwv>5Q zWMBS%sCNbdK%>10LI`2GGP1LyKb9Z@=0N}ixVCvTo|^_5 z9w0zV5wgpT{p_$knxiAaXdS-373a2=JI3_rLcI#tf8YEw<%YrYCb}sdU5OOq@JPCI zdL59Kif5ucGR{1!)9e(_#M-gY8(kUm58v$^DD+ciU z7GnxHcm%dK*JiAoB#y6_UggQ?`&|r))%;wQj=coX*3Rnpz~m7Z>MwEr11}ZgNqJ9b QjsO4v07*qoM6N<$g2PrFzx006LfNQj7-=%8pwNKo+b@K87)VEY<80008P zNklBbocBOwymYN>hpzFRpo1r$@|HX`hd8*=lSt}UQQKbK}Arzyj(!Py~DdVFQ#mRd@iv4nH0OH3${3Th%iNMX4TC z74Qne3_>YYl^w7PnYFmUCr|-pP!0i&7niGMG_-A)I3ghdY=CsktY({&&6A7&6kYF28s(V%}z{%0k z5Y^$)1=eCfdz2*C>0%w~2y2~0;?XQH9!{X;W34xVyd;|t5B)>mpY(iOi{s4{P=n^j zp&uEJ+kon6N&uSZ=DUCE-%b#OC zQ$et7HX!#2KwupOu9Y1Zq%(5=R6OkY3H`sZU)a@=xv{Tj>i_@%07*qoM6N<$f~D1O Aj{pDw diff --git a/graphics/pokemon/darmanitan/zen_mode/front.png b/graphics/pokemon/darmanitan/zen_mode/front.png deleted file mode 100644 index 84ace43cf9455006bf9cd505934625ec44bbed2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmV-C0>k}@P)Px#Fi=cXMVQc_AW~vdoUD6NDXeNK=A>c(002Q+VzkxnN=j0koTTvZ@Hu;nd!)Sp z000000NhP@|Nq_2EU1^JIngFfnm8X!(=gAz z!cEhoN00u80`(hrr0yW*dFt*vh?M4(6OHq{Bd!1>&pBs!=L}RzcL*tGiBYnn; z;YkcvFb3xz+eJbrHinPDPE(Ld0K@k*!iGQw>i$|k5u{bnqW3m5gzo?t^)mn| z)c5iai3fL`1FHQ1P}eB{MF^T+WAx7(pl;F=K$U_{`qt67VTuQ53TO8TUBt=g4QC$K z##m&mg5HP9Ea)YsxMZY-T>*f?!`pWUj6Dcbpy4~9z${~LQb5O)-o`11#(o`m@vJHh zs#@MPl>fww$7#Xe)|ZjP6@agO#jDUSAa7fnyx@z9D9@h!OGKR`$T!yjD0pHsQ(eDvtiU+W7xEg1+<-s4gL0000< KMNUMnLSTZ;Gy7!# diff --git a/graphics/pokemon/darumaka/front.png b/graphics/pokemon/darumaka/front.png deleted file mode 100644 index 92a3645d24ef1d2018c8c07bdc07e15702d210dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)u%vz*d-D5~2Ea;}TNXFJ? zoks|EHi4{Fs=z)>W><5;nccL3_%~Dh-}%pF2s!GX>g1G^a)C;-0Oz>?RG=l_%$Tbk zP|A!kpa}(L7onArVRQki=mNChOfk(#nGgzvJMMPjA|2(RIt+<uGvnS8RZmH=I{Nf79a-Q z`%H6%eTXcU{y-m)D45!L0ZB$cnV%hy48l2|AtFe T5j{6(00000NkvXXu0mjfR+Hul diff --git a/graphics/pokemon/dedenne/front.png b/graphics/pokemon/dedenne/front.png deleted file mode 100644 index 05e9403c50888e0a1ec15b7328cadbe7f5130278..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_FfcGsP*4yM5V){_`1rtJFc5f981S%I zuy`=|$cXs(`1o)D000000000003$k#I{*Lx32;bRa{vGi!vFvd!vV){sAK>D0oF-G zK~zY`?b1PO)Ibym@Rtpw*PY20D_(XcUc60`g6BdO^eANL2Po{e;8mL(w@Q5@z0}oq z^9>|lK)iYpAs?zQ*=)Pn%z75=9|GaMU*60lfyeysVMAbaZO2*Hm=sLXwGFrwE6Anf zK^(~~;XF@dGr|!`A{4lh?5^S@$x&0`Bf3*SLJYe=zX_TF6WsuCyZdk^I`tc%b=m-k zq*Q(2j`ZrL24Vxiq1L`Pou2G#owR_r}X z*xUm^n3ZLTIFIA?BP!~Ez0W00Ks4cf+3kP~>j9Jxo$^ES18QC`3HUJXbsgB7|0M9N zR$;)m#Xt($+ZJ-i=lq>rq*!XSp66y&HhL(4XV&H?7sU0eY7QL!m{UQK4Tmtcv062@ARVq;|qxsj6z5YwzKqZ61bUclL P00000NkvXXu0mjf$nD=V diff --git a/graphics/pokemon/deino/front.png b/graphics/pokemon/deino/front.png deleted file mode 100644 index 835771003ab15169476863b41754cb55257842c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)N;LC00009 za7bBm000ie000ie0hKEb8vpKl(A03Fc5|vS?t*93*?-wOKOLNmBuVg zs8yN=sOruriu?dbh(~}Gv2|mFm*dhRv78;LbAM&K&;NgScFWjBXDPX!0Aw*?026>z z@j8b%z;!$U>rp@mfGk!A)FRg3s7R0c2taU=9P(wP<3R4hM)009Kg7NOyC+1&p)v426D(`JdZtA zZtou{KsKk}hT0D_VCoXI24#Fl1FY+tzSqj5XrT7B_kGx&uiN-6vq`K$k~arUenm_t%pp@-FB696nw}J{R1PotWfBnq$7~q4yCZ$ z*k52$s&oH@{R10ehJyZ=JxQdIl)8sq#@@joeLs5d`=n=t{-bETs`d~HyT;mcfs+<$ zC&oHXke65hX%QRnLJPp8Zvq~p;lKfi4YbM3F+s>XqXL@__JLiBUd$M?DxenV*v8dUj!(dZgm={J*y9t(xLVTdZqwxhHZdq{hZQNR`42ZXjV$2MI`kC0A(SLS;qu$ zu(<6}S`@{#wh(uiZ(bHY`1t**IA?h#{9rE@%hW+9e;Q{<>$Id7iiv=^p=-D za(=J3JvR1D5AQjb0Da>8O4sy#3&3>5zb?6qQtxE81wbyI_&r~rKfj~8|j~0a8C$ZBlak z33+oVe!_5PgRTPRCJ@isAQd0rOEUdaEG!E+kw4c_D90{Wo!(dpAcmmz)nFfsE7ZIx zoF^k1|xMTYD-|TS@Jd9fe`ymXg~mPnl$SG zluIB_@T))x;;I&?F8Cb8ybiz>=TdCG0+e#l@LvOH!4r5BgljGep(WQx>k^=4S*L7G d)E@n}@dsjk?d3|erkMZ$002ovPDHLkV1fapPe=d& diff --git a/graphics/pokemon/delibird/front.png b/graphics/pokemon/delibird/front.png deleted file mode 100644 index a0eaf79af0feac6d4c076141a10e6356419e29af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 717 zcmV;;0y6!HP)Q_$00000rRtv@00075 zNkl8nu6oqNSt(OcAabTo5}C;zY>T$ypAJRq2Pj~uOO^tHxzt++ zIq1+KgOm0FVs2@)F@p!UUYspRCcaBa%5Ex(LLVS!uwb4~_uNYo0^qUf`TqcGFMY~K ztziN@P!j8950np}5jX^vSbyS`9f*t(uqj`3paV?>O1l=cTp$5xEKq`0Y6!r?*q8v} zv!^72N~R34+!==><=f^aVJ8gzLLZbNbkhQ6UzR|sfT_c66Skc3V*%j6jl5bx1?R0` z?3Q^*sROG8YtVLz{4(;Iu;n1jd{iO=A$RKg$oC4yC?R)7V;@D;kj6#>9G zr}5Nou|(l}dB8$5I%SOE1*kL}FAr2$()})gWB_~w^FZ}epQTC`z5|DPMs+N&jIe*Q zK-`*PZZ{_3t|aP=^6^J2B2Eqra(>RlL)n(8p?my`CpoIehQELRbi zygeM`8u$xb3E_UjdECN)kcnQQ&jfKzl(70;=ztXYM~y5{Qo!oL zkG^GriUNK}VvX^dL`PGNXbS%<{z}MF{=-M{$vg`HjJxzAUZ&S@7N1b6l>p$J(u*&f z#2%fWnurw?75J^;qg@1xNl*B%10^FD?200000NkvXXu0mjfcf>t9 diff --git a/graphics/pokemon/delphox/front.png b/graphics/pokemon/delphox/front.png deleted file mode 100644 index 939b538c44a1573cca5b8566c3e9a134fb1acd8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1009 zcmVPx#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_XdnOp007`X5MWp+urLt#*g(LjF!=cR zFc1*9z{v3M@Q`RYNKjCKARxFnFnZiAbN~PV32;bRa{vGi!vFvd!vV){sAK>D14>Cm zK~zY`b(B45+dve@FR~YJQB&{7>xXejoTi6ECzDd6Lb@eYOU8U~$!v^8#!_h2PQjrB z(;!2ZrW874YrJI(Wb&RxnY2jY&5PA{vUEDx@f*Z_{OCee;ye zy;S#e5-3ulk-S0mg-sP;DX>XP)Y#Qom8t@JayVyhT2J|F#!UK4BvCvFYC@e4$rXJhmqyQnH097*qKFdpD zn#K1m1hyi8#twE0=%yI~RRKVp;@)ABW0WQ5^&Lz=?vos|Qx6S3^2WEFEs8oO0_7xmtqie**YQ!J)vEYDRNSs7o%>6;gb{|m z%lQFs;MfhqP)aN>U5DcsK#T9U8h{5@!f=>KK>xNI?c?1HzENu8kM~hwBy$6}5rinv z7{DbD7t&f(&}0}D5P@?6ka8G=ZVI@!=-D|Iz`Jv69hV9S3?!iWfPhHb*zaAH1mFy^ zfR9;;tP$vq0oqk^Afga1&huOV;*YmU1`rayD}ZLNcOJDwLCH}ZNE8-(y~{B$(H3nG zl{I#~tKOwcW`vYPd}!4JwK3A85wt0lVmXjB`G0dG6wQ9?ohC->|= zm<1qlaDtCl0&HeIP6cvQW2_ciM6YD}x5`7Sfk1Fyivj<~HU-U93Us;xRyn*6f*9}| z@G2@W?1q3v99ME2o?48qAmSK#F`<@I?xuj_s~uIC0vs>T7Fxt;Hjkcly*uZUf zvZ(|SjPM?g-=W|yFHd!y7Dn5lgYOT%PSWr-ScyM4qFsN8KZj$It00009 za7bBm000ie000ie0hKEb8vpY3w~A ziYW4ND{_(C9Kwi{2(uy&km5QL#mG|ndxA)Lfjq&9($`TYMVdTEW_N8c96q+du>12j zv$Nk0gzOD!lIMqg0yqm!02D4yM1b}wzzd&`05XPU9j9nWJ40ZWRVPE+tvDWfelV=b zl(x_3aSYI@&BHnWEP=Ros|xtm8P*99y1I);KfL-{(O)0q?@eYMTe8&b3vth{{UZ^m z4Il|B?!{378yHhW>yx-VCIGC-894Z@HRDGB+d~)dKoQO87~soK9w66oz0!5Apn0Nzx=nT=P^H2kE z==d7I27`8`3`51P1at+{rGB0vpiZ9m5xB(^iV~-ZPT>sVq6;>#&BW$vQ~*X&ZlVN8 zA6`$g6&{jWxJdL_*;x$RV+DCp^f6n#L`@r6JlvYk#u#Fu4w156qK$(+aBD3Gx?`?) z`O3f1z)H+_{f{!1EcBm)Wf~f|5Mp=V6hMm?R$&3mcJ7vdC@;)Fo1r%=t*MgeCWC3Q zX|CVt&Z-U4>1K^-dy!?k8BrBLAS739F`ra`y$&k@+U9(@&8j=I4uPW51+X9CDd5cZ zd$`kG?gOoT0pj$eY_%{4e*)SGRs{%;0rkJ10tW)5aWK&&b>lz5=*N^?o}DrP0000< KMNUMnLSTZjPntpi diff --git a/graphics/pokemon/deoxys/defense/front.png b/graphics/pokemon/deoxys/defense/front.png deleted file mode 100644 index 2e21b5592ed67884c07fba7e788961df3bbc1e56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmV-61Ihe}P)@scw$KKlIK!Xd{UJvG8sD(6@?(~%Hq0k8-}h!}T09;B@Jt!RgQ)0~EhOwi-me&|JKj<{#8l^CS9maqD5?E(Oz}Hz2 zfB#0OwN|wmsG3&Lr&(kO^ANOx?Kc$wct2G=2evFSi^>ELrIXgu3~UW(s>tRc2+#~I zp=a_8XMi$ZHzh^zEU$D7Aqa3OTsQ|0V^auSC5X@kL4}sNI}M>TB2 AV*mgE diff --git a/graphics/pokemon/deoxys/front.png b/graphics/pokemon/deoxys/front.png deleted file mode 100644 index 5c2c25314e5974d55901245fd5cb54e771f1bc48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 877 zcmV-z1CsoSP)`^gV6Ye%82I@3z`)ROIEYwKPo2#eCilwwuTF=Iih9Gn~^ncGj&Z{ekL(|49*OR}Y#tb0HI-~Zlw zIx$vX@SJrn7>Lfe^%CW%3wS#~*(LGp-6=|V->LyUrOu>4w}r6q%|t2rqK9q^@Opf% z)F%LRT2chgxw`lb0BryZzg>O)C?L$*0Csbwa|l|)1pGWBv- zcCe$?)+;x0(QB0m@&SVHLYqW@KL}ShtX|DDy$z-xGvxv|xqI8Wz-2 zf_Qk)oL-G+%=|haNA`q(aJ_ygBtU;mcB-RA9_aXE{xI1)T#l6IRpXX-(!dd zP*XZ`O%D9 zUUn3?mgsm;c=A*n2X1H_9bI@QiFs-OFpASNbR`72e=<1)EXd;Y3nJB*`&$LC3J@J% z)5MFA@h6464v3g6pxN31wfDz!;sVPN*rurWg5~`bcfdxW-c4q0fKAfvF}-T9$b)--E*n=-oIc%tmia+I)&LfH1E^V`jXJ=o5Dnlm-`*@6 zAg==Ul-{Kzcc4623G|cc4v5CHSfw5Tr7y1utdvrdC4_q*Gu<^gW@VAC)kJexdV9ch zmj>Hbr3}~F?B+GVR*PAz_IYUNo`8Gs1v$L=N(_34ZyoTO`CgIZ&UmSI^Yd`1{3yR00000NkvXXu0mjf D@e-1B diff --git a/graphics/pokemon/deoxys/speed/front.png b/graphics/pokemon/deoxys/speed/front.png deleted file mode 100644 index 776d0083b368ff1aebddbb6d15272028bc5a553e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmV;O17iG%P)o_sh00009 za7bBm000ie000ie0hKEb8vp$hxURlSrNEMG6CDXe?SG z70IeD^-?Bscy&W^0rf1Q#>oxvIbddi9kH>c(oL5Qd5XUa@6N7cI}U;y;`rY0{_nl> zdk>-iT&;Hd??9*LQcBG~$7==%={;wZdT1CnyCAS!#zu5F@tr1yG6{%eY&Z?*Rg(r~ z0U%FCY{XdH=!Gs=aA$$wyg5+5U=YOXn9bd00C5OmG>>mwx8Do^vGC{dyY7p901yCt z`??=M6MruI{ONuGODQkOug7}vx6DwjI~ z?VfAa@ge4sR=jR+wcWuH=e+Blsx;Z~`teqG&_1;4H@#<3DnwYfAKNnyrE)yrQSzxO z(dzVX%#)h*_(h~{KdTDRIS%b{Dft8m5vA|H>#$-s=N(^i4^a;*o!ovYXVD^7-{+>{ zha*oYp_XMA9sAjwB@2LX7J(32sEUAn@h1!j5BZBI(v>W`$5udkL#W2sb7T}HWe2T+ zy&ykEJ~Q>|U8Pl^5I}fgiEEXL32hKSXlekqgczsnsw#kd4}P$*%X0u`iy*8B7!O7w zfNFG?0LanV!zH5Z66|9t;kM^zTB!o)S^+e?$^q%;KHq)Br|+L@8```{fuBI!My>jD#~u$&pBthf+b#D8Ki0l15{W@EGiy z=wtksfwz^wl}PVT3m{A4AWH6wQV~j*fb1bs$6X zu6&79zuf}RKe`xFnG2zH@1iJ1XrI*r diff --git a/graphics/pokemon/dewgong/front.png b/graphics/pokemon/dewgong/front.png deleted file mode 100644 index 62201eaab32d338c8693b0bba2a83deced6a3d87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)v97j2!#WPoA-a>ikFCru5LP=`lFj!Jzoz9 z#=KsCH2@$#@sXOGb3%adJST`s1|rG>n4jsx@bV|PIU^_l{Sp9<^aJ43z>8c*I5eR3 z32hKkPi1y2t*oj3V6i^LPjEl9l#JGi(H<8f%iGUaY5}~ z=KCzddY;#SkSSTPLg1nliLOfkutdO&Ao4J7t7XHrp@o-b^@ln@kPtVp#K zCxC8%-Y;kl*vGv4S<|l z9RD*u1SCj&y$i6)Y+D?Lw@&vHJ(*t*xUcUbNW}u17CiL^AQlU`22e_;uM1B!8Ymha z0~7|dYSH&8gfht^Abi(=R!4%-rD+ljLhzNYxZ#0GKOWgw*c_%6pe7>s2&YwJ1rz{9 zl=p2G>R?-630P4SQ>q9)8npEpATiDeK1Vp$mlP=i>w3rz>>G|2F}D_)JWPLUFlI3~ zIHrLx0Z1=bI<`T?d)_U;FjNT&v3pJA!st8n;GW3|!t@l7Ap!FRAY%#wPk%D@h^O+1 d(EI$K#t-bG8#6#Ykh%Z>002ovPDHLkV1oF527CYj diff --git a/graphics/pokemon/dewott/front.png b/graphics/pokemon/dewott/front.png deleted file mode 100644 index d8665e601ea57d98d92054123df29532a567f439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 575 zcmV-F0>J%=P)Px#Fi=cXMVQc_FT1_uyr0 z<+?uh2h8Eu0sfG13JAfU5u6XFfFlna+j|5+)hzbzoiu`|t9?fRMg{}?Pa`550ptz= zuX-UEW03Msla)nJq}6wm5Q4Fi6iG7RB2X;E`oU^cS~4+Y(Yq{oGj#=b+i&vPNi%UR8F-OAvnl525PC>g#NwM z+62H(Nb+-LV5$2-5DK3k1c@h?+V*{5LgNcd2V`*dGg@uU0H}2&L4(j|lCo^)p|w_# zQhu?N(jGvv-uS+5nBr~y#nPu7VXb%dN?7tflKN&>KM9y~KoH`JO+V$L)zM^WD7|oq zb+64~0I*^W^J}(;fie2=r$e&eooDO5S0=Ux61S544*uR6F8kQOv2U%u5Sq@WBFF#$ N002ovPDHLkV1lbg`Ktf` diff --git a/graphics/pokemon/dialga/front.png b/graphics/pokemon/dialga/front.png deleted file mode 100644 index e4a6172ace570da0bdb9e8e884e53da964f314a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1149 zcmV-@1cLjCP)t~mGq8#7 z9O@xL59mDrG0{%nyGKAnJ3;jD>w5%tKI{9>?*vr+s56Z!cLPN0B)>+z$(;hYaC7y> zYu^KO67j}QzQ3~rORhxMpKe*eo9QkhH&_5LGBfoDwe^*PUFWjDJCBZntbnlrkcD4d z&Eu}mo@NDT2C#*g??pb#b};DS=33bm;+uZ-Fzw)iKo&4~KO!^*R2^aJXXLCn(*B@d z2JRZrpo0YPC(9dQ6n+i>vsS7^Q>i=}IR17yAtb#p?_Z8A{qYLWC4l1K#1Y%P>+|AWv!9>7`50KfDdr?Tucbob=q7BfG6eSFzT@rW<92FiLPT8V^XHH zdAKoM*3KAfk8;?M03fz$1 zRfjwUOD4ewV*yB)27t_^)uB1;w^&O92vCxP$A&$@4>On80KzT^wA>VHfOJa6@G7XmkgA`Do(71-* zO99bICN0@QDYnDZW_d5hc&}CfKt>kA4i)*>OaXN-!u#K8ofW`CyT}I@86f}FUwHpr zZvmW4S-@e8GaXR=pPwM01;CO^7Fg9~2Vs-xnm z0Ty(|#8mVc806trUE$pEF+Kty5!bN7!NoREOgPUG++!W_`;XU)jIv9BZJPj~<6XNW zZl=P7l(zxpIpku)IV##Ekz8Frg_hlH59Ne|DNEM?6Jjj5atc63qA=y4sOUw&N)UE{ zEZ%jr6gc>Ku_}9kLD&*_R!aeez2>JNSmYG|X5u#ha@x@* P00000NkvXXu0mjf(Xtk! diff --git a/graphics/pokemon/diancie/front.png b/graphics/pokemon/diancie/front.png deleted file mode 100644 index c99768d64a410514e06b425d78d49dc5edf2c54a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 812 zcmV+{1JnG8P)JFGmNi@zp~dZHRZ*k_(uCx!d~uT&Re)Cm zAeW(*=P3c?J~vE4GPKIt>PEP%j^F2SHP8Vm)_QvO;UHk_Sg7&{jXsx7Ul%TzJy7S- z=*y!|FAEorr*;6~?LO;#4SJTc4KM}|I{Sv#!m1i7Zuia+8c0XN>y^ z+*C=FP4d`f%oZqt^9qTCVUg0umM5kNK@sj`8)I3`Kga~!6SYeNqG*_GqZI1 z3y4e9z~RZ=)GSS*%?S)1F^Q%{=69F1v^9z5-xJuRl^Ad^pNHYBL95?x!mIfY+-$^v zlMupB(qbgw<7z%6aRne|=yo`Xd`X0}cnx0fHuTrSSrlC(AZEiDkg}N&>$lmpQCA?yhamux7}%XZo4p3Rm-#RRAc7tVaewT@WC>hPGy??^H`3yb@~4o6z7PNi z@hYcLa9Q^xoN?|D^$nDQf$N9>05huvWN-(o0dSCcm+?ca^l%pfwqx@{V-?Wmj$v%6 zfPUA7p>MbOVVV|{MRJ!z^!c$x)Q#way^JHG0bE!u!-)^m?<(CTaHIiJc9*RLkn1pe z0qBmqzubrC>3|?u00TWR9!LjIcZZ=h&kJ~OtQCN%^t}F9F90#_d-@U=CIGAwfI53C q1^xk8b5=XRPFD-SPXCg>A3p(@TsUf3e}X*#0000Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_P)JCKhD0-#Am zK~zY`&6K}y(?Ar*59t!tIsqiQ0z`u56!}{m85zr z?l!m4*K5J=N_a(@2L>1hor*+5a_}wC))tg;-rM9S{-6MQzV;Y)@P8>W0siv66%faM zUkRv^3W+9^`n(^~FX%y;eqtqJ*bwM{?1#pokU#;9O^eju6D?-eJB5G+0zIQ4{?Stz z_`SOT6MBY+x>=0pQzb!l{uAypdGeZb4}rmyN3a1PU^Y+QwOd&m0p0sELf&FF1(@o5 zBO-Ls?z9jHPL)ey0El5`_9rLuv;QJ{TpS(j7~n#Lc4{cbUO{rMiv&Ngz^s`1X`H}U zNaAx$4$v5@q^Ms45iX>Z6BuJs?ZioF0Bi^3VGPM)8L6^$OgmVmUW^O?X8@-WlmMiv z4JBcK#)+v3Al?8JQZz1a4?R-PWd$GtQaLK~!vQWOdr|>NIRtf5y+9SustVOO?6vUJ ze7+x9V01T6)k)&dD;ylas?EJ6->-3?{z10rW!d+>?Q|Pxjt`dE)75Ip->6xo_kcM4 zkgX8-Auo<3P6NVi0OsDe-@Cg%@%&;Opdj~v>$Qp-b$-Pqs+Itt^Xn_sf!Nl^>rw#D z7PW)5a1KcWmlcb@0XMb4{Q5S}*SB>RO_=8@uIh>`fV>unETARMh@;O6kc=EaQ+~{U z$vl@4zCXkj!>$}NDZ6-W_uK$0!wpc(c#kv|IsqaW>xK&3s{xRRLvl1`g4Bh&XEc>{ z0_xQa)t9YCL71-z0yC!sO-%;hcsD_d=lIb`XHE-yQ$-z6N(muC@_z&&e*hVlSV<-6 RYUKa`002ovPDHLkV1gxgY$*T$ diff --git a/graphics/pokemon/diglett/front.png b/graphics/pokemon/diglett/front.png deleted file mode 100644 index 4e527ef5e57cc120bf97a36500e1c35fdaec2dca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371 zcmV-(0gV2MP)Px#Fi=cXMVQc_q*_|uoLa?mL0T~w|Ns9G5D?WlN^<}h|E!e%YFdMPO0=wVT2dh9 z=Cl9+04Gq+U;qFB@kvBMR9J=WkV_83APfZyPMwc!?tk1qL)5fgfg^RrNQv0YVElMY zCX>nJUnJ*_o^vKjOVrP~28d#XMETkLU?CAP+-EefPz!K$gryCCE3mHHM$sj}-}e1D z&O+iy-~cPf1GKH+PJkFRKNxs39^mw)j|M~-&SeAPfrO}X`o=`Gy8z$p$7l9xZ@{b+ zP9G6d*chR&Af+InHF8!wAS@<51yQ%%FUnT8;q&8u?4c`Ad|vg8Vsp5e1$X1jolh{o zmOW#*Qxv~?5bM%g0-x3`NHuX5>-VoguzLJ!U{r4jJKq!1ugnd3GMP*UcmcgT3*-!c R!~6gM002ovPDHLkV1mxao~-}? diff --git a/graphics/pokemon/ditto/front.png b/graphics/pokemon/ditto/front.png deleted file mode 100644 index 73603b303d3ad01124fc8ca7f9bf2c726ac2e7f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWU9H@9OBVxmk6F(j- z_z)p60VuN}j0E#~Hba4#v=zKfTP^ig3z%@B-!+EY7vq~>8pJ3h5 zXvA#VD|6ttxY`;6#hWuOIn`}7{{8L0yg<_BW%60|1%}3VZcpTgAT#YI*sB&KtJ(dA=#T9RGsX X;IZD7np;&bKw;qN>gTe~DWM4fDR_Ry diff --git a/graphics/pokemon/dodrio/front.png b/graphics/pokemon/dodrio/front.png deleted file mode 100644 index 5184438f49858fdc28492891fe8828135e7fcc6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 944 zcmV;h15f;kP)Px#Fi=cXMVQc_K|w(f5DIjT+6b^hJB#8tSA9(;j_Yr_W zfKORD$Mvedsq3;_A&}_M`A$t530$(1L z&`*xywcd+!M~^M3dyi*0=TCyT(8`8C2qYO22>b6!tuY~=5ky`=-~|Ie5oc=PQl=TR z-}SaQBI}q#0s)_MiQyd#0g#qLg;p!wod9RhChEM+a$CTu3b+X zBmOJ=R4NSuA3{>N_HGlh1>n9YgQYVbsgVji;0W6jKmhL}D$@xV!{P^?Qcc{!z$607 zc(BfP77AGptCo6?wL0$!c){zEG_vWOM1$fJt><`qU-JzHY$JKjrEIER_C<08smU`L zf!0e2qQPr(34_*bPi<=PrKcuN=9^JiqNBceEek7m_3bnWMb2FJgMfY3nIPe6OWPMH z)(x}7u5MGlCV);__`sjFcprId$AWYW-eIhoegXIUgq|E+9h^(z>Qq&Qiqe=0*-&XH99c}SyE)p`P*CRT*4zjS1wOSss4vrcZ6P18SJi63i6 SipR460000&W_Gn*+zW@_lpq{t@%1jC8yP`|2bMC(L z#zJ@=1x>UAe0KvFDT8(G1Q7W+CDaEH{5x&jn;=GA`+(>cP~rwk4^T8XW96E&D2is6 z;vI1SBUSD8O--WSVX*zVFKeh_v)}x9AK3oNQ}VTMRiD2Lz;>0B``1!6o&7pb1it(G pZ?E0fo8&4_y#Sslp+5betUpu;iqDB9bTI$`002ovPDHLkV1g6V3(f!l diff --git a/graphics/pokemon/donphan/front.png b/graphics/pokemon/donphan/front.png deleted file mode 100644 index cb344b85bc2ed9283384bfc2f2abea1e3d456835..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmV-!1CjiRP)KlfP@*P!PwJfah?w-yXeM%^b`50~9NJ zr1}&LaSQ>yAhHD-5i%4CrJ_?Q#KzE4=oGv+89HY(EfhL*P&#GEP{kBNrzX9VEhWwm z=-46OMWFk8X2LJ~gd*RMFY0&{>MBGY&Qc?>wFc73P0Nfh{^65u4Do~V4DFnAVK@>*$EdcaX zxJ^W{UcDBVMheX9Py~Tt7%F8zEl(k({Uik}xv24?G2n2uLOC zJQDSWCelDo6TRRTxdfd@sdGP+q)A<1ZlkR5S%FGL&k=!B8X(5^oZ}wCIE|o zqoXiW^pZw~8Q>tY2VU>6x0xdZyv~PBDQJ(p!=3P&4wRn((_8|?X4rjpc>`z<8Td5< zHo|Tz{(YVSih7()mbCp8;83G6kq41E373kt&1syPekiD ziPIiBs-sk8DK!DHKuhKb&+jO|74uSuf$}MVl~0SE6niQlB8_j!z?Et}-v_Nidn~KGEt>)n2D}1&~p? z%Ne;DMXz7Gc$a)nhWR+Dgd;{T37gdEGJTTw`99G469BFBz)ai=;vrxEDx8`DFdFT} zY0^7B({4&ac4@pwPS5ccpc#3_Lb7)|JfVr=5Bewl1$qKDi!xuY7XSbN07*qoM6N<$ Eg46|jK>z>% diff --git a/graphics/pokemon/doublade/front.png b/graphics/pokemon/doublade/front.png deleted file mode 100644 index b2bd15029f5600b0480fbcddfac7e1f1a5a5de16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 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 diff --git a/graphics/pokemon/drapion/front.png b/graphics/pokemon/drapion/front.png deleted file mode 100644 index 57734a284423ba73e38257bce16c15facd4b7c08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1069 zcmV+|1k(G7P)Px#Fi=cXMVQc_N-<)4L3I|fd9H09X zSP+mVVWz;Z#g0NmRCft^kL-$1xCH_s7hrgnWm!~Jh)M~3dL*zT4+6)F3#jYLx-7w< zU~~MV0!fKI?Q{^(3^NJJYF~r{|3rYm3HR_x7-AaLq)C?~fnV)LPR|5n5{&`kLIfKA(!IT|5mb6AK=_UY& zb+A@#IYToWkU_vMg%@S}IvE7`jlgofF%-zFNLz+71KBTQs+QH9?Z=>q=P1Bawh{DR zonYOokGZ#AEvs)^d3nE?^^k$c*q#BZ6((5MnH+;d7QZtH-bO<;TU_CktY-o@XF3tQ z7-_e>>Y#XYt$FAl0zhDwf*>X5Ubhe|FD6WqlIC{?N$tG_#Sq}O83#&pZ2}s5KHW(< zYi1=X;1IDNVxpa3o+-}yLkKK9zJTmD7jgC($M<@T`u{Q3vir5BE?kh0{6-U_wld6s^$yC!TA0nc0-Ma?1jGaU0CzQrW|Ab`!{txxti{v8cGN9}%ihi4zDm&P^MmN4$+i~j-2 nLu0;f^Ys%y`v>E9{nzUckLe#bC;-i}00000NkvXXu0mjfFly|L diff --git a/graphics/pokemon/dratini/front.png b/graphics/pokemon/dratini/front.png deleted file mode 100644 index ee6f3bc450170fc04c5994386d5ff7c8bc39eb9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmV<20VDp2P)^vp;!p3DL<@oWo6F0Kh@WeH~?^9*`10z%eT z@uA#pLxLrr&KWZin`*8on(>oG|AU zLH&08wGxO-0|8JUf3MmJ2R;Cxqv=I(D;SV;i0D3MKotNNJ(^?@0|JfLsi{5_Te0wf zpw&#%%#lZkI{@bdABX{+6GDJfA2|1diF*YYkq6N3pdzIc$R1Hv?zRCQ$kwzZLJOw( z^HkJy3yjFV=Q=O1Y|p_=mNGR9kW#qSLckf3{by2>5A+(ax}0fbsfH>A2P{@I7E^o(sI=a=RCzD>qZL)~eeQRN=bt0007f zNkl#{q2Z;Fs6uv-^3{{n6sDw>Ac&pD=hblwj4Ad|+^27u} znZkfrk}(oeoH0_RD3Czgz!#Hhe8R3*HVC(XJbld-)*8x=LCRUfCGuAAf~-TAr~0X zA0lM355_j25PLPI037lrvk$Q99dSlU2FI2HBvFTI85tlRV-47?Oaz2{;wAaXIe%-g zETAxleB>SCopTnkd8Q9QWO2?HEykEH1CY<6UtBanK;nQ%2MP?^5Z8rZS~00I0g@t(5=DhQwkBPf9B8$sKg-@v8Dtf;w?2!|;| zfgKP}ub4l_f7lH;{tPLd+yjGa{##s^%jGS&0gS8gfezOan9^(Euk z$VwO{Vn^iJ)7P8SzP;zMsDD`5$Bd`l*rd078n<1r;Er45tJThK7(cJiz)CV0}5c z!jN$&g_P5Yh_Hx6lu8IO$9$!Y%G*oKKhst#v><MU zbU*-k3;_Fes&#Q1s243jU!>@isqO%_MXgIDA+1b8L+mrHpl^HQDP7?Wd;XM~VWdA;w1v)6CZq{R*Hu&Nm*Q>xYba zv%vzO9e^9?5rBhzZ_E7-t8njexr>M~h9Hms2lWlb#Au2R2xWKx0000TK-hZsP7KeS=KNl(*=S0%}H*Q?zq#Fks#1pX5<6A+NQox6Mb?{nGjPrUATx3ub8( zOk9v=^@vU~bs~D6SC8l^DRcP9LvFZ1$MVV`H=_xoL{1t#$PH>@PP|10B~WB;QeQzk8umd z%mot!r`(7nMzAp;a&BulhhU9snCi)q*1$Ov&SZy0s8kivyD~ucnRG$K5v=>CykOhH zf{m1Y2him_P-|f9!`*f!R@nFD%6%!R6rcd2;oW^c6A}RX-~tlq5DdSBf0##y^^76*8yQaLIm=-@L^=y5DZ97lm@H-^hjf0-I98-GQzdZ2}-5ZZ9TvU z1LTR;WqTiwQYC1;r%&+kJ_cxD?fnDH-`FXO);XhY_xq3 zVW6u1Nx28$eAZ^jO0@&3tib+Dz*h4fs$v+xf)@Z`I6`{9Z_wlbR^~0CEVO?C&59nL z>}wQ8tA|z)iYI$Z(c@$LtSPJhgs2dEHt}b#f9b#0f7NeeXz_)|kP?6Z0000BjE7>3V6MQdf#p__e1)@*%I)u91HYsg?c$Ou8k7_MuGtBNjKvUu;5 zxm)uO+A)DHN0!Xp3|`9phI}X6vZVXcKhVA)A@n|a@BL0fjQy9Pj{6eN7U$0b5O8h{ zAz-Xa6K)S+cru-^&PUo8Vi}yAT~Dmh#UJcK{0nhX9cQ;LUMxbJKek;F$mV%hxgbup$6U8{oRw z0V1G)0aOa~VODTU6BhyxkH(lCx9kW$Ko|BvW1}qLGCqLlyMLwqak6LuY_xRsWVb(8 zJ0Mwv4S;)GkM7<6C~Le*k|b^hTnO;e%s>BD280Nttv%onWoeehz9vk7`PfR|&35~M zm;ENduJm(W0u^9<4jzQDo(}eF7=SZ`_~4TO))*dN1_dx)145%D%7&W4lmPDb=Ba$7 zJ}72OfOp!H60d%lz)U`#qW4?wWVW2ihRls<`f~CY;Ez5TCG5(7kR&j>Zv@EuHc+$x z)oxj+`WO$20OsoGDhk-nRb6esQ7wW1)b^8h<}`q7pz>U)P3dpi{x0H@*?C^(Yz?5O zVjaE6gbFyUYf}}nIH_Wb51YBsVYN!q!&Aj{niw6NJg-t6cpp*!>Z5A#KcXiDwL~oy SU8}JG0000|vdjE##wi96_8uv(cs{3qos0 zB^k1nlAwui<7>m|H8ylSOR(Ac?sQ@p=;C3K zZ(7OU!pZA(AFi?Cpg~gC^0AgbS>WWg0I0fiHbp>}f?i7C|LKWZK)x7{$2VLJ^GVdo zOZ}FRt9G=YjpT`|v#IjI1xxQndROY*P>rhN2CcS%`&A9Tf5v^ElXdJBql9zZV8R}j z+G?~pLGb-6IoJ<9ZYU-|!Qqf=7Y-=g)waW{@p~q?CYeMv`?#)N<=l~>W*Ob>+wd!X|UB&)aB zESW+LEKs2f)Az#lrn*=6MyC$$GhLWeTPOS+QkfTQGBM`bWU;`gyjS7%s1V_kzt;Q$ zF3LmnOa*}N)B1FX^U)<#>I~ew+_O(N5P&oGOQq+>`Ka<{!+hO_TY(V_*YO3W7>e_| i2{`A_-msI@#0000Kl(A03Fc5}gOBEn70I5K1p=ry&lw8XL z5TmXYkwFz(q6t^_dZd{!*s<^xtpa#X+#s|I{&$ zymi)#Q!l_F?)x3G@YbIphM^xgg^MF^3jjzW4-gsv3ctZ1^Bj~-0iLHlI_KUcz-%gL z;OwD-*^{7Co|n2B2tnS}{+rf%?g31_8odZQLtV*b*%V_kLQvQBT-?wZjhL`!U>>4r zfsi)gHX;M^wpm+b{YFj#yxA6zg#8?d9__@8(~Nvf04%gXX1=`R?vS+79JV{-UQM3j z<2umwb0c{lNlOv n*pMH3;eTan`O7P`)1T=Z4=ZCSHKBj100000NkvXXu0mjfCYIS5 diff --git a/graphics/pokemon/dugtrio/front.png b/graphics/pokemon/dugtrio/front.png deleted file mode 100644 index 60051cd79ce76bc8be534bf57e7ead61df87563b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcmV-R0<`^!P)Px#Fi=cXMVQc_q*_|uoLX8j7{zlz|Ns9G5D;?!82_x4|7u#*IZA_jO0=wVT2dh9 z=Cl9+01HOdC;$Kf$w@>(R9J=Wl<9JVFbsroEaZTX_kY~#u(?`n*ZI{cnvgJo{k#%h zrs=7t{zDn559BW?YX|kOQZPhd{j3KJ5g34Sz!1O!WB|Yr!HUi~2cH1k`@Og^faq~u zmSvS53=RR@x~}d6060X{76t)ZnO^{O`ws(j|AVy`eJ>#Ie|~P}DDMUAdM21nZ7f$e zV1`04Mcx@}3z9v&0BlJ$wECdQu{Z+&i+(PE)+7W#`N1Q=YA9!!OdCM?Dce8yKz;40 zZdf3I+w((ri(WI`3*h{e7BYY{UB=P|z!o0`uz}rE58$|gtpMn?a4=N`oC&;tjlLI( zspgKxE8vg_^;FkSXioa?fQA8&IYE1dP5>g-2|l1X7n)P5V+a+3_bH)?@d7BR<_lE- zhLl2xDa8|@0Fkul>4w`b=pq%l@W{)l4p}EBw0Ml3KKCYk@N|_ABp<9pS<}-GNeSS! z;_VP<_2AV;Qpc=`ye$9lr=bt3muavUQ8R!~#T)%`JH;tCPyjKgjO2P6xVd{d6Z|yM zy-DV&?nN(OJkQ!L*ox<@%?25qoFYHGShIgNQWlp-P@CJG30X^q=dpj`pGm{or=I## Z^#$G+8MAqT2}u9|002ovPDHLkV1fq#0fqno diff --git a/graphics/pokemon/dunsparce/front.png b/graphics/pokemon/dunsparce/front.png deleted file mode 100644 index 660f5e1a11566baddbafa076ef4efae86c36d38e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)WaXn?37AOHXWQN2L00005| zNkl>&z70|Tj25P3-vD3IV3DIZcK6r)6GlY<|S zMD$?kTB9^$SBaG3mI})$%tVTk4$OaH?)W%v_i`@NFxBeb=VsoS9jy>|@&CgeqdVTc zVxTq#a8z@>IDwol1RN!y5U9!G5{{H|(E?iOv80q|m8k5zzBx|-C>sb;U;~)2f%eUL za}mJua2qHqXyyU&C#BS~5Orv-m`zl6+n?AzEXZk>O-@=}R`%KlrKi}{ASJ-ODJQ`G z8WEi&#F7n&x8bVRy2r$V2aofBeMGKsMEX1A0FLY4=K|E#bn>IMWqELGd_QhO6X~O$ z+rdW@aAguxjfnr>4lKZtS24vVp9Mki!2nLL0ojNKtnY4QfojxAQ*eUNH|B7b0^XA^ zJD=Zx0jypEv)ExE48tve<=c8`=3OVz5j!62aRJD#Q}soXfu|Uu2M=RCyA0JX#ubon z0uLdHL3Rqmq(ZNyb<~F@>$GkFiN&sN>A61Cfhe0mIB*4MpMjUGo7+?$(Ip_?$AE8b z+k+ueZ1S5Vm_PSTncEm59!nn69Odqs5F^B%oaJ@tL+-m$Mne1pk66#yW{&3rw*Koc z4`3<(QSg74W8xfa|7jJUM*gdR$}!Q)X)gnOE!IW3_*uM*F>wJ5S;cV4Pumj!0000< KMNUMnLSTY6*d0Cq diff --git a/graphics/pokemon/duosion/front.png b/graphics/pokemon/duosion/front.png deleted file mode 100644 index acf0c1c0d2393e56406f59733872270ad43d6240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmVZrE5Jhdt7Xak~9*{^{kW*V|Z-B-rTp|`JB^GR-E^RtrAca$>@#*q+ z7b_CX(z@|f7XNwvpWT7g>QVQqC|Z=)5z!K{j)@it=t)kr4>o|lt8z+1z=mkYT!(>@ z66S->gB~N$g#d*K3f3l+(&|J8x(qzg=Le0o74$W|oWH0jj3a~=F`dsyVAv7DpfMZ@ zeq;8;tOd@<&e#LsPHJI+egrD1MM;#gb3o+*plzyuVCn&&H@o*=zIjXl7r`{wZ*Chn zg@EJbhfVK+NeBnje7!UlXk`FXAOnCy07x1>;@^#32oa!H}t-X%UM!@g=6xjITjJJ~3UU`LFr)fk_sB#&A%}A)= o7sL^%S}D1KC6o$_kGgmL0SF0+<;mK&%>V!Z07*qoM6N<$f^$FF#sB~S diff --git a/graphics/pokemon/durant/front.png b/graphics/pokemon/durant/front.png deleted file mode 100644 index 0320e654f912e30c09566fdb2342aeb7e4d7bb8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)=6*oJb>C)R4nsP>3_z(PRoGvRG zQ@UKZ^+}N<`}53uBLiG?(SOuPJ_C&LJTXGV#W_GlV15p;mBQ&?&V&cJnuZlBKa!`6 z1PzeMKzQxPc*3gC4q&Ubw5aif)h77H1MgYdQa68EePJAAp5M1R^BUXWPQ%K2^*{d|9*j9)$i)6H97k_;kqg8V?#~-Z;`ZlkW zatS~m)y-%7Zo@_3TOERIk`lC8y%~Sltk!ELa$nkUJp{yZM8-^Qx#rH1+kG=h3$YY= zKDBeb@2DeJxa*_?bGxW(hhE%i8G)ut3UnG58E06*9Yx?Rr5(B(EEiz00OBpV@6_B6 zGq_KPWt?Rp8ZXFsF$Ci74)LL%pNO^lkCw;h)WL3o*mrmWM04aqu)o^3<^hd|!vN{N z&-FW~09bc|jbUIq06iv-Cn22c@5D`hEa?u{j^v;4Un|2iN?*f87yX-l0>5imN0<`P QZ~y=R07*qoM6N<$f?!VN1^@s6 diff --git a/graphics/pokemon/dusclops/front.png b/graphics/pokemon/dusclops/front.png deleted file mode 100644 index 58a0d15abb07718ae40f168c417d8081bcd03de3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 857 zcmV-f1E&0mP)ljA6t=14N=(#hg2Y6Q#z;&s@B}?6r^J?-I8EjQMqzL;yt2v`(9dKSRv9;$j zr~_<2V{c_p0~jeaMOj0jC^D?37#l#E%qs~pl2FHarN*{8M%3q7Ql&9cr(X<3rHN5` z`Tc@SV3mpd^y}3(0_X}8_Q~bT>;5N|V1>p5b@}u9>a$L9v&)?)YRQnI-qbLg<&#tY z#|t_|@}9jZ=Npezl78eDRLNYjS0#~#pekyrL!xt(ZhNqHb8Ye3^g(M)-x-E&(Of53 zP-dcvpl&cBf;B)qR@rYrS^x&C3StoB+$4|aMo6QvLg5O*njncGjVBq(WSzp@ftKY+ zx-i)gQN{_K<4+2^#r?pFWll+n^B8jsS19a=cRU!I-E)K-H33;$^locmhuvn>iPJNH z7!hLnN=Asla+Wf?-7xZ*H=;h#UeV%R%tJy9tj1Dici)Y=ZtMQYTzc7Q@O{X^Wz4hN z1;F7==FyJB3^CDBC*q9(22I9TD45Z3e9BTB7Vm}te&ol2MT_(^02f+@uvGxm!Qh}5 zaUg@FK>(VG4eBk84zFlMDnk#VuBj5xCia1DS8H#^FSz8|Kj6*_b-klyR}oCZ_s>!3Su2+|gV<&?`1d(`jq$Q@wW3<>z46Gy|iH{}>Mx_22( zIS&A+2^~Td6?8}Q@RWzPD-Vgo3fwLLF+mK0-kCe_I_Hq?7#s=$&{{T!;^5!TGSuhA zx|Klr1P-ati~1=58kR^1$ws9Y0LrVR1Tv98tH3zyLnB5Uo^V6~cv(7hL>ePNq=n2N zb=;G2)z72^VuX?;*2>CCk3*q)(e=VWHX60#B)RK{IPA)A{%I^a0`zfK0I1!q^Kfmp zRRA23$O-@f5Umftd@(^u41Y+2V+_|vUzKW+5DXrZty(0~9F+#!mI_6Rg|!_Qm0HMh zDtB1GO$(!6K)V3NEQ{>CEEUVCHh`~)R2nFC3yx#sc32^>sdcyBwNC^@sH&m-wT9(v h-cV~Hs{H@``U$r=f@pdyQM~{F002ovPDHLkV1i3flp_ED diff --git a/graphics/pokemon/duskull/front.png b/graphics/pokemon/duskull/front.png deleted file mode 100644 index 33903c773d5e80cd9982a349b77c8b351fd58b24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmV^fPioa2nhK2;MmZpu&|Jjh;ZoO!1zcIurN^gU?BMT_y`CH`cO^}0004q zNklb;z6o#W9AHY~u)r~-5PfP|@lmir{uMrn8QpTXj%GxU+l%=dhy+hZY zqCHHX9T*zN&d9=B|Ih#bKgaRB``l>g#I29k0|v_>;5iwH@RRib@k+-|odndi$B2iN z(if}FmkD(NJW+aR?J&|heXv#tl6d1x2xg*mS@>fiBq-qB0xS@aDkPis1402RWFvb+ z&|oK}#G4EriyjXmS^zWHQ$bCFoK=F9g<1rCj1>P($copx1g!%)Hi+#`9ysU{*psrT z>i~^h#Zc=-@j4jqSj<3Ht1rl8%GeYc&i`MzkM8@^4+2G~-UKs%Xxo&hUj$0Vv;lM~ z%ok1h@vVR`4Do#2T_QX0_Ay||BiCbm^sUG%09-S*07T^SfCg2{|1souG$+JtvbmI4TG{-9t^Jv!dwgLMCzfRxdC++dn)&dE* z=n>fd9stMr)&ynXb35Q+Q_mXE_He29x#|1?jum^6AvCGN00000NkvXXu0mjfxK!rf diff --git a/graphics/pokemon/dustox/front.png b/graphics/pokemon/dustox/front.png deleted file mode 100644 index 356320c18db15ad3323b7c1a7a7afb47fb37cb4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmV+)1K|9LP)9s|c!01#C|D4f$UxvYK=^oo@M5uS00009 za7bBm000ie000ie0hKEb8vpKlf6&dKp4i2)Ksd}fuu%aAreQjS6EIn zwIZ0#`8taEAUw{>%!i`-ryoCM%b=4t526{naVL-{!p+kkPQiMF>jg|DhGmy|) zsoD-*cqQAip5MLC^ZI;-@lbzWQ`5fzQVahGOcC;YGEm4&1|H3)RwhRvJsOcY0y2!yothZIz!db= zHMN*GbUmGj0-TP1YrsLen^%HTmon7>4JaKu1Bkb1ryfn>)pY>4cSa~sHEYZDnB9o< zrg5+6naa^~>+TvA&`15}LzYm#UacuQCx}A-7hUIQ;y7^f6mK-{kYemLosHgXV@xF` dXb<(@>j!_8icCAN-9i8W002ovPDHLkV1hEiV)Fn1 diff --git a/graphics/pokemon/dwebble/front.png b/graphics/pokemon/dwebble/front.png deleted file mode 100644 index 560295f560f1baab156c0775db2a5aac90c951d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)R~;e@&uY2jHx zKc);5wD4^aPTa&dWdUy1|LymgpBUg_9y31v0SSwZCEUeooG#|NeXk>o1b4X_2a7pH z(7i*z+Djl9rpuQxrL2oDWdbsRBE=Lu0FS{X3^0YV=71n>?x1bpq#&Rw%hREu3H-d$ zfa@a>7-u?c2Ouig@&=>^cppFsNcQ+xcx2k1&{-GND}p_Ui3Wpq!0z~oJBZC1Kt3ld z2}}S|DK$NQU_=syZP3AV#ZQ2HG|XDS#r4!9-@*|z@TdhSHLE2wNnU6IQ7d`)+EfVS z#G}TJq%Ku{8182ZgdEzyRPb7cL8T`=nG-a~^35m!sP~*2M`}=zj&uhA+s!br1Q53% zt|U2#T++Z2paIG7)5!ddjw}JX+YE~G5%1ahr%f{Ap6}{G7rWQ`_w@~uPMZyv2NQi5QZ5eg}O>gJX>+{05%KHvcn)5ETDra6xj;cEb1;D0@wyR#sSr? z4Xk^Bc(6KWh%;(vkvvq7bc3`aC8Oxn8?@ZV|Ni6gM95!+>oqF#JCu5rfKRDkC4mB4 zfEEJnstQ{HiYBUnCIbGee*@4&6;PvXx48`n!U}*i-JlvcM&N{VUJ4A{;80-j*Y-RY zvDn1ON^tQUHsXc&Jw_(L;y(zZ8z;F&Vtl8w_#G61DZsT5*?Nij4{H-}AO(m;_OQ&B z3K;Q14QB>Q;{I`s8sl3Nm|mVHke=W7*Bck-H-#G0etrg!p@PoGD+7pf2Jq$EqZSyA zR=fzXJWAkm_HZkNTaRO21RTbqA21)IMW42Dq6QGL{&$#*m3T{O>&OJir<|Q4AjBT) zy89O3B9B-)*F&gjpl}apBFg2J81@>31p9nt0NBTwjE6nXD+3%UB?}Kc+NillrUi^$ z#t1oR(Xi%PJpPKBNBuCcd3*v|)bFV#N(3~}b;||t3aHzy5Wo)U9txOG_E~}*cZ3+0 z=5fO*K8JDv{E5_sI3eVvoJ{NjEnNWLa4KztPdj?4W(gz!A8kNgt)&CW0@q++22yDNP4pNl;7YuQNdjRJ2xv!*$(i%`-2~vP;b9ji zjU^b4^NoZHLqG$Zsl1ez%)A9cx*peC#TYY>ZzS|m*^@dL5+#S92xhJQ-^Wk1YvM?< Sts>w60000&i zFhBqxFd$%XaInY_5Ey`PK)|SY*suWj&;aPzpxAIwm@p84fPnb;_y7O^DPedN0009y zNklBjU5XTjRJay=^D!Qa4wMjC|7o{phKs${RrN?HTn#_J3YyE0{sA`H^|Sv-}~SH-8MtJiCX<{ zdEo#+{SG4T7YoSa7U4Yi%DfOPvbmDqIS{<4I37uOgak{r@E4a?Pdq2DfS>-7KvTFu zE@1Ki%_WI7h-6>{po|9i1>tzZd{N;7< zW0atyNLdHy83F6T0km{{j`})QjJ(oCiva3V~ z+{Mgvc|D^oheEj0vXyYb+bHsOzXWhUjTZta(aeczU;vx*f^=-WDHjY84I(qN)MPJb z3Ft5pR@G1$pq@97Oc6j0ZEh*Nv_TH6(S+pVPC&p7ZEi;d@U{jNfUOv?X-5<1qRjvg zEwHUB0#3l50JUn{Y#87j0zDk40kqD*Ckt3X8-OaDf*YbvGGJqE2KKc+b_xK!;j@># z?(o@j;Pd2@Us?cohyz#0D?^*q-kH$jSo@^~v|OtTy3;*;&+zxzT*s3Yfd8)$XvHy2 z*DQNEzWB&3j||}D0N@)>Bc9E*z6wmA5|ei~aeDX8;TiS4qxEdgz=%#k+ufr<#y3EK zjqIa&e%Yh6PkGUu9^W|S9a}ilGGE{b&9K5M-d+0Fq&Sj_30DmV>O{cf`D)&> zL((`olqyogleU=M1}qtdQp&K40KOygE`WCEf%8hAb{5;FRh0eRh9_21eX Q#sB~S07*qoM6N<$f{|3Mr2qf` diff --git a/graphics/pokemon/eevee/front.png b/graphics/pokemon/eevee/front.png deleted file mode 100644 index 1773de2aaf1a830a9ecc350a66e13aca756faef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmV+y0_gpTP)Px#Fi=cXMVQc_rDIBSN=nw8N&o-=QZXS?F(JL2d*;QI`1tt$=B?nkcwk6400000 z000000Of#QssI21l}SWFR9J=WmO+w)FbG8jLDGHy1J4IytJMpM&SIuY%1tlc%O}Cu z)AZC+f4t}>&okfS>9#;_8JHlDdjWo3Ktso(ya??CL^KpgNtR_3fJO}pb^(ANewPGW z2bc)pV>}ESkL-tjssa}6>pMRhU?QEJT-P5C;C;`&bqxMO1MH{f3XUA~;kovDB;QMw zSQ56@YDxA2B~oA3>1MT7uz_0<=V3JGivjetGi3k4mj&4OWW(cv$RAZQ$dUqmNl)Mc zD;so{+{H-Z0$fknKdTF{cnFY$h?_uQ{!|S)g|G;P0DKlQkkuk^OyL|n7F`W!q%a9) z;&}2$0r+!)y_>O6$2pGw(?mf49tJQ`edl>I@TtK0cT^m`Pe8a5KjnRDJD&!Bgts~u z=$Albgoi;_9<;?7bVI3w3=w$7S6T(c)tgPNzr1XH1SEJV-;CP#j=*adNF8^B`1k~y zf+2d!Z=-Q<<8$E9L1HzpL*(l Z)(@jy4EQ&;2+aTh002ovPDHLkV1n7!=k@>q diff --git a/graphics/pokemon/egg/front.png b/graphics/pokemon/egg/front.png deleted file mode 100644 index d9680a899240ddd41b41d025ed624401a51ac500..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*Cqd_IC^((*-I%m;JQH;0C-Mt$6j(bPu@F5d?7oCY zs)gI&cui}=M8@7srCO(k&|b+7j-O{;LsP^8nS5q9o>=r$_><~2o+(V)(Irdy7fn>n y-_U4s@kzALA6LoS>z3CFmDb+6zw`6&8b-l)*484MnWcdKVDNPHb6Mw<&;$THS$h=# diff --git a/graphics/pokemon/ekans/front.png b/graphics/pokemon/ekans/front.png deleted file mode 100644 index ebfd623efaf5edc526ab425e5bcb83c63f877edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0Px#Fi=cXMVQc_S`bR4N{jBK)y-nGdogOXdolmjY7h_*=B!$r5CB+6FvUR__H#=3 z;Ftga0Ll|o$N&HV&q+i*d%39wHOY2Vop`1`S4F{ zzg~|XJ^E7w-M1&2rYYy!2uhOy6mid=yZ;`6G62k+QqJi*fe2sbQl%u-WdKdAA7-vq z8iOEL{ZqE+OOtXB;Kj=+vH25UBM4_UH&JqN9t4T7M67i4JaO#Z2iS)YD1&4G_~XACf@FOIuz$%xS|kT0 zz)oKxh~<4QemRIr06;nq@Vg4hm;woH2wN$` z--vX;H-tpS6FW^OvUES&g78X;b~pgQO110}Kl}&+1O#vj@TID2%^!pL?Wbr3V*zvm zu2cWK5d^eTfTU~)Tm_SDX?ssGKP4mBb?F<@2^PT_KzxSsLHLujj*$eI+L2(B*$7n# z`1Nb8uhY$~()Zw|JHjEG`J#IV fxov**=wI~%Dy|V6piFqw00000NkvXXu0mjfSIhf6 diff --git a/graphics/pokemon/electabuzz/front.png b/graphics/pokemon/electabuzz/front.png deleted file mode 100644 index 0459ecb3bc4175abaaba404b6bedb5e22524a487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmV-E1Ht@>P)?00000Pj$vQ0008X zNklk5q!A0ZUl@0Xi5>OW`HXN z@NL$h5e#U=QIkl(5~>v5!4we`05EEuvew|R3Nxl0vsQczAQ>8C3;0I>ChdS> z--;kW?EtKM_2-!icy`z_p8<3eNOoI|uKqp`P^48?p;28hNw^Dq{%r<@SlcRs#81-Q zS+!}uRi*z?0#zNdxFHTG>>P=4Old>;`@`^!rR4sXEJ=anE!Njw%y637f<*5jkqr~hX42Z2NGe(zfLU1$p8QV07*qo IM6N<$f)nC*_5c6? diff --git a/graphics/pokemon/electivire/front.png b/graphics/pokemon/electivire/front.png deleted file mode 100644 index 41bf884b5e4b025fd7fcc7ea8c916d4bd0543575..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1066 zcmV+_1l9YAP)BOF*-3~2)PID&u? zXm?O??UB}?)$q!|HZj>Eb=ovJxX#s)`y29RBzY}+bICLs&-=~y-n{w7jQy|i;eW(G z{qlo5R^Qt%I^RCJ3;6hpaX0hfp8clZ4SBF`({7Oumv)? zZUfN}c!_H-O;hIm_)>SdZN%wPd8oZi%3OI(t`E2N04sI2oD#9FaLo>K_&qSnmFY6W!ZDiVMVgBTHYEEjoP(Tost7F{8bfKQoX zstC2ra?t?VA!WAG^c9MFTC>Cen=>Pm!qlvJxMX5TV7EBpt@UvfEqFKOKV51%45Ln)4*Kr!|d#; zQYtzEN+WM34)@);rhmJmb5Mo#ekq~1l^+44_5ynVB|bj_$gWAh$xTiVn$Q8!?*Y@T zVi5nc*d*3gc38skNJN74-u2~2)BZmkpKVy07*qoM6N<$f?`nj4gdfE diff --git a/graphics/pokemon/electrike/front.png b/graphics/pokemon/electrike/front.png deleted file mode 100644 index 3e2b74a7522a869551d63530df2185e39b0b713f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)8nu6oqLh+5-atJkyIuqLknSX(wLBQ-J~^!(`2%%t7Q_XsrxXdjuGH zg{T{#6zV~tG}i#`xdTmkxu&&cP(s1lSL03*HvOa8Y9&MON9=&}!t#(XND$K0zv z&GitV-mnCiY<*m=QT5NT zTDQccB7cFM27rOJq;tvyx&Yih>Q?76`;{5+q5y+S+GKc7(dOfyqy^d=SBvh|dlH{s zfqTek5&-ef-=NcO3rP0?pEn@=da|HqrP%?ZrBTcziS`>QmI0_Cz~&(0CR56%Xvxl= zLLidtn#vUGA{;)lP__ZEf<=@dVl2Z17MBfZ8mT`?cWXol%w5}g?2NDVUpr7@z%SZm pc)-^#Q$M6{0x#Td_(A`R{sNr&o^_7A7Lot}002ovPDHLkV1nC-0^k44ofy`glX(f`7zFr)xX!q+ zASx(m$(%Xw-o5+r|AO0wM=JS@J-Vmt)#qSqXDCpx zOk|z#LQtNS@A3VJnH5Sx`?v2;Og-_CxiRLyorZ#BPFto>VN*KuGQ%**>7O2Y6g=j4 zJha&H*ycw2d!77h3(VHMn-_Y{Uh~-p=Z#`tOyh1^$rx= Mp00i_>zopr0A=pRrT_o{ diff --git a/graphics/pokemon/elekid/front.png b/graphics/pokemon/elekid/front.png deleted file mode 100644 index dc1c694b23e029d416f39ce67a3f56206463031f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP)ljA6vxj|oux}GJ4-#KW`PZ!rK)DS`c)|PauGgNkfkh$84*SK7Dxzn z4)%g4tdgOymb2sq7QPtx1pMZcsk*Pl5BcBDj|H);p zfrv~E|I|f<93Tv6P@sj!i2D~yF3thAkdyx!F>Z0n_9gXcy(>EXbk9QPBk$IbBA4Y{ z{(Y}}RlQUC7`MoeG!9Ml71m00000NkvXXu0mjf?#U6h diff --git a/graphics/pokemon/elgyem/front.png b/graphics/pokemon/elgyem/front.png deleted file mode 100644 index f1a930f82a6d58834030f5d25d0e6676cfa4ea89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmVPx#Fi=cXMfjkwAX-v6b5dfIgQU&95D*YSK|yM2a}ZJ~|Ns9WoDh2{Da`-?=FI?V zVh{iT0BC3-5C8xHcu7P-R9J=Wl}nPtFbG5q0!gu*-2b?N#?H)Y%8=cZS*Xg3eri6# z%W}sZcl;gXQI~TQk1~QGm)2U1aOj1Npx**2gi{}Y0^tJ)Lb?nj@|}ebppTjb8a?#A z9~N>1f>LDQbb@37AV6+_bcoEmXvesiYuy=LI3~&07*qoM6N<$f;v^%rvLx| diff --git a/graphics/pokemon/emboar/front.png b/graphics/pokemon/emboar/front.png deleted file mode 100644 index 009ecfd4de552705d199f24de6e74dbb79b5ccde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmV;91abR`P)>+7S zMNw2TIH`KbsqAgZ!3bYM4ow-5XxT$BzGP3nIE7#qgIEjFLJg)?-;*8NA>Q=Vfs7~f ze)GL=X5L6q{;#$)XKn%h$nCf^2hf+4oHd5@_W%X}88i=Api4PcR1~9_jpqX>z%oFa z2b2tpWEmE8I!9uGQiE9vLJ)r+@aQXmU_|em1liAwbxsUcT$n4M>(sFLHe=QfX1H$> zW{pP(xZmn@V~zv>?g8Jn&6@UNL*54<@8=h#ReS&9x01g3>wS|5G=981sMi{xCFkq{ zrt7OMZRfiHMlX+NT^6zX@CBvSd|u;1gSgaYJmhTbcPo^x?rGwOUD$&JZYrQ6AS(1F zEvTJoW~9T4gwx?RPPsFkgzwdYZT)voDXhb z?HCZ=v%h(za7IgDWR!q^9YI|fm_5gs$DX|9ydpQw^o?UGPc;re$gHA=fXZyb;woQd(fbiIsMs~TTZRQEAv=w2D0S^IZBxDg{ zXv;9Ld(J3ejeadt`3PnOPG$X1au(2O9stiyqAtW^*=1HN&!+%fe|uGlJHC{m$Dofq zTZUbAi8%rYX6VvZA1Wc@`T0ICHIA325@tmSGbqO)u zavf42paxzbRJb}QO~y<=O$EVL4Nl4=D_RjSNWe@FFO!%8 zh&u|3`?!~O$DgaKt0DRHMj$c$j<_V9(0+PD$h8B^T>G+P@7L*KL{w| g;y(c8uBV6Eza9<@&wbM?TmS$707*qoM6N<$f(=v?NdN!< diff --git a/graphics/pokemon/emolga/front.png b/graphics/pokemon/emolga/front.png deleted file mode 100644 index 23a5856b4bef2654a799e0fe0c4ae6414e21e120..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)Kk}+@7KorNHfQ{!cmLL8)dW$HRJ=?iz`8zgYtKxY?{={n68MKr}nJ^HN2t^@=A% z)vKp3N&&$D){oC8B@PB?V~fuI0#rNLI!{U*0NR0%gryAt0z{%gqqG5dTU$hgizx)f z(jnFZ`d}yR23Rz#@%G`cHLw8J$FNw{c8Esx*6YH9b!#GLIA9=%=}%MEEdy{yJ`?ho z0Vn^wjo5Gl3+V6=^ollRZIm@Y#K3P9z&O5`%}771e&R-8elCU!GxTZpd44l}5)<8> zMc{he!45_A-p=Opo99QIrqUB|1rya`1c*a*`ECB?Hl--Z~QVdMY{Sj79@cn?NOH+>Gu>r24 zPzVV&a40FSHwMt%dpc|=b+?xjeFL=Rq7D_M)L{;cjKw|Kcq{-bZe~xZ zU=JNlSud+#8kv i*{D(etZQBWSib=|wYI_m(a}r*0000mV diff --git a/graphics/pokemon/empoleon/front.png b/graphics/pokemon/empoleon/front.png deleted file mode 100644 index 3b3dff0bc2880fe9d356d8d47ecf12ad7ae299ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 867 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 V-Zz>?m7V|q002ovPDHLkV1i5(js*Y! diff --git a/graphics/pokemon/finneon/front.png b/graphics/pokemon/finneon/front.png deleted file mode 100644 index 635dcfc7e99aa3b2930da6db46a9f5a903aa0b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmV;`0V@89P)K)3Hv&Fc1b{S622?-~nA(p7RD;+8-%@EMlzsU%w3#~D5{8`fJfkMxTGC@?ut-v$Z}u*J6#&aF7;>Y>P&wG zV|;iNhnTUObWDOthyiJ;NFZ{B0YHO!u0~S`$$pR*ia!F7I|Q3T2`IN7@S2H8SL6%? zYnbVsACy|((Mz5O0<_+dfIV+|P|=6#L8-S+z~f zT4`EqEky1edEH8j;P4r_56SDs*cSw1rYTSlAR|UF+4U0;EQvcx*$3Dn3y3=|h5!Wa zHskhK1@#_yXZrpjPhtWXQzQ6VPo9Vs%#iRtfz%zb=rABj-hc%7^X5AVuf@~@ewLtk zLM+(>O^u6b^`uZ$bt$giE{e$`i6)uLIpebXt00000 LNkvXXu0mjfn(V-( diff --git a/graphics/pokemon/flaaffy/front.png b/graphics/pokemon/flaaffy/front.png deleted file mode 100644 index 6bb2dc324a7812b07301a045d9643e3495c7925d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)Px#Fi=cXMVQc_y}i}{|Nnz?i{9q;5D*YbN?P7QV*jM1|8sNyy}hIW5K@E1QiH{V z#s4Wmi^l8+L;wH+4M{{nR9J=WmeF?OFbG5~A%rls`~QEtfTcJ|TSshOLwlS)bnY1j zOuHQx1v0%7wCn@o`f>nr2Zaf$E2lo^C?I8*f_`Q90ztw70RMJW z0SxL@;^J~Z3X})|dgm4cfIXvtF@syBR7xNQdlR$gBja6@vhF{fb}A8VO-2 zf;&KKOoE6hxXTMja{#N}jzWp9VsZ;j)9d{&8?g$wAylvM6$WLVv+G&_c$ z03C}A!u48;t}mr=lKg1~%-A5j+NzO%f&Nsz`4Su^X7HIoBRThs;5#%90w5FVX?~$ z8ZFJ}skNbRY{$h3Xcu-$uK<3~+ouAm0_F}AHEOp8I!Iekz~o_*)~sL04wKRIvc-OgM3Pkm~l{sD^?7#ZPbi8TNK002ovPDHLkV1ljMBq;y@ diff --git a/graphics/pokemon/flabebe/front.png b/graphics/pokemon/flabebe/front.png deleted file mode 100644 index 835047c90f34308caf654d24ecd2ae16e076a112..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 zcmVTwAs8;M;Tv&`hW)vI5D>vm=V_&adA73B1*qK`*RX_j$00Cl4M@0Xn2lB-L00JCI zL_t(|ob8h_Yui8+$4@Ae2NO92&DN4t<-jHu0hdZ?*I+%<-9&VCHRv1U3j_+@S~?V@ zEJ2$uo3}(;XDNZsQa^!7-<@fRPj~8E=o`d6{eSQM-f7&=E9&7TV0 zvNXg2gi|sYUIN&Ts|Ju5ECJwR$pPP&i2#Y$j&*TtVTS`BU@8IUy!gcVI6SdkA88pt z3xL2%>}5iIz7E?CFb@DNXmrVSdC~yplm;_i8}SFofJrGK?`9lX&=CSNk@%BmUk#{d8^eUaw>TTbh%U*zpR1^sB4bN-xX3 z)QDH^B+b3`=k}BtV>$a0uO?pZF}7|uU>M#lS}@exKrh8$`E7D~oim1O$)k5u6!@Ou z=kUCB%I=E$eFF93fw63yB=H)j!SsHwL9qkY*!vsmcRY970IwAf9l&)Y6o8n4DfvG|eRKRTXjX_|E>Bc<;${bI6w-@PrQ!C2a=qi)^BYBJMM%@pgwz#j z$}XT^^-Dd_G*A7qF28Hbe?C`FbzS~Yo`UHAxUK5CdERP0&dRcG9=CcA^Q=URu3eZE qfzGocHSN|(-E~UB0000Px#Fi=cXMVQc_b6P?F&6NM{q;nt`#iVKg007=fIix{B|8rUZ008*-_y7O^00000 z000000Cvjj#{d8VR7pfZR9J=WmEn>jAqa#6gQ(f}f8T4sF(#`{uJUuk)o$I?+8+&~ z-frLct3mWBfIlW29}=!Dh-~$g4&CeX9>BZ@NS*+wB@e>33DExrpl{TRr{maIF#Qw& zL`%E@pnFq*Nq{&KogXVecKs8el%`4eVWNO-{1fH!q_5KTJytC!24D&UCFHdVzXIT6 z>cRb^RSqb%m|Ufbi}+NdjKuR{^a^Z+braUBs@`ki<2g7bn%5xFBGkZQ$xVN66+Gn7 zuUbHDg)*anrY|Y+poToH2o$9nptSU6U;uB0fE9K=z*g%nfplY`X|(76VUR}qsd zCM%M1um8FOl%;0VtLYm6h_ilFuxJ5?M>V~*AkKB_1cTUrXzn3bvLve5|LSU_S4>2h zU>+(5UT>6D|O1A|{0eYVy#ioSSpuz-9o)N9|5&dg*_ezS*x~?}}QtaVO|= zPIh%`f{3bgk@u)VM>E%s; zo?W-A;b8!cx$dBCRbQld*@kj-e+p(Wf13YKv$pe%Z~TGy2mC!7L{(uCxc~qF07*qo IM6N<$f_3RrbN~PV diff --git a/graphics/pokemon/fletchinder/front.png b/graphics/pokemon/fletchinder/front.png deleted file mode 100644 index 86ff4500f007ba1fe0c8ef6e0549335f17f91ee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P)}0SKMx#WTZShfAFDx zvODGdF4kLT8Dlh>_2%Kz%@{c}03lwk7O_s*>X;JjsImoe7abCLlLC&1t4-AD{5I(1 zTHVydLMhHw<#G3v9Qr}4n{r{EQbSv*7x?}(7kupZdY|+u!C;^}JVS4y z__0!xF=Dg-1rarXVS9cse4^B7G?Iv~d%fVZCLrI1;en$5WHOB<(hdy6Ff2{fXiD|1 zfhbYv0&N1sbX}L^A@x2ZgZUNv@f+~;9mpjKTwAwm;Ah zwQ3TG2ykvz0C`I(!2}#w#3w-ul){0TvjbQ~rpy2-U7d1(td(nPqMMVZth=t{WvXKDPgC{Q{?^{{roy*`WXc002ovPDHLkV1mAUECK)k diff --git a/graphics/pokemon/fletchling/front.png b/graphics/pokemon/fletchling/front.png deleted file mode 100644 index 53713836d0348d40d31c3cdc1d42ead807b0bf71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmV;Y0a*TtP)FxYYCyF%=_44YfSQ9v{Vn}n3kUf{Jw z>M$LPeL81B#tOr^N_?Am<#EXh2Um-`Mkq2yIG>8)EWan=GL!O!=%MRVZd0haYnoY5k&9-p)S--wL(_H%}DQLZ&2y zOb#etMIvRbb@jmI0H=DjlDb~&^&>CDnlQ1c-Y!@HDX+}Zm=1wTRL0b?sXLYeV?)$o z=h8GrcMQ$EojE`b+rKPe4(vaDVXt!^{f*in*bb3PKoxrYD*SK|-9pbF@(uukV?HxH R6tn;U002ovPDHLkV1htfwAcUu diff --git a/graphics/pokemon/floatzel/front.png b/graphics/pokemon/floatzel/front.png deleted file mode 100644 index 6ff6ec1362133fd969fdb0bdf502a676af8c6ddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 873 zcmV-v1D5=WP)sP$?3!vUf+Sgd#7MN;~1LqrJcv={p<487Jw|-jFDM zzkC1xd-rnIw12)yJ}w2o=I7AexL86ME_6Si1MEf@i-A3I$j{sTrNG+|UhLqw<;>>(VhIcZ5iKu{ z>wqr%&nJi{*dt(C+q`ZPVQ|j31#idkw_1YHXe>Ft^YxfH3jl2!k!#w3?}=kJC?t4Q zgXDc94z>x{%uVWOs-t!N6LHKhPeeyJGYObD!jS?DQ^bRI+&L1HZXC}!r+QH-b}dVO zO~OHZ*%A1OJc2EOv0@?3(ql1*uMiJo2~hY(&5)#7@`LQ3BAyWtP=cFGEn`T;HFb~x zsldQ~pCx_;NK%bU;E-wvn2SlG0&A({je868fH5yi(p2@B{-!=k;7lqo?ho@v4?vdr z5-2US8`PNWT9HWThf#W*GDq%7lJAcMRb&)h$UQo;@+4KukODG+Y*PV{i3&ghlt2Nf zxpZWv3YE%;YT8OT4U{(OS5Q3}cX+-l=4Dr6qhSm|{ zs4@{o^aW8K@|kRPLw_yAI!@Gqh?>RUMxMpg*BK=c>Og3_k3ck=wixS&b_M7Gf&^f5 z9?j`IJpfx#khh;*0Np5>&2r%RmI^e%rko@L8&MQZSswuWDj@fh4Bapb0r?=0(>=Hm z1*8BK1#KV7Wie;!1TH}Jw%flgfjh=}RHo}z6g1-v+`WTw<{{FwHR^UJ|WEuiz0005| zNklBjU5C`yAL@~xo6#NO)egMH!slnD@B*>b@fi77JhLWjZuyzd+bnH@V z)fCYoLzg0J(inL%9#ZK(LcT-qy~J5`_uNvdNpL^i```Ilh`)Pm+gyL;IA(F~IL_HA z@Wyn$5vcPO2;Bt>90YH}cgsr_%&{H@%S*C{1|dGd;x*ml96ui`AQ+&Es>R&4Bpm{a z7wZtaaNEQdlXR_`&|&D7kMd{cIzM^&~V%REN}4!X-hv3QRyuqE!%?&X^>L z>JX3F5J_?ozfa>i2k?w24x|^_Oa?Lh7J2&jlJu@cmZ#o^ok4>yKMRjdfMB|PFo9v= z?;i4dGstrI!Gqfl5ZtpNKja8}Xl-)HQMvf^1mKRUmlYh2fV%W00304Az%L&T#GM{t zy_1g>z}|<~F z-S!BGDG)%})Gt%_BBZV*i|=*6@{&>Axq`d!e*hv4a<+~c72q3aAhLe|IHd;6-}-3? z1Yg+{8VonN8DvG4af3dCTNYTVHEzp6Xq0009% zNklpXhjSLX;5lCM2R$bRKD*;M-# zLRd*>q+0*9k*FGMucYhxvugdcwn@M+^^$&aqQ5f?qgL4<@IhSa`svB>7XXa9vj#9O zE=PL(y=xm|0M3g2J)PV7=;*ob+734OcTr;NR^y{YftfYHGrbLd$Ss2JRv-F!uX zYK@g?HD{rn6MA467ocz1AYjxE%hbquXf`38kLnuqtwEp^Oxhvs#wwt^>Ainrnjz#= zIOt9u5RUSvvNyZEy9@8-%>NC8rfCKffgbc(-}igdV9ey~E;neDM?k`Sea{caFok{| z;4xs!1~jBU{R>~L+*txtBmhN#N%@nFV2*~&hTtv$(rK}zM$ljGfr=DpH)M)9og#oi zU~&{a;DGa-gK!o}+h;_|01lGhWCA?>b56*2Sl=YP!mGI<#u=4&4cmh8t1t{=Ag=%d z-c(uWtM0?e1SQ&^ml-f3?fVKV>;;nnO3)k-p8E0U$Q_3Bg@PNNwrE z>x%8jJm1oXlFbLx+}?(2MsjCgi*TL01Rk34Tf1FgPIm$nfn6RHn!}v{{s+n;@E;B4 V+e@1&1{weW002ovPDHLkV1jNAtK0wp diff --git a/graphics/pokemon/flygon/front.png b/graphics/pokemon/flygon/front.png deleted file mode 100644 index 64b9467a5d940deca28502570c1604415c535f1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 949 zcmV;m14{gfP)8|FHM3G2@o8yq)_4bgfmTrMk2(*Jl zE)hyW68ey2>Cn(Aa6@uD>fS9hQwoPEb`jD3e&?OuCDC^1Z+PCl@8|t~-}mn%Xr;;>FAtDp>q$JVQl>AA#NJ9~fiFzzDBVpW$D6*7H$TFHp19Ds6DkkHg zJ0>EI&#kTs0@5NMOI0W1usS^H+7?*|99Pg(_}|S64HP6bT)TQVjZ+sR96&IkJs6pnvI&w=LEH zpwm6}S0&e84UwI-Sc@IA0t@&OCHGZ)w?ete8aoY61Hg<62-_W!@378}HE8(>@xr^s zbejknt4Ggz=Be-Ui&vg$0;y)YE4dX)pUK5XUT=R4Ktyv5)?kb95qQ$^X7SJmgyb9^ zr3?V;?p#E9Edb;lKtiC=M*X*3^euKMzU~7S+GKDY4FDt>vm78UcNxztT+i7TQE#D~ zh;+NSpTDGqF6Wtee9g8m0)W^=6J~1wSBz(*qC97R3>+DOn-*MvJRWhLhDr~br~U+l zRoU~>4R&IdOJQy^gufl~l(=$HZtgz^ByZs|nG^A;TTLI+6m&JVv(=%ug}rIY>_ z1fFu62_gO!Xr|EXWT1x|ooh}6M7X|0z-B@em^mFtbJ+j1H3f*I+-5=uluQT4)W63c X!$8{N`wcQ&00000NkvXXu0mjfBVn~d diff --git a/graphics/pokemon/foongus/front.png b/graphics/pokemon/foongus/front.png deleted file mode 100644 index 0d584f1da7cfe669405c4f1cc6c5a5d70e8ee044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389 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 diff --git a/graphics/pokemon/frogadier/front.png b/graphics/pokemon/frogadier/front.png deleted file mode 100644 index e99089269e5be79871b6d1537f59659df0108738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0!00ZP)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_5Fj`Z5D*ABZ~$PSFsR^2NJub%p!oRs zAXsqt=xD&ez>tuT000000000006G#z>%32;bRa{vGi!vFvd!vV){sAK>D0u)I^ zK~zY`?Ub==+dve?r5ij~u}lhC)Rz`Hah6EhI@$M1z?%(6$W}TOgD1O~+Z!+knwqKV z=F+L7C?Rm3JY=c=sJ@f!fRwwvL+%Ehc)$0(@9rJvy^Q~G_)+x#cpZ2&(&j2r@- z0zrsr;<AT+?uHv*PcBFr)rH$PT9QEF)e0?e@Ze!fZxuoh`^#9{aRSDHMi+yeMi0f(>y z^ry%wfcW!wJH60aPrh0JQo!NrYSz>GUa6)8yM2FaBv8(^UQZwLXTYBdxDxZ;8sN=| zj=Wag>8UBP5I_ZDxfs#Co0N44pmQDr8Pw&1mZRXL4tQMvlWqWj3Ta&4t}?;(Ujj%D zViET11XKAVo#DMEe{B1>0mOboBA-$hGytt(yWM1%MGc!11Dp=b&&75_?S&fP%Nh{* zS*oKt07~Vhtb`eOELGD65cPB!%R}YKQa4LP3}Pw2?15fck9(atDGMRx(T-rves#vo z9O1P*p4lIO&iJe--U&IA(n|P(;>Dem$C3yqP=N8d5Ecpl`pksMTr8=THVb#K+ZT%+ zK(XH!qY{=!q5}mSfFrP2=#zzgUM%O&;~7t$00t5oHG)f;a1efrfP-4RrC!r~N}^sj h6@bz7UWRjc-ana2w7;Yz%SiwL002ovPDHLkV1hO-E7|}6 diff --git a/graphics/pokemon/froslass/front.png b/graphics/pokemon/froslass/front.png deleted file mode 100644 index 28597b4285f6d5f10ec8dc1a0f27a888f0c89ba0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 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 diff --git a/graphics/pokemon/furfrou/heart_trim/front.png b/graphics/pokemon/furfrou/heart_trim/front.png deleted file mode 100644 index 17b2f3dbb6a62d5fd646114bbf3bdc790661b38d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmV+s1Md8ZP)Hq)$C#6EE00009 za7bBm000ie000ie0hKEb8vp76U>RKii+3GZalZ)px&sO4`IQ~Gb>joO7lWb?CT}^< ze1LuIh2V*IlPs<_l}m9O`N5_+G@l3v;Vn@d8l_t7MS2k^1h@ea3*oC#)JipgKNm&n z1#F|5_P9l`jlCe)Ykhw_7MMY#1gbByY6xri_4{ujvaN`5moxQvP~Xl=ggL z=rIlopGuvjxc^~kNsARapoV~f#JC~g8gVxUL;!Zrprm*+1V&_BS|ePe*msP#!5G|N z6>;l;#x;CQ%$_=sx_41(Jxp*0@*a#DDvgL7_|R3?|KaKL46G9BMbQW3 z7?|~nJCON-G&ocz5JvceU<7C~9C)1v3qHRBL>BU7KDlhb%~THnwtP7P%#97uyU4)q z_+osObb#Z55t%hKAme*t(T|=G(gEDZ5X1@H9tj->+z5eDBf`|pT?cj^5JY%E^`I*; z25e1(+3jIX#U=n_F^#4)_-1)Jond-H0FhxI%(g!_!xTX2p~wuK8{Z|s3aXF)^8dLR z0t1*GXuz!X0&DOOkFU7^s)rmw&Tu1GV;Z07CqU2!tokXda++eMbq&=+nU}h5bv*@D zt?RvdB%r5r;}U3%_d=aB2U;(vRa3VZ-A`th8maXY-U=E)I~{JC-jXV)Mnl;GOlmNE z0r~)d!1bY=04YuT)!IAEfE`CYE`eX?E)8_r(@GZr==7uwr!@ZWU$XuI^-);k_Oe!O P00000NkvXXu0mjfOeIu! diff --git a/graphics/pokemon/furfrou/kabuki_trim/front.png b/graphics/pokemon/furfrou/kabuki_trim/front.png deleted file mode 100644 index c1efac1c0827c4ecaf699609c110eff56dceb06a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmV+u1MK{XP)cnFvnz)pX_ZT%gLSa}Z~vLyosr}G z&zLP1i#M<7OV0Uf@ru6Q62T{lKiQBaXRucvqko!rC8Rs7Eu%5IaAdSlg zCM}jcMTrNj_fxE@DUqhJhuQ$ z5Kw;ZGBXQsAmH}&s{^E@tC#&M<(&}n5wY8azFOJ0kXv^{uN&_LsLLKOuc+7P^(WIU zlCHJJ-bonXBjT|GC_~w=a{iO%>f-dc@w#)+(JPYqs=rGn z?zl)eKYE-#6IV(p=${jNqN9f6^~N*PH_{!}J_+#NK5^fC11^U;rSO6Ct@&A}j{vS! zw*xE_9(F*NVH)tZlK=#yfze%hf-&KQ{2Z$ZfC;m9=;z6x6_(CC5Dd5L~I;VX4}s$_A(+kh;&J;-HFy%^?diMF7k4G_zP_ zv`p$oVk(W41)x>AG_AT*QIU>vPzhPlC_OHb+7Ue3C8(k(v7v1!MJYx(k~UJN-2;de zzzAS%`>bLB0+JS5qK80|JS!4nasbfuFan+ZxBxInP(T0x00000=vonV00009 za7bBm000ie000ie0hKEb8vp{eumfbw5*q@1*&NM#9!Al5zcNa~JJ z^p;~1$Fs3`oN&Gv5ivI-EGE1k=OK_B0j~lRWPEIjY4MaH02)y|18LK$O`C zUJqWg= zc#_&yO%3Z|j&!{ta8{X$tLc9? zK9#0>&n~tGD7We(dzZ=^D(kK33NSmbdU#H03KsOWaw8;nPgK`rI*s}N-X0000BMsjp(Lm&L^QeUc@DjDgBAVEAh^0f=aor^Is|opdaua1gX}nbxr}MgU&y&QA`D zXpFeZz`5?>>G7m*t&;*^wB7e#Kk)fP09CZzx1Zg;b7BQS@bK9Afe21cpj_JnoyhY& zL7n9vK(H_^fUu2k!0yiCK3~Sn*wywgfU-A`=Mvx>-*Wvt^LAXL#bLgH(6`4h*TUSr z1GEN@LEQsiMCCy?Ea4TnNw9ebzJ?L7%-5KY%VHLNM1zgM9rFea$z_4g9|Lt&1Nhu! zf;b2*o|R^3rJDCPH?EnsCAKoxaI><*@NNt0F|M7 z?ht*&vAw`caDauR9$z@+>Jwu zw!?!|4Qo_wdoENz;U6RD;Ue&NAI81vA-IHb7cI{F3Hkqj8NUI|!55|rG{q$V0000< KMNUMnLSTXokxQ5W diff --git a/graphics/pokemon/furfrou/pharaoh_trim/front.png b/graphics/pokemon/furfrou/pharaoh_trim/front.png deleted file mode 100644 index 987c7a7a448e3a59738dfe37a2307d83fd5ba396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 742 zcmV*v!$jprDv~cVQnsU?G3R5D*X-T8S87c>n+ZxBxInP(T0x00000e@2@x00009 za7bBm000ie000ie0hKEb8vpwF2#~BMgv5P}8bsv9 z@6dKI02`QgQ%Oq&pO-01x(k7JrgQM$vzL zCbQY>B1jlxH{tT;J=IxShU!zfGk^twkg~>>u~is|>JIT!2*i>AV+H0x(6t2E9R@-#@-p1h_Y4tU!PHt_kn~OgCrX=~M8fqj7-fyq5~H?#~81wnyd2`ucly_Bs3uDFmNS*nk(p!0xK>wc28EVdqy zybe(#Zp-rs+yNc_1=P+6aSzr*$e23N2iE%MuvMZsA0etAS5hWv)-TU=Bi+WTTLM=Z zt)IC8gpj2Rkk)1=3)(QcC9dT|cbUEo+!C~3RAN^g zmW=yAq%2Ut75AS%H8TKs81Pv_9Yu$a^UO2G6d%hZ%PC8txZ5v1z*3lPG#%@9oCTQy zD|2V&*m~x%rDz|_62&&A2ebrIlTKxdXQMGFLc8PkQ15YHj6={-z=J*YF(Mtk(XHO- z8mXhCETKk#5s2vqLIFUa(V$7YplOcyp!J^K0ARE`1VCSaL3{6PDwHQZUWdNm{rR7s YKNaRAtJsF5VE_OC07*qoM6N<$f=)+8zW@LL diff --git a/graphics/pokemon/furfrou/star_trim/front.png b/graphics/pokemon/furfrou/star_trim/front.png deleted file mode 100644 index a953143214b1aaeedefef69ed84b92a9415ed82a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 790 zcmV+x1L^#UP)*bop9prDv~cVQ-1W`fr3NrssiV0cJSK)3)f|NsB#>goUh00000GdSvK00009 za7bBm000ie000ie0hKEb8vpv2V9qC#s0)UV*8$**s0#qW zmtUd3`0+0(uSDk)<*ifk8v^$;*pS}Vxe3_xrjBaKz8XJc8(O_bPa z{Z1>$m0U%W>`n(dKTAo4M3hK`x;8K8b0G^UWz_~4y>Af$Yeh(jX9K!X2^CzwS?sYQ+@bJA3 z=0v}#w*K-6`fG}I}HJ< zD8QaK7;YRuQ^bLUeZlo033D+3;0oZFDJ0gpZ)IMZ zx-s=FplVYu_1*)f>`lcbfH7#gI%ffBqCl+=bpzG6PCo?0Ss#7R0%%MG5U%tY(3Mm+ zel&YI7^-J>L;yk^${Rok+iactiU_DU=za>k&O;b#=}0Mq(B5HyW4agO@Be501*hgC UD%79(4*&oF07*qoM6N<$g4O9(kpKVy diff --git a/graphics/pokemon/furret/front.png b/graphics/pokemon/furret/front.png deleted file mode 100644 index 4d7361e08b3487221742f694e1f356894eb4e869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)Px#Fi=cXMVQc_QYj$j#Y%fYIUpb@#hgL^?v$KjO00t^|Nq7R|NnDybDRJG|CC~Q zKsW#Z0QonvFaQ7o5J^NqR9J=WmfLQ_APk0MQ(>v<YX zKXJVPTxiBI{Q;vMqWZ)1sL9i0MD+({s-+W?M1%n(vLa_0;Tr@NS<&B>5U&B>sd~>h z0|cwUHv=G3%|Z}B5&}TB945^|EC!ht9uFg6Duj&-FqB&TrVr8wQo<6%4xm0CL_L9; z1Nyd00;t=vd``eHq)$07*qoM6N<$f`pq7pa1{> diff --git a/graphics/pokemon/gabite/front.png b/graphics/pokemon/gabite/front.png deleted file mode 100644 index 3495a5f183fe837246694cd5b75e17596fe537d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 866 zcmV-o1D*VdP)5_P0H`oX`1ttPSSWCKfWXMm(PY1k0008* zNkl8*3!JWM$LQ;giCwGtt0ojluWxUcN3Y&IMiy`J$ znLi-Zm(3!B%V+Pi>dE?0K;*Yu&$WPsb5jI(ywzGv0iJ6S zQ8WT7QA6|<0L?65(zi$zkXo2?)CV~Q)&`f-=vkPiEDUpi=}ss>2n4PKyke&&`)0b3wdT%vH9xbCmE&!`4$vlp*6c6*|e;tbqY~MZ#w!yfB^vc9#sgOjyARk5Cjx^ zqz^s05p7pP1AVv0D#L;#f9UgCKa}jDQn|wbioRWt%ST zljbDv2Enobny7Qdm}#l~(@o092Q)HH!&(N&dbgKA3dA1GRM6N2dSMngzXE^*-{l}U zmn;idk5XVuV7;sIlg^*{(>Hy57%veJRdME02rd?~0+$v6Ey`~r&h+c_QufyZoIkG> zd^xMGq*+UWm3g7@tpx5cQ~LhX#!6j#cVzmOPDon19|T!Q3||Y~)hW9mV6ZlH*Yj8% z(hv|uz&tx1|5#Rm7w+%7Zeov)w@qp?Pe?hohqCtck!~ZydNl0E-J1XpI(F|SiTAq~ szf9e~a16+sDkyib!Y;D$m-N5HZ@E75g(0hmjQ{`u07*qoM6N<$f+iM+8UO$Q diff --git a/graphics/pokemon/gallade/front.png b/graphics/pokemon/gallade/front.png deleted file mode 100644 index 93f2001594b438eb847c4eb390adb631b65c806e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 767 zcmVFhrT$ zW=j`e*kGwITPGJw2(ikf*5<$DUauZw{9PJ!c>1)#!uAd48jDyX8ux(Xb-W?(U2MsQtw z&zu7RcJXLLnP&zSMyt@kb>{CGb4Wl&Ck#i|46ua#QC|XT0dfyjOXsA*G>*$2h_TlH**wiKVMxG96?@LE; zQ=1i9257i%+d}Y(0bmm-NMmpiN5%{iNOAv7Yi3G-&l`2>wCs>l!Gmx44v;zqacV`N zDvu4NeXnd36<(LD0G4qUo<2vUO^t&cNxEgpx`q|rI-5$rL z0>K7Iy9|=pahz!~1*mxj5Qs~;OOwurse1G3AQ0}6-R|F3Twe*nfH=aYM$q&ffq002ovPDHLkV1i2pS^59~ diff --git a/graphics/pokemon/galvantula/front.png b/graphics/pokemon/galvantula/front.png deleted file mode 100644 index 980ca86f9fa5ad20203bf364c96be5a5b932adb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmV5Q}D`Xv=(D-N-^ z6?IakQlU!8h{{l9Waz)uch2u%8i|>=+27B7-@Etjj*zE#RM2HW`Pnj{v<#T$FpB|u zEUefC@=B@fSiAoN?6PC$fTp|(0H^FYxlpUF6#)eG7mbDjZ07->5kk^9AT@L{-GUsb z10Olvd{r;DTLQ(3M$R%Ja&$;VoF` z5XLn4$j%@h><=ojK`EPa=m5NBxCI9MBEESI9$l!h1EJCZ+JZwh0ZvN`B_#GWtjLbeceYUG}$siJswY8~Z-C z1Aq0>X#yeK%l`GB?}Hoj*1Fa3)G;BN%^#BlDn-A~1}bh32<`*as&od3G-e|4dmnXD z&pRr{b*d5s51?imZ-Ng8!@)p|Kd;?M3938s&N>O&rMzu;u>6UIs+g%`$cP5*VcWv6 znQ>7cP28_@ToZ9J0?;$T&oBOXpllQEc;qSo(s5GmZB8amao4UptS%jHD~s67_4f2= zSWYLOkyaNz=+3o-U002ovPDHLkV1iXXT<`z@ diff --git a/graphics/pokemon/garbodor/front.png b/graphics/pokemon/garbodor/front.png deleted file mode 100644 index 959931034f843f8eeec976f0f9394ff78f9a9365..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1047 zcmV+y1nB#TP)kxVX4*aB%qe_@Ibzly4TU000A` zNklt-P=({q4sy0_uWUBK=Q04k|1aPI+zBbX#|VS~G4!i3?df2;up&>M8_17M<~ zd}jB?BdFgcY8XSuqFobu;~#ba3=F(C1h5*wf!)1pfB^Xu9b-0b?@7b<<|>Fz5#V#^ zPk3b~%5Rj4RLDf#k@Gi)d?!f5kdacVr4~Y}fLA|L35}Ofe}-Qe1>E{f&*H1hLWqD0 zPDJkDi)+Jh*wu=#@NyXnMUfQzx7&Z4P>nTkv0eS~X{o}G%S8d$tZT4|=}7DH<-7IA z8}-}vrU0<^pO6FFGa-b!czILw!I}W=mGS75sf%|D4Q&4^0tX3D3eQxy{QYwCL1C=w zluD}CL%djc-F!kd!X&rbC1p`a*}Go9njP~;y2P@To2X_DaUI9~*`Xx^6#88OGSUCq8&s0Jh~pKXa!dJm z$J9wF&=`&q6KoYXIJa6k(ABOMkOP~Q$@zDvl*%UnFj{|qfiJ_&dd1}B63Wy90Q(tQ z2~cR;JzkLkXut-0A3dNIynwvvYGp%`jD#+DIq)>Cm5H__g^L*Nry`QG+^$ z03^%O^g)KAzS*p)n$I8u&LK?`)0LrXnDKiYH0%I9v;v6aq6w)9bmb}6s9kq35jMi9 z(hBx7ud>Hy$F;wg6r!kE-Suj zh~k)IjZ|I6Z#q518ggrXQY3^x)gI66;J@#q^8&G_WdtRR#YGfF=krW&>QjPmOIg)GM8w RciI2|002ovPDHLkV1ghR^N;`l diff --git a/graphics/pokemon/garchomp/front.png b/graphics/pokemon/garchomp/front.png deleted file mode 100644 index e84e0270ff8000ef2b083ef22a3742da60323484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 zcmV+b1poVqP)1gh5XbjeDb_ZKWzo8cD1s8&TdlPDs4X5K(m{PW7)MbGTL_MVf(R+O z92AjgOoKp?0tq|;A4M8hr=-n05G6_j4YHZtbDXu$FpBK>=6C;@otc{>WYhvq{$8hvOkFC0Ais5lF5LKmH|xw$X3xB()+&e2^ zZ8zo|5(jj$&4woIWe3)ao|U-ZXV|D1+m$RjAlIg$S!Uq)clz7`!T=8Vpq(t+r9y(v z0nP}il>kNHvfnHZDId6w`>U<^Wiz-G{FVJ!l<8AWq(JO&s$!8pupOU6+Y&B%=yW5}ziE&;Z~ za)@W6Xjx|V0UraJc)tZ6MNtBoOzch=2ePM|xFVwa7Qh$|2;9O7Tna4P!?VB&B=BJa z1YSiM8D0Stiw)eZDW2OHCP9w}xKyQtIDz=U#z4S+jR7&p#74q%n2=spLSl~8J^n!cd@$G%(mV4xp~f z6pw);7fU0wQha_;OV?|~>+aJ&xiXPL;p%IR0+uh=C3?A1T3rHD7NFX#*tA?P_$L&< z1gHaexr5WTTQFK6G~CLmQy3`LQZ!V+^ja uv!5+YdNo}Ei}~Vzfj4Yx;>*pmf%`8$rf!+l!^W%t0000h*C`bSR000002`OoW0007S zNklB^aB;qXjj|^piotZ~1~Xpu@-;_j%%KdH@)BKId~s17wFjPh)4;4!VPp zcX_kU5*=7vjJ$WZYiOYZ-GKIP_nEfE!U^b`o04l=VBe>&zVLhPF0k!bugi31=>VEr zmYrM^SJMF^=63JHy#XN1mcM3}{x;E!^ml|Z?K*n=y(ySs{l({>e^!=$0swbEY^L2L z)Ze?+5Y25P=ppP9-FoN!H|IOt3DpQ<4Ie82n6?Q*2z92*LQKd&JbgWcLNQzv@-Gm6 z^Obf2i%uBA>lD?(X?zuM0Sv;!8VF&ZpT|O7K)9~~h{p55avk$M|9BKF2igE_g}0oi zCJ_D?tT{LJz?lGs2%Lrhw)%+hlK}id4{{0gQ-oIvq#A)Uq5%Aaw1cWw!fM5NS;lQ7 zEPC?)zh+QX96xIm8-%qe#UsUH1xJS-I1d7~anD*#h0!L&|of~pJeRYW9eyk`~V6Y)L;XfG@qGw7fJNKM=FTl^1C Wnjanq;+Sjz0000Px#Fi=cXMVQc_)vV3El(dUtgE=WV5D*Y^N@|N@gK$V_|NsBADG=ULInb!U*x1;# zDG=ULISm-5lmGw$*GWV{R9J=WmD_TIFbqVIEs>}f`u~4hNtTVB1VPI5jmarjC$O&N%@*WC;PqtG@D2^;k;;X#PRZy*T1WByvC+^Y7Mg z?s=ZEF;WA>Ls|Ve-&9H{h`JlEr}7DaH%8|1ptN=hwQv)3X2!X@_ji3O#zNajoDL%_| zQWJ^A0Sw|Nt^snL#O=F-c8F?dkpc9V?P5;xAU6O?4PLmmP%eSYUm^tc8z9-nHGtLt zb}0B+9d)qGiMp(hpgpulsRDLhZ#v|u60mF{5`OVF9SWeg*T1X;TE2Oad*iYYvIF*C zuqA?wBT4DYk4h-H9tQ_r(Ctu`y0M*S^+DYCJEENBL~Hj__zXQGhPTS$d#{8i|0%%q nuDuYZ$?a!!)_>{JrNjCKwIUDk*bXW|00000NkvXXu0mjfq(}>t diff --git a/graphics/pokemon/gastrodon/east_sea/front.png b/graphics/pokemon/gastrodon/east_sea/front.png deleted file mode 100644 index ca68f56d3a0b65dc0fd43276966901c84ff05e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)u zIwlYh5I>VeGiWb!x_&V+DWH%z_~39*NH}w1V*mgDXn3e-u=rR|c&Io~CUrX30006A zNklfCB%1Zc@125sBonWBXkK}=tBS2e? z#9U=3minibpw8=6y>@1RNXhwZ;&~Mqo^pk5gt3$z70ck*3P_nK+2J)(tVY!O`4SOd zgGvzZ800`#$`n-`B^cWr%v&(QEuvIbEo!F*=+9R`1 diff --git a/graphics/pokemon/gastrodon/front.png b/graphics/pokemon/gastrodon/front.png deleted file mode 100644 index b28352aed30e883bca01d2f6ac8210dda9fcd714..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmV-s0-61ZP)Wq_}FkzNH}m{VEFj>s9=!zh`?w#P^dUid_`rV0005; zNkl&up~VDCl@JwxX^L+PjRatfVgllDDY4qus|UA`1o*eZ~y=R#Ey}Q0008V zNkl9v~~73wPY=DAF(^t%kytbhlw9rGwQ|&k;;pCXSK%@$?_7NHJY2RNE0X*_{ zKdzGK@^TJX?)3g8J%9b?^3@D*z5^~A=Bul>k)Cbs6rvzvelY`_4#RLGfZ~#B#SyU@ zre#rCswiqm#;2oxog-?df~u%xirEf>=!iyu86wGr;SM#Tt3ZfQPYnZrV$9Ly2nDra z8ID+Vu(=_hNvi;myu<=2gbK$}f()WdTqNr=_!XqkqBpKCsX@b5^q^T-Naei#AaSgg zws4>?oP?+K?N_4Q&e_Vyo3#G;!x7*Fr2Cw&5b5^r&H|ckn{*Ph*e^0I326Q6+jo%N z^({C^Y_$)3veH{~_eH8VXFW7TiVpg8>&hDc_}v-1+)zVJNe6w(KI60B?7P=V4XnV? zL53vZ-#@+17RqM0ZZp|!(8y8d95mJE@7jXuU=l(wqtaRiX_V|bkAM`c!A^U>7;zl7 zp`IH=@d6+i$q)sA!k5ry9Rjy0)u9Px#Fi=cXMVQc_T1uR>i@gvK5R`MYN-0WvVx<3CTK|-ky{x_e_Wx>Pd*0RFs1OiH zC`bSR0A2_E8UO$SJV``BR9J=Wmf?2fAP9wnK$6Mq`#C;%c)M9>33R7kVt%s`aCL)LcgdyWe{ZNFKFX`_-pb%I_pK6V)9~dxz4oys# z$odf=2$Y@Jmor2^1T3CA-RO0R3V^$ST=SM-23&~LBVY=^g8@Xk0Tgo&05t%*JrV6c z+#on%e#A((1{{Ex*O}V3w0Ro>eFkQZ{B_lVEMo5VJzAFIC!Wwz*b|hz;3fM85 z0Nw(?m4&CCVy`m^U~|HL>J6}VTS^HiW>w~sfXymkYXcF_9mNVzv)ezX0rRT@VE0r5 zjCHT&$58-`gHugL!s|pZ^ZUs9HD>VGh!&RWc(aEj4*<*o>~L3+>g?n7$Mn+xOZGOM zf4q_E8O#8PkJEw|1ZDw#s<8v2o|S~;h_e3(Auc&ZydIh0~neJOE{Fr!O|d1t(UZkOIFkwTLX6R&)m}3XO6+} zBk}`)7mwvds8PN3=PsIl#AEZsUQ|;KAioXkv1NbH0PJAJrrtcSUu@Px#Fi=cXMVQc_YHCtJIWfi6thBV8oRotQ5D?AY&Hw-ZI4C%X5D@5qcmMzZ00000 z000000FJ!r;{X5wd`Uz>R9J=Wl5LNKFbISf3h4j;#m7MFOY519ez;sxvdJ3lJRKN5 zpINhJ&HAGvB7P+=BIP-Oit9z*07U2o!LPR@A zJiLYD7Q6!#9-!|5jDUKCGh4(b&S_u#SopTBvgE+Z7=EdcKIb zrsZ*2G@hHZ)HvLv3=x3Pve5*@plC5d3bxp~#>d*p1ptUobt#?`ghs37#cKkvgSC}W z-v$>;npSMz03zCSV}v~+)i~GmopJkBpLpD40b@>G`@a!(bl3SEBB!Fyn+a diff --git a/graphics/pokemon/gible/front.png b/graphics/pokemon/gible/front.png deleted file mode 100644 index d3d5b48739a328bb39c6034ac93c25ba00106ccb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmV-+0*U>JP)`6pHR7i>KR545BKos5qx4%rrV;!4|PE5ULL3$ZYj{RjtIZhphPnXH1zBzs!>Re|^M zeeZj3URtepyb<2KI(%rXvuF;%2M8JsqGkeH1!%PJjR31>Sb;#)6N~^L))K5hh_c=x znnU<6hbDp*Ad9ZMynsGf;F`PsZEv+8gwk`Fa3~yTP#k2H!2o6s!N&xknp8kAa}Y_A zI2I~Uek}w5h#*^~jWP5rAygb-CE1rP|7F-VO1}dz7$PU9B<*@pDT+cOd^sG(%MpZs zPPec$FAvrC4)lK?$7YnN0w3d2kJy6{)_*`BQ7Y=Sv=JtVV4(+xikH%SctBu9RStqOzm^T_< zd5ikac%-8G^4Q5JyE;15n(CNVauPmK3pW$3(GnbwKej#U=>w%mtAn78ZfDuG*7x@` zc;Rqhusy!s(R%u~LxXY)a0mzpm@qKlFfbq}Kqxq9Kv0ONfEd`gSQr=}fPjEVNJszx000002@_&>0009h zNkl^%(B6>Eb^=fMD&A-D;c_Kt&* zE^@8QhNamFkO5qzS#liQtaF_JH0%_Z0N9HGpt2&*r}gRth||2V#_9n;voaM${iYfO z$xo@MqaO!>n|w!SwS4nh`w2O=+3xi>boS{F)30gFN5>NC(n~t4zAva803@7-!d7zx z4Wq~A2(wV~$@Gh4IRHG(DdWo!ft1GpOXfbypo#&a<6u(r+YFX41iTMc^IKj3tRXxG zMjzAlJYFw5Ai9I@?E3aVoi$M71W-1DIIqTpZN_o*6+Yc_o%$9Iz^3*bmgB=eXZjj? zPzj>)7mnHjfkRLc3H^BwRyHI`yl~_WsB}z4D3xArK;UTV(=8yB>C}_H6zX~dDg?|_-g|ef!l*;0L9C%rd`-pU;h4E3%D^R2yrW}TCgsv$7yZr7Cf2-0F{@&8uK%P zw!}-^Jj)T_(X{rnM_erx7U!6I9eCF6E>=8#A#Q@@k8c6)Ho(W5W$f-jJ4V0}z;j#O z-i8R29%CK1lTZ3Za6;bp8Dn13ffPZ3y(fnE@eliyT1IKufwGAa)Ho;S81Dht*V>~= zfIyywXGL8++;>sZ&wzvCMIdmqom?jQSz{k?Tl#o6Km!HS2@l##$qOpr(j0;)UNOAd z$qqEQ=uKvD)o_=4jqCyO{8V-zH~^V1Wwv>NnA+kQ_FbUucD$27VkJi3WZOPX;+1-?x7NmVHxRDc?<#00000NkvXXu0mjfqH~)A diff --git a/graphics/pokemon/girafarig/front.png b/graphics/pokemon/girafarig/front.png deleted file mode 100644 index 2a43c76e5d49a97cf97ae7ff9fff4acdc777c20d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 833 zcmV-H1HSx;P)#I5?PiK+upl_{d<$XpopVSV%ZH5D*ZMcxYfyP>66?LSa_&00009 za7bBm000ie000ie0hKEb8vp3u^f1rbRovIv6h#;_@Yde|=B8fa$0o0#nMENF3N z^Ra1XCiq|uoB8d$_hx4|2n{1W8mgExu0}%{x^W{K%2+g3qM=T)dJoO7&Pah4Sq(E5 z_#d$HP@hp_F89DN^y|6Dig^vM-8OC-*WiUhXjnH`WB@i4OXMSvh1z=sc*O5_vTrR{ z0p=LEd*@5dQ_Q1z26}qo!o1^5UmY68r^8aE5&zO6q<;}K8L%cI84@6N40I#oeTIs) z9WQY5rusbw_l?XcKxN0B0?&?5r@P3qU4mb`;|w%BSvwv~z(S3KJnYv-B1I{|K@95F zJAlm+?2mVf0ZNx|O@R+($d{}8<9j$*UY=Bhep|J_8@NpAq|Fu+aR#(dZ#>Uqp#8~4 z_>?x|1(^8bY7rQ3gzpK@MJq!PP97(9FVAxT@Ub!KvnR|WR00SNtld3y#YIUOD8Lr4 z(sJv2C}}G|=p0zvR?Yn?mcRkfE`W33G?f6Vj8qBf`6@u^&uX^|q$dFyn}>jQ1HOo< z0$U-_uxh?CC2d9<#mnfjB1j-EQ5XT>RT9Zo7dEFra6Xs`g0nLTfZ_;{fS#X=ISO!u zOA(+^h`@Zw!6wEEkTCI41YT253N(zH-`LxQsW;$2c;F1!34o^#JJ9UN_Ak#zfNi(U z543;b%#WiOgMk#}*I6r-=&iDSNe$D$O-Z^y#dVb6DOe6ENWiED00000 LNkvXXu0mjfDkf-O diff --git a/graphics/pokemon/giratina/front.png b/graphics/pokemon/giratina/front.png deleted file mode 100644 index d0004746a901659eb1b29bee797ca54814604cc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1271 zcmV8V#*?jE_G;2T=sA1d%OBr6WYg$c{}g7 z?`z&j(-I4srZFuPBYa43b0*TX6#s;=2uN;gT6TT3OMCB;`VQxO1mw_|t%T|w+)O9# z&!kZ=bG{n^S)*Rh+N3dto9P5!M8ga#7j_BMW}oKauxK0W1e9pAbf1yV%8Yj>ECwtrC~_9B9T~+K4XOmz|!+Y zY3@i_ktFsAC{yf_uHBR8JMzJ&WFLw?8+|tg(#eYT)GB=~Wy=?y76U?k0b6n2JbU@i z+CW}f{c+%^Ke*m56%g2e_40)rv?~2+W@8}53u$e*|H2!zR$5jpt`_OHIrXj5M7t;b z%G&^2#AwOt2J=quR*b*a-%255O}j^mI;`3^>?3dKq}*)dssna&JznJ4g<0G@Dwn@h zho)?9u(w07+`#UY%R1VJ;xrD7_0`(o;~-cvKl6n(-ivpdu`}@?2&5E3Fcv2gsohXr zW8Me6&=kU(1Xv^>k>Vk+R?S0+^TpNEVfB=y$?pOu0Gqr^?>QW&*Sz4Wc2n+$ql)dN zEEDhV(z5i_c20sIfF4ei6ZpW@%8|B%rralubHKEm8P9sv=4?S(Elr5R_JA zvE}zC{TY=>OKvD{bH0G%=3ApnsZCBZyqBUXQ}<~ct!I&Wu0Fog;ZkKEzUKT3?9yEk z-QR}0r%fd(^OR%IW(PR>kq2|n{Rk#vj^+Nqk`Om3_dK3eI zatz+!)T+i~SjGU*xe0tjz_n5izzOWtbpUu6%d!Eyi~^yY1jnqGaaHFgKtg5*9y^eM zo~~3Z$?FN=g8K&m!zT{hdP4)p`Bwl9x6R;K&m1!qi*PG|BP7b#n3-a%u?OuvM~?wB ztP`HawR^1E%fK?=E`uIRp~31uhk(;j6utqN=A$Vv2Yb4r8GGZp?F_&k(C=3*2K1Ig zKsk!O?g9PWr3ru^^>n)ZN_BLIfVM0BNelz1Yzm<$0;miqsT-9s@UBFnO)fAKJPSkq z=*pG_-q=C5C~a_=PBEC{8gj=6Lp*mUeV83yZh}&DuXWw|MYe__1D=X?@;SL}KHKs< z?@HvILt`Vax+>p}0f(~YU;L0;4bG+f3Eb|1>K;@!#`byVdyHvy>UHDlZ0KVN-CQ1l z$^iYKG@&-o-%$UoN*Utyg0YIny^Uy54+P z_q;l|B%s#!rj2Y>q!@Q4`Q5j^Y2C|Bx`bj1vpIP;Z3KiDw`*G??~yy1^_x~-`)~0~ hfB*mNnC3J)?O)#JTRCNaGynhq002ovPDHLkV1nP}UJU>M diff --git a/graphics/pokemon/giratina/origin/front.png b/graphics/pokemon/giratina/origin/front.png deleted file mode 100644 index 14f631d09516f79c2b2ccca5360bb3b54f274bf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1283 zcmV+e1^oJnP)zI9LHxCO=%CyyxG+(u53E5i8&}08q>R(7kcTou0}6isFC_Q4r)oD zJH<-HOBjZF@KW>`53kt=J?y1DL?|mo4-WMz3kxeO^fnL=wTLkNy?GgvSo=AYU>f2j&FsJjMF*DiZ0-0bqdQ zZGZu8&52ozG;!6Xp<{gQ*38Rj_5TH?P}{4~3y3&L9%7Jn(z*dPdKckLE;kjKb@AM# zp~~=3Is#NMmjO_-mDsMgBfgi*Wr*#j zIIn}{D7y0{|JzeO^zB2>dn9lOoSl*rE&Aj0R3oOLL7{9a3D10mvh~fJn`} zTrE{Ouz%9vtkT)t zxSul?TUz}K0dVBH?EUx;!MH!!-uW4;RvrovdIW%H&x|S3*9Rt3AubWwPS0illmi>AyFk1YlzYbQvBr=vm-!JDV-h{z=Q-S zqvaX$_|?x)2PVc{eWEF;FbqG)wLLJ3j^NF8i}P~4!refEp|Sw{hU?LIgTWr2=jB6U zlP)>{JQGpQ-vTI(5XEwQ@zsY#r>_ zXz61IlUFB~E{z)l=X(f}2tdcF=8KJklzUc?D&Tuz~sX>|FMgm6!r}m tgLH749S%wg^Z94N?dHhIqaf&c{a@vT0J%D>Y?1%~002ovPDHLkV1kGfQ!D@g diff --git a/graphics/pokemon/glaceon/front.png b/graphics/pokemon/glaceon/front.png deleted file mode 100644 index 463bd723d766ffd99143fe67958a55bac4ca43eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmV-g0;T6)5b%CEPTs42-#({z z3JHb`-A;YV5cL1?Y|Mj@cT}U#H-P8g0?}kJry<+`3o*RL=95_70LAbcHvtW6aW@R~ zFd!Q>OaA_w_JBM~rgj%I@IN}&SjZ_XCu9TwOP9c178p$gNF>rB)V_)VLXf3oz>-cr zu64B+ONdL2BIq{A5$I|Txz;uFyA4RLbgAp__pB^g;K)gyYo)bdSlpEpDhpkg`QiuX zt{A~lmZdBl+kXSUKr%J}J_vw76k%UZD8SwCqk8NIEBF!~mFtXO>nnf(wY%Cw>jpXp zh^~P&=j$<_M@(hSW!?h$foDurL3)w5fI5&(s4F->=-6BWop>>VRq6&~t=ACa>x!DR z2kb4_3oviOg6H#s^~(X``bEIXygte90w`k+pne(wk$FlT0I$}73P+nkd^))mf}jl& z@7|aOY}pngYz3`@#BS@j4e;ee?djSkWaI5{4_FbN7Qe~~#h(Qp0v6gl=u9W|cKMaii|N58u11i6iGXUji@&Et;07*qoM6N<$g3_K1K>z>% diff --git a/graphics/pokemon/glalie/front.png b/graphics/pokemon/glalie/front.png deleted file mode 100644 index cb6ecd4925a34cd36622b88fe6ea818f5718b28d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmV-#1CacQP)LaxL~;GpxF5M`1k+-00000JvHes00009 za7bBm000ie000ie0hKEb8vpCl`&7-KorOAfq{*8)QKII-VsQKE+mm) zVIau|z(`KAwo=Y81}Q#gOpx(qWN1Rz7)x1L;TupkR8<}NUHZ-m;0rZNDEAmz$b#PjxzC45x9Ojcfi^;#8)CC``9 zQiHem4XBj2(g3T}8KVu}1=!@Aw;^Av(G*~^e7(vts?Gw={SK>CN-u{%ptN4E)4+Fu zZJ>Z4tX`wAl>*AxBa6y}H4*_7gj5H^_`p~t!}~LVjs2~_U zJ)CwxAYWym114iO4}s0jkY^Oq9%n!c0iFO11t4v~FdP^uU}FZrYe1YLKnha;lBKl> zRKR^u9s>c5&*)J*<}wO!?s;4(_}mYH?CoektoBY<5conseoty9lD*MXfeR6mimd}9 zv>6y!oP+ySoDtx^qC^%6)4#x|T0SYj^iRdh@{0&fOe|KR-ne)*cWz z+Je>eIn8)PZeT1#^Wx_E;Szxp*wFz_f8@?FBYKSjP&|@RtR-dh{-;|9r$BR8c$qfa zvKeYQ*ufWaZ^c4Vb=e4SMWU+#<|zlTG2np$Ho1(1YiP@g+pIN65+X$&wJ4i=g_+Kd zl-U9;s!3A_=l)qLOIr>K+uIcD7*gnxl{w(Rk^Sx6U18%KF>2|}0fq&VBJj(R5d}Mx za~=_(k`^8xe?uq_prBvbX^#_0$?-8bp^UsxE_e;wvZpf0$`<-u^qMy9_zZzDCc)@} zIud}ySfv233_KadVaVvn})|2a+6=M34Xg002ovPDHLk FV1kbqhpGSo diff --git a/graphics/pokemon/glameow/front.png b/graphics/pokemon/glameow/front.png deleted file mode 100644 index bd72d82c12a503ded65d93cc813a42f4f6cc2dba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)Kls%8rFc`;e52&LZq(p3q@9NCd7u`)r z2#Niua=JAc+%h(m@{~6Tfv%*SSXdza0zk#i&<#ETU*IIZ2~X0hP+tr)5+0J_|MT+^2rm98OMN%tZe8BHt#ul@ZVPs#wN6|vgb*I;!{mWe7kva$hX<57=?{}6%{z4} z8qZOBnw~lgNc=D;BI(G{8=??E=x5zJ_4I%UD2NU8o^OEzJrE-ZiEl;l@_h4Wx*8ZX zK#dKYv?gx!lSQgz#Hrbju{YG`Nc85@llnqpDdNHkL08AKs(J;mSYAY!3)nI0x`HQb zfLXnohlIuuS-`Ze->=tSV9@|nL2kzYx9ZClSgz)g!a`aAi5G9zYjiP2K#j_X`&O&s zhcSlm=v}$|WR$@?d@Bt#jsak~DqnxhGl@M7EP&=803NSC!+4%I-l?4i%U9oypMJf9 zLQ2{8Q&~~I_@VWk?^jZ_O~8KI?No1Y44>u3L(Qjuj?RRK00000 LNkvXXu0mjf98E)R diff --git a/graphics/pokemon/gligar/front.png b/graphics/pokemon/gligar/front.png deleted file mode 100644 index 5164cb452bf52872c5ac24ce0b9264bed1618667..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmV-Z1FZasP)Px#Fi=cXMVQc_QYm8Il*JGb5Y1wwq)LNIT66#Z|E#^mAakT3L31&by^AR^izzY1 zbBh1~0L!+%*Z=?m(Md!>R9J=Wm+7*kAPj{&oJ2*fe*edvETFXQ*3RFXs;TOWoR2^j znAhviZW;ZrKD7iQ0)ASPQUf6UD>3a76urBqO3?gHEc<$2iM|VvFcnf3rI zxAYCcel#NHg{yiw4hn2Cz5vWVc-2|$xu<@Ct)wisKOD76+)J7S9{Ex~F5 zIxZ^!i&h;W#2&!atQxk*r#evR6(B`x|GK^p!U|yi0<0f>j|p7`sJ`#X-8#`*1gqSp zqVK!1hrt0Be)t}3;%+sPAA*NjW2BewKzU|~lZwR0)MiDIwJJ7k~c0fAesvWu;@TswQHw=g&9m_e77l1rL z86ef^+BDCz?#4GJCZDG1f?!j!Df(`nO+OolLqAQIfS8l@EPw)t1YPu}1kHt*ld~QL zz32CPF8N2f0?@SotzOSv4{98BvJ&X6HdD!PB}_ifX>rib89$R6l8FES002ovPDHLkV1mHtg}VR% diff --git a/graphics/pokemon/gliscor/front.png b/graphics/pokemon/gliscor/front.png deleted file mode 100644 index 24be70580480b18caa07f602122521bc036a26a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 940 zcmV;d15^BoP)`76vbnv0H+aa^iTd zkQ>P^lG5}OnC3IMQ>n(X3smIM#`Jq??(B|&*oA?7he#DY^)iryvr>f`BMId_vE^zH<=<*T6rY1@9x;F17dCObjo^uhxyCm^r4wN4R#{s^)u#a>f69s0B44=aF7*ruTagXDn1 zG!(ah1;F(1epTD{4-on83mGHVjf)FhFNh$nMn>0ve*OCG1(e9`mlGZ^e;9(+E;}(Y0~e#dF(9BlKl_|g57E`>@!P?66W7LG8?eAy zZI1LYm6|dbO+&1;u}c715MtX5AC(7oG#R9HtfdIv!mU=1ngiR8-^Z0%0lbCTdp$Pv zq^EDSy$vw4#bZoPCU3a)sQc|N1Hsi$VfNE>$}QOWx()EhD!~WS2^uQF8epqAzycpk zLeN(WVi^c}A<7K*Ux_kxRorqXy5-Omp*+U@@E1hx?!mUVWX4(vyu~7|%hUr~%R0D1 zX)tzx6_0D*416JW+~n`DKvSi^#6m)IArg{bSZd_k2IouadRXO{T1*O8G;YDb)xlVybkES^FKqtpEGSF~MJ$M7qh@>Ft z^V10_MY;*SQh+?JiYTOc1jHyZRWu9{E#oxDsC2{H|0h6$ zMd!{il@P5_eWG(9UblUgC{VvqjlQSTO*G5ZU5iMl@6z4)-f8e3Uw;D$q#UhwZR1%0 O0000Px#Fi=cXMVQc_SSSF4IT+1zN~}^j5D*amy+QwT0PyIz#d9f(IT%W6dk`^7dxNC3 zTE(2C&ABm7YXATO4@pEpR9J=Wl-ZJ{AP__mO##L6|NnMs1H2u2#h$kb^T935LsnVn z+^biwdNh#!$?m-$e}~|u$u5WSIbj$k(lB7211QB)!Z5{=2?#9sADvh(jSI^;ObQU= z5HNU&b9n8_K2zebESM&(z)s|koTt1O&H+mZ><NMA1i08$cy*8(_s)Hr_h9%?@WNG^WNhyobdD-n1i zNsJGd6_ls63=yQ0l0d4j{&ZbI>G8rvfGySpwl+XI^%J1@rH?5MmRh7Y)}d2>1@J7* zsdTakV&{h`EvJ62TsgB4XtA{s09#yYJNFX+u1o{DS+L5%m+BAm^+sZ}4hdY|RztvG zir{?L1Pef%yph&VZ5fdA?f_hf0LalOd`ls9w|)gki}EJX1+zg<3~;y@!vmoOC|Z#} z310!u8K6aH1keEYeg>@hkE&7>K!lC}1R#IjW84Lj*8||rpL3QqH9?F5$p=73`IMgt zBq9*Q66AbeeCZ#o?wn(eQT>!F_b|8sIF#1yTiokdmNLFew;SqLjOJEmR~g2!N!V>K zIdHgsKn-DAQM28BgCBspmmm46A8T3mHvkzYGh%%f-RUrI1%TRwe!u+)N&r#cARYj1 rO`v;-n&mUH{0^P~?vbxv{df8cqqiYpc?|%g00000NkvXXu0mjfrj{0> diff --git a/graphics/pokemon/gogoat/front.png b/graphics/pokemon/gogoat/front.png deleted file mode 100644 index 3653876d55beeec646ae4eb57d539e962178ad54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1032 zcmV+j1o!)iP)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMF6nqARr(B001~RH~=URNFV?Jpip=~5CCvE zsEAnj`1rWExQH+y$f#&g2msJH7-72X)&Kwi32;bRa{vGi!vFvd!vV){sAK>D17S%- zK~zY`y_LOd+dvq`6%mmwH1x+wuxt$( zPiQwK)=LK&py2!wU>;*nY0ypeOQnO%%)q`a1Q4KINWzs$4Zk**(Dnteb@HAuuS99! zmJR?N8bOeHbUdS4BoE^Flz9QAw8jIv*KFXg)T6_CxDRJBIrUn2)$eoO?>0H7i;ybo z5n{#f$Z4xW#eKXPP~bf97dvNqhW#wQ|M6fni9O z_nD|V=X(<1ygQ5Ik227!*KhW<1^44P9*+StxHXsq^2QsafbH>d1s9TY>-)F6F?Y88hwL(igi7nF_3{Xx?z?1=ezO{s+s*a#-fg{#XJs!%yLhyKOLQ50C#)ll> z-2iF2jaUXY*z*L~oQ})h95~7Y@%T`DUtaz!r~irRR0fXX(MSlKe?2d=q_KJZ`$rBK zra<{D9;Lu1*&!aXB*G8;d3=}vU!`@}oWgJ;W9PtBes^45%^+icmJgM`YV&&bThG|* z<#&eqYxYUc*x4<>&70Px#Fi=cXMVQc_VuQ^&IeP#A0IbdbTCDD@Qmm9Ydtwk$&1$q_Vq(?R)&Kwh00000 z0000001WpYtpET5j7da6R9J=Wmg{cAAPj|Ly8&|P`@imdg*3O)sedNTn^cwLd>C^u z9ftq-LIB6_gvc=r^x*gf0})0JVgjNt#*Yw)ECwW!FO*Oj{RoiBS(M1WQ%cDYpU7E6 zF(d>RBg-Eq-|D*wFjn~~AaQN)2s}N6{8isaV11Qe0qzK|`aK}0 zcLd<#Z}esVd_%YbZ1p#Q1m^^JlyVQ4^e^R$6p)ut?f|Nvrd%#E7?5jF-eh2UJk>K` z%u2AS@;(98r?OuFHXO({loY8R0IKIrFa=;$wG=>dpDgmZz5)0Xq-&K*&^0h2pAcj$ zW!6st5TW!eoEib#N;&TVGLVHnHNaG~(`jI&5MEM5-s)8@wQ+zPT#b1~>zywEL&R3* zT;)vCvoJ3-Gh&=)TK51emmqQw$j+kGMpM9LUZwTHIxjc|L2EEYB--{gs!vds%w1pG z{s{g_suwd?z@Z`dxL8Ts{%er=paFJzCIley?9V`e-#`oiwLuW_UOx}H9&TQ zstd3645%Fgq2@q(71t+sfT3&w^En{pJ3#BL8-fD1DO~CWpppXs9H7tg4Z!`)uL&Rs z@;gcZ`jqGf(1Pb}DJTHy;h`P?Tfe1%2I!J~5kTJtcvrf(c1{5+9RL{Z?K)x#WWZwQ zQ2{zGj(7u*j%Kd{Ee=>1Apcznklh11m7k}@YRE0MBLQ)c_Ky+NK-!kvMzy=X3sGy$ z+<{?3A$0B~`io&=cQN%PUKpY|Ksn+55~kE0}*vsdH?_b M07*qoM6N<$g44E5zyJUM diff --git a/graphics/pokemon/goldeen/front.png b/graphics/pokemon/goldeen/front.png deleted file mode 100644 index 4f4b6db93922b9ac262e679c861adf5b1a3762d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)B?ES=qSRheTo6MeF4Gx-J9vy%s&@yW-$knLcZTU_d9>6Vcf(u4zv0X zz@p0435e?d1+-g4RK5I?5@fQ2%X4VpUgtuerFITPWRvX|B%yVeH#8taBCiNoFMzjq#7{~-JiXP1SF#v!4y?DVq7|ZaC1;b2t0krBCIlMI<%V!M0tgHfQ z?DkZF0J7PH0hC(x6=FTz^{dq?h~b_F+8b!-lT{#n84hIC0x-=c++*bH`h`0r0Qtsp zwx`*MUEU<(0`M`RrUc>ja{vvs`S0eGWPOmloyNNL~R$#B;QU%wjUcq=zT-vy1Dl2aB-}+`L-N?VD-5SB3`z+ z#yhXSYrylP=j5?k(XtTBF4nlWqplzuby?)1{N>qv4Bf8#bpDg`u&5D`*IxxtyvzL) zoqgQXDW(AMh%3VtAn*!+g;nKB`2>h9Sm44HX2m3oL}*uc?ey( sNzSlX=9w^^xGb*F4dbfQH*wA54;lmEP4&!QmjD0&07*qoM6N<$f}@~SUjP6A diff --git a/graphics/pokemon/golduck/front.png b/graphics/pokemon/golduck/front.png deleted file mode 100644 index e670ad751977d62ea6cf1ae5bc4979070fe012c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 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 iW!p%e01h`(z}P>%Z8>8@1>Q>l0000*6(=Gb zA_RaSfFWRmK}N!a865{4EFx}9n6V%t0jL}THhn(m1!Qp+ctjR6Fz_7#VaBQ2e9{aI zjJlpKjv*eMZ!d1lJ7gfh_8?-FgpuHP&MH6cYe_dIUtnJ`VNVH5=Mw!1Z#+Es_ydkc zyUT4(S3giB-ln(qh^J@U|Ht1|T`t!Cd#Pexw9x2(#bd^b4+8I=oDdK-Z+zq^<>&EJ zv}!}bqfGuAqA6MiLcwLMET4Javu^N3o5>47}&CQsR0 z*FRjklFU$XA*U+9?Cdx31Mku~v_A3cYB$V$9mRiwKeX=M!qRiKrdw4H9x1)X`(QTH zM(MQhn};=C=mSGFv)0006J zNklFv}rVNec?v?bii<;#UsklleqT(A$BzK7n z{Q^n0EU882R*Ae)Me3*OamP{q+%Z>WgXhQdJa_MbVf?!na-44c#mMa<(3ZPDg$`nC zXL2wCu(by6{%Fd8nGWcCFq!Uv)&jWzlh-FS#4W&Da=-(4MGT+PMH7fgk-*LUHjqdl z;J5RjnQ%))1$G^!T2&VDEOm%WpnCP5rLF;@cdje+qnmh5 z6hK($aQLJKK7#}vZ{l_Yi9$GrA31=}uCLn$X2wPZA35NEQgobWOgI*Rq5z-e<(|(w zER;WuD1(dBF9J~MY?gRD-sK7EUt0yxRls9^SD%odw~NzIYhVo7oG$l5tpNuxW_qAD zKv^*d?5hnVfGK^cO9-40aNtm?+{d9eWB*nE#5VkaswK*1WjAx6s5yL7d1$sR(A(Ne gZ3~lh-To)nADZOS%qMl(qW}N^07*qoM6N<$f-3qixc~qF diff --git a/graphics/pokemon/gothita/front.png b/graphics/pokemon/gothita/front.png deleted file mode 100644 index e7052bf8d077101fb360afdaac8ea4849411e2a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVkTpZX?Bk}{_NbOc7Jc+T&@PgD0Rk%_+F%aks zOJ|m@UHb{`ztq5LCu=Kl*L!r|%kxzTx#*v&;*>#)3f>1yoQ;$ z)xdU^8UeD#&E0f~*?zaO0qK6f#_WB!FatTR-Zg;RgC!wX^N+(4zXmf)AE?^A&G7N( zvu_2|CRZ<9SymvVue4sjEoacG<%%n{;5J_qE8t2b)&x@N0dRBS&b}*-rLY1Om+6GW z*r$^yYhUXTp|SKQajzZ5jN5k002ovPDHLkV1ikc+e-id diff --git a/graphics/pokemon/gothitelle/front.png b/graphics/pokemon/gothitelle/front.png deleted file mode 100644 index 7178f82fbdc37beede783e323a69c7aefa4edca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 873 zcmV-v1D5=WP)8S%5XaZ7>CcV~wP#}>R6cL)h%PAi(Vp#WKy={47IiGIAXKSN=@BGl zDrAY8N8lZhcm&>oS?{5ozcR)7qf7;$oZkWXoM$-#Eae9`^F+$=p5LkfVn^5w0Ab7%OeO9BibMjg zvjqhDv8J6A4I#kQe!O}eKN1{o#oC`Jf7O z5o}T<>_#PceQP&0wxqOFjf{WzatW84Yn$1sj2*)8uuC3_r$4_PTwGLpkWN*aJGCj` z;~3+~=c_kgf4!U9*kk~^8^O8nU=6{huIml>YTB(?s4N)3r_bx(^(`Y5I@3f`0Wi{! zzuy^-K+U@&16HYK!~eK`Q&e|h3;|*DXR1R7Ub1QfTR(C1jH$h|4Z4r!cV>v0CXL>( zl$pi+w8&ONE^SnnujF~R!4^<0<+*ncP)J$5bjN`t%A-7l@f;b$kI60E@r3~E3q3i*)zAAhK)=~!GNAh~F7vV+jlPJ&f423xQw5k0rfg544Jcw}J z8U0w_^Z~Vr9GDV<7JP7D2uGbf6oT+x6WRpoG~GRVI`&X#i^l*u7vcngbPR|}ahj_W zZzP8iX`Qf-5#UT#vP{&<3H&i9HQAVx-3j?7xy=FK6R{S?CpOL&2&8T)|qeM4&HU*N8sf zc7OzOy@t2}_#%q}NFeG|fUQmu$_UOi0$XU;2moNSM2G+bu{#1Jc^BA~O91WM9_P{{ zVA>`^fYKx2ysr-c%D(|9vX+T3x%R#?Md>}o6wX1n0d~MprL`i!6pH3q*4ZbmjZ;s6 zrXkkprXA-Lswja!G(e^0egIrlH-)^YIu&^Nmk^i1b^s>v(;uj6#<~w+3)Be%xBjg| z!nvpmaOa$mxBm3emC})V029tF?@RBFpRX;&dlgVlEFZpj^Kiej2-|)F#w}aC{&u?g z{&i!y9LAZnjGGVVcX(og=z)}r`03M+yPFN#;{%J-%802~zs_f}C(Chwzj(ZB?5Tbq zsn=D+uJWJ9oYvxb4?GBg*R^;L&1IIu42=vdF8~+AZ8EnH4Hzga3*G4QvQ}{sL+Y%m zM*$|vIK`VLOFxqTLU3VqB)pu6qYdr_{RyTNfU3<@deSr493kIN0}1Q^@`)`pCPC1% zn@*twJ+6A%1s{749bu3B$YpE05OOX7rr19P*x_aDh(8U?d!!ok9+;};fpET04KVK^ ioI8m|V){D$+xiXIZg z69%ndNNrm#H7XJRz>|zZD{wS0?}}mo0053%yGN~}dbt@UdF}LT%A1xEnm`Vs8d8hnKh9 zz34kssm=k_dEQKt(md*~McC+Zg9jzDR*0Qj~#3xGjOATpE$ zT%rJ_z=^Xq|961Wfr8M}J7j%^4DdpUg776^LZ2Z#ayn20+K)v52msEsMGDZ{vV;Yd zMOuSN90}Nv#L3TV1eA#cC?pYi05Sv`HR)MMpHTP}#M50kziv(9Q*+E1)}~lLrD_0!~>Df|5=i(ER{$EfwV~?*Ndy6FV?# zZEyvUV*qjorTYL_rd=ZEV4wid9Hg|Y_?!&Qwf?yk=Z`uKV-P2I`(K{+FGZXmRvOyC zIvn=<{bK_F)%(>TM*_gbRF~Ib4MaOhF4`i0kYfvB{p7qYL_EU*8G?fs6fLG*RC+_8OEBnf=)1GyNY=Sf`oOlN_tE$J?%fX~^bcX= zr|)m3Gb3l~S% z4MvAV3h+#KpkXovY;sN$62=SGV9mXO00WQB7DBw0kjOKLrfkwPxH#HO<_5tf;UeV9 zUzW}1;3C)YVznDYW(<8ruTVP9~=r$VuznIkMC*H5}@qh$}ei) zR=_*D-nsHI*4Yn%gHGoXPb3uZK>}EB;se0Lj$g-#SxW&0x*mq#{6bw1OPe28826M%3+pBfB|A4#A(34q0Wq0(b58r0;I_}01lo3iMeZ10uw?+J|o~&OBLb(a4RK5loo*9=vq!mrMe(d zP6H;Z9YP7!iwXd10Z7;))hqLu9ka8Fbx{HLwE!e+A(B-#j#-VJIE#HDfi5USV?d47 znr{I3B7yjnlrz9#%`=?ESOJ_k?F`_V0Fd@?D3TL0+ZOE>oUiS60PXBS&!}gy4J? zzVr&nXh&_3k2uQf0eBv9E)UAwq?1lJ{8UUlX8$Ap0Gr!=82$^X-~a#s07*qoM6N<$ Ef^>eC`~Uy| diff --git a/graphics/pokemon/gourgeist/small/front.png b/graphics/pokemon/gourgeist/small/front.png deleted file mode 100644 index b3b659bdf10398e65ec7c3f0c76dc0c784a824d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 909 zcmV;819JR{P)YDQA%sc$>PQg#tZ2HTCH0o39vU8ZF^-Q4YqOp2E4JMR#GcG!3IjE zY}g0Te!GzZOSm;X5!b)o%*^<#vXvaGA|J1&ht#%>>9K3a^(eiIr72L^!IenOpje*j zTrJ`Xu+I61)l@`{x$ON`9Ke{p4ilGndQ1)t5UMNwwotx4GLhkke)Cw;FI5=ZWpNo? z(nlq@{PS~Ydt8=}P#ZvxyR4v%(6P<-&f2@u^lPxzJ8NU3C;-4-uXl>Eu_f=9DgZv6 zRxsWz0QlV+_fN5d4LNAz9edyZ(Ke2;bczzL>^S?r&s%C+3brBnx9|Jn8Oeaku!DX9 zIF}CquRybf?g03{Tm(E61HUX4@Qz%AbF(J>|hY}&)GMM2DtU%?$6+nZ1cEmS4 zECAL#00O|wM+h)$-4`R=lSRZcD8v+?3X7Q8n;8SGPW%pBP9y+U@MbNI&UfewN;Mjm z^8t=hwJ7|&>QG{aK_=j^DMqM5x_L3CRL_CNA#2siiA892GUxyZQ$wh%(eRL_UxWfg zT^eM;AroM3@(n-)OXNYb0XKRs5@6h+W*&Gh0IfSB^eJqj8+OwG?RcsHW}S*h^&k(_ z$8fHTCj62CfXp_LD}Y|L$Rz~GfOyl(!{Cxkv|9gC53)BZE@c=*5BpzV_Qzq6eHPb1 zKbiFV{XrRk^yAX?AObMTZz2K1@F@y7#4AsC!?v&9AFVbRwkqQO@uK{%NUR+P71)T>u#h7i@dJaCcxv9O;^N53aB)3 z{T^_)A-%o7n{sI4@}mi`C!gO}O2D{-rY8a-TFN9VxYU@8eCa>0D7?Vs$-tzpoAal`!R6T>s{do2?=}@0M?rX0I;YRG;!*!DL~2HilXm9si_AFcwx_d z7e#f<0<8y>?|A@RF;oaNfGM1RM^SVm)HHy9j6L)VfJi?DSVLg^L;&@N09Z^C_%^Kr zU>&s42sj%o{|6u|8Vv;?gFNBOMQDG962vx=OemVElLn01*<^ti%W) zPeln%O(P*|u$-!_aYaaUw16W4VUhuaL)(DFvl~(Y6GC_~C(y1}YQzEHPDt=r5jYkf zrR7v)st*!X74Tbh5lX0E)&N)!LBi%rulxggK+kK|WewcdLy)jJPgQBsgBH~2EDgB; z`k)Z2K#PunuL4NUG{6G%(OF6)z@Q5`pyLBTx_xU5nm|DZ?1pm%|XEUj#t&1sdRyho|F56ky7XFVz&de{GvHvH6zBj(fli$84%IyB$EN5)W7aAYz&k7KjS)4lyD%L$tX8FNc9N#>6TxOY%V=iK_&m zOyfRqhDjc0Ut|=8A2AKJ=mJa^c{u<2Fj>8QkSP>PU8tqsNtHtu-9MK14p0<*AP?2f zOq5J0L)HaYKmfpXNmb-fteMt+s~O8dx+(#4D7#_>gqUb8sUDDe02o31?&js?`AQR6 z&<0&caDZI9NX{(RKW&UfFbwfS+mOP~W| z_OFSl+|*rNoVij!eli7#uyr~wnTb;bw|3j@x{LG;o`#V8P}VAiTc`X?#L|M zIP2*_geiTt6Ps0RpB+AcUEl4mU0+53V_03aAem9Dnhrog*y3$^=DR&q-DW zl~-Gr!5)=yYWc~xd|d;(DggnEXV~?POrN$@0=oy5#kv6Mtvg}`^n>Q3O{HTxppUQ} z~J#I?PAIAOg;c>^l^m*4943UBtcJNX08 zBM`F_!0C3t#3OPMLZli1Ll9vbC?<0{ee;NT8PB43+=@002ovPDHLkV1h8sTTB1| diff --git a/graphics/pokemon/graveler/front.png b/graphics/pokemon/graveler/front.png deleted file mode 100644 index c6dcfbe9fb7b7489397522e7a582694c3992d415..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmVPx#Fi=cXMVQc_N$pTgP}q(L$7!GTBq2wsrEJ+3pDMWMo0$dJ_t zBHu0ET?7z7_tF8MuLUu8lwR`r3Rr+8C52}_#&}*aplcvk9Jfuubd}^e8hXKiY@8cd zRCwW?f23&pgCH?@aDagbafD6KR%C9O=c;D-8malO-3LT;h6oIl1nla_z~sT~A)xPR zb9gE+SgLUtEXTuhe6mi(3SKfIIiZ-XQx?m4pd62p82#>vd-+n)3zSI(*omc0YMSO$ z?rUAdT?XBt!z`7oZldb>iFY4z(+Lfh;Xdrvj39#!;{lDaxrgJzm-0;A8`vTqj~E2N zlYrTni>o&Bm+rv>Etw!5xS}kN+zG11tWlebq337TAcfHZ)GGkowKO@BF!ccDiNJ=) zlsl&h?7nTaVXa`vY1dUq0MMr<$A?b@G%+8VS81II3I=?!8?9%A^X^qf#JvR}AQlaMr1EJd{PQE#8U{z7;(8{I!MWCkJ zPE$h|QKTp_#y?nwJ!fpaG;QapTvjo dJMMThz5#xF6oTdDHje-R002ovPDHLkV1nX>Q@Q{E diff --git a/graphics/pokemon/greninja/ash/front.png b/graphics/pokemon/greninja/ash/front.png deleted file mode 100644 index a76b97dca9c8d1ec1a1daf35188dd5402ad19382..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 zcmV+y1L*vTP)zzi-n(6vt1#<_`#Cr}mv7lA$8H=PGF$iWJ{kQBjqZq2NEj9^S@~PLbHU zUV!0BXILSPe9Q43!RP12}--N4f4hHb4S2+eb!MP1gb#0~{RZ2FwO% zgHAinGc?({6%eO`6FV?CrpQzNXwOO4Y+bbDxJ4S+K67mV z_Xlx|El=TaWCgr-{N-Hvx`yp-TNCU>JML`Twj zwmb~>PprUspS6j}xard~3-IP$E(d{h)5KB(s}*uE6kr{-wkUKdM3P!hbxjjz2d^O#Nrgr2 z;NWdfG$J9w6Wgz0;?<2Hl9J%xLkA1Pl^f9@*^1cu>QWM*aK2JK(b9lm&T6ux!>lA! zcG;o`WRtPmIvt`9(}GyZvN44c%}eYoUY-UKG$<<-z2+y+Y8x>a#B=aIELPYc6soeNE zz9@4rcdaZE&DuOV8kkHjC@cV{1fs=AI#2-AT$(e-#frO)2qqI<@G`K>hI))9gk5L5 zdK&T}Kp3DR1KYg{0Z>#Lu$2q59c3lJ(A3#hJu(ALE002ovPDHLkV1jTVYKZ^< diff --git a/graphics/pokemon/greninja/front.png b/graphics/pokemon/greninja/front.png deleted file mode 100644 index 81faac3bf777b024020ac73d06ae80483078bbe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 899 zcmV-}1AP36P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_7$8_EIDilk5J*5c`0&s$P|#4g=txLN zkdTo0`1rt3V0bV%kcfErc#r@90EdY{VgLXD32;bRa{vGi!vFvd!vV){sAK>D0^CVN zK~zY`-ITFU+dve?ZJ8lM2JT!Pr7DB(BoCb&U+W4Go#Lru>XE@Vdg@wb$jVevHab-D z2wkYvPT5Mu!d9wCh}nNZkpG6hvrX_>NxO549lzgw-}f%hHXhqD*Z%`huen(pdP@a( z^LQMQa~71s_H8RY$G^`{vqIuEjU;ypnypLPg(*; zhaHQJF~pOH7M^D3haDgQ@*2-zTKy(To}KF+0%AzRNd8h11c2vcT>}DO0O7vB>lr52 zk#OS{U?~B@!V%w{nnYWqltZF&C}h0_ zBna$;(QY~ATsFa464pr!EX~8wH3Ig1at8Ou+Q0gWz|PNbbXWS~{wZ0c=+8XTHFiS4W6NEl`#hvp_}#*2^n3IjnN=Y2&5@u4VLY zSn7Z!y@i0+FNbeceJ&9&K^qDspr~q1Z*lm{qzzzcexOBI2uOr``MJ;`e1hh)rw+96~$5F;@d%NhI*bhaM zKo{>uy%-20v(MbFw@DaKN4DxFzyQ#7@h3|;pluK8rasqaz-qN=QUGB|&C~FO-?U*8 zmwY7MPoLzkZW{@fkoTvqp4lW+MElruWfp)OK-y^va6a)X)x2M*s9RW4R;_e$J>F#) Ze*uNXAgXQTI`sem002ovPDHLkV1g24i>&|v diff --git a/graphics/pokemon/grimer/front.png b/graphics/pokemon/grimer/front.png deleted file mode 100644 index b99fbb299c7cbd84b0b5624ab9e0f5aa57e3c677..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmV;K0%rY*P)Px#Fi=cXMVQc_oNAojtlnZdd+y%uw2QP55D_-7==U-(&(;Ok9XAm@=nDy3X+0)R6CD6gCJ0fF$*erTis&=iDg@0eV>WF-BB z*CC{Y3KfB*=|n&*-;`?t87~!*?4f)!yEq@^C$R=iB;Sa2#Z?Z;+7vcM;IIED3f#56d7dW~|x{@>YT$0<018 zu#Tkraz@N2BrJ7-^r7m*X0}2>?&)AG6F`e$6oBR+ppXC(ut!dS3l>jF8#uEtlF;=;Pr2`aj$R+@E3e-1`dJU?EjQ60#d_G`B?*qL8Iq%QGl$GwvBWO zF(3QG^)PxDK*>Rx*iX_6U@Z$ej?#+*)?w35G{B)i*1d-ZX*d#lzV;Dd$-oD^k4^o}-iwz0=P(6c)hYW>@ zgx|w&642=8&xj7ty7w23tVXw!T*s~OsXg8>x!w}@i1KykfrcKCTNrHLJpLHKVk_Gv z(hP*S9MpPwT|3d#E+VhkGO>f*YoF6@-1rVZPJtH_+ZO+K00000NkvXXu0mjf{0%9y diff --git a/graphics/pokemon/grotle/front.png b/graphics/pokemon/grotle/front.png deleted file mode 100644 index f52ebe6d63a3c0f8c2940eb19a212b2aaaf41974..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 922 zcmV;L17-Y)P)5(i*swt8&_HO2NT|SIkf>Pr`1sJ!(2$UjgSF#T0009e zNkl&W4&->o_1mV7}f&6V> zk&qSS-m56xR;3|$igCH9O2vP4Q4=*qn_w!^G^Nm=GN5YkS(CDYsExr>DD)dJKvPjJ zrD$1k4A^9d2r4*>D5t2*304wNShc3AD693BD#?j15Cfo3l$FF7fE2!qfu27&JSwO? z3$YK-m_NEsU@ON*$WQ_L&|I9)Ohi;nIv_AG%+feWB6Opv34_#_h|ojB!HO!XEQ|Ri z=2TQPWSY1-3AGT#+C>Qq1tGJF%huW?YZV;CJ|HCx)l6(+GM*bpy_MXk6k4d`G9h?= zx&(xjg^7hEVAb&=A;c`t>k^vC=}1oi!sCWxds}3^Y!SDlFHbwVA!J^1z+l5!WdP_E z;yT#DwqaH|z_PL9K?KtcYu&LiFmE_uVbk{Tr5@~9>j2m`2V^RntDaZs=}+knt^we1 zgJxcP-Y3r`podX2qNeTOn$2yt+3>vYTcpf%0HQt9uHiYZ1(SF%1F0}Qiatkl$Hc}q zKSZSgIwni|G0^JJJtN2`0K)WoYydz==}5q}Fj#eo3;L2A15F0Bea>LD?BWXOzE_UI zX4Gs_N;^e9!L~}K>F>TVSG9JG3<3eM9g3WfL#s{^bXXWgl$4* zqp0O~d;r=!kPcz^4)w_zn^O+_u&;^KEVNGLVRwd2F%kFyr9lFC2BXP@l>8X*^TR2qbSv&Mmk`p9K4riim9K#J2bcpg@4`+H zJC0rguT~Deae(E)R@bip3g`U%{P3r711x&*!>+~M?nkWv(DcR8pPMN%cmvKV1{Ock zuY|yb(2Ly7$(*j79>im_e-r*3eg}F-(LFkh3o;GNZpS~swc!Kv1j23sZo<0f$9Dng w!|us3(f_Lp=@;FLUw7z0=x0-R>GyX11(rf~Kx1PdRR91007*qoM6N<$f;z~r-2eap diff --git a/graphics/pokemon/groudon/front.png b/graphics/pokemon/groudon/front.png deleted file mode 100644 index 56e10fbccb11f5020853f9b9a127b644d0f7d1b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228 zcmV;-1T*`IP)k9@6vyEWi85I7!30EvQ(YWvb?DI7xS2uM4|R--U#1TDrF41&Zl0Ms zZ*!F6o&V{DwUvGKC5m=#L(!!^L0 zic;72X$P85OKiMs*7XY2fp5T*#73o}S4*V`pAhP(hwvD9(KJ;9PR*~* zc!zH(kHfss^?m2`)a(s^)I@ryJ_@t>N`DQ%f))e=jiVah`Y*A$r&54zZ5)Ks8P&uS zqOB5}$KO(Gn^JiI;~}qu0=%{Ys4c3&8BZ;N#KGXxpUIxiuSlq-A`M3oebx5mh&vzt zM5(pXJc=UqdgoJo?R%0J1ko`Fko8#h<|+srJ>b2g_S@9&CtjAqv}-j?E%tayY3qpO0K0QByY>CPcY!(V z8R)eGis*I})g@UIvwwz3mYpwQk{_sHofr;L2mo-d4Eyz6iiCYjS)F~k!NoH+smDb8Y`1$?Us0WuYF974Dgor8CK_AV&naQ#1}-@wyL(YGG|zxcOAQp?+PFg+Xl{FnWN>=d1>yRy;B~|XgXe&oA{!KU qqP6?Xlwk*q{LGgc7hae9pZ@|O56LW>9SouX0000?vtkO=VTXm~I<$T&b)a5(T#U;qFBHOk7R7i>4l)sMJKoG_kY4@6Ivc@lf;RVc6q_pv3 zPRbQ7Fhojg)<}1y@m`VAfQ!_T@&b|a0@rX#7b(&?DNlKVD8-$hA+x}N|8Ue%rm*nL zZ@+KM&Mrd#UoamP?ynnd~G8NOyEPE(=l)H4NZ!!RiA6f?R0Ilz` z?;>~s@YUly%a&7r`|crJY!Yub@-ABn;i;CwIl?6asies@cx<{LGANc28HFn0US~hH zfGf*WHx%v^^5d&4Tc|d%JMz5}Fn0$DBFn4%F?C@mE)sV+F9FeLkorVi=J~J1jW?L3 z=_D!wI2!nA>IPo{NFY%weX4L#C%nl3#6{-i^gtbiAHrO{*#r954n=Xw5=j#e_T zbgm!jTANW*M_jzy0Ny098q8$&GoTqAn=x46D}~3|D6mk|WKCmd(lB(p+it3zffn-o zA%TKsvcA#T0UVfCSK+r%kJU&t43qVYX9;D}Q!nQsjDGwe6u`Si-`MZBX7&~E;Wq$J zLZ}s1->{!OP^0xqYa?`aty*{r;dp5s1TD~go0|*@-z(sol$%!!>-EE*1(`D${{&zx zVHEmM>2^>dG)n<@d7deNt6}Pw0GPj(jA0xy7d~Wj)!-5Uv64cp0SEzLim)rdScrwc zUh6^%xL>MO2vqiRL6}lq%s|0t)d}J!aD7qwb^$=wXw^+fYANC( z(UnKtgp9!hh}5RK13*=ROybSS#c4t*=2~I5w=oIi$l89d^wgMC?rRbZqwQfDr{Nsc zgIMlv#UvU>M*!$<2at#y2liSK4o(7yBkMHq&&6MhPx#Fi=cXMVQc_b7CO>_N2wEVh|7z-pzZ(Qc`m{5dXAN?u$xuVjya2YFJo!`1tVH z*wCmj5J5(8>Hq)%^+`lQR9J=WmFsT9APj};;!9|jzW?Ly*pP(m0$C^R$CR_FimH5v zV*~E(cInckzZSWEgWp{*TNM1fMM}rlcHS+@Sv(~}j&I7zAP5X=7;xgdBTBtP; zkzO0xtX~<(T@oz5578Jj3$g6H&^caQv>AxRckV#kX#zF0h;Fa4>|z;zf-eTuLUrU&%I5_R(FW(?3K$=(LxUTl z8*1koq1eqcQgGlS2P}nu7cm$IJTc1RJ##s6}V0H*f$|;OVKmHNsw(Ev>|eR zvVIey4@`CZ`1Gus=~JvYU`zWB$Du}XFHyJO;q^F-A{?fokCwe`vvUS1=4TmAIyY6@ zi3FHQ_)RJuOmUNU1IAX2T7X4JDSkYVzwo*n#NU92sGK7z1`WZ3qr4WW7~R4glVseq zR`U}@S|I*^W`-Q)37^k3CI6VOChLP|v0>LcP7AUu%gg*N8a}!@moEJmy#qIsG_ RFY^EZ002ovPDHLkV1ja8CL;g< diff --git a/graphics/pokemon/grumpig/front.png b/graphics/pokemon/grumpig/front.png deleted file mode 100644 index c5b65ca3b3c48ab5f34063511da0f0ee18b2ccfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896 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 diff --git a/graphics/pokemon/happiny/front.png b/graphics/pokemon/happiny/front.png deleted file mode 100644 index 547c652edfee125a90c695a327cbb47e6d2bcd99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWUEQqK$(6QjhfeQix z0tF5cH!@}{2&nk+*m5E;CEpzq4Sz?kUi;uzx5`F8Tgyh8>8ZNehooVc=% zTNsq|=!f)#P7ON7HSv<{)w%|!b;hBppIJ2c16IBY{?>Ek+3u;W^&dXf@BCf6&*h@) z^WZzXC;gT267*pF(j3CTFomUrp-O3j)5O%E7CVtF6(%iVYk>_SfAegG{$`}5+8dTB z|D4-+aOsoppFMdG1utD0#=!dexRl5fh8&-zdwCD=8L3w`M7Q(#I93BG2`{HT5(zu> zI0c<}cx$G7&ldCOQG8#Ka!}5&_Ktvq<<(M-iZ6GMcb76+aWiuATDF=`U(T|nQSM}4 zT;hW}{4XAvv79M4Ioer#-{GGki-nTf{&(y5W!}DU>CD{Q{o;}D&+Yssz_jb#lD~}c zPTPOjFp3!pG=7s@{-iFkc?a*$x+@(wB(f()zELj@x!htM&^hz_#ZUEapK>%5@@6uz zT=~kiF>a%1T3K-D)Q3jDrikcQ)}}|hgg)iJxBtbSU+mLPx#Fi=cXMVQc_0002)oMMAYG1Y@wv}#h-w1f8M#pczdIYDZRYEoiil>h(#tb0oT z)qB;XVvZ9Epa1{^4M{{nR9Jo(VF_ z2|(YD(=>lU01+y{fmc01Ao(PO2Y?N20H**5Axs%C-q%5u-hY&!fF+oLiS#jqJAwi} zHGuWIfxvM~FoZc_eK9ce@Q;LHC%CLPfXQQgXa_hM&1T?sEaVa{3Ro5)#4*Nr z56E5MX)C}27!?2`B>+zV@5Db(8=}pk=((L4P}=EYyU`BR%8d|~5CsrmiUNokfVyTc z06O;oQwWRc89+72-H2MO4gv^);($bCVTt1Zhi72q6vP5bp`C4>Cj<>G`UzrSdHflF zW?oI>XzLnnqFk525Cu>c%R;hQhaV-2C`;B`xQkg46HMUgCjw;oD77>LcYB@zrpTdc zGzukA4Dr;_$ zTiIKj?a2Ndus4Kb3$WEu6Qq020Owp&&jzsKo&9sza;n|uLl2Edf{w}i6S(;FRsD;@O=Xm1YLK*}9i^cRHVL1PBC z($ec@+CJd47%M=|g0*mA0n(8`fP(=BK!EI{CIEkXA}nn?)c^^AT7D+bZ(BVRY5*f7 z%E!wbHl2(u@ja&|G{jCB1FUrxeL(0Zpnw4IEugolLpUJxi_{}roJyfVB>UU}TpcQ4 z*C}Pd(6OM2UY%+P5DEi^BVdL6|BDRxdXs;ngY1M|d<)=aL)fqQQ0#;{E=wTY$}Wyo zImGpK3q;?kYa_qE^`170gZmdxmQc?PzIq%RY#r)3iEjvU3uHZ?Nv{YrIw|c;du_o( lZ$JJ6q3*Fa1n57J{{nX!K{YDjZw>$e002ovPDHLkV1hxbiJkxe diff --git a/graphics/pokemon/haunter/front.png b/graphics/pokemon/haunter/front.png deleted file mode 100644 index f9434ad095ad2c88f29060a08ec237a7cdecf9e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmV-T0%-j5QWEr1Ec{D;F#>0jARYvn2O60`T(g|>~n^=aGxyVZPVQd2&VE= zS*6Ne3Gd_e>zP)mOZ~R4zR@SMzXFl|rpFI}`PUJ&{yGE!gC2p+&w;Xkg2<16Tdi-< z+EgAO(mqk20EnItfQ`O^p#fYGfKnb1^_f95?*L?dHZmYU_W(76ae~RbiO}d8#s(_r z0n+`MK{o{AhV?T80a|?qpBS{jh64gD#tsuG8$bd=46$=V0G|YqfB**AWq?c{8PF1- ztJ6L~eXCj5)^z&7fdSFCoxT{xyo*Gyw=NOGJ|%fpCc$%Z0U&G%b>Vj%9^q3#iaH+mtxb<2)0f>QaPDm!T`% z!%n`>RaRydVj|ZD{C^0lUA1@n{fm50Umybo1Av}71#Z7StPk&$F*ZDe%UtG*lyzQq zrQ+TCKxMjX$nvZza>Z#aA~ki%+xqa@Tmu7+5GN#}H8h}?9^ z-9?A~h#7Dz-`t!tyh&!X3TBlTt!3a+K9S>~Es*5lXv^88ZxYf`6hnZVPIs1mh9lro b|Fk{;N7R7u?e=0c00000NkvXXu0mjfR4D_^ diff --git a/graphics/pokemon/hawlucha/front.png b/graphics/pokemon/hawlucha/front.png deleted file mode 100644 index 5293bee35719bfc4952414b555c3f9fbbf5a6fa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 792 zcmV+z1LypSP)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_ct{xNh$s*c5V&XOI5=1s7?>z1xVXsp`1ojOcq7{Jg8%>k32;bRa{vGi!vFvd!vV){sAK>D0&z)1 zK~zY`<&-gR+CUhF9o@jdkO04c6CJu)IpF|F>CmP>Al65vs8ie?QnOTwocsWmr0T}f zO5GwdTnLK9W_LsCK-`I?sstUfAz`*|kbZY|h@)WV2jp9x3_C#wX^9Yco zYmWi>#D0b*E3D*cKC_k#JmQhf(?lRgGp`wo?_)%oOG-d#0j#6|bQ|8k(PR6mooBE| z3rPUfXf7M?VFT3ijrCU#JK={Ru$ODDF9}ild?_6Ofo3xs0QVMyoL)&_7hvakrod$g zBBDB*r7tLv>Z1gu+X~n^i2&q#*E`3j!x;YnaHfEA6xek8!o_ELwB7E>R9EQ5q5Ruz~nxfML>I6Nee`kzii#$Bs7-2T?XCr@L#Qa@Ve>$1YFeOs1UIBY?mFvs9A+ z{gzt}d<$Nk#{pXTH~=QU<2(X@43Fb3ky7xpl;QyLwGmZX0c$6<%Z(QA9*hr#I= zz|r@`b$Ae*$uEJ|1-Lv^<7l)6qwZ&0AaHW!K3u^9cj6G3UOfmB#wH5Kqm$*y0pL!4 z%W*OC)77t(b-%|%;R*=^>FWB5-79nS)<@L8v_~#Dv zoMgs3=b>YKGd5;PZP*qNOTawNIz0k<`J=Ev*8n?ajs;unAU}I-?%rtWscvncck&3~u{l+H0y%2SeIL&K?1PlrK=nT{>Hf zDiC2v1s}~fkjP6kBBzs=RRD9skoIou-%teYmrpN3TnC)f+eg#?QjKMgK%19D(Y zV2suT?oc;&A)u2&ATuR`vssKH{2eT@8 zG86(pv`gRtY^qx+c&qnJ(9zumydnV4A6GLjzhQgOekouMXWvybiojikcF4T1*X>a? zqBh!`J@0*VUK|7z*E;*ioP(g~ihu6u{{gM-?LQ#}m|4dX)T00Z002ovPDHLkV1gkd BuMhwL diff --git a/graphics/pokemon/heatmor/front.png b/graphics/pokemon/heatmor/front.png deleted file mode 100644 index 0b912da48b18b563633ec83cb318df9c21b7b944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 887 zcmV--1Bm>IP)9-K={Bw`1tq$003YZ5TJ-iU>Fbp0000000000gUjkf00095 zNklls;9RV1ms* zTB1i5B*Z|+bf_Z#bDZ6@^>d*+5;w$(?&G`fef{n+_CFf2$GIz>N_PMv6t6k|bDq)w z;SeWpz}){^9-xcUV-L*7z%CDwlyc$0qY`^?2Ov&~h?;~4;XQ!!MdUS_v?%icpa&7( zZxn!+ot=hR34pBwHdvo;0dp!(aeM)h)}sZ^myZx~vg!rKRAcOgnGS@{KPj6N(Ibr# z@i4TS8WYyaI5*!e5#<$PssSV_DY=xJf*O24g(*)oU{pN~-WOAehlpz20Cq!V2iF)c zkAC7<=|Hs8l8bA^Q#`r!Lc1=aHQGG`Q6QCw&r%qv8ek-Mz%V8wCC-#m_+9f-l`pu1 zuTvUxjtYEF9cg(7a>3kSMG7!J$$)y~nurS+p|TTWMmEN0WDNMK*28lky12wNF_tj_ z3y3^WRviFP-e?jq0%kb%qVCx9Lju}YyAB!Hp)Uf~TE?W(yF?sAn6UP*yeea?x`*JW zIeoC@oB&@sM41Wup+x0CcC+Yu87H7OD^JwwTy`g(MS$1=vbQ+ooXqW^oN-*;$TN3f z-UG(w{6+?*s(`rzmh8#xX22hS-a?)ad^=&!dNZ3GSjb{s3@p~J0owtmH-?i1S)?|_ zwkT}HuEY-L_X^iGeb&ZF=?Jbj>%zD4SCkJbAJ+Y?;y#UCu7pBdXN9kFk-GQ5I$?@x z(Mf`6j?Pw5T8KT|L{Sf8F>vD&C1Qf&usMzIOH784_?AZ=heMaS}L<4efLh zFRX(NxHR4nG2q(Cr90w1Eev-z9XBrvIBu$#4n$Ozo4%bBFz$ex$ N002ovPDHLkV1kjxjM4xA diff --git a/graphics/pokemon/heatran/front.png b/graphics/pokemon/heatran/front.png deleted file mode 100644 index e446b445dc128c846a8a49b98196e58e6a329b85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 938 zcmV;b16BNqP)Kl+SAuK@`VRNiNcZ+ZGBz3z;kwN-lN+ zrqV;ZS*#3O5HtxCFaDZ9=tWukV9BYyBxid_j%|l54C}$OAX=9OhWQV~gJ;3N!8hBa zCb6kUJ@^jJ%e*p5uX-cK?0G}468&mW;JW9==PA|8pa1LP2 zmk#LV78!1Ua;e>!0#qA41GKxH%lF9eUZV~m+8x|t^*10>sW#s85CI%vHNSkaF(KEW zR)1gbLlBoK4Ug{x<3N>z4?P|LH1Ql30C_dO$4-wwhtR0V0AwLQ5oX$zTPXJdDXgPo z+M1lw-2%|4^)QU!C|~LxOeV2qS|O08%JdRIhlws+EKI638CCig3sH}@kFdLoQIet_ z)vu8y551%94|0Aj$(k<02vPCux8IqJzHGk>=1bi-bdJ*HKwgZIffe@T>rJheetd(M zw6#igndY*;fSNvh!L2}qj zH_PW`Ga>g$ixk8FD0TK(1+N3Y*WhB$r#X5%JMXskhrkJ*nw{}pm2bTUkBJ;XlhVQc z{S}q$as3(9r*@wQHSRO%#SXC$Xm=c<2Efw-Xq$m#Ae8iUOh^J0wTu!Vvs-|E97~Zb zPivRhRF^tM8J#Cl>#HaP&l8%(+SOQd3+w#zK~XA|Ou3^}Bq5H`9G3xfe3w6^7r^5% zQd%+(&CeG;&iF31nNqQN(J}}kshB`_>^Cm%S;(88m9I`s*y(*xkTC z84sI*Ur54EYZWP}HmwD*V6KxHyxK6gR}iuyQkjQz{ZvIlY>vF%DwiNZoI&7%Z*QbcQw?5` z(RS1Yah)PKx$`#x(sf7MQ?pX!@y@t}MIV!##$^LI1V14pC&Q-sJ*nds4j~pn0K{+F zc{!v22#rrRT4`swj)P87lQDW+T&1V3^Tssyfdlwg>UgxP4gR(I32DS|vF>T7od5s; M07*qoM6N<$f=WoHeEW0MG*v&j7s= zYLN!i_GuAK5CCjbKm`_W+fC9zygtVPa{VsE`HPAJS=$Pw5&$`E+jjTi;y`xV?sf?S zAkKEF1gMQtiG*JRF#JP(RH^Tc3d21l!exH#LvC*2*F_vKwf0_AKLHuW(Pw1i+7seE z0`wL$c0W8rH&0Qy9&kh8u5-B3A%S6lQJ^c+1Cybi*9N9t+xjL3XalNd_9nD|0FO(f z3!}Sq6j*W7Fw@L>VAvz&AqIbkalAf(}Z$_j7+phWb%DS#-zWP%&y zx(MNn*?aC0ofy3gz!(OK>ckkk^f0j67%U*HG3*lcR_huEn6+V%bE9npV4XF!4YsdP z53JljBLFRWfHL$JNLV@d<2kh0U+@aOXehtzU!^zz-#SkLqYA$3{)#F3r$W8=``+Yw i9qDpk3rf?#pVueq?whUG{Bza-0000!lvI6-A0X`wF6+2ddlt)BJC@5%XXk55(;m3^thJpz{e*D<6!r{k@gp3G@jtv)p zY@jkA5Y&2a2BbI(JR*x382Ao@Fyrz36)8Z=5&(u)eb+KUzAfy~ufyX=qM~fQ#StC*Msk3gu)NOMcmLx>lDdz)d`vJTC#fC?ED;8FQBEr+v&t;uc GLK6TMaoXkp diff --git a/graphics/pokemon/heracross/front.png b/graphics/pokemon/heracross/front.png deleted file mode 100644 index db9b244da3e65ed0fbe5970769990db04fc66f8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmV;_0xSKAP)MGbDJD1HE`r0#m%WP!=dlkf()G!M{g-k`fjHB0W= z#qAUH?Fw3QY}XQ3H;CX$E-E4sSPK8KCJL4|j;4Ap+bZ1Mj{BU^<6EgC8I7(9Hq1MRUVp z9Qo-bwm2A(zMAsOt3A--daB!dzc1u>NY}n5L_n|5iSYIC#%5q3;Ux0#VaD8;&7>oWGXajI`SjaKVfIR>K z=Z1_sBH2&H2%u#tz^g(rKtl{!L(r#G%?M}&T_~b%Jc-mz#z8IYfQopyo!bG)UM0$W zDXO~Zf)YD`3U1hV<46R`lEB%DUmgH%YBH42|KKNyP8+iayvS0lhZ-dG&s6{@tH>Br z`7R8$By?kqo2Nwb51)jBRTR=E63~yp)BD}t6Zn*dBC-JV*>W?SVmqV)ez_xn|4qrF zPxruLh@=c(4Zs$jpnT8VtX;O72& zDas-FXxjO+p**paes7|Hgg<@k^Ruh@0w9+c03j~{FZLG=SEI?e`0>a90000uq diff --git a/graphics/pokemon/herdier/front.png b/graphics/pokemon/herdier/front.png deleted file mode 100644 index b28db7c3197174a8d54414651628b27b1f3f89fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmV;X0$KfuP)c3hTE`j`cx_ zZ2?~aBC&5_RJAyW0=aSZdckkK=Nq`#oPNpwa-_k?)nqROB^+86O2pcCcr6J zMG6C#OYES#Nd&eHkQsBn)Qzs33Q2)E3Iv{7-(n$tTPdfDRjrjV z4SyMIah}O zkr9m-l%lPscy)V3MU?wkMa6vT_W~Z}WMPeHcO3#e3-ld_o{$Z&pmP%UG)W=^W_Z@U zr_!fAfG3#rDE>KpMf_-f2>79pv;86Fys1`mMWV2;_VX;gkuM_T7X>5FnvE#l9RL6T M07*qoM6N<$g4U-gC;$Ke diff --git a/graphics/pokemon/hippopotas/front.png b/graphics/pokemon/hippopotas/front.png deleted file mode 100644 index ea6fc85848c6b101d49702664ed30148ab0e0da2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 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 diff --git a/graphics/pokemon/ho_oh/front.png b/graphics/pokemon/ho_oh/front.png deleted file mode 100644 index 4c32adca93bfa19ab055712cb41f5fe02e41a873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1280 zcmV+b1^@bqP)6fwdKP?3yYC^D23*veRNpbB0AMXcx+wXQ|4QL0obc+r-az(tt>ofx3(<-@iTQW}>HozhhWR)gwl1wUe5 zB&1xnY*=wXrzRA^Ip$YF%A_7vO&X~X)UXVulBr1IJ3Bg6W55RtK&6xfDiQ=MdrZQo zaX@V=+qjgj!O5i*Rv{`OP-z-@Tx{f+3tLsF5C{~mxfPK`>j#_oWq6`%yY7Xt!oc0@StMrkYPVg+=& z0U&D{7`4gOVO&^TT^^P&7=Q$p0eoOi)-wu)M%ASV!5Iio%@8QDq2ucxG9yrM7(%xv zI3q_lsj0V7R$|vrOksx0!Ep+MXMLwX))81+z#`$;OyY7C!YH^{Yv@^jZ2t--1QJ*R zUdooMGE8X!Qmm;}WRG0cL{x5v8o@~^t?AT4GVRnr-3KWcCw@(VMmYCY2mTn@T z4CvS-K&u*UBQZ^az8V;7Fc3&q4+2Nv&v1GOnq1ufMiz@Y-TfVXu7`0Ap+eh`aVZx9 zyd+|sOebi!7{o1vkgOXb8-{QZ2^SsP+fPY%;Sr!FBv364i<#>|Z)DP^wnsA3Cv1FK z0%}2m`t{-RjhsE2{CGF{F~ogTC?MU!V($6s_#592Mw6%7_nCjF@Bdwp(e4ABYes-| zXW-f@y`P!C@_m07k#CAp^CU7rg5%mY=>KRw2jC1nNJ;6Q8_B?Vw*3p}|7sqjAUGp6 zZ4$k$>)z-$5O_2XQv8*a$m~UIiaGu})jC)L&12HDN4+>Oqa9++!xGKjWZH9`7{NpS z%MJkN0K5TLTzBkrqauE`ejs0-&tE}?`Ps~U@x*op(G305gRc(`eYWQFm%Z5uM@THg z*md2`#aoDI4ezT*x% zlMVmk&2%~?{#ng)XRWxz;o~o!bFKeuZ+g-rq_*x3ul|hywp;tdt?^{t^(HfSdQ3QP z=)aD-Fyy@+)y?v@W<-ZE^Yg&QJXjM=trdE2H=$ct{p_uMZE1!1%+66B{+|YPn@k q5XT+9=J=SG9JzM2%jSSz?*9k>u`y~%GmUNl0000%Q>qxc_DH{Sc&?qLE$(SUyK73TZzO<6tUXV;qb%i$M+9( z7ahVdddtp-$KOB2x}=h>A3%dBst+$NPL5#f7x#;LdJ8Nviq5~C4~L(VL_o=aSh)p! z#V+0^*ettDC`|-NJWmE&$&a*^X_A118KF{#ox{u9Br(md#WM8sjq6nS-NvGa8LfwZ3GkECDuF0V6o;_slh1#rIM@ImjFw zpNbt3g(;zwl6=hoUS?nmC0YVY@8!KPz?GLdaFqE5MEzMe*Yp*VpRAd!l#neKL=@zJ z%WpKWZved!uEe#y&0tM z9M6e`)g=^sYVy0;PgysRkvzSpqWw_UHhORp_ZIxW=@@_}uvp&$0zPoBS|{}0C)BzgJcaGa?<%0vxdZ6Fm`p2E98C$GjJGQRf*suK p9CWLJG!JyDip&U~J`VhQ@dvkH^PKN{JmmlY002ovPDHLkV1n|Qe>eaD diff --git a/graphics/pokemon/honedge/front.png b/graphics/pokemon/honedge/front.png deleted file mode 100644 index 923e4563dc171229584c9efbef954eef845f1fa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 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 diff --git a/graphics/pokemon/hoothoot/front.png b/graphics/pokemon/hoothoot/front.png deleted file mode 100644 index 8a89546b76fc5104f8ef9e89c1e6ae87abc30359..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 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 IM6N<$g1QX?00009 za7bBm000ie000ie0hKEb8vpTg?!Eipdp1IMXv!iWn_mD(tBU~r{(r_$OzU>1Y$M6Uw0MMG9Xr816K+7$yGFewh*9mx%3fT?Aa2Grj zyL%Hrvl9M*F&5VID2vy%qJ0g-5nP9HYaIfxT5yA^n2l>v4txRljeHj4Tp0Q{Qg;~> zTlnly!gw_YfNZA$4r>7bM38qH)db-1#RA|lHV%wj5fVxOas}uMUK>abxkR8GtC`Kt1USIL+5>vu<&szVb01FuY2z5fz^`_^NI>b1&&S*VBi-!o}q|qci6sW;`IrT5r9X_JhR^s@G}{9HU&T#mt;856RrDL?Gw@` z5m4#91WAVPX`BMOr+z1;ozj^An!T=x+b7*5AU!(27+sF8v}=GryyVLv`=d1CR-mdD z0Tnj0K?yb(U5!Rtmd11NL?|oXK<%85#^bL)FHH_`xxh&5m)1U9jK_bzz5R`sBgH7l zk|;N6t^X8&{=2MRtO;k*%K^Mee*HZoCZ@&OO{V}%Y`|+1v^VVfyc>C@fQBt}CvW)&ezxSW_-WY`R!i1pvYmff8 zzBMSlPtc;1-u$TCC#d7F_?K~y*w#5Bl+yIJZYPY@&OoR6SkF7*Ds6!0Izk*GU(|9t z&Qa?jV*auTfkT~@;)q5Mp&z=N5SD(toN$CQVvvpj47#mv_vorrWInD%7(7xVMfZw&dIFS8_W(oTG&`%oWXJX~*a11yl{dq;fpG(Unz{T?`7wYGpz_wL z^L-6)-caiG1{lcMkrka%gl@-juCkr$Mi2u;N_JZ=My98al~UdnZ%7rV2-xz^Kcd$a zRvrK<`(i5Ru?dEu@=@!sQgs0Qx*_H7G12^TSV^w|zo8b@@$DAy^XJ9teYY>w!l=LD z9bZlofKgvt-k0(}WTD sDy_nIfTEq=2^ePda{TtfTYuvJ0U7r-2Q<0voUTAI{I2<^B}WN3cGZ~hTMzGd06D( zbzUkA3RBQj54(8SL)f|Gwv%@LFZ;dsl1xn6!w!SJOUiqne1E^Zyj0Wv%b_n#S~1nd zTAi>y19LI}a)8n;37i!fkN|xyTVDt(TM~HBML+^9J1IHibQi+CE%9T%vSgZRf(4e! zcw~RP-n=VlVwj0Yf~-5a-@-2Ptr$4X?nZ)CH&@ z5VySg@#XmZI0fub#*1Bdu!I2ZSyC+@C4jLZ=avHY&WQMOL(d0~kJ9I45$E3!^iXV$ zC{^J2CIK4^OK@&t5{k`J0dNz_{eH3)B@$o>&V9z%u1we#Z$vvG*;bU^a4CF0CUJa9 zTe-7c=4xF3isPtBNIM6HW3fKIzKcgE)rYH6-10FW-yt|DT1N17D8TLA#i$r)-ettE zFQeOw!6fhkqRWV#9Ts+=sS|a0hC49{;IVNTn+8}i4*nA8EF0}&fTw0^1cFS=6#;Rc z+-XGwm{vp=-z|^^ZB2;KlRuXRrNx`ID84#z9|~FsS`Nr*ql2QETQ^uMP_5N>5aa_4 zQMf05(82%(L<=Qa7@*!nH3d)dBFJ{9Lwy?b3W1ufQx+WLK-MGH=pcAl!tfvi_@R(00000NkvXXu0mjfZDVa7 diff --git a/graphics/pokemon/igglybuff/front.png b/graphics/pokemon/igglybuff/front.png deleted file mode 100644 index eb39d1f7385aedfa658ec0a31212321843c81a2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`7zFr)xX!q+ zV2(u4|Fc*Bui3jLs8~Qi;92vWXPN@t3=IGO|KH2N0AwJ8-RH!v0nHKhba4!cXni}y zyXde1k27=K)L;L;>#A7KtPtO{`W%Ox{zsNci{$#(0>OVJhWgLl8S@!t2rMXg|I>NF zm-f|Lf_ALXOue<{aP#ulKesbHyD)vtMb?J&^Kw}dR&{dPo0d7a>}4uDr()6C9ngE= zn=nJ2`U0N~J`ZgJJX}n=9QxEb7uXxGm1BH4Z}Yzs%llndxENfPVeygnoL6`5)9c5F zOH%rT4Q3qJ>Ho2o<@uKqo>?0_ULKTw*s2y2Zc)c4W`F0oj90@}w=0E5swF*EGWfh_ zQu6xUvg2p+s*=fn+#>!xayqPJ_jW1Y97&zLRrVakRr#fIQ#v=S{`G9NpS5_R--f^g sJO`c>ml(V2AJX1w?tSCdty@~J#FsR(H?6&+!wm{BPgg&ebxsLQ00<$gO#lD@ diff --git a/graphics/pokemon/illumise/front.png b/graphics/pokemon/illumise/front.png deleted file mode 100644 index f91f5c93559b903990ad5703719e9e48ae3050b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P)=c9}IXDoGgPjGju-VMl5Dtqglr($Aq`5kA5`)F%%@tyKuL^lT-n@Bl5W0wejujLB zf9X#B(O=U53$P=74NH`u=TPrlaQA>xsLd9ebSu!|fd-7q7DU21e8wXdRDh27Aq?KX7^(c? z?T8MNNqiuU3@P1{Sj>0=)~~^yScpVQ5Fm_ekZAxi zvbY4i&;hhrRrqoaSjJ+(_jB-)708$BMPy_MUQ>lz$ z;uY|ukTG!88YS5*n!B#zy5qYwz%V!^N~Bo57T`6g$cmKsY6cj5E+xq8Jz@=T|L$2c g%2Yezi})Y$8~*kcksTdY0{{R307*qoM6N<$f-grb0{{R3 diff --git a/graphics/pokemon/infernape/front.png b/graphics/pokemon/infernape/front.png deleted file mode 100644 index 6bb4d332cfde23a8762d73969106e2386018ed97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 943 zcmV;g15o^lP)cn}Z}fLI8?m>}RdK=6o2IB=l&*ifKgK;Vd2xWL$OaDe#u_<$%dW|*@A0009z zNklouUHArV{;#wx-8kL*CG2o|K z7THZ426p+^$|jITXg9kD8MKI!NcMJcr}{J-iy=!TE;CEcl4JAMNzuhZ}X{(REyU_LK&5)bS`c!A)bkfEW#}C&efQTG<1t(IC1<=W>Z+p*@^lCq(m1%0+LAbFK4;Mric_(P+dz z9p0Lxx_3}8nvb-e8PDa0hmRv(0CfHq+;}b@jc)Y-j&`HDj@>0C2v_Tl`UeQxWrC}7 Rv!wt4002ovPDHLkV1lv3w#@(l diff --git a/graphics/pokemon/inkay/front.png b/graphics/pokemon/inkay/front.png deleted file mode 100644 index 2fca9044a22afd2c171f47f953303d16ff62347a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_NKjb#`1k+-0N~)@fPjeDfS|BYfcWs3 za41kPn7{xiIN*q=7-*0HNMHZ}0Dpw*^8f$<32;bRa{vGi!vFvd!vV){sAK>D0h~!h zK~zY`?UOM}!$1_rFN928nkEj?sh19d2(jr@=urEtdmtdVr&$Zq=q@JTprmwh^hu!L zR>G0~l2b<*4oZB~ewv9r-0Os94vypd@UWpvdh|A_$^N zg*yr!eLs$;6$-6AjiW8_AX2!IA4k(M2ZC4xTu0+L48yx9oCdL=hH?^qC8`4MlVpqR z*H9n~lR09N%)|gOuM(q$*l>;$F`zV`tj=s=S?8F{gpIf{jLzcCGCDoX9a{+Kop565 z91wj^?X=;XE#4ar?WID%ZKibnJWr{GY2K~xt$VbI42!Te2YxCvj}B`18J4T?eMU8x zLY=H|h4_M)vL)$)zKfW^|HEtxWXvWiT+kh&7`ft9D$5Wz>onUGuew0#&PjECud)r} zSC;dKu3&!pC9q*-8&yF!iy9orNoD#RSW3oUt+7|hex7V;%YoXG9P)2N$OnJKv!U;* Rwr>Cc002ovPDHLkV1kcA{A~aL diff --git a/graphics/pokemon/ivysaur/front.png b/graphics/pokemon/ivysaur/front.png deleted file mode 100644 index 4259abad05e7481895ac50a342185ba248aca0ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)P!kvb73cMW+Sw^89*6yDN+C!ksnOV$oq{b;gC2U9nGnf~3-RNC+>Hr;zHP|m<$u?NbbtPi}Fpts^rTrHGET=9# zqy%m|9#83j8i#K+XDIC6uv|jGZ4rcKGo1f=IHnAnHGJs$eAD1TT`E|Vl2};K@B^{+ zIS*@@*q`$aF$pt?nHa|q<ok$qm-2ynadztC^qztfiCX8mIVG-6x?Q!``v3D z3;YGCNJw;vFp+Ae8oN&lc@)hfJAU#Xlq1IBb58^>^tsA??-^-*DVN@Vt+VwHZOdKy Tn+Ol000000NkvXXu0mjfsPaM9 diff --git a/graphics/pokemon/jellicent/front.png b/graphics/pokemon/jellicent/front.png deleted file mode 100644 index 584c7f09b8e7d26607caad88b0750007c8138a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 807 zcmV+?1K9kDP)JNR7i=%l}(S@Fc5|vMeLc66x7}@>aO;dk^tHx z#mio|V$*2bQ~5CJkqt0a|3LRzR;=V>4^@9b|6gb91VS3ZtsMy)c^=PeEB0%~{&850 zl?#Dt&1$*@dAsemog%>M``(~X!tuokK%4+0wTB@2;mI8qxq>A3XI_q zB7pT2({d{2xkTy9H$Y$rYdMF!b%c+PuolBPP((QeKm#TZ@aC^?Rsxg&8RsGDXNeGC z(SUtiea~zmghl5kCRQuvD06e{Cc{ zTBE9Zkcrg+@RBM>nFj8adfF>osx3&hAsrdy0ZOR=e_PDsztAYC&F+h|RUF}(+HDBy z`+Q*gS$EF?<@11Nl@7iKF5{ui5x~AwIk9Q&c470AKwb&H2Uyz>n>4rKZWh!1?^(=-WGh5K12wV9cYj=BJ$$Z)NWe63x1-9m!i2Br0_&6Cyj` z5ih8SBm&pliamnn>CO_@a7%>Om2%=G7GgP~Y&z#Ugw-tzWOanhOq$bLLc{7~Uqw&Q zhb&l6IEjqk&!}7}Tp0kl>-eNQ{CpxMZ_Q@`=3!+V%}3`mz&pWZ4FQgqM4#M11L%B0 zUz<@VAR2e&10N*U=uVpemFNO=-0*?`0P!~RVo|*aTZ=>jQ&1T<0hTvVHbf-!Mr{x6 z(;u7>AkXpg-hk_O2=L85w2B~L!RiuAT!3ri!dEyk2HJvlG)167z%s(6_h^3N?YIo| z&hZVpUwzylfcb+CTM(i9g#yc~l^KzRmyu002ovPDHLkV1ieXYK{N^ diff --git a/graphics/pokemon/jigglypuff/front.png b/graphics/pokemon/jigglypuff/front.png deleted file mode 100644 index af3a2d78bdab6149e53ab4d1687e7d03537efada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)Px#Fi=cXMVQc_q!1wgtfc01gAfo9b3qvY|NnDh-a#>(l!O1xz5l2X0O&w400000 z000000F~o8JOBUzTuDShR9J=Wl*y9AAPhv&!jk;|2S*ZM4|b&x>K1t2D9&FyUO>=A=^I@F#>89A#>Xf%o!ZoElfRx z=ay6Q9a=V9bm``A)Awj4TX1HrD&-j%cz?Y2-t#^n^sIj+Lc8k*d)Ez^jCZy$ZWcW5 zY;cpzx&UJYK-U=tTTVLxi_KTF<3kW)zMXvF#{h$jn0Z?RXWF{O*dVBZDAEzOst31= z8RvXF)DUkLPzQwy2sFez>DNF201txpMwW@Y2Y{fB`bm#FYhGeSu{lf&Lc{})HNfi$#cX(aA&XR4k=q8a zgYY0Kw^CkuR_M%E_bnq34$tpDOIdELkS?bmH2{D4?MXg;{R9Av)CQ1)Gg)oF2pfQj z4nWA4vJj~o9R=`4h@AFfHM2&i)z9@VFA;8iZ4g+0Rc&Qa2(hlJ@6Ec&uFud#A;nG# zkbG<)CS&Ycou6kCru5-S3E5`~LmCH+*uHQwaB@@bWJ$*1L2{i}BNax!e34zr!pl9; zQ@J=Gu!`e2{&AH(I!=+so?8beI=DYH2zh)eU?-Dd0y^p#4k7!>ae`FoqmcuK^3oR8oR+{ylxrYkakVa`Y-eww2HTjRYvRg00000 LNkvXXu0mjfHW3zI diff --git a/graphics/pokemon/jolteon/front.png b/graphics/pokemon/jolteon/front.png deleted file mode 100644 index 92ee1f72cc673b2341bf3026d73fd0ef33d00280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)Px#Fi=cXMVQc_5D*YrN)XMgO00`Hn0P?{|BL_LQb-7Z`1trzQc}gm#ejf_00000 z0000009KY2X#fBM2}wjjR9J=WmTj}*APj{)gfxZz|NnbWLf_nRTe$9yUyN3rPS3+h z2;k%Kjc@#~z?=Fc?-7!`2cZ75fPZfwXH5e{*Pj46=ZP^0fbMdN6Ko_U5TK?Hy4Gx# zfH6G*Nli2v)C`#C(XImZCW&K*{7K(Mf>AG_pF@9?6kUKcO+;8WPfyu=$y~e;N z%?ZZ2aQSv$U=Cn`djWQq6EJx$Dt28{6mxw_UIji`>pHwllk17Swg9i8rQ+Wlu`W>p zh)xa=vh~_Rnj?G6$-nBt7oxXp^2^;_>S69(y!`Biv@E4C2X86keb?VCRfz4uCzpi= zLf#_u>hX6%PSFJZq-4-RDXlImRF#FeGQp*gVntK#4jSU{HAOWql8B0}!?&pQq$fe{ zIvO~Jk9gAS?Si0?bKm5pa2{#lD1qJX4OEtW>>#k2_PL?CdjdtJX$!@rvY)(>Rs!y} z?8-5Vi%Xlqs0iy81mC0XiU9U+)B6=_N>p1VakrSa9Na|pRM6xbz|gTP!JRJ-scyj+ z<3Z@y)Tm{~;77cpWJ3gsYV07PmK}gtX&qa9B)OGd&VUD```lfte*$2;-FeEuPJq=w z0D4a;#JX8?{)GWQUL@+?l-Q`<24dI1^R%I_58AV$F90ex$J&_?#{qX?{CRUAF!tBx l1z^PTYr>%AZ+zpE@dJTe64!@3agP81002ovPDHLkV1jd8F+TtR diff --git a/graphics/pokemon/joltik/front.png b/graphics/pokemon/joltik/front.png deleted file mode 100644 index 845a9a104745c001d66d3b5a48607dde98f0ad82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*BKWU6a;X5xZxlmAaG&@ z2ZupILr1`k8!r+v9vDO%SkS-$REP|ws%!Q!Ffht_x;Tb-biSRmG3&5_KwIjaH{T-l z7sPv|d4Idmw<*+XyMRZ=b*B%)UpT!MRC_MSzg@gXM8~xF;Qs|r?f!nh@9Cry_2v9j zQKjFT{apQAcf|=*bz0TNA6(Gv$IKQUs@brt>XMSWDWjI)jWk zl)2AeEb6Fx!tcW#2WDol-Aw-6_f>id??s+Xci#9*lwHWEIimF1Fov(f(&%Axf9Z=h z_6I*o+NLU=(M@?hPx8R^ndXwrMLWKJ=ZLA8ta#~h-{IcieeV)tBnuVp`5!-^e1W0N zF5`A<+mD^9l1(q42S2&QUFZ8&+f~g)Y-85i6DBX6u7q+JG1cU_hF#ve{p<2d?u$Lg qzdQ|}Z}?#QyY1!;f5bLq1UlLCCL8d{`Tx8O3OP?#KbLh*2~7aa%&ArY diff --git a/graphics/pokemon/jumpluff/front.png b/graphics/pokemon/jumpluff/front.png deleted file mode 100644 index 3a092274185d94c979f57a6639ac9532fcafcfe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmV;r0!96aP)!cXKEngBy9J^;??RK(O2df;p@##l z;U2(i3SWhiyaCD!Ttj~kfnatW+c{@9v=mH{Ncq3a?9R?V2>pZMdB^o22u8>BkPsRl zAwo7ujuGCA$pi>-;R2$G4njrWuH(lBfD|J;F<>>|sDW#M#&%%XWN_RgssLz(7`TBX zfeemo3<&^?=?sn%oS6hvH~}CC;lfqoQA~)@UDw1S);i_f0eDdy6G{c87mmk>gb7y# zokGMya1pow^kf>noJPK*07P&8_T6>p))D%6J)gd@RCWO-&xJlX-CpoET98|f`E4r>Ny2vam(w?O{Ec#Jf|jbY9{ z6>WmdxHM^NAioCmd#Yu6US**58t~B2pFty3kpU*%Tu!GyfCt4={%=sG1>jA{>d zx4=eLv4q|Vs!iAd(0BO%;!4UAR~|jwhNo!?x-50`;RxLX^;s9t7yUdA5BE}Stp@{R gjsAn7`yYReKk-8tfTAcU#{d8T07*qoM6N<$g7Y{xSpWb4 diff --git a/graphics/pokemon/jynx/front.png b/graphics/pokemon/jynx/front.png deleted file mode 100644 index 430f9ad28ff536742eee4a8b0a2284ab91fdec8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmV;_0xSKAP)Px#Fi=cXMVQc_i(*Ru=2G6QG5_|x0001DL4&kv-o3re`1tttF{vO`sP&qQ&3tjHRRGV-o`7 z?e^18@8#Ti_#%857+Z%g;s?_Z%4ekd2(H9<@ARYZ&BZ!#`|&m5W=9`bb&YkJ^e)odNOUV0t?A<} z!B)}HrqBWup!PFFUznBAn-);(1J;1=c9*i5*veV-UZf+?+O)O+ClXPT9FjI(mXvM( zH6IxLL%d0B2T4E@8}xq9IRm&7&jU#50|mfX8X|z%TnMkr=Y3!qN>5!vShz^8m`W&b zM#vusnx;}vW2@^i2uPyL*)D!ftT?cL7osV2=4*UgqIdhIf$Nsyw_kSl<%AEgvt;xUVi8Z zg=!oJY3@VmWgPEWj;`qXpLg=K)!?gmmE9wkZjzsV`d)tn%qjin0S!|C0000 z7&}2mI_6#K#0-_}uvf|rmgW0={|&!kv}*OgWfF36&L^EN>ytBnmr`~$jvIaYTmi4M z2Ew}OG1_I!X9G_QIJC#4`i{;wDV?2wYckRRoxeb$2@vxufOBy~t{P!7HV{A`5ND#9 z;WGH*vjh0E0gokgw~t~-;BYrre8X6N+l$DlN)+pStpV;=w&+=1_VJSrunyj&PKIY_0bxu|@Ag)= nQI(NP!){#sxZ!83Rww-e3kYs+utI;v00000NkvXXu0mjfIKH}9 diff --git a/graphics/pokemon/kabutops/front.png b/graphics/pokemon/kabutops/front.png deleted file mode 100644 index d89cb33cae9c607b9f9e5be277672408aac85d28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 834 zcmV-I1HJr-P))ozg>eTw+&-pb z3_U`6#{dJHCc$`QI`x2o4K8EHwYv5GhQ<)%Es`J1#<6zZN*#$p~HE)_1_> z<3cU`SPNKB)47b6wLm$&OSY^pv5RKJR(EvwoYn#Cjxm-Bq`A1^)2RY0w&DPbD9RS$ z4fkFpc0kC+i;(Y!@4iB;LdbayOJ1Gi)V^+@oU5DsJ? z>j8}rn~+hOjon?wYN>arPwXKcrKOIn3l-3MrtLtQ!Be790gxR89pS+}26$cGVnCtn zVXHve#}(*nzBPY|f9-oB1HSFHHoBp4|5wGiGyuI-t2oihJ;!E0zE)XW8BZ zlc*>jsOR`B$+L_e+*3W|K#sf-idiwuvb0KQVN$GJ1Z@HM^pF@ALf_V6iHj($5IR2! zF4_YK(W&wg(2}fN5Et7=oyq`$ynKx5xVi`}@{w!IcPIfF;IN#8hvqE*H`;rOhop1JMPx#Fi=cXMVQc_i*pcSN(le%Db>9Q5D*aNIVoB>2&8i<*x1IN>Dx4=C%IISJMN~_x&A!1cCaZ9)wcL zr-;5cB_MoISpgp+`cf>*nnjg?fJP|S1nRSl^dgIm4e&7`06Nw|om1}ups&?jiy=@H zpHz$4G`W77-j@Wn)p4v75xJc$c)G1CKpn<$wh19n0(f>GQsYN@*I8DFc^GCh*ES1G zCYk`IVIj2Vh{VTr_GOS^tDldA!UYgKAK65{LnMFP!2s9iY<-yoF`SrA5X{CIZo#(f zTMt7vvFWI{(0e-7Z4W|kZkPJ;dO}DJkV?7#O+YbY-tuaL=QM$G1Ym%8)0;<+`T&%c zc@orPg2*Pd7*}a$f2Mt@(Tx>Vrk*RNOU(h`PLg&2mEJLLHe@c>s2U zHZk3bDoD#x7K@tlzILhuyeEWZfUg6gMu4qzfHpvf-K~vmS?Yie(TU}NAF=~@@{EJC z)&v8VwcPECQw3W=SU8!`D)V#zK#%jnnIixMI+kb-OqobXPcGQjVQH}ykdl3ofP&rt z3OxWx;(c|j>C_nkURqu?;*qzd6x52kijAo$g%9ZYR{{YphwnaJAyZpe9x)*Tpl<-B zOA=M1#vXwS$-6u1Z38Ix9UBt`>9%^>J5MEo!6yyigcgrPGYFeGjzXaS23GLCwc zXF&XM1i*zysjX$_E#wy$+W}rn`pFG#Y?BQD8v<~xC&4yU5G3qCJ#Pg0Zc4K`?U`Wu z&_6vq)uYV3yAk?YgS8R}u$C(9IF(o7C5`sYGYRPl@F-q8KfOceLm3EJH(};`9`*fO zWz`Sb3UPOY34?ffTe5+JBp>!#K+6@uWq7~J>rt!zlN+0j-z}SaiCQ2a^*g>J00000NkvXXu0mjfzJ8TB diff --git a/graphics/pokemon/kakuna/front.png b/graphics/pokemon/kakuna/front.png deleted file mode 100644 index 0115ad4f9f6d07c6c4a9794bbcd122da7fb0191e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`7zFr)xX!q+ z;NFs;E!7O)u6q6dcD6f;ATlk7srr@*0)nP z3LQ4!aORfi`2Al#CS`JrwbQbDtt-3ZSj4`3t$MX``M(7ni}Ox+2E@9YI4+?Oz`gN_ zdgGS0@eOPb!{r$^Ni{r;j^BR3@c-ue@>S6r9{<{M-cp)jIm?fSoHJAp+`fF^cftG% z#heS~iQW0A{lv6Z;G9^Qz|Lz2lnUN4UNK2GWcxVb)SN7%$wd=FA}(59*)=&t>4iX0 zNxs|6Bez6&&xK}0{b&&0_DJNgMdS_so?9%-fAuJ7DW2y$3QM2CBdslrg(4sNMOvoSEiIhe`bjO0;h4m4wgg7c7rY9b n+xN|HiTPx#Fi=cXMVQc_Qb7=EYEp}oV*me??$w+S5D@tI_{hk}y_9p5b85X97~ZUd-n7+} zYKxFyXsHF|7XSbQOi4sRR9J=GmhG0~AP9!VMvQct`@h`fL)0Xi>7MgCrF;8jiK%=}g#AZ^Lyk?m#jl)est0jbGjgew1D zAA;&*wX~^x(8q`&B0c~iIsj19fA$}9M*ieA!2`fOBa}h}h~p;yN?@NN$NbK$7Xl$u zMnHT5&<~4v*WUQvO9ylUQhWl?&rdlS&?N*YF-PDqMglYWW3LO`^b8pE4A{BS=$zRc zcL%7BP4Z`Y!kz*J+G0Fb)uCl;y6 zBzYc!{{V{rs{@L8b0?j^MO43`enCLrnJ@r~tyc)*$W|d0=$wv3wAxqz0BY$Vj&YcC zOU50bdC8e154wZ3bWQ;1Ut}(ZGEye!d-=w5%r4diDfb#c@Syak2zb%!U$P<`0z01s zaDw@$IRx-Rgqje~3tlgj76RzD=^E@Nf^#h7>A4<7C)A_EiQH1P3j)o;0^s_snjzY| zhpP~105pAtfSpgy!1^K_w%r1d3_61Bh(GB&fTJudx2EKTdPzL?2Gl*1HOkWq^Xv8b z9G4It0lMAtu(9J82lDxRE+ITOXwNY6&$k2c_}~@r96|$a8y?5O{@UYEldF#+8uDw z8-VTrvb90F$WtZsmJM|`ukPz$&~|QXcarL901!L_X4U~x1(T_h7f>gYDFNyVwFGDe z0AC~h0=RW0H!SUHpXh5xYZK25(EHGh0I6Q>UjTG8f)j&8-?{^=0KwXsu0!T+R(SN5 z0v|ERZq5~;hC!zFP>_a~tM?&{r;L=WSKT)I-ORk)N0*k222P+0m@ly6357Lo|5@#1_(Ab wEGGaI*{)&E28`cL@~B}>z5fm7pY#*^1H0}!xFkivT>t<807*qoM6N<$f-`8ong9R* diff --git a/graphics/pokemon/karrablast/front.png b/graphics/pokemon/karrablast/front.png deleted file mode 100644 index 4d2edf923b3091b60ff54f16add2a2f72fe20032..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmVA>t5D;+C_$VkiP*7Mvkf^Yj82H#2z)%4A`1o*OAOHXWV?@Gz0004n zNklTT7m)5@t|{%gmx1`p1K#mfFKEU zaj-PtEOzz-)NU>0GkC4*y(c(1^bJ{lKi>b{&$DSJLp+;C7z`52Q6HI8s7dq@lRV0_m@M88f6>AS)YV@fcb^aJsJI`)YS!|A^w zrqgFiu$?$W>`y`;v>BzYgOTgSK@55!yoDbTSgyaKKid@A# wS}0=2buTcYxcXtMPsj*AeYiJlQ~$cY0a>(_h07*qoM6N<$g4WR8P5=M^ diff --git a/graphics/pokemon/kecleon/front.png b/graphics/pokemon/kecleon/front.png deleted file mode 100644 index 2674a0d165ed6c03ccfe3ef1e4fe86e96d6d1bfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 zcmV;@0xkWCP)0&bA|^Ns8!-`_CJ4chVpLb1P;~8nQO^}a)!M=*MPfjZ za`De1OZK%YDfPmX)S!#5e}$>i7Yq|p=jIa%+u z){k)~Hvw)G-)nu>|I+KAI;lA@<^7{l9}U18cHuZ`_?a0Jh~2zm%-QUV!~g&xCA)Z) zWCs0(xcZcu3`!z|(&4A{vMQj*TpjdUF(J2*mppT#bHqt&lO1O z>Yoc1N1-ox2>P@*et_q*zhprw;b~D^7xMZTUXS481)!W`Hk-<+_d3f3&AH&q!0*{K z^UhnDNb*$p2#|jjo%7b2Y{2Ij;6paAI~%f*_$bg2xk$5}4S6VpFZ|_hHUwN&;5D-* zrI3LE38>H+xOA9u`QB~#&3WOW*GvPM1_)4@x1p?NN(1!Ty?Gn#vUxH?o7J3u7lKEK zH!pZ;q#cHsOzc{KSN1R9R#&|WSoQi!1F*1H>;LNd1EG=F;Z<`|0ssI207*qoM6N<$ Ef_Cy(jQ{`u diff --git a/graphics/pokemon/keldeo/front.png b/graphics/pokemon/keldeo/front.png deleted file mode 100644 index ffc17bf57c7058114ac9c5a6a76e67c1fea68987..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 778 zcmV+l1NHogP)E`sDWoQ3DWMHPqrqI&F+&mA zVi4v+CP7WADR>D%H)$zBFBv-Y19a<<_6vlxcd{v*EV*mx10L-6cklDO@0}6)|776V z^#{&hfQ9Xuy^VP~|F{ZpFfklTX{Cijwq$*qRCO@u(iTt20)3Q_kGUZ`t@u>|>w95hc4kkcpN{e;T!$J2Hqfb1l0^}#gW^h~zoUWP)qw7jo6gZ=TzVQpM_2$Iaw&Z6+>g9QA{e@n#DrarqGpdERoy#*LRxeJoCrPf zcxz3W5<|m;Rsg~vv5BS}aL)j7f@qe>wwxSeL=0JHRHV=+SuP~$n6g)+&!*qWG#x4L z2oUQ1$gE_1>oo!iKFU$#QG*kQODQoe0JB$}^dutzy$^AKcw>IWrvtn4I?cwEqVSH* zxA2aDH(zPc@~=J8B6(A{aKH5bHgM8n&}s)7A`0*TBuv)_?Oe!fBjcy(v;cH3J<^MH zqzHLNL}v)KgnX}S0^ZKEZ!Av5v>Nc9bP;0;0s2uspRl-}O{xv(utto>iR$(t6!~`t zUuV>(0;Fbnx#s|MX?~9Nk0H?o;3ozH!M7ScVPh# zho*)9Fv}V<^l3M#1&4>(JXqdf)2DpN z>K0e4RXpsO4HKfS?Cah7S@kG`>ouvS!)_Oog;F+vuU5Yhz%36&6R=(_0YKS32G3g> zk$PBL>|TD7PA1LIHO1U)L}6kh_|;}Br~xsS7+kz;g-|V%&?3^^71SoQ5mY{cuUY_3 z%h?6@KY)NvZcEAnQ0D;u9MJXK07b{Hyv3Gs;0(Zx-r_))80=@JtVp!$)%pV#XR_C} S)NiQ(0000Px#Fi=cXMVQc_gDD9Ai&C^&N)Qkb_Qi`zF(BTooO4nTT0t@Y_THpwLI3~%y}jlD z000000H1-x#Q*>Tqe(pUy>I;@>EHt9QZ*pxsv_umyl{2cVJSYlAF4$MSk5VJSEP6eUn9c?HB0O5`0t z_JB+v&dyhcC5-!W03=}#$OPuI8GyhfAogtlYjxsc&S$};s2Crv&tg3VasWx$cgzq( zRc5p1!)dL6L<3Oh_4={3W5=adUHTmWOA3&%mPH$Kv85l2i`TMR0@;B$JZCMQF$c&7 za2{F#VC3+=P`+Ps;Jpm10cHi^{O}7(pb-d)*Aw1Tj-V*Rauf%M>B|YAZURb&-ZZ7) z*)iK^0DO{|1+fiBf>x~^$y%+2rio`4$bP^A+tPcqg12+H?L+H*Aec2FV%+E#*T4?i zTI6u?cf|>|p{acUAk*~gk1gTS0hVJkr{zko7J;ash-Wb2;qwHTj0*<T4RX z9Xlgv_rWom99@;@MfbsxJpSOj;zk#rDb;#@uw*$=HrG3bNa*0f#r=1}!PbF`+58tu jedAx7$27k2jnCo_I$Ilmu+8pP00000NkvXXu0mjfHH~z= diff --git a/graphics/pokemon/kirlia/front.png b/graphics/pokemon/kirlia/front.png deleted file mode 100644 index c1858f76971590e650dab20b2524e36da013ecad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 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 E04=)K3;+NC diff --git a/graphics/pokemon/klinklang/front.png b/graphics/pokemon/klinklang/front.png deleted file mode 100644 index f49e126ee4215a2398c7d7e6c4775d0d3d24e1f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1034 zcmV+l1oiugP)GT~(mSu6~2M?~X@Vvf2db)HfUnz8~Mc|CaT?6PtP7 z{_fYVL+6c5S>L8DpIt;09us>C>^LlqWlYjhJu|uK~8>M1We-L+c7) z&ZZA|44{FV1jq&fdv3Jl#Pe_AKEl2MJj-egp?w9!+38(?ICEG5u8a;#=Jjj0lcY^5lyd1HQ?q1|HK84 zy=@>a%6(is&~Ft0`MfSSazUD44bUAYl>E>sf#hH&N+6?}5-{`{9&49A@Y!q@kPlD3 ze}~wlq8Bys%TUDu0dIYLcAo$G4wG;Put|URbq&v_`J4CH2iDsKFYHGl@; z=w+mV?=Y1*Ouo*v0j8(;^ym5e03+%NU&^+%CCxERV|@A(dC-s}>dc|DrDs)nG&RL) z^fa()D--=_xm>W5 z=Hss}SL`CdzK-#PbxWd7dS~zU;EQiAS09%PkM!BNeNiU8tTx9IS*;k#foO?2#&Vbi;*u#?2<{+~S_2 zYDH%4psj(-v20MQ@HX~o|8TCh-AJ3&`3^8?+u$|fu!fmW0F7;LsQkhbz?6p9g|I5R zH2-QbRLCepNKMyglT?7~c@#NKwyOr8lfMa?hPW4Gh@xXz1kiqC`;6;wYB*>c6R5_M zW>L_#XM&lCsE>;~0{vb{BFZ;h@Ot581qb|I`86)tfoNM5Av8eER}uAc1tjWuvE7hX zfz`D(RoeD-b;*$T|E4t(;3w5&CH=Ji^MLi48~%g*4N6de1#!LzP5=M^07*qoM6N<$ Ef^C88O8@`> diff --git a/graphics/pokemon/koffing/front.png b/graphics/pokemon/koffing/front.png deleted file mode 100644 index 621724a6ed01f6dcf9008ac5731fcd73048265aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657 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 Xw{jV{n@N#>00000NkvXXu0mjfoXto= diff --git a/graphics/pokemon/krookodile/front.png b/graphics/pokemon/krookodile/front.png deleted file mode 100644 index 3654e8360b16890dcc189050ea433f7c4497c3dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1152 zcmV-`1b_R9P)idrl0`J=#g+fmK*VtptQ?4^24Im4N*Ny|dSzmIEgv(E~l<-_SR9 zGB#NrLSpR)X-d-mIUho-kG{7CMK^aeSP=*w&qNl;n8Stkg0|ahqu!4ff z-nYD`pZQlgczu)tE(DREIPX)#=v^waALBngs>yjxuaOgIlo8+>ayF9?Vh=N-OA z`E_WNPr3kzfy$Qf>t6`0(c*to_KT1J>`(j9sGS61kTwLr3v6_ExzewPJhEYb@*C8x z=_pJaIZj zoTs3b9vri3v&3e4vzkF26%R+76IyjSLD#{LlZs8!~-f?A{t)v$RzeG=np|_T!`@Wj4iEVGjCr0uVVL{kw$ob~B*TmJHXx z0KG;BHMr+LLer&$<#MjiB?C1dy~uOK;XU6#uj$Hw4J6evAo7GSHVN>JIEBtSj1Dsm1ihZb3fVG0rgZXascDFCq1>%m(zfV;FYQksqG0fqC2 zuk(5*K(*Eon>i@;DgRbv;GO`jkh;kMvy|#XHbYX8?M=E=YhdQlfIrLqEC{y+=#xhw*Ub}-4}p11Yq7zYIMCDiGR=J_u_rQbEagl66Z&2CCO8sL}$ zwQiC}{3-?5hfPxepMr-OFf&Bhy)*g8_+^sKVP+`NNxjMo#PJN60u~m)qXy|5KFeo7 z{I`&g?=%o1D1zi}UO!If@F)z>ADSe-GieQk5QQe_JM=Lw#9>VDL%vTojpF!a5kPu@ zOcylxF8-8*+neXWZO?$7{S+`gj-jX07L!NC`U_w_R)^H-t;%Ww)D0-5V>i8-N;g;1 zH5>VrU24;~@F8Gqp!4~I)Av$G0W3Xvusk_ET>zGp+wZqWv(fl;@_}k7Rsh>4R}=aU z&tiZ2VLDO8JYxrEd~xPs~v5v&A?V9gG&=dJ-1>Q2Y<~zA;iL S{E7zv0000`T7U~ninSfKcT$oRO((D=wOb-_%g000A! zNkl7`)MxeW#N8#IS5+miO6Lq9>^jO19`SROFOen0*H|MxV~ z5JE`JBAXT^%^lLHW@?Vr+%cR@z+Q8gI(xOPDx$f|7;Ep|v=SqYfm@-gS( zi%OvLWjN&cVU++6heCwIi)vsxyhiBas1g`r$}r?sHE=D&coV?IH6Mn&R{^vJs!cu( zHUKy%J_H3MYXBqG3Z4QI@#7j`5)7{cm?Dq}zU;L;HoFUBI30oYSOic2tUMLN<(?1# z)*^s@{+G$S=Vb|(13>@r2$n#HzoI1*gSi3L7O(_N7*NJbCX@{T&cb`31ChyJ+3%SI zu;?J5Lz;1qxWFT;oHOXVX`22jC+e5%nK6{>gt+WD)$3=b0N({^F=F1wFj=}>H|&VC z;@FSOh;)~onEB;gtu(zjGNhDN2ZI)!n8&}}{+`|hpcm&!@{=oVKkD-Hyp!Yf_V#vJ zhqFY8ulfvptHZ6XN@}JWDC)^VfFA+)(vHC%Jl6s#S`-3_82M7RFod+BXI`8ufg4O# zIGhQPd={(# zR5-(J1%BpVTEu860n#4j7Kf^Sa-e`r9{#NcWKcEd`du-?eJz6?C)uap{khr<^$f3> zimM_hEaW!`(9&Kxyc>D1lW`6l9<}Z4pZO1Cb%$fPUu6V|EV~nU8zy;CKZ#H>s(q-&B*rr8>iT>>pDLpjVSIqM zYX6fNwbfizNBFdhQNOWzfj73_VR~Yqgr{dR73lQxj}=jWtG`ep2Xt32v$v}pxuHEM zfUz2G8Ca(21os)PVDi6_6@Z6tB&=ey`)f`a`;DH%)$|mFoSg>>`c~p1-^GFeFOYZp>9H-q+6V+N02*jCHx^PulAu=!FDpIv+RM zRRE#XcASq$W5a=Lp#B!2m30(pZ@9d$(O>@oJ`wRxnD;k~00000NkvXXu0mjfGezgp diff --git a/graphics/pokemon/kyurem/black/front.png b/graphics/pokemon/kyurem/black/front.png deleted file mode 100644 index 45b31238fde4f2c76b7a94a90ce637033bae15a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228 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 DbM}%5 diff --git a/graphics/pokemon/lampent/front.png b/graphics/pokemon/lampent/front.png deleted file mode 100644 index 2d249ae93ec961349e0c569d9ec10e56514ecc4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 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 JPDHLkV1n55R!sl^ diff --git a/graphics/pokemon/larvesta/front.png b/graphics/pokemon/larvesta/front.png deleted file mode 100644 index b2e83baacfcf46ea64be0fcf5c3702c0ee668709..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^21SyDdg1O)UI@_WS`D8=wvv2MDaFUm$f`VA6Vix#rcnJ!+ z&iFl;?o%71;cIY+Y#rk}ch%d~hCQ-F75RSA<>yF+D|=`=p^5^-7a2h6o;@0kgTjWy zF2BULWrX&fsWWyaKLuGGlmLo&P86g`VL?Dj?vs$yg+WM7QFfj2B(Mo-i?Oajy2Q~B zr_Nh&Q*;x}W{D7TVmLGWu7@~{Vbpu1HtWoDojC{74soDo^;{<{E_mlzav!2g^(8ze fvXe{cI{!Xj!n3hw>Qzv100000NkvXXu0mjf-MZ%# diff --git a/graphics/pokemon/larvitar/front.png b/graphics/pokemon/larvitar/front.png deleted file mode 100644 index 1974d284314bd45bad1a0d274be972a18982eda0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhDOP)+QW&)Map%h(EV++e*&~EJ2B@t0{3&fb;5kZw z`X`EKso>-`5!M>LQZcB&EsGs0jQU`S{aj)$2SngOj_2{`*qQEy&e w`C*jp7mM6m)KCN#>TOrm`L5~-?s0AW0mQgRWfa$iiU0rr07*qoM6N<$g3oWfumAu6 diff --git a/graphics/pokemon/latias/front.png b/graphics/pokemon/latias/front.png deleted file mode 100644 index cb84e81c036c18199f12d3eb8d040f117ca5fa8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 752 zcmVKlfQ4%KorLvS+X+XCPH0v%|JIRXG{iu zD9KBAKu8%FDvZviY^2Ir9wO0`>{CZnfz-J|mDQ1z36K!~2pcPG<(+@DjxT{f0N!9r z_dfc3-#sUW@xN--y73oa%fW|j{~55!&gO)kjs4N)oK~0E1Yoie=#nX5-_aU=@v=BS zL_kkqqIkb}7iVVxn!u99k@aRb%Q6^gf}j*UCy=p&Gi}5qDo1$MhxZ@8X@Hf=BEotF zrxzc;Xfp;f@%D4z@HBgQ?{jlTE0R)_m(11x?LbQ3xdPae<}JghoIr)eCjgB_Tf7Ru zVkdjF0kngfz%VJiRf<|hSQlU^L0w_-^P1qAxH<~rRRNZ(fa+_sH380%EAk&DqfLS3 zR0>6eJXsZ3EOh)z0rpKE9h|QSLLLiIDaPZGEmg5vI^{gW&z1xIKESpDR_~a`GGTsU z0GMikL5FxGDgzQpJtB`87QmSFY<$gR*jSSyUUvZqc|>fb&;TU5F7|tb^bwpT8eo|2 zfFLj?WCVNKqE+4Ax^+Z)Kzb8^P*NQ*AEwa}v8SYied*~6^YQX$)Q8U4RS`{qv3-Ls ze{cq)fvX}sf3?peVZ;69cgetY8Iyw1`V{#0=hE#wke8Brp-^jOSl2+nc_gW0UjCvy zmJ0CDa*VNMZFi(l#-Ya%z_lkH3y(Qpl!LTB?a+K^^J^&(J`GdMotGD+<(4oIj5L zgc}mu?@!P3yyy31gvKjZK#SKs0W6^MIrfuLQ|n6=UdvRU{0~T#SX!$s7Zw7Q``c=v zh|_`HogJ(ev6cqNpFZqhyZ{({aer*9YpFoy^Bd}Npp^zFuc*IQ#HqkDWy5v+1wc`u z)EXJzZRxP0Cu87*Gqf36v!W?j;!X0wA;x*@5f(lUpGX0hobkAtb>z5*I=VeQ$;f z36`?{XlCGz6V4Nnxq|S$uww#0ZP@MbO2!iEWzq zL>#AMoluVhx(U;e*6+g!aNI$*4?3GDBAGLZbt(8K$5uz?1APn~Xj@YNjpH())mr6% zWVg*WvQT76x`Z+>#l)L!DdD@opGlS&mZb7{75~0VFCzZwwQd*HnMG9nAIE}Pw%}mj QLjV8(07*qoM6N<$f(zxF>;M1& diff --git a/graphics/pokemon/leafeon/front.png b/graphics/pokemon/leafeon/front.png deleted file mode 100644 index 7ea19f1b55a0fe58620711f430e802ace9f7babb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)D{FgPd}U{FAasCekmn9#6rfM`ItkYMQe_&_*7+^EN)0007P zNklf#glL<0MF_6%44~7Wpn7bez1PNin`~iQ3)sxH2W;-6drcTrQK3(-zRkHx+@!#P% z_Sw1^D;}+W+7b2APi`Mz3E`g!a8VaQ@q*_8u=dG;(b=#2CBXG;V6JfTLo`NXgSE+D$Sp>C+{k?)fFa;+HUJKnta=CIW_>BNlvH*qI-zz%pWB zb8iF~CqO!d6s^wG#>Hq0u_1B3N?l4sUYulWb8>$z-9pK6e4d1s2C4;sZHD_j)xt5v z#Rq||NjZwMV{vCXeTR7U&3Na&O{O(a92DH{JW^cNj^c%oDv(1W%D|^yPu9|%x1A?+ zlM)~nEdWFZ>V2)JvhCR^x=9wWT1o)xUzLuPg}E;caL7QP4wWnuvidQOH%rN#)$_C3+JIk`q zE9!fDu$%+OWMj*u!-ecvFJ$+g32>8qVJ5(`Ek9qz?!E!=xV(NA0L?nqG?178){?3E zaPT8J2n@tfvaWWbwInkE!^xWZ)@50C%^3__Nu1riE=>HAga6&EaW0a&PXm2yDB+;9 zCjwyEjLGE7=X#NB)@1To^fZhDm@osc4ntb?jTsX#v>58@%=jJvOi$@N{vCe-CS$}6 T4D;W+00000NkvXXu0mjfRcKS= diff --git a/graphics/pokemon/leavanny/front.png b/graphics/pokemon/leavanny/front.png deleted file mode 100644 index fe45f277dbfdaea2307aa89bf95b3f24e6b6b686..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)a7ZYaPyhe`?1t)w0006i zNklnW#cd9ul0@AmD&DhYrMs z2WO*mn_vRq0XP6Gcprm}0o#mB`g991yHFa7pcycB>G^q^nXIJ)wYc zARU%vDXF~_4*2ru0l|jaD^V{$Z@}Xe|AL4-k9wU_mgQZvq*B!7bg-89rOYIeLNs87 zmnzESjQK-%VB5D*7M#DOMgC-4cyo)>cs$Lj$)ok1D?%ACW8}qs;ffF}H;IR}n=K0F zz^*t2SLC-#Ca`PA`@qRQknDTn_k#c5{y*gIygRw9Z@K^g002ovPDHLk FV1l0gHG=>E diff --git a/graphics/pokemon/ledian/front.png b/graphics/pokemon/ledian/front.png deleted file mode 100644 index cf066921cb6d1d2b0182c28a8aaba57fd342482f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmV<80v-K{P)Px#Fi=cXMVQc_5D*YjQc}e^TK|KCb084^NH_U3cd z)zwf?P)YD(7XSbPU`a$lR9J=Wm(g*l5k454GH%2t(wj>jXB2x zB;($0fAOn9bP*4i1QZ5-Jr^4J6S)8nkGp=!77cFABEAE=b!3MdCF9)3&*QH$j!4}<;bSp}@iKH=?=PWOA!J9fUgjZ92;`}~{_cMlzX2%2t%tx2(K;W-Y0 zXP`MecuWF2@utAaO%3#epl3HTknMG*aS3!0$OS#SR{|}hFbet>5NVOqTyRt(4O6In zS3NsSaJC3uum!iF>H^e_u)TD3L7qO}ykLWEH#*V#S=W$MZTwV#k#dysLx7JgR^`T* ziNFq15$f+&ZXoLgFY*`sO^&medN=C>`8ZuEcs0%iY>!hpUKDjV*uJx@6rUdv!WJ-m zzUcC&VcJHc0EYhr(+(b^4Px#Fi=cXMVQc_5D*YrQc`Lu7_>n#_F5SKoFLWB&Hw-ZtfZvXw0r;Nod5s5qglWAg9cmUJ z;vbKP_g>r-K)mXW;Qf69^RBM|@9yeDl-7X682Kh4MNZ9vn3&_eEGCW=q&5$Ij6{*- z1|lK5Zvcg$09ZMU06<4L0D2gL0Y(WJ`Dnm8iCmA_suAf%QyGjOmNsR_J@t9lTg&Jg%oTj(PYK_fV7dK6Bj zUgowC255p+b}{^alk59iXYT6QDIye62Tx z0-k38m`EdEXGu@rLb4j*d2T`UU|a-2HyN}|$Jqe;CbIp8_wP~d>1z^r+go_o3VZEo z?6p7vmqDPSd-w@37gD$e=nckLSdCI6mNMaThR`2Zo&01&7P7~E6DcK&imswq z26uHS2%{Ug66#-IUx-t2ji46FXpHpz=rmDToYQlFPe--{iem_d4Rw^o)k13(Fh)QF zyBFu-Kn?vEoe016w&EDlpbdYytxFs^&0Xq;|9^k$TmP;80k=38>Gs3DR{#J207*qo IM6N<$g2$pG{{R30 diff --git a/graphics/pokemon/lickilicky/front.png b/graphics/pokemon/lickilicky/front.png deleted file mode 100644 index e9905f1a650d7b7ace29c108b50a1aed8068ad69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmV8l26vuHTqb!wrDRiqUPHcB;2CQa_ggJq!s93(VsxlNrd4N{vF3AIs zy_L+)5Whm_Y;^3FEtwhe0`%N#j6X29s?;MPA^(3qAAjFtS1SKG4E9W`KRL$sdmV7x za`9YOpw&V|O^Q0{%+de>-Cy^*hXF=_V`%`B0Bq>SkTvjJLl~{U5YNd63j1IJOJz80 zMdPbfEj;9=Vaq1H8U4yr7;%1nutvQ*osMIuyat~yZWhyt?4k@XKZc8&Fbsc8ywVKj zJl4ZycU%S>C3+ahIrpqe_3yHU{W0fZ80(?30*b&_AH?O#-#$*3 z(W~U_b+qJy;!@e*TiDG5X!D>a0in)y8}l_LWQ~KT3Yg*c)MbGxjXptfngSHLIjS`X z@LNZSmJog!P%#?vTF=Fvc)LAx`9b5Yr058@J1zr)q_l9c&8#w@^AM+S6EuJ7CfL8H zi}#pD4xp9kuU%ZPH2|q=J_)j`kFqJA$6qnN<5J;@OZnSw_rnCR(g8eb&t@#WpTa+R zl!$6V>M$w*=Bv#H;0<-5WJ=I1EZ~4`R6Hsj2DMr)f$ZYN=wzo;2TpN=eR7r$ApySZ zZMa-~yUIDEX1&aF%1)|YEIwfQi}Y>&uK_g~`= Xky|?S4)R9800000NkvXXu0mjfL>^U6 diff --git a/graphics/pokemon/lickitung/front.png b/graphics/pokemon/lickitung/front.png deleted file mode 100644 index 6a7177e793ccb251f5b040f67439a0c1137b5a4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmV+u1MK{XP)20007> zNkll&X5XTLjoGC9hm9j)&w@R{9vd@)ZU;y9H4jE9Dp?j4N(4}+h<#j-U zILlMMK+^ULfb#_i-ontuJ0GKW&jxHrvUREYWS)@!KmK>`?s$grfBl736Z^E+ou_m_ z>@|(L3(Y5WCSDJ~e^h^Q@rjB4vGoM-G6%5LhDT%6VgmYCh_;Miw5T+WXRryt5XNE)Xg3bfwiyY1M1U*QCEEb@Dluh z01DUJuQ&vK&&Hl|oY)USf`R~hl_U{drAT)iutVrT7zS9fsMD`Rhh^s!Tp%C-2+9@~ zfCrZjd1!zhT0yCv^u`CJek7AqmSWy4D8(@8g}R>pOpTpc2+K;Q2Y=l>oEQ zZ{cJGP>fO%({!HezGThKw@ngzcjSdnv2HD$BwkykuHGWd!&ofY;5yq>tr%A*g_nR+w!~4wQ`4;YGh~!F*4{ctS5HoqC5W5 z65>>Ur8an0XBYTl&H6vq$Ck-AvwVWh0KiG(uR&j@*=i7T3cAw!XxEdvbQ8mBrjWb4A% z7zw?BEpx|C{SZ|a!oYXwz4PI6woAvH5a4^i_y50pcRt2maqzeQ0lFbS4p;z33C_C! z|8{9{kOI7;9-1(j9dbE_1jky_Ac8Om{6eA?4pls^#ATVjl5l~501g2Ql)I&YIPd~c zSXn}$%6#&0!G#F=t^sH{0$QNPBr=+y0jmT)-WoMp+QO1GD4;(x9Lgem0y4<@69Vi5 zMlZvc-zV7sCbR39y;&TJv}u7>M}D2apg+604L>ZFh6yDrO}VR+&%drYE-wtg>XdG9 z^Yrr*rY|^b1iH|l{+O=Q1)eo4yoVW15%DoK;>_RcT}@;Z?}Bb=(Bhm~!CrvbUs2#r z@Nzd>Ea<+^EM27{ZL$(naP#(o|wK>MtFy@FABss`q7UVf3nAZTr zEJ;*qLZ8GuKXPnQP8Q;Fr5<+5(BW;^E@IznS=^80o>+M zQpn35(7)VV#ucu*iAtYi7AYYU7$bH`oVEoYsgw#}3kAdialLz%TD4A%gaj}aV)xAX zC9Sgp*b+#RSnTMiUp8z88xt^+aeCbd;FVUMUC70cnF4r9w@U@^+o1a|-+7+${qtU@kymXp$lYgA^#(C1xUVfaL;F0tZMU zLcOd!TN4QlH(2hHH|!R{c$_}Ut1RB<|NrOrK*;|&AIgdz{}`{ys;~PXEFh>5oyH5{ zg+f$|fEc3F6F{>7AdGns+TT5Z=+c5>0O~>YB)|#`0{a%V9uyjdM~DG@;v?Wgfj`npircb{Jr>5G_ESjaJ> zT7BX%x@w>-3FK0p*jf!pONAs#YLWgJc?q*Mmd>IP)KmE6aY}1g@qwUAfW}5ViML0t_y4gPuZyC>{Nd!ONkYp5xpL6UmJNs^iTt&`A%MzTwYtRo&0=KokJR z6)Y80N#&J@60!wC!bMeWaBop(pj5$^+h~uw3#hS$^SFEwub_i9DS9Z6E0rQP<6IEc zt@9fGgp1{JhYKQC1OUdx%H>CHJVv$mwNf5e@kNExhe%{d>F+GGW&xBJ>O^EuZcg!qBpZ$f-Bc4l|xpIeuv32FKgSfn3=9%OEI zXS3N~(HjH-X%pxojTh>>v)iobjZhF+A0R$1s7f6rCDF4TXFcRflGi-!_GoI)@IEd>#dM`8057G$Spqn%Iz*gH!ALH6g$ z2=0<4m|wgAwqZ2=;8a|OmMmqo{0YwJ1F+YE;R+ZBYOo4aq>nWKtWJK^S_SjpRC~3R zQSx|?OW>b;oxqbnz6awa*z^I9I;&uk_8k|1>D2M=fk!6}34jv-(PXa8vsLC?fF>mO!p0^S_DS|9)b N002ovPDHLkV1lHVi`oDH diff --git a/graphics/pokemon/lillipup/front.png b/graphics/pokemon/lillipup/front.png deleted file mode 100644 index 50bf52ed1565cda9f666ddde029c283ffde1ea77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)y zJOBd=6ALRt#WS$*0+o0I+!i)p8IcgbE|Wj|w;eO~ufHg#`U4>3Pk{O^;b_u9MPDTx zp<)VizLj8>XkfchK=IA5cu$PXoKGf`xM1RRkkHQ25eU;|_h z2o#WJf@*;knMB~kKv4)y5jk)$h$IFwa*7II9G`(ikv&u}JX3lYkUgNs9I302j58;_ zoaO@v3&2)xF97aM$~_A(dcB6-=O;)IpqR#J`~o`Kl09z|K@f)56xoKt4tEMt8W?|^XfL>+ zJTmsCpy7N=D8ULB(XGv%*WfgfknG<8zXA!AA}Q15PcgG+gMC1#L7wJL^StxE`z6G- zw)J0Et+5LLf5A=slf>i4T4#vx;CJH#fVTFPVgJ;w@WSpI$-bLO$u+%oCRbNcjzc6Azlt2^D%#9j&3q+9srygQA^wD zqcL;|C6>sM=UA6+2;eBb$@YgYOFSEkHKO?x#?WcjTWz|4lWkwb{E9d0?Mb$uF zIx)Liz79H|DyJ5i+&ufWziu-7c6J*lg}a?^>tCqvJD{Pgr3=Dq00000NkvXXu0mjf Dd!iT& diff --git a/graphics/pokemon/litleo/front.png b/graphics/pokemon/litleo/front.png deleted file mode 100644 index c34e0b74b2162d0e9df126965363034cb17bccfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_cmM!kNGRY?KU5sKsYEc z0000W7#Q&Q@c8)f`1tq$000000MZ&pB>(^b32;bRa{vGi!vFvd!vV){sAK>D0h&of zK~zY`?bFRl!$1%R@G-acB=iMpNd%8!p$||tNUy<_TD&Rv0HPCnu5?;2K`80=U1PHJkMHeXt&!FnXKHk{UgSjyf>Di}m| zE_VXXSt?S9V%ZCUbJ0p6;hVN^g-gs@;x08Z^MVP!wuBI7f-HBzToSGsbYn?lVnGx1gCXMM1G4Y~m@{}r69&FcH7XuzQ#`2>BG*)JpIlw9uuwPL zIJcXN&2oaHEvvi)NL-L?HWQrbZB=O7`O*P9o?*KCTF}&w+y6S_w%lHV)*j4F*MxJy!N)deo0K6*>uP|Ff6MX>m+|(C@x_SX` z7Gz>hv<8?XE2#8?>ZcwAjpKnMg#aDDh%m5X#5;oz!@l@9|0qo}8gV~9uR+sTG~hYSQMQPOfooT6QGt7OfYr()6yo3$DRSxR?Pfw zcEoze)FXQztWbSw+#>0%ufeb8tao5tx~8;b;$!jLt&%ggi7eu%^NnA)_m+Z1$p0RZ j>k}V;xBc??{hqqK*6`-F1xNpE2ZffWtDnm{r-UW|>G7b{ diff --git a/graphics/pokemon/lombre/front.png b/graphics/pokemon/lombre/front.png deleted file mode 100644 index 022c1c0081be6a20ac525d8c0ab603d1bfd9c8be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmV-w0+s!VP)Px#Fi=cXMfku7K~f+9003%>Ig6}0tkq)w|Nn!FoJy2pd%c{LF+t5iV*hiLtlqQ$ z0000000}5Lp#T5@=t)FDR9J=WmC=rcAPhve11O;W|L^X!MK8PAT;V4B<~$fpm_sSG z{rYDJ*$4bqb5;SDUeOEz8sU}07`k8v{3M(RRfzprhWtMeoqyc!2=oNO zoSk>Ete!#Z3P8^DfKtl3ELfIxl@9=GsZ|MNkR`JxAYt40S`YV^AkzTs)J6nFz_h;s zwym0fJ^&+Zng)tBFq=aoxZC#U^AiGcDLIQcXPS_6u{w&OWCcu~B4_hx8z|+-Jj5{* zLoRxIz@ZH(>Q%xX!~VmU!y1|b*wZEmr=RnsbwnNn$1uU-x24gWsO7 zLDPTwQ))9&ufqVhS7FuD%0{%Kw!Wfyz;Rzs`~&J$b~Z}fU=0of6^Zu$=oR>Ek&6&; zU(*Z#EduPdp9M-g0dEMXL}U-3GMfEt=038WQ0qGaa{!MLb;o}0rU6s~kh;Ak=;jXK z>uVud1oHRdbGt2uKNe^(J1jTTL*{~dM4#CoJ^F8b13f(xiX)AwMF0Q*07*qoM6N<$ Eg5z)png9R* diff --git a/graphics/pokemon/lopunny/front.png b/graphics/pokemon/lopunny/front.png deleted file mode 100644 index 44e188d0fd9cfa3fdbc5f559bb936fa4f7444214..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 zcmV+q1MvKbP)gS?000009 za7bBm000ie000ie0hKEb8vprurOE=U}(Q;AWJ@B*bsDB>A7Bk@+u+ATQg+8kj{(e9W3|95vh zLi}IV`5Um~2s^NxHoy*Lc-jVpGM0%Wy4&UmFqK&*rPBqojRmtHg zuw&XwvI!IeL}Lgm?(b!?;0TDu5HmT?Bs&~lGGMyvnN*p4)=e%bLOd`yNclu^C8-Ad z`w|Si*8AVnF?*c6H#o%a7*Izkj5$PZ08TzI@bvL3fCy8%=P^?>%4D+mk>0=%6>WNS zhUYN&iHOR%(GvcqM+dkbp~8ij0899Ay$%B(o*C%yBlSlCM04)9n~GQqp)>Xi7^-vb*a{f00XkTp3cY>@z*QYs>6HT_%E=Mm zDuuNWEB$BhBBzHzB?nMY&0~wS{8B|_Gg(EcPzNj)r|}?KL@E`QTN=`a0u=>)nYtc2 zp7crYQ|${}l?vl)3sI)XKvhm%K%c-7p-iNQhns+PyU?>{l4l6FO9Qa9Rl=>0ZY5aD z;O7YG72Q9(dOIO?hC7;({t3y3~>=KA|s9m}`tiOeD zh0BUI^5>@qrMs#p_)`nSP?pwPu4zWtJY1rrVF;GMC8p8yHXuiu&x@9EenJd1jmc7i zmh+}LTb4z6c9f# N002ovPDHLkV1h(TQmg;~ diff --git a/graphics/pokemon/lotad/front.png b/graphics/pokemon/lotad/front.png deleted file mode 100644 index efc92a04b84328ee9c2d7fab535ca26d42bbfcf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV-3!lF{zknh*(<=U>m4dj~F;C?GhZIPcdoC z3hWzGLNaIqQKE=)8vp?yLF^71z+SQp@FNefTiE`rp|(L&2T<&#{2?l^OHClUWk1g} z0|cpanhd15y)113K=(e96R|)d7t7 zL4>C+z=YOC!9Mhy2|VOLXPE^QfHA%fV)nurpl7TuJpT6Ules=JOL>8}+2hUo(g$CL zov-S1KCk`Kmq3W;s+vw881U6w!Trbd&PKfSCa4MC!ot9~4G^LnUoFmrH{wcL=ZiIN iP5cV1`8jO#-}Mb2ByHwvRxrf?0000{ diff --git a/graphics/pokemon/loudred/front.png b/graphics/pokemon/loudred/front.png deleted file mode 100644 index 29c1e1bafdcb6dd11ff83c5bab146d50b1dba71e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 937 zcmV;a16KTrP)riEA?-|>{24$+$6NB&W_wL`jhobx+*#cOz0X%#3XBgAd ze#Ul-kwSi!uO(xWi8-;7!+NYmXAn!#p)FGIAeRIRWMg5DOb$i2p2)Gq>_dSiC!!C# z$Hf0Z zbss~Na-~9n?2+6_KywYQF9DUaTm>gLZ)QHp?cK=t8x&hZFhW4jI#8Rm1~+u2*q#oL z+70q(fMy6dV4$+y8jKbs_ag$_003A5niIro_BwMhpD(bFV+oiXz+M7XbOT^6f)M@o z*tKg)nR8gSsg{YYDQ|y?g*Z8#cmK3U6uh40To32as1TsJ?K!3Jx&p@|nVvQznxrdr z(`|ReeaE{$Tuh{auK==M0JGgWL0r%;0-%-v;79@(0a@C?c(KeF=!g>u=m_x?q}V}< zNoOHE&l56&j&*>Q%|sW__B(S=%Bf6IQ!%mG8Y=e9{Osb~JG<}#V0|as)8mUk&Nl<< zg9JS9?9+ok(#>_C*}D^3e{p7;E2mBF;K2TC0&G?<)A|-n}FcLX#P4b?|Qura*`M8 z@;%7UbPbAYSy6K?Y-n@2G=W)@wb*H(Wr7=;iKS?%8npg5V`pI0Qo&Y$D;tNs@RSQC z>;CB8CnufKj>@rr4e1EqDj@xL;vcp!K13DKT9{qN;3l>;^{69q-O00000 LNkvXXu0mjfKKtTBT_~77}NI)R4uwbAtFaQ7mmLv}c0006i zNkl=u>=4*fl_Rk9A(w0fDRsxbEovz^ef!A-13fVEvP~LU=E#0XG#w#Hx(gF+VmR z&4hS}N|z8j=ZtCp5rkEp3cz4Sce6IpM6pQ&(jnK*90KugK%F308u&{ z46curLQHZ1h1Fh%4BmY~P(Btc3}A;T2?(Ap1C*A`MLY%|K)Zz)TuRdl%5yxlRS9r+ zthNK~pUT9DO99rftb21x$Hl6q|N8#%Hnu5bg}(dkB8#v}rSs(G^CF!YdqH@9BXFn*FRt3*($@YU7VqCr!QL^pb^0~KO&Q8Z|V7zm;D7+g%^k}^ao z(%jPaf~P{$3@Zm5E`i~`89Hf~yh#*lBLbMa-LPnjHvz7FX|$n%hK{-O7TTuSUAaIR zKo;iiEddF#mw%OT8dmeMdRQ`^2b$p$AmPs4*#soj$6o`U`Q~ioz^Bu21u%z7Wh%ut zGl-(uDg-Ts(yCBvei%*H(@y_K7n`x%-*rB+W_SM0^B3MqpPDM4_M`v+002ovPDHLk FV1j{ZE4=^! diff --git a/graphics/pokemon/ludicolo/front.png b/graphics/pokemon/ludicolo/front.png deleted file mode 100644 index 98ac42818610b18b2b6f8fefe79a93c2c1708be0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmV+m1oZofP)u++nqSe_ba_G?Bj>MFTfEg~ukg@St0`x@+q0SvKq*SO=<%v@rgy-lG6huIY`29AeSKD)uAt>mv zK%fq~`g@!1`U8&>pdeMDsN1^_cdl+e{f@o)VPs&VwzK;XX*Zwf0B5q|- zECY?g%qjig62mHI)4oB@vkN2uv_~l$xgL2^meb^rm@Kd#G}1owk%;%dTqGwqbD4w2ge@O=|{<ct<+9tuLI zByA@Xgx=i-0qjIC?~R0JhbQfn5Hy+G!rn99d1q-_Ee`L>VH>c}f`?GU#~o1}f)wjG`3l0eLA*x~mFuWZ}5w<2B4!}Dc? ztph^R0NW0>t?*O?&H?ap@CY#WG45l8M1dacyP0F0;zc-EEJ5Y_PH7EN9)@>s6+j)j z05ovI=9L6gI*|^&fs~b-x#OF;Cv{=#1ckKt+41@4)I4}efEq?&uDz_8bHD^MO_m75 zs^UP4iy<3vFJB_m4y^J9j(Y_>Bk8aFs8X*Z{@KAVO%Cwmh@H9%c*-;ufWI~mgayyx zak0kXb1ihp=KZ)wVX;HGz4CV>0rzEjKr7^7k_qY0=s(v`z!-O|j9LHy002ovPDHLk FV1iF5@#+8o diff --git a/graphics/pokemon/lugia/front.png b/graphics/pokemon/lugia/front.png deleted file mode 100644 index 124a6f626ee8360b526d14ebabfc2a68b3567a28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 946 zcmV;j15NyiP)tZ*?(H-paz~0eW1prNQe=mfTC;=YuI)E#Hb_ft2 zl%7c-fGZT#$_>%SGy`lO)M{Nsv&iFG2EbYF1IaAH1wi)z#WCzMHgXo>e^( z5wy4Dyp3`R07{9*JOThB`1vNYPeX{=kXyHah!EztL;*nKVT@*x_;UsT?m=f>F&%^Q zA-^nu1YuJMl+DAeJd(s9o&ngE0y*Faz`U4yj3tqX5WD9fpaOFvfibjU2eV{EDH}(q z0d;6m9kuu(dn8|d1b}}^TzC*d<|LjC_0UlWAtgXBzX`yGnUCFbc{X|pTmx`12LKM< z=b;c#8<7CALEtX{%#)aAkNxyq7|iBSCr$|@C-L^xG8G1=^P~b?Q~PB+hA!JCJ#T{x)DbuIk>er^lZKaJMLDuw6s-=`j_g1n$L@NmT)1$NeQT<7cQpZ-!)510cpqNOu1| zuOA*BhHw=~?MDmC4c)Js%?1>f(1-4z{iUzo0yKX2PG5XC7Dne9Tg*Mx~EWVXM6-LpDJ5arcYl?%EB0V1Jmr*`d-?){{_ z6ZMyr+c|^>$@jy1@5mE{c;{=m=$_Paw!Yc5Ptw4`D+kL@o9&_l%-*d_4Vw*|+PCPT zx_0Yl0Kop$1*FChl2Nj#E+&A+5_TtX5l~11liYHRBM*s)&ucm%LO=x$wH^&TuxIuWRi0nm-ZGy?b80W3fkP6YW-V=)MjhXX{%4zL2`F%225 z9RQt;GQy=R)$gya9bPc$VG=C(bJt=wZ0XLexv2J=e{rKg35I_>DqWa-< z|K>?Z!`?|8S7%7oHy^m-03{SJas3*lU(o};Y=J!r>Q+@o`@rp%B_PF`meGY<7q_(i zWtHubh*y)&0tYyj3Geksv-cbVKH)#VEpP_!J`n+(FnoWrKnR|IkXr(N(zF-NY0m)J zfl@XAY55Lx78wIsf*N4w3kY#X7CF*SgHbbeA^B2!1bk977juA!3}Bf*#Uk_v(n>@* znj&tr{E2G_EEJ~;E&)O+(_EeIS2X~s$(|dD*$h0l8GPo4)qGuqsrN}bfT7)b{s$1i ka`qI4^+BvI#C!MaFDXjCa?rzK^#A|>07*qoM6N<$f?k*w`v3p{ diff --git a/graphics/pokemon/lunatone/front.png b/graphics/pokemon/lunatone/front.png deleted file mode 100644 index 279f1578d141d168444aee9d4a1009b9799e2341..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P)mLi5VkfE%- zAp=-c6~PuQV3KCG68_(g`ppmt9xJrg6(bllLnK((SW4*$V+4%)_l*oz%OE8BeE?+| zz_Q5Q3;F^k#uyF?28TfJ8GkQQSi|u=XlMczRr(4PRC=Zee+7O7z*?=H0pw26IRaqI zGv{0fkOUw{pzHu7#?a`y1zm(pueB}Q+s5Z;1F^)3nS8eX*g7n;1;oQJ(ZapbKs?N< ziRbT|&&^W{NQNnnT>2Y$;IRdqIPV3~Kvd6LN=&h%fJlol1G!l5wyP)VntF^ra~yN5 z9>_)|W8e-L7V}twqB<$^5-~v$W z!-NeF3T7NA=rHhD@#Du2jff8qR^0f|Z~!O;0qfp69tN^*db&7*W1YBUY|l zmb6;udC~nDSEF8}A7gmKvVd2?DzRmqu2Nh}OVx{HZ3b;-S%yvC8S@R8j))#>m~nt9 z_I*BQL5;_IgEa-a)E#bnBz!w`_}ibf@DuZ{C<}djaBCua-_99xG#I`unYO>f|9tbD zL)J~H(*n9bh%(5WILLgw$-;>t^h|;yW9Q`H*+(v};(D?ljA6vq$gj53lANWfHwDH}}~U^4V8B zm#uAL)wjaZFTl6pyYSpl)jnIv0ArtI$-e*Z{_lTJXF_i4pQ^tN*m<%AxMTMF_cjBj zxe?eg&Bt2|23Biza`Q^rVBFG;sQ$G-p6I~c5A`oPjD>w65=06ydMDsGsHIzSgQ zLbI%~$AB8|%99GnCYu0qm}OPW-n3qm(adUPq^ARjD;?g>^U(v#m=G$!svXID`VnH(AyjV=5Eiwe z)&YV05>IQr~zs)%&<(yk>An=9o6&FcT*qwk7%)y*1vGOVJ=wXJGzRbX`j)8pX< z!%>AQSoYMa1qf4)mN*PXJh{M5dIqCB8=kKhUz*Rn`6nH4<>L8zy7&)`7;8=1E!E$( z{o&|)`-sGwFR$O^v2K55e0_sxDHmP94f*<{t3$1rb{lW&zttaU(a?M#i?9p;0000< KMNUMnLSTYQ<1`ci diff --git a/graphics/pokemon/luxray/front.png b/graphics/pokemon/luxray/front.png deleted file mode 100644 index 12381ea362b6c942c9f806bd753eb250e88885f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 832 zcmV-G1Hb%?uKNJwy~I8Xop00000`gJvk0008Z zNkl$Syri%HDQPU=H+B zT1Ex^0^3K}j_o0ZeyBakO)STzg`FniIOP5OfA9VEEJFU@wejQ;VCxZJW5Cz{5^?zH zRtI1oTF(y#qD`hPbStRL*)Uwd}`xpJWh(37?vdl)k=1IEQE$M0ty6}%~rrM z>LsQrVd4P|4dAsXtQ1*M0H@FZG<+v5AWI^kUQG^GlwhF)um&hgKmpqiC~RU91gz=> zbV{_(AQGig8oQ$dz`$aI0A_x!l#p2u0I3JwIwzG>5x{C65U?JYJ2zFTahou`0ssNy zoI8&Jnt&lK;HkTa0E}Bsq7>$AymP5mB{XrY)vBT_?b-ObTLKx8U{=X=J}Zg|93BmJ zmKhY)CaShVpoGI8F9Se%$_$OVL15?=u+2-KA>oRdmR}@CptL_P<})tF_62fnN-Ses~>0`Z?^UZ1Sn`*QTcYV&Jje2%s~6eslF?vdIX5fh4t^J zs1UgB1!mr4E_V@FbW>23SKLpc%n+!0fo;wp=M;faHSGbu9Am48=!fV9q#8d%VE-6@ z30a+Xa>)0UH*5a|k)xDW-6GT*JlRO{`6HpDYqIF%pjmh(u~^96HQDR{@*tSU?DQU3 z%R$vF4R=)7yAzwYmu(JyfKM?FOF?wJC0000< KMNUMnLSTZ~h-E|o diff --git a/graphics/pokemon/machamp/front.png b/graphics/pokemon/machamp/front.png deleted file mode 100644 index 205ae86402254b9862bb2201efa9ea6833b6454b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1013 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 T8JNsl00000NkvXXu0mjf;?&Yi diff --git a/graphics/pokemon/magcargo/front.png b/graphics/pokemon/magcargo/front.png deleted file mode 100644 index dda50c3f80f23a906ff1867ea641302192c4c9de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 915 zcmV;E18n?>P)|$AOK)!kT^hC5D*Y}h_J|LD5$W=plDe5fN=PLaF8GX23{Dq0009X zNklyF>l*O6vycR3WQ90G!D3>11}JeC4)g3$XtH`Qvg#BamPm*;9$TgNiTuu zpvNf!_YXBTel8xErwck9Gnb0rtZ!Af9(j z7_@s<5PxD;sOJ~0gJUbNd&Ni!eUMzF{3p_t+14qOD z;OKzf;qQ5V`Qg179RAb-RIPC`sK7DJ0) zy?99gJENOSFbRAEwFI<3y=S23L51Ax@Nk^y=cHiBFMq6R2u?N5UUqhevS zfmx*sUeX?AA-%Wd=nhbggb+f}9&gL>*Z9r`_1snkyiD0*y6{I20K!thvQqkYba%c6 zs%E+Rx$V&XmGqhDyRZUibdFoVZ+}<1IGs6Wr8D7}{TAWYTQk#Qur9Ot1L+7+D=t*i z={hyh24LurTo;?Iw&BelYvY*%jZ&=~6ts%cQg>oFQ7WmvJi+Pn5~{s?-H57AGBOgu p?@?Dq^aH8D`Px#Fi=cXMVQc_dty@f*eJa@Iq+Z@`1trzQeumXq=NuK_?Tb-0079y(Eprb|K`QG zI5@zlaIeJCeE{Quu}CD}A-A&BJOKD5hv*ZtK`u9RK{TwWyn1HcOe?cV`UCZYBX@N6F{#_RHY8_C4m0HPSc2pa&(5kTka z4M0%80ygyhaE9;+p!&Xq03fi}7eLGclv#`O4Z`&i0Mj^*#0JQj8X^o(`DjY372y$- zLja9LIoA&S%?P+ir34(T@=9oJz(9$#K<+;~hbthn0t9t9#tJ~YU;wMAwrU-!%#PlFI0AHLTT}A8xu9wtn6LSS9fyn?} zHy|AQ)&9c?KS$y`tDbKFrjL|9jg`PEvNt1eRNnv?xRovpOChRnfYOQmJJ%Rl&N;A! zid#@?LE^^*1FQ=jq2q!-=ffd>`Y$_aq^)zpPF?o^aSQ4Gs{Px#Fi=cXMVQc_#d{EYQZfJTO6I*W|Mt!QN-+=+5NaSG%@9HVi(+D8V)*#@|INL{ z#l`=NVuZ^W`v3p~6-h)vR9J=WmeIPSAPj^RC<#LC`@ikZBw%gN*7|uacezknnV%#i zz%>1Dr`tSV)P>QB;c(zbKn&qm00>Qq*HuC?K}VoHeM?RHUbLOgFVUDd;M+8@&u z3j%~0KG^#rA?KV@<~zv+z@!R-J<_q*y^%Gz2}Bb=~7*0y$nKI;8`e?SUqaYw$& zMd~U|J3vUd+vM5S;WHtQ`PaH~;U~JQj|Tydhh+f`IIv(4#AZ{=o=Md74)_v*I4p2` z2`KPHV1@Po?)7!Q*rt!2&>a@)nZhbvj-?Efd!|$6TGdy5>_({620e{{BZ{pcKr31$ z#yMDcvNnbOnJ=!NIzn259vT=y01%Z;*bnZV0)Sy}1`ID?G$Q~{l*!itD%lAZQ5d(= z8z6RoC#?}|tf>Ia-Vclm-J>(_gj~!3!GaUOUI%y{u%GCJEz@gRaNpYqSqk&PJ=g=X zrZl3E-;%-zdDx)75tZDdxCfvbk(+^7WCbSI(a%W?4PsG0w=mE=R`bh}l(riJJQIYyqnuYqD`!Dsz zmE=+`gOJ~2zb9aJY`-1gZY~gTbXP+dH-3n>PKa*25oWH-As~)ho!v>IYdV3ol#WkG zF-0%~;;mOXMRvV#{dWLE7sA*ilB=v)@A#Gyo+^K*9biu13>YT7$VO)lC-j|Q0|!7{ z9jr8t4yPx tDY%r)mh>ZlpX#BLXR_(iwfrA$e*ldFC4Z8;Yy|)S002ovPDHLkV1kl8q7wiB diff --git a/graphics/pokemon/magmortar/front.png b/graphics/pokemon/magmortar/front.png deleted file mode 100644 index 38f46e85e5c66a2a6847a8ef38c64fe2169ffc5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1087 zcmV-F1i<@=P)>#JNQYv!DvXrh6OHaYLRnKKveC&1qhQ2qler4OdgCz7m`hLGNni)m; zu=Gd&@iN;dr3d>~^*CaS5M6#sM)>^)0EDPf1Pro?-#=rmb}l5VEgu5(f)ny7baq&) zlg*$q)`E9xTLTO7Jpzw&)1W+IP=^|II1n2b7PDA82OJ?#(;S;~Zj^_NSymnZ4@~9I z21*QfvcQtA!?gn+wKW<6{F1ej3`+$JHWq9J`2iOKqD3Xl|j~oa>e-p6JlfjeIf!|(+*&|(8_r(-jbXuzh^65uqFFtWe^E|YMY2p~Yl z=E6gzT?8})>Rma8Q;gCxV+p&?DFU+}`rge`Okki90MR+2sIU_t#bnm^U@71rH*n=2 zk1Gog8vroTrXJSQvWzm=_I@#oj}{>Y2q?!A_*wQjl|Xd?G#a$FQj35aY?H0MZEqF> ziamgzMC)EuFrRy-Y4*dJ8HZ5eCuaakO$nSO0GJ@~M`U4B6xa?CSdZsYO7xKkLq`Ii zgw0At%tu+k39)8d=s^3;k+{C~vlg@&0T^JbDa1%wy^S3fzyb8{#t5v9G$E9_N|=B5H|rO`=3wm4LwEMn{Vq_)4y93R?;e7aH}odSJWvfxw6U z;($i<%CqBR(TL1gxT~4C=UH2+I-!-Q`_vcv&mCJRN65{%;$PVN;+)X)2 zEjJUZ^TvH3UvJ)h{SO~K0Ep4=@5KXss2|;j`^x`(|1ZvM=F&>e??(Ut002ovPDHLk FV1mKN@jd_m diff --git a/graphics/pokemon/magnemite/front.png b/graphics/pokemon/magnemite/front.png deleted file mode 100644 index b1e7dad9f0eb921d1b21a3205ff9e46ee6cb153c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc%zP)Px#Fi=cXMVQc_i;Iii|K`=z)ly1I5D*YKF){y(O70i{i?pP))xBDSVp7faDTA!2 zsHp${|CVNGo&W#=A4x<(R9J=Wl+kj8APhxCa&bd+`TxJ&1k_1gQ$BDU0x1o#ybApDRA;Xfa24n$K?5_{1n2}* z30{Xz^VI{n@~uJp;W30lk#ony{O)8e-Qj&n@lE?$v3Px#Fi=cXMVQc_Qc6lWF){y(N)Qkb?ic`zi;Ggt_SMzZDTA!g(9lX^O0?CzgPffB z`1q)(sMc|JKL7v%&`Cr=R9J=Wmfd!&APj{~jG#pH{ol6v0o3UnaoVf1R&&wLIPQ;~ z5Te8I7k}~Z0D#}f5ytW709l)+F$6lkeIBT`aH$7y$GK(NhwhP!Cbf@z(kJ#Zh_a#SqYg3biK;4 zR|O{!@XFh^nTZT=$Ybmf3=oQbOX?xpC6k93qnC-Ayia03L?f1>XJ2C@Q(0jvN^ zp~SLu>!^s5!L~^XIcKZ{fc`#M$QGDBtp>>Cb$lvUfLX{zZ-iSpEZ4879h5~cwR3>v zb+$ae31W1%dX19ActegX};sRXGaaT2LQU1cktPb_E@B zyP#c;8n62?ji6;k2kLV$)z@AZ zz}hsK<})Bu(TkOFI;NY@8UTF=wKXq#BT%X2bRLhzzFy~CMxpjFpUf~j0DL1}3yH>% zzgf?4f zKc1DgL>+wv@ZiPj#e=*IHvJC(qMr`Ee*Y9ONzi59eWVw`^x$pqp71;Q cU;KaZ1)St3y~H0_*hU-_~2L&5D>Vquy}ZIC@3(f$l!pWu+Zq}NN9-oKtRACAW+EgBx;=000009 za7bBm000ie000ie0hKEb8vpKlD}&cVI0O^IZAKnBGiB2RpL@Xc}q~w+{?3)tpP$<0DY(=>qSsh9`wM3HmPEJm41sAh*6XN^h zE-75RjxIh!xXbgo=lQ&I zH)K7FC(zpLk_wnFlRCzne;gATS_NRbn368Zk{V&bNxjXzPUKrfNE}duQ00?%rR_@K zbFs-qJ_6HKOKP@=D;&%Is;UvLi_ zf9C7y!6GvD8_o@&e*AD#J^csDQ2Gj{HZ^dd{e}T%4q;CMO*xiSPXh~H5U@trfQoQV zKGB2^zD2+>_ZSo5rmeH$%G|L6zW;)zqPf7mhKSzg;@Ky-rGVm(_Ylq*pZg-8NgLov z`$Z5mWb(PH=o#N@bTSq5Wr4-^=YnWU;|tUQ$I_PpUAi3t_EB5vOdliF;}?1Z4Y5Y6 zAplrg6NooOPawS}Ux;1mM!-~^bCq&|5Hf4@8=^xg9sym({1ZuVKJq27Jpw>M-m{aV zQ)9~wwptxELbM2*N!Dh2ftK80zu$FsDp$A~o&sf6mYru>LaK#be!sBAkv3{ vJF#ITdvKW;Ac3EW0jeW0Kpi95|M&U>@nV_YA55jV00000NkvXXu0mjf^=XdZ diff --git a/graphics/pokemon/makuhita/front.png b/graphics/pokemon/makuhita/front.png deleted file mode 100644 index 438ac8283e94c12a875cdaa905acba2263c3903d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{`YP)L5UrJ1=A$4HtyN>20j!6J zk5yFx$9iCe8&x%KfIus$O}hXlE&$|0$bApsm=%IR3ZNMfd!17;94GL8diYBO;vCtckJBqF zSwsidIX1Cx#WSHd>sdpT_7;UYBLL@SmSX6cS{5*R^Q871x0ozTsA2@Lfa0y!Fhb={j3EH{e8AECcxDVP%Z$9%(JQi+z~MF#rt`W z9g=3?gn)vM11l^7Gaz8gxf?!EICO0f`fdPV2L@QO1$YMFIgAXz9I$Aiyti$@`} ztnKCVz+xXbax7i}w998kQGcEQX}8%XPUy#s^Wwd*w99Wuh~8+0yei_SAFUM?R9fKU zcv5J@>usM$k1F6unlb97upE-W5PCtkJ4WF@8V`euw?S+4c)0!Wd%rB(lsDwSBPbRlD^4qVhF?$nbIa|KzlB_UCp5jYRoLXE31cIfq;&5!sD z?Hf+^z0ZB$_dVeQAvF^Iszvsvk+l3Zz7WthX4rh7umubG2T-)e%OVeudyrfVY?Gq( zAVrFcOloEF%1jaRYHl)tv?SSvv;_2M5v^cVNPcGz@8hMb{UPpn=0wDz{LU!ZG zi~{*GDU*V4v$$)%$t%;+_KFfHZ^}kV@eSFCbU~m3Ad^rkJgij+0Y*;pd9C(=B$WIC zJxr#K(|Nm0Y6q0o_Z0`QM-LOn^%q~#H7cWyRG?m?YpeC;wP!Sl_u&eZ9@(qQ-zaXc zV*HGqsS*$AXU6rF)%}kzF}F*YQTk~s3>+~F>G&XRuXmSIrOcUH-PgTHie+mC}iDdz}Zi=`9 zFcAPc(#zyaO=3i;bq3%4O`K z1Yi)(O>Q)?&>T(GKw_8^zu`c3ApVTcb!P%n!pRAFfKOTjU?w0Xu5&_;P4}+EIMKZ) zAivOze-g$!@pgSb4-%Q+i(2=X7@=tBOUD6VWZmX{cjM4ZW-}b1* B#AE;f diff --git a/graphics/pokemon/mamoswine/front.png b/graphics/pokemon/mamoswine/front.png deleted file mode 100644 index 2b7945603019e5b461fffe52296d18ffcc83d93b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036 zcmV+n1oQieP)`Xayc<`O>m04 zl?VYB4kpic%U)$+VMu)(k!u}-E5j;GE|nX>x{}Vi7>}LUg}{X?r(O`j^%+cRA4ts= z5p2FUD_MU|b{X=7mYI3K`Mx)^GwV42!}vr9@zJ!al&WlhFpsnZv-ttS=GW+^P@A8w z1Zq{zBS5UoV=nRs`$Vo7UanROU*W{s$5#g720{S(?^1*G2&iGD?R#juh%PfpKL~cF#1UR;I4WsgGE@*fDQu@HDC6F;Pw-t}V)*TVqU4_`dLbDSHGxcJLqKktx{lS;F&0u}6_%2VqTTK!w*Jyz7;U zF`V(1ft;(@vS7?<%{mnAjM+yd$0tm53N=L6ZmI=l_qU8!<)VLj_po-tY|*cHqB6VQ zz6;=X(Rp)|C=i;5##s*Rr!xn1E&&T-;bnnEv5(FF&*NXq2%URKdydJ00053 zNkl~4M8VJFT@#A#0@FAm@xYVAT_M$S8#Lk za~Kytk?++A*V3|Uc#h^ zS5B7`jL4JL+RSA}^qHQK$CLA7fKEo~5P>!eeVeZm4e-Rrl(yIhTGuxkm~@A%XZum6 z#TBcD!2Cf2Pp?bT^8vCz1BBfQx+yT&kPz|!4oT3LG{Y*~kbV(R^Dc%i)^K;l974g( z^#Fj~<1#Cs(PvUept%n?Nc^ae=rmU&0;E3p@#pwC`7ZdNEjjQyQfhyi2W&6B?7Zvu z3w$I39bxfC7;$8QuMstuix1i?u~VH~e&*w6-|*q(|j00000NkvXXu0mjfkhk&B diff --git a/graphics/pokemon/mandibuzz/front.png b/graphics/pokemon/mandibuzz/front.png deleted file mode 100644 index acd99e1e3042c7f33eaf590aebbd31ca2d33204c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 zcmV-h1El%o2>1#6Di@>Pk9qfTL8_H{txRa z-vtzrM^TGMCr0_ohiKXibY^oYdlK$o)c|zV{VYi=Iq3y=S=OLGaA$v!jO6tMfYEw} zhhm_q3M?6XPoLnhsuu(2{2=`u;4IQKrT2}1lRgDFi_4TPt10LPNPEHU^(A`n`z8QA zmO&6)q6OFA0-QzwJ-WdJi(FQKb&Vyk4+pz}S%P}{%(shp0eJB?#yq9!HK5cBu)hYD zf7olF!};OE21x!Ezyh`a4IKKCAxV<-IZ2q>0?IB+8%Wl{RJ`2<<#E|XxYlPiAOlwD z{S5#$V3nZ@^dp!jSjGZWr3TH;GJt6mF-TOhn6ID?^>K9`Tn1x!bqMCz7P|iar zWemG^aiAyxPENom5**jIGEx0}8pgvxAsU7|r~(XuoEgKxu^61Y$6~K)!IV7>m2t{& zoeI|wW(6RM*%?!Ys|>-6&mfK}E1Q6d@eCPE?FqIgbi=JyNmLQ=sABgq7CLdOMbg8P z=zRsZ=NY)aiO71cI)2(U5{Wr0e-| zq>aZuG%Pvl=o*z)SL$8gm-Sg`M8|i@Hr&dMNS8JeFIBjZ<4AJ^ z9U@Jdz(9apBUPFdMyi}4v(%6IXA;SF!u$B%?9S}UF#ciLHM%*d0s6IoSDj(XdSFxw zbSw0|zV!U6GRFi|mPr6q0eeF!{i-tSfnyE8%Rv8_YLoyk7SSJPfN5Sg`IIGQ7?KLelb{0j6>pdmCNsfZHrEmJ(b6(AWUhESq6UdGhL;0H1HG z++Sug`f`Y$A3vmkHm3LCO7HLvmp2r#227*9nx_N2^Shrv6ao4mT*GMEQH;+S430>S z-9w?bY5E2WY&OG`MMEhyMR6jufeBqEZKl#iTwR8@7~Lo5#MXeN5GOmpiWU)~26~2Q zK-ZCWIK#9B;~eo50gf#k*LURU411Vu7;l~FO^iS^dmvBI9i$?Xz3NuL$=MW|B9H@D zc5)pjfGm8(X>&+`%p2&_z5)LYB09-*RGRI)a}vB=#3 zrZ#JZ_Zkp|3((#HP6FhwkhOI{Y-*rz$HI+1!^FWWBrv{4XcrE6UdbI~s*?cG^b&#q zMz)nlI7Va=x6V(Kp3I{{2rgPmT{m8zbJ9EMf!YE%C%`aWzQCToDSt5QHsjCO2WS_@Ytk5vLFyVsdeXW|k-yk8K|fR3$! zl8AmVY6LEfsQyr`iU7S4o=<(IVVqLeixH-x*IW<6ggq_Gjv-PHaP-j|af2N^J@SHX zeSLg*w~Qa4ON~7!>iRR@`lAqh`cb0mnKIt~`u&}kikn5&Un*oxu)6>6|5$$klcD5X TjNVxr00000NkvXXu0mjf0FGce diff --git a/graphics/pokemon/mankey/front.png b/graphics/pokemon/mankey/front.png deleted file mode 100644 index 576a813eb7e2c2f7ed78d70077a1e7230d531b72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)Px#Fi=cXMVQc_b3p*!q;n7u5XEy!_TIGBtep7x`1p8ev_UcMb7JmuV(zqy_`s<6 z=-_BbFfjv#bpQYX>PbXFR9J=WmfLcqFbqU#T2|Ie{{MR;$u^j5VVs$~Y!!N#npEhc zyO?Ep?6Jpw+W@?$U)S{=gzL@tvR*@gszRkK$&hH~*Ws$h}QDD4fOE{TGl8!xwpf;gk2J15zXT_{qel-66JcO*{XHY%Mroiwcy|= zSP3IVJJXIbt){q-r-#Oe%{-bL*cbamBxSU|a2V=|_J%obd}0~p(A5KZVYSNL%J{p% z%2GxVWw{1=e?#_H%jzl7MN;=uIT%MJfFR0GuwdE&ji-V z`@wIIGoU6h7~X&F9AvyO$CEP?(aaqf0^YKByg&BXe_~&6{SKR~A{1Z%0000)8N0&)h7A>nfW}nJ?|e6N`qNFY}6?0m|uBc=6S74U>k` zYo&iY816>;GJ$JLhYxb-@Oc)49d#>jZ5=Oj3ABMD0%>=agQ?5B?WCemI*#FFw>tvp zbJkVJbF&jfwuo_WuK~;+Z?QlDwH{;J%Der|SJa>P2N~Pcl=d6-a3|%>XEaCVB0x#$ z!XiKUjRpiIeSSUKAR_njm%2*lCfynC11W#vU-*40y$g*KPN!Q_d^(*zF7!YCdi(*; W4Af8N%nDTi0000Kl(9|%K@f)b5_1Wii*gTe=6nDnJq-=r zB1?S~%mwU7U;anN5B z9Pja~m*qe;t~W{xT%750K)$(rR5GIEgzA7FZVuYV9~V zWr1kz>#MllVF8ywvyk|R)SaX*a7~5|Xj(hvd=bjj73lJ|1$t8S{l17~Uq>~sA4uDN zPkMZ^Rbqiiv0J9)Xc!TonwndY=(q9w7Pa>7C_|jw<0x?eQz9$~Ac#aciUCZ43v1uN z%b3dujWPLzfM>YIgv(eFFwYU;4iLE#Lt}9Mw#*zbW=d2Dn7n^xHp2F~Q-Yc(re7b_ zB;_DC>Cof|G-&>cHiIjXyEWufdvb%oBmQc{Eo-nb7qh~4vHMQ#x=B--xS%eWm)>&E z11)tnL&eu(#7IE`lq{`e6GiP*`5JWwooN_DFi98Eq;Qa> z5|zT4B~ql+T$WA=Ke~47AJumz5Wqg3WrX}be((EzzB`11kqCLV91*Nw~RWaG=sOZiub=03xI^)R5j2D0icvu0_bud0NPlW{wz5vH5ltavbh43$=kI8 zcmc4eL+J^z)(WH+e>-jG-l>tb63J9{Zd>c04IGED6&DeFzGFWT1wQ1D*|jOY)N!h8 zr;%o$Y`w$zfUg1(f^o_$mSQ7f?bD+n=d)^J3D7TL!h1jbIUn8b%BMzbumC>l=VeG$ z2NI)TGmW}8=D|;6VFK?^vq-=4k!jJIaY#$3q%`7mIKq+q<&DSu!^Y7i3ujhohD z77^VCD%{OcYJVW4Zl?>pRy5`!H2e*>pm*oiE>hbff9rOEc5-EMa5D!|ddsk#u2+M# zaPsevIxRW|z;fq+&hlixAeaQCi{o6C_i~0Ydg}2_M_c4V^WuL@xma>`gH}23?J=|j zSV(K4_NRO)Z`YkR9S^#^znC?owtP!k-Oj=V!04f}1Uv_GWE31&Rn=iL1VF6qG%h>` z2)h#s#67kv+Oo`rwhBz(b{y0dLJaaUzy9i2M6)mh))kyTLYqMCaW5xlQ04tDZx@0a zH^%)ut@c}$aXUob(Dn1Q0bi{W0>pSv?l|fk%R+V#n1~*HBOAo~b%FpBGxKbwB;;^m z!h;zyGy_UO;JpwYY`5r4Y9$Dm6EU6KBS#6aE76QkQSJ`XcY*UohUUqiGdYgyPyk75 z+K_`;*A4~H47j6T_%BZh2!2gZ!H^1o<-ku}A(|TiKh%Kc=hYq1gvq?Rz|<8};aw^7 z@iF&X{8kfFF1#*x)f(UoY-$~@ED_@zcC@y7%r1vEV5-y;5MtmzlyW>@FO3B;00000 LNkvXXu0mjf?(T$S diff --git a/graphics/pokemon/mareep/front.png b/graphics/pokemon/mareep/front.png deleted file mode 100644 index 0ab5b071fd3e0641b92924b3413aeab39f901b1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0Px#Fi=cXMVQc_=BxnCoKpY)|Nq_qoMIpl5D@?Wz3$C(Qc_Z+q@=Wa08)d!07{f| zr1oNz-Uhe+A^-pZ&q+ih) zhtutLyL9Ov$~ijcpC%v9`294wGX&?IbDqBk1O>Pe070(=KjNoZ^@0dI?4M^jv=+?( zWS0h*DeQ>o;=uG4K{P}~1nVVk>7T0Sh~Ak1pMEH415304pbr3=;Dt>k7B_{D2+l_n zU>p8U2#hVX`1k8O5cD%4#wqLp0FWnvzz|_eg`~5z0g>Y&3V{p(B9(_J2nO;2AgV5a zBiFIQf_cLLjwrem1_0r=z^y{5>UF@l>dZQfQ&!qNRzg$%8#TC?AB^itiR0q^vJ`?C z1Lzsz`cSO^AVG``P%5yj0rS)d0Nep!DggkXK%D!8%mpxUVvZO|?eyh`Hq$F1rxJh} zEkH-V0#fb(@Js0Q^3giNg&&IQ8@$NA#Bp-uRB1N_pnBgr*;6@{UB`Bw+Q9<1Ag>G_1bn24gEpX zRb+UG!rtD98~$}&bIw>|Ky-L-^?vcUZPQIQ?CzU%*Y+1C=QIq^xx0nG@PEWP@h{cQ fu=&0N6+X@PGgi5D@tI_~78^I6y$i$k+e?00000-J*$$00055 zNkl*XNh_&(kC1po6qxOdd6MtoLgTPdLVj=XA6{(C}hB zqK4-tTEGnh7fYBBMq0o~vOWR^Txb1M*Tcw0SsI2RWTRoE1qPFcQ-Bx-k7Iuia0f!! zWOA!r<80WIfO|jgi#t;(e_a4@N*k|cyQvU{8KB$jfg9%{wzg+gfm-VwfvaZ#VH_dQ zRDo#|po;)t?Eu=~2^2=C-}v0YAV+QAonEx*{T8^$CTdC1DCpi~(C?H}}y^$S?YmA|3nlNSI0002ovPDHLkV1hsr@Ra}n diff --git a/graphics/pokemon/marowak/front.png b/graphics/pokemon/marowak/front.png deleted file mode 100644 index 8d9488612deb8571afa385a18a4849255f4ada2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)Px#Fi=cXMVQc_i;HUb`1lYI5XHsKQc5}C;OJUG5XGEIlxkAouz0YLh0c~ zY^BSx7f3A=1x^Zo4(xs6%utp#lVv|% zbO7{&J_Af20*CWUX#tq!WB}D`y0CMp4FISR%K8pF%Rd9CSkU&i)4LMt0|4l-9HKOb zZlLSG1>h$-osj@OH)rVEx7x4q3%}6xdHw79-2wsPVShxQ0VM#{{Tl#J0Xl04Y7>YU zV+90LF={AI>_7pKs$&I6Sr>@-bY@orv}AouRc|_r)CGXV7n90Uta8a>zLT>ZppG=i z08yvBiM15>Zv>A9Hg(*#Z5;tDh$Zs4m3kpuj07Kmjc)+>u~tH=0L{Zyy#P{{r+5Pp zWC90FDc=N#18~v6J_7eJrJXQvf~5!1!W7HzVSvrC7#qUXwytwT1(uCb0KUGCJOaoc wO8oq`Jh}W4h)1H^r*7__nQ^D||Mgev8$zWSmzAd|nE(I)07*qoM6N<$f`bGLz5oCK diff --git a/graphics/pokemon/marshadow/front.png b/graphics/pokemon/marshadow/front.png deleted file mode 100644 index 14a1503bdaa42d76c8b5765fd3d38085d448185e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)6+<@T#6@+Bl1$F4YaWBx+;sj_8FdD=S=9at$mho@^ zc&eJk`xHBN9Ao~XE-ruZubT73b<^B!!QE)URns(EbFphR;1R&BxmJDigb??a4|)!E zx9SXFo_21hXRvPZV4PFkz5r#di@E}AlC}Y-E>2xf3b0w2)54jVyDAV^I588Ju?qN! zzX4tpfQpMRO>H#_Ngc>N(qztktOHhx&n)s%&B3zsut(>VQ_v_g{2=1%g`gnO zbI1Zt0rGoJ@)|Y3hkTGph83uu!iV7`Q9chE5W=t*kq-d%O4>B+7oGsnT=R|1!wGfx zJWjC=m=KQu-WH`5*aC%I+mX~;YiVso@=3e3ltA<=CDlq<{!w4A1Ax&pTIpIX2^VH3 z_-Q%fpt35}1C&!l_@rb2(L}P&M*Tuzv?!H2Xp?1#3xIkm!%53nfMrquOCvfVo{|R0 zj2k7-%G^LM2v}I?Xb7;-@bHK*kU$Wqu+WGwP{3e#p)Eiy0006c zNklBjE6aZjZWYCbIQvQG>TVOC5RR06hHJrK>de<^7t1iXKA%IO-wQcHu0i3!T#@ML^MnY-ds@|)k=z`)3oGS2Y z#7fbt07s+I2POd>t3mpH#5O6^AYykL&{x(l*mVcNtrTi-cZJ}(Bf*UdEWgPTR~>rB zf2f)$^7#XchU}J3#8d%}#auiv+2m^>3T1{O{~0kx$wY|!Ue&`fe~f`->s2nq{JXNt z$F*FmoKM7D1@tn$Uh*ZsS0C-u68z@Vs+0em;@48yV!7Hf{@Ja(plu*B1ps83sz4jy z?FNK&pBPCW;LTSA1VE0Q*t>Du#XdQo%@DLpkOkZEERu5=)7h8e32Zkh#rFGb7&11{ z>G>pIfUW5XCCT=wFfLO}aAVLjoC9D0#US2l!bsUL>S>+?`6AHF7btdS?p>xAj_px7 z>ji0a9n3M<*@Tq!Oe>UtFQDna#7DcI>Ak~S8`72F5}fScU%hEsEuc%zr!jnN+Iv8A zT(br6iSq&=@D;%I-4K8jMGSGE`i0P&7R70h3*2Jf6xksUP?^`KQ+(X3pJv0dFo700000NkvXXu0mjf7bQHn diff --git a/graphics/pokemon/masquerain/front.png b/graphics/pokemon/masquerain/front.png deleted file mode 100644 index 853e08a17202b2f4bc7d1fb01bd4273ea5888360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 zcmV+y1L*vTP)f@O*x>m1@E}-lutBjE6vrhz2t3tl(!CcYOBd0Dno=(n&-ws1(g#STBV)jj!>zW^BD!`6 zM?G{YgiNKLO0u*Xg2{cTzIU=5OG>S!?Hi2H`}zO>zo$FP`YZLQqi-Mldw}`70k<3I z@aO_;)&aN-#ydmo1H^v>2Ivqcv3Rq2BkO%Mx5tSP=hYkMQ#~F6E`;Lbhi#9P383s}$pBoQZhe%=Ng*8p}@2bLS)EHMr?00HZijyl~42oY=n>ky8r z!t^g=1O_D_9sn-$4+2bvFfl+GVqO7P`38uR@IGY)^z#jX-zp@DufB08f&Qfd!ia!9 z3L(;{1Qvc7U=2)ZUm(Up#PsaUOW-Z_^H@M&fKb3VO-XI8lt#cgF@Qk89JT!f!1Hix za-~)p7j>4F4haMU0(uh|9|w#Le<-zB6xJXVQJ%jSA`wA36Zb+~yNd>>P}ts)C=0~# zdMo^J!VZSmR}1~q4WR5N5JuHrIp@Ap0xt8suoM88Zk--$M1a!27z48zh}J_?H7i^K zis#IO6bMS{cQ$+BdBARnI70ap;%r7n6bN??rJi|W@YL+{tqkuEGAO;{*` zLvGc9?;bqmXn{ky>@Z^6eFra`gZUX|Al=6}_jX@qT3S7g{byRY@3A8_mb6Bi`bDdc ze>Wv(^jow9db%n()Oz+xO4%Uz$g~T7cTIJJWCQ7O>~l1FNBvu(Pa7gKBj%O_a2|SW z1;MYRhx+bX7upa_iI;Q|d<=O@QnD?9fT9(1pN3jxw3dd00jNfLrLv|8oi^@QfKnGY zQ_W9x?-xwK=SD=Qb}~5neQWN)Y7n~tB$^&A;-Ukvco*=0>o;ZV VPCGYZ@;v|m002ovPDHLkV1lTdTBHB~ diff --git a/graphics/pokemon/mawile/front.png b/graphics/pokemon/mawile/front.png deleted file mode 100644 index 9f8bddbfd53915e1ce767f77c44014e36deae1a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmVKl)rA&KoG{gqDtrWUW9WwPP%n0PN`T= z69l5Ltn`NqUI01uQLuJ-G+7HFC89XHpg7S{@DA?%5)lm*&%mthyYru1kf<}I=jU&} znVnt3c#QuDO3jDTgmMrM5M&f^7vL~43Id;pAPx!y7~Ek8B}O$M4ocKOC|C^uyy#cB zj1T}pbd4v#`NHf0QS{z#0K(p4L*16GOAWXJ3}zY(D5cPKqk%|!G#Tb7exW_!V-#KK zE~)2KdBf;-Y{}?KYJhRxjFYqhGM5+?fC^u0aoTR;c?FBHj!$ev*D!5b8*K6(ZsE3P(B1)@dx*b+6sTB-pm*P zj(GDOeNr!kMyFh&wg(sGBg1qgbtICyhJacq~E$ z)-sd*vuY}w(-7^;M9L(;8TP=%&tovjJGs)Uk>mpbM@)|e@i>1ftGLPx#Fi=cXMVQc_gF#9V5D?8;bLMl4?wq7jK}z1<-iw2atfZ{P#l`mCgYLarv`Sk4 z|No?ODNa}*I{*Lz5J^NqR9J=97xyc&RQO*wDl0*aSV3V^1tjTuPhKzx?= zi5uSmCsw?61MnuQa_0Rz8lK_v0a9N8zU7 zcuE|bRO6mO#u^|7?WY?8oysv*LeU3O4sRiApU7t5qGR?JFSAruFU1D^J%OfRyhm{1 zRlvr33_k=f-Y1Y2i0wJh(FNm%s(dq$+^f|spxOnb0;<#m!!Q0+OHn~36Vz@P|8h`6 zX}BbC^5X)~JM_O9s5njpzVR(2DMv2>bG#`uXhNXZ=tXci`GxHsz7)efQ(kX1xQU+{ syPqaLTQL4k^IHa!0!d*~uzV`O7j^j;3U1T7F8}}l07*qoM6N<$fKls#_~K@f(|*SNO#6eJ3C%&l`kDtlH) z1X0|11Pu*Q{y@M=ZPF~cbTpAD;{wgOa}#CLxv`v7>C;h@CN=+owL`#>ch5*P6nVA9 zO7q;j^P#;UxYz%xTD$@f`3fNFtZ-1O+CwO;1RB`Iyn<+;1(cttAu4;w+lZJ0NaRUj z6Ih2C;7RcZ@T3rb0nAEJL>V|8lHY)Ej#DJJO=MkkY@~*A4%iCFUY1jYN@m+_r0iWp zS;GaisA*(0^S)r9RikWu_8?k|3SxZjub zc*oAECwt9|^7?*yxL82>Y!X6v`QiJw*Si!0#0O<@vudaTmw->fReNuiN zFV+A&MBNYZ(KS*t(0cHa$9Ee6=<-($c0|ooPkE5TQll{Cp#exA8hcp|&xn-IjMXWF zbDOqVfCFPDzVKX6hts2qa1g#=9=PmpB^7hm|9tEEqn)*SpndVe97jZNjL~kFVxmV9 zs5man$O&w4xxTXtP@H=KPCC!=g!#-3gd04{#U?Y4+%*JYDg|zG>0HE3A2LC;S2bx1 o_}>06lidIJxDojM@AZ%R3F7^Ntw5JJH~;_u07*qoM6N<$f=#gyDgXcg diff --git a/graphics/pokemon/meganium/front.png b/graphics/pokemon/meganium/front.png deleted file mode 100644 index 8d2d25f6c19d8617b843fc297877998dbcd61c16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcmV-a1FQUrP)Px#Fi=cXMfkw@|K1>CN&x1p0BWp35OXQL|9gwxF%S?C|NsC0Ia+%VIrgNS%^*3= z&CP0RYCec(hX4Qq(n&-?R9Jlp+2D&hTO{knD+j~L5pYPeXRAOxUl=Ohh5+^q)mmV;}E^&Y~n$RQ8{2oH=Q z)*U&<(KzKjYQT`B4!F8 z)oaj9!s8SwK~GN|5bN^vyof6MrHHbX?0(orjq)3yl+*z? zk8;zeRQZ{KQVR67Zv1M1qGPl2lu}^qay9-C;>*UJ+ynY z0ZOrc)=Pk6Q1W(BMa!0m(MNC+>bW6eee7bnFc4e5B!{L#zAW3`3~(oB9E6J^adP9gDgwaW0>!58PMWDV> zzKkD>A08#%^_xoMpWZGhXDh+*Bpm=dOSyJH(+@0AJORLvk4FKu%Lf)Hei5ny@@eGi zEGmFL0I6(P`xwDl8Uc=u00aA{T`_7s>EbjSpb_e>2O(j2&=uQVSc)wuUXNnPy5;gq zKeG0l!6UPpmbvdp1JTwAbN$Av67Tn@;*=?527o5qKp0!(!I z0{~mh0vs72MEt>kybsVSc^1%$5R_mg`veS%2ml58qc)o`ozZ8ze)vkDkSOf{TaNkt zp4&xCmXiO`_jE0zyuE3BH9I`3WIAC3PwQbsyzzVLfgm1aGJW`EcuRj17J4EneI=~k ersRF{%KfDjN6U|?WKa4>kVSjh00K!|ww`0&8Mz%am|kdTnrc!;o2U|3L46Hl%90005~ zNklG{du_sxvW*j4>g9%H<%&-;u8aSPyx z_`d+3wF7-F(|q0n^!VHuV<&=vYw~$!?%RMJ*?kP~C3|iI_*9o~PGO;JPWkXjSpY1w zO(W?3T-GNO$ZZQRTSG0yB$3;<}qG+oxv#KfGwM`An2S5d^?Rg3!%R!|do; zAd+pL&Y*ebge=Qv!(A%Jkg=)95IE@Dmcj9+684~X=grp}e7 zOsv=NP6*V<&NT(B@fJSfC=k#(-v+J$RC|GFcB+&n&eHiRlR6TE1WhV+Mp&5K9YZ8# z(o9M{A^_(E-iA`fEJY7bsgUF2*ufXz#VC4P`)F)*p^%gN?!X4nhO)pq$BhvgBe1dq zEZlYVD;n6poDBks{5m%P%M=YH>@T3TWvY3H^?+6GpPSxgjVp z*JoDw-6{Dh-amhOaav|q_8~E`#uwf90++rK5L~Lbs(EoxRJPE=`%6A{vP?gl$HP-T zQ}%kkspNx(-$onCn|`cSDR|Q>8EN{-z~R?Hi7>65hck@@8SK8bJrsHMEihqvqfo!} zvJHD~I5ijYdswaM{@BxePR;U}){HA=+gCA|EG^+vF)(1SxfNbeAfE1K;3lK+uu=3~ zT7`M`u3%~22UB)cZ2QMh*71sE8^f~M+Z+95_sQm_`rX&ax?1I+bu?;;Q`X$Aj$1Ep zHMuEO-F>yB{yBs3RLSFq_Br)^IJ(9s|JV)2b2f&_+&AQ(iXKR<^)y`HU>e7ebX{+z zcs+AK#k2YL>|#3aj<5c>pLxlzbcWPF@4rdQH!tYZt-kdbl!`oE{an^LB{Ts5VK);3 diff --git a/graphics/pokemon/meowstic/front.png b/graphics/pokemon/meowstic/front.png deleted file mode 100644 index 5ec230fb75f93d7377f845cd16be3c08234e3180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)ljA6aZj*an{5QFz3ah5n>`0d##IH36`QfJ1|iR8;_1ubC#HDap~g+ zP>GIgbY^2=;D_ZnHiE??L-#g#Ev*-O!mp{5Y9+@CK8s70@Xo2J1;W#pY z57Wi#onZ`>2>{dWFsIf6r0_OHfJ6rHO4@8w~phr9H&=TnDMejEtqW?eEh=OtR8*Fj29&)m{{QE6Vb~X2ArrR zuu|mL8hpLNS_8B}i7Q2$BFCo7u(WHCzEoF%GfZL=jJR`4!Y+YYB0M-Yz`@f}-~V1` zK?Xx}Mg95xw^E+hI*tOZDR2#LsQEn6aa=5|De&={08Hmij#A2n5EeKa9War!`OdSH zLL8a}2*at~E-LkNeiKI9_@GY1iCoc2KP=I+BcpA?C|ghO>EzTtWHI|`fPt+1knVS)b&W;AFNoP=8{{3h)XRV$PU0UHD0?7fjTn;+`U?8s4&?IW#n=MnrU&}y z*W3-}=?K(2o|{Tn8Vp2i1IZ1~)r;Px#Fi=cXMVQc_m}mg_;D8Vi5R_T~`1ttv&;ZDw0Kj+%*tj^@*x3JbQs|g4ltBR1 zS~&m!0Cp^LL;wH*>PbXFR9J=WmW^)0FbsroE}`*C`~Hu+vz-<+q0QMeO_Q*IhM)Ul zU!0W7{-rSz}mtBq;Xn@C!dQ)@6KL5%!) zB1Z+LZyI`S?M+l&UA`>DD}aeGQV@=a)3gup!cC?lfdFJ(^lAB`Ix4VSs8>zvB?xCw z+toct0n`!7E6^Vpu^b5qz{%p#Yzy;T5K91~ClZCY$T-_-u{Fyd$2XZWE-=T42!hEc z4@HFKBrw#gm;*S08Suh^dTY-i%t+f$aLicQNrH8>YNX&RJ8OgATA~TOwMQeuZ#B7) zdmG`@_uK83B|HKU0Mqy0lLXN_;4%`RzScAWdL}R&B*5f(fW$ID?-ukaKs17HjK~60 z`e+_s0oZg zap?4!tCb(-r+2}}!;8nOd7pLvDbVCU&`jo3P=M$_Kv+0HcyN&T`1r8M@Q|3ms6asYupp?2KtMo1>K7W$0006# zNkl1^v1iCl_&Sgxp&ksD5kB37t#k^e%FuH__JkSMIUh-fH4 zLOO&fCWRHQu{_0=G&GbaegR$5oxFva^_?i3NvIGFQ>``6zVpuRtS#$*{FP|9u5&Cu z^Z-Wgkvvp!kZ1ygAwU!ysM3TW48sWo{<%ze;Dyh^NdV($CJT&TPv2fnzym*$Bs>^> znl2a^%M$GH;d=V*67r7_M1q75<5PV4_4yg12kmGmROokdcmaU?K_ZW!PibqSAw!3PH3+`MPN-;?m5Y|gG3c>I$bW1{7}fymB2A+>(xEbkOt32TvN#lUmh8&U?4F?WS}$vbxHAf ziz8L6kb#~7L<5#qIcjor)rb^!Mk?J{y0R&T+l|%6vgwF~Ry*dHlCoRgyX%>p{J@ur zfs(|{cK~i}THOP&2q>G>9T2Ai(89EpD7rGsTn4bv3a?l`K>>&pyg;4t-r^--u+Y%ZsHmuLXmH@*;KKl)rD>HWbHY0^LJKVo)F`$XA_WCq{t6 zb$2B^?Q)L z-$(D4zGRktw{L4(oE`w1ft!0OW5%e}lHa%*U~gY#CFkmLSziIlU!7t#cB>`h#SKvF zz|Rl6Y^%Y~dzC+!AFTPA+3&JkP9Ie$=2oo(4FTSL-V)O1>p(e2wbiUekaZ}-l!FCF zfCFr^AFQ?Mi(Kcp1|SmPbroP?jBy!jG%P|l0S>(?ynrtGjq#-iVdPX&Ww8^IbCEwv z{&^6B=SEIl&j>)^T$?8Ov9L<#rbTg?Apw;Kkfw3yg2kY8F`s~PW~E}%w}-|W6RbOG zg#e3um4lfC=*r*fUp-2|lPGJ0l}FpHfZP!vid%pENhLIY#CSyiO;9PzNt7n1H5Yhi zc>6a2XEC1CofatVa@u8W8cRSWhT+xde<3UgUil@!Y`sr~X#sdT{5OBx#~7UCTF=@` z;AWiwExMgyIPLpqN8!MW3Ia7e0`1-}&Z5?Bckg_7)AxsBW&tW;ZP6})-+v1s0e<%` z0f)C?W)DD?2}o@)Z>4kHNmWRAPr$uhD6G}(tZ_>q(^evOJ5|wA5&hxrJ6%|`yj%p? z26YJlt9)V4hrSn3&3jfmE^k^uB`NjXX#NKl1h`1JYk`cD6h zD&W$OfRXe!$_Et*3Ke^L7JDuFc*HrP2hzn7m>EPaDcN?6$B6Vi!Bo=(*pz}^Sd1XC zi$tVjUOJQ`utl23Bpw!zxd5OLFEkaesd6fV_D@KRKl)rD&KorM~EQ^&2T8V`Pi8Mh^ZTB5L$1ZuK}Jp zUOJ7$G8WD0?v6b40_% z&dcf1kMGsUq0y=b!yN;18R{NS-lIiTx`<9cKD!6FF$k2gSC)m}p#_;yN>ce?`clMT zfU0`*!Lp9=(Knm(86_YOy>uxsvUzIM1M3(iAf!_sf;#gicLMyJ@rhYKXdcS50kYLk)KN{Jki1H(cVP-r0^G>X zcxL86s|T>x%T^uC#O?J}7N`+5Zm=oN`m57wL}ymtqy^BE?YZ?!7Sc|;Z)Q=xdm@W& zmxctRUp@wimT7B)jN4xjq-Lo%_u`;cGogkb0B)qfp1(G}%h0>Bbq@k<6JURD^M73q uH04|Ex3&tXku$KhU7&!_c7ey(5PtyX(EamT(fM|=VSclLKOVuKhO%6tS|88Y^`H6CM*U78rm^y5IS#kH`FmsuQ=s+{*84(F*TUvl2A zQ}#RKpA4(yB;_vu1OMuRFSIfjG4)(pn0HgNC?|2*&4&9Ge9F~lSoW_;y6lv*+oeT? z$4!NSndb$Q;fCaAX$RPH}l{wWk$E%W8mxW)na?_>EpsAZKUDD?M;kVaw s{TIc5u3pcVOT=!G^NHEC=au|x{^tuLEdBOs?*#>mdKI;Vst00)hxJpcdz diff --git a/graphics/pokemon/mew/front.png b/graphics/pokemon/mew/front.png deleted file mode 100644 index 9451dacfab1ffc3f852763cbac98b2f79b578f5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)Px#Fi=cXMVQc_v|^P1)$Zd&9BUOvAC$Zi_DN^0x!n?aP;1t488vanos+eQR!mUPoO-RfH_QD%v+k35MR zgp8|Nnt>4<#y18%0>WAc`ho)3A%Gx=(9Ceo$yo&@a0oR2HF~tW45~cNZ(DJv2r~uZ zTw@V{Tte#CY7hVb3IYTY^mFTHWyJhRyGeR@s|gJt;rJN~u=W~9*lK_Y7%tjq;UWHV zOQ!+2cJUYBoB;k7-Ht#foa^FbXPx#Fi=cXMVQc_gL|Cb)#f=lQnaka0002)=I&}SoRmSm@bK`oO71xzQrOto`1tq$ z000000NzG1Y5)KN%}GQ-R9JR}z zEI@1E!@~9LlpVB#Isnl1rqFbH49p{d?nDLc0B{TOEiCF{Am1Ppen&V!CLV9ts51a4 zALt=p5Z(%S^P#gDss-40mQV0<7snYt)i(g#HwC=7>Vu8XO=LZbz5$3*n9chT4jUsv zV<*w$Q7-Wis+LHLy}iRRMac_UrT`QW{0w_n20?A zttN|m%^XcXJfR)HB)sn^`3tBPs#*@w2^I#nZ6QnnGKVZU z2xS$$s#pPabKRNBwvE6DmS9Dk=c5$_0$wFf2KdHpttvhVo=*!vC9p?ooQNf()&R)_ z2gusRPZ@9$767(X_Bc3g3K+}kV4=v;0w6Pnx;R?Mx=#zP*K)BWqyf+p>`s9Jjz9~- zhlN-QORj2QfOtVj<#jx(8=m2CrQG3e88dV8#yz;0#>;jgf3u#@ Zk3WD#7+l$6I0OIy002ovPDHLkV1g8|c(nik diff --git a/graphics/pokemon/mienfoo/front.png b/graphics/pokemon/mienfoo/front.png deleted file mode 100644 index 51cc46adaf42308fae9ad08095554331839c03dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 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 BTIT=& diff --git a/graphics/pokemon/mime_jr/front.png b/graphics/pokemon/mime_jr/front.png deleted file mode 100644 index c3519f6c9f08502d9db0e6024088ecb6934099b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)|mToM#J&W#y zZjRQ)>FNX-xk93F;Ri?&o*}b#6N#C<8i{G=yP4UaTOrDm5eGqH&yIeC3Rr8u|76p~bP!k;C~MC=;9AJU z*SF~@H>5QFbDOgH!!58B$S{ADj*|_zc%6@`iHL1#Ov20J_OWdMrK4J4S06dAj=0t>N@X5h2FBuV4Q2f=< z&s>>_h(cIj0rZ7*pj=J&z#)GLG1b_O0G+0KgldV!rLL&8cFyPDV7Bln=7~Cu)k1|{ zFKLY8PH7v8zVH7xF-gk~@SGaM z@@D|!ZST{yL9t;afK@7~gdMm^o8^%;Mn5c$0k0YIEf#0CV7k!H;3ZaCfpc zg->_FF@E+3mRYKyQ=*n-e^LrT0RUZ$wVze=s-u#yiy=z?!V^TJaaU8Q^?#~r`?eQB z34qYA9(V-m+Eq}uEKvFo+zLpJs^oaL|6+dtv?hcL0003| zNklToQ5QUAL13;P!)c63jz=EtA;x4*vIv{qHszhR4RXIS8K!P;4?ck8A zRXt{vU1q`G`c-JdR)TfP>MlS&!)7>H-BIB$;QZi6_(&5vYIg#9HwUQR zb9iGC2-1ldfYhA;#?WqE$i0>8PevE{;hcb-Se}x)hlT~_O9BqibR4jN8XyH^fmwY5 zSiTw#kPp!BzQ{(mi)3_cje0?@$xLlXN6uzD%pD?Xu7Z#V4FMg$vWpWmeah;_4hzw- z-ffiXsjaq9;c>+S+X|}o$TV51xNkbLI%P@(Bf$13)fzGP%$jy)K`yX95Buqk2zJ!N w&J1Pi1y+eDJQZj;klCIDXK3P2dW&nuH!Z1OmUHHDivR!s07*qoM6N<$f-P#p_5c6? diff --git a/graphics/pokemon/misdreavus/front.png b/graphics/pokemon/misdreavus/front.png deleted file mode 100644 index b46d709a969478c04b9dfe3ef0d66aed737159d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcmV-R0<`^!P)5ZGX#U>HD1fS?#CKrl#PIADOdkT9SqSm@wj*g$~z`1o)TFaQ7m3GJb20005j zNklzCiJD+VI1gf~CI z`u6u_<;(K0eO#@yOxeq_M3iJ}} zbAEgC$MD4&F8ki+{M!vDaFc+ymj4fpJ}8MIsxQWO{+~E5kd@N~gy06I3rMJ&evJPl Z?f`N;p;kCM5-I=y002ovPDHLkV1fkM3p4-# diff --git a/graphics/pokemon/mismagius/front.png b/graphics/pokemon/mismagius/front.png deleted file mode 100644 index 5d68e8b7042b806674a8c0e03635cf3c4780a88d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 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 KMNUMnLSTZ&VOYNa diff --git a/graphics/pokemon/mudkip/front.png b/graphics/pokemon/mudkip/front.png deleted file mode 100644 index 7c83c421f11535c1377fbb68356aeb3649b69a10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 539 zcmV+$0_6RPP)%o;P|LmAn1TF_^3em`1n{zKmY&$`1>Vu00009 za7bBm000ie000ie0hKEb8vpK)W1){KokdXNT@MPTmg4p+d-Ucad4zu z2RBUG#t0f6IQ$^)c znN6)}A(WoWHNB9QXKP?qRsuy8Oi1eyg62v9Om#KTSO&8H0a{AF97unFTr2_>s8A0# zxkY;ma%{*dfF{Hhr8luWw`<72%Mu4H0*#TO2%r`cz|qJs1mK(C9R{&|l^g@fq)9o6`KG6002ovPDHLkV1i^w=1Kqn diff --git a/graphics/pokemon/muk/front.png b/graphics/pokemon/muk/front.png deleted file mode 100644 index 4bb6d0a84e86390a753c097924079f877a59fef3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmV<80v-K{P)Px#Fi=cXMVQc_drE`mz3#=N&7^y*S}}7F5D@tI_^hIxzNVL1@#2>{*5KkpL|-y~2cz#~8+7~(y`+b%pIz@)zk zfL;YG)GnH=GAP0B47Dg>$;e(XkbcYlkZ$#L&O z3-z0!r!L>PP=l1ww_I%zxu2#&peRL4M``8SAQC{BCxGA7%4D_mRGD zK~S0;5r{n8*9AAWp#XR#J-|aS`Kcy==*yTNPr&O3z!hq>oW!a7R)AzxYJDa7dA2eFv@xm59YBki z<);s>HDffkX2A9kO#mG+zIc(R<>at-qD&6Rlj8oB!zZL-b)Ke1Y;^(Wq2aL0ukoQjCqS4NyT!@gxNvSU3_;x*(kvPlc zJmB=Usqqwo<88`L=y4)*KlwO*g+RDJg!$(M9K_>WhxzLph>|C{8RWvY_aMi=v2cO3 z1Ub>GJQcESsgy=tF{w>!w9``a6UH{dOYe<^q`W;{I@}D_Isu!<9{dFUwg2C~00EO6 Uc2MDDa{vGU07*qoM6N<$f>MT2rvLx| diff --git a/graphics/pokemon/munchlax/front.png b/graphics/pokemon/munchlax/front.png deleted file mode 100644 index 243df8dd060aab539d3a4c4e33656ffd307fd74f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 575 zcmV-F0>J%=P)8nu6oq9&FK{V!NGDrN0%xR-?G~A&n1EpvnF0Zsi@-zHxbV=`1(a+p zGK5988u@vI#7|(rd8b}F>0*)UkReMhKtRy_z;iBn7zFS2Ce>&KK~e`qY0yNg29Vt# zL{_5!)shf(0I~tPexL~m)BzC?gJt|4p(F!-mkbR40}!~j{T_?L0$!ICK77P{3JrxNi<2w&+NcP#(A3zz)orN;C?&p!84HhGR1Rp{|8d($y5j&a~~Ku zHNs5drRFZ1i^s`J`_KL)hN@(0cse~;_xC3^C%1Ve5#h=A#YMh;6XP$BV+J-g^utw| z^BJkTMOiLpq&Fo(W6HU`jypcgtC`L>#|W>N=5h^~)zZwW62ajU1AJlk*Q*tO3B3u7 z_;=i<_D2ikN%gwegw`YuVk@Du$_6}#&O)6v#mJY*e_W`2nR~C-)n9jji~J>R5u^YB N002ovPDHLkV1k^22j~C* diff --git a/graphics/pokemon/munna/front.png b/graphics/pokemon/munna/front.png deleted file mode 100644 index 3abe09025e01385e9a86d094d9f4049822acc72b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)CR{vKA;OvwS5n>7_e5~aqI_Pxe0V3yT zx4wY#z6Qo>!2+^ZmJXP6et@L|GBx8O0t&Dta6I7vSss8)O`be}3s40Em=+Ed)Qkms zE`R`4G@A(UsI1^7A+0H;Z&VW3#u`QT9Zg`_e_kODHg9zh(}M*rHcMNI1zrf){sE+0 zyYsXOg!wB0_-+G|hA%>_0i!+c7(mGW%KDc@_l5YdGY-e7}6({Yjf;$M|z04*{w^2;c$0xnECt>X=uq{wXDg#4$I-XL;E@ z5hRWspy0GKtOV6Vz+pXs4#=Uht z!0bwGQh`hW18qwVb0AGcmh=gR1&p&!5s@TJ`UEgsI=81np86&eDdSnA`8+6a^ehxW zDRq~q+i-XN5@u4iP-4vR(1{A$R}f4v!pA#+hLenhhDvh@qd+E51`(&b8VkhXq)u+{ z)FTtZjJ?nCy74#L4{2;1QwmJqKmGOgNopI?GBLq-M0|g^iP+}-+RqysCuK*wz$v12yf1sP;QRP55lz^qTZFxi<@uwE8x0mT z>>`9bpM_krvSddUve+b@Emt(t*HmJ?{sO@xS8>QW|M< THi`e(00000NkvXXu0mjfsqEjZ diff --git a/graphics/pokemon/musharna/front.png b/graphics/pokemon/musharna/front.png deleted file mode 100644 index 75addd0950be8f58fb27292dfe858d8207d8ceb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)zy>8nu5XVgf_S8YAp>ap@6`VH+QRoe_I!GWV@zw%8cMnpoUEJyg>e)*c z?Vb8iy*r8$B~fa(qG!O%|Hu2{9kp2e69br2Ri=!YAt2X~8RGN%rrQ3Vg3f@ zfZX?JItLQ-HpvZHB0^~L#m15i5CU}L;Nr@9+av&TunfAjkm zH;B(I@V;LLC$L0B=aMe`jFE%Gm(EAzLP>?}fb1}KL9^O8NCT=%u@8h8l%e#%>-c>L zDDJcFfUeLc20LINL~zgZz$iMCgE3<$=c|0rh!308F;3 zs!PPr)sX;lat;xAV*TDde$^G*)Ba3Ay>3TRo^Otkn|DGSO9tM?d%;gE(E2n0Fc7bW z@=s_39B<)gUB|l_w%0((`u5GQMcLEC3qn^?mgRPlurOBB2J^3=CuToofBMw@@Aexy W+5Y~Fn{cxL0000Px#Fi=cXMF6nqgDC*^T3Xd9T1u2bDQYQmy+M@KK`ALIgJK~6-YM0rDgXcfQc_aQ z&CQgQlyNiNlK=n!`$>5CbINY3TkFtG>fuq+CY)!$;)00000NkvXXu0mjfN&TmC diff --git a/graphics/pokemon/nidoking/front.png b/graphics/pokemon/nidoking/front.png deleted file mode 100644 index e230190a25ff5c311112ac3f09ccf4f6d59f5f93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1016 zcmVPx#Fi=cXMVQc_S}AJYl=cu15Y=<;q*9bAdz1i5VnLL}|NsBR#iXnd0CRI%=0P#$ z=GExv*mnLk=>Px&c1c7*R9J=Wmf4b{FbqYJWhKGwA^-okqbteAVQHxDnzvC^QdxWt z+F_dh+oh4e)9s_%9}`2KGhge|2Z8;p4qK!!Z`Y<@Jq7 z8Fv8c=|Es{`9qEF04COh$uou*07B2_GYHpJSOJAb48`E~;MkXIF$!7%G65tGanDJtp zEjBv~0#nn($@ST;&5Vz%SLRu*1Y*}$cGeN<3eE0-sG7_*v}b__rGTLI`ap;v0!~Jd z#AVj7oj}L$2T1)1c#|>tQBsCY{Pis2%)(fCR+bh9e6aZ;R%DI;cPP8Bh*^ZnudjXigW>wd^0eCvZj+)~DXm89j zXYZB_1mu78TT!FvPwq9!@gt*f8cZ!!Xhz3rS=hW=$i9`*3Fe%5iSj(##x)lNfTI6O zY(4!@mt~fJq!491mVbxq?+@Pvpp_GEOcf-vm04x?vHTzu1>89PgU;$ZogV5%R4gu``39uQSsSOH>*IMxpUK{vQucU}Y7Zt%B5z273+ z;9#27#EQ?|0Sn{&9y?5)-;g~k$baa+le-J69%f@m+3t#;{~Q`dClKQ?1H?A_4$vl; zwr<8PS}q7KKX?!!f9lvqx3kk{7{95>d=%Y1!*h<{0cRiGZG_kp659GFaPx#Fi=cXMVQc_VvDR=w9PR}N)Qkby{uYuS}Ai{DV){b(9qEM`1rl7TIS7*?&hR$ zC@AQFcuKkOKL7v%*-1n}R9J=OR@;{1Fbu=7NJ(4%|997y+zKruoHI|GhZ%;c6kC?< z-fsWNAvsfzzk-7t9>?3W%o(lVKs1gQg22o{A&MsXV-_#>8Ud8*e!s^^gb4z20s;cx zmt_%#83I;3ffyRVvSfxy0?{A@1T3=zip}sJ2_BC}hKrV!U?KyA!+{4dp&_&gB3_O` zOM$5x2t&cM*TYE0@i!=#6`t6^3ZI}58SQ$+b*%v)3@4#wF#L+OW}sq>mN9q$!8%BL zz+5@5Vzq#txNU`DSb|nQxqjO+!vuj114A2p+u$J#<8KB)M*l(}6(=+}Y9U3{(W#{7 zwe$pl7$j)*?~G(t8dQP>Uz|__aDt%-nByLsnRIMPjc;^37$f*ckpm2BYTSWL?zGwgy02#-d9Xm6LR4#^Gbk(9)3X} zfvvUitZ=I4rlCj)fXWwg26N#~|My`S?voF#_8<25%cH!jd-=l-Jdt*uEk z{5jb0N|2K{UQ)l8pC1Tpfv3dpYqW~^ZNqBkrLz>_?+5ZTeO}R*0@bEYUl^{bJvMv` l;S&RLEI$(5eg^*a`3KeT8bYqTg|q+w002ovPDHLkV1g6Shx7md diff --git a/graphics/pokemon/nidoran_f/front.png b/graphics/pokemon/nidoran_f/front.png deleted file mode 100644 index d47802a0da7a2ef8a3b34df66b962b49f1ae56b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmVPx#Fi=cXMVQc_bAzl}L4&NU&DGWaG;Om%i{=mz5cv4`y)jDe?*IQ%LEhfp00000 z0000009I9CApigYXGugsR9J=WmBDhuFbG7=f{l{;|G&2&Q0z_*7Sl@)+DRs{C;JQt z$hIvlEiL_b5&ix)FKomNH``03j35TH6G#AY5l{n!U;r^jhhUxo9zqxsA+v-Z0ALX6 z5zx(#DC#W1f6vqb`*9q*->CR|)uF24?}QS7{ow3vfFo4PU{jVj{Tra-hfoqkdJ6l_ ztOWq2nH{sco3-MHj0C7thJAV>F#Jutr%Ait+IprF{q$bpZ?6DE2--iM{cjlw;Pur$ zEp2U~G<6WF_*BqZ@fr#^Wdh*2a@H=^z=)ymhl!Df==Ib-&3s9p%V2)XB0{$eVycig zER4r8`iW_4h+U9HxDuJGf;R4_<{8i}0h&993?pN|`TeTU(73s2tk@bLUEvH$X`<5I z&EWW_r~r}x!svjaKXb6A__UBxErLusnn-P!s05(%q%#+RgW#8?6jXDKQET>SXlbk6 f^#|+H(o#j=bf^jbsY~z+00000NkvXXu0mjf(2w2h diff --git a/graphics/pokemon/nidoran_m/front.png b/graphics/pokemon/nidoran_m/front.png deleted file mode 100644 index 3b1084e3dcf6daa14838b1b49cbc6796825781ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)Px#Fi=cXMVQc_y<)}YoYi7MY7h_*?!E2+VnG0;bIr}o|7ueI|Nq`WDX1VkjFF(BmU_pBmv#;v}K!_P!3ABo=E90f*+0U-x(8FbT&4}Dj7;qbi z(u4?riUVd>r3oTb{AM63egotPr2qkNmb&*{0Z8T`)o%yF{JRP18c6jkq5CHQdMZ@_ z4*}%c0HRJ90!aIR0-Q0EK{1QU02^_$)kw*a6aB?;gL z@IIIyLg|&DWn{Jtxci0jee~&XiVH<~|JAOk2PNk(O?11IH}N2HMHHA~B;}|$LU~eE z1jkB{ud@LnjARvbm|`bB&T1^BNKZo~fCqJePx#Fi=cXMVZp1T9mZK=I%LKVh|7zi^a_tIdeB(ut zgM$D70J+Bo*8l(l6-h)vR9J=Wmg{bVFbsup>=csr{hxQfB?MN$X#Xax3Jsd`aePVE zX?o&`C%y#e1-8$2_ow=Vygt!Jp3>&Q6#%!(MIP4+Af-&>1HR8U4CKro7eLeVgCGKI zxdAYt=wGk((S;g1K$oMWGru_IAV3P3I{=fuUL#foRww{96ySQX5F>~j%!BEdWxi#B zg^-hVE~SO_90~|^0sX~FV1VftO(E7s8UWbzbJ&0YnqIr{n$1A4gqp+#poDM*Rljw> z1nz^)F$Sv$qufS{Y${`Y=s3xRCH?x$`mG|q;JXxTdYLWT z9(bXrPn+YyfII*soBdh!CBUnPpZ8~|qgVp#&^Z8i4RCd@1@<}|98fqCh}I&uYIOZk zPvi&_8K+CN{3Zao{;;Xqe6r=WrGN;4g9SQ0r-{%PBk5I#0@fr*^~V4$HHXX~JKwJ2W`uFq-V?84{r-7K#HL=ab}?R-uATv+yF{>@YFzc>*yy7dd5k0 zAOJWu!0i`xucjv~qy`W>Cj(8T?>J0yBZW^6u&Ji=jorWG4sbUMQlZt0PGj(Zl<`ZV zCIx`irjPS=5dSg)BCjTp*k=HQ0Y;FJRLJfS?gP+r?zs5RrAgn~OV)XDz(kd5?E>bZ xW^;!yuBVEXdG!upPb=l7gD;FfsGs=P@dJr^61Cp1_a6WN002ovPDHLkV1lUCF9!es diff --git a/graphics/pokemon/nidorino/front.png b/graphics/pokemon/nidorino/front.png deleted file mode 100644 index 16b304216e80830c08f2c4d27401629e61721ad5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmV;k0!;mhP)Px#Fi=cXMVQc_S~+6PgWeDj5az7zlv=a^lwwNFr1<#wfPjF&z`&4Lu&5{~=zw?t z0000009ubQp#T5^F-b&0R9J=WmTiyYAPj^%I8Ji>{~vrF+o5C|NKgH;Iu&hJEn*(V zFOWVS-|-#4asVIdi~I%vULbD=hEj^Wy1?=g09dYljR55gFuCjB$qw~JPXKPu2@!o4 zV2HLf!{k7u-T^e>(MV2uBS29aJ(BRx<5g z69>hy5b-tDKGsWupS69`oFvA=lm%mLLr9_tf1w${v~I@5UB?W9=XQgnfLf|BnB9 Z`~|4Q5y-0pA{qby002ovPDHLkV1oHCIFJAU diff --git a/graphics/pokemon/nincada/front.png b/graphics/pokemon/nincada/front.png deleted file mode 100644 index 1c408a81d25693c63d6d75665bfc5692ba834f95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmV-30?hr1P)%B00009 za7bBm000ie000ie0hKEb8vpK)3Hj!Ko|hv7y^Q1DaAdWk{+p5G~^9R zEV>!;0EY5g?NpFdbPHk+?F+a`haip)MeGCU&?2}eg^V5U4J_WNNn4FN3;7{|yZ^iY z?mrSi$RdmX9CONFVDk@+!IkT6w34k+~*pJ%s& zICx(wc6)INaZE@2V$3odl!o+kzL@MG(n#Z1Yx0TpaSWthvd5~jkbpHB#p@=ZqzF7$ z;jeyNKq&4cK>V2FKprRGG(t(AvE$D#e?=Bq2yg1=oTf<8vswTE002ovPDHLkV1nfM B^s)c| diff --git a/graphics/pokemon/ninetales/front.png b/graphics/pokemon/ninetales/front.png deleted file mode 100644 index 4c14bd887c11c95cbfd950b44cb5dc663a3208f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874 zcmV-w1C{)VP)Px#Fi=cXMVQc_&74YuVi@-3dk_#1=EYL95CH%G|Nm+!|Ew|pln|&80000000000 z000000BTW5KmY&&=t)FDR9J=Gm)myZAPhw{|Aqb1PEj7I@6~PD_wSD&bDp{ zvTgtUApV(*%D(`p$?T@c=W0_qz;8a(huZYaaYw>Fp6Xp)h)Wwn^_xeCs-u$nen$@s zVVGWqL8&*F;_{6HT=?+LE+0s@4%mA}8#I&$v#tumUZ*A?K28VXsJ|iz5vu`+Ni{rB z+^F&lAi5x6rkY$d5G;aQLp(BJlbB}!mlcKW!59cP*=(~wh&MyX#z;W8bFo70+3OVm zGe(2{%^#xQ3qxJW3u*Y9tZh#Y*-TA@&DU>rIBQOHoeGP%$=E73u z;n51Pq>?xQ>A+{sWub)uRj(E{2MC-%M)hpKY=T$~k$U-Isx*KT{BqD@p-oXh;#jIa z0Fj8Q*P6ZYl8)Pk}j0AC_8`P*Bb)O! z4~rxA@!E*$tTdtT)|Ui{S+V-sG@*k!0vOgU0K~12wJ^93))Xf9J&Q|1wDSRgOsMkF z288(@(4v6<;DDamk)G zs;=H4dhHnNYA=>c03&SC1{ZzMcS}559i*!TsE5V!X{Ps0e4%#$h7tH}VKNJBBo6Y~5glT$>3$)c>OK7w{S#_KBArF8}}l07*qoM6N<$f-7&1 Au>b%7 diff --git a/graphics/pokemon/ninjask/front.png b/graphics/pokemon/ninjask/front.png deleted file mode 100644 index f7c0d20dc49d02c23ee8f5db8632a7cfe7fa91b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 zcmV+y1L*vTP)0001(AV9z{P}ne7sIahrI5>b{K-k#O_|RbBs7N?CICyw?L|Dv90007_ zNkls)XqV;e#{gk*H4qHLN(6bP6OEhw~T$W-;6B*!N;O{Q*n)7^bPz3+Wbf^bu# znh>u6X2~_gEcq89=SRS$MCu_SDm&=W9MA(d)pm|e zvu#=I_bY7Co5mOrQn~$sW13%AoeCh(3Kngs0!PdboK6RUUSFLhk|iI>9Y;V9h8G?I8^-7GjM70M+HX3-0>%FW*0p0m3sKLqM4Uu3I|a zqIBEibs=5v4aln5s69sjJKm)$P!rlW_NT2qcqK^i}tfm6LXCZSSX4#x9r@ZJE_q13*oM2B3 zUP`iClI3CXeKxKO3%lV=`yIq2kiKU}CxD*aAN~d4`}pX(AU2ag0zOT~Ojhw4;Lgca4h(>+^_%)n^#@jC V38GR57vlf`002ovPDHLkV1mnCU6TL+ diff --git a/graphics/pokemon/noctowl/front.png b/graphics/pokemon/noctowl/front.png deleted file mode 100644 index c646747b44a09fe7f1a239131143bafbd8081bd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)Px#Fi=cXMVQc_tb0mgK{5aKw0l}g-pyJ;DInF9Vh|7zVq#+d|Nq4?7@PnA#l^*x zS~;YHYT%k>-2earJV``BR9J<*mVu6=FbqUVaEt{a`TxJY83$V0Tj^rZo+YYPweuKf z+$7WVTUGNz{rm(_p??CXvlIaC6Y2~D4|;%_`fq?}2r$nd|Ibx<0`R6r0f#<+en-Gy z6F(Rb|3(Hq)SnEvehlz3Agqgl(M326h%78oeKBVX0Cahk#td{q?r-k|2^r`etLr*I zODPcp)1*$2qYsh73g|ll`XZ+R)@TFlq4b_hRn(!67^qEM|4|_Ww(1u^BL)cAl=>=1 zX$lwsplzDi{<`j_C9xuasTMt3?V%% zEUJqx{81#=#|*dyRg7V+X}O~ZA-#XiklXlJAm%9$WXDTfGh*^d_L za}HUMmcIe9CO!-x4%f?g61jPXUj_mM0x(C%zHX;J3{d*ew}J6R=m7Z(Fl+&bu=p_Z z;|_o+2#*!H3$UIe7g4T&;YG0PAdsN0&w1Pe-M?e(fGhz3B1k<2)q{{D4oFCVNO}Qs z$iYbvr#K8iF@z3TR5o+D z=8nLJ1vVBG?ggBONvX8n${3khy^csPKlfVfCdK**rjP&inKcmVkL`1sfWC@>%x7!Uve00000{@qVc00009 za7bBm000ie000ie0hKEb8vpKk};3kFcim)yksm9s7sd^5FIVvCC9)5 zXH*7;a*34;-H}S2($6Xd8yj;Ekf<5*7*W?yk`4$VH{W+$ ztPxy_zX@k6V6A|jeDZmy%3<61lyElL{in}^F6qk$&M9(oLT0BPN@ueiPnqC6fe`sj zWt+V=#8En9#U1CoNXnmp6E>-cV^24g&Sr_9a9NHh_U|=7HU|qQXF7^7EMO!{KVdJx z$NY~0Txg3elyaY@!^)7HSO6fbiK{@#=}O~-cmTt%$8+FHr#MKLGNl+4;Hm4t@Osh< zrK^Sq!w~eUbADZz=|8^lAf<=Z`E^#0EWW53=*!9w!CtB&Q~OZrQ=}_9fYa4JU6oe7 z8WfPyZh(-#uG&@;PJ(b)2VgZVMO_Mv}mpY(|+H?M^@f+mw VtEV%N6mI|k002ovPDHLkV1j3JGm`)S diff --git a/graphics/pokemon/noivern/front.png b/graphics/pokemon/noivern/front.png deleted file mode 100644 index 252a56fb46cdf760d026aa1f6841015f064b70c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 972 zcmV;-12g=IP)|LTWs400009 za7bBm000ie000ie0hKEb8vp?1f(k_=Hxiw7) zMAv^HR|h(jH@F~oeIA^-eUr(Sbg1w@2!ud91x>|tD_Xi4Oa{>{WXV=2n%>@b&Xt@f zQB-*Fu0crmem>{uNY@tPKMt>b$x(bT?Lab+?Z87N91mN8ho~Hht-wLVP$C3vKpGhA zA;fPZ)dG64KQM6|%g2FZ;?Wp;@xi1WOok>th(|3z_D1p8j9OB>XD}HJ2^|a{DRSf3 zf(fH|+y-963?{J*PsB-mk^Izx(GVAt$q>WkAIln;R>0XF$~Sp$ETf&}=`9GwMzRK3 zfLX9FF%yIG#)ztHR!G=8cQ z49ql{S#T`7+xhj*FM8Mv3I-h{aFI~@5Me#qt7k=V z!x@Z^{WUnk?q+_Craxa6rzg9d0tP0kz?8tgw@G)%xfa5+CCzq?U!0QUYHL!h3q@)PI6)uY#M33I^CXfn%Z<5-Hksdq(48Dfq z43NKWBjD3pKy!Q4#h1x0e8hcER$$-ONZ^RC5qs~Fd)xq&0U(}MU?e01Dss-?B9R1W)57%A^oSzGe+iypVBd_x3%=yjmr3#g zO>e}T-GW&O(lu~x!R7@4TF0lev;tcgh2=|bZ`sf^-|4e-Uha+bTU zP;NMv+RklMLPnZEwG9vJ;C#SM6OO(Q$_!%jVs@@MhO%J3-k@vX=~rpG#UOkLY%B*O z0_O~T0Efj_-`6~B2(@j2>sRe?bm(V`JOm0-HQ;mEr}ZT$j>;OUnQE*< z+@%$858Q?jVmn_b(HKE^7jdB*zy(xylWqgJ*`M{FS-0_<8-#hik44ofy`glX(f`7zFr)xX!q+ zz%gi!p`lmzl4nWPd)Ms!29%j&=yfkB=>L={|Ff#2Bou%maKQ0-?p2^UO`a}}ArY-_ zr+QC1Y{22deC$NwyZZYNm5*AiT$xoVwz)7rDDq1&vrv^y-rZfTT{C|2=Pf$wa$Ue> zQ%g$hbHV)W>=C}jEk1UC)D$mq+IxTX7WY#K`}yrLgHYJNZ-*HsU7J<3>W5)N1B1y~J$4-%?+e@BI;T68Ff(qMmiKWCoiKfGWiHG*-RPxy{uo*PHTKzRFgFS-by-IS!^wxKZTi6`3Kg`nP zd@IAi5}@JK!&Sw=@nBx#g}Q%k41qib9LMDh9qxEB6#RItYSLgF;2-_wb%P~O zLk#nisMGA7>lm%vyqI>hKUZKbI604F?#u^kqyI0H=k^k~7tC?V85A|1u6{1-oD!M< DbXm;A diff --git a/graphics/pokemon/numel/front.png b/graphics/pokemon/numel/front.png deleted file mode 100644 index 2df10f3c71b999185564e115ae7276745dbc37b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^|r5aKK>j@SxDpkofrc(8$K)3Hv%Ko|$`mIP)_8jQHWwG58D@FRe*e!PK5U}OZYc?QN^Fs*?BL^v}{5CpVHQ^R6Gi^Teh#PcTJydE^; zYwiZaggRQw<%0$QB}xdiR_uIJ6$`lqnBy>Pt<%RjK(qA1Nx)pV4DeveFuQA1D1=w!bd&u@fZzg zz)1inz>PEmTgpO5qy?{qDXQ1g4y1fD0k;S~bO7$8oa~2hm8S(gsXV|5oh#Q>bYP?u zeZZ00G3^>U;P-aD!MtL}}4}dO*?klCIb_}}qLLB`~IELB> fMo`oKpOg6kGUAnO3gntv00000NkvXXu0mjfm@@45 diff --git a/graphics/pokemon/nuzleaf/front.png b/graphics/pokemon/nuzleaf/front.png deleted file mode 100644 index 173398f528181a8cb3734170bf570f0b94f30e71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wKls}G}KorI&1qnrpSV=B`PY_u-z)C&< z%@`wA+lAON+71l~TWn)7GO3A1;s6n@ZHQhCUZhdFTp?B3l~U#nt|DffKFTW)()XM1 z{h0@Z{0~!1CV$bL=|y7VIL_<>@x+Bk)o=%x75?4lxSFc@y#8hh$ zl4l85Cn=q20ssBSJy4gN5ls%i*h2${fgoq_&$t$wuR@4}sR4V{m#B-+nzKV#-=z@U zA}aNO%@;qUXm4(Qidd`fD!+^RlHMACUA6Z&$6gfQ`cenjRaN_G@Ii>8mpZ@##lR(L#$s%70*|wAGvAa2#E^RBiWjWr$TIwYrM_Y z1oR^OgzF&R834cRA9@5rX~^M=Vilo5X#y6aY%h-P8rS zmU7#Lk+Dr;QBJ5d4~lSgiIgr4vdv+*#f;tSfh=um+(#R~Fg-vaP(Pmxv>Q8=IIKYq vb#D9zsmL2hObc~3S^}e&0F~;Z{*T6Qn*8aWQZFW?00000NkvXXu0mjf8Uh@p diff --git a/graphics/pokemon/octillery/front.png b/graphics/pokemon/octillery/front.png deleted file mode 100644 index 2fc250c8d162fe3ab2428eec8693df4a8be72f72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 645 zcmV;00($+4P)Klg(<|Koo_?f}m}cMD5lLXtFkA(As#q zuZLb~9f7WrU63mc^Z|;WAke%(sh_gmJdD0D4?htgi^27I9_iv8o*XRzaW`-oCgV8|rrg zMC=Y0U%vn9n>qwEEdT?@<8uQr?INli0iYg_zcC8}D)RvTe8w)|AcPkHZbd>65U%rt zlu#6*K?)HMA^>$A+?5bnI{-5RROm?|Siu+w2}E+q9TF!?@8o zZ9{gpG28?N`0G}G8jUK}J<=rNmir{2&31ZqHcjXJ++yw%EKSL|aICmbDCZ*Qz0!;K f-s|H1KYRWFuLa8)na3pc00000NkvXXu0mjfWL_7P diff --git a/graphics/pokemon/oddish/front.png b/graphics/pokemon/oddish/front.png deleted file mode 100644 index 3ced8e7058e74ec08341b45a37e0302add1a0834..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhDOP)Px#Fi=cXMfkwLi>xt9S|FU&O2y`T5D*YrYJ+o>q?EM9?m00jIZCozdDfMz00000 z000000J}6%i~s-uL`g(JR9J=Wl*x_*Aq+&ZjZMP;fADyLUT%iDj5JhQiqcBGc9ls= zIXXJ}Hv+)l*$FDHBLK#GCA-##(C3D~>V>dO03sux`ztc@A^=Gdp#A{FJyYV@p56f% z0Rn)QBNN1?21K>%iyS~$80}`N2&|+C!~j?q%3`-Cn*@6*83881{1$*Se$PM@F)je- z{o0>Juz4o{bcx9oj1kC3zANzg^-L!j@pZfb9QFZA6LfRrDYO6&Ffb`XbUwTHk2I7l z!aXb^S|F?@7zmMOQpQDC`dg5X$`NCR{2FinAShz_=Pd0BXvs790Px#Fi=cXMVQc_Vp1`ffN194gT<_K|L(;A002R1tT{o0V!ie`oXz<7_`txxXlQ7d z;P3zd0K&5xE&u=lZ%IT!R9J=WmCd$;APj^Xq!Up4{;zwJ!P>t~;^uCcV-IffF%yEl z-KM6drh<~8i`Au+W#|$@q}FN-;Y&>;WVyQz14clyz8n%+e1CgV1S!M7ee7SP8ZkqV zSH16F0HgqC0Fwi(S|AC6EX%Wl)d*lSkN^|{cmj5mho3|USx)&Z903Z#2l3Sc(7s!^ z;-L5eI#CjU@|^%|K{ o!PNI`{FGY}>}s;aaP%YvXMS0%U*Su|Z_x z>IP^bas&W00000NkvXXu0mjfd0N)Q diff --git a/graphics/pokemon/omastar/front.png b/graphics/pokemon/omastar/front.png deleted file mode 100644 index 87796c37d5891e67a96bf51572e769063a99bcf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 863 zcmV-l1EBngP)`1trhKtQMf00000laenY0008& zNklB;YV12rz$H@N0lN~Y9iPwRbp^qN)@31 zTZE$Iu`-0dEvhn+C5obUX#a@*1Nj?zXB(O-4((j^h7)@C;qLpr_Z*A;v$6Jvx{_X1 z#DA|__TzwRBEVMxY)xUjwgRxy0IPv&mc=uVYm8gmX|VKTB9!F5Rby6znHfEjNw)W3 zoe`0abfRRE%#RIT%|!vptQi1Sf;&+SS~+I8Zi6wNh;*v#&Yh!7W?A~PNS5FC$0G7ezP^d`bzbwcfXDV#I%x}ratdpHVa}RvB7}qT3~~2430XZDFEEv6{MsFKmvkA z(1R!(p^BN?bn5zR1W44>z6WUXyi+L2{+l1JJCZaZ-;=Y&rZjOjl85;Y76$O~ne<0= zaMED0so_LURquoR6*DqPVCX^4?7TPf3jici+Ths*JPuugt$Ll3l!yKSAd0)E<9nL` pyCe@6TUp-HZ=pie&;Rk)@e_#CA)>GXQ3n73002ovPDHLkV1j&`m2&_9 diff --git a/graphics/pokemon/onix/front.png b/graphics/pokemon/onix/front.png deleted file mode 100644 index 6cba5adc4d0dce3beb59c4be97b0ab98a1e62ca2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 832 zcmV-G1Hb%Px#Fi=cXMVQc_Qc6mLdwcfo?!C0M5D*aF)z$d;`1ttv00000000000000000000 z000000Q?Pl0ynF|>#D-8gwG1swfv|Wn;XoQQj zfMG_u=TvI|?K*%+*Q7(v02|_j0n-NkLFkda({@Hc1B4OiggqesNxu&Y#q%KKUk3pC z%&gS;rV~ib)>ljxc)h7{X0ZT-+XB$$MdmOArU41Sz60gW zBM>5C*x1xuw9NLY*L~1;Fg_j$un{8Gt3?v+Vi4>Aow;hrqX4^H;|ONPWa_o_Y2hK0 zKMQckcFyS&FmoA2WeAZ!pCWd^p#VXXM_QB*;mKM&M9xo)5S@!CSmX+zHk1qG!63J= zVtKBButRWp!ON~yuaOn_yn-Df!aCQW4xD-m^hF5<)j~!i26^!hfb9g}%MzYj%u=BP z2&aB^0vI3yl7R$_EErKqR;L)_jAzXQCif8No?00&w^z?ZB%fX6YrU<2k9vP>{uK}3 z>TMd0DM0| zuK@!zk6$j}zOj~@+(~?$>z4-bEGSL<_9wP{B~%9X6kO+h*N-}*y7z$YKS3t|`5@og zmc9ps|8`ID_?fW)yviM^OmAlc)LAmC6@Q@Lz>fmh>PXVW{UjaLhoXox-mCIQ>D12W znEP!9wngZoO>Tq_v$;v_`uS#Zp?6Px#Fi=cXMVQc_N=izLi=6-e|1m*oN@}brK~ew!0E=2N#gr+<#myjEVky1FAe5Yo zS~2+GkQB5OApigYQ%OWYR9J=WmC=&IAPhw%0n$Qg|Nn0{3AEGI-G{3$K5(@i$MGCP z!1#E~%*=d!g5?96*h23(Vx&&Cj0m0!V2&vPhVa5OrzDWz#SsC4 z^EZRPq=*SbZ_5$_U$Tg;Kn2UXs$$5Pu@-PBTEKD>6j0!6559!rH$tN=3@LsVQ<&;rgH!njmMSOI3ZzFSjkg>$&`$%XTFACg=y6wk$9IGp8P$kC8;E$sl zAow2vHdj@!y1?7eMB9>51Pr3s*#g}Lkr;I_BZF0%ZNlz&Gu(m+Zs`JWBW?!C=q6gr zQ_ceyU?5+7vRKhxJvp<3h5~l~G+e6|RlQNdpRSpineWaIn?Mn|CaU8U00000 LNkvXXu0mjfX*$Ki diff --git a/graphics/pokemon/pachirisu/front.png b/graphics/pokemon/pachirisu/front.png deleted file mode 100644 index 7d60cf8dfb55a9274df4bd7a1781a1c822e07b6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmV+u0_^>XP)*RTBU`3iO>~lSnYS~uvoQ9D!#D=4=8*zW51L1S;aFfZgEoe(K&uV_*oH>~ z3tWIxkIb7nXmv^8TL9oVBrv%G;F2@=+|4U^)e`E6!Th1h_xPv+3|rmcj3aP3#z^n6 z16Y9PQ2{W;uZ^Hnfct~sVn_lDx~EnSioB3h4LC#i38W5M9e@$QZP`IoK)Z)WogEN; z9hjVBrq?aObt2RK0)Ek%m*89o9Yi~zegm249m22xK@MW6cQAtmP8O9w%w?+G!Fk!a^-W}x^_?dxD=K=t-+XdD*^+?8@`H=*#`7u{ zD5EjJqubcKqyTGVQf{OI2Rksf824ApK@Et;p~zx#1Z?3yCL*W>_@W^W@<0JT#x2Kk zN#t>e{GYg_3NSXqMaTu6Kau@a<(2n3;442x0S#v16bDV{5{3P)k(74#x;P|k(*pQH*z-ZWrP>?t{IPmEB`1ttvP(Tn65csgDVTIAJ000DL zNklOtw&KqLiw1q+J!*+8lRFr8OD=Z|K29X>FxcS~nB`=?R1`Y2b-c zsWcJAA%>ueA8^bshaEJxK(J$!R5imLKE^jP5fk2r+1;&o@Cm+tMjRqEy$IB1=-|qpz z7^`qz!xT2q(Axex9yTC*0%*6VSqmb#PEt_n=aPVw)%b zeOD8$2-t8-=Kei!7c8!T+{b^;?`g?B%~U1a74zTyhZbFwvP~=eQA zPhRGyiFf1)o-8w=qzsa-@!9MUgDEA&7C z&^mp0Ry0k~gc=}#rUp_HYi1AtU?RCn~*HEDFB?~7_bSo;8=SKs8M22JAbC)IP#dZ!!y6w_o^NoiadN( zcLUesCr}%ZQS zOQc&*T?CBJ{NtqvnDmeR-wtI@lQFPO(9$>lvAY`WTReDnIBE%ac!gYl()Y(#<112X zmsaW@$OoXOy=|r52WaxO|JwiK?QzhMQ|{`!0HqRE_#d2=>LP=iFF61J002ovPDHLk FV1hbpICB61 diff --git a/graphics/pokemon/palpitoad/front.png b/graphics/pokemon/palpitoad/front.png deleted file mode 100644 index 05b2a8b24cdc03546f4f0bd2e58e7a1f2f01c3b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmV-+0*U>JP)O-v{4rJUPMSB z5O0(6swHJ0kel)#SPa${v5k$8?zG#0g;sH#og{kt=1#D%%D36#efYi^W*z4;{}Pwn zoIdwxjZ6a`rL(LAaJb?JAs);CEY}? z{t1c=Ug?_(eFRvv0ahLkxh{CBL5rdtZlgJPM-IsCYBlM=G6uOubNi8eo3_Jt62L8b z51q1D>cQc0`cWPx0V^(G;Ffx8M5)vF2XVmsg#rRj0_$ItS{m{AwH4%JP^TwfKYa%c z*b`ik@2x5I;ki<K(!EZ@Fc1guL~7KPH0n^POB_Mx=A?E- zYSr=pI2kh0DCZR#VwaDNhu|4thYooFUW>#PV!3OP7+~nF|6k7Ma~$Vbe^mY<&^!4h zaN}^VaD5SmdqF6oy)FDm2ocWbbm~c)3+T&pGEXqDAP!|p0g2cXyXuo5IRHHT1|b8k z#7{wVP0#Rk!iWcJ3#K^ccx=}v)9;MJ`RyHGSlptFKu{Ia0 z2q&}LP`Mw0oI0(XswReFC}4adjGzlUM)%002ovPDHLkV1l$-$Wj0R diff --git a/graphics/pokemon/pangoro/front.png b/graphics/pokemon/pangoro/front.png deleted file mode 100644 index 9de90108a402c6a6135a170e616f2b1075f26d62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 895 zcmV-_1AzRAP);(0O;u8xUirQARs_MNN8wq7)TfZplB#CFi22XKtM?N`1k+-00000_^RZw0009D zNkl8nu5XY5)K;W%#yYwv#+TIH(89cd&PXcT$fkO)5E)mckpm~6HE)a_X zm|08ZRUH~VRF9Hu)0UO#$PeQ& zH8up0%th}+55^#w**;U*Ah4ozOegC>zdbg})q8$5$Qo-C9*+rbc_Unzg0^v)ju zM!9IRyyF7^Q7s@CyXptBct!Voo(6Em{o^@bKG1KUX%wXrmVM;qR~`dUIz=GQA?^XU zFF|HXJx^qcL?3W&pMw;@y-y^@h~j=CFF&PJj~;oZ7C<{dwv#uKjoP_FZnwjcjrti0oP6o^Z-fHxsX8CKk9E6G7ih4+ygYlCJXW z>^qzIn1K*tc>t6WTv_+6FW&wrai|JGr^Yi{5+f+Wf4ctL0ZQykz$rLIfc>Vb>$+R< z^&1rL;rmG-+*JDto8CRbrg(?CumJ4$9;{E*rl>aKASu-KU3==k{f$e>tIP*C{DcyLf4pm;a{0000000000tD;&Z0006N zNkl-82RGZ)&n?Rnf5446O)`3JwbwUHWW&H%@YWh znsE-Qp%A1#fuE`)i9#%CeJJ#n|3R>t-_GamGWM?jB14=uU%37W zN1@NFQGjm+Q3y@IbK|>;u;x+Znn!?D0L%CRAc$Qrh?)TX<4f`I`72Rvz$chT{3d?J z?NZ$P1cbGj>!pYI5%Ej>43wi=8@Vo{$hwZ75P!t?a7_{FXTq9?79hSN#-Yeq<3JVhCjizH8(uoD_cvlZEPKX}6aI)7cacdJAH?XBp4Q`lK{NC`@n(`LCS kAeHrRnA30ZyZ&8&0DtPh*stTF@Bjb+07*qoM6N<$f-{XP^8f$< diff --git a/graphics/pokemon/pansage/front.png b/graphics/pokemon/pansage/front.png deleted file mode 100644 index 63e3125ca28d1bcf1665fb93dfb0f1f2cb6a840d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)8S%5XaZ1r8s{`wDz74A#@V5z0w6y**l4-P39z|q~Lc7b6j7K}-j*u~w zJK_Oo`Bsk*1ndKZHV;RqEB&!pxIp=by8rFs}3cJkKWv1AwA$6J#8uoEv}~0&S2(>2QD%5y~cg`kwMP0yt5{2v{`1 z_5$GX*Ef(9jTp^J1LvOso;-YAz`f?o0KD2e|MF68HLx%Mi9FqV_qJVbAAE$OF#(Vr zY!LC&1_c3Pv~gFS)`%@W|9~fE0J0jpYl84uVW>cxgc%;+bS(jkvvHRs?-3sV_)ZQd z(omtVQsd1vqIyAtG#HTPYJH`Ynk3^*{1&IM;>^`?!^Sl+U-QfUms7eUq@!by!)o3G zMKT1w;U&AjRvnFl>Gcn<;N7Y|>X6qf-fAKYhd_&0h?R@W$VH4akPQKf{|dHPF*hB~ zg2q%u><;3p2Ut9s1=lZ!s1Z17n;;qjeRKMMKRY78$xLy&J*09@Kwty>1YkO=Jj=R* zQdfzyscl^jy$tjKd7kb5hazIJ>1zKGJ(DaE=JJ2#`n%(|`e*tH43drr<%Rk%00000 LNkvXXu0mjfVr3Y? diff --git a/graphics/pokemon/pansear/front.png b/graphics/pokemon/pansear/front.png deleted file mode 100644 index c7dc3a5b8fce7b6cf8df00c696370411f03d924b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0zKRg8@(cK(#!FTH*;5byjk7-O1%b4aL@BFad?lr9ib z4glJQuz=f60-|9LBqb_g+yIb9G@&eSZ>SSvbJ27CRA+HTz||=*(4Trh7!4-RD+@@o zMtt#z&R~9rIC)ypIPWWLn0biH3g_1g5E*WofNoVG8|3N@7foBUUA`iHtAe19ev)h- z_4^jp3yI-FBM_{WI;$Vo1LPF6zj|9-)OF2ykb?FPq+3l@T`$!Dr+IMXZ+Dk#+fa)_ zmD??Lfei=V%x1f7>`3>*y2u44tFKKcV^;xr08#msn>TP$f6MK4S&gIA1^S5VobT6$ z5Z=x)kOxW1_kALgGV_KJa(fdUs}mS$tr~`9tEbe%WE3mky|ZY@`YnH{m?KE{E?w*S dEB$YOVV~ZFi8fJ!xrzV)002ovPDHLkV1oC&_-X(E diff --git a/graphics/pokemon/paras/front.png b/graphics/pokemon/paras/front.png deleted file mode 100644 index b79705ba548699a526d14d45553bafbe9f678247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fN(P)Px#Fi=cXMVQc_y+J`@DJk}9YQ?l5|J70u5D;)k7&$2r=7TB!_W!hEApfjlT3TAo z&CR5w&5C_=+5i9n#7RU!R9J=Wl-qK{APhvoc7znb{{O%2t{|CYTD!QNPG78CCIRn} zR>%(FiYudK&+{@(uPgD4{&u^~^KE$+;lOc3oE@+{0bBrK9yP^uOc_ zo^(u}OWp4Gy0#j;hg6ReGP2eUHXDZp)0m)zYAvNb{6EZkq zQ`OM?djYtF+C2cbsSgC;p58X?g*^%g55gWm)%Qc&*N5JodJ+yM0oQ(J(-@nZQwQwT z&k*~(nS3B}*Yp2r!29$Z0>11HrXanppLj4fJxBYb=3Rey`+OhckHRaixZP)F9yaA0006W zNkl#)Dj$YN(nl!+6qzJ#xU(+{oIRyN9ef|~Q$YC389wpX8 zz>V2<=xP`MGaRE8$4hd+NuT};igQHdzLbzdAfj$eWeJnmkd z;_?&-VX=~_EW?p<*?lu%rr*kMhwn9GW7`EXb5!!j;g@CV*mb568VlV0e7rk60+*G} zt_Nt%;VDKY2T0Akl4yaw1t0@cJPFNHV-!CHj;O%(g8`ij#1)_u^d0ad;J;Rx)q}W5 z4C@2H6C{-22ABMy5G` z=mP=A6(~123wD8vqfOXdsG4?wsJjR)-~nrHr93HAGmOyGT2)VW8R*WN+;`t+XetM9 t3UCh4+v_d#vrR~x+ zxTEP9(F}zyJ}8(%3dNp6I|LnpK&C+cgFsG-hDz3X4TOA0eLwf!-S^#zkO$pk!4hlL zaBaXq2pw{GA;pOdwsaQw)=WGdXFtaCrOl)cIyQ$Klm8$^1;Ycz@bPcq6}c` z`N3y-{9*8A{tKfcA;gcvatPhy(f&XAdpMUVMk|-%=ha0S=*zvoZ)Gk8T%B)RloRtd zr92h;nV+@@Ir2KCLny$K^0D}St$>q`Yk&1wC2|A$@{gFDsRA4@aG6t`2?H*ZZ!%ry zU?O_Vs`!Kg@HaAb0Tkf-3k9+gU~xX10%S9RMSwCuIh)NgOliSag!w`$Vv05~8Z|y4 zotIe*C+gBU^?;EBDF(!`mjDt21L^_t{_P%sX*v*ZuKX#OmIk1p za>}A?X$q*YbKf*Iugif#{=z6L0B8W!qT#wr0P0w(IcHj+S3FBra~X1@S3GPQYfeFn m@4cP+U%-E0-Fi0000Bh_u-FbK-M1I&`Z`!@mnq;x;67YjwFhRSs$pAeLO4giZz?$!SF%vG z%#!ELCi;c~{#Fl`*+g$whzML74hpAY#2}fU3YpL>C{Y0`Qh0{z=(P ziVY6XsZRrpFCeZdNSeD}zSLsl@?a+74&)+V@byS6_8t2n7(IC15%fDB04@f>HO^YR z>JBj)X*%Vb=A5S>KquRzfGqqPkHu|KQ7tkJmI(eZzL_L|*zyDya2Ruz)Z`IHq;?3-y{2l)2t9k}u Wz=IYvojm&h0000=x}g=`1tsUKrr~&NWge7@USrW_^8N0P?)g5D#!hA0007! zNklZCGnwgKvg z75P@H1K^YrwH5-DcHJ^yuhnW(jBc64@!R%00Z_jLc-93*jw=BDGYr^ZNNK4{>y3TU zw})i{n$|q9iEXn|0qy##&sYVp6MpLvyFVz-#_`>C7@>z=5wIJ_p@_wlF;)QVK0L~N zH0I=r6?k}f!X(F-hkP0o03$Nyd_c8?;f(s^1!EsJz>mdUAd`fU<~&4z(w;ip$=&2J91${kl7p21 z?I~+EnXINEiAVzKu2}c{C*WfRz-MO?xJjoW2Yf}~?9ae?84&UDcQkQ)ey9MCS>U#h zz`e2}nR(zdE&zW~3M}}-9#Vg*tfo57h~GoN1`-8s=Pv<$@h^S^AV888K#9)Eg#=I_ zpVtfzq=YnnxYa+cv6aZ!v|zhuDsco3seFy<)#<;F-@#DOf^lAD3jhEB07*qoM6N<$ Eg7n&F;s5{u diff --git a/graphics/pokemon/persian/front.png b/graphics/pokemon/persian/front.png deleted file mode 100644 index 650de8dd74ede69c1dc0f0f07498644c8767b6f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEJpP)$R5 z3`63VUx*MM2{6B3ZSdLo>-f-h!O zCWxU#dSwF=c~Sw;K&F6$Rk)%e7Qc2+XSYq$Jodc~dot=G z!8Ry=K<&s1tto(AP#!&9!f35I2Qn$Ai1cGM6j85n!^?dGh{n%?L2m^haQ& z1lyVjC|S1GqZt8NSHjb`HCiD+kk0LC~qI%28lnsAMUaIo0NH|=i?7XNq>i}n;aIaW&meK`8Djd`(bv5D*ZUxJY1lFu>?|$jG?(`1rVpka#dSu+U%t00000000009XaB40004B zNklZrE5JlG#qBhtUVBrF=9KeRfIK8pk6d}lEB%8T_6KyVlwDx5);FNqU zrAgyy|KtBZ>MZ?sAl%zpt-Mxa0z^nfP; z5K0D8UL};HO&pmp5D8x<2nZtvW-1&{;0(ExezZ{jxItec&iqJuDjnB_qg1BySSes2 zM6S{xUnq@q;pFi$&9Tlz(Ud0`z*Dz$pcB?zmd`}kqG5H)!lgTKMizYnO=UFHFwhdr zXxdK(3RuFWw&SmDgEAaC+L~Ubflgc7LEvz_T6<*x?O7ae*4}J)-hnNO{Q!Jb2yk}h z+Zt0>AVG-D));fC@IlPdt+}i>P6hI#nJ)*0000< KMNUMnLSTYf(8qWH diff --git a/graphics/pokemon/phanpy/front.png b/graphics/pokemon/phanpy/front.png deleted file mode 100644 index 22ef3096316086bc6ae74781c54bd76c1c09260f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmV;;0W$uHP)0Ju0X@Muu@`1okJxQK{|(9qDR5CG^vFaQ7mm^~YO00044 zNkl{k=@B^q zkkvPoixYqa3%VyTX2FY36M{{>zv1R=MbQRs?Ja@e-Q+= zEk6ihWFJAo0I)XH&A{>}{z|!Lz{nRpx2@>)VWn2GxQyeQz=0KobEOhh0NEbnyDMjj zK{zB3GY5Xic-A6PyoZUP`&3h2Oi_?GzZ5Nfi`TrS+R4n2Nq`#n%Bg%M^r}o zxIbT2184M2z(g+rU3B`NHcS%TP{@HLs#wzh!F6?m2aYnEDY*9fJ7iwhSDz*y5ReN^ zKQLhb(-Y#RGu1pH+z;~{XdW$R|2_Zv%%;4lQ-|^k5KVw#kpUyG00000NkvXXu0mjf D3%$k0 diff --git a/graphics/pokemon/phantump/front.png b/graphics/pokemon/phantump/front.png deleted file mode 100644 index 2471e23010c679bb1e3f8a557efcca54fff167ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)Kls$^VKorN5!onu3%C>?}v``S%>9+6; z8pyy}Y$4=%?LCp{jLd z@QHxj@Ud(K2a{i^9-&z=tYYybcN diff --git a/graphics/pokemon/phione/front.png b/graphics/pokemon/phione/front.png deleted file mode 100644 index 10f7d01b52033ef34cf40479c9fdaf111cf1fe0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmV4*d!jAw8G{)$e zn}{}`YQt~AH37;d{3{0fg#kcJY+wzT?^Xs8OKS&mMJ;#B0&R@D&E;BVF)p!OESJ)(#EtwsF{)C1t006YK!3-DpHR&7N{zjc761*l53 z;i^?VAh1q`z^b7wo^`WpJ{^XL7yx)Ojg@W>D4I4rnrspP29|FPwI<{km{9}{*>bo{ zC1YUun(-WYz@n;32Ve@|@1*oZhN>O`LZup@Bm=73Q|LQelzj`|n+0o~td@sdtq`2YX_07*qoM6N<$f{O^; Avj6}9 diff --git a/graphics/pokemon/pichu/front.png b/graphics/pokemon/pichu/front.png deleted file mode 100644 index f8974c37b8ee6028b2c23b0a65e330522bee7198..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP)Px#Fi=cXMVQc_ARsYPK|!Q@2*s=r_U2N9S}FGKlwwK{l#6@r=FR4Nl#3uBy(uXG z0000009}o6+5i9nJ4r-AR9J=WmBF^dAP7VyB9bQM|3CKu#x~s*J$)<3O*V7SAVN}F zT3Y(804Dw0Hb+pv6v6!SfC+;7vz{pc>iHx9eBT)ZAl@UWIZ%^Tpn!J-Xm=6;;0@62 zaX_n~*$o!}cm;^iaitW!)bG0j@b)J#yD9=OM9!I1`q}&?_OOU*t!5*FkpNU`y$FQ| z0+1TIzw`hR0Ly;&h66A>qGFhmsv2BtwAXs(u&2Kv=CzefB$|97J=h_M(`1`iDCv0Bly*PFcQ^p5p2V}=>hxFentU_ z8GSLc?}efL&etB&T2c}j0Q6BpR{s_!+yEjI1ox*A0_zL#XP_k*Anf-kv^JJT2>M_D nQqY|`@RmPGbN;2JrT@_%{xAw2ysM>l00000NkvXXu0mjfKl;2e diff --git a/graphics/pokemon/pidgeot/front.png b/graphics/pokemon/pidgeot/front.png deleted file mode 100644 index 0efed3108f9805f243d2791258ca2787ba309540..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 949 zcmV;m14{gfP)Px#Fi=cXMVQc_S~)2Y5D=_;T60oL=Coq}=8O37c=(ub?qWfUIUv3|NsBy zq@2Bbdx*Wn`v3p~Gf6~2R9J<@mhG0KAPk0^5UhgA{on283q)-l+y2_C@=s3syyOD z0Zh07U^$1X$>fCkANNw|nBDy6ke(G|t2bkU}r+y2BK(P{7{S4z%1Mmo_l?xzjdar>2 z02Av)oH(9O#6tpJL$prZGH?P;wmgd`4q+Ig1BA|kxUT`HQI|KhMM@*?E!gcs4^TZX zUl&IX{*d|8p@Iqs*qcE7ZPmL7G0DFv=bZ2WAZ=po+lD>BJdR;ZlL&M}g^JY-j-%lrs5Q+~xgbL6h5~xi9&PsYKo%K=# z74#gNzFXb1SHcSyrJbwZGQe&I)FFs&*IN_#)@UBo1gK_z-uz<;(e5o~0Brt|?;-EW zrQQ*P2j~$DX1vZ!lw&6#Fp8*|V8^d3v5aX8s-ua!{2)6*X$=%iW8G*-1L3{6f1zpGP;f3XQaKH(Z@2?M?zo)ZQgG&h3IZu)RWyKpV7*?G?Cr1Uy z987sbWPSjguBI8q#`Z3fu~su-eNw`P;8(zjfa+xF&u$@g@8Jn#o9NkIFRv%71GEnP z&7YE63G#dq`D^_=qb*&4ui7mibhQ!0#+O^+&4@EBu&gU|^&qSAl&ADQ`#ulgpQXrc zz5S78_Wb%&Z#zOWauNIF^xbyZkL}A3-P85-)m!TJ-B*N90+;zG04~e?Qvx5=`+wsf XN+u|9!^cPx#Fi=cXMVQc_doduzF)8k1K_DO?kU&U-QZe}W_(3TkczA&StaH`X-mH6C=Dk|~ z=8LR*TAAFy%K!iZG)Y83R9J=WmdjGZFbqX2Tcfxnvj6{Y(ZgXuI^o~jq(bRDqWIDr3c7%3jsF! zCmig2q}248djpmP_~XH?oB(p7PA?X0M(Vm1*b5I|0R9@SpA=A39z5c~u1v(c9OxNx zofx6%C7bgiKPf<<7$1fM#Y| c{~x~;pMm-#=_)B}a{vGU07*qoM6N<$f_d{RAOHXW diff --git a/graphics/pokemon/pidgey/front.png b/graphics/pokemon/pidgey/front.png deleted file mode 100644 index 44cddf449b25a9b0a47dd971d9680db209c4bd3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmV+=0^0qFP)Px#Fi=cXMVQc_fJiXSgIc6wTBKrH=DlJN5D@?FoPdCUy(u8LxVZnUbNKl9?qWgB zgIYi!5Exq;eE%_APht?n1PT${{L@x4BfW(;Yz@2-!f7nwd$OB zitRY}=+UG9FOh%rdkNbJbuM^M#I8RI{nTy>jp+82(iTCJRbcjry#f+Kh{+UX2LS?N zlq?dd4Z?98d~z;85N!F+Q&4b$gs=lR&st+Zh7mRZIB7IO2W*@p-L(e$`vBR>z&--~ z>;n2X0LtSxu?^|xIjpA8)Cs)%U|JrDmR^cJjG6LdEbn`|fFb_@cyPajFopO4A~!-; zAPGHAm>|3p*f9Ga1i2?l&@VrS>gDEPNYAj6AVnK%BLopP#bg9@=eYD0yl;nwsRR!E ztyR&lCfzR5^UR&1WiUvzhE!{2>D#F#o%6E@*0004Q zNklrT95nG(Ug&o}ODJ*b6cQm}Xy0!q9FT?ZRL?PG0Hk5~t{mFm@-T*%R z{tfa8uj8VB+p|oO`8dSA0U~>o>KzmL9FUvishLp)%>eB=8e?W>AuvRH)+WG&0Le1q zm05DeoRI$o0IDToNCTDufEdGSrSCa^HGXV5y>LzaY$39Z#+wctjC^|=>bG&U%E9ZUH07zU6pRt;)|@SZRbf| zrN)2FM5BizOThSeJknhraH40eJKZ~$aH6Q((NFh$6BQll{J!QM?E-O%HhY1r@i+QI Z{Q%VgkW=002ovPDHLkV1iY7(`Enw diff --git a/graphics/pokemon/pignite/front.png b/graphics/pokemon/pignite/front.png deleted file mode 100644 index 39c020d57d6c0b5c6c4fc62480ec6ef281b4a797..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmVDERpJz^I_OSTN{tD0nz1=)gFzh$wJi5Xe9{I3OTMNJuz1H~;_uG|GIb0007X zNkl8l26vus8kQgeii!H*36`wY=s#pkW`T|IuK{Cvaw! z1R(2w0LbtvaH0uHGWfdy6Tqom5U^`BEi&ig3Y^PFD(II&K?VR_pp3`z{IYp2niN4b zGSG|(>8P@>0_!H=?P zHG5yMqa!Y-<3oTEpf<{nDq_E3(O!sHCIHn`Xc?&2fFjJuAXGGK<_M|DF4C})fYLQ< z*yo%Wi>4tWI%{UMyBNlGs1Ow(i5Gy&2K_YRr_MTi;Ks2HiuiF$Qc(>7*Kw7!yyVXJ z!2Q%Vc+yrm+kT?-69JB$=Iq?VeI4;u$C6X5K#H|y6Y6} zbfDzex(VJM@T5earLnzQf$C1(34rghVEyJ-1YnD?EW>KyE+*jn-m?}|*HOTk?YeuI zReS<|vgc}`9Rk_2i4RcsW)t7XinpzayU@&cf?VMJ`A0ER`Boon)vw$&m)mR!`{0puJ@d~!L9 zzQ0I58gT9_IhQi7*1-{=l>wP`-pRv<=1>h;B b|L@~B6zTG_YMuAc00000NkvXXu0mjfk1tpB diff --git a/graphics/pokemon/pikachu/front.png b/graphics/pokemon/pikachu/front.png deleted file mode 100644 index 9a320c28660762bfa26544b95942c82083d7bcc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcmV-R0<`^!P)Px#Fi=cXMVQc_0000fDJf$y2vSm7_q`#UQULenQr?sR|M#W;|NrJ%Ld78&s4x)V zP&fbp0KA(8A^-pZ$w@>(R9J=WmeFE^FbGAZ2%)vz|9|d)m_)Nqv2JhPhia|&gb+wG z43{qbli;lXc9QT1fO7=(p9kQZ=lVDb80iN<-QzgMB7>2rBe>fX15gKGrX&6eV3S>v z>VSV3Pyx(xzu!|5w>tsCOQQfWyAz6<-NM=D?#nVjy`YXsX`==*C z=iesaL^>wFURq3vo+<~d{M&%1)v^L!tk(vhV*ui>F9Rrn4B+>zu(ooL->m=>4CS`3 z%lCpzsDACucE4{gfQ2+n^4Ib+yvfRt8#Pnr_;8@T~ygiy;m_FLtz(i)u0 zrWC&!L81U?PH78o{vg3;!1W_}5>P})Ft)GD3P56gt$x8^3V`R}a{!z-29fZt3}y5h zidO)0kN{@N{|7K%y&b{?v+%r(T>KtE3;?UX_eJpaLyp!lQSVO&+Mu*zaZ~YA{LsSm zPQemrA#{otfe{R$b)&*h{D{JJ$pCe8muLxPzm*X#a_;AiV>19;e^=zWvn#|;Ho(|~V6X>RA@5Sju*H(>^Z_bxF5fTGCnd7uyvX4O!O0v^8oQS#b4no{6m3pp zNC)yW)&dGJFvU3WWJqCf3U?xNU@;6#5l|HY41s@nJC;2SRk{Bov4N+7o;AGg3IMNr zR?vV|LazY!NxU+^%q(Gav|CERo&<x8cQ9UnDaD7+~H9jwi9Qz*q<49>BW5?+3>Q ziFK4CV63yvWHnn`Ks%@D!UD&!lF#lG2o*pEI5WW91YrlH&w;E3m&Q3zwfUso3zvG9 zW4$9&cNWrE-7A0F58^pwl*xYuQedfrQ2kUpo~ipCr&unN8DPQ`;FEVW_ENl(z|}yo z*-YLe&bL?c1p`FV%-E;cL{}HLx7&OZCLwV-&kaCal7A}8k0>f2AV?GlMLNLMMOl_# z-2I)*)$p~q-8s3gny=;0@4u^k-sarpo%=aL=tI@~C_n$Is=8_O=^|QpC%{#G_vYc@ zZFQ&{Ux6jp_Bj%VJ;5SCe-4k0zwj4RE(*Qlp+TzLjf9A2d>I(W5Z!-6LLhvvz>e?q zSc#ijI8K3O1w?RkZUIO9ZRF>5-4sL+J61xK5<)nmbxcn0000< KMNUMnLSTX^h8g|< diff --git a/graphics/pokemon/pineco/front.png b/graphics/pokemon/pineco/front.png deleted file mode 100644 index eec63a8ec7b1f1ee7d503c8a2a48644a5412759e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmV+*0^j|KP)e zuPx9eLpW%#e*E)&G}Lu(@miz*8*sS!Phb~QH^LPNL4o_!-=Q~&-5GDXaPRjgL2m&e z>h}$4?N_`yUUy0bm1Y=f@|e^z`L{y*1`#_;ZX$;cGhjDPH2lAR-2E z`j(b(1=gBB>j4r63on*vC@A)<4R5SixR zfq{@WqFfbF7G4@aq>7X3fygRN3v~+X<*04EHDlKkf?n!Dl+e&QA?OU0VA6B+mI@b0 zv$@upso6zOvQZw176?Q$8Y%`&bedhY$kzB!ognYj2@rPcU~E&JV5iA0EY{CZE9iLD ziQM}90wnyLmC#+pM&u>7*-_Rhr^6LsV9$i!&GBU3s~6z50OGApy@Yg<=T-jn$PC$5 i@b5rpy$o;hO5zt9kzkX6T6wzw0000Px#Fi=cXMVQc_NR9J=WmD_gfAPhupjFE`=|L?7CU~H3^o;;q?)vT5<+oM6? zW%)10x_$`=+n0o}G2t5<4A|B$T!bxdf|y-?TNr{^*!DTXFtFbN!eCZv*ry0#Tr5wA z@Ew4ECM;N7am5R<(v<|qXBWNYeQrYEPn|= z33C-Vz*f`C^$jp}976?A&aS6Srk^mt7IxQDwm~UjCfs+N(hI?!p9n+`NdU~DNdVtS z4oC?^4{5g`aE`z&pnBX{sxrjv1cEses{@KFeITJQ<_IJYEE#w-05Pv1@!%!;@qYLY zq!c+p_hH*2E(F4VJp)PtI6RP$tPI{(j`x$^0Km`JUlH=qKrIL=9{@<1yaF{4SzVX` z3XmCD^wt8ZKM9dK2NE9wiM|y%1R!beb7K6^=D-1m{0#uzyg4{!z*TH5l$6QJ%3eO3(#wc#Cb@?)_ej$FIRxLmOTXqC;?+lgt|beUWCxh%K-G| zkd6)sicA`SPEF(n#6N(PVYd)~8PH%Mz``#KSfI<}Xv203tIn?wb5@U~J}8;%K>h}* zMF9GH0JShVUS#up(e{VR%H}wT=ji|}M|h`R102qW#9BEfN0+vh=eGci!6cEU3(~WX zv73k30Cau7P!C{Sl(M-r=-*{vdm`;1E6#+=LS>$9c@ZfE=Fs4~+gcdCNx`t=FQ*3m dyYz3oA3yw+EPbL|i17db002ovPDHLkV1kd9aH9YK diff --git a/graphics/pokemon/piplup/front.png b/graphics/pokemon/piplup/front.png deleted file mode 100644 index c2ce15cdc70eeb8cf38d8117884722002a56b599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 491 zcmVK(y>m$P!tB>;zTqNtJQ%C2pV-QFMwVj z0OJ{8F(ldsonYW74*F$dmQn!-f$9X5#Z4eMx0{sbYMmk@(b(XeY-RtaoSJFMY{0;s`bcooOM%B0&U>mP$vZVGxzcw h4m9_dhUxs_`2nk5eeD)mYFYpQ002ovPDHLkV1lso(GLIs diff --git a/graphics/pokemon/plusle/front.png b/graphics/pokemon/plusle/front.png deleted file mode 100644 index 87b7612197d766969babdbc34287602584d3d0c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmVb;@5Jfj=MNJ?F2y0Mkyr#Fz5=WsU3`9y3kr?{OcuzpY0XRbLkb*1Z zP?@!HmHnimV;W2TZ~uJF>$E5UAVyS`1sQ~Va0WXJ2tE) zF<_n)1jc&?9yJ;i1BSLlL&CrpJ-?Hh`mZ!sLZ6ev_CwvoDCCe1Ki@VVMF{BA3j<>f zLl|ohb_LhT7n_OA;>0N1cZR3EfP)eV8!!;p&-`!7)MhkauS6#V7BbB!o97}xfLmy~ zS>G$rq6X4s7mb^NnYHQC|9l;=A#3v@fq+O^H>L~s#Xu2@1fJ&}?nWkXTh4+32^)xi d#7mvEegVtnU1IKVf5-p;002ovPDHLkV1g&w%n<+p diff --git a/graphics/pokemon/politoed/front.png b/graphics/pokemon/politoed/front.png deleted file mode 100644 index 74d705c1060bd2c88165e23bbc3c96ce65dc4f1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 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 diff --git a/graphics/pokemon/porygon2/front.png b/graphics/pokemon/porygon2/front.png deleted file mode 100644 index 84f153fc72d92573717016b144537b88324e0a57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmV<60U!Q}P)KlCe(1Fc5}awTnA(Wui>E2nm%1s2E_j zs*f|mAu;d$N(1Q!(eO!9XuKtpvSYkcLJqKAbYYa8Vj~pn~ouo z8#q}l7?4EI_Kpnvto?w#>T|} diff --git a/graphics/pokemon/porygon_z/front.png b/graphics/pokemon/porygon_z/front.png deleted file mode 100644 index 1f39bffa578bd617790219864248489ae494aee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)JR1~6);%cyv+#rQFFhv@{6dUX`;0|nO zDld@2bVkUMIf0->NbMPXvk@`bnb}&ua=st$&&)T3{7X3*e$K080FVI`)-zfZN?9Fh zX21d4Xgi*9MrXMWu&?(Qyvr+q4Sfj@BmlZKg5VxD>+tlbnS%D3;SInJJ1uK~QC|!X zVejpIyrgd73n2zj>UI;r;^`8SII2x160jbc*J*-9@xkgx(jw|9fSk*iyT;C4n^1*OyQ$~HjgkeL!D1ZKBxlh3TF6R)fd1~%KE>N>>@5yGfpL6LA<(pAkT5vJ0pN{ z4FK__U)1}A%E)MPKNWM09V8JbUTSuXmf6oMvM{4|1`w*!^t(YMlxg`926|xfEeyAD zOAEh;vBPbn9~%MuKgJPcqKpN|iO?o`Dw^T{S$zQyGOS9DnNT+X0000Px#Fi=cXMVQc_S}_2eYHH1kS^xk5VoD(Y=CnaULFT=jdwYBT|JDDLTKM?*y-G3v zlv?1hh&?9-@&Et=wMj%lR9J=Wmg{!oAPj^J3^Km;{U3LA!=^S)y3W}@d#bdJ<7Pg@ zNPvgoH~zy2A$+8cDW%7R5RwHR>Rle=b3n8}&JXlpVPJIthD;qo9$scPLdOPVd?GrM z@QX|+I=OzG#tE@bAkZ9%$}ZH4JkLY|5UVrpR2a zS`p)Sg68HPR=wwt_$9#r42}@bPATX*;jb6L3vm6^M^sDQdL?&vi1}GfXhA%hHT7;A~ z4oPKl0IA+v`3l%~s!G_tIJS*bHYZv_yv_i}9)YSi1XZyG*DrKx0PMSrXRvKw5X6QC z;N`zIK}fom6cE5W5${D}0V52skKZ>g*aGJ^9!Gt%(Kcn2LmzJlb|wjdo7`6Ao-j%q zvD3h6;9edmfMKN{H|@6P9 z->{AF#R0t&`~kpDAIFxY$1wl^002ovPDHLkV1mLG BZ<_!B diff --git a/graphics/pokemon/prinplup/front.png b/graphics/pokemon/prinplup/front.png deleted file mode 100644 index a4b84554dda4a949e7ddba65c714ea0e76bdb8cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmV;K0%rY*P)3e_y7O^TL|Ws0006c zNklljA6bEpFFg3_3;%gwpPK3zTiY?qZRC40G+YzVeGW>sj@114aF#ff5ZCUIq>q<~V zLbX@a06ToMx0D@h+~fuDBQ-#`V8_+~yh_5F4xl)SYPhNagXE?Cc;}`Xr0fj_Py^g( zSm+QO6)>zSvKpxlAcSuxYEb!zF?yu~XBJ-70rTvMUDtw>HG6HO8PZHz_&$p@V7IkZ zr=S7wq6$FNz=IG1LP9m*DbWDaodM$O3lP$S=h6aKIq8uQB%s41ZsLga_+MF=BnMGU z2E+r25CuX)_G7|0;KyAQVgjEKHsC)FAlUyhmsj%hk%XlYO9g=FLm70UZ(kW>-}?dt z$y^E1A?zgCCl0b>0iX=vHJby)9^#OpKb`}$2rA;<1dPpQ7`h^-M+FdyOP-C{Y)u^3 zqcq+tfJ>hH?}n$@tb${hUQo=J4gq$%$@o_e&VQ7ih$RZY`&~Lb5ksD4bZ-&dpp<%D zO5bLmCzGFY(1#q1_;wyI<^uQvBw5P0kqlgV;L@vA>R=eY;rYG}@JH73yCQr)rF~g$ zxFC)}FScoNEC;T^!G&YoV{*XPHl6ZY*s32i<++Kc{4;*tdf48Oe(z0;aSkxL^I%;9 zo?58g%!jFM);49}?#AEVrt8XHaMMxD_Ft?&BhnC6Tt4!U00000NkvXXu0mjfK+ZA0 diff --git a/graphics/pokemon/probopass/front.png b/graphics/pokemon/probopass/front.png deleted file mode 100644 index 21916b3762d0a38d5a2aa2203cce1e1d10f32e69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 842 zcmV-Q1GW5#P)aeI&sZgmJ zW?_w8qDbj0N5yGV0<4_{wj9_W9ddxb;!u?azjLsy*dfzq;RSOlrwvohn&CJzfI*&_ zHhz`d+-aAt2qBkO?+9t-8z@bJP9=QXS`t`dkwUD}VfOtXeBD?C1ak!Z1SsA4 zoe;1SU@jJZGVRiI=$u6W!$ISy5m;%*!8=ZK2jId3NOBY-gDMMwK+OA?Aq5Vc#ttB) z0YE!3utLDZHe{fGe=C0=IxovPrI8vY;}QVyG~l3O(L^_)ECmd^Xp_##XuW0}AGNin1V&?`Z69}A7dCIj2-fhh zf{8bZ9S#R;u5_WE7CbyYt~`I1)JO&!p6G(Rk3XkUcWI3$8?GTlg{QMwQll~0Y&L6z z6y+X;z+HOS204)cV(ZjkI@7lo0VM^*DZZw0l_M0UhyZ=N4L;bcLkQzh4f-Wz5I#Tv zTUm2=tN?fW5;J7^YuPK22IK4Px#Fi=cXMVQc_dwY8j5D=7F5ay&(|J6$W=A_=VQvd(|gIWOp?!ETji}>ic00000 z000000G4~qqW}N_ZAnByR9J=WmfMcQAPhuP8`ePo|9{t)Ktj?7yS(g5nW{Ibb21p4 zblV<1`Y(EcJ(mEm0$}q}00Audg#fQ;2IR+vCXEm*0wzoV*@PIi3xMrEtd5BLv-&$B z#|Y}rrvyR>ECN#kqC5*TcvGmqlujTPUq7%60h9tefl&-Y{*?TF0hCf}Rlj^8@K-?r z?5nM{Y5@$80{|veYK^ESTY_y%fKb(6>CNllBBmgqN__RV_9oCs0l=pAE(7di;Uj$T zF95{P6CDD;8~}A+Q{qlaP5{jTL}+i$D)J=t>(2o9Kmw2ncK=Rr19)^zX;Q#{=&%P) zlr!Lj@SkckU?ALptA8N$PVpVU5GXz6AbbSmzLnnrj$UvT0@KHBaQpR0y0w7}l=}{M z>A)T!aC^Hpu?BGa^&Gv;fxnUMK%EdEa8b7Zz&L?*Uc{%fVUBI>R lCb$8mvWx%p9zFWw`UOH@62tfx@{j-k002ovPDHLkV1iZ9)vW*k diff --git a/graphics/pokemon/pumpkaboo/front.png b/graphics/pokemon/pumpkaboo/front.png deleted file mode 100644 index d55ed24ab8b504719dec2008610f6b7c9d6da705..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)9fKJO`Tegd6G;wuU4EzH#CAAnFq9U_Xfy~TS z;7es4d;>4dFwkaqu@!wHBKPFpci$w6j&qp9l9MpNaTe5D0D=}A=mjmf7Ag!V9bST~ ze|Bie%7FQq7OqI-et?g-=nHm_CH{2>z8?;k6n>h&O>T-RpLRTDARkZJMi0$y?gq%nGI+Bvw8F{Wym` Y-_yv9<(Tg~m;e9(07*qoM6N<$g0(;P1ONa4 diff --git a/graphics/pokemon/pumpkaboo/large/front.png b/graphics/pokemon/pumpkaboo/large/front.png deleted file mode 100644 index d3df6bca4b8d953114997a3bf0f2d9d2125fc2be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)t;KBF#zw>`Vu+yI?Od5WG!I8Hf0f5(n0i<3FrnvM2Qu&8q z@|PJRK?b3liQvK%nHyl86QbN>5D@voVxoO$vhV=VFwGqDx>OkN@u5*My$RJlp#b?kAa$`pG1=Us8dj!OlVs1_+Ux0si+I@Di9eK zmVGpz?hPOiRTr(m0Tv^GQ^YYkfbqZp8IA`9;?M@n^Fs0r@A3gYJAkDWILY&CoW59o z5zh1eD60T%2g*es3!E(SrM7hlg4Qbmdj39h0p(0jwJzW69ZU~BB*2_@17k5AR*b`d tEK0M+meU{z65Sxovg!@7Id=Mo`T%1-nHJQVm{|Y-002ovPDHLkV1i7T^GE;y diff --git a/graphics/pokemon/pumpkaboo/small/front.png b/graphics/pokemon/pumpkaboo/small/front.png deleted file mode 100644 index 8f22eea38907007f7cd88b1b630f0e0ca0f04600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e_7YEDSN13DvH~h*#cJi6Kq2uG z*NBqf{Irtt#G+INcOMs^F$!g=MGD4xCWWm_9s-qcloa^617(bXYzD6eO?e>2lJ4m1 z$iT3%pZiZDE0Avx;1l9H^U@L^Q&N~MH(JlrM#@x6@XzU_?^{&=|Nr0Pq`g1i>wQHni ze0hECQw^(|8>PJY7&Ol{Rq^lOVi&l{=y1xJK`l^3!$i)1ZC^pw10Pdb{{5d9!%XDR1RCYb^O&X*_FS-#7iIpfHG?YG`}vF@3xolo!` zFt&Q`-@o?Fi>XEhe`dbgb||NLe_H#}wz*orv)=1<2;9xw7W+oK<@KrLlet3NzH_w? zUh87;n|bARx9|m3#-ycJR#kmw$WB;Oy0X^6@j#4t>$-b$9rkK3y>RvL-RH+RU7qi* zvAzB^>0(90!E(Q!uVeG3y<3`m`^-*!CjRR2*VsJj6QO{eYyfYX8^;IyCu+HQbH z{0Jb9Ou>&d=`(FW?2HfBC{jB>qn4)ZZD_!ErAb-min_9*5Mh?kvH}DcIJbkKZjYiS z1i1sa#~yHK(D74V0t|;0f^@YG?b{F@pscRf+XtFw_$~zK(5((k?5~y-Dn4GGOBE_d zhd|hd{Swu)B{&?G5S@e7^6eZ&6>+jdpjITb>rWF=C2%43{4t1TtD0w#!;a_$zpq$L zK*+cKv+>ZdALk<0t;PaaET``VU_3;Cy-5*EBXA+J3BV1C(gI9V1kgRrEI^)QJnYNY zBt>9u1U8(>*<VA16nM$fZ0G>q@{_)04>y45Cm2Ov}kClF?U?fy65}_o$3$u18AwS UkEkwci~s-t07*qoM6N<$f?P5FwEzGB diff --git a/graphics/pokemon/pupitar/front.png b/graphics/pokemon/pupitar/front.png deleted file mode 100644 index cc7fda7150e1edbd28e48a8f4d1b7385ac29bf92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*B=WuI7Czk2nej$apS^` z7ZnqBtXQ$)$B!QyK+3Uz`4!7r85kHlJY5_^JUZV_Hmqtk;Aw4q|61;`MR9y72?Y)m{7i#p{{&?5YK+W4w?1) z>g%1HrZmXbyIUAeFyJ`Q>3r<*^{EY0T7=YRx9@OV%y3*Xor|$I+2KXt!voevH>Z1r z%!ui(k(?r=x8%fiMaR_)#%@d}dKrG31_&8Aum$birpdzSQ&9W!=C&^{ES$Lf*jA;@ zG_ZKNH|5ZV^RojQ7Crsn=ygRZK-YH8hevX%Vh;cIMwYTIGGaaXQQ;uN3ei=^E{I%e r{&o7K;T67_3-q#%xmGnzpSMc>_}A<%wHT)7ps4b6^>bP0l+XkKu$R@= diff --git a/graphics/pokemon/purrloin/front.png b/graphics/pokemon/purrloin/front.png deleted file mode 100644 index 0d329d15c920d849c9f031e401f6f8f398437e18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)*V; zHdw^MmvWDwj<6S;aqQSCll}7Vf4iG=oJ0I6+>;YvMgw=V}iU)#jvvTuxZBcOC4RFJ@S$;M*d70G%@>$mc4WPx& zT5Nz4Ill~|noeWf(y|6KCZzEv?%*_FG3OiudDrgo+>^Go9JMT%)4v6HmT*_&`8VsGxB8;9$te*qE5OD6kR70009y zNklfSd|n>XFoYhOL&$@i1*^L>AWNYcF- z^86h@WHCgbP#sAv2Fp353$-NcBA}q7TnDC`_;JD4A$z;U9A4Uf3Auu&15RTcS_c^~ zRki_YMHB^qbVa`fWS2fvN?NnoG^$`$I3Q+_!FW^QdZPig)xQ8r3D({<7_bbVKUOMx zw`L(Nz*?-a+yux|y1KuY#ThFMWU$Th!NF7dX`cXSq#yw11ju7d5BE!8#H(f~<);1w zVEF)>^vinyONES(LMd(jWFaVyo>B^6I7&B@5kqYLdf1|euO4{-nJ;%UAXvy-KbSuQjk$e@7-eiK`fedbwQN zI@9W;FatUrl|$NF*S+c!ve8Sp*JoO-P^$a7Dyck;BWtef_DPQ*!Y*1-g>H(I@^x6%ecEKPh!A^`@W`sd3rA$ch1=h&!cp%4J*NINz z^#~~j0GW_oB&jG)tn%)V19FcDua@RTVx8;Bv2TvXgMj{k9$EZ>-moJNee>ja9I#-k z(DGU#Ns1DWm50LsfR0Px#1ZP1_K>z@;j|==^1poj5Fi=cXMVQc_uz(D19C}3 zK~zY`ebqm28c7rY@G*s_pvf34ifa-SJ^)%-DXuzcSFUY5+Lj7Px7G#5fTioq@&yj| z&Z$>kyGWB*f|XJt!$|oUQKY+1aF%@U&Ft(B@t=`w%)H;eH-8?O;Mig6rBr`So*pHK zDOPZ_OR2%3r?#oJ!NRz;370X`3MaoK&EK0#wC& zVHjRyq7TymoT|rh4UGVP^+F+p5vKqe+h8{o@RyihV4PO=NQoohoYzU|z=s4A_2_Wk zR$#y0;GUxZuQ!@LBnT9sQC$8+P90c2f?q!K6W47y`@!zym0sQ`E^h!hRTn|Ja$T1@ z3S=8BCrbsIRd>|-Rmu+@#BD$psRAI*Td9=&mZQNm$UrJJaNgZ)q`aCr8jzs@Wf_ou z1%Z@u6KTK!%pQSDx%sF8Y?IKLRe~NN_(#tEjbc>+K@?;O zI1Ux~Q{8mBj#bCNtUQN<)SwNQ)$O(QQ3nQGUCFfu?x52NJE0BU!t5wHk54oh&cm>G zVXo7F!zBLQ0$~QIPz?*SEzx&0@DvE!d4p%*z;g~VfN@MAwgL2#O5sQ0Q~|m&fWu=B zf&&Xg?Q;X5=hf4?h6ex^F}>?b3qVIAz#4q0fxMMLzDj6Wd>CtZ2w+^w)CRgdq~P3- zqIo!-ZvoOc(i>IV+wd|4=Nyl7M2#EjB$(~G1eGHB2p_T01Xh}U;unk zdjx8yjO}M&ug(;Ju?~s?1%OeDdebdHAOTY~juaS(GY#Ur1_}!VbgV!USVEXpvf3Et zmjIF^F7_!pea;))KV`Ku1SpcENI|FugNZl`$G14MT>k{R3gA6yK$crz-1*Yy4WIN1 zKo&L_Ew8)B@Uc}OcnT~MaV+o~Hk>S<02J$C6ZfX!B&$%~+NOE4dpVyOAT2P;fxKH~ zdF}fwzyM}7SlTTk%$DgFGh6=l^*(P(x{(on z6vr^SHakim^2+c(sW=89vhT%j4-eMopanDPF9`3_|_~UXAhg T-Y5w%00000NkvXXu0mjfj@`zC diff --git a/graphics/pokemon/quagsire/front.png b/graphics/pokemon/quagsire/front.png deleted file mode 100644 index 41b4ad26b3e70f96865adeb67edf624da708091d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)Fp!`aSZHWih+uf2s1N|?KrjFR000004{}y&0005_ zNklL^>)?egPMG z%9~v;-mzl`i3;ha$Xc17Xa4iCj-vn1gp_Be{D6q769g0m5&0w$-`y8$BGeS13m0KB zM2tV2AM=S2@eO*L0A{UshX@a+05Z6I8}SRk94)lUA={4uN_zz`0f3Y#`Lhy0jR6Ue z!x)p&3BT+c!*)22w}(d(y$Zf~K|dt}F89Ne6Vbd-LuJ-gSSY(FOhi^{Tw$j{tX+cwpidVTfY49-x(;eZd#eI4`$_)#aRB%r*M~;n)8DGD-#Z{iP8^!FssSnn zbeGqcQPscce4YXztDo(06@c<1MVlk5+;J7ED4_+kkKpSG01Z>S067QP=ZN1dGC!Ft z0F;AUIm{5rIVa{m1M9TT?Tw;uh_nvBpz{zw&=-vUw{IA;rM=!-j42QbCAOlIR-GB_ zzEL!WvldWPMBnQOirYS=kg5@YVs-_m${hQHB_=uP|9TK00000NkvXX Hu0mjf1;-C* diff --git a/graphics/pokemon/question_mark/circled/front.png b/graphics/pokemon/question_mark/circled/front.png deleted file mode 100644 index 3056402db40adabac5a463995c694bdec359e5e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ip*Ewg;0-5;1*|TTYtXcE_ z|9_yeICobOAjMb`2mt|oEJ={|6P7}nZ)+$yZ7C;wLe_1WcN>s>Eq*PGXAsnHz&s= z7>nt%PWamtz-;#UYEdR!~X{G;Kp7JM4 PKq2bs>gTe~DWM4fhQyg8 diff --git a/graphics/pokemon/question_mark/double/front.png b/graphics/pokemon/question_mark/double/front.png deleted file mode 100644 index f23b08476d7b80a2d518d7bbfe8d39337e9c05c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg8-ipSBC!#|Ns97@*pITfgh~g zVlW|5)h~ zwmNN1nC}hA{B!4a75@`=EPZ8sPidO(K5O=UEcZS)9zFE$8p}VSgRf@nf4_pe>AF++ TzSo}mAg_A5`njxgN@xNA$02mt diff --git a/graphics/pokemon/quilava/front.png b/graphics/pokemon/quilava/front.png deleted file mode 100644 index 65c45aedd235d390f444350dd9d0795fa0fdb45d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)Px#Fi=cXMVQc_*Z=_dSOECY0Qi^yC}?OXKwvnCkPr|Mr~m-?`1r7xQ26Me;K*o* zU?31MIPKyl;Q#;u)k#D_R9J=WlEHGrAPht;K%fbj|Nq<~0X8-`p>=!dcu&cgeXLe2 z%cDpCRB+dS7octe;5PtD-SI0>`VRqb=YtGT##{p4uP99~{_6lA8ZH2>)u=`I2$1nP zfF70rf}a5Bq(KRwD&VpQb{D`XfC4@M`xq?<>H@U*2LQfY0CfyF^dWx)VEPFvT@vOL z3!LkKZ3BIP`fU@GVY-B72cWehfN3a$26bt`pmRtEIJYAUR{5p%>&!2}e7_2S=%R1)>j)VdiyEely$|KY|*&PB9ZY=;-cG*$wa@2zO6Mzu6A`<}huCcvF z$o{H~u+}o5Kup=>*`EpGx0bMB*vdR+=n)nefDT`;27u`HRJ!e;Ls(b*>Ie`5x+cPS z4U5fJS%4S$5Q1+Im5N!E1=zGP26j&~grx>KyV*Yn;G;wt5RFo lGayd2c1^fvfAr`(`T{b!89)<|iZK8H002ovPDHLkV1h&;0Ehqp diff --git a/graphics/pokemon/quilladin/front.png b/graphics/pokemon/quilladin/front.png deleted file mode 100644 index 4a6264fa475ebdd23b7c7ab11f229d277ed5a2e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)Px#1ZP1_K>z@;j|==^1poj5Fi=cXMF6nqkSGB7SU3<65GWW3a6lj^PzaE~IADMv zNGK5KsDQY5Xt=nzNH{QHU|{(8_&|Mqg8%>k32;bRa{vGi!vFvd!vV){sAK>D0v}04 zK~zY`?b0!8+dvct@GA-$OYN~+Rmd!IIJRsP53L8!;)c*AgdhzaI>hJ<9Tk%EtQ7pn z=yvFN3<<=7X2?`X@&WP<3f?ky={rdzI{TCk?U*+h>E2KOck+om*FV;a+F$zhw@-t* zY7a?R1ehEsc$U-k24d)Lt>SdOzEltCEjfKX?h2jm@sO$7tacU^r?8zJXG z-`!)){mmVl^HIFCX{*UO@B2g6Y&0Xp!X*YVWDQ1{qALNp7_u+h%*VbVAQyecm>-%0 zvUgLUeI9aQOtAUKuNWZZxe&q>VMp^RW1UpaT4oS_zL_`tAGdRfz%(QL)NMD~-QJy? zR)Jo7Dtnc{jxM*_a<)}~*a$jLgY^EjoZbJvlcxv{cUHlN`Wq=PZ{%5mfJdv~L;)$! z0KpOG%Mk&G3&8$2fK~>UB7%r}X*!qR(+dUEnQIaF5godu;M3I4pxu9bqTU zO8wImKdVR!h(`GCN}N*c3lC?EN;8nF^_Wtsp2w?1-$ck`$U8;htqx*O2f|BQ`;UDq z@gT`&4;}y{-s6c{0N`3eOvGR!#*=KuPgs<|6}=*)C15guF=T+!E-e9D*ylh07*qoM6N<$g3JCgr2qf` diff --git a/graphics/pokemon/qwilfish/front.png b/graphics/pokemon/qwilfish/front.png deleted file mode 100644 index 6fd19c1346fb4ebbfaf77cb1d12f956811ba3a4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)- z#crH~sh#W*5?0|e_)6(wAIEB&Kyk|v z#3FE2AQm86Dj>YT3lu%d0s;tB-vJNA4iI>|00 diff --git a/graphics/pokemon/raichu/front.png b/graphics/pokemon/raichu/front.png deleted file mode 100644 index 3b50a2318422a2a7ae6e515085215e694581bde7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 805 zcmV+=1KRwFP)Px#Fi=cXMVQc_S}7@uVh{iT0CPbx|GfZ|K|%lCTK23d-g`0s?$y0oF})ZF|J7Pz zVrn@#LBPDADgXciqe(SG4j-TX+Kj=k{^qb!NpkG9P2EY-2rw7eR;|}5sNNTfkK=U;2D4lI9Whc!a#Wq{VdCE#09DS`q36hLBz3<9P4n;tN-V4U;Ow<*Z`Avc|1YysUW*SFG# zm@&gzU049gAUvN>AkKn^_%H*UEkMd$0MDd%P61}H1O%WKu(Ve;5p^9^uYffK03(xo zL|B=CYYV{OYZrLHx&~{~G91-Qa%cbsV`yfv_pFz4MjUQ1xGI4MRSSWmB?Oy3nn4Ca zIHCXuPJqmb!yV3KKu{aG$Uph|PQayD=nP~)v>yO0r33&! z0I*&FFO4BVq={fpfRL+bSt}dl>$ML6>W_F)THga=X+z!?X@9+Eb1V}=y&nw$u@->_ zgz}qgB8>%GYS>osH6zI7Dger!(9PvJfLHT7pr1+mq^BhHvRg{SLsP?V0J1A?8|xq( z@&J47-aZ2;Ax5wvk z?HnN8$g%MZ7{cvG2S6sA9u?9l{dW8K7;!qN<2QhX&y--g*}^;~-hcXen`~e>ub-a2 j49V;70m~OF;Gc^>4ACUF>6uU600000NkvXXu0mjfo-knh diff --git a/graphics/pokemon/raikou/front.png b/graphics/pokemon/raikou/front.png deleted file mode 100644 index b729a2c3758fd8ee464e87072d00c51a0e640148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 968 zcmV;(12_DMP)LP$+2l`1qippb!uc(9qDB(D=Xr0Qks2(3mKQU=aA|kXTq?Om(ku000A1 zNkl}SZEkvGAXFZGdWZ2W%j|NiekMndT4Jf?Z< zS7MOox^4H$b;G%GYWmxWZQC8c1k^7a=kgn19|igaP*K3EgZao{#Gy>}ohYEQ4`7!B zgbiI+0Tl&Q-|Wr64UaO?(7=h^0fE>1GcXx7286hSngY%%ovLmBwl`yVEpxf+qHL%N;SkxQR;icm^znUt9 z4ouM|n?<(ad^#ZSKP(AxJX@c0vzXAF7ZVaXpy|gjnLAzu^cB(jT?4TOj4<&SNfH`d zc&Z9Eb~!YY!YWPFiR+H*^>omX!?^~+!bCG+&14=px9*wj=?T00Y=-l~0~rmHWaPT; zL=x5ok=J$w03#V{6PWRlJ4|BN^`u<4mOz|$JIdS~7bXnOtTAQoU?T5VWJTYB#w(a^ z#Hd*S4r9TTF{lec$eO-0tK&!mVXWh<`+5D6=TZtG)-6FOo20y^03$Zy0*Eg8ObLhu z0B1sE1%P86H%8CER;*ep0^n*qQ0)*=kyXyeoad@tv=(QgB^ILrB#j|Iv;(*T$UP7% zfW+M>^g(_2UBTjfCWvUcZ-D?4!*C8ehDlrir<(`>5YPBl+yN*UPMSVu;cf)pfW!O)I~A+)7V;4Q!-{57B`Hcd{POe!BdkANF2CUH z;l2d?`}FiEe8R1WAT5N0000xNtCdK(O$Th~S9G$l#ce!0_<+c!;ooC`kBtkkCkQOs`-e0003< zNklbW-Y0`&`HWkC_VCd?AxevhdQoew3 z?Q-7Yz(UH05{PcRTTM*g!tnp)&$~MzPV+x!IvGCBl*t``-V0|Y7aWlD3w+v23y{+s zS5_b~&o>+pmr`Ek-E1cem`NG*;LQU1JWse^Z2SSdsE6_VY~>FtBx=oo`}1HZD6C*t zD2&HJmOTggPGyKVzGa%dW=g4)2WfJn3gp2u#wB8mEO4)X0dorBLJ4V%YZx!+01-U` z+;X`P;ofMXlFfx1eHvZz1-&rr0zaa*#=@&BYeCyowiUhB7^(blyaVe?Y%LwZsb7+BG}18U!2 zRU(8FD)6Ozc|$_=rohlo$Gf_;U|>5CP5E+i^Ey^4xCKAVz&=pEHHvqCpWK`(TcV4} zF}cpw)vSp>gy5r}{d`i1z&Vt0-vTLT07QzTGa=qgbbd-D&Sh+Os?9(TA~4uF6R0V2 z)vHlnJtv^5yc$4MAn(NAMtUlmeMH+zO_3lQf-Z3HT)xoLfZj3U$lmUusv=Ay#62aC zW}rxs;st?bmG41%!?CFj^c-L|1FQlAC?~m5YFOd_plWJLIBXi4;3h@4Nk-}xjzH8O@OX8AF`0+xJ&Ev+#?`4 zW@a|OVfJV7HGvGNJ00b}o{4iMdsxna8|jQ?4AQFoD3@_Fy-4l=$K@EX5SRtI&gFMI z*HLlE{{@cAXd?(BeWZu_?LPCK>=q+l1`Drgm^zWZ(1yUyyX!VCgZdzKy2JP)(r@KE znwku`SttN1a8oAZNEe-kF0&Pooxb8m{}xB%aWu?D)<6BV%Y_))M*slbQYkE(X;*pG#1WmwJ+M7k~=@&{J-@kYoTi&z&J-yul zVlRPp6^un$K8;x$3uLD~<-$bo-VEaj{(fZhfn2LL! c@_!uv04#O)wr51PQ~&?~07*qoM6N<$g4t5j?EnA( diff --git a/graphics/pokemon/rapidash/front.png b/graphics/pokemon/rapidash/front.png deleted file mode 100644 index d0fb296f50a22ab2cdfb6c369e74e346cfd49742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1012 zcmVPx#Fi=cXMVQc_|C|`+VkzDb5dYp%i&8QF=EV>Y5XF>g?!}9!NI=EK#sB~R_@J0` zdxJqrQipzA2LJ#Aa!Eu%R9JV4K-8ZFbi2JqRIP z*bw$3hW{JMe`XoKk*BDiza=CYFM&jn3nU-EoC)BC5mP?BoI;uiDM2kmKTnMNMUm=b zByvbRg?tYv6o^E{g%iZd)|@=2@}c_cJWye(loA#B5I|M}{$Vl5Y?REVn;1k{<&9bz zixj)40OU0$q{SXy16X1}0PjZ7CMBeoWkfhRKa~bGiCzFo$eMB}#A^NzT`eFI5FID6XgL3)~Tl<6_@(#$@$2FOAT}7gNHMI?Pj<1SqvS3hj6J*=w^F7uyC-gdM56>E<+#f?0Qs%NV3|Z_@ex;>z)PG zZwM!|?Erj9!EQ!@JHQFY5JnZC-@&mYIo$O^I4@$@j9LR|HF2#Sz+zClrwt*UJPCxH zWpj@JC2#&GAj-U8JBlLp|Gs{p$* zUERGt3jkVJ6zvF9fKA7^L*8GyKQh*-^ehkj`S4m1s(<)fW7%(4f2>$@D3n@HyKQ6KW0000Px#Fi=cXMVQc_lu{7IgHr#^oDdKYYB>PKlsTkxDc-b7w6wJU|NnzpDfafH?#**^ zb91DFG4J8K(*OVhOi4sRR9J=Wmf>!LFbsrAxFkRtc>lNE*$JU*1Eo}&CT*5F^+)gX z`8-0p?!W$4nOqmu*4RGRH3ZdG+6%>AK$t2rrYGcW!hKIc*sDpbe)=At5&BLxRsCAiM{XMnY5LU8i&&U@EzU|s{L3r@WOw>q%mJ0utrZG@~$}5yZ9crf)xsF%p1jnnq-TMvzck^F4xN01F8-2|)Fb zMO1qNELQyvfMYBeX8|B(54oq@X)NSrwgOs&oC4-~99IhrAS!?lI*&3#0Q5X-#>j@q z7RF+Mp=1Pk(pW)qoVFcsyK#ZWIIk8WxY{V2)w2|G*XrfI*M2L;6qzGO80Q*eDsf1j zkS=m9K>N)e6Y?U2uPx#Fi=cXMVQc_i%N^MbG_A+)k-Nr5D*Z}tYYrow9U=Uq;m-7T66#Z|D+f>VoC^F zT3P@A097xS%m4rZj!8s8R9J=WmBDhuAPhtSOTwx{|NnEl5>8_G;HWUulXb}06ZWx4 zLQd(9JMM@^wwTeEWhrGGks*fzAO-=nEKnC3CQyL`s6n7nLa`K39w%58h!_MOBP2$+ zm6>WLCyZKn5oRsqc?+|E{4aphy*XdR5a84=b`1`M5WpIbQ=b8-yySx@2LL2ujqfu6 zWfQ!Ug29ud$UAJ#{+X4PrZ~|WgR8TZA!MgcEcD=Ue;o#*GU{!Cv zWKUKHv{!mWuK_MRuHfT1v48b%Q`sx}C&e$lR<1K20^}^xIG2by`5kxM5sx3=W(mc} SZQW`B0000t7o;w7FyODDmeI$0e z|Nnq9;wORDQ){PNr$b28ItMuqP6D2_)5S@h^#i3_{l>sy?W?_Rx}fyHh#J#gxd#jf zb2lQrv1}KE$JGvSY(z}CuCsO(4yQHXVB$i=IrMa3as9Lg3`FMwJZ|w1I#DM6FEwCQ z^ZU1)fR3J{5(hOPHh-5DmrqAeQhV_z-2z>Jzo4q#5U~HkNWW$z zb(BNa|I(FbV0?UB)JY=47^o<@tB$w-T|Ad-J`C%+@ls}H8FvAEkTc+f-w9~H9^!KQ zzA1BK0RS2&)ZCWK^wA{2lb?(SiG5vTL{c5L#{#snbbafZPja1z)7ly7NZPa$&mhc%vG z)Z4XZF$emDxTG%8+W{uvdvzS`^7=C2APrtoHs9_oW;x!<-d8R>ANjpB;M8gIy+!dW z=19ai8Ti-{qN;x91zG&Lw=f>=XispgOT-R9QShRAtpm)we-Vp#Lop=bzs>d|q0SkzIx{Dkb0S@)T!(Q!r z7%G4+Q7LsUf&+jV@*d=BdMtH5zGDAzv2xl#5Qfjd&@UK~q%x9?)ryrxl1ethNsI7;OB)%H))2U~j*|?}K$(>~ft z0sd%tA_t`mKq075z>TPYxm)KJ;E6nijUAv!)O8e4LUi+$snbYXn02Dpzn*}m?1G!l zS7$_T{;UA}ARR~vo?K5_s>SbMsJZMAX0bs-je*)@>L@fctIn)Pm z$Zc2y7Tjm-x%N1=6i`UzMKMsorKuX0 z?Bh%Xm+XF-0KuNT7}db^3%bs|c`002ovPDHLkV1lGSnyml; diff --git a/graphics/pokemon/regigigas/front.png b/graphics/pokemon/regigigas/front.png deleted file mode 100644 index 7cb87a1ccf84c0edce841872b40978a9c2f01656..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1198 zcmV;f1X25mP)`8beZ zh*Uq82B>MS9Q#KRkc$C2-nCf9vHZ;2<{6}oB`kg>IoiXpghTm0k2GfQY3_c%z$)4tYd#i{5%2l zaC;#z_@~dLUE)`S2qHb%SINO|fA{NPvi;NdhwK-ENRBl-5de3gTSoUls2k{j0oW1< z5t}u6M*`~I$29FD8&cP^(2Dk`b$NpHoW&Yk79v3zrFmX5!V**23c-0#cevkjBmjMY zHZS|jVUqwD4bM1NRcMwi97tg5Dj{^$u^@LpWgfJizZr0qQB#F7KqV8p-{UB|8TgeK zuluP@c6s&s@{7V_I2yW;KsntxbM~|Oz;~Yia0tNpb$1Y6K}uI;A5CF-}NJJ4(IO3so30%wVBH}B_j+g*un!{Mu{7_ao0AN%G z;LRj~7?!&M?>H#D7)!y?z!zmwTs)W7Vt{29|Bjxa{N{~r(8jyh9IAhMlS;9 z0KmhWbJc{3v2t!no`*I}hxpHqfG6^}*iD1mja+e&^CKpwLk#Uk$roqNa(EQ}wZKeK z@hw?<&JSS)5je|7tP)JlThfC6Y}SLUin3@~)(~zTW0gRei$!o?O^&D~c-L--*emxz zo3Yk(ip?4gJC;DPFIr5@0e?Wk81P6|=*P)dl3iH$VoNM+h|>*`nF9Sj8=kJu0k^&u zr}#9pJN~RbWC8}}QfTh!2E3n>In_r3e}dzHe1CCfJhX*3VC4SX5=qbVBr#rN0b>|& zcW1zMq_0nTP0q;7fLb+LV>}0bQd|IL+gPYpLw#Zk-fa!L^FSt(k;r1bjQ2cu8_$>WM${H+mSPp(4ZPR*A0Za^Y~G+#g8%>k M07*qoM6N<$f|ZLZ$^ZZW diff --git a/graphics/pokemon/regirock/front.png b/graphics/pokemon/regirock/front.png deleted file mode 100644 index 4ba1f41d8005d14bd317c6f117e05b737596ecc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1049 zcmV+!1m^pRP)OjxP^eF$YCJW?;Tp#}g7)U9j!fLS-r@x=0<@Ec#x4B%-5I8%(*q3NI7Z<%Cmk)V1@3NO} ze_x_|?z%6ulv-wU#;)881R4@h0|3iU|19(D%dzv!b+OQfM2o#~{~SDg`U_I%<5$nz zK4U>sqRWC#Z>Zy3%Scbo+!f$&flF`Th08o%=C`AJ3K^I)*Z~0N@k0)u@_RAwbg)x= zuuTyJ*rlop0RF~l_B=1xnmh?SXfv+c8gQ_P24Dn(e`}xwK)l8bJAg@t<2oLIh3Zx{ zG%S$e?Jyc+c=@d(#2RR{+Ezmujmz&JJ6(3ERKhNy$mYQ|_$f?Uj3E>OMNhooN;MS1 z836KKxdsx0Qd=ckk21D*0L##`h4LGKoB%Lh1F2=kS;3Qr1@50B@C^Y0p{Bek#MXnY zCn-gs{K%L{F;s9)twsi0S*H