summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h46
-rw-r--r--include/battle_anim.h8
-rw-r--r--include/battle_arena.h1
-rw-r--r--include/battle_gfx_sfx_util.h1
-rw-r--r--include/battle_main.h14
-rw-r--r--include/battle_pyramid_bag.h1
-rw-r--r--include/battle_transition.h107
-rw-r--r--include/battle_util.h58
-rw-r--r--include/constants/battle.h13
-rw-r--r--include/constants/battle_anim.h2
-rw-r--r--include/contest.h2
-rw-r--r--include/gym_leader_rematch.h6
-rw-r--r--include/recorded_battle.h6
13 files changed, 147 insertions, 118 deletions
diff --git a/include/battle.h b/include/battle.h
index e32e621cc..5ccff8ce3 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -32,7 +32,6 @@
#define B_ACTION_EXEC_SCRIPT 10
#define B_ACTION_TRY_FINISH 11
#define B_ACTION_FINISHED 12
-
#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action
#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action
#define B_ACTION_NONE 0xFF
@@ -50,14 +49,17 @@
#define MSG_DISPLAY 7
#define BATTLE_COMMUNICATION_ENTRIES_COUNT 8
-#define MOVE_TARGET_SELECTED 0x0
-#define MOVE_TARGET_DEPENDS 0x1
-#define MOVE_TARGET_USER_OR_SELECTED 0x2
-#define MOVE_TARGET_RANDOM 0x4
-#define MOVE_TARGET_BOTH 0x8
-#define MOVE_TARGET_USER 0x10
-#define MOVE_TARGET_FOES_AND_ALLY 0x20
-#define MOVE_TARGET_OPPONENTS_FIELD 0x40
+#define MOVE_TARGET_SELECTED 0
+#define MOVE_TARGET_DEPENDS (1 << 0)
+#define MOVE_TARGET_USER_OR_SELECTED (1 << 1)
+#define MOVE_TARGET_RANDOM (1 << 2)
+#define MOVE_TARGET_BOTH (1 << 3)
+#define MOVE_TARGET_USER (1 << 4)
+#define MOVE_TARGET_FOES_AND_ALLY (1 << 5)
+#define MOVE_TARGET_OPPONENTS_FIELD (1 << 6)
+
+// For the second argument of GetMoveTarget, when no target override is needed
+#define NO_TARGET_OVERRIDE 0
#define BATTLE_BUFFER_LINK_SIZE 0x1000
@@ -115,7 +117,7 @@ struct ProtectStruct
u32 confusionSelfDmg:1;
u32 targetNotAffected:1;
u32 chargingTurn:1;
- u32 fleeFlag:2; // For RunAway and Smoke Ball.
+ u32 fleeType:2; // 0: Normal, 1: FLEE_ITEM, 2: FLEE_ABILITY
u32 usedImprisonedMove:1;
u32 loveImmobility:1;
u32 usedDisabledMove:1;
@@ -426,7 +428,7 @@ struct BattleStruct
u8 unused_6[3];
u8 givenExpMons; // Bits for enemy party's pokemon that gave exp to player's party.
u8 lastTakenMoveFrom[MAX_BATTLERS_COUNT * MAX_BATTLERS_COUNT * 2]; // a 3-D array [target][attacker][byte]
- u16 castformPalette[MAX_BATTLERS_COUNT][16];
+ u16 castformPalette[NUM_CASTFORM_FORMS][16];
union {
struct LinkBattlerHeader linkBattlerHeader;
u32 battleVideo[2];
@@ -447,12 +449,16 @@ struct BattleStruct
u8 alreadyStatusedMoveAttempt; // As bits for battlers; For example when using Thunder Wave on an already paralyzed pokemon.
};
-#define GET_MOVE_TYPE(move, typeArg) \
-{ \
- if (gBattleStruct->dynamicMoveType) \
- typeArg = gBattleStruct->dynamicMoveType & 0x3F; \
- else \
- typeArg = gBattleMoves[move].type; \
+#define F_DYNAMIC_TYPE_1 (1 << 6)
+#define F_DYNAMIC_TYPE_2 (1 << 7)
+#define DYNAMIC_TYPE_MASK (F_DYNAMIC_TYPE_1 - 1)
+
+#define GET_MOVE_TYPE(move, typeArg) \
+{ \
+ if (gBattleStruct->dynamicMoveType) \
+ typeArg = gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK; \
+ else \
+ typeArg = gBattleMoves[move].type; \
}
#define IS_TYPE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY)
@@ -502,7 +508,7 @@ struct BattleScripting
u8 reshowMainState;
u8 reshowHelperState;
u8 levelUpHP;
- u8 windowsType; // 0 - normal, 1 - battle arena
+ u8 windowsType; // B_WIN_TYPE_*
u8 multiplayerId;
u8 specialTrainerBattleType;
};
@@ -624,8 +630,8 @@ extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT];
extern u32 gBattleTypeFlags;
extern u8 gBattleTerrain;
extern u32 gUnusedFirstBattleVar1;
-extern u8 *gUnknown_0202305C;
-extern u8 *gUnknown_02023060;
+extern u8 *gBattleAnimBgTileBuffer;
+extern u8 *gBattleAnimBgTilemapBuffer;
extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
extern u8 gActiveBattler;
diff --git a/include/battle_anim.h b/include/battle_anim.h
index ad160e74d..3f73f1daf 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -64,12 +64,12 @@ s8 BattleAnimAdjustPanning(s8 pan);
s8 BattleAnimAdjustPanning2(s8 pan);
s16 KeepPanInRange(s16 a, int oldPan);
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
-void sub_80A4720(u16 a, u16 *b, u32 c, u8 d);
+void RelocateBattleBgPal(u16 paletteNum, u16 *dest, u32 offset, bool8 largeScreen);
void ResetBattleAnimBg(bool8);
// battle_intro.c
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
-void sub_8118FBC(int bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *arg5, u16 *arg6, u16 arg7);
+void DrawBattlerOnBg(int bgId, u8 x, u8 y, u8 battlerPosition, u8 paletteId, u8 *tiles, u16 *tilemap, u16 tilesOffset);
void HandleIntroSlide(u8 terrainId);
int GetAnimBgAttribute(u8 bgId, u8 attributeId);
@@ -107,7 +107,7 @@ void AnimTranslateLinear_WaitEnd(struct Sprite *sprite);
u8 GetBattlerSpriteBGPriority(u8 battlerId);
void *LoadPointerFromVars(s16 bottom, s16 top);
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
-void sub_80A8278(void);
+void InitPrioritiesForVisibleBattlers(void);
void GetBattleAnimBg1Data(struct BattleAnimBgData*);
void GetBattleAnimBgData(struct BattleAnimBgData*, u32 arg1);
u8 GetBattlerSpriteSubpriority(u8 battlerId);
@@ -125,7 +125,7 @@ u8 AnimDummyReturnArg(u8 battler);
s16 CloneBattlerSpriteWithBlend(u8);
void obj_delete_but_dont_free_vram(struct Sprite*);
u8 CreateInvisibleSpriteCopy(int, u8, int);
-void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const void*, u32);
+void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const void*, bool32);
void AnimLoadCompressedBgGfx(u32, const u32*, u32);
void UpdateAnimBg3ScreenSize(bool8);
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *);
diff --git a/include/battle_arena.h b/include/battle_arena.h
index b55fc39b0..c9a18ef61 100644
--- a/include/battle_arena.h
+++ b/include/battle_arena.h
@@ -7,7 +7,6 @@ void BattleArena_InitPoints(void);
void BattleArena_AddMindPoints(u8 battler);
void BattleArena_AddSkillPoints(u8 battler);
void BattleArena_DeductMindPoints(u8 battler, u16 stringId);
-void sub_81A586C(u8 battler);
void DrawArenaRefereeTextBox(void);
void EraseArenaRefereeTextBox(void);
diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h
index a367bc043..383facd69 100644
--- a/include/battle_gfx_sfx_util.h
+++ b/include/battle_gfx_sfx_util.h
@@ -18,7 +18,6 @@ void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId);
void DecompressTrainerBackPic(u16 backPicId, u8 battlerId);
void BattleGfxSfxDummy3(u8 gender);
void FreeTrainerFrontPicPalette(u16 frontPicId);
-void sub_805DFFC(void);
bool8 BattleLoadAllHealthBoxesGfx(u8 state);
void LoadBattleBarGfx(u8 arg0);
bool8 BattleInitAllSprites(u8 *state1, u8 *battlerId);
diff --git a/include/battle_main.h b/include/battle_main.h
index 78cf353df..f3e961b7b 100644
--- a/include/battle_main.h
+++ b/include/battle_main.h
@@ -7,7 +7,8 @@ struct TrainerMoney
u8 value;
};
-struct UnknownPokemonStruct4
+// For displaying a multi battle partner's Pokémon in the party menu
+struct MultiPartnerMenuPokemon
{
/*0x00*/ u16 species;
/*0x02*/ u16 heldItem;
@@ -46,8 +47,6 @@ struct UnknownPokemonStruct4
void CB2_InitBattle(void);
void BattleMainCB2(void);
void CB2_QuitRecordedBattle(void);
-void sub_8038528(struct Sprite* sprite);
-void sub_8038A04(void); // unused
void VBlankCB_Battle(void);
void SpriteCB_VsLetterDummy(struct Sprite *sprite);
void SpriteCB_VsLetterInit(struct Sprite *sprite);
@@ -59,13 +58,12 @@ void SpriteCallbackDummy_2(struct Sprite *sprite);
void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite);
void SpriteCb_HideAsMoveTarget(struct Sprite *sprite);
-void SpriteCb_OpponentMonFromBall(struct Sprite *sprite);
+void SpriteCB_OpponentMonFromBall(struct Sprite *sprite);
void SpriteCB_BattleSpriteStartSlideLeft(struct Sprite *sprite);
void SpriteCB_FaintSlideAnim(struct Sprite *sprite);
void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d);
void EndBounceEffect(u8 battlerId, bool8 b);
-void SpriteCb_PlayerMonFromBall(struct Sprite *sprite);
-void sub_8039E60(struct Sprite *sprite);
+void SpriteCB_PlayerMonFromBall(struct Sprite *sprite);
void SpriteCB_TrainerThrowObject(struct Sprite *sprite);
void sub_8039E9C(struct Sprite *sprite);
void BeginBattleIntroDummy(void);
@@ -82,9 +80,9 @@ void RunBattleScriptCommands(void);
bool8 TryRunFromBattle(u8 battlerId);
void SpecialStatusesClear(void);
-extern struct UnknownPokemonStruct4 gMultiPartnerParty[MULTI_PARTY_SIZE];
+extern struct MultiPartnerMenuPokemon gMultiPartnerParty[MULTI_PARTY_SIZE];
-extern const struct SpriteTemplate gUnknown_0831AC88;
+extern const struct SpriteTemplate gUnusedBattleInitSprite;
extern const struct OamData gOamData_BattleSpriteOpponentSide;
extern const struct OamData gOamData_BattleSpritePlayerSide;
extern const u8 gTypeEffectiveness[336];
diff --git a/include/battle_pyramid_bag.h b/include/battle_pyramid_bag.h
index b8b3eb20f..258ca56b2 100644
--- a/include/battle_pyramid_bag.h
+++ b/include/battle_pyramid_bag.h
@@ -63,7 +63,6 @@ void CB2_PyramidBagMenuFromStartMenu(void);
void CB2_ReturnToPyramidBagMenu(void);
void UpdatePyramidBagList(void);
void UpdatePyramidBagCursorPos(void);
-void sub_81C4EFC(void);
void GoToBattlePyramidBagMenu(u8 location, void (*exitCallback)(void));
void Task_CloseBattlePyramidBagMessage(u8 taskId);
void TryStoreHeldItemsInPyramidBag(void);
diff --git a/include/battle_transition.h b/include/battle_transition.h
index a33032fb4..784c5f968 100644
--- a/include/battle_transition.h
+++ b/include/battle_transition.h
@@ -11,8 +11,7 @@ void GetBg0TilesDst(u16 **tilemap, u16 **tileset);
extern const struct SpritePalette gSpritePalette_Pokeball;
-enum // TRANSITION_MUGSHOT
-{
+enum {
MUGSHOT_SIDNEY,
MUGSHOT_PHOEBE,
MUGSHOT_GLACIA,
@@ -21,52 +20,64 @@ enum // TRANSITION_MUGSHOT
MUGSHOTS_COUNT
};
-// credits for the names go to Dyskinesia, Tetrable and Farore
-// names are naturally subject to change
+enum {
+ B_TRANSITION_BLUR,
+ B_TRANSITION_SWIRL,
+ B_TRANSITION_SHUFFLE,
+ B_TRANSITION_BIG_POKEBALL,
+ B_TRANSITION_POKEBALLS_TRAIL,
+ B_TRANSITION_CLOCKWISE_BLACKFADE,
+ B_TRANSITION_RIPPLE,
+ B_TRANSITION_WAVE,
+ B_TRANSITION_SLICE,
+ B_TRANSITION_WHITEFADE,
+ B_TRANSITION_GRID_SQUARES,
+ B_TRANSITION_SHARDS,
+ B_TRANSITION_SIDNEY,
+ B_TRANSITION_PHOEBE,
+ B_TRANSITION_GLACIA,
+ B_TRANSITION_DRAKE,
+ B_TRANSITION_CHAMPION,
+ B_TRANSITION_AQUA, // Here below added in Emerald
+ B_TRANSITION_MAGMA,
+ B_TRANSITION_REGICE,
+ B_TRANSITION_REGISTEEL,
+ B_TRANSITION_REGIROCK,
+ B_TRANSITION_KYOGRE,
+ B_TRANSITION_GROUDON,
+ B_TRANSITION_RAYQUAZA,
+ B_TRANSITION_SHRED_SPLIT,
+ B_TRANSITION_BLACKHOLE1,
+ B_TRANSITION_BLACKHOLE2,
+ B_TRANSITION_RECTANGULAR_SPIRAL,
+ B_TRANSITION_FRONTIER_LOGO_WIGGLE,
+ B_TRANSITION_FRONTIER_LOGO_WAVE,
+ B_TRANSITION_FRONTIER_SQUARES,
+ B_TRANSITION_FRONTIER_SQUARES_SCROLL,
+ B_TRANSITION_FRONTIER_SQUARES_SPIRAL,
+ B_TRANSITION_FRONTIER_CIRCLES_MEET,
+ B_TRANSITION_FRONTIER_CIRCLES_CROSS,
+ B_TRANSITION_FRONTIER_CIRCLES_ASYMMETRIC_SPIRAL,
+ B_TRANSITION_FRONTIER_CIRCLES_SYMMETRIC_SPIRAL,
+ B_TRANSITION_FRONTIER_CIRCLES_MEET_IN_SEQ,
+ B_TRANSITION_FRONTIER_CIRCLES_CROSS_IN_SEQ,
+ B_TRANSITION_FRONTIER_CIRCLES_ASYMMETRIC_SPIRAL_IN_SEQ,
+ B_TRANSITION_FRONTIER_CIRCLES_SYMMETRIC_SPIRAL_IN_SEQ,
+ B_TRANSITION_COUNT
+};
-#define B_TRANSITION_BLUR 0
-#define B_TRANSITION_SWIRL 1
-#define B_TRANSITION_SHUFFLE 2
-#define B_TRANSITION_BIG_POKEBALL 3
-#define B_TRANSITION_POKEBALLS_TRAIL 4
-#define B_TRANSITION_CLOCKWISE_BLACKFADE 5
-#define B_TRANSITION_RIPPLE 6
-#define B_TRANSITION_WAVE 7
-#define B_TRANSITION_SLICE 8
-#define B_TRANSITION_WHITEFADE 9
-#define B_TRANSITION_GRID_SQUARES 10
-#define B_TRANSITION_SHARDS 11
-#define B_TRANSITION_SIDNEY 12
-#define B_TRANSITION_PHOEBE 13
-#define B_TRANSITION_GLACIA 14
-#define B_TRANSITION_DRAKE 15
-#define B_TRANSITION_CHAMPION 16
-// added in Emerald
-#define B_TRANSITION_AQUA 17
-#define B_TRANSITION_MAGMA 18
-#define B_TRANSITION_REGICE 19
-#define B_TRANSITION_REGISTEEL 20
-#define B_TRANSITION_REGIROCK 21
-#define B_TRANSITION_KYOGRE 22
-#define B_TRANSITION_GROUDON 23
-#define B_TRANSITION_RAYQUAZA 24
-#define B_TRANSITION_SHRED_SPLIT 25
-#define B_TRANSITION_BLACKHOLE1 26
-#define B_TRANSITION_BLACKHOLE2 27
-#define B_TRANSITION_RECTANGULAR_SPIRAL 28
-#define B_TRANSITION_FRONTIER_LOGO_WIGGLE 29
-#define B_TRANSITION_FRONTIER_LOGO_WAVE 30
-#define B_TRANSITION_FRONTIER_SQUARES 31
-#define B_TRANSITION_FRONTIER_SQUARES_SCROLL 32
-#define B_TRANSITION_FRONTIER_SQUARES_SPIRAL 33
-#define B_TRANSITION_FRONTIER_CIRCLES_MEET 34
-#define B_TRANSITION_FRONTIER_CIRCLES_CROSS 35
-#define B_TRANSITION_FRONTIER_CIRCLES_ASYMMETRIC_SPIRAL 36
-#define B_TRANSITION_FRONTIER_CIRCLES_SYMMETRIC_SPIRAL 37
-#define B_TRANSITION_FRONTIER_CIRCLES_MEET_IN_SEQ 38
-#define B_TRANSITION_FRONTIER_CIRCLES_CROSS_IN_SEQ 39
-#define B_TRANSITION_FRONTIER_CIRCLES_ASYMMETRIC_SPIRAL_IN_SEQ 40
-#define B_TRANSITION_FRONTIER_CIRCLES_SYMMETRIC_SPIRAL_IN_SEQ 41
-#define B_TRANSITION_COUNT 42
+// IDs for GetSpecialBattleTransition
+enum {
+ B_TRANSITION_GROUP_B_TOWER,
+ B_TRANSITION_GROUP_B_DOME = 3,
+ B_TRANSITION_GROUP_B_PALACE,
+ B_TRANSITION_GROUP_B_ARENA,
+ B_TRANSITION_GROUP_B_FACTORY,
+ B_TRANSITION_GROUP_B_PIKE,
+ B_TRANSITION_GROUP_B_PYRAMID = 10,
+ B_TRANSITION_GROUP_TRAINER_HILL,
+ B_TRANSITION_GROUP_SECRET_BASE,
+ B_TRANSITION_GROUP_E_READER,
+};
#endif // GUARD_BATTLE_TRANSITION_H
diff --git a/include/battle_util.h b/include/battle_util.h
index d4e2a23f8..914e44c04 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -6,39 +6,43 @@
#define MOVE_LIMITATION_DISABLED (1 << 2)
#define MOVE_LIMITATION_TORMENTED (1 << 3)
#define MOVE_LIMITATION_TAUNT (1 << 4)
-#define MOVE_LIMITATION_IMPRISON (1 << 5)
+#define MOVE_LIMITATION_IMPRISON (1 << 5)
+#define MOVE_LIMITATIONS_ALL 0xFF
-#define ABILITYEFFECT_ON_SWITCHIN 0x0
-#define ABILITYEFFECT_ENDTURN 0x1
-#define ABILITYEFFECT_MOVES_BLOCK 0x2
-#define ABILITYEFFECT_ABSORBING 0x3
-#define ABILITYEFFECT_ON_DAMAGE 0x4
-#define ABILITYEFFECT_IMMUNITY 0x5
-#define ABILITYEFFECT_FORECAST 0x6
-#define ABILITYEFFECT_SYNCHRONIZE 0x7
-#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8
-#define ABILITYEFFECT_INTIMIDATE1 0x9
-#define ABILITYEFFECT_INTIMIDATE2 0xA
-#define ABILITYEFFECT_TRACE 0xB
-#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC
-#define ABILITYEFFECT_CHECK_BATTLER_SIDE 0xD
-#define ABILITYEFFECT_FIELD_SPORT 0xE
-#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 0xF
-#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10
-#define ABILITYEFFECT_COUNT_BATTLER_SIDE 0x11
-#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
-#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
-#define ABILITYEFFECT_MUD_SPORT 0xFD
-#define ABILITYEFFECT_WATER_SPORT 0xFE
-#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF
+#define ABILITYEFFECT_ON_SWITCHIN 0
+#define ABILITYEFFECT_ENDTURN 1
+#define ABILITYEFFECT_MOVES_BLOCK 2
+#define ABILITYEFFECT_ABSORBING 3
+#define ABILITYEFFECT_ON_DAMAGE 4
+#define ABILITYEFFECT_IMMUNITY 5
+#define ABILITYEFFECT_FORECAST 6
+#define ABILITYEFFECT_SYNCHRONIZE 7
+#define ABILITYEFFECT_ATK_SYNCHRONIZE 8
+#define ABILITYEFFECT_INTIMIDATE1 9
+#define ABILITYEFFECT_INTIMIDATE2 10
+#define ABILITYEFFECT_TRACE 11
+#define ABILITYEFFECT_CHECK_OTHER_SIDE 12
+#define ABILITYEFFECT_CHECK_BATTLER_SIDE 13
+#define ABILITYEFFECT_FIELD_SPORT 14
+#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 15
+#define ABILITYEFFECT_COUNT_OTHER_SIDE 16
+#define ABILITYEFFECT_COUNT_BATTLER_SIDE 17
+#define ABILITYEFFECT_COUNT_ON_FIELD 18
+#define ABILITYEFFECT_CHECK_ON_FIELD 19
+#define ABILITYEFFECT_MUD_SPORT 253
+#define ABILITYEFFECT_WATER_SPORT 254
+#define ABILITYEFFECT_SWITCH_IN_WEATHER 255
#define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0))
#define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0))
#define ABILITY_ON_FIELD2(abilityId)(AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, abilityId, 0, 0))
-#define ITEMEFFECT_ON_SWITCH_IN 0x0
-#define ITEMEFFECT_MOVE_END 0x3
-#define ITEMEFFECT_KINGSROCK_SHELLBELL 0x4
+// For the first argument of ItemBattleEffects, to deteremine which block of item effects to try
+#define ITEMEFFECT_ON_SWITCH_IN 0
+#define ITEMEFFECT_NORMAL 1
+#define ITEMEFFECT_DUMMY 2 // Unused, empty
+#define ITEMEFFECT_MOVE_END 3
+#define ITEMEFFECT_KINGSROCK_SHELLBELL 4
#define WEATHER_HAS_EFFECT ((!ABILITY_ON_FIELD(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD(ABILITY_AIR_LOCK)))
#define WEATHER_HAS_EFFECT2 ((!ABILITY_ON_FIELD2(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD2(ABILITY_AIR_LOCK)))
diff --git a/include/constants/battle.h b/include/constants/battle.h
index f1ce757e7..62e7cbbfa 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -306,4 +306,17 @@
#define B_WAIT_TIME_MED 48
#define B_WAIT_TIME_SHORT 32
+#define CASTFORM_NORMAL 0
+#define CASTFORM_FIRE 1
+#define CASTFORM_WATER 2
+#define CASTFORM_ICE 3
+#define NUM_CASTFORM_FORMS 4
+#define CASTFORM_SUBSTITUTE (1 << 7)
+
+#define FLEE_ITEM 1
+#define FLEE_ABILITY 2
+
+#define B_WIN_TYPE_NORMAL 0
+#define B_WIN_TYPE_ARENA 1
+
#endif // GUARD_CONSTANTS_BATTLE_H
diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h
index 4622876cc..177ea04bb 100644
--- a/include/constants/battle_anim.h
+++ b/include/constants/battle_anim.h
@@ -318,7 +318,7 @@
#define SOUND_PAN_TARGET 63
// move background ids
-#define BG_DARK_ 0 // the same as BG_DARK but is unused
+#define BG_NONE 0 // the same as BG_DARK but is unused
#define BG_DARK 1
#define BG_GHOST 2
#define BG_PSYCHIC 3
diff --git a/include/contest.h b/include/contest.h
index 9bac63eda..e7acb5a11 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -294,7 +294,7 @@ struct ContestResources
u8 * contestBgTilemaps[CONTESTANT_COUNT];
void * boxBlinkTiles1;
void * boxBlinkTiles2;
- void * field_3c;
+ void * animBgTileBuffer;
};
#define eContest (*gContestResources->contest)
diff --git a/include/gym_leader_rematch.h b/include/gym_leader_rematch.h
index dd9ead8b7..b31fb5e22 100644
--- a/include/gym_leader_rematch.h
+++ b/include/gym_leader_rematch.h
@@ -66,7 +66,7 @@ enum {
REMATCH_TRENT,
REMATCH_SAWYER,
REMATCH_KIRA_AND_DAN,
- REMATCH_WALLY_3, // Entries above WALLY are considered normal trainers, from Wally below are special trainers
+ REMATCH_WALLY_VR, // Entries above WALLY are considered normal trainers, from Wally below are special trainers
REMATCH_ROXANNE,
REMATCH_BRAWLY,
REMATCH_WATTSON,
@@ -75,7 +75,7 @@ enum {
REMATCH_WINONA,
REMATCH_TATE_AND_LIZA,
REMATCH_JUAN,
- REMATCH_SIDNEY, // Entries below SIDNEY are considered part of REMATCH_ELITE_FOUR_ENTRIES.
+ REMATCH_SIDNEY, // Entries from SIDNEY below are considered part of REMATCH_ELITE_FOUR_ENTRIES.
REMATCH_PHOEBE,
REMATCH_GLACIA,
REMATCH_DRAKE,
@@ -83,7 +83,7 @@ enum {
REMATCH_TABLE_ENTRIES // The total number of rematch entries. Must be last in enum
};
-#define REMATCH_SPECIAL_TRAINER_START REMATCH_WALLY_3
+#define REMATCH_SPECIAL_TRAINER_START REMATCH_WALLY_VR
#define REMATCH_ELITE_FOUR_ENTRIES REMATCH_SIDNEY
void UpdateGymLeaderRematch(void);
diff --git a/include/recorded_battle.h b/include/recorded_battle.h
index 5ae4ac12d..8ea392774 100644
--- a/include/recorded_battle.h
+++ b/include/recorded_battle.h
@@ -9,7 +9,7 @@ extern u8 gRecordedBattleMultiplayerId;
#define B_RECORD_MODE_PLAYBACK 2
void RecordedBattle_Init(u8 arg0);
-void sub_8184E58(void);
+void RecordedBattle_SetTrainerInfo(void);
void RecordedBattle_SetBattlerAction(u8 battlerId, u8 action);
void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear);
u8 RecordedBattle_GetBattlerAction(u8 battlerId);
@@ -30,8 +30,8 @@ u8 GetTextSpeedInRecordedBattle(void);
void RecordedBattle_CopyBattlerMoves(void);
void sub_818603C(u8 arg0);
u32 GetAiScriptsInRecordedBattle(void);
-void sub_8186444(void);
-bool8 sub_8186450(void);
+void RecordedBattle_SetPlaybackFinished(void);
+bool8 RecordedBattle_CanStopPlayback(void);
void GetRecordedBattleRecordMixFriendName(u8 *dst);
u8 GetRecordedBattleRecordMixFriendClass(void);
u8 GetRecordedBattleApprenticeId(void);