removed special deoxys sprite handling

This commit is contained in:
cawtds
2024-06-01 23:11:53 +02:00
parent b5695ea8e5
commit c58b846165
15 changed files with 21 additions and 124 deletions

View File

@@ -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);

View File

@@ -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

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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]);

View File

@@ -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)
{
/*

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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 =

View File

@@ -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;

View File

@@ -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;