Document more symbols in battle

This commit is contained in:
PikalaxALT
2021-03-14 20:10:19 -04:00
parent 99ec579deb
commit 31f4edbe50
24 changed files with 208 additions and 205 deletions
+3 -5
View File
@@ -516,14 +516,12 @@ struct BattleScripting
enum
{
BACK_PIC_BRENDAN,
BACK_PIC_MAY,
BACK_PIC_RED,
BACK_PIC_LEAF,
BACK_PIC_RS_BRENDAN,
BACK_PIC_RS_MAY,
BACK_PIC_WALLY,
BACK_PIC_STEVEN
BACK_PIC_POKEDUDE,
BACK_PIC_OLDMAN
};
struct BattleSpriteInfo
@@ -719,7 +717,7 @@ extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT];
extern u8 gBattleTerrain;
extern struct UnknownPokemonStruct4 gMultiPartnerParty[3];
extern u16 *gUnknown_2022BC0;
extern u16 *sUnknownDebugSpriteDataBuffer;
extern u16 gRandomTurnNumber;
#endif // GUARD_BATTLE_H
+1 -1
View File
@@ -184,7 +184,7 @@ extern struct UnusedControllerStruct gUnknown_2022870;
// general functions
void HandleLinkBattleSetup(void);
void SetUpBattleVars(void);
void sub_800D30C(void);
void InitBtlControllers(void);
void sub_800DD28(void);
void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
+1 -1
View File
@@ -36,7 +36,7 @@ void LoadAndCreateEnemyShadowSprites(void);
void SpriteCB_SetInvisible(struct Sprite *sprite);
void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species);
void HideBattlerShadowSprite(u8 battlerId);
void sub_80357C8(void);
void BattleInterfaceSetWindowPals(void);
void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute);
void AllocateMonSpritesGfx(void);
void FreeMonSpritesGfx(void);
+11 -11
View File
@@ -45,9 +45,9 @@ struct UnknownPokemonStruct4
#define BOUNCE_MON 0x0
#define BOUNCE_HEALTHBOX 0x1
extern const struct SpriteTemplate gUnknown_824EFF0;
extern const struct OamData gOamData_824F010;
extern const struct OamData gOamData_824F018;
extern const struct SpriteTemplate gUnknownDebugSprite;
extern const struct OamData gOamData_BattlerOpponent;
extern const struct OamData gOamData_BattlerPlayer;
extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1];
extern const u8 gStatusConditionString_PoisonJpn[8];
extern const u8 gStatusConditionString_SleepJpn[8];
@@ -66,16 +66,16 @@ void CB2_InitBattle(void);
void BattleMainCB2(void);
void FreeRestoreBattleData(void);
void VBlankCB_Battle(void);
void nullsub_9(struct Sprite *sprite);
void sub_801182C(struct Sprite *sprite);
void sub_8011A1C(void);
void SpriteCB_VsLetterDummy(struct Sprite *sprite);
void SpriteCB_VsLetterInit(struct Sprite *sprite);
void CB2_InitEndLinkBattle(void);
u32 GetBattleBgAttribute(u8 arrayId, u8 caseId);
void SpriteCB_WildMon(struct Sprite *sprite);
void SpriteCB_EnemyMon(struct Sprite *sprite);
void SpriteCallbackDummy2(struct Sprite *sprite);
void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
void sub_8012044(struct Sprite *sprite);
void sub_8012098(struct Sprite *sprite);
void sub_80120C4(struct Sprite *sprite);
void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite);
void SpriteCb_HideAsMoveTarget(struct Sprite *sprite);
void SpriteCB_AllyMon(struct Sprite *sprite);
void sub_8012100(struct Sprite *sprite);
void sub_8012110(struct Sprite *sprite);
void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
@@ -88,7 +88,7 @@ void SwitchInClearSetData(void);
void FaintClearSetData(void);
void BattleTurnPassed(void);
u8 IsRunningFromBattleImpossible(void);
void sub_8013F6C(u8 battler);
void UpdatePartyOwnerOnSwitch_NonMulti(u8 battler);
void SwapTurnOrder(u8 id1, u8 id2);
u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves);
void RunBattleScriptCommands_PopCallbacksStack(void);
+6 -6
View File
@@ -48,12 +48,12 @@ extern const u8 *const gBattleAnims_Special[];
extern const struct OamData gUnknown_824F010;
extern const struct OamData gUnknown_824F018;
extern const union AnimCmd *const gSpriteAnimTable_82349BC[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_82348C8[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_8234944[];
extern const struct SpriteFrameImage gUnknown_8234698[];
extern const struct SpriteFrameImage gUnknown_82346B8[];
extern const struct SpriteFrameImage gUnknown_82346D8[];
extern const struct SpriteFrameImage gUnknown_82346F8[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerPlayer[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerOpponent[];
extern const struct SpriteFrameImage gSpriteImages_BattlerPlayerLeft[];
extern const struct SpriteFrameImage gSpriteImages_BattlerOpponentLeft[];
extern const struct SpriteFrameImage gSpriteImages_BattlerPlayerRight[];
extern const struct SpriteFrameImage gSpriteImages_BattlerOpponentRight[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Red[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[];
+1 -1
View File
@@ -33,7 +33,7 @@ void sub_8076918(u8 bank);
void DoHitAnimHealthboxEffect(u8 bank);
void LoadBallGfx(u8 ballId);
void FreeBallGfx(u8 ballId);
void sub_804BD94(u8 battler);
void StartHealthboxSlideIn(u8 battler);
void DestroySpriteAndFreeResources2(struct Sprite *sprite);
#endif // GUARD_POKEBALL_H
+1 -1
View File
@@ -327,7 +327,7 @@ extern const u32 gExperienceTables[][MAX_LEVEL + 1];
extern const u16 *const gLevelUpLearnsets[];
extern const u8 gFacilityClassToPicIndex[];
extern const u8 gFacilityClassToTrainerClass[];
extern const struct SpriteTemplate gUnknown_825DEF0[];
extern const struct SpriteTemplate gSpriteTemplates_Battlers[];
extern const u8 gPPUpGetMask[];
void ZeroBoxMonData(struct BoxPokemon *boxMon);
+3 -3
View File
@@ -85,7 +85,7 @@ static const struct SpriteTemplate sVsLetter_V_SpriteTemplate = {
.oam = &gOamData_82482A0,
.anims = gDummySpriteAnimTable,
.affineAnims = gAffineAnimTable_82482E0,
.callback = nullsub_9
.callback = SpriteCB_VsLetterDummy
};
static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = {
@@ -94,7 +94,7 @@ static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = {
.oam = &gOamData_82482A8,
.anims = gDummySpriteAnimTable,
.affineAnims = gAffineAnimTable_82482E0,
.callback = nullsub_9
.callback = SpriteCB_VsLetterDummy
};
static const struct CompressedSpriteSheet sVsLettersSpriteSheet = {
@@ -584,7 +584,7 @@ UNUSED void CreateUnknownDebugSprite(void)
u8 spriteId;
ResetSpriteData();
spriteId = CreateSprite(&gUnknown_824EFF0, 0, 0, 0);
spriteId = CreateSprite(&gUnknownDebugSprite, 0, 0, 0);
gSprites[spriteId].invisible = TRUE;
SetMainCallback2(CB2_unused);
}
+3 -3
View File
@@ -259,7 +259,7 @@ static void sub_803A9CC(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK);
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES));
}
@@ -267,7 +267,7 @@ static void sub_803A9CC(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
@@ -381,7 +381,7 @@ static void sub_803AF28(void)
FreeSpritePaletteByTag(0x27F9);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_803AE6C;
+3 -3
View File
@@ -226,14 +226,14 @@ static void sub_80D443C(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK);
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
gBattlerControllerFuncs[gActiveBattler] = sub_80D4358;
@@ -338,7 +338,7 @@ static void sub_80D484C(void)
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_80D47AC;
+15 -15
View File
@@ -413,14 +413,14 @@ static void sub_80E7B4C(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK);
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
gBattlerControllerFuncs[gActiveBattler] = sub_80E7CD8;
@@ -1569,20 +1569,20 @@ static void OakOldManHandleDrawTrainerPic(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
{
DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80,
(8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80,
30);
}
else
{
DecompressTrainerBackPalette(5, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(gActiveBattler));
DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80,
(8 - gTrainerBackPicCoords[5].size) * 4 + 80,
(8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80,
30);
}
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
@@ -1596,20 +1596,20 @@ static void OakOldManHandleTrainerSlide(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
{
DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80,
(8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80,
30);
}
else
{
DecompressTrainerBackPalette(5, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(gActiveBattler));
DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80,
(8 - gTrainerBackPicCoords[5].size) * 4 + 80,
(8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80,
30);
}
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
@@ -2081,7 +2081,7 @@ static void OakOldManHandleIntroTrainerBallThrow(void)
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80335F8);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32);
LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(sub_80EB0A8, 5);
gTasks[taskId].data[0] = gActiveBattler;
+3 -3
View File
@@ -253,7 +253,7 @@ static void sub_8035DF0(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK);
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES));
}
@@ -261,7 +261,7 @@ static void sub_8035DF0(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
@@ -387,7 +387,7 @@ static void sub_8036334(void)
FreeSpritePaletteByTag(0x27F9);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_8036278;
+15 -15
View File
@@ -336,7 +336,7 @@ static void HandleInputChooseTarget(void)
if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098;
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8));
EndBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX);
PlayerBufferExecCompleted();
@@ -344,7 +344,7 @@ static void HandleInputChooseTarget(void)
else if (JOY_NEW(B_BUTTON))
{
PlaySE(SE_SELECT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098;
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove;
DoBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX, 7, 1);
DoBounceEffect(gActiveBattler, BOUNCE_MON, 7, 1);
@@ -353,7 +353,7 @@ static void HandleInputChooseTarget(void)
else if (JOY_NEW(DPAD_LEFT | DPAD_UP))
{
PlaySE(SE_SELECT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098;
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
do
{
@@ -388,12 +388,12 @@ static void HandleInputChooseTarget(void)
i = 0;
}
while (i == 0);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012044;
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
}
else if (JOY_NEW(DPAD_RIGHT | DPAD_DOWN))
{
PlaySE(SE_SELECT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098;
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
do
{
@@ -428,7 +428,7 @@ static void HandleInputChooseTarget(void)
i = 0;
}
while (i == 0);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012044;
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
}
}
@@ -495,7 +495,7 @@ void HandleInputChooseMove(void)
gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
else
gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012044;
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
}
}
else if (JOY_NEW(B_BUTTON))
@@ -801,7 +801,7 @@ static void sub_802F610(void)
m4aSongNumStop(SE_LOW_HEALTH);
gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8011A1C);
SetMainCallback2(CB2_InitEndLinkBattle);
FreeAllWindowBuffers();
}
}
@@ -810,7 +810,7 @@ static void sub_802F610(void)
m4aSongNumStop(SE_LOW_HEALTH);
gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8011A1C);
SetMainCallback2(CB2_InitEndLinkBattle);
FreeAllWindowBuffers();
}
}
@@ -921,14 +921,14 @@ static void sub_802FA58(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK);
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
gBattlerControllerFuncs[gActiveBattler] = sub_802F858;
@@ -973,7 +973,7 @@ static void sub_802FD18(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_802FBF4;
@@ -2175,13 +2175,13 @@ static void PlayerHandleDrawTrainerPic(void)
if ((gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_RUBY
|| (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_SAPPHIRE
|| (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_EMERALD)
trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + 2;
trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RS_BRENDAN;
else
trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + 0;
trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RED;
}
else
{
trainerPicId = gSaveBlock2Ptr->playerGender + 0;
trainerPicId = gSaveBlock2Ptr->playerGender + BACK_PIC_RED;
}
DecompressTrainerBackPalette(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
+10 -10
View File
@@ -664,7 +664,7 @@ static void sub_81563A8(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_81562F0;
@@ -762,14 +762,14 @@ static void sub_8156624(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK);
StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
gBattlerControllerFuncs[gActiveBattler] = sub_81567B0;
@@ -1714,11 +1714,11 @@ static void PokedudeHandleDrawTrainerPic(void)
{
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
DecompressTrainerBackPalette(4, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(4, GetBattlerPosition(gActiveBattler));
DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80,
(8 - gTrainerBackPicCoords[4].size) * 4 + 80,
(8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80,
30);
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
@@ -1747,11 +1747,11 @@ static void PokedudeHandleDrawTrainerPic(void)
static void PokedudeHandleTrainerSlide(void)
{
DecompressTrainerBackPalette(4, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(4, GetBattlerPosition(gActiveBattler));
DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80,
(8 - gTrainerBackPicCoords[4].size) * 4 + 80,
(8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80,
30);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96;
@@ -2222,7 +2222,7 @@ static void PokedudeHandleIntroTrainerBallThrow(void)
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80335F8);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[4].data, 0x100 + paletteNum * 16, 32);
LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_POKEDUDE].data, 0x100 + paletteNum * 16, 32);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(sub_81595EC, 5);
gTasks[taskId].data[0] = gActiveBattler;
+1 -1
View File
@@ -608,7 +608,7 @@ static void SafariHandleIntroSlide(void)
static void SafariHandleIntroTrainerBallThrow(void)
{
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT);
sub_804BD94(gActiveBattler);
StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy;
}
+1 -1
View File
@@ -62,7 +62,7 @@ void SetUpBattleVars(void)
gUnknown_2023DDC = 0;
}
void sub_800D30C(void)
void InitBtlControllers(void)
{
s32 i;
+9 -4
View File
@@ -950,9 +950,12 @@ void HideBattlerShadowSprite(u8 battlerId)
gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].callback = SpriteCB_SetInvisible;
}
void sub_80357C8(void)
// Low-level function that sets specific interface tiles' palettes,
// overwriting any pixel with value 0.
void BattleInterfaceSetWindowPals(void)
{
u16 *vramPtr = (u16 *)(VRAM + 0x240);
// 9 tiles at 0x06000240
u16 *vramPtr = (u16 *)(BG_VRAM + 0x240);
s32 i;
s32 j;
@@ -970,7 +973,9 @@ void sub_80357C8(void)
*vramPtr |= 0x000F;
}
}
vramPtr = (u16 *)(VRAM + 0x600);
// 18 tiles at 0x06000600
vramPtr = (u16 *)(BG_VRAM + 0x600);
for (i = 0; i < 18; ++i)
{
for (j = 0; j < 16; ++vramPtr, ++j)
@@ -1005,7 +1010,7 @@ void AllocateMonSpritesGfx(void)
for (i = 0; i < MAX_BATTLERS_COUNT; ++i)
{
gMonSpritesGfxPtr->sprites[i] = gMonSpritesGfxPtr->firstDecompressed + (i * 0x2000);
*(gMonSpritesGfxPtr->templates + i) = gUnknown_825DEF0[i];
*(gMonSpritesGfxPtr->templates + i) = gSpriteTemplates_Battlers[i];
for (j = 0; j < 4; ++j)
{
+2 -2
View File
@@ -422,9 +422,9 @@ static void BattleIntroSlideLink(u8 taskId)
{
++gTasks[taskId].data[0];
gSprites[gBattleStruct->linkBattleVsSpriteId_V].oam.objMode = ST_OAM_OBJ_WINDOW;
gSprites[gBattleStruct->linkBattleVsSpriteId_V].callback = sub_801182C;
gSprites[gBattleStruct->linkBattleVsSpriteId_V].callback = SpriteCB_VsLetterInit;
gSprites[gBattleStruct->linkBattleVsSpriteId_S].oam.objMode = ST_OAM_OBJ_WINDOW;
gSprites[gBattleStruct->linkBattleVsSpriteId_S].callback = sub_801182C;
gSprites[gBattleStruct->linkBattleVsSpriteId_S].callback = SpriteCB_VsLetterInit;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2);
}
+47 -47
View File
@@ -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,14 +72,14 @@ 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);
@@ -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,
@@ -868,7 +868,7 @@ static void SetAllPlayersBerryData(void)
}
}
static void sub_8010414(u8 numPlayers, u8 multiPlayerId)
static void LinkBattleComputeBattleTypeFlags(u8 numPlayers, u8 multiPlayerId)
{
u8 found = 0;
@@ -936,7 +936,7 @@ static void CB2_HandleStartBattle(void)
ShowBg(1);
ShowBg(2);
ShowBg(3);
sub_80357C8();
BattleInterfaceSetWindowPals();
gBattleCommunication[MULTIUSE_STATE] = 1;
}
if (gWirelessCommType)
@@ -974,7 +974,7 @@ 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;
@@ -1038,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;
@@ -1194,7 +1194,7 @@ static void CB2_HandleStartMultiBattle(void)
ShowBg(1);
ShowBg(2);
ShowBg(3);
sub_80357C8();
BattleInterfaceSetWindowPals();
gBattleCommunication[MULTIUSE_STATE] = 1;
}
if (gWirelessCommType)
@@ -1221,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);
@@ -1397,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;
@@ -1464,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;
@@ -1492,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)
{
@@ -1505,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);
}
@@ -1607,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;
@@ -1635,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);
@@ -1655,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;
@@ -1737,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;
@@ -1787,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;
@@ -1882,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);
@@ -1906,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);
@@ -1919,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;
@@ -2008,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)
@@ -2025,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_;
}
@@ -2997,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;
+3 -3
View File
@@ -4791,7 +4791,7 @@ static void atk51_switchhandleorder(void)
break;
case 1:
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
sub_8013F6C(gActiveBattler);
UpdatePartyOwnerOnSwitch_NonMulti(gActiveBattler);
break;
case 2:
gBattleCommunication[0] = gBattleBufferB[gActiveBattler][1];
@@ -4808,7 +4808,7 @@ static void atk51_switchhandleorder(void)
}
else
{
sub_8013F6C(gActiveBattler);
UpdatePartyOwnerOnSwitch_NonMulti(gActiveBattler);
}
PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species)
PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBattler, gBattleBufferB[gActiveBattler][1])
@@ -6704,7 +6704,7 @@ static void atk8F_forcerandomswitch(void)
}
*(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i;
if (!IsMultiBattle())
sub_8013F6C(gBattlerTarget);
UpdatePartyOwnerOnSwitch_NonMulti(gBattlerTarget);
SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0);
SwitchPartyOrderLinkMulti(gBattlerTarget ^ 2, i, 1);
}
+6 -6
View File
@@ -8,7 +8,7 @@
#include "constants/battle_ai.h"
#include "constants/trainer_classes.h"
const struct SpriteFrameImage gUnknown_8234698[] =
const struct SpriteFrameImage gSpriteImages_BattlerPlayerLeft[] =
{
gHeap + 0x8000, 0x800,
gHeap + 0x8800, 0x800,
@@ -16,7 +16,7 @@ const struct SpriteFrameImage gUnknown_8234698[] =
gHeap + 0x9800, 0x800,
};
const struct SpriteFrameImage gUnknown_82346B8[] =
const struct SpriteFrameImage gSpriteImages_BattlerOpponentLeft[] =
{
gHeap + 0xA000, 0x800,
gHeap + 0xA800, 0x800,
@@ -24,7 +24,7 @@ const struct SpriteFrameImage gUnknown_82346B8[] =
gHeap + 0xB800, 0x800,
};
const struct SpriteFrameImage gUnknown_82346D8[] =
const struct SpriteFrameImage gSpriteImages_BattlerPlayerRight[] =
{
gHeap + 0xC000, 0x800,
gHeap + 0xC800, 0x800,
@@ -32,7 +32,7 @@ const struct SpriteFrameImage gUnknown_82346D8[] =
gHeap + 0xD800, 0x800,
};
const struct SpriteFrameImage gUnknown_82346F8[] =
const struct SpriteFrameImage gSpriteImages_BattlerOpponentRight[] =
{
gHeap + 0xE000, 0x800,
gHeap + 0xE800, 0x800,
@@ -168,7 +168,7 @@ static const union AffineAnimCmd gSpriteAffineAnim_82348B0[] =
AFFINEANIMCMD_END,
};
const union AffineAnimCmd *const gSpriteAffineAnimTable_82348C8[] =
const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerPlayer[] =
{
gSpriteAffineAnim_82347F8,
gSpriteAffineAnim_8234818,
@@ -208,7 +208,7 @@ static const union AffineAnimCmd gSpriteAffineAnim_8234934[] =
AFFINEANIMCMD_END,
};
const union AffineAnimCmd *const gSpriteAffineAnimTable_8234944[] =
const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerOpponent[] =
{
gSpriteAffineAnim_82347F8,
gSpriteAffineAnim_8234818,
+1 -1
View File
@@ -1167,7 +1167,7 @@ void DestroySpriteAndFreeResources2(struct Sprite *sprite)
DestroySpriteAndFreeResources(sprite);
}
void sub_804BD94(u8 battlerId)
void StartHealthboxSlideIn(u8 battlerId)
{
struct Sprite *healthboxSprite = &gSprites[gHealthboxSpriteIds[battlerId]];
+45 -45
View File
@@ -1472,101 +1472,101 @@ static const u8 sHoldEffectToType[][2] =
{HOLD_EFFECT_NORMAL_POWER, TYPE_NORMAL},
};
const struct SpriteTemplate gUnknown_825DEF0[] =
const struct SpriteTemplate gSpriteTemplates_Battlers[] =
{
{
[B_POSITION_PLAYER_LEFT] = {
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F018,
.oam = &gOamData_BattlerPlayer,
.anims = NULL,
.images = gUnknown_8234698,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
.images = gSpriteImages_BattlerPlayerLeft,
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = SpriteCB_AllyMon,
},
{
[B_POSITION_OPPONENT_LEFT] = {
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F010,
.oam = &gOamData_BattlerOpponent,
.anims = NULL,
.images = gUnknown_82346B8,
.affineAnims = gSpriteAffineAnimTable_8234944,
.callback = SpriteCB_WildMon,
.images = gSpriteImages_BattlerOpponentLeft,
.affineAnims = gSpriteAffineAnimTable_BattlerOpponent,
.callback = SpriteCB_EnemyMon,
},
{
[B_POSITION_PLAYER_RIGHT] = {
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F018,
.oam = &gOamData_BattlerPlayer,
.anims = NULL,
.images = gUnknown_82346D8,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
.images = gSpriteImages_BattlerPlayerRight,
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = SpriteCB_AllyMon,
},
{
[B_POSITION_OPPONENT_RIGHT] = {
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F010,
.oam = &gOamData_BattlerOpponent,
.anims = NULL,
.images = gUnknown_82346F8,
.affineAnims = gSpriteAffineAnimTable_8234944,
.callback = SpriteCB_WildMon,
.images = gSpriteImages_BattlerOpponentRight,
.affineAnims = gSpriteAffineAnimTable_BattlerOpponent,
.callback = SpriteCB_EnemyMon,
},
};
const struct SpriteTemplate gUnknown_825DF50[] =
const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] =
{
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F018,
.oam = &gOamData_BattlerPlayer,
.anims = NULL,
.images = gTrainerBackPicTable_Red,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = SpriteCB_AllyMon,
},
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F018,
.oam = &gOamData_BattlerPlayer,
.anims = NULL,
.images = gTrainerBackPicTable_Leaf,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = SpriteCB_AllyMon,
},
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F018,
.oam = &gOamData_BattlerPlayer,
.anims = NULL,
.images = gTrainerBackPicTable_RSBrendan,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = SpriteCB_AllyMon,
},
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F018,
.oam = &gOamData_BattlerPlayer,
.anims = NULL,
.images = gTrainerBackPicTable_RSMay,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = SpriteCB_AllyMon,
},
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F018,
.oam = &gOamData_BattlerPlayer,
.anims = NULL,
.images = gTrainerBackPicTable_Pokedude,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = SpriteCB_AllyMon,
},
{
.tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0,
.oam = &gOamData_824F018,
.oam = &gOamData_BattlerPlayer,
.anims = NULL,
.images = gTrainerBackPicTable_OldMan,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
.affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = SpriteCB_AllyMon,
},
};
@@ -2716,7 +2716,7 @@ void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition)
if (battlerPosition >= 4)
battlerPosition = 0;
gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition];
gMultiuseSpriteTemplate = gSpriteTemplates_Battlers[battlerPosition];
}
}
gMultiuseSpriteTemplate.paletteTag = speciesTag;
@@ -2728,7 +2728,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit
gMultiuseSpriteTemplate.paletteTag = trainerSpriteId;
if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT)
{
gMultiuseSpriteTemplate = gUnknown_825DF50[trainerSpriteId];
gMultiuseSpriteTemplate = gSpriteTemplates_TrainerBackpics[trainerSpriteId];
gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId];
}
else
@@ -2736,7 +2736,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit
if (gMonSpritesGfxPtr != NULL)
gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition];
else
gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition];
gMultiuseSpriteTemplate = gSpriteTemplates_Battlers[battlerPosition];
gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[trainerSpriteId];
}
}
@@ -6081,7 +6081,7 @@ static void OakSpeechNidoranFSetupTemplate(struct OakSpeechNidoranFStruct *struc
{
for (i = 0; i < (s8)structPtr->spriteCount; ++i)
{
structPtr->templates[i] = gUnknown_825DEF0[i];
structPtr->templates[i] = gSpriteTemplates_Battlers[i];
for (j = 0; j < structPtr->frameCount; ++j)
structPtr->frameImages[i * structPtr->frameCount + j].data = &structPtr->bufferPtrs[i][j * 0x800];
structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->frameCount];
@@ -6089,7 +6089,7 @@ static void OakSpeechNidoranFSetupTemplate(struct OakSpeechNidoranFStruct *struc
}
else
{
const struct SpriteTemplate *template = &gUnknown_825DEF0[battlePosition];
const struct SpriteTemplate *template = &gSpriteTemplates_Battlers[battlePosition];
structPtr->templates[0] = *template;
for (j = 0; j < structPtr->frameCount; ++j)
+17 -17
View File
@@ -10,7 +10,7 @@
#include "battle_controllers.h"
static void CB2_ReshowBattleScreenAfterMenu(void);
static void sub_8077AAC(void);
static void ReshowBattleScreen_TurnOnDisplay(void);
static bool8 LoadBattlerSpriteGfx(u8 battlerId);
static void CreateBattlerSprite(u8 battlerId);
static void CreateHealthboxSprite(u8 battlerId);
@@ -113,35 +113,35 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
if (!LoadBattlerSpriteGfx(2))
--gBattleScripting.reshowMainState;
break;
case 0xA:
case 10:
if (!LoadBattlerSpriteGfx(3))
--gBattleScripting.reshowMainState;
break;
case 0xB:
case 11:
CreateBattlerSprite(0);
break;
case 0xC:
case 12:
CreateBattlerSprite(1);
break;
case 0xD:
case 13:
CreateBattlerSprite(2);
break;
case 0xE:
case 14:
CreateBattlerSprite(3);
break;
case 0xF:
case 15:
CreateHealthboxSprite(0);
break;
case 0x10:
case 16:
CreateHealthboxSprite(1);
break;
case 0x11:
case 17:
CreateHealthboxSprite(2);
break;
case 0x12:
case 18:
CreateHealthboxSprite(3);
break;
case 0x13:
case 19:
LoadAndCreateEnemyShadowSprites();
opponentBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBattler]], MON_DATA_SPECIES);
@@ -159,13 +159,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
CreateWirelessStatusIndicatorSprite(0, 0);
}
break;
case 0x14:
case 20:
SetVBlankCallback(VBlankCB_Battle);
sub_8077AAC();
ReshowBattleScreen_TurnOnDisplay();
BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1);
gPaletteFade.bufferTransferDisabled = 0;
SetMainCallback2(BattleMainCB2);
sub_80357C8();
BattleInterfaceSetWindowPals();
break;
default:
break;
@@ -173,7 +173,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
++gBattleScripting.reshowMainState;
}
static void sub_8077AAC(void)
static void ReshowBattleScreen_TurnOnDisplay(void)
{
EnableInterrupts(INTR_FLAG_VBLANK);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
@@ -202,9 +202,9 @@ static bool8 LoadBattlerSpriteGfx(u8 battler)
BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE);
}
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler.
DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, battler);
DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, battler);
else if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler.
DecompressTrainerBackPalette(5, battler);
DecompressTrainerBackPalette(BACK_PIC_OLDMAN, battler);
else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
else