Merge branch 'master' of https://github.com/pret/pokefirered into sync-b-anim
This commit is contained in:
+9
-16
@@ -9,13 +9,6 @@
|
||||
#include "util.h"
|
||||
#include "constants/battle_anim.h"
|
||||
|
||||
#define GET_UNOWN_LETTER(personality) (( \
|
||||
(((personality & 0x03000000) >> 24) << 6) \
|
||||
| (((personality & 0x00030000) >> 16) << 4) \
|
||||
| (((personality & 0x00000300) >> 8) << 2) \
|
||||
| (((personality & 0x00000003) >> 0) << 0) \
|
||||
) % 28)
|
||||
|
||||
#define IS_DOUBLE_BATTLE() (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
|
||||
static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3);
|
||||
@@ -874,8 +867,8 @@ bool8 IsDoubleBattle(void)
|
||||
|
||||
void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData)
|
||||
{
|
||||
animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer;
|
||||
animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer;
|
||||
animBgData->bgTiles = gBattleAnimBgTileBuffer;
|
||||
animBgData->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
|
||||
animBgData->paletteId = BG_ANIM_PAL_1;
|
||||
animBgData->bgId = 1;
|
||||
animBgData->tilesOffset = 0x200;
|
||||
@@ -890,8 +883,8 @@ void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId)
|
||||
}
|
||||
else
|
||||
{
|
||||
animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer;
|
||||
animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer;
|
||||
animBgData->bgTiles = gBattleAnimBgTileBuffer;
|
||||
animBgData->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
|
||||
animBgData->paletteId = BG_ANIM_PAL_2;
|
||||
animBgData->bgId = 2;
|
||||
animBgData->tilesOffset = 0x300;
|
||||
@@ -901,8 +894,8 @@ void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId)
|
||||
|
||||
void GetBattleAnimBgDataByPriorityRank(struct BattleAnimBgData *animBgData, u8 unused)
|
||||
{
|
||||
animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer;
|
||||
animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer;
|
||||
animBgData->bgTiles = gBattleAnimBgTileBuffer;
|
||||
animBgData->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer;
|
||||
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
|
||||
{
|
||||
animBgData->paletteId = BG_ANIM_PAL_1;
|
||||
@@ -932,9 +925,9 @@ void InitBattleAnimBg(u32 bgId)
|
||||
|
||||
void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset)
|
||||
{
|
||||
CpuFill32(0, gBattleAnimMons_BgTilesBuffer, 0x2000);
|
||||
LZDecompressWram(src, gBattleAnimMons_BgTilesBuffer);
|
||||
LoadBgTiles(bgId, gBattleAnimMons_BgTilesBuffer, 0x2000, tilesOffset);
|
||||
CpuFill32(0, gBattleAnimBgTileBuffer, 0x2000);
|
||||
LZDecompressWram(src, gBattleAnimBgTileBuffer);
|
||||
LoadBgTiles(bgId, gBattleAnimBgTileBuffer, 0x2000, tilesOffset);
|
||||
}
|
||||
|
||||
void InitAnimBgTilemapBuffer(u32 bgId, const void *src)
|
||||
|
||||
@@ -337,7 +337,7 @@ static void HandleInputChooseTarget(void)
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget;
|
||||
BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8));
|
||||
EndBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX);
|
||||
PlayerBufferExecCompleted();
|
||||
@@ -345,7 +345,7 @@ static void HandleInputChooseTarget(void)
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget;
|
||||
gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove;
|
||||
DoBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX, 7, 1);
|
||||
DoBounceEffect(gActiveBattler, BOUNCE_MON, 7, 1);
|
||||
@@ -354,7 +354,7 @@ static void HandleInputChooseTarget(void)
|
||||
else if (JOY_NEW(DPAD_LEFT | DPAD_UP))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -389,12 +389,12 @@ static void HandleInputChooseTarget(void)
|
||||
i = 0;
|
||||
}
|
||||
while (i == 0);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_ShowAsMoveTarget;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_RIGHT | DPAD_DOWN))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -429,7 +429,7 @@ static void HandleInputChooseTarget(void)
|
||||
i = 0;
|
||||
}
|
||||
while (i == 0);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_ShowAsMoveTarget;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -496,7 +496,7 @@ void HandleInputChooseMove(void)
|
||||
gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
|
||||
else
|
||||
gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
|
||||
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_ShowAsMoveTarget;
|
||||
}
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
|
||||
@@ -1100,13 +1100,13 @@ void BtlController_EmitIntroTrainerBallThrow(u8 bufferId)
|
||||
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4);
|
||||
}
|
||||
|
||||
void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 param)
|
||||
void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 flags)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
sBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
|
||||
sBattleBuffersTransferData[1] = param & 0x7F;
|
||||
sBattleBuffersTransferData[2] = (param & 0x80) >> 7;
|
||||
sBattleBuffersTransferData[1] = flags & ~PARTY_SUMM_SKIP_DRAW_DELAY; // If true, skip player side
|
||||
sBattleBuffersTransferData[2] = (flags & PARTY_SUMM_SKIP_DRAW_DELAY) >> 7; // If true, skip delay after drawing. True during intro
|
||||
sBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
|
||||
for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * PARTY_SIZE); ++i)
|
||||
sBattleBuffersTransferData[4 + i] = *(i + (u8 *)(hpAndStatus));
|
||||
|
||||
@@ -140,7 +140,7 @@ void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite)
|
||||
gSprites[spriteId].animPaused = 0;
|
||||
else if (gSprites[spriteId].animEnded)
|
||||
{
|
||||
gSprites[spriteId].callback = SpriteCB_SetToDummy3;
|
||||
gSprites[spriteId].callback = SetIdleSpriteCallback;
|
||||
StartSpriteAffineAnim(&gSprites[spriteId], 0);
|
||||
sprite->callback = SpriteCallbackDummy;
|
||||
}
|
||||
|
||||
+14
-7
@@ -1137,8 +1137,9 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg
|
||||
if (partyInfo[i].hp == HP_EMPTY_SLOT)
|
||||
{
|
||||
// empty slot or an egg
|
||||
gSprites[ballIconSpritesIds[i]].oam.tileNum += 1;
|
||||
gSprites[ballIconSpritesIds[i]].data[7] = 1;
|
||||
}
|
||||
@@ -1153,17 +1154,20 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i >= nValidMons) // empty slot or an egg
|
||||
if (i >= nValidMons)
|
||||
{
|
||||
// empty slot or an egg
|
||||
gSprites[ballIconSpritesIds[i]].oam.tileNum += 1;
|
||||
gSprites[ballIconSpritesIds[i]].data[7] = 1;
|
||||
}
|
||||
else if (partyInfo[i].hp == 0) // fainted mon
|
||||
else if (partyInfo[i].hp == 0)
|
||||
{
|
||||
// fainted mon
|
||||
gSprites[ballIconSpritesIds[i]].oam.tileNum += 3;
|
||||
}
|
||||
else if (partyInfo[i].status != 0) // mon with major status
|
||||
else if (partyInfo[i].status != 0)
|
||||
{
|
||||
// mon with major status
|
||||
gSprites[ballIconSpritesIds[i]].oam.tileNum += 2;
|
||||
}
|
||||
}
|
||||
@@ -1175,17 +1179,20 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg
|
||||
if (partyInfo[i].hp == HP_EMPTY_SLOT)
|
||||
{
|
||||
// empty slot or an egg
|
||||
gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 1;
|
||||
gSprites[ballIconSpritesIds[5 - i]].data[7] = 1;
|
||||
}
|
||||
else if (partyInfo[i].hp == 0) // fainted mon
|
||||
else if (partyInfo[i].hp == 0)
|
||||
{
|
||||
// fainted mon
|
||||
gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 3;
|
||||
}
|
||||
else if (partyInfo[i].status != 0) // mon with major status
|
||||
else if (partyInfo[i].status != 0)
|
||||
{
|
||||
// mon with major status
|
||||
gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 2;
|
||||
}
|
||||
}
|
||||
|
||||
+668
-571
File diff suppressed because it is too large
Load Diff
+662
-608
File diff suppressed because it is too large
Load Diff
+22
-10
@@ -2,8 +2,8 @@
|
||||
#include "bg.h"
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "pokemon.h"
|
||||
#include "malloc.h"
|
||||
#include "pokemon.h"
|
||||
#include "trainer_tower.h"
|
||||
|
||||
void AllocateBattleResources(void)
|
||||
@@ -14,10 +14,12 @@ void AllocateBattleResources(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; ++i)
|
||||
for (i = 0; i < 4; i++)
|
||||
gPokedudeBattlerStates[i] = AllocZeroed(sizeof(struct PokedudeBattlerState));
|
||||
}
|
||||
|
||||
gBattleStruct = AllocZeroed(sizeof(*gBattleStruct));
|
||||
|
||||
gBattleResources = AllocZeroed(sizeof(*gBattleResources));
|
||||
gBattleResources->secretBase = AllocZeroed(sizeof(*gBattleResources->secretBase));
|
||||
gBattleResources->flags = AllocZeroed(sizeof(*gBattleResources->flags));
|
||||
@@ -27,12 +29,15 @@ void AllocateBattleResources(void)
|
||||
gBattleResources->ai = AllocZeroed(sizeof(*gBattleResources->ai));
|
||||
gBattleResources->battleHistory = AllocZeroed(sizeof(*gBattleResources->battleHistory));
|
||||
gBattleResources->AI_ScriptsStack = AllocZeroed(sizeof(*gBattleResources->AI_ScriptsStack));
|
||||
|
||||
gLinkBattleSendBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE);
|
||||
gLinkBattleRecvBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE);
|
||||
gBattleAnimMons_BgTilesBuffer = AllocZeroed(0x2000);
|
||||
gBattleAnimMons_BgTilemapBuffer = AllocZeroed(0x1000);
|
||||
SetBgTilemapBuffer(1, gBattleAnimMons_BgTilemapBuffer);
|
||||
SetBgTilemapBuffer(2, gBattleAnimMons_BgTilemapBuffer);
|
||||
|
||||
gBattleAnimBgTileBuffer = AllocZeroed(0x2000);
|
||||
gBattleAnimBgTilemapBuffer = AllocZeroed(0x1000);
|
||||
|
||||
SetBgTilemapBuffer(1, gBattleAnimBgTilemapBuffer);
|
||||
SetBgTilemapBuffer(2, gBattleAnimBgTilemapBuffer);
|
||||
}
|
||||
|
||||
void FreeBattleResources(void)
|
||||
@@ -43,7 +48,7 @@ void FreeBattleResources(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; ++i)
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
FREE_AND_SET_NULL(gPokedudeBattlerStates[i]);
|
||||
}
|
||||
@@ -51,6 +56,7 @@ void FreeBattleResources(void)
|
||||
if (gBattleResources != NULL)
|
||||
{
|
||||
FREE_AND_SET_NULL(gBattleStruct);
|
||||
|
||||
FREE_AND_SET_NULL(gBattleResources->secretBase);
|
||||
FREE_AND_SET_NULL(gBattleResources->flags);
|
||||
FREE_AND_SET_NULL(gBattleResources->battleScriptsStack);
|
||||
@@ -60,21 +66,26 @@ void FreeBattleResources(void)
|
||||
FREE_AND_SET_NULL(gBattleResources->battleHistory);
|
||||
FREE_AND_SET_NULL(gBattleResources->AI_ScriptsStack);
|
||||
FREE_AND_SET_NULL(gBattleResources);
|
||||
|
||||
FREE_AND_SET_NULL(gLinkBattleSendBuffer);
|
||||
FREE_AND_SET_NULL(gLinkBattleRecvBuffer);
|
||||
FREE_AND_SET_NULL(gBattleAnimMons_BgTilesBuffer);
|
||||
FREE_AND_SET_NULL(gBattleAnimMons_BgTilemapBuffer);
|
||||
|
||||
FREE_AND_SET_NULL(gBattleAnimBgTileBuffer);
|
||||
FREE_AND_SET_NULL(gBattleAnimBgTilemapBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
void AdjustFriendshipOnBattleFaint(u8 battlerId)
|
||||
{
|
||||
u8 opposingBattlerId, opposingBattlerId2;
|
||||
u8 opposingBattlerId;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
|
||||
{
|
||||
u8 opposingBattlerId2;
|
||||
|
||||
opposingBattlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
opposingBattlerId2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
|
||||
|
||||
if (gBattleMons[opposingBattlerId2].level > gBattleMons[opposingBattlerId].level)
|
||||
opposingBattlerId = opposingBattlerId2;
|
||||
}
|
||||
@@ -82,6 +93,7 @@ void AdjustFriendshipOnBattleFaint(u8 battlerId)
|
||||
{
|
||||
opposingBattlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
|
||||
}
|
||||
|
||||
if (gBattleMons[opposingBattlerId].level > gBattleMons[battlerId].level)
|
||||
{
|
||||
if (gBattleMons[opposingBattlerId].level - gBattleMons[battlerId].level > 29)
|
||||
|
||||
+107
-100
@@ -8,36 +8,38 @@
|
||||
#include "constants/battle_ai.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
const struct SpriteFrameImage gSpriteImages_BattlerPlayerLeft[] =
|
||||
#define BATTLER_OFFSET(i) (gHeap + 0x8000 + MON_PIC_SIZE * (i))
|
||||
|
||||
const struct SpriteFrameImage gBattlerPicTable_PlayerLeft[] =
|
||||
{
|
||||
gHeap + 0x8000, 0x800,
|
||||
gHeap + 0x8800, 0x800,
|
||||
gHeap + 0x9000, 0x800,
|
||||
gHeap + 0x9800, 0x800,
|
||||
BATTLER_OFFSET(0), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(1), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(2), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(3), MON_PIC_SIZE,
|
||||
};
|
||||
|
||||
const struct SpriteFrameImage gSpriteImages_BattlerOpponentLeft[] =
|
||||
const struct SpriteFrameImage gBattlerPicTable_OpponentLeft[] =
|
||||
{
|
||||
gHeap + 0xA000, 0x800,
|
||||
gHeap + 0xA800, 0x800,
|
||||
gHeap + 0xB000, 0x800,
|
||||
gHeap + 0xB800, 0x800,
|
||||
BATTLER_OFFSET(4), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(5), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(6), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(7), MON_PIC_SIZE,
|
||||
};
|
||||
|
||||
const struct SpriteFrameImage gSpriteImages_BattlerPlayerRight[] =
|
||||
const struct SpriteFrameImage gBattlerPicTable_PlayerRight[] =
|
||||
{
|
||||
gHeap + 0xC000, 0x800,
|
||||
gHeap + 0xC800, 0x800,
|
||||
gHeap + 0xD000, 0x800,
|
||||
gHeap + 0xD800, 0x800,
|
||||
BATTLER_OFFSET(8), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(9), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(10), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(11), MON_PIC_SIZE,
|
||||
};
|
||||
|
||||
const struct SpriteFrameImage gSpriteImages_BattlerOpponentRight[] =
|
||||
const struct SpriteFrameImage gBattlerPicTable_OpponentRight[] =
|
||||
{
|
||||
gHeap + 0xE000, 0x800,
|
||||
gHeap + 0xE800, 0x800,
|
||||
gHeap + 0xF000, 0x800,
|
||||
gHeap + 0xF800, 0x800,
|
||||
BATTLER_OFFSET(12), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(13), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(14), MON_PIC_SIZE,
|
||||
BATTLER_OFFSET(15), MON_PIC_SIZE,
|
||||
};
|
||||
|
||||
const struct SpriteFrameImage gTrainerBackPicTable_Red[] =
|
||||
@@ -102,172 +104,177 @@ static const union AnimCmd sAnim_GeneralFrame3[] =
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_82347F8[] =
|
||||
// Many of these affine anims seem to go unused, and
|
||||
// instead SetSpriteRotScale is used to manipulate
|
||||
// the battler sprites directly (for instance, in AnimTask_SwitchOutShrinkMon).
|
||||
// Those with explicit indexes are referenced elsewhere.
|
||||
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_Normal[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0x00),
|
||||
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8234808[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_Flipped[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0xff00, 0x0100, 0x00, 0x00),
|
||||
AFFINEANIMCMD_FRAME(-0x100, 0x0100, 0, 0),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8234818[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_Emerge[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x0028, 0x0028, 0x00, 0x00),
|
||||
AFFINEANIMCMD_FRAME(0x0012, 0x0012, 0x00, 0x0c),
|
||||
AFFINEANIMCMD_FRAME(0x28, 0x28, 0, 0),
|
||||
AFFINEANIMCMD_FRAME(0x12, 0x12, 0, 12),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8234830[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_Return[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x12),
|
||||
AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x0f),
|
||||
AFFINEANIMCMD_FRAME(-0x2, -0x2, 0, 18),
|
||||
AFFINEANIMCMD_FRAME(-0x10, -0x10, 0, 15),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8234848[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_HorizontalSquishLoop[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x00a0, 0x0100, 0x00, 0x00),
|
||||
AFFINEANIMCMD_FRAME(0x0004, 0x0000, 0x00, 0x08),
|
||||
AFFINEANIMCMD_FRAME(0xfffc, 0x0000, 0x00, 0x08),
|
||||
AFFINEANIMCMD_FRAME(0xA0, 0x100, 0, 0),
|
||||
AFFINEANIMCMD_FRAME( 0x4, 0x0, 0, 8),
|
||||
AFFINEANIMCMD_FRAME(-0x4, 0x0, 0, 8),
|
||||
AFFINEANIMCMD_JUMP(1),
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8234868[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_Grow[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x0002, 0x0002, 0x00, 0x14),
|
||||
AFFINEANIMCMD_FRAME(0x2, 0x2, 0, 20),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8234878[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_Shrink[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x14),
|
||||
AFFINEANIMCMD_FRAME(-0x2, -0x2, 0, 20),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8234888[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_BigToSmall[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0000),
|
||||
AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x09),
|
||||
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
|
||||
AFFINEANIMCMD_FRAME(-0x10, -0x10, 0, 9),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_82348A0[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_GrowLarge[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x0004, 0x0004, 0x00, 0x3f),
|
||||
AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 63),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_82348B0[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_TipRight[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05),
|
||||
AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x0, -3, 5),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x0, 3, 5),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerPlayer[] =
|
||||
const union AffineAnimCmd *const gAffineAnims_BattleSpritePlayerSide[] =
|
||||
{
|
||||
gSpriteAffineAnim_82347F8,
|
||||
gSpriteAffineAnim_8234818,
|
||||
gSpriteAffineAnim_8234830,
|
||||
gSpriteAffineAnim_8234848,
|
||||
gSpriteAffineAnim_8234868,
|
||||
gSpriteAffineAnim_8234878,
|
||||
gSpriteAffineAnim_82348A0,
|
||||
gSpriteAffineAnim_82348B0,
|
||||
gSpriteAffineAnim_8234888,
|
||||
[BATTLER_AFFINE_NORMAL] = sAffineAnim_Battler_Normal,
|
||||
[BATTLER_AFFINE_EMERGE] = sAffineAnim_Battler_Emerge,
|
||||
[BATTLER_AFFINE_RETURN] = sAffineAnim_Battler_Return,
|
||||
sAffineAnim_Battler_HorizontalSquishLoop,
|
||||
sAffineAnim_Battler_Grow,
|
||||
sAffineAnim_Battler_Shrink,
|
||||
sAffineAnim_Battler_GrowLarge,
|
||||
sAffineAnim_Battler_TipRight,
|
||||
sAffineAnim_Battler_BigToSmall,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_82348EC[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_SpinShrink[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0xfffc, 0xfffc, 0x04, 0x3f),
|
||||
AFFINEANIMCMD_FRAME(-0x4, -0x4, 4, 63),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_82348FC[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_TipLeft[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05),
|
||||
AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x0, 3, 5),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x0, -3, 5),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8234914[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_RotateUpAndBack[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfb, 0x14),
|
||||
AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x00, 0x14),
|
||||
AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x05, 0x14),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x0, -5, 20),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 20),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x0, 5, 20),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd gSpriteAffineAnim_8234934[] =
|
||||
static const union AffineAnimCmd sAffineAnim_Battler_Spin[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x09, 0x6e),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x0, 9, 110),
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerOpponent[] =
|
||||
const union AffineAnimCmd *const gAffineAnims_BattleSpriteOpponentSide[] =
|
||||
{
|
||||
gSpriteAffineAnim_82347F8,
|
||||
gSpriteAffineAnim_8234818,
|
||||
gSpriteAffineAnim_8234830,
|
||||
gSpriteAffineAnim_8234848,
|
||||
gSpriteAffineAnim_8234868,
|
||||
gSpriteAffineAnim_8234878,
|
||||
gSpriteAffineAnim_82348EC,
|
||||
gSpriteAffineAnim_82348FC,
|
||||
gSpriteAffineAnim_8234914,
|
||||
gSpriteAffineAnim_8234888,
|
||||
gSpriteAffineAnim_8234934,
|
||||
[BATTLER_AFFINE_NORMAL] = sAffineAnim_Battler_Normal,
|
||||
[BATTLER_AFFINE_EMERGE] = sAffineAnim_Battler_Emerge,
|
||||
[BATTLER_AFFINE_RETURN] = sAffineAnim_Battler_Return,
|
||||
sAffineAnim_Battler_HorizontalSquishLoop,
|
||||
sAffineAnim_Battler_Grow,
|
||||
sAffineAnim_Battler_Shrink,
|
||||
sAffineAnim_Battler_SpinShrink,
|
||||
sAffineAnim_Battler_TipLeft,
|
||||
sAffineAnim_Battler_RotateUpAndBack,
|
||||
sAffineAnim_Battler_BigToSmall,
|
||||
sAffineAnim_Battler_Spin,
|
||||
};
|
||||
|
||||
const union AffineAnimCmd *const gSpriteAffineAnimTable_82349470[] =
|
||||
const union AffineAnimCmd *const gAffineAnims_BattleSpriteContest[] =
|
||||
{
|
||||
gSpriteAffineAnim_8234808,
|
||||
gSpriteAffineAnim_8234818,
|
||||
gSpriteAffineAnim_8234830,
|
||||
gSpriteAffineAnim_8234848,
|
||||
gSpriteAffineAnim_8234868,
|
||||
gSpriteAffineAnim_8234878,
|
||||
gSpriteAffineAnim_82348EC,
|
||||
gSpriteAffineAnim_82348FC,
|
||||
gSpriteAffineAnim_8234914,
|
||||
gSpriteAffineAnim_8234888,
|
||||
gSpriteAffineAnim_8234934,
|
||||
[BATTLER_AFFINE_NORMAL] = sAffineAnim_Battler_Flipped,
|
||||
[BATTLER_AFFINE_EMERGE] = sAffineAnim_Battler_Emerge,
|
||||
[BATTLER_AFFINE_RETURN] = sAffineAnim_Battler_Return,
|
||||
sAffineAnim_Battler_HorizontalSquishLoop,
|
||||
sAffineAnim_Battler_Grow,
|
||||
sAffineAnim_Battler_Shrink,
|
||||
sAffineAnim_Battler_SpinShrink,
|
||||
sAffineAnim_Battler_TipLeft,
|
||||
sAffineAnim_Battler_RotateUpAndBack,
|
||||
sAffineAnim_Battler_BigToSmall,
|
||||
sAffineAnim_Battler_Spin,
|
||||
};
|
||||
|
||||
static const union AnimCmd gSpriteAnim_823499C[] =
|
||||
static const union AnimCmd sAnim_MonPic_0[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 0),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd gSpriteAnim_82349A4[] =
|
||||
static const union AnimCmd sAnim_MonPic_1[] =
|
||||
{
|
||||
ANIMCMD_FRAME(1, 0),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd gSpriteAnim_82349AC[] =
|
||||
static const union AnimCmd sAnim_MonPic_2[] =
|
||||
{
|
||||
ANIMCMD_FRAME(2, 0),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AnimCmd gSpriteAnim_82349B4[] =
|
||||
static const union AnimCmd sAnim_MonPic_3[] =
|
||||
{
|
||||
ANIMCMD_FRAME(3, 0),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
|
||||
const union AnimCmd *const gSpriteAnimTable_82349BC[] =
|
||||
const union AnimCmd *const gAnims_MonPic[] =
|
||||
{
|
||||
gSpriteAnim_823499C,
|
||||
gSpriteAnim_82349A4,
|
||||
gSpriteAnim_82349AC,
|
||||
gSpriteAnim_82349B4,
|
||||
sAnim_MonPic_0,
|
||||
sAnim_MonPic_1,
|
||||
sAnim_MonPic_2,
|
||||
sAnim_MonPic_3,
|
||||
};
|
||||
|
||||
#define SPECIES_SPRITE(species, sprite) [SPECIES_##species] = {sprite, 0x800, SPECIES_##species}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -141,12 +141,12 @@ static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, str
|
||||
static bool8 MovementType_Invisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_Invisible_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_VsSeeker4D_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_VsSeeker4D_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_VsSeeker4D_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_VsSeeker4E_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_VsSeeker4F_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_VsSeeker4E_VsSeeker4F_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_RaiseHandAndStop_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_RaiseHandAndStop_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_RaiseHandAndStop_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_RaiseHandAndJump_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_RaiseHandAndSwim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
static bool8 MovementType_RaiseHandAndMove_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
|
||||
static u8 GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy);
|
||||
static u8 GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy);
|
||||
@@ -596,18 +596,18 @@ u8 (*const gMovementTypeFuncs_Invisible[])(struct ObjectEvent *, struct Sprite *
|
||||
MovementType_Invisible_Step2,
|
||||
};
|
||||
|
||||
u8 (*const gMovementTypeFuncs_VsSeeker4D[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementType_VsSeeker4D_Step0,
|
||||
MovementType_VsSeeker4D_Step1,
|
||||
MovementType_VsSeeker4D_Step2,
|
||||
u8 (*const gMovementTypeFuncs_RaiseHandAndStop[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementType_RaiseHandAndStop_Step0,
|
||||
MovementType_RaiseHandAndStop_Step1,
|
||||
MovementType_RaiseHandAndStop_Step2,
|
||||
};
|
||||
|
||||
u8 (*const gMovementTypeFuncs_VsSeeker4E[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementType_VsSeeker4E_Step0,
|
||||
MovementType_VsSeeker4E_VsSeeker4F_Step1,
|
||||
u8 (*const gMovementTypeFuncs_RaiseHandAndJump[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementType_RaiseHandAndJump_Step0,
|
||||
MovementType_RaiseHandAndMove_Step1,
|
||||
};
|
||||
|
||||
u8 (*const gMovementTypeFuncs_VsSeeker4F[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementType_VsSeeker4F_Step0,
|
||||
MovementType_VsSeeker4E_VsSeeker4F_Step1,
|
||||
u8 (*const gMovementTypeFuncs_RaiseHandAndSwim[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementType_RaiseHandAndSwim_Step0,
|
||||
MovementType_RaiseHandAndMove_Step1,
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+408
-375
File diff suppressed because it is too large
Load Diff
@@ -767,7 +767,7 @@ static bool8 PlayerAnimIsMultiFrameStationary(void)
|
||||
|
||||
if (movementActionId <= MOVEMENT_ACTION_FACE_RIGHT_FAST
|
||||
|| (movementActionId >= MOVEMENT_ACTION_DELAY_1 && movementActionId <= MOVEMENT_ACTION_DELAY_16)
|
||||
|| (movementActionId >= MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN && movementActionId <= MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT)
|
||||
|| (movementActionId >= MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN && movementActionId <= MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT)
|
||||
|| (movementActionId >= MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN && movementActionId <= MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT)
|
||||
|| (movementActionId >= MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN && movementActionId <= MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT))
|
||||
return TRUE;
|
||||
|
||||
+5
-3
@@ -5,6 +5,8 @@
|
||||
#include "constants/items.h"
|
||||
#include "pokemon_icon.h"
|
||||
|
||||
#define UNOWN_OFFSET 30000
|
||||
|
||||
void ClearMailData(void)
|
||||
{
|
||||
u8 i;
|
||||
@@ -73,7 +75,7 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId)
|
||||
u16 SpeciesToMailSpecies(u16 species, u32 personality)
|
||||
{
|
||||
if (species == SPECIES_UNOWN) {
|
||||
u32 mailSpecies = GetUnownLetterByPersonality(personality) + 30000;
|
||||
u32 mailSpecies = GetUnownLetterByPersonality(personality) + UNOWN_OFFSET;
|
||||
return mailSpecies;
|
||||
}
|
||||
return species;
|
||||
@@ -83,10 +85,10 @@ u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *unownLetter)
|
||||
{
|
||||
u16 result;
|
||||
|
||||
if (mailSpecies >= 30000 && mailSpecies < (30000 + UNOWN_FORM_COUNT))
|
||||
if (mailSpecies >= UNOWN_OFFSET && mailSpecies < (UNOWN_OFFSET + NUM_UNOWN_FORMS))
|
||||
{
|
||||
result = SPECIES_UNOWN;
|
||||
*unownLetter = mailSpecies - 30000;
|
||||
*unownLetter = mailSpecies - UNOWN_OFFSET;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -797,7 +797,7 @@ const u8 (*const sCategoryPageIconCoords[])[4] = {
|
||||
sPageIconCoords_4Mons,
|
||||
};
|
||||
|
||||
static const u8 * const sDexCategoryNamePtrs[] = {
|
||||
static const u8 *const sDexCategoryNamePtrs[] = {
|
||||
gText_DexCategory_GrasslandPkmn,
|
||||
gText_DexCategory_ForestPkmn,
|
||||
gText_DexCategory_WatersEdgePkmn,
|
||||
|
||||
+18
-18
@@ -1473,8 +1473,8 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] =
|
||||
.paletteTag = 0,
|
||||
.oam = &gOamData_BattlerPlayer,
|
||||
.anims = NULL,
|
||||
.images = gSpriteImages_BattlerPlayerLeft,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
|
||||
.images = gBattlerPicTable_PlayerLeft,
|
||||
.affineAnims = gAffineAnims_BattleSpritePlayerSide,
|
||||
.callback = SpriteCB_AllyMon,
|
||||
},
|
||||
[B_POSITION_OPPONENT_LEFT] = {
|
||||
@@ -1482,8 +1482,8 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] =
|
||||
.paletteTag = 0,
|
||||
.oam = &gOamData_BattlerOpponent,
|
||||
.anims = NULL,
|
||||
.images = gSpriteImages_BattlerOpponentLeft,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerOpponent,
|
||||
.images = gBattlerPicTable_OpponentLeft,
|
||||
.affineAnims = gAffineAnims_BattleSpriteOpponentSide,
|
||||
.callback = SpriteCB_EnemyMon,
|
||||
},
|
||||
[B_POSITION_PLAYER_RIGHT] = {
|
||||
@@ -1491,8 +1491,8 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] =
|
||||
.paletteTag = 0,
|
||||
.oam = &gOamData_BattlerPlayer,
|
||||
.anims = NULL,
|
||||
.images = gSpriteImages_BattlerPlayerRight,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
|
||||
.images = gBattlerPicTable_PlayerRight,
|
||||
.affineAnims = gAffineAnims_BattleSpritePlayerSide,
|
||||
.callback = SpriteCB_AllyMon,
|
||||
},
|
||||
[B_POSITION_OPPONENT_RIGHT] = {
|
||||
@@ -1500,8 +1500,8 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] =
|
||||
.paletteTag = 0,
|
||||
.oam = &gOamData_BattlerOpponent,
|
||||
.anims = NULL,
|
||||
.images = gSpriteImages_BattlerOpponentRight,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerOpponent,
|
||||
.images = gBattlerPicTable_OpponentRight,
|
||||
.affineAnims = gAffineAnims_BattleSpriteOpponentSide,
|
||||
.callback = SpriteCB_EnemyMon,
|
||||
},
|
||||
};
|
||||
@@ -1514,7 +1514,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] =
|
||||
.oam = &gOamData_BattlerPlayer,
|
||||
.anims = NULL,
|
||||
.images = gTrainerBackPicTable_Red,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
|
||||
.affineAnims = gAffineAnims_BattleSpritePlayerSide,
|
||||
.callback = SpriteCB_AllyMon,
|
||||
},
|
||||
{
|
||||
@@ -1523,7 +1523,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] =
|
||||
.oam = &gOamData_BattlerPlayer,
|
||||
.anims = NULL,
|
||||
.images = gTrainerBackPicTable_Leaf,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
|
||||
.affineAnims = gAffineAnims_BattleSpritePlayerSide,
|
||||
.callback = SpriteCB_AllyMon,
|
||||
},
|
||||
{
|
||||
@@ -1532,7 +1532,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] =
|
||||
.oam = &gOamData_BattlerPlayer,
|
||||
.anims = NULL,
|
||||
.images = gTrainerBackPicTable_RSBrendan,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
|
||||
.affineAnims = gAffineAnims_BattleSpritePlayerSide,
|
||||
.callback = SpriteCB_AllyMon,
|
||||
},
|
||||
{
|
||||
@@ -1541,7 +1541,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] =
|
||||
.oam = &gOamData_BattlerPlayer,
|
||||
.anims = NULL,
|
||||
.images = gTrainerBackPicTable_RSMay,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
|
||||
.affineAnims = gAffineAnims_BattleSpritePlayerSide,
|
||||
.callback = SpriteCB_AllyMon,
|
||||
},
|
||||
{
|
||||
@@ -1550,7 +1550,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] =
|
||||
.oam = &gOamData_BattlerPlayer,
|
||||
.anims = NULL,
|
||||
.images = gTrainerBackPicTable_Pokedude,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
|
||||
.affineAnims = gAffineAnims_BattleSpritePlayerSide,
|
||||
.callback = SpriteCB_AllyMon,
|
||||
},
|
||||
{
|
||||
@@ -1559,7 +1559,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] =
|
||||
.oam = &gOamData_BattlerPlayer,
|
||||
.anims = NULL,
|
||||
.images = gTrainerBackPicTable_OldMan,
|
||||
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
|
||||
.affineAnims = gAffineAnims_BattleSpritePlayerSide,
|
||||
.callback = SpriteCB_AllyMon,
|
||||
},
|
||||
};
|
||||
@@ -1856,7 +1856,7 @@ void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level,
|
||||
{
|
||||
u32 personality;
|
||||
|
||||
if ((u8)(unownLetter - 1) < 28)
|
||||
if ((u8)(unownLetter - 1) < NUM_UNOWN_FORMS)
|
||||
{
|
||||
u16 actualLetter;
|
||||
|
||||
@@ -2747,7 +2747,7 @@ void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition)
|
||||
}
|
||||
}
|
||||
gMultiuseSpriteTemplate.paletteTag = speciesTag;
|
||||
gMultiuseSpriteTemplate.anims = gSpriteAnimTable_82349BC;
|
||||
gMultiuseSpriteTemplate.anims = gAnims_MonPic;
|
||||
}
|
||||
|
||||
void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition)
|
||||
@@ -3919,7 +3919,7 @@ static void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex)
|
||||
*hpSwitchout = gBattleMons[battlerId].hp;
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
gBattleMons[battlerId].statStages[i] = 6;
|
||||
gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE;
|
||||
|
||||
gBattleMons[battlerId].status2 = 0;
|
||||
UpdateSentPokesToOpponentValue(battlerId);
|
||||
@@ -6125,7 +6125,7 @@ static void OakSpeechNidoranFSetupTemplateDummy(struct OakSpeechNidoranFStruct *
|
||||
for (j = 0; j < structPtr->frameCount; ++j)
|
||||
structPtr->frameImages[i * structPtr->spriteCount + j].data = &structPtr->bufferPtrs[i][j * 0x800];
|
||||
structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->spriteCount]; // should be frameCount logically
|
||||
structPtr->templates[i].anims = gSpriteAnimTable_82349BC;
|
||||
structPtr->templates[i].anims = gAnims_MonPic;
|
||||
structPtr->templates[i].paletteTag = i;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -626,14 +626,14 @@ static const u32 sBgTilemap_MovesPage[] = INCBIN_U32( "graphics/interface/pokesu
|
||||
|
||||
#include "data/text/nature_names.h"
|
||||
|
||||
static const u8 * const sEggHatchTimeTexts[] = {
|
||||
static const u8 *const sEggHatchTimeTexts[] = {
|
||||
gText_PokeSum_EggHatch_LongTime,
|
||||
gText_PokeSum_EggHatch_SomeTime,
|
||||
gText_PokeSum_EggHatch_Soon,
|
||||
gText_PokeSum_EggHatch_AlmostReady
|
||||
};
|
||||
|
||||
static const u8 * const sEggOriginTexts[] = {
|
||||
static const u8 *const sEggOriginTexts[] = {
|
||||
gText_PokeSum_EggOrigin_DayCare,
|
||||
gText_PokeSum_EggOrigin_Trade,
|
||||
gText_PokeSum_EggOrigin_TravelingMan,
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ struct GFRomHeader
|
||||
const struct CompressedSpriteSheet * monBackPics;
|
||||
const struct CompressedSpritePalette * monNormalPalettes;
|
||||
const struct CompressedSpritePalette * monShinyPalettes;
|
||||
const u8 * const * monIcons;
|
||||
const u8 *const * monIcons;
|
||||
const u8 * monIconPaletteIds;
|
||||
const struct SpritePalette * monIconPalettes;
|
||||
const u8 (* monSpeciesNames)[];
|
||||
@@ -63,7 +63,7 @@ struct GFRomHeader
|
||||
u32 unk18;
|
||||
const struct BaseStats * baseStats;
|
||||
const u8 (* abilityNames)[];
|
||||
const u8 * const * abilityDescriptions;
|
||||
const u8 *const * abilityDescriptions;
|
||||
const struct Item * items;
|
||||
const struct BattleMove * moves;
|
||||
const struct CompressedSpriteSheet * ballGfx;
|
||||
|
||||
@@ -1,16 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "gflib.h"
|
||||
#include "decompress.h"
|
||||
|
||||
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
|
||||
extern const struct CompressedSpriteSheet gMonBackPicTable[];
|
||||
extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
|
||||
extern const struct CompressedSpriteSheet gTrainerBackPicTable[];
|
||||
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
|
||||
extern const union AnimCmd *const gSpriteAnimTable_82349BC[];
|
||||
extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[];
|
||||
|
||||
// Static type declarations
|
||||
#include "data.h"
|
||||
|
||||
struct PicData
|
||||
{
|
||||
@@ -131,7 +122,7 @@ void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot
|
||||
void AssignSpriteAnimsTable(bool8 isTrainer)
|
||||
{
|
||||
if (!isTrainer)
|
||||
sCreatingSpriteTemplate.anims = gSpriteAnimTable_82349BC;
|
||||
sCreatingSpriteTemplate.anims = gAnims_MonPic;
|
||||
else
|
||||
sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0];
|
||||
}
|
||||
|
||||
+10
-8
@@ -575,7 +575,7 @@ static const u8 sMovementScript_TrainerNoRematch[] = {
|
||||
};
|
||||
|
||||
static const u8 sMovementScript_TrainerRematch[] = {
|
||||
MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN,
|
||||
MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN,
|
||||
MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK,
|
||||
MOVEMENT_ACTION_STEP_END
|
||||
};
|
||||
@@ -640,9 +640,9 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void)
|
||||
{
|
||||
if ((templates[i].trainerType == TRAINER_TYPE_NORMAL
|
||||
|| templates[i].trainerType == TRAINER_TYPE_BURIED)
|
||||
&& (templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4D
|
||||
|| templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4E
|
||||
|| templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4F))
|
||||
&& (templates[i].movementType == MOVEMENT_TYPE_RAISE_HAND_AND_STOP
|
||||
|| templates[i].movementType == MOVEMENT_TYPE_RAISE_HAND_AND_JUMP
|
||||
|| templates[i].movementType == MOVEMENT_TYPE_RAISE_HAND_AND_SWIM))
|
||||
{
|
||||
movementType = GetRandomFaceDirectionMovementType();
|
||||
TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objEventId);
|
||||
@@ -700,7 +700,9 @@ static void ResetMovementOfRematchableTrainers(void)
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||
{
|
||||
struct ObjectEvent * objectEvent = &gObjectEvents[i];
|
||||
if (objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4D || objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4E || objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4F)
|
||||
if (objectEvent->movementType == MOVEMENT_TYPE_RAISE_HAND_AND_STOP
|
||||
|| objectEvent->movementType == MOVEMENT_TYPE_RAISE_HAND_AND_JUMP
|
||||
|| objectEvent->movementType == MOVEMENT_TYPE_RAISE_HAND_AND_SWIM)
|
||||
{
|
||||
u8 movementType = GetRandomFaceDirectionMovementType();
|
||||
if (objectEvent->active && gSprites[objectEvent->spriteId].data[0] == i)
|
||||
@@ -1142,13 +1144,13 @@ static u8 GetRunningBehaviorFromGraphicsId(u8 graphicsId)
|
||||
case OBJ_EVENT_GFX_BLACKBELT:
|
||||
case OBJ_EVENT_GFX_HIKER:
|
||||
case OBJ_EVENT_GFX_SAILOR:
|
||||
return MOVEMENT_TYPE_VS_SEEKER_4E;
|
||||
return MOVEMENT_TYPE_RAISE_HAND_AND_JUMP;
|
||||
case OBJ_EVENT_GFX_TUBER_M_WATER:
|
||||
case OBJ_EVENT_GFX_SWIMMER_M_WATER:
|
||||
case OBJ_EVENT_GFX_SWIMMER_F_WATER:
|
||||
return MOVEMENT_TYPE_VS_SEEKER_4F;
|
||||
return MOVEMENT_TYPE_RAISE_HAND_AND_SWIM;
|
||||
default:
|
||||
return MOVEMENT_TYPE_VS_SEEKER_4D;
|
||||
return MOVEMENT_TYPE_RAISE_HAND_AND_STOP;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user