Document ShouldIgnoreDeoxysForm
This commit is contained in:
@@ -449,7 +449,7 @@ u8 GetBattlerSpriteBGPriority(u8 battlerId);
|
|||||||
// Returns 2 if player left or opp right
|
// Returns 2 if player left or opp right
|
||||||
// Returns 1 if player right or opp left
|
// Returns 1 if player right or opp left
|
||||||
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId);
|
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId);
|
||||||
u8 sub_80768D0(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10);
|
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 ignoreDeoxys);
|
||||||
void DestroySpriteAndFreeResources_(struct Sprite *sprite);
|
void DestroySpriteAndFreeResources_(struct Sprite *sprite);
|
||||||
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
|
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
|
||||||
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
|
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set.
|
#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set.
|
||||||
#define BATTLE_TYPE_TRAINER 0x0008
|
#define BATTLE_TYPE_TRAINER 0x0008
|
||||||
#define BATTLE_TYPE_FIRST_BATTLE 0x0010
|
#define BATTLE_TYPE_FIRST_BATTLE 0x0010
|
||||||
#define BATTLE_TYPE_20 0x0020
|
#define BATTLE_TYPE_LINK_ESTABLISHED 0x0020 // Set when the link battle setup callback finishes.
|
||||||
#define BATTLE_TYPE_MULTI 0x0040
|
#define BATTLE_TYPE_MULTI 0x0040
|
||||||
#define BATTLE_TYPE_SAFARI 0x0080
|
#define BATTLE_TYPE_SAFARI 0x0080
|
||||||
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
|
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
|
||||||
|
|||||||
@@ -219,4 +219,9 @@
|
|||||||
#define EVO_MODE_ITEM_USE 2
|
#define EVO_MODE_ITEM_USE 2
|
||||||
#define EVO_MODE_ITEM_CHECK 3 // If an Everstone is being held, still want to show that the stone *could* be used on that Pokémon to evolve
|
#define EVO_MODE_ITEM_CHECK 3 // If an Everstone is being held, still want to show that the stone *could* be used on that Pokémon to evolve
|
||||||
|
|
||||||
|
// used by ShouldIgnoreDeoxysForm
|
||||||
|
#define DEOXYS_CHECK_BATTLE_SPRITE 1
|
||||||
|
#define DEOXYS_CHECK_TRADE_MAIN 3
|
||||||
|
#define DEOXYS_CHECK_BATTLE_ANIM 5
|
||||||
|
|
||||||
#endif // GUARD_CONSTANTS_POKEMON_H
|
#endif // GUARD_CONSTANTS_POKEMON_H
|
||||||
|
|||||||
@@ -3135,7 +3135,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
|
|||||||
|
|
||||||
coord1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
|
coord1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
|
||||||
coord2 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y);
|
coord2 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y);
|
||||||
spriteId = sub_80768D0(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1);
|
spriteId = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1);
|
||||||
gSprites[spriteId].oam.priority = priority;
|
gSprites[spriteId].oam.priority = priority;
|
||||||
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
|
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
|
||||||
FillPalette(RGB_WHITE, (gSprites[spriteId].oam.paletteNum << 4) + 0x100, 32);
|
FillPalette(RGB_WHITE, (gSprites[spriteId].oam.paletteNum << 4) + 0x100, 32);
|
||||||
@@ -4906,7 +4906,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
|
|||||||
x = -32;
|
x = -32;
|
||||||
}
|
}
|
||||||
|
|
||||||
spriteId2 = sub_80768D0(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0);
|
spriteId2 = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0);
|
||||||
|
|
||||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE)
|
if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE)
|
||||||
BlendPalette((gSprites[spriteId2].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE);
|
BlendPalette((gSprites[spriteId2].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE);
|
||||||
|
|||||||
+10
-10
@@ -99,10 +99,10 @@ static const struct SpriteTemplate gUnknown_83AE054[] =
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct SpriteSheet gUnknown_83AE084[] =
|
static const struct SpriteSheet sMoveAnimAdtlSprSheets[] =
|
||||||
{
|
{
|
||||||
{ gMiscBlank_Gfx, 0x800, 0xD755 },
|
{ gMiscBlank_Gfx, 0x800, 55125 },
|
||||||
{ gMiscBlank_Gfx, 0x800, 0xD756 },
|
{ gMiscBlank_Gfx, 0x800, 55126 }, // unused
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType)
|
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType)
|
||||||
@@ -1863,18 +1863,18 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_80768D0(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10)
|
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxys)
|
||||||
{
|
{
|
||||||
u8 spriteId;
|
u8 spriteId;
|
||||||
u16 sheet = LoadSpriteSheet(&gUnknown_83AE084[a3]);
|
u16 sheet = LoadSpriteSheet(&sMoveAnimAdtlSprSheets[templateId]);
|
||||||
u16 palette = AllocSpritePalette(gUnknown_83AE054[a3].paletteTag);
|
u16 palette = AllocSpritePalette(gUnknown_83AE054[templateId].paletteTag);
|
||||||
|
|
||||||
if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->multiUseBuffer == NULL)
|
if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->multiUseBuffer == NULL)
|
||||||
gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000);
|
gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000);
|
||||||
if (!isBackpic)
|
if (!isBackpic)
|
||||||
{
|
{
|
||||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
||||||
if (a10 == 1 || ShouldIgnoreDeoxysForm(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
if (ignoreDeoxys == TRUE || ShouldIgnoreDeoxysForm(DEOXYS_CHECK_BATTLE_ANIM, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
||||||
LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
|
LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
|
||||||
gMonSpritesGfxPtr->multiUseBuffer,
|
gMonSpritesGfxPtr->multiUseBuffer,
|
||||||
species,
|
species,
|
||||||
@@ -1890,7 +1890,7 @@ u8 sub_80768D0(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
|
||||||
if (a10 == 1 || ShouldIgnoreDeoxysForm(5, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
if (ignoreDeoxys == TRUE || ShouldIgnoreDeoxysForm(DEOXYS_CHECK_BATTLE_ANIM, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
|
||||||
LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
|
LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
|
||||||
gMonSpritesGfxPtr->multiUseBuffer,
|
gMonSpritesGfxPtr->multiUseBuffer,
|
||||||
species,
|
species,
|
||||||
@@ -1906,9 +1906,9 @@ u8 sub_80768D0(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority
|
|||||||
RequestDma3Copy(gMonSpritesGfxPtr->multiUseBuffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1);
|
RequestDma3Copy(gMonSpritesGfxPtr->multiUseBuffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1);
|
||||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer);
|
FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer);
|
||||||
if (!isBackpic)
|
if (!isBackpic)
|
||||||
spriteId = CreateSprite(&gUnknown_83AE054[a3], x, y + gMonFrontPicCoords[species].y_offset, subpriority);
|
spriteId = CreateSprite(&gUnknown_83AE054[templateId], x, y + gMonFrontPicCoords[species].y_offset, subpriority);
|
||||||
else
|
else
|
||||||
spriteId = CreateSprite(&gUnknown_83AE054[a3], x, y + gMonBackPicCoords[species].y_offset, subpriority);
|
spriteId = CreateSprite(&gUnknown_83AE054[templateId], x, y + gMonBackPicCoords[species].y_offset, subpriority);
|
||||||
return spriteId;
|
return spriteId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -487,7 +487,7 @@ void TryReceiveLinkBattleData(void)
|
|||||||
s32 j;
|
s32 j;
|
||||||
u8 *recvBuffer;
|
u8 *recvBuffer;
|
||||||
|
|
||||||
if (gReceivedRemoteLinkPlayers && (gBattleTypeFlags & BATTLE_TYPE_20) && (gLinkPlayers[0].linkType == 0x2211))
|
if (gReceivedRemoteLinkPlayers && (gBattleTypeFlags & BATTLE_TYPE_LINK_ESTABLISHED) && (gLinkPlayers[0].linkType == 0x2211))
|
||||||
{
|
{
|
||||||
LinkRfu_DestroyIdleTask();
|
LinkRfu_DestroyIdleTask();
|
||||||
for (i = 0; i < GetLinkPlayerCount(); ++i)
|
for (i = 0; i < GetLinkPlayerCount(); ++i)
|
||||||
|
|||||||
@@ -387,7 +387,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
|
|||||||
}
|
}
|
||||||
otId = GetMonData(mon, MON_DATA_OT_ID);
|
otId = GetMonData(mon, MON_DATA_OT_ID);
|
||||||
position = GetBattlerPosition(battlerId);
|
position = GetBattlerPosition(battlerId);
|
||||||
if (ShouldIgnoreDeoxysForm(1, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE)
|
if (ShouldIgnoreDeoxysForm(DEOXYS_CHECK_BATTLE_SPRITE, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE)
|
||||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
|
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
|
||||||
gMonSpritesGfxPtr->sprites[position],
|
gMonSpritesGfxPtr->sprites[position],
|
||||||
species, currentPersonality);
|
species, currentPersonality);
|
||||||
|
|||||||
+2
-2
@@ -1051,7 +1051,7 @@ static void CB2_HandleStartBattle(void)
|
|||||||
SetMainCallback2(BattleMainCB2);
|
SetMainCallback2(BattleMainCB2);
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||||
{
|
{
|
||||||
gBattleTypeFlags |= BATTLE_TYPE_20;
|
gBattleTypeFlags |= BATTLE_TYPE_LINK_ESTABLISHED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1409,7 +1409,7 @@ static void CB2_HandleStartMultiBattle(void)
|
|||||||
gMain.callback1 = BattleMainCB1;
|
gMain.callback1 = BattleMainCB1;
|
||||||
SetMainCallback2(BattleMainCB2);
|
SetMainCallback2(BattleMainCB2);
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||||
gBattleTypeFlags |= BATTLE_TYPE_20;
|
gBattleTypeFlags |= BATTLE_TYPE_LINK_ESTABLISHED;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
|
|||||||
+1
-1
@@ -723,7 +723,7 @@ static void sub_8081624(void)
|
|||||||
|
|
||||||
void CB2_ReturnFromCableClubBattle(void)
|
void CB2_ReturnFromCableClubBattle(void)
|
||||||
{
|
{
|
||||||
gBattleTypeFlags &= (u16)~BATTLE_TYPE_20;
|
gBattleTypeFlags &= (u16)~BATTLE_TYPE_LINK_ESTABLISHED;
|
||||||
Overworld_ResetMapMusic();
|
Overworld_ResetMapMusic();
|
||||||
LoadPlayerParty();
|
LoadPlayerParty();
|
||||||
SavePlayerBag();
|
SavePlayerBag();
|
||||||
|
|||||||
+1
-1
@@ -1369,7 +1369,7 @@ static void LinkCB_WaitAckCommand5FFF(void)
|
|||||||
}
|
}
|
||||||
if (count == linkPlayerCount)
|
if (count == linkPlayerCount)
|
||||||
{
|
{
|
||||||
gBattleTypeFlags &= ~(BATTLE_TYPE_20 | 0xFFFF0000);
|
gBattleTypeFlags &= ~(BATTLE_TYPE_LINK_ESTABLISHED | 0xFFFF0000);
|
||||||
gLinkVSyncDisabled = TRUE;
|
gLinkVSyncDisabled = TRUE;
|
||||||
CloseLink();
|
CloseLink();
|
||||||
gLinkCallback = NULL;
|
gLinkCallback = NULL;
|
||||||
|
|||||||
+1
-1
@@ -1325,7 +1325,7 @@ static void RfuFunc_WaitAck5F00(void)
|
|||||||
}
|
}
|
||||||
if (count == playerCount)
|
if (count == playerCount)
|
||||||
{
|
{
|
||||||
gBattleTypeFlags &= ~(BATTLE_TYPE_20 | 0xFFFF0000);
|
gBattleTypeFlags &= ~(BATTLE_TYPE_LINK_ESTABLISHED | 0xFFFF0000);
|
||||||
if (Rfu.parent_child == MODE_CHILD)
|
if (Rfu.parent_child == MODE_CHILD)
|
||||||
{
|
{
|
||||||
Rfu.errorState = 3;
|
Rfu.errorState = 3;
|
||||||
|
|||||||
+1
-1
@@ -5959,7 +5959,7 @@ static u16 GetDeoxysStat(struct Pokemon *mon, s32 statId)
|
|||||||
u16 statValue;
|
u16 statValue;
|
||||||
u8 nature;
|
u8 nature;
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_20 || GetMonData(mon, MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS)
|
if (gBattleTypeFlags & BATTLE_TYPE_LINK_ESTABLISHED || GetMonData(mon, MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS)
|
||||||
{
|
{
|
||||||
return statValue = 0;
|
return statValue = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3996,16 +3996,16 @@ static void sub_813995C(void)
|
|||||||
if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary)
|
if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary)
|
||||||
{
|
{
|
||||||
if (sMonSummaryScreen->isEnemyParty == TRUE)
|
if (sMonSummaryScreen->isEnemyParty == TRUE)
|
||||||
spriteId = CreateMonPicSprite(species, trainerId, personality, 1, 60, 65, 12, 0xffff, 1);
|
spriteId = CreateMonPicSprite(species, trainerId, personality, TRUE, 60, 65, 12, 0xffff, TRUE);
|
||||||
else
|
else
|
||||||
spriteId = CreateMonPicSprite_HandleDeoxys(species, trainerId, personality, 1, 60, 65, 12, 0xffff);
|
spriteId = CreateMonPicSprite_HandleDeoxys(species, trainerId, personality, TRUE, 60, 65, 12, 0xffff);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ShouldIgnoreDeoxysForm(3, sLastViewedMonIndex))
|
if (ShouldIgnoreDeoxysForm(DEOXYS_CHECK_TRADE_MAIN, sLastViewedMonIndex))
|
||||||
spriteId = CreateMonPicSprite(species, trainerId, personality, 1, 60, 65, 12, 0xffff, 1);
|
spriteId = CreateMonPicSprite(species, trainerId, personality, TRUE, 60, 65, 12, 0xffff, TRUE);
|
||||||
else
|
else
|
||||||
spriteId = CreateMonPicSprite_HandleDeoxys(species, trainerId, personality, 1, 60, 65, 12, 0xffff);
|
spriteId = CreateMonPicSprite_HandleDeoxys(species, trainerId, personality, TRUE, 60, 65, 12, 0xffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
FreeSpriteOamMatrix(&gSprites[spriteId]);
|
FreeSpriteOamMatrix(&gSprites[spriteId]);
|
||||||
@@ -4130,7 +4130,7 @@ static void sub_8139DBC(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ShouldIgnoreDeoxysForm(3, sLastViewedMonIndex))
|
if (ShouldIgnoreDeoxysForm(DEOXYS_CHECK_TRADE_MAIN, sLastViewedMonIndex))
|
||||||
sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0);
|
sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0);
|
||||||
else
|
else
|
||||||
sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1);
|
sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user