summaryrefslogtreecommitdiff
path: root/src/battle_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_main.c')
-rw-r--r--src/battle_main.c232
1 files changed, 123 insertions, 109 deletions
diff --git a/src/battle_main.c b/src/battle_main.c
index 08bf6e345..902da32d7 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -44,7 +44,7 @@
#include "constants/songs.h"
#include "constants/trainer_classes.h"
-static void sub_80111EC(struct Sprite *sprite);
+static void SpriteCB_UnusedDebugSprite(struct Sprite *sprite);
static void HandleAction_UseMove(void);
static void HandleAction_Switch(void);
static void HandleAction_UseItem(void);
@@ -72,18 +72,18 @@ static void CB2_HandleStartBattle(void);
static void TryCorrectShedinjaLanguage(struct Pokemon *mon);
static void BattleMainCB1(void);
static void CB2_QuitPokedudeBattle(void);
-static void sub_80111FC(struct Sprite *sprite);
-static void sub_8011B94(void);
-static void sub_8011BB0(void);
+static void SpriteCB_UnusedDebugSprite_Step(struct Sprite *sprite);
+static void CB2_EndLinkBattle(void);
+static void EndLinkBattleInSteps(void);
static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite);
static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite);
static void sub_8011E3C(struct Sprite *sprite);
static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite);
-static void sub_8012060(struct Sprite *sprite);
+static void SpriteCb_BlinkVisible(struct Sprite *sprite);
static void oac_poke_ally_(struct Sprite *sprite);
static void SpriteCallbackDummy3(struct Sprite *sprite);
static void SpriteCB_BounceEffect(struct Sprite *sprite);
-static void sub_8012398(struct Sprite *sprite);
+static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite);
static void BattleStartClearSetData(void);
static void BattleIntroGetMonsData(void);
static void TurnValuesCleanUp(bool8 var0);
@@ -132,7 +132,7 @@ EWRAM_DATA u32 gUnknown_2022B54 = 0;
EWRAM_DATA struct UnknownPokemonStruct4 gMultiPartnerParty[3] = {0};
EWRAM_DATA u8 *gUnknown_2022BB8 = NULL;
EWRAM_DATA u8 *gUnknown_2022BBC = NULL;
-EWRAM_DATA u16 *gUnknown_2022BC0 = NULL;
+EWRAM_DATA u16 *sUnknownDebugSpriteDataBuffer = NULL;
EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
EWRAM_DATA u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200] = {0};
EWRAM_DATA u8 gActiveBattler = 0;
@@ -231,7 +231,7 @@ static const struct ScanlineEffectParams sIntroScanlineParams16Bit =
&REG_BG3HOFS, SCANLINE_EFFECT_DMACNT_16BIT, 1
};
-const struct SpriteTemplate gUnknown_824EFF0 =
+const struct SpriteTemplate gUnknownDebugSprite =
{
.tileTag = 0,
.paletteTag = 0,
@@ -239,12 +239,12 @@ const struct SpriteTemplate gUnknown_824EFF0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80111EC,
+ .callback = SpriteCB_UnusedDebugSprite,
};
static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin
-const struct OamData gOamData_824F010 =
+const struct OamData gOamData_BattlerOpponent =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL,
@@ -259,7 +259,7 @@ const struct OamData gOamData_824F010 =
.affineParam = 0,
};
-const struct OamData gOamData_824F018 =
+const struct OamData gOamData_BattlerPlayer =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL,
@@ -301,7 +301,7 @@ static const union AffineAnimCmd *const gUnknown_824F044[] =
gUnknown_824F02C,
};
-static const s8 gUnknown_824F048[] = { -32, -16, -16, -32, -32, 0, 0, 0 };
+static const s8 sPlayerThrowXTranslation[] = { -32, -16, -16, -32, -32, 0, 0, 0 };
// format: attacking type, defending type, damage multiplier
// the multiplier is a (decimal) fixed-point number:
@@ -705,41 +705,50 @@ static void CB2_InitBattleInternal(void)
gBattleCommunication[MULTIUSE_STATE] = 0;
}
-static void sub_800FFEC(void)
+#define BUFFER_PARTY_VS_SCREEN_STATUS(party, flags, i) \
+ for ((i) = 0; (i) < PARTY_SIZE; (i)++) \
+ { \
+ u16 species = GetMonData(&(party)[(i)], MON_DATA_SPECIES2); \
+ u16 hp = GetMonData(&(party)[(i)], MON_DATA_HP); \
+ u32 status = GetMonData(&(party)[(i)], MON_DATA_STATUS); \
+ \
+ if (species == SPECIES_NONE) \
+ continue; \
+ \
+ /* Is healthy mon? */ \
+ if (species != SPECIES_EGG && hp != 0 && status == 0) \
+ (flags) |= 1 << (i) * 2; \
+ \
+ if (species == SPECIES_NONE) /* Redundant */ \
+ continue; \
+ \
+ /* Is Egg or statused? */ \
+ if (hp != 0 && (species == SPECIES_EGG || status != 0)) \
+ (flags) |= 2 << (i) * 2; \
+ \
+ if (species == SPECIES_NONE) /* Redundant */ \
+ continue; \
+ \
+ /* Is fainted? */ \
+ if (species != SPECIES_EGG && hp == 0) \
+ (flags) |= 3 << (i) * 2; \
+ }
+
+static void BufferPartyVsScreenHealth_AtStart(void)
{
- u16 r6 = 0;
- u16 species = SPECIES_NONE;
- u16 hp = 0;
- u32 status = 0;
+ u16 flags = 0;
s32 i;
- for (i = 0; i < PARTY_SIZE; ++i)
- {
- species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
- hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
- status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
- if (species == SPECIES_NONE)
- continue;
- if (species != SPECIES_EGG && hp != 0 && status == 0)
- r6 |= 1 << i * 2;
- if (species == SPECIES_NONE)
- continue;
- if (hp != 0 && (species == SPECIES_EGG || status != 0))
- r6 |= 2 << i * 2;
- if (species == SPECIES_NONE)
- continue;
- if (species != SPECIES_EGG && hp == 0)
- r6 |= 3 << i * 2;
- }
- gBattleStruct->field_186 = r6;
- *(&gBattleStruct->field_187) = r6 >> 8;
+ BUFFER_PARTY_VS_SCREEN_STATUS(gPlayerParty, flags, i);
+ gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.vsScreenHealthFlagsLo = flags;
+ *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.vsScreenHealthFlagsHi) = flags >> 8;
}
static void SetPlayerBerryDataInBattleStruct(void)
{
s32 i;
struct BattleStruct *battleStruct = gBattleStruct;
- struct BattleEnigmaBerry *battleBerry = &battleStruct->battleEnigmaBerry;
+ struct BattleEnigmaBerry *battleBerry = &battleStruct->multiBuffer.multiPartnerEnigmaBerry.battleEnigmaBerry;
if (IsEnigmaBerryValid() == TRUE)
{
@@ -859,44 +868,47 @@ static void SetAllPlayersBerryData(void)
}
}
-static void sub_8010414(u8 arg0, u8 arg1)
+static void LinkBattleComputeBattleTypeFlags(u8 numPlayers, u8 multiPlayerId)
{
- u8 var = 0;
+ u8 found = 0;
- if (gBlockRecvBuffer[0][0] == 256)
+ // If player 1 is playing the minimum version, player 1 is master.
+ if (gBlockRecvBuffer[0][0] == 0x100)
{
- if (arg1 == 0)
+ if (multiPlayerId == 0)
gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER;
else
gBattleTypeFlags |= BATTLE_TYPE_TRAINER;
- ++var;
+ ++found;
}
- if (var == 0)
+ if (found == 0)
{
+ // If multiple different versions are being used, player 1 is master.
s32 i;
- for (i = 0; i < arg0; ++i)
+ for (i = 0; i < numPlayers; ++i)
if (gBlockRecvBuffer[0][0] != gBlockRecvBuffer[i][0])
break;
- if (i == arg0)
+ if (i == numPlayers)
{
- if (arg1 == 0)
+ if (multiPlayerId == 0)
gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER;
else
gBattleTypeFlags |= BATTLE_TYPE_TRAINER;
- ++var;
+ ++found;
}
- if (var == 0)
+ if (found == 0)
{
- for (i = 0; i < arg0; ++i)
+ // Lowest index player with the highest game version is master.
+ for (i = 0; i < numPlayers; ++i)
{
- if (gBlockRecvBuffer[i][0] == 0x201)
- if (i != arg1 && i < arg1)
+ if (gBlockRecvBuffer[i][0] == 0x201 && i != multiPlayerId)
+ if (i < multiPlayerId)
break;
- if (gBlockRecvBuffer[i][0] > 0x201 && i != arg1)
+ if (gBlockRecvBuffer[i][0] > 0x201 && i != multiPlayerId)
break;
}
- if (i == arg0)
+ if (i == numPlayers)
gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER;
else
gBattleTypeFlags |= BATTLE_TYPE_TRAINER;
@@ -924,7 +936,7 @@ static void CB2_HandleStartBattle(void)
ShowBg(1);
ShowBg(2);
ShowBg(3);
- sub_80357C8();
+ BattleInterfaceSetWindowPals();
gBattleCommunication[MULTIUSE_STATE] = 1;
}
if (gWirelessCommType)
@@ -937,11 +949,12 @@ static void CB2_HandleStartBattle(void)
{
if (IsLinkTaskFinished())
{
- *(&gBattleStruct->field_184) = 1;
- *(&gBattleStruct->field_185) = 2;
- sub_800FFEC();
+ // 0x201
+ *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.versionSignatureLo) = 1;
+ *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.versionSignatureHi) = 2;
+ BufferPartyVsScreenHealth_AtStart();
SetPlayerBerryDataInBattleStruct();
- SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, 32);
+ SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.multiPartnerEnigmaBerry, sizeof(gBattleStruct->multiBuffer.multiPartnerEnigmaBerry));
gBattleCommunication[MULTIUSE_STATE] = 2;
}
if (gWirelessCommType != 0)
@@ -961,13 +974,13 @@ static void CB2_HandleStartBattle(void)
u8 taskId;
ResetBlockReceivedFlags();
- sub_8010414(2, playerMultiplayerId);
+ LinkBattleComputeBattleTypeFlags(2, playerMultiplayerId);
SetAllPlayersBerryData();
taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 270;
gTasks[taskId].data[2] = 90;
gTasks[taskId].data[5] = 0;
- gTasks[taskId].data[3] = gBattleStruct->field_186 | (gBattleStruct->field_187 << 8);
+ gTasks[taskId].data[3] = gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.vsScreenHealthFlagsLo | (gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.vsScreenHealthFlagsHi << 8);
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1];
SetDeoxysStats();
++gBattleCommunication[MULTIUSE_STATE];
@@ -1025,7 +1038,7 @@ static void CB2_HandleStartBattle(void)
}
break;
case 15:
- sub_800D30C();
+ InitBtlControllers();
++gBattleCommunication[MULTIUSE_STATE];
gBattleCommunication[SPRITES_INIT_STATE1] = 0;
gBattleCommunication[SPRITES_INIT_STATE2] = 0;
@@ -1056,7 +1069,7 @@ static void CB2_HandleStartBattle(void)
}
}
-static void sub_80108C4(void)
+static void PrepareOwnMultiPartnerBuffer(void)
{
s32 i, j;
u8 *nick, *cur;
@@ -1083,7 +1096,7 @@ static void sub_80108C4(void)
cur[j] = EOS;
}
}
- memcpy(&gBattleStruct->field_184, gMultiPartnerParty, sizeof(gMultiPartnerParty));
+ memcpy(gBattleStruct->multiBuffer.multiBattleMons, gMultiPartnerParty, sizeof(gMultiPartnerParty));
}
static void CB2_PreInitMultiBattle(void)
@@ -1107,8 +1120,8 @@ static void CB2_PreInitMultiBattle(void)
case 0:
if (gReceivedRemoteLinkPlayers && IsLinkTaskFinished())
{
- sub_80108C4();
- SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, sizeof(gMultiPartnerParty));
+ PrepareOwnMultiPartnerBuffer();
+ SendBlock(bitmask_all_link_players_but_self(), gBattleStruct->multiBuffer.multiBattleMons, sizeof(gBattleStruct->multiBuffer.multiBattleMons));
++gBattleCommunication[MULTIUSE_STATE];
}
break;
@@ -1181,7 +1194,7 @@ static void CB2_HandleStartMultiBattle(void)
ShowBg(1);
ShowBg(2);
ShowBg(3);
- sub_80357C8();
+ BattleInterfaceSetWindowPals();
gBattleCommunication[MULTIUSE_STATE] = 1;
}
if (gWirelessCommType)
@@ -1192,11 +1205,12 @@ static void CB2_HandleStartMultiBattle(void)
{
if (IsLinkTaskFinished())
{
- *(&gBattleStruct->field_184) = 1;
- *(&gBattleStruct->field_185) = 2;
- sub_800FFEC();
+ // 0x201
+ *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.versionSignatureLo) = 1;
+ *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.versionSignatureHi) = 2;
+ BufferPartyVsScreenHealth_AtStart();
SetPlayerBerryDataInBattleStruct();
- SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, 32);
+ SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.multiPartnerEnigmaBerry, sizeof(gBattleStruct->multiBuffer.multiPartnerEnigmaBerry));
++gBattleCommunication[MULTIUSE_STATE];
}
if (gWirelessCommType)
@@ -1207,7 +1221,7 @@ static void CB2_HandleStartMultiBattle(void)
if ((GetBlockReceivedStatus() & 0xF) == 0xF)
{
ResetBlockReceivedFlags();
- sub_8010414(4, playerMultiplayerId);
+ LinkBattleComputeBattleTypeFlags(4, playerMultiplayerId);
SetAllPlayersBerryData();
SetDeoxysStats();
memcpy(gDecompressionBuffer, gPlayerParty, sizeof(struct Pokemon) * 3);
@@ -1383,7 +1397,7 @@ static void CB2_HandleStartMultiBattle(void)
}
break;
case 11:
- sub_800D30C();
+ InitBtlControllers();
++gBattleCommunication[MULTIUSE_STATE];
gBattleCommunication[SPRITES_INIT_STATE1] = 0;
gBattleCommunication[SPRITES_INIT_STATE2] = 0;
@@ -1450,18 +1464,18 @@ static void CB2_QuitPokedudeBattle(void)
}
}
-static void sub_80111EC(struct Sprite *sprite)
+static void SpriteCB_UnusedDebugSprite(struct Sprite *sprite)
{
sprite->data[0] = 0;
- sprite->callback = sub_80111FC;
+ sprite->callback = SpriteCB_UnusedDebugSprite_Step;
}
-static void sub_80111FC(struct Sprite *sprite)
+static void SpriteCB_UnusedDebugSprite_Step(struct Sprite *sprite)
{
switch (sprite->data[0])
{
case 0:
- gUnknown_2022BC0 = AllocZeroed(0x1000);
+ sUnknownDebugSpriteDataBuffer = AllocZeroed(0x1000);
++sprite->data[0];
sprite->data[1] = 0;
sprite->data[2] = 0x281;
@@ -1478,8 +1492,8 @@ static void sub_80111FC(struct Sprite *sprite)
r0 = sprite->data[2] - sprite->data[3] * 32;
for (i = 0; i <= 29; i += 2)
{
- *(&gUnknown_2022BC0[r2] + i) = 0x3D;
- *(&gUnknown_2022BC0[r0] + i) = 0x3D;
+ *(&sUnknownDebugSpriteDataBuffer[r2] + i) = 0x3D;
+ *(&sUnknownDebugSpriteDataBuffer[r0] + i) = 0x3D;
}
if (++sprite->data[3] == 21)
{
@@ -1491,10 +1505,10 @@ static void sub_80111FC(struct Sprite *sprite)
case 2:
if (--sprite->data[1] == 20)
{
- if (gUnknown_2022BC0 != NULL)
+ if (sUnknownDebugSpriteDataBuffer != NULL)
{
- memset(gUnknown_2022BC0, 0, 0x1000);
- FREE_AND_SET_NULL(gUnknown_2022BC0);
+ memset(sUnknownDebugSpriteDataBuffer, 0, 0x1000);
+ FREE_AND_SET_NULL(sUnknownDebugSpriteDataBuffer);
}
SetMainCallback2(CB2_InitBattle);
}
@@ -1593,7 +1607,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
}
// not used
-static void sub_80116CC(void)
+UNUSED static void unused_80116CC(void)
{
if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F)
REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x512;
@@ -1621,11 +1635,11 @@ void VBlankCB_Battle(void)
ScanlineEffect_InitHBlankDmaTransfer();
}
-void nullsub_9(struct Sprite *sprite)
+void SpriteCB_VsLetterDummy(struct Sprite *sprite)
{
}
-static void sub_80117BC(struct Sprite *sprite)
+static void SpriteCB_VsLetter(struct Sprite *sprite)
{
if (sprite->data[0] != 0)
sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8);
@@ -1641,14 +1655,14 @@ static void sub_80117BC(struct Sprite *sprite)
}
}
-void sub_801182C(struct Sprite *sprite)
+void SpriteCB_VsLetterInit(struct Sprite *sprite)
{
StartSpriteAffineAnim(sprite, 1);
- sprite->callback = sub_80117BC;
+ sprite->callback = SpriteCB_VsLetter;
PlaySE(SE_MUGSHOT);
}
-static void sub_801184C(u8 taskId)
+static void BufferPartyVsScreenHealth_AtEnd(u8 taskId)
{
struct Pokemon *party1 = NULL;
struct Pokemon *party2 = NULL;
@@ -1723,7 +1737,7 @@ static void sub_801184C(u8 taskId)
gTasks[taskId].data[4] = r7;
}
-void sub_8011A1C(void)
+void CB2_InitEndLinkBattle(void)
{
s32 i;
u8 taskId;
@@ -1773,21 +1787,21 @@ void sub_8011A1C(void)
gTasks[taskId].data[1] = 270;
gTasks[taskId].data[2] = 90;
gTasks[taskId].data[5] = 1;
- sub_801184C(taskId);
- SetMainCallback2(sub_8011B94);
+ BufferPartyVsScreenHealth_AtEnd(taskId);
+ SetMainCallback2(CB2_EndLinkBattle);
gBattleCommunication[MULTIUSE_STATE] = 0;
}
-static void sub_8011B94(void)
+static void CB2_EndLinkBattle(void)
{
- sub_8011BB0();
+ EndLinkBattleInSteps();
AnimateSprites();
BuildOamBuffer();
UpdatePaletteFade();
RunTasks();
}
-static void sub_8011BB0(void)
+static void EndLinkBattleInSteps(void)
{
s32 i;
@@ -1868,7 +1882,7 @@ static void TryCorrectShedinjaLanguage(struct Pokemon *mon)
#define sBattler data[0]
#define sSpeciesId data[2]
-void SpriteCB_WildMon(struct Sprite *sprite)
+void SpriteCB_EnemyMon(struct Sprite *sprite)
{
sprite->callback = SpriteCB_MoveWildMonToRight;
StartSpriteAnimIfDifferent(sprite, 0);
@@ -1892,7 +1906,7 @@ static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite)
{
if (sprite->animEnded)
{
- sub_804BD94(sprite->sBattler);
+ StartHealthboxSlideIn(sprite->sBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]);
sprite->callback = SpriteCallbackDummy2;
StartSpriteAnimIfDifferent(sprite, 0);
@@ -1905,7 +1919,7 @@ void SpriteCallbackDummy2(struct Sprite *sprite)
}
// not used
-static void sub_8011E28(struct Sprite *sprite)
+UNUSED static void sub_8011E28(struct Sprite *sprite)
{
sprite->data[3] = 6;
sprite->data[4] = 1;
@@ -1994,14 +2008,14 @@ static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite)
}
}
-void sub_8012044(struct Sprite *sprite)
+void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite)
{
sprite->data[3] = 8;
sprite->data[4] = sprite->invisible;
- sprite->callback = sub_8012060;
+ sprite->callback = SpriteCb_BlinkVisible;
}
-static void sub_8012060(struct Sprite *sprite)
+static void SpriteCb_BlinkVisible(struct Sprite *sprite)
{
--sprite->data[3];
if (sprite->data[3] == 0)
@@ -2011,14 +2025,14 @@ static void sub_8012060(struct Sprite *sprite)
}
}
-void sub_8012098(struct Sprite *sprite)
+void SpriteCb_HideAsMoveTarget(struct Sprite *sprite)
{
sprite->invisible = sprite->data[4];
sprite->data[4] = FALSE;
sprite->callback = SpriteCallbackDummy2;
}
-void sub_80120C4(struct Sprite *sprite)
+void SpriteCB_AllyMon(struct Sprite *sprite)
{
sprite->callback = oac_poke_ally_;
}
@@ -2139,21 +2153,21 @@ static void SpriteCB_BounceEffect(struct Sprite *sprite)
sprite->sSinIndex = (sprite->sSinIndex + sprite->sDelta) & 0xFF;
}
-void sub_8012354(struct Sprite *sprite)
+void SpriteCB_PlayerThrowInit(struct Sprite *sprite)
{
StartSpriteAnim(sprite, 1);
- sprite->callback = sub_8012398;
+ sprite->callback = SpriteCB_PlayerThrowUpdate;
}
-void sub_801236C(struct Sprite *sprite)
+void UpdatePlayerPosInThrowAnim(struct Sprite *sprite)
{
if (sprite->animDelayCounter == 0)
- sprite->centerToCornerVecX = gUnknown_824F048[sprite->animCmdIndex];
+ sprite->centerToCornerVecX = sPlayerThrowXTranslation[sprite->animCmdIndex];
}
-static void sub_8012398(struct Sprite *sprite)
+static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite)
{
- sub_801236C(sprite);
+ UpdatePlayerPosInThrowAnim(sprite);
if (sprite->animEnded)
sprite->callback = SpriteCallbackDummy3;
}
@@ -2983,7 +2997,7 @@ u8 IsRunningFromBattleImpossible(void)
return BATTLE_RUN_SUCCESS;
}
-void sub_8013F6C(u8 battler)
+void UpdatePartyOwnerOnSwitch_NonMulti(u8 battler)
{
s32 i;
u8 r4, r1;