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 enum
{ {
BACK_PIC_BRENDAN,
BACK_PIC_MAY,
BACK_PIC_RED, BACK_PIC_RED,
BACK_PIC_LEAF, BACK_PIC_LEAF,
BACK_PIC_RS_BRENDAN, BACK_PIC_RS_BRENDAN,
BACK_PIC_RS_MAY, BACK_PIC_RS_MAY,
BACK_PIC_WALLY, BACK_PIC_POKEDUDE,
BACK_PIC_STEVEN BACK_PIC_OLDMAN
}; };
struct BattleSpriteInfo struct BattleSpriteInfo
@@ -719,7 +717,7 @@ extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT]; extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT];
extern u8 gBattleTerrain; extern u8 gBattleTerrain;
extern struct UnknownPokemonStruct4 gMultiPartnerParty[3]; extern struct UnknownPokemonStruct4 gMultiPartnerParty[3];
extern u16 *gUnknown_2022BC0; extern u16 *sUnknownDebugSpriteDataBuffer;
extern u16 gRandomTurnNumber; extern u16 gRandomTurnNumber;
#endif // GUARD_BATTLE_H #endif // GUARD_BATTLE_H
+1 -1
View File
@@ -184,7 +184,7 @@ extern struct UnusedControllerStruct gUnknown_2022870;
// general functions // general functions
void HandleLinkBattleSetup(void); void HandleLinkBattleSetup(void);
void SetUpBattleVars(void); void SetUpBattleVars(void);
void sub_800D30C(void); void InitBtlControllers(void);
void sub_800DD28(void); void sub_800DD28(void);
void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data); 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 SpriteCB_SetInvisible(struct Sprite *sprite);
void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species); void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species);
void HideBattlerShadowSprite(u8 battlerId); void HideBattlerShadowSprite(u8 battlerId);
void sub_80357C8(void); void BattleInterfaceSetWindowPals(void);
void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute); void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute);
void AllocateMonSpritesGfx(void); void AllocateMonSpritesGfx(void);
void FreeMonSpritesGfx(void); void FreeMonSpritesGfx(void);
+11 -11
View File
@@ -45,9 +45,9 @@ struct UnknownPokemonStruct4
#define BOUNCE_MON 0x0 #define BOUNCE_MON 0x0
#define BOUNCE_HEALTHBOX 0x1 #define BOUNCE_HEALTHBOX 0x1
extern const struct SpriteTemplate gUnknown_824EFF0; extern const struct SpriteTemplate gUnknownDebugSprite;
extern const struct OamData gOamData_824F010; extern const struct OamData gOamData_BattlerOpponent;
extern const struct OamData gOamData_824F018; extern const struct OamData gOamData_BattlerPlayer;
extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1]; extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1];
extern const u8 gStatusConditionString_PoisonJpn[8]; extern const u8 gStatusConditionString_PoisonJpn[8];
extern const u8 gStatusConditionString_SleepJpn[8]; extern const u8 gStatusConditionString_SleepJpn[8];
@@ -66,16 +66,16 @@ void CB2_InitBattle(void);
void BattleMainCB2(void); void BattleMainCB2(void);
void FreeRestoreBattleData(void); void FreeRestoreBattleData(void);
void VBlankCB_Battle(void); void VBlankCB_Battle(void);
void nullsub_9(struct Sprite *sprite); void SpriteCB_VsLetterDummy(struct Sprite *sprite);
void sub_801182C(struct Sprite *sprite); void SpriteCB_VsLetterInit(struct Sprite *sprite);
void sub_8011A1C(void); void CB2_InitEndLinkBattle(void);
u32 GetBattleBgAttribute(u8 arrayId, u8 caseId); u32 GetBattleBgAttribute(u8 arrayId, u8 caseId);
void SpriteCB_WildMon(struct Sprite *sprite); void SpriteCB_EnemyMon(struct Sprite *sprite);
void SpriteCallbackDummy2(struct Sprite *sprite); void SpriteCallbackDummy2(struct Sprite *sprite);
void SpriteCB_FaintOpponentMon(struct Sprite *sprite); void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
void sub_8012044(struct Sprite *sprite); void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite);
void sub_8012098(struct Sprite *sprite); void SpriteCb_HideAsMoveTarget(struct Sprite *sprite);
void sub_80120C4(struct Sprite *sprite); void SpriteCB_AllyMon(struct Sprite *sprite);
void sub_8012100(struct Sprite *sprite); void sub_8012100(struct Sprite *sprite);
void sub_8012110(struct Sprite *sprite); void sub_8012110(struct Sprite *sprite);
void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
@@ -88,7 +88,7 @@ void SwitchInClearSetData(void);
void FaintClearSetData(void); void FaintClearSetData(void);
void BattleTurnPassed(void); void BattleTurnPassed(void);
u8 IsRunningFromBattleImpossible(void); u8 IsRunningFromBattleImpossible(void);
void sub_8013F6C(u8 battler); void UpdatePartyOwnerOnSwitch_NonMulti(u8 battler);
void SwapTurnOrder(u8 id1, u8 id2); void SwapTurnOrder(u8 id1, u8 id2);
u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves); u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves);
void RunBattleScriptCommands_PopCallbacksStack(void); 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_824F010;
extern const struct OamData gUnknown_824F018; extern const struct OamData gUnknown_824F018;
extern const union AnimCmd *const gSpriteAnimTable_82349BC[]; extern const union AnimCmd *const gSpriteAnimTable_82349BC[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_82348C8[]; extern const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerPlayer[];
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_8234944[]; extern const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerOpponent[];
extern const struct SpriteFrameImage gUnknown_8234698[]; extern const struct SpriteFrameImage gSpriteImages_BattlerPlayerLeft[];
extern const struct SpriteFrameImage gUnknown_82346B8[]; extern const struct SpriteFrameImage gSpriteImages_BattlerOpponentLeft[];
extern const struct SpriteFrameImage gUnknown_82346D8[]; extern const struct SpriteFrameImage gSpriteImages_BattlerPlayerRight[];
extern const struct SpriteFrameImage gUnknown_82346F8[]; extern const struct SpriteFrameImage gSpriteImages_BattlerOpponentRight[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Red[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[];
+1 -1
View File
@@ -33,7 +33,7 @@ void sub_8076918(u8 bank);
void DoHitAnimHealthboxEffect(u8 bank); void DoHitAnimHealthboxEffect(u8 bank);
void LoadBallGfx(u8 ballId); void LoadBallGfx(u8 ballId);
void FreeBallGfx(u8 ballId); void FreeBallGfx(u8 ballId);
void sub_804BD94(u8 battler); void StartHealthboxSlideIn(u8 battler);
void DestroySpriteAndFreeResources2(struct Sprite *sprite); void DestroySpriteAndFreeResources2(struct Sprite *sprite);
#endif // GUARD_POKEBALL_H #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 u16 *const gLevelUpLearnsets[];
extern const u8 gFacilityClassToPicIndex[]; extern const u8 gFacilityClassToPicIndex[];
extern const u8 gFacilityClassToTrainerClass[]; extern const u8 gFacilityClassToTrainerClass[];
extern const struct SpriteTemplate gUnknown_825DEF0[]; extern const struct SpriteTemplate gSpriteTemplates_Battlers[];
extern const u8 gPPUpGetMask[]; extern const u8 gPPUpGetMask[];
void ZeroBoxMonData(struct BoxPokemon *boxMon); void ZeroBoxMonData(struct BoxPokemon *boxMon);
+3 -3
View File
@@ -85,7 +85,7 @@ static const struct SpriteTemplate sVsLetter_V_SpriteTemplate = {
.oam = &gOamData_82482A0, .oam = &gOamData_82482A0,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.affineAnims = gAffineAnimTable_82482E0, .affineAnims = gAffineAnimTable_82482E0,
.callback = nullsub_9 .callback = SpriteCB_VsLetterDummy
}; };
static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = { static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = {
@@ -94,7 +94,7 @@ static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = {
.oam = &gOamData_82482A8, .oam = &gOamData_82482A8,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.affineAnims = gAffineAnimTable_82482E0, .affineAnims = gAffineAnimTable_82482E0,
.callback = nullsub_9 .callback = SpriteCB_VsLetterDummy
}; };
static const struct CompressedSpriteSheet sVsLettersSpriteSheet = { static const struct CompressedSpriteSheet sVsLettersSpriteSheet = {
@@ -584,7 +584,7 @@ UNUSED void CreateUnknownDebugSprite(void)
u8 spriteId; u8 spriteId;
ResetSpriteData(); ResetSpriteData();
spriteId = CreateSprite(&gUnknown_824EFF0, 0, 0, 0); spriteId = CreateSprite(&gUnknownDebugSprite, 0, 0, 0);
gSprites[spriteId].invisible = TRUE; gSprites[spriteId].invisible = TRUE;
SetMainCallback2(CB2_unused); SetMainCallback2(CB2_unused);
} }
+3 -3
View File
@@ -259,7 +259,7 @@ static void sub_803A9CC(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK); StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); 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], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
@@ -381,7 +381,7 @@ static void sub_803AF28(void)
FreeSpritePaletteByTag(0x27F9); FreeSpritePaletteByTag(0x27F9);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler); CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_803AE6C; gBattlerControllerFuncs[gActiveBattler] = sub_803AE6C;
+3 -3
View File
@@ -226,14 +226,14 @@ static void sub_80D443C(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK); StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
} }
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]); DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
gBattlerControllerFuncs[gActiveBattler] = sub_80D4358; gBattlerControllerFuncs[gActiveBattler] = sub_80D4358;
@@ -338,7 +338,7 @@ static void sub_80D484C(void)
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler); CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_80D47AC; gBattlerControllerFuncs[gActiveBattler] = sub_80D47AC;
+15 -15
View File
@@ -413,14 +413,14 @@ static void sub_80E7B4C(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK); StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
} }
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]); DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
gBattlerControllerFuncs[gActiveBattler] = sub_80E7CD8; gBattlerControllerFuncs[gActiveBattler] = sub_80E7CD8;
@@ -1569,20 +1569,20 @@ static void OakOldManHandleDrawTrainerPic(void)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
{ {
DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler); DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80, 80,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, (8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80,
30); 30);
} }
else else
{ {
DecompressTrainerBackPalette(5, gActiveBattler); DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80, 80,
(8 - gTrainerBackPicCoords[5].size) * 4 + 80, (8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80,
30); 30);
} }
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
@@ -1596,20 +1596,20 @@ static void OakOldManHandleTrainerSlide(void)
{ {
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
{ {
DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler); DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80, 80,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, (8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80,
30); 30);
} }
else else
{ {
DecompressTrainerBackPalette(5, gActiveBattler); DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80, 80,
(8 - gTrainerBackPicCoords[5].size) * 4 + 80, (8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80,
30); 30);
} }
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
@@ -2081,7 +2081,7 @@ static void OakOldManHandleIntroTrainerBallThrow(void)
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80335F8); StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80335F8);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F8); 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; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(sub_80EB0A8, 5); taskId = CreateTask(sub_80EB0A8, 5);
gTasks[taskId].data[0] = gActiveBattler; gTasks[taskId].data[0] = gActiveBattler;
+3 -3
View File
@@ -253,7 +253,7 @@ static void sub_8035DF0(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK); StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); 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], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
@@ -387,7 +387,7 @@ static void sub_8036334(void)
FreeSpritePaletteByTag(0x27F9); FreeSpritePaletteByTag(0x27F9);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler); CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_8036278; gBattlerControllerFuncs[gActiveBattler] = sub_8036278;
+15 -15
View File
@@ -336,7 +336,7 @@ static void HandleInputChooseTarget(void)
if (JOY_NEW(A_BUTTON)) if (JOY_NEW(A_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098; gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8));
EndBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX); EndBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX);
PlayerBufferExecCompleted(); PlayerBufferExecCompleted();
@@ -344,7 +344,7 @@ static void HandleInputChooseTarget(void)
else if (JOY_NEW(B_BUTTON)) else if (JOY_NEW(B_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098; gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove; gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove;
DoBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX, 7, 1); DoBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX, 7, 1);
DoBounceEffect(gActiveBattler, BOUNCE_MON, 7, 1); DoBounceEffect(gActiveBattler, BOUNCE_MON, 7, 1);
@@ -353,7 +353,7 @@ static void HandleInputChooseTarget(void)
else if (JOY_NEW(DPAD_LEFT | DPAD_UP)) else if (JOY_NEW(DPAD_LEFT | DPAD_UP))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098; gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
do do
{ {
@@ -388,12 +388,12 @@ static void HandleInputChooseTarget(void)
i = 0; i = 0;
} }
while (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)) else if (JOY_NEW(DPAD_RIGHT | DPAD_DOWN))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098; gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget;
do do
{ {
@@ -428,7 +428,7 @@ static void HandleInputChooseTarget(void)
i = 0; i = 0;
} }
while (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); gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
else else
gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012044; gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget;
} }
} }
else if (JOY_NEW(B_BUTTON)) else if (JOY_NEW(B_BUTTON))
@@ -801,7 +801,7 @@ static void sub_802F610(void)
m4aSongNumStop(SE_LOW_HEALTH); m4aSongNumStop(SE_LOW_HEALTH);
gMain.inBattle = 0; gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1; gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8011A1C); SetMainCallback2(CB2_InitEndLinkBattle);
FreeAllWindowBuffers(); FreeAllWindowBuffers();
} }
} }
@@ -810,7 +810,7 @@ static void sub_802F610(void)
m4aSongNumStop(SE_LOW_HEALTH); m4aSongNumStop(SE_LOW_HEALTH);
gMain.inBattle = 0; gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1; gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8011A1C); SetMainCallback2(CB2_InitEndLinkBattle);
FreeAllWindowBuffers(); FreeAllWindowBuffers();
} }
} }
@@ -921,14 +921,14 @@ static void sub_802FA58(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK); StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
} }
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]); DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
gBattlerControllerFuncs[gActiveBattler] = sub_802F858; gBattlerControllerFuncs[gActiveBattler] = sub_802F858;
@@ -973,7 +973,7 @@ static void sub_802FD18(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler); CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_802FBF4; gBattlerControllerFuncs[gActiveBattler] = sub_802FBF4;
@@ -2175,13 +2175,13 @@ static void PlayerHandleDrawTrainerPic(void)
if ((gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_RUBY if ((gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_RUBY
|| (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_SAPPHIRE || (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_SAPPHIRE
|| (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_EMERALD) || (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_EMERALD)
trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + 2; trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RS_BRENDAN;
else else
trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + 0; trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RED;
} }
else else
{ {
trainerPicId = gSaveBlock2Ptr->playerGender + 0; trainerPicId = gSaveBlock2Ptr->playerGender + BACK_PIC_RED;
} }
DecompressTrainerBackPalette(trainerPicId, gActiveBattler); DecompressTrainerBackPalette(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
+10 -10
View File
@@ -664,7 +664,7 @@ static void sub_81563A8(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
CopyBattleSpriteInvisibility(gActiveBattler); CopyBattleSpriteInvisibility(gActiveBattler);
gBattlerControllerFuncs[gActiveBattler] = sub_81562F0; gBattlerControllerFuncs[gActiveBattler] = sub_81562F0;
@@ -762,14 +762,14 @@ static void sub_8156624(void)
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler ^ BIT_FLANK); StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
} }
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]); DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]);
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler],
&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]],
HEALTHBOX_ALL); HEALTHBOX_ALL);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
gBattlerControllerFuncs[gActiveBattler] = sub_81567B0; gBattlerControllerFuncs[gActiveBattler] = sub_81567B0;
@@ -1714,11 +1714,11 @@ static void PokedudeHandleDrawTrainerPic(void)
{ {
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{ {
DecompressTrainerBackPalette(4, gActiveBattler); DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(4, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80, 80,
(8 - gTrainerBackPicCoords[4].size) * 4 + 80, (8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80,
30); 30);
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
@@ -1747,11 +1747,11 @@ static void PokedudeHandleDrawTrainerPic(void)
static void PokedudeHandleTrainerSlide(void) static void PokedudeHandleTrainerSlide(void)
{ {
DecompressTrainerBackPalette(4, gActiveBattler); DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(4, GetBattlerPosition(gActiveBattler)); SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80, 80,
(8 - gTrainerBackPicCoords[4].size) * 4 + 80, (8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80,
30); 30);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96; gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96;
@@ -2222,7 +2222,7 @@ static void PokedudeHandleIntroTrainerBallThrow(void)
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80335F8); StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80335F8);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F8); 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; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(sub_81595EC, 5); taskId = CreateTask(sub_81595EC, 5);
gTasks[taskId].data[0] = gActiveBattler; gTasks[taskId].data[0] = gActiveBattler;
+1 -1
View File
@@ -608,7 +608,7 @@ static void SafariHandleIntroSlide(void)
static void SafariHandleIntroTrainerBallThrow(void) static void SafariHandleIntroTrainerBallThrow(void)
{ {
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT);
sub_804BD94(gActiveBattler); StartHealthboxSlideIn(gActiveBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy; gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy;
} }
+1 -1
View File
@@ -62,7 +62,7 @@ void SetUpBattleVars(void)
gUnknown_2023DDC = 0; gUnknown_2023DDC = 0;
} }
void sub_800D30C(void) void InitBtlControllers(void)
{ {
s32 i; s32 i;
+9 -4
View File
@@ -950,9 +950,12 @@ void HideBattlerShadowSprite(u8 battlerId)
gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].callback = SpriteCB_SetInvisible; 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 i;
s32 j; s32 j;
@@ -970,7 +973,9 @@ void sub_80357C8(void)
*vramPtr |= 0x000F; *vramPtr |= 0x000F;
} }
} }
vramPtr = (u16 *)(VRAM + 0x600);
// 18 tiles at 0x06000600
vramPtr = (u16 *)(BG_VRAM + 0x600);
for (i = 0; i < 18; ++i) for (i = 0; i < 18; ++i)
{ {
for (j = 0; j < 16; ++vramPtr, ++j) for (j = 0; j < 16; ++vramPtr, ++j)
@@ -1005,7 +1010,7 @@ void AllocateMonSpritesGfx(void)
for (i = 0; i < MAX_BATTLERS_COUNT; ++i) for (i = 0; i < MAX_BATTLERS_COUNT; ++i)
{ {
gMonSpritesGfxPtr->sprites[i] = gMonSpritesGfxPtr->firstDecompressed + (i * 0x2000); 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) for (j = 0; j < 4; ++j)
{ {
+2 -2
View File
@@ -422,9 +422,9 @@ static void BattleIntroSlideLink(u8 taskId)
{ {
++gTasks[taskId].data[0]; ++gTasks[taskId].data[0];
gSprites[gBattleStruct->linkBattleVsSpriteId_V].oam.objMode = ST_OAM_OBJ_WINDOW; 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].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_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); 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/songs.h"
#include "constants/trainer_classes.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_UseMove(void);
static void HandleAction_Switch(void); static void HandleAction_Switch(void);
static void HandleAction_UseItem(void); static void HandleAction_UseItem(void);
@@ -72,14 +72,14 @@ static void CB2_HandleStartBattle(void);
static void TryCorrectShedinjaLanguage(struct Pokemon *mon); static void TryCorrectShedinjaLanguage(struct Pokemon *mon);
static void BattleMainCB1(void); static void BattleMainCB1(void);
static void CB2_QuitPokedudeBattle(void); static void CB2_QuitPokedudeBattle(void);
static void sub_80111FC(struct Sprite *sprite); static void SpriteCB_UnusedDebugSprite_Step(struct Sprite *sprite);
static void sub_8011B94(void); static void CB2_EndLinkBattle(void);
static void sub_8011BB0(void); static void EndLinkBattleInSteps(void);
static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite); static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite);
static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite); static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite);
static void sub_8011E3C(struct Sprite *sprite); static void sub_8011E3C(struct Sprite *sprite);
static void SpriteCB_AnimFaintOpponent(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 oac_poke_ally_(struct Sprite *sprite);
static void SpriteCallbackDummy3(struct Sprite *sprite); static void SpriteCallbackDummy3(struct Sprite *sprite);
static void SpriteCB_BounceEffect(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 struct UnknownPokemonStruct4 gMultiPartnerParty[3] = {0};
EWRAM_DATA u8 *gUnknown_2022BB8 = NULL; EWRAM_DATA u8 *gUnknown_2022BB8 = NULL;
EWRAM_DATA u8 *gUnknown_2022BBC = 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 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
EWRAM_DATA u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200] = {0}; EWRAM_DATA u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200] = {0};
EWRAM_DATA u8 gActiveBattler = 0; EWRAM_DATA u8 gActiveBattler = 0;
@@ -231,7 +231,7 @@ static const struct ScanlineEffectParams sIntroScanlineParams16Bit =
&REG_BG3HOFS, SCANLINE_EFFECT_DMACNT_16BIT, 1 &REG_BG3HOFS, SCANLINE_EFFECT_DMACNT_16BIT, 1
}; };
const struct SpriteTemplate gUnknown_824EFF0 = const struct SpriteTemplate gUnknownDebugSprite =
{ {
.tileTag = 0, .tileTag = 0,
.paletteTag = 0, .paletteTag = 0,
@@ -239,12 +239,12 @@ const struct SpriteTemplate gUnknown_824EFF0 =
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80111EC, .callback = SpriteCB_UnusedDebugSprite,
}; };
static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin
const struct OamData gOamData_824F010 = const struct OamData gOamData_BattlerOpponent =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
@@ -259,7 +259,7 @@ const struct OamData gOamData_824F010 =
.affineParam = 0, .affineParam = 0,
}; };
const struct OamData gOamData_824F018 = const struct OamData gOamData_BattlerPlayer =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_NORMAL, .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; u8 found = 0;
@@ -936,7 +936,7 @@ static void CB2_HandleStartBattle(void)
ShowBg(1); ShowBg(1);
ShowBg(2); ShowBg(2);
ShowBg(3); ShowBg(3);
sub_80357C8(); BattleInterfaceSetWindowPals();
gBattleCommunication[MULTIUSE_STATE] = 1; gBattleCommunication[MULTIUSE_STATE] = 1;
} }
if (gWirelessCommType) if (gWirelessCommType)
@@ -974,7 +974,7 @@ static void CB2_HandleStartBattle(void)
u8 taskId; u8 taskId;
ResetBlockReceivedFlags(); ResetBlockReceivedFlags();
sub_8010414(2, playerMultiplayerId); LinkBattleComputeBattleTypeFlags(2, playerMultiplayerId);
SetAllPlayersBerryData(); SetAllPlayersBerryData();
taskId = CreateTask(InitLinkBattleVsScreen, 0); taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 270; gTasks[taskId].data[1] = 270;
@@ -1038,7 +1038,7 @@ static void CB2_HandleStartBattle(void)
} }
break; break;
case 15: case 15:
sub_800D30C(); InitBtlControllers();
++gBattleCommunication[MULTIUSE_STATE]; ++gBattleCommunication[MULTIUSE_STATE];
gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE1] = 0;
gBattleCommunication[SPRITES_INIT_STATE2] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0;
@@ -1194,7 +1194,7 @@ static void CB2_HandleStartMultiBattle(void)
ShowBg(1); ShowBg(1);
ShowBg(2); ShowBg(2);
ShowBg(3); ShowBg(3);
sub_80357C8(); BattleInterfaceSetWindowPals();
gBattleCommunication[MULTIUSE_STATE] = 1; gBattleCommunication[MULTIUSE_STATE] = 1;
} }
if (gWirelessCommType) if (gWirelessCommType)
@@ -1221,7 +1221,7 @@ static void CB2_HandleStartMultiBattle(void)
if ((GetBlockReceivedStatus() & 0xF) == 0xF) if ((GetBlockReceivedStatus() & 0xF) == 0xF)
{ {
ResetBlockReceivedFlags(); ResetBlockReceivedFlags();
sub_8010414(4, playerMultiplayerId); LinkBattleComputeBattleTypeFlags(4, playerMultiplayerId);
SetAllPlayersBerryData(); SetAllPlayersBerryData();
SetDeoxysStats(); SetDeoxysStats();
memcpy(gDecompressionBuffer, gPlayerParty, sizeof(struct Pokemon) * 3); memcpy(gDecompressionBuffer, gPlayerParty, sizeof(struct Pokemon) * 3);
@@ -1397,7 +1397,7 @@ static void CB2_HandleStartMultiBattle(void)
} }
break; break;
case 11: case 11:
sub_800D30C(); InitBtlControllers();
++gBattleCommunication[MULTIUSE_STATE]; ++gBattleCommunication[MULTIUSE_STATE];
gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE1] = 0;
gBattleCommunication[SPRITES_INIT_STATE2] = 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->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]) switch (sprite->data[0])
{ {
case 0: case 0:
gUnknown_2022BC0 = AllocZeroed(0x1000); sUnknownDebugSpriteDataBuffer = AllocZeroed(0x1000);
++sprite->data[0]; ++sprite->data[0];
sprite->data[1] = 0; sprite->data[1] = 0;
sprite->data[2] = 0x281; sprite->data[2] = 0x281;
@@ -1492,8 +1492,8 @@ static void sub_80111FC(struct Sprite *sprite)
r0 = sprite->data[2] - sprite->data[3] * 32; r0 = sprite->data[2] - sprite->data[3] * 32;
for (i = 0; i <= 29; i += 2) for (i = 0; i <= 29; i += 2)
{ {
*(&gUnknown_2022BC0[r2] + i) = 0x3D; *(&sUnknownDebugSpriteDataBuffer[r2] + i) = 0x3D;
*(&gUnknown_2022BC0[r0] + i) = 0x3D; *(&sUnknownDebugSpriteDataBuffer[r0] + i) = 0x3D;
} }
if (++sprite->data[3] == 21) if (++sprite->data[3] == 21)
{ {
@@ -1505,10 +1505,10 @@ static void sub_80111FC(struct Sprite *sprite)
case 2: case 2:
if (--sprite->data[1] == 20) if (--sprite->data[1] == 20)
{ {
if (gUnknown_2022BC0 != NULL) if (sUnknownDebugSpriteDataBuffer != NULL)
{ {
memset(gUnknown_2022BC0, 0, 0x1000); memset(sUnknownDebugSpriteDataBuffer, 0, 0x1000);
FREE_AND_SET_NULL(gUnknown_2022BC0); FREE_AND_SET_NULL(sUnknownDebugSpriteDataBuffer);
} }
SetMainCallback2(CB2_InitBattle); SetMainCallback2(CB2_InitBattle);
} }
@@ -1607,7 +1607,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
} }
// not used // not used
static void sub_80116CC(void) UNUSED static void unused_80116CC(void)
{ {
if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F) if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F)
REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x512; 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(); 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) if (sprite->data[0] != 0)
sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); 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); StartSpriteAffineAnim(sprite, 1);
sprite->callback = sub_80117BC; sprite->callback = SpriteCB_VsLetter;
PlaySE(SE_MUGSHOT); PlaySE(SE_MUGSHOT);
} }
static void sub_801184C(u8 taskId) static void BufferPartyVsScreenHealth_AtEnd(u8 taskId)
{ {
struct Pokemon *party1 = NULL; struct Pokemon *party1 = NULL;
struct Pokemon *party2 = NULL; struct Pokemon *party2 = NULL;
@@ -1737,7 +1737,7 @@ static void sub_801184C(u8 taskId)
gTasks[taskId].data[4] = r7; gTasks[taskId].data[4] = r7;
} }
void sub_8011A1C(void) void CB2_InitEndLinkBattle(void)
{ {
s32 i; s32 i;
u8 taskId; u8 taskId;
@@ -1787,21 +1787,21 @@ void sub_8011A1C(void)
gTasks[taskId].data[1] = 270; gTasks[taskId].data[1] = 270;
gTasks[taskId].data[2] = 90; gTasks[taskId].data[2] = 90;
gTasks[taskId].data[5] = 1; gTasks[taskId].data[5] = 1;
sub_801184C(taskId); BufferPartyVsScreenHealth_AtEnd(taskId);
SetMainCallback2(sub_8011B94); SetMainCallback2(CB2_EndLinkBattle);
gBattleCommunication[MULTIUSE_STATE] = 0; gBattleCommunication[MULTIUSE_STATE] = 0;
} }
static void sub_8011B94(void) static void CB2_EndLinkBattle(void)
{ {
sub_8011BB0(); EndLinkBattleInSteps();
AnimateSprites(); AnimateSprites();
BuildOamBuffer(); BuildOamBuffer();
UpdatePaletteFade(); UpdatePaletteFade();
RunTasks(); RunTasks();
} }
static void sub_8011BB0(void) static void EndLinkBattleInSteps(void)
{ {
s32 i; s32 i;
@@ -1882,7 +1882,7 @@ static void TryCorrectShedinjaLanguage(struct Pokemon *mon)
#define sBattler data[0] #define sBattler data[0]
#define sSpeciesId data[2] #define sSpeciesId data[2]
void SpriteCB_WildMon(struct Sprite *sprite) void SpriteCB_EnemyMon(struct Sprite *sprite)
{ {
sprite->callback = SpriteCB_MoveWildMonToRight; sprite->callback = SpriteCB_MoveWildMonToRight;
StartSpriteAnimIfDifferent(sprite, 0); StartSpriteAnimIfDifferent(sprite, 0);
@@ -1906,7 +1906,7 @@ static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite)
{ {
if (sprite->animEnded) if (sprite->animEnded)
{ {
sub_804BD94(sprite->sBattler); StartHealthboxSlideIn(sprite->sBattler);
SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]); SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]);
sprite->callback = SpriteCallbackDummy2; sprite->callback = SpriteCallbackDummy2;
StartSpriteAnimIfDifferent(sprite, 0); StartSpriteAnimIfDifferent(sprite, 0);
@@ -1919,7 +1919,7 @@ void SpriteCallbackDummy2(struct Sprite *sprite)
} }
// not used // not used
static void sub_8011E28(struct Sprite *sprite) UNUSED static void sub_8011E28(struct Sprite *sprite)
{ {
sprite->data[3] = 6; sprite->data[3] = 6;
sprite->data[4] = 1; 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[3] = 8;
sprite->data[4] = sprite->invisible; 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]; --sprite->data[3];
if (sprite->data[3] == 0) 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->invisible = sprite->data[4];
sprite->data[4] = FALSE; sprite->data[4] = FALSE;
sprite->callback = SpriteCallbackDummy2; sprite->callback = SpriteCallbackDummy2;
} }
void sub_80120C4(struct Sprite *sprite) void SpriteCB_AllyMon(struct Sprite *sprite)
{ {
sprite->callback = oac_poke_ally_; sprite->callback = oac_poke_ally_;
} }
@@ -2997,7 +2997,7 @@ u8 IsRunningFromBattleImpossible(void)
return BATTLE_RUN_SUCCESS; return BATTLE_RUN_SUCCESS;
} }
void sub_8013F6C(u8 battler) void UpdatePartyOwnerOnSwitch_NonMulti(u8 battler)
{ {
s32 i; s32 i;
u8 r4, r1; u8 r4, r1;
+3 -3
View File
@@ -4791,7 +4791,7 @@ static void atk51_switchhandleorder(void)
break; break;
case 1: case 1:
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
sub_8013F6C(gActiveBattler); UpdatePartyOwnerOnSwitch_NonMulti(gActiveBattler);
break; break;
case 2: case 2:
gBattleCommunication[0] = gBattleBufferB[gActiveBattler][1]; gBattleCommunication[0] = gBattleBufferB[gActiveBattler][1];
@@ -4808,7 +4808,7 @@ static void atk51_switchhandleorder(void)
} }
else else
{ {
sub_8013F6C(gActiveBattler); UpdatePartyOwnerOnSwitch_NonMulti(gActiveBattler);
} }
PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species) PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species)
PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBattler, gBattleBufferB[gActiveBattler][1]) PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBattler, gBattleBufferB[gActiveBattler][1])
@@ -6704,7 +6704,7 @@ static void atk8F_forcerandomswitch(void)
} }
*(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i; *(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i;
if (!IsMultiBattle()) if (!IsMultiBattle())
sub_8013F6C(gBattlerTarget); UpdatePartyOwnerOnSwitch_NonMulti(gBattlerTarget);
SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0); SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0);
SwitchPartyOrderLinkMulti(gBattlerTarget ^ 2, i, 1); SwitchPartyOrderLinkMulti(gBattlerTarget ^ 2, i, 1);
} }
+6 -6
View File
@@ -8,7 +8,7 @@
#include "constants/battle_ai.h" #include "constants/battle_ai.h"
#include "constants/trainer_classes.h" #include "constants/trainer_classes.h"
const struct SpriteFrameImage gUnknown_8234698[] = const struct SpriteFrameImage gSpriteImages_BattlerPlayerLeft[] =
{ {
gHeap + 0x8000, 0x800, gHeap + 0x8000, 0x800,
gHeap + 0x8800, 0x800, gHeap + 0x8800, 0x800,
@@ -16,7 +16,7 @@ const struct SpriteFrameImage gUnknown_8234698[] =
gHeap + 0x9800, 0x800, gHeap + 0x9800, 0x800,
}; };
const struct SpriteFrameImage gUnknown_82346B8[] = const struct SpriteFrameImage gSpriteImages_BattlerOpponentLeft[] =
{ {
gHeap + 0xA000, 0x800, gHeap + 0xA000, 0x800,
gHeap + 0xA800, 0x800, gHeap + 0xA800, 0x800,
@@ -24,7 +24,7 @@ const struct SpriteFrameImage gUnknown_82346B8[] =
gHeap + 0xB800, 0x800, gHeap + 0xB800, 0x800,
}; };
const struct SpriteFrameImage gUnknown_82346D8[] = const struct SpriteFrameImage gSpriteImages_BattlerPlayerRight[] =
{ {
gHeap + 0xC000, 0x800, gHeap + 0xC000, 0x800,
gHeap + 0xC800, 0x800, gHeap + 0xC800, 0x800,
@@ -32,7 +32,7 @@ const struct SpriteFrameImage gUnknown_82346D8[] =
gHeap + 0xD800, 0x800, gHeap + 0xD800, 0x800,
}; };
const struct SpriteFrameImage gUnknown_82346F8[] = const struct SpriteFrameImage gSpriteImages_BattlerOpponentRight[] =
{ {
gHeap + 0xE000, 0x800, gHeap + 0xE000, 0x800,
gHeap + 0xE800, 0x800, gHeap + 0xE800, 0x800,
@@ -168,7 +168,7 @@ static const union AffineAnimCmd gSpriteAffineAnim_82348B0[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
const union AffineAnimCmd *const gSpriteAffineAnimTable_82348C8[] = const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerPlayer[] =
{ {
gSpriteAffineAnim_82347F8, gSpriteAffineAnim_82347F8,
gSpriteAffineAnim_8234818, gSpriteAffineAnim_8234818,
@@ -208,7 +208,7 @@ static const union AffineAnimCmd gSpriteAffineAnim_8234934[] =
AFFINEANIMCMD_END, AFFINEANIMCMD_END,
}; };
const union AffineAnimCmd *const gSpriteAffineAnimTable_8234944[] = const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerOpponent[] =
{ {
gSpriteAffineAnim_82347F8, gSpriteAffineAnim_82347F8,
gSpriteAffineAnim_8234818, gSpriteAffineAnim_8234818,
+1 -1
View File
@@ -1167,7 +1167,7 @@ void DestroySpriteAndFreeResources2(struct Sprite *sprite)
DestroySpriteAndFreeResources(sprite); DestroySpriteAndFreeResources(sprite);
} }
void sub_804BD94(u8 battlerId) void StartHealthboxSlideIn(u8 battlerId)
{ {
struct Sprite *healthboxSprite = &gSprites[gHealthboxSpriteIds[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}, {HOLD_EFFECT_NORMAL_POWER, TYPE_NORMAL},
}; };
const struct SpriteTemplate gUnknown_825DEF0[] = const struct SpriteTemplate gSpriteTemplates_Battlers[] =
{ {
{ [B_POSITION_PLAYER_LEFT] = {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F018, .oam = &gOamData_BattlerPlayer,
.anims = NULL, .anims = NULL,
.images = gUnknown_8234698, .images = gSpriteImages_BattlerPlayerLeft,
.affineAnims = gSpriteAffineAnimTable_82348C8, .affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = sub_80120C4, .callback = SpriteCB_AllyMon,
}, },
{ [B_POSITION_OPPONENT_LEFT] = {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F010, .oam = &gOamData_BattlerOpponent,
.anims = NULL, .anims = NULL,
.images = gUnknown_82346B8, .images = gSpriteImages_BattlerOpponentLeft,
.affineAnims = gSpriteAffineAnimTable_8234944, .affineAnims = gSpriteAffineAnimTable_BattlerOpponent,
.callback = SpriteCB_WildMon, .callback = SpriteCB_EnemyMon,
}, },
{ [B_POSITION_PLAYER_RIGHT] = {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F018, .oam = &gOamData_BattlerPlayer,
.anims = NULL, .anims = NULL,
.images = gUnknown_82346D8, .images = gSpriteImages_BattlerPlayerRight,
.affineAnims = gSpriteAffineAnimTable_82348C8, .affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = sub_80120C4, .callback = SpriteCB_AllyMon,
}, },
{ [B_POSITION_OPPONENT_RIGHT] = {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F010, .oam = &gOamData_BattlerOpponent,
.anims = NULL, .anims = NULL,
.images = gUnknown_82346F8, .images = gSpriteImages_BattlerOpponentRight,
.affineAnims = gSpriteAffineAnimTable_8234944, .affineAnims = gSpriteAffineAnimTable_BattlerOpponent,
.callback = SpriteCB_WildMon, .callback = SpriteCB_EnemyMon,
}, },
}; };
const struct SpriteTemplate gUnknown_825DF50[] = const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] =
{ {
{ {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F018, .oam = &gOamData_BattlerPlayer,
.anims = NULL, .anims = NULL,
.images = gTrainerBackPicTable_Red, .images = gTrainerBackPicTable_Red,
.affineAnims = gSpriteAffineAnimTable_82348C8, .affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = sub_80120C4, .callback = SpriteCB_AllyMon,
}, },
{ {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F018, .oam = &gOamData_BattlerPlayer,
.anims = NULL, .anims = NULL,
.images = gTrainerBackPicTable_Leaf, .images = gTrainerBackPicTable_Leaf,
.affineAnims = gSpriteAffineAnimTable_82348C8, .affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = sub_80120C4, .callback = SpriteCB_AllyMon,
}, },
{ {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F018, .oam = &gOamData_BattlerPlayer,
.anims = NULL, .anims = NULL,
.images = gTrainerBackPicTable_RSBrendan, .images = gTrainerBackPicTable_RSBrendan,
.affineAnims = gSpriteAffineAnimTable_82348C8, .affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = sub_80120C4, .callback = SpriteCB_AllyMon,
}, },
{ {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F018, .oam = &gOamData_BattlerPlayer,
.anims = NULL, .anims = NULL,
.images = gTrainerBackPicTable_RSMay, .images = gTrainerBackPicTable_RSMay,
.affineAnims = gSpriteAffineAnimTable_82348C8, .affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = sub_80120C4, .callback = SpriteCB_AllyMon,
}, },
{ {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F018, .oam = &gOamData_BattlerPlayer,
.anims = NULL, .anims = NULL,
.images = gTrainerBackPicTable_Pokedude, .images = gTrainerBackPicTable_Pokedude,
.affineAnims = gSpriteAffineAnimTable_82348C8, .affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = sub_80120C4, .callback = SpriteCB_AllyMon,
}, },
{ {
.tileTag = SPRITE_INVALID_TAG, .tileTag = SPRITE_INVALID_TAG,
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F018, .oam = &gOamData_BattlerPlayer,
.anims = NULL, .anims = NULL,
.images = gTrainerBackPicTable_OldMan, .images = gTrainerBackPicTable_OldMan,
.affineAnims = gSpriteAffineAnimTable_82348C8, .affineAnims = gSpriteAffineAnimTable_BattlerPlayer,
.callback = sub_80120C4, .callback = SpriteCB_AllyMon,
}, },
}; };
@@ -2716,7 +2716,7 @@ void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition)
if (battlerPosition >= 4) if (battlerPosition >= 4)
battlerPosition = 0; battlerPosition = 0;
gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition]; gMultiuseSpriteTemplate = gSpriteTemplates_Battlers[battlerPosition];
} }
} }
gMultiuseSpriteTemplate.paletteTag = speciesTag; gMultiuseSpriteTemplate.paletteTag = speciesTag;
@@ -2728,7 +2728,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit
gMultiuseSpriteTemplate.paletteTag = trainerSpriteId; gMultiuseSpriteTemplate.paletteTag = trainerSpriteId;
if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT)
{ {
gMultiuseSpriteTemplate = gUnknown_825DF50[trainerSpriteId]; gMultiuseSpriteTemplate = gSpriteTemplates_TrainerBackpics[trainerSpriteId];
gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId]; gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId];
} }
else else
@@ -2736,7 +2736,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit
if (gMonSpritesGfxPtr != NULL) if (gMonSpritesGfxPtr != NULL)
gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition]; gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition];
else else
gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition]; gMultiuseSpriteTemplate = gSpriteTemplates_Battlers[battlerPosition];
gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[trainerSpriteId]; gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[trainerSpriteId];
} }
} }
@@ -6081,7 +6081,7 @@ static void OakSpeechNidoranFSetupTemplate(struct OakSpeechNidoranFStruct *struc
{ {
for (i = 0; i < (s8)structPtr->spriteCount; ++i) 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) for (j = 0; j < structPtr->frameCount; ++j)
structPtr->frameImages[i * structPtr->frameCount + j].data = &structPtr->bufferPtrs[i][j * 0x800]; structPtr->frameImages[i * structPtr->frameCount + j].data = &structPtr->bufferPtrs[i][j * 0x800];
structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->frameCount]; structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->frameCount];
@@ -6089,7 +6089,7 @@ static void OakSpeechNidoranFSetupTemplate(struct OakSpeechNidoranFStruct *struc
} }
else else
{ {
const struct SpriteTemplate *template = &gUnknown_825DEF0[battlePosition]; const struct SpriteTemplate *template = &gSpriteTemplates_Battlers[battlePosition];
structPtr->templates[0] = *template; structPtr->templates[0] = *template;
for (j = 0; j < structPtr->frameCount; ++j) for (j = 0; j < structPtr->frameCount; ++j)
+17 -17
View File
@@ -10,7 +10,7 @@
#include "battle_controllers.h" #include "battle_controllers.h"
static void CB2_ReshowBattleScreenAfterMenu(void); static void CB2_ReshowBattleScreenAfterMenu(void);
static void sub_8077AAC(void); static void ReshowBattleScreen_TurnOnDisplay(void);
static bool8 LoadBattlerSpriteGfx(u8 battlerId); static bool8 LoadBattlerSpriteGfx(u8 battlerId);
static void CreateBattlerSprite(u8 battlerId); static void CreateBattlerSprite(u8 battlerId);
static void CreateHealthboxSprite(u8 battlerId); static void CreateHealthboxSprite(u8 battlerId);
@@ -113,35 +113,35 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
if (!LoadBattlerSpriteGfx(2)) if (!LoadBattlerSpriteGfx(2))
--gBattleScripting.reshowMainState; --gBattleScripting.reshowMainState;
break; break;
case 0xA: case 10:
if (!LoadBattlerSpriteGfx(3)) if (!LoadBattlerSpriteGfx(3))
--gBattleScripting.reshowMainState; --gBattleScripting.reshowMainState;
break; break;
case 0xB: case 11:
CreateBattlerSprite(0); CreateBattlerSprite(0);
break; break;
case 0xC: case 12:
CreateBattlerSprite(1); CreateBattlerSprite(1);
break; break;
case 0xD: case 13:
CreateBattlerSprite(2); CreateBattlerSprite(2);
break; break;
case 0xE: case 14:
CreateBattlerSprite(3); CreateBattlerSprite(3);
break; break;
case 0xF: case 15:
CreateHealthboxSprite(0); CreateHealthboxSprite(0);
break; break;
case 0x10: case 16:
CreateHealthboxSprite(1); CreateHealthboxSprite(1);
break; break;
case 0x11: case 17:
CreateHealthboxSprite(2); CreateHealthboxSprite(2);
break; break;
case 0x12: case 18:
CreateHealthboxSprite(3); CreateHealthboxSprite(3);
break; break;
case 0x13: case 19:
LoadAndCreateEnemyShadowSprites(); LoadAndCreateEnemyShadowSprites();
opponentBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); opponentBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBattler]], MON_DATA_SPECIES); species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBattler]], MON_DATA_SPECIES);
@@ -159,13 +159,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
CreateWirelessStatusIndicatorSprite(0, 0); CreateWirelessStatusIndicatorSprite(0, 0);
} }
break; break;
case 0x14: case 20:
SetVBlankCallback(VBlankCB_Battle); SetVBlankCallback(VBlankCB_Battle);
sub_8077AAC(); ReshowBattleScreen_TurnOnDisplay();
BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1); BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1);
gPaletteFade.bufferTransferDisabled = 0; gPaletteFade.bufferTransferDisabled = 0;
SetMainCallback2(BattleMainCB2); SetMainCallback2(BattleMainCB2);
sub_80357C8(); BattleInterfaceSetWindowPals();
break; break;
default: default:
break; break;
@@ -173,7 +173,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
++gBattleScripting.reshowMainState; ++gBattleScripting.reshowMainState;
} }
static void sub_8077AAC(void) static void ReshowBattleScreen_TurnOnDisplay(void)
{ {
EnableInterrupts(INTR_FLAG_VBLANK); EnableInterrupts(INTR_FLAG_VBLANK);
SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDCNT, 0);
@@ -202,9 +202,9 @@ static bool8 LoadBattlerSpriteGfx(u8 battler)
BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE); BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE);
} }
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler. 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. 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) else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler); BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
else else