From c58b846165dbf72b68e97fe79853cb498450b2fb Mon Sep 17 00:00:00 2001 From: cawtds Date: Sat, 1 Jun 2024 23:11:53 +0200 Subject: [PATCH] removed special deoxys sprite handling --- include/battle_anim.h | 2 +- include/constants/pokemon.h | 4 --- include/pokemon.h | 1 - include/pokemon_icon.h | 4 +-- src/battle_anim_effects_3.c | 4 +-- src/battle_anim_mons.c | 2 +- src/decompress.c | 16 ---------- src/mail.c | 4 +-- src/mystery_gift_show_card.c | 4 +-- src/naming_screen.c | 2 +- src/party_menu.c | 12 ++------ src/pokemon.c | 57 ------------------------------------ src/pokemon_icon.c | 4 +-- src/pokemon_summary_screen.c | 15 +--------- src/trade.c | 14 +++------ 15 files changed, 21 insertions(+), 124 deletions(-) diff --git a/include/battle_anim.h b/include/battle_anim.h index 220969679..46bf3df68 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -341,7 +341,7 @@ void InitPrioritiesForVisibleBattlers(void); u8 GetBattlerSpriteSubpriority(u8 battlerId); u8 GetBattlerSpriteBGPriority(u8 battlerId); u8 GetBattlerSpriteBGPriorityRank(u8 battlerId); -u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, bool32 isShiny, u32 battlerId, u32 ignoreDeoxys); +u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, bool32 isShiny, u32 battlerId); void DestroySpriteAndFreeResources_(struct Sprite *sprite); s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr); void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y); diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 3ad555baf..81590a9bd 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -268,10 +268,6 @@ #define SKIP_FRONT_ANIM (1 << 7) -// used by ShouldIgnoreDeoxysForm -#define DEOXYS_CHECK_BATTLE_SPRITE 1 -#define DEOXYS_CHECK_TRADE_MAIN 3 -#define DEOXYS_CHECK_BATTLE_ANIM 5 #define NUM_ABILITY_SLOTS (NUM_NORMAL_ABILITY_SLOTS + NUM_HIDDEN_ABILITY_SLOTS) #define NUM_NORMAL_ABILITY_SLOTS 2 diff --git a/include/pokemon.h b/include/pokemon.h index 8244c433c..c47124d31 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -798,7 +798,6 @@ void SetWildMonHeldItem(void); bool8 IsMonShiny(struct Pokemon *mon); u8 *GetTrainerPartnerName(void); u8 GetPlayerPartyHighestLevel(void); -bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId); u16 GetUnionRoomTrainerPic(void); u16 GetUnionRoomTrainerClass(void); void CreateEnemyEventMon(void); diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index fb0019cdf..d46698d70 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -14,11 +14,11 @@ const u16 *GetValidMonIconPalettePtr(u16 speciesId); void LoadMonIconPalettes(void); void FreeMonIconPalettes(void); u16 MailSpeciesToIconSpecies(u16); -u8 CreateMonIcon_HandleDeoxys(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority); +u8 CreateMonIconNoPersonality(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority); void DestroyMonIcon(struct Sprite *); u16 GetUnownLetterByPersonality(u32 personality); void SpriteCB_MonIcon(struct Sprite *); -u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra); +u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality); u8 UpdateMonIconFrame(struct Sprite *sprite); void LoadMonIconPalette(u16 iconId); void FreeMonIconPalette(u16 iconId); diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index fc5376aa0..6a63f7873 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -3211,7 +3211,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId) coord1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); coord2 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); - spriteId = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, isShiny, gBattleAnimTarget, 1); + spriteId = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, isShiny, gBattleAnimTarget); gSprites[spriteId].oam.priority = priority; gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND; FillPalette(RGB_WHITE, OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP); @@ -5059,7 +5059,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) x = -32; } - spriteId2 = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, isShiny, gBattleAnimAttacker, 0); + spriteId2 = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, isShiny, gBattleAnimAttacker); if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE) BlendPalette(OBJ_PLTT_ID(gSprites[spriteId2].oam.paletteNum), 16, 6, RGB_WHITE); diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 7f4f9465d..c39596d50 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -1899,7 +1899,7 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId) } // Create pokemon sprite to be used for a move animation effect (e.g. Role Play / Snatch) -u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, bool32 isShiny, u32 battlerId, bool32 ignoreDeoxys) +u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, bool32 isShiny, u32 battlerId) { u8 spriteId; u16 sheet = LoadSpriteSheet(&sSpriteSheets_MoveEffectMons[templateId]); diff --git a/src/decompress.c b/src/decompress.c index abe1b27af..d577f0c91 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -3,11 +3,6 @@ #include "decompress.h" #include "pokemon.h" -// extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -// extern const struct CompressedSpriteSheet gMonBackPicTable[]; - -static void DuplicateDeoxysTiles(void *pointer, s32 species); - void LZDecompressWram(const void *src, void *dest) { LZ77UnCompWram(src, dest); @@ -104,17 +99,6 @@ void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontP DrawSpindaSpots(species, personality, dest, isFrontPic); } -static void DuplicateDeoxysTiles(void *pointer, s32 species) -{ - if (species == SPECIES_DEOXYS) - CpuCopy32(pointer + 0x800, pointer, 0x800); -} - -static void Unused_LZDecompressWramIndirect(const void **src, void *dest) -{ - LZ77UnCompWram(*src, dest); -} - static void StitchObjectsOn8x8Canvas(s32 object_size, s32 object_count, u8 *src_tiles, u8 *dest_tiles) { /* diff --git a/src/mail.c b/src/mail.c index b644ff2b3..d6e7ae0be 100644 --- a/src/mail.c +++ b/src/mail.c @@ -597,11 +597,11 @@ static bool8 DoInitMailView(void) { case MAIL_ICON_BEAD: LoadMonIconPalette(iconId); - sMailViewResources->monIconSpriteId = CreateMonIcon_HandleDeoxys(iconId, SpriteCallbackDummy, 0x60, 0x80, 0); + sMailViewResources->monIconSpriteId = CreateMonIconNoPersonality(iconId, SpriteCallbackDummy, 0x60, 0x80, 0); break; case MAIL_ICON_DREAM: LoadMonIconPalette(iconId); - sMailViewResources->monIconSpriteId = CreateMonIcon_HandleDeoxys(iconId, SpriteCallbackDummy, 0x28, 0x80, 0); + sMailViewResources->monIconSpriteId = CreateMonIconNoPersonality(iconId, SpriteCallbackDummy, 0x28, 0x80, 0); break; } break; diff --git a/src/mystery_gift_show_card.c b/src/mystery_gift_show_card.c index 2a69ab881..b22ad5c23 100644 --- a/src/mystery_gift_show_card.c +++ b/src/mystery_gift_show_card.c @@ -465,7 +465,7 @@ static void CreateCardSprites(void) // Create icon sprite if (sWonderCardData->cardMetadata.iconSpecies != SPECIES_NONE) { - sWonderCardData->monIconSpriteId = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sWonderCardData->cardMetadata.iconSpecies), SpriteCallbackDummy, 220, 20, 0); + sWonderCardData->monIconSpriteId = CreateMonIconNoPersonality(MailSpeciesToIconSpecies(sWonderCardData->cardMetadata.iconSpecies), SpriteCallbackDummy, 220, 20, 0); gSprites[sWonderCardData->monIconSpriteId].oam.priority = 2; } @@ -481,7 +481,7 @@ static void CreateCardSprites(void) sWonderCardData->stampSpriteIds[i][0] = CreateSprite(&sSpriteTemplate_StampShadow, 216 - 32 * i, 0x90, 8); if (sWonderCardData->cardMetadata.stampData[0][i] != 0) { - sWonderCardData->stampSpriteIds[i][1] = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sWonderCardData->cardMetadata.stampData[0][i]), SpriteCallbackDummy, 216 - 32 * i, 136, 0); + sWonderCardData->stampSpriteIds[i][1] = CreateMonIconNoPersonality(MailSpeciesToIconSpecies(sWonderCardData->cardMetadata.stampData[0][i]), SpriteCallbackDummy, 216 - 32 * i, 136, 0); gSprites[sWonderCardData->stampSpriteIds[i][1]].oam.priority = 2; } } diff --git a/src/naming_screen.c b/src/naming_screen.c index d6d2caba4..c3cd96dc1 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1410,7 +1410,7 @@ static void NamingScreen_CreateMonIcon(void) u8 spriteId; LoadMonIconPalettes(); - spriteId = CreateMonIcon(sNamingScreen->monSpecies, SpriteCallbackDummy, 56, 40, 0, sNamingScreen->monPersonality, 1); + spriteId = CreateMonIcon(sNamingScreen->monSpecies, SpriteCallbackDummy, 56, 40, 0, sNamingScreen->monPersonality); gSprites[spriteId].oam.priority = 3; } diff --git a/src/party_menu.c b/src/party_menu.c index cdc4d0e2a..89c92f106 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -2646,14 +2646,8 @@ static void ToggleFieldMoveDescriptionWindow(u8 action) static void CreatePartyMonIconSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox, u32 slot) { - bool32 handleDeoxys = TRUE; - u16 species2; - - // If in a multi battle, show partners Deoxys icon as Normal forme - if (IsMultiBattle() == TRUE && gMain.inBattle) - handleDeoxys = (sMultiBattlePartnersPartyMask[slot] ^ handleDeoxys) ? TRUE : FALSE; - species2 = GetMonData(mon, MON_DATA_SPECIES_OR_EGG); - CreatePartyMonIconSpriteParameterized(species2, GetMonData(mon, MON_DATA_PERSONALITY), menuBox, 1); + u16 species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG); + CreatePartyMonIconSpriteParameterized(species, GetMonData(mon, MON_DATA_PERSONALITY), menuBox, 1); UpdatePartyMonHPBar(menuBox->monSpriteId, mon); } @@ -2661,7 +2655,7 @@ static void CreatePartyMonIconSpriteParameterized(u16 species, u32 pid, struct P { if (species != SPECIES_NONE) { - menuBox->monSpriteId = CreateMonIcon(species, SpriteCB_MonIcon, menuBox->spriteCoords[0], menuBox->spriteCoords[1], 4, pid, FALSE); + menuBox->monSpriteId = CreateMonIcon(species, SpriteCB_MonIcon, menuBox->spriteCoords[0], menuBox->spriteCoords[1], 4, pid); gSprites[menuBox->monSpriteId].oam.priority = priority; } } diff --git a/src/pokemon.c b/src/pokemon.c index 25cf86347..eb8b6c1de 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5573,63 +5573,6 @@ u8 GetPlayerPartyHighestLevel(void) return level; } -// If FALSE, should load this game's Deoxys form. If TRUE, should load normal Deoxys form -bool8 ShouldIgnoreDeoxysForm(u8 caseId, u8 battlerId) -{ - switch (caseId) - { - case 0: - default: - return FALSE; - case DEOXYS_CHECK_BATTLE_SPRITE: - if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - return FALSE; - if (!gMain.inBattle) - return FALSE; - if (gLinkPlayers[GetMultiplayerId()].id == battlerId) - return FALSE; - break; - case 2: - break; - case DEOXYS_CHECK_TRADE_MAIN: - if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - return FALSE; - if (!gMain.inBattle) - return FALSE; - if (battlerId == 1 || battlerId == 4 || battlerId == 5) - return TRUE; - return FALSE; - case 4: - break; - case DEOXYS_CHECK_BATTLE_ANIM: - if (gBattleTypeFlags & BATTLE_TYPE_LINK) - { - if (!gMain.inBattle) - return FALSE; - if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - { - if (gLinkPlayers[GetMultiplayerId()].id == battlerId) - return FALSE; - } - else - { - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - return FALSE; - } - } - else - { - if (!gMain.inBattle) - return FALSE; - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - return FALSE; - } - break; - } - - return TRUE; -} - u16 GetUnionRoomTrainerPic(void) { u8 linkId = GetMultiplayerId() ^ 1; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index b7086df96..2022ab50e 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -126,7 +126,7 @@ static const u16 sSpriteImageSizes[][4] = { }, }; -u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra) +u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality) { u8 spriteId; struct MonIconSpriteTemplate iconTemplate = @@ -149,7 +149,7 @@ u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subprior return spriteId; } -u8 CreateMonIcon_HandleDeoxys(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority) +u8 CreateMonIconNoPersonality(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority) { u8 spriteId; struct MonIconSpriteTemplate iconTemplate = diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 7b980677f..118f25ec9 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -4298,20 +4298,7 @@ static void PokeSum_CreateMonIconSprite(void) SafeLoadMonIconPalette(species); - if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary) - { - if (sMonSummaryScreen->isEnemyParty == TRUE) - sMonSummaryScreen->monIconSpriteId = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0); - else - sMonSummaryScreen->monIconSpriteId = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1); - } - else - { - if (ShouldIgnoreDeoxysForm(DEOXYS_CHECK_TRADE_MAIN, sLastViewedMonIndex)) - sMonSummaryScreen->monIconSpriteId = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0); - else - sMonSummaryScreen->monIconSpriteId = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1); - } + sMonSummaryScreen->monIconSpriteId = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality); if (!IsMonSpriteNotFlipped(species)) gSprites[sMonSummaryScreen->monIconSpriteId].hFlip = TRUE; diff --git a/src/trade.c b/src/trade.c index 26c64517f..6fffb5830 100644 --- a/src/trade.c +++ b/src/trade.c @@ -953,8 +953,7 @@ static void CB2_CreateTradeMenu(void) (sTradeMonSpriteCoords[i][0] * 8) + 14, (sTradeMonSpriteCoords[i][1] * 8) - 12, 1, - GetMonData(mon, MON_DATA_PERSONALITY), - TRUE); + GetMonData(mon, MON_DATA_PERSONALITY)); } for (i = 0; i < sTradeMenu->partyCounts[TRADE_PARTNER]; i++) @@ -965,8 +964,7 @@ static void CB2_CreateTradeMenu(void) (sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8) + 14, (sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8) - 12, 1, - GetMonData(mon, MON_DATA_PERSONALITY), - FALSE); + GetMonData(mon, MON_DATA_PERSONALITY)); } gMain.state++; break; @@ -1150,9 +1148,7 @@ void CB2_ReturnToTradeMenuFromSummary(void) sTradeMonSpriteCoords[i][0] * 8 + 14, sTradeMonSpriteCoords[i][1] * 8 - 12, 1, - GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY), - TRUE - ); + GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY)); } for (i = 0; i < sTradeMenu->partyCounts[TRADE_PARTNER]; i++) { @@ -1162,9 +1158,7 @@ void CB2_ReturnToTradeMenuFromSummary(void) sTradeMonSpriteCoords[i + PARTY_SIZE][0] * 8 + 14, sTradeMonSpriteCoords[i + PARTY_SIZE][1] * 8 - 12, 1, - GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY), - FALSE - ); + GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY)); } gMain.state++; break;