summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h30
-rw-r--r--include/battle_anim.h23
-rw-r--r--include/battle_controllers.h2
-rw-r--r--include/battle_gfx_sfx_util.h2
-rw-r--r--include/battle_main.h26
-rw-r--r--include/data.h12
-rw-r--r--include/gba/defines.h10
-rw-r--r--include/global.h10
-rw-r--r--include/load_save.h1
-rw-r--r--include/pokeball.h2
-rw-r--r--include/pokemon.h2
11 files changed, 72 insertions, 48 deletions
diff --git a/include/battle.h b/include/battle.h
index 43f4c5115..d8d96c859 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -357,6 +357,15 @@ struct BattleResults
extern struct BattleResults gBattleResults;
+struct MultiPartnerEnigmaBerry
+{
+ u8 versionSignatureLo;
+ u8 versionSignatureHi;
+ u8 vsScreenHealthFlagsLo;
+ u8 vsScreenHealthFlagsHi;
+ struct BattleEnigmaBerry battleEnigmaBerry;
+};
+
struct BattleStruct
{
u8 turnEffectsTracker;
@@ -440,13 +449,12 @@ struct BattleStruct
u8 wishPerishSongState;
u8 wishPerishSongBattlerId;
u8 field_182;
- u8 field_183;
- u8 field_184;
- u8 field_185;
- u8 field_186;
- u8 field_187;
- struct BattleEnigmaBerry battleEnigmaBerry;
- u8 field_1A4[0x5C]; // currently unknown
+ // align 4
+ union {
+ struct MultiPartnerEnigmaBerry multiPartnerEnigmaBerry;
+ struct UnknownPokemonStruct4 multiBattleMons[3];
+ } multiBuffer;
+ u8 padding_1E4[0x1C];
}; // size == 0x200 bytes
extern struct BattleStruct *gBattleStruct;
@@ -508,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
@@ -711,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
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 866ca663e..05cba4e34 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -36,6 +36,15 @@ struct BattleAnimBackground
#define ANIM_ARGS_COUNT 8
+// Linear Translation
+#define sTransl_Speed data[0]
+#define sTransl_Duration data[0] // for Fast
+#define sTransl_InitX data[1]
+#define sTransl_DestX data[2]
+#define sTransl_InitY data[3]
+#define sTransl_DestY data[4]
+#define sTransl_ArcAmpl data[5]
+
extern void (*gAnimScriptCallback)(void);
extern bool8 gAnimScriptActive;
extern u8 gAnimVisualTaskCount;
@@ -129,7 +138,7 @@ extern const struct OamData gOamData_AffineDouble_ObjBlend_32x64;
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
void MoveBattlerSpriteToBG(u8 battlerId, u8);
-void sub_8073128(u8);
+void ResetBattleAnimBg(u8);
void ClearBattleAnimationVars(void);
void DoMoveAnim(u16 move);
void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim);
@@ -306,12 +315,12 @@ void AnimKnockOffStrike(struct Sprite *);
void AnimRecycle(struct Sprite *);
// battle_anim_special.c
-void sub_80F1720(u8 battler, struct Pokemon *mon);
+void TryShinyAnimation(u8 battler, struct Pokemon *mon);
u8 ItemIdToBallId(u16 itemId);
-u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
+u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
-void sub_80EEFC8(u8 *, u8 *, u8 battlerId);
-void sub_80EF0E0(u8 batterId);
+void DoLoadHealthboxPalsForLevelUp(u8 *, u8 *, u8 battlerId);
+void DoFreeHealthboxPalsForLevelUp(u8 batterId);
enum
{
@@ -382,7 +391,7 @@ u8 GetBattlerPosition(u8 battlerId);
u8 GetBattlerAtPosition(u8 position);
bool8 IsBattlerSpritePresent(u8 battlerId);
bool8 IsDoubleBattle(void);
-void sub_80752A0(struct BattleAnimBgData *animBgData);
+void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData);
void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1);
void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused);
void sub_8075358(u32 bgId);
@@ -397,7 +406,7 @@ void InitAnimLinearTranslation(struct Sprite *sprite);
void StartAnimLinearTranslation(struct Sprite *sprite);
void sub_80755B8(struct Sprite *sprite);
bool8 AnimTranslateLinear(struct Sprite *sprite);
-void sub_807563C(struct Sprite *sprite);
+void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite);
void sub_8075678(struct Sprite *sprite);
void sub_80756A4(struct Sprite *sprite);
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index 412856353..89164b009 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -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);
diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h
index 667686af8..6c2ffa11b 100644
--- a/include/battle_gfx_sfx_util.h
+++ b/include/battle_gfx_sfx_util.h
@@ -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);
diff --git a/include/battle_main.h b/include/battle_main.h
index fe585f0e6..201000a69 100644
--- a/include/battle_main.h
+++ b/include/battle_main.h
@@ -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,29 +66,29 @@ 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);
void EndBounceEffect(u8 battler, u8 which);
-void sub_8012354(struct Sprite *sprite);
-void sub_801236C(struct Sprite *sprite);
+void SpriteCB_PlayerThrowInit(struct Sprite *sprite);
+void UpdatePlayerPosInThrowAnim(struct Sprite *sprite);
void nullsub_12(void);
void BeginBattleIntro(void);
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);
diff --git a/include/data.h b/include/data.h
index 19da0034f..55eda56a4 100644
--- a/include/data.h
+++ b/include/data.h
@@ -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[];
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 28f804dff..ce276862c 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -16,8 +16,10 @@
#if MODERN
#define NOINLINE __attribute__((noinline))
+#define HERE __attribute__((no_reorder))
#else
#define NOINLINE
+#define HERE
#endif
#define ALIGNED(n) __attribute__((aligned(n)))
@@ -92,7 +94,15 @@
#define RGB_CYAN RGB(0, 31, 31)
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
+// Some functions are strictly inline asm
#define NAKED __attribute__((naked))
+
+// Silence IDE warnings
+#if __GNUC__ >= 4
+#define USED __attribute__((used))
+#else
+#define USED
+#endif
#define UNUSED __attribute__((unused))
#endif // GUARD_GBA_DEFINES
diff --git a/include/global.h b/include/global.h
index dbe913595..04adc82cb 100644
--- a/include/global.h
+++ b/include/global.h
@@ -16,7 +16,7 @@
#define asm_comment(x) asm volatile("@ -- " x " -- ")
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
-#if defined (__APPLE__) || defined (__CYGWIN__)
+#if defined (__APPLE__) || defined (__CYGWIN__) || defined(__CLION_IDE__)
// Get the IDE to stfu
// We define it this way to fool preproc.
@@ -31,9 +31,7 @@
#define __(x) (x)
#endif // __APPLE__
-#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
-// GF's lingo
-#define NELEMS ARRAY_COUNT
+#define NELEMS(array) (sizeof(array) / sizeof((array)[0]))
#define SWAP(a, b, temp) \
{ \
@@ -293,7 +291,7 @@ struct SaveBlock2
/*0xB10*/ struct BerryPickingResults berryPick;
/*0xB20*/ u8 filler_B20[0x400];
/*0xF20*/ u32 encryptionKey;
-};
+}; // size: 0xF24
extern struct SaveBlock2 *gSaveBlock2Ptr;
@@ -826,7 +824,7 @@ struct SaveBlock1
/*0x3D24*/ u8 filler3D24[0x10];
/*0x3D34*/ u32 towerChallengeId;
/*0x3D38*/ struct TrainerTower trainerTower[NUM_TOWER_CHALLENGE_TYPES];
-};
+}; // size: 0x3D68
struct MapPosition
{
diff --git a/include/load_save.h b/include/load_save.h
index 23c1429ed..95de991a8 100644
--- a/include/load_save.h
+++ b/include/load_save.h
@@ -6,6 +6,7 @@
extern bool32 gFlashMemoryPresent;
extern struct SaveBlock1 gSaveBlock1;
extern struct SaveBlock2 gSaveBlock2;
+extern struct PokemonStorage gPokemonStorage;
void ClearSav2(void);
void ClearSav1(void);
diff --git a/include/pokeball.h b/include/pokeball.h
index 1c2241246..9ba5656af 100644
--- a/include/pokeball.h
+++ b/include/pokeball.h
@@ -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
diff --git a/include/pokemon.h b/include/pokemon.h
index 6a9b657ea..2f9bdb5af 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -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);