summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/battle_anim_effects_2.c3
-rwxr-xr-xsrc/battle_anim_effects_3.c3
-rw-r--r--src/battle_controller_link_opponent.c12
-rw-r--r--src/battle_controller_link_partner.c11
-rw-r--r--src/battle_controller_opponent.c10
-rw-r--r--src/battle_controller_player.c10
-rw-r--r--src/battle_controller_player_partner.c9
-rw-r--r--src/battle_controller_recorded_opponent.c9
-rw-r--r--src/battle_controller_recorded_player.c8
-rw-r--r--src/battle_controller_safari.c8
-rw-r--r--src/battle_controller_wally.c8
-rw-r--r--src/battle_main.c4
-rw-r--r--src/battle_records.c3
-rw-r--r--src/battle_script_commands.c4
-rw-r--r--src/battle_setup.c5
-rw-r--r--src/battle_util.c2
-rw-r--r--src/berry.c6
-rw-r--r--src/berry_blender.c3
-rw-r--r--src/bike.c6
-rw-r--r--src/contest.c2
-rw-r--r--src/contest_link_80F57C4.c3
-rw-r--r--src/dewford_trend.c4
-rw-r--r--src/diploma.c3
-rw-r--r--src/electric.c3
-rw-r--r--src/field_control_avatar.c3
-rw-r--r--src/field_effect.c6
-rwxr-xr-xsrc/field_message_box.c4
-rw-r--r--src/field_player_avatar.c4
-rw-r--r--src/field_screen_effect.c20
-rw-r--r--src/field_specials.c20
-rw-r--r--src/fldeff_cut.c1
-rw-r--r--src/flying.c640
-rw-r--r--src/frontier_util.c5
-rw-r--r--src/hall_of_fame.c2
-rw-r--r--src/hof_pc.c4
-rw-r--r--src/ice.c47
-rwxr-xr-xsrc/item_menu.c3
-rwxr-xr-xsrc/item_use.c32
-rw-r--r--src/link.c2
-rw-r--r--src/link_rfu.c2
-rw-r--r--src/load_save.c2
-rw-r--r--src/main.c5
-rw-r--r--src/match_call.c2
-rw-r--r--src/menu.c24
-rw-r--r--src/menu_helpers.c2
-rw-r--r--src/mystery_event_script.c2
-rw-r--r--src/normal.c2
-rw-r--r--src/option_menu.c3
-rw-r--r--src/poison.c2
-rw-r--r--src/pokeblock_feed.c2
-rw-r--r--src/pokemon.c5
-rw-r--r--src/pokemon_size_record.c4
-rw-r--r--src/pokenav.c10
-rw-r--r--src/pokenav_match_call.c4
-rw-r--r--src/record_mixing.c3
-rw-r--r--src/reshow_battle_screen.c3
-rw-r--r--src/rock.c2
-rw-r--r--src/rom_8011DC0.c3
-rw-r--r--src/safari_zone.c3
-rw-r--r--src/save.c9
-rw-r--r--src/script_menu.c2
-rw-r--r--src/secret_base.c2
-rw-r--r--src/start_menu.c78
-rw-r--r--src/text.c4
-rwxr-xr-xsrc/trainer_card.c4
-rw-r--r--src/trainer_see.c2
-rw-r--r--src/unk_text_util_2.c2
-rw-r--r--src/water.c56
68 files changed, 559 insertions, 617 deletions
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index ee6676e64..80b3258b4 100755
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -16,9 +16,6 @@
#include "constants/rgb.h"
#include "constants/songs.h"
-extern void sub_8108C94(struct Sprite *);
-extern void sub_810310C(u8, struct Sprite *);
-
void sub_8103448(struct Sprite *);
void sub_8103498(struct Sprite *);
void sub_810358C(struct Sprite *);
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index 49fb69342..efa2620fd 100755
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -24,9 +24,6 @@
#include "constants/species.h"
#include "constants/weather.h"
-extern u8 sub_807521C(s16 x, s16 y, u8 a3);
-extern void sub_810E2C8(struct Sprite *);
-
extern const struct SpriteTemplate gUnknown_08593114;
extern const union AffineAnimCmd *const gUnknown_082FF6C0[];
extern const union AffineAnimCmd *const gUnknown_082FF694[];
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index 05da72e16..23d469c27 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -16,6 +16,7 @@
#include "palette.h"
#include "pokeball.h"
#include "pokemon.h"
+#include "recorded_battle.h"
#include "reshow_battle_screen.h"
#include "sound.h"
#include "string_util.h"
@@ -26,15 +27,12 @@
#include "constants/battle_anim.h"
#include "constants/songs.h"
#include "constants/trainers.h"
+#include "recorded_battle.h"
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
-extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
-extern void sub_81851A8(u8 *);
-extern u16 sub_8068B48(void);
-
// this file's functions
static void LinkOpponentHandleGetMonData(void);
static void LinkOpponentHandleGetRawMonData(void);
@@ -92,7 +90,7 @@ static void LinkOpponentHandleBattleAnimation(void);
static void LinkOpponentHandleLinkStandbyMsg(void);
static void LinkOpponentHandleResetActionMoveSelection(void);
static void LinkOpponentHandleCmd55(void);
-static void nullsub_92(void);
+static void LinkOpponentCmdEnd(void);
static void LinkOpponentBufferRunCommand(void);
static void LinkOpponentBufferExecCompleted(void);
@@ -164,7 +162,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
LinkOpponentHandleLinkStandbyMsg,
LinkOpponentHandleResetActionMoveSelection,
LinkOpponentHandleCmd55,
- nullsub_92
+ LinkOpponentCmdEnd
};
static void nullsub_28(void)
@@ -1857,6 +1855,6 @@ static void LinkOpponentHandleCmd55(void)
gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
-static void nullsub_92(void)
+static void LinkOpponentCmdEnd(void)
{
}
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index 4eb122d05..22633c5bc 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -16,6 +16,7 @@
#include "palette.h"
#include "pokeball.h"
#include "pokemon.h"
+#include "recorded_battle.h"
#include "reshow_battle_screen.h"
#include "sound.h"
#include "string_util.h"
@@ -26,13 +27,11 @@
#include "constants/battle_anim.h"
#include "constants/songs.h"
#include "constants/trainers.h"
+#include "recorded_battle.h"
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
-extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
-extern void sub_81851A8(u8 *);
-
// this file's functions
static void LinkPartnerHandleGetMonData(void);
static void LinkPartnerHandleGetRawMonData(void);
@@ -90,7 +89,7 @@ static void LinkPartnerHandleBattleAnimation(void);
static void LinkPartnerHandleLinkStandbyMsg(void);
static void LinkPartnerHandleResetActionMoveSelection(void);
static void LinkPartnerHandleCmd55(void);
-static void SpriteCB_Null3(void);
+static void LinkPartnerCmdEnd(void);
static void LinkPartnerBufferRunCommand(void);
static void LinkPartnerBufferExecCompleted(void);
@@ -161,7 +160,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
LinkPartnerHandleLinkStandbyMsg,
LinkPartnerHandleResetActionMoveSelection,
LinkPartnerHandleCmd55,
- SpriteCB_Null3
+ LinkPartnerCmdEnd
};
static void SpriteCB_Null2(void)
@@ -1687,6 +1686,6 @@ static void LinkPartnerHandleCmd55(void)
gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
-static void SpriteCB_Null3(void)
+static void LinkPartnerCmdEnd(void)
{
}
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 99bb0c588..7d940cb89 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -32,14 +32,12 @@
#include "constants/moves.h"
#include "constants/songs.h"
#include "constants/trainers.h"
+#include "trainer_hill.h"
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
-extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
-extern u8 GetTrainerHillTrainerFrontSpriteId(u16 trainerId);
-
// this file's functions
static void OpponentHandleGetMonData(void);
static void OpponentHandleGetRawMonData(void);
@@ -97,7 +95,7 @@ static void OpponentHandleBattleAnimation(void);
static void OpponentHandleLinkStandbyMsg(void);
static void OpponentHandleResetActionMoveSelection(void);
static void OpponentHandleCmd55(void);
-static void nullsub_91(void);
+static void OpponentCmdEnd(void);
static void OpponentBufferRunCommand(void);
static void OpponentBufferExecCompleted(void);
@@ -169,7 +167,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
OpponentHandleLinkStandbyMsg,
OpponentHandleResetActionMoveSelection,
OpponentHandleCmd55,
- nullsub_91
+ OpponentCmdEnd
};
// unknown unused data
@@ -2003,6 +2001,6 @@ static void OpponentHandleCmd55(void)
OpponentBufferExecCompleted();
}
-static void nullsub_91(void)
+static void OpponentCmdEnd(void)
{
}
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 6bcc97c68..b377ecf64 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -39,10 +39,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
-extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
-extern void sub_81AABB0(void);
-extern void sub_81851A8(u8 *);
-
// this file's functions
static void PlayerHandleGetMonData(void);
static void PlayerHandleSetMonData(void);
@@ -99,7 +95,7 @@ static void PlayerHandleBattleAnimation(void);
static void PlayerHandleLinkStandbyMsg(void);
static void PlayerHandleResetActionMoveSelection(void);
static void PlayerHandleCmd55(void);
-static void nullsub_22(void);
+static void PlayerCmdEnd(void);
static void PlayerBufferRunCommand(void);
static void HandleInputChooseTarget(void);
@@ -186,7 +182,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
PlayerHandleLinkStandbyMsg,
PlayerHandleResetActionMoveSelection,
PlayerHandleCmd55,
- nullsub_22
+ PlayerCmdEnd
};
static const u8 sTargetIdentities[] = {B_POSITION_PLAYER_LEFT, B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, B_POSITION_OPPONENT_LEFT};
@@ -3105,6 +3101,6 @@ static void PlayerHandleCmd55(void)
gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
-static void nullsub_22(void)
+static void PlayerCmdEnd(void)
{
}
diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c
index a9b0f376b..2c53938c1 100644
--- a/src/battle_controller_player_partner.c
+++ b/src/battle_controller_player_partner.c
@@ -30,9 +30,6 @@
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
-extern void sub_81358F4(void);
-extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
-
// this file's functions
static void PlayerPartnerHandleGetMonData(void);
static void PlayerPartnerHandleGetRawMonData(void);
@@ -90,7 +87,7 @@ static void PlayerPartnerHandleBattleAnimation(void);
static void PlayerPartnerHandleLinkStandbyMsg(void);
static void PlayerPartnerHandleResetActionMoveSelection(void);
static void PlayerPartnerHandleCmd55(void);
-static void nullsub_128(void);
+static void PlayerPartnerCmdEnd(void);
static void PlayerPartnerBufferRunCommand(void);
static void PlayerPartnerBufferExecCompleted(void);
@@ -167,7 +164,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
PlayerPartnerHandleLinkStandbyMsg,
PlayerPartnerHandleResetActionMoveSelection,
PlayerPartnerHandleCmd55,
- nullsub_128
+ PlayerPartnerCmdEnd
};
// unknown unused data
@@ -1928,6 +1925,6 @@ static void PlayerPartnerHandleCmd55(void)
gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
-static void nullsub_128(void)
+static void PlayerPartnerCmdEnd(void)
{
}
diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c
index 25e59172d..e43c5f8ae 100644
--- a/src/battle_controller_recorded_opponent.c
+++ b/src/battle_controller_recorded_opponent.c
@@ -33,9 +33,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
-extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
-extern u16 sub_8068B48(void);
-
// this file's functions
static void RecordedOpponentHandleGetMonData(void);
static void RecordedOpponentHandleGetRawMonData(void);
@@ -93,7 +90,7 @@ static void RecordedOpponentHandleBattleAnimation(void);
static void RecordedOpponentHandleLinkStandbyMsg(void);
static void RecordedOpponentHandleResetActionMoveSelection(void);
static void RecordedOpponentHandleCmd55(void);
-static void SpriteCB_Null9(void);
+static void RecordedOpponentCmdEnd(void);
static void RecordedOpponentBufferRunCommand(void);
static void RecordedOpponentBufferExecCompleted(void);
@@ -165,7 +162,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void
RecordedOpponentHandleLinkStandbyMsg,
RecordedOpponentHandleResetActionMoveSelection,
RecordedOpponentHandleCmd55,
- SpriteCB_Null9
+ RecordedOpponentCmdEnd
};
static void nullsub_70(void)
@@ -1791,6 +1788,6 @@ static void RecordedOpponentHandleCmd55(void)
gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
-static void SpriteCB_Null9(void)
+static void RecordedOpponentCmdEnd(void)
{
}
diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c
index b2dfca6a0..412c49f17 100644
--- a/src/battle_controller_recorded_player.c
+++ b/src/battle_controller_recorded_player.c
@@ -30,8 +30,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
-extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
-
// this file's functions
static void RecordedPlayerHandleGetMonData(void);
static void RecordedPlayerHandleGetRawMonData(void);
@@ -89,7 +87,7 @@ static void RecordedPlayerHandleBattleAnimation(void);
static void RecordedPlayerHandleLinkStandbyMsg(void);
static void RecordedPlayerHandleResetActionMoveSelection(void);
static void RecordedPlayerHandleCmd55(void);
-static void nullsub_121(void);
+static void RecordedPlayerCmdEnd(void);
static void RecordedPlayerBufferRunCommand(void);
static void RecordedPlayerBufferExecCompleted(void);
@@ -160,7 +158,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void)
RecordedPlayerHandleLinkStandbyMsg,
RecordedPlayerHandleResetActionMoveSelection,
RecordedPlayerHandleCmd55,
- nullsub_121
+ RecordedPlayerCmdEnd
};
static void nullsub_120(void)
@@ -1808,6 +1806,6 @@ static void RecordedPlayerHandleCmd55(void)
gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
-static void nullsub_121(void)
+static void RecordedPlayerCmdEnd(void)
{
}
diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c
index b7223844f..e9da16252 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle_controller_safari.c
@@ -25,8 +25,6 @@
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
-extern void sub_81358F4(void);
-
// this file's functions
static void SafariHandleGetMonData(void);
static void SafariHandleGetRawMonData(void);
@@ -84,7 +82,7 @@ static void SafariHandleBattleAnimation(void);
static void SafariHandleLinkStandbyMsg(void);
static void SafariHandleResetActionMoveSelection(void);
static void SafariHandleCmd55(void);
-static void SpriteCB_Null5(void);
+static void SafariCmdEnd(void);
static void SafariBufferRunCommand(void);
static void SafariBufferExecCompleted(void);
@@ -148,7 +146,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
SafariHandleLinkStandbyMsg,
SafariHandleResetActionMoveSelection,
SafariHandleCmd55,
- SpriteCB_Null5
+ SafariCmdEnd
};
static void SpriteCB_Null4(void)
@@ -688,6 +686,6 @@ static void SafariHandleCmd55(void)
gBattlerControllerFuncs[gActiveBattler] = sub_81595E4;
}
-static void SpriteCB_Null5(void)
+static void SafariCmdEnd(void)
{
}
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index a196f8a44..f1b783b21 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -33,8 +33,6 @@
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
-extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon);
-
// this file's functions
static void WallyHandleGetMonData(void);
static void WallyHandleGetRawMonData(void);
@@ -92,7 +90,7 @@ static void WallyHandleBattleAnimation(void);
static void WallyHandleLinkStandbyMsg(void);
static void WallyHandleResetActionMoveSelection(void);
static void WallyHandleCmd55(void);
-static void SpriteCB_Null8(void);
+static void WallyCmdEnd(void);
static void WallyBufferRunCommand(void);
static void WallyBufferExecCompleted(void);
@@ -161,7 +159,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
WallyHandleLinkStandbyMsg,
WallyHandleResetActionMoveSelection,
WallyHandleCmd55,
- SpriteCB_Null8
+ WallyCmdEnd
};
static void SpriteCB_Null7(void)
@@ -1559,6 +1557,6 @@ static void WallyHandleCmd55(void)
gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
-static void SpriteCB_Null8(void)
+static void WallyCmdEnd(void)
{
}
diff --git a/src/battle_main.c b/src/battle_main.c
index 853dafe01..2b0c5980e 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -57,6 +57,7 @@
#include "constants/songs.h"
#include "constants/species.h"
#include "constants/trainers.h"
+#include "cable_club.h"
extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern struct MusicPlayerInfo gMPlayInfo_SE2;
@@ -69,9 +70,6 @@ extern const u8 *const gBattlescriptsForRunningByItem[];
extern const u8 *const gBattlescriptsForUsingItem[];
extern const u8 *const gBattlescriptsForSafariActions[];
-// functions
-extern void sub_80B3AF8(u8 taskId); // cable club
-
// this file's functions
static void CB2_InitBattleInternal(void);
static void CB2_PreInitMultiBattle(void);
diff --git a/src/battle_records.c b/src/battle_records.c
index 6997e40dd..fdd915d07 100644
--- a/src/battle_records.c
+++ b/src/battle_records.c
@@ -21,8 +21,7 @@
#include "alloc.h"
#include "gpu_regs.h"
#include "constants/game_stat.h"
-
-extern void PrintOnTrainerHillRecordsWindow(void); // pokenav.s
+#include "trainer_hill.h"
// this file's functions
static void Task_CloseTrainerHillRecordsOnButton(u8 taskId);
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 620366b52..ac9fb3073 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -48,6 +48,7 @@
#include "battle_pyramid.h"
#include "field_specials.h"
#include "pokemon_summary_screen.h"
+#include "pokenav.h"
extern struct MusicPlayerInfo gMPlayInfo_BGM;
@@ -55,9 +56,6 @@ extern const u8* const gBattleScriptsForMoveEffects[];
// functions
extern void sub_81D388C(struct Pokemon* mon, void* statStoreLocation); // pokenav.s
-extern void sub_81D3640(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); // pokenav.s
-extern void sub_81D3784(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); // pokenav.s
-extern u8 sub_813B21C(void);
#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 40423697e..347486a0b 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -44,6 +44,7 @@
#include "mirage_tower.h"
#include "constants/map_types.h"
#include "constants/battle_frontier.h"
+#include "field_screen_effect.h"
enum
{
@@ -62,10 +63,6 @@ struct TrainerBattleParameter
u8 ptrType;
};
-extern void ClearPoisonStepCounter(void);
-extern void sub_808BCF4(void);
-extern void sub_80AF6F0(void);
-
// this file's functions
static void DoBattlePikeWildBattle(void);
static void DoSafariBattle(void);
diff --git a/src/battle_util.c b/src/battle_util.c
index fc6042b65..aa88cf952 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -1526,7 +1526,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
else
{
- BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack);
+ BattleScriptPush(BattleScript_MoveUsedIsInLoveCantAttack);
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
gProtectStructs[gBattlerAttacker].loveImmobility = 1;
CancelMultiTurnMoves(gBattlerAttacker);
diff --git a/src/berry.c b/src/berry.c
index bd596db7f..cbac06a3d 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -11,11 +11,9 @@
#include "text.h"
#include "constants/event_object_movement_constants.h"
#include "constants/items.h"
+#include "event_object_movement.h"
+
-extern u8 EventObjectGetBerryTreeId(u8 eventObjectId);
-extern void sub_8092EF0(u8 mapId, u8 mapNumber, u8 mapGroup);
-extern void CB2_ChooseBerry(void);
-extern bool8 IsBerryTreeSparkling(u8, u8, u8);
extern const u8 BerryTreeScript[];
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 8d852819b..450bcae42 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -142,9 +142,6 @@ extern const u8 gText_Space[];
extern const u8 gText_BlenderMaxSpeedRecord[];
extern const u8 gText_234Players[];
-extern void sub_81AABF0(void (*callback)(void));
-extern void sub_800B4C0(void);
-
// this file's functions
static void BerryBlender_SetBackgroundsPos(void);
static void sub_8080EA4(u8 taskId);
diff --git a/src/bike.c b/src/bike.c
index 1e91baab0..530742bdf 100644
--- a/src/bike.c
+++ b/src/bike.c
@@ -14,12 +14,6 @@
extern bool8 gBikeCyclingChallenge;
extern u8 gBikeCollisions;
-extern u8 sub_808B980(u8 direction);
-extern u8 sub_808B9BC(u8 direction);
-extern u8 sub_808B9A4(u8 direction);
-extern u8 sub_808C1B4(u8 direction);
-extern u8 sub_808B9D4(u8 direction);
-
// this file's functions
static void MovePlayerOnMachBike(u8, u16, u16);
static u8 GetMachBikeTransition(u8 *);
diff --git a/src/contest.c b/src/contest.c
index e9353596b..114a1fb69 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -45,8 +45,6 @@
#include "constants/rgb.h"
#include "contest_ai.h"
-extern void sub_80FC9F8(u8); // contest_link_80FC4F4.c
-
// This file's functions.
static void sub_80D782C(void);
static void sub_80D7C7C(u8 taskId);
diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c
index b2ce52757..a4b88c074 100644
--- a/src/contest_link_80F57C4.c
+++ b/src/contest_link_80F57C4.c
@@ -39,6 +39,7 @@
#include "constants/rgb.h"
#include "constants/songs.h"
#include "constants/vars.h"
+#include "contest.h"
struct ContestLinkUnk0
{
@@ -99,8 +100,6 @@ extern const struct SpriteSheet gUnknown_0858D810[];
extern const struct SpritePalette gUnknown_0858D850;
extern const struct SpriteTemplate gSpriteTemplate_858D860;
-extern void sub_81D9DE4(u8);
-
static void sub_80F6A9C(void);
static void sub_80F71C8(void);
u8 sub_80F7310(u8, u8);
diff --git a/src/dewford_trend.c b/src/dewford_trend.c
index cad5ef9c2..ee310af04 100644
--- a/src/dewford_trend.c
+++ b/src/dewford_trend.c
@@ -159,7 +159,7 @@ static void sub_8122804(struct EasyChatPair *s, u16 b, u8 c)
}
}
-void ReceiveEasyChatPairsData(void *a, u32 b, u8 unused)
+void ReceiveEasyChatPairsData(struct EasyChatPair *a, size_t size, u8 unused)
{
u16 i, j, r3, players;
struct EasyChatPair *buffer1, *buffer2, *src, *dst, *foo_of_buffer2;
@@ -176,7 +176,7 @@ void ReceiveEasyChatPairsData(void *a, u32 b, u8 unused)
{
players = GetLinkPlayerCount();
for (i = 0; i < players; i++)
- memcpy(&(buffer1[i * 5]), (u8 *)a + i * b, 40);
+ memcpy(&(buffer1[i * 5]), (u8 *)a + i * size, 40);
src = buffer1;
dst = buffer2;
r3 = 0;
diff --git a/src/diploma.c b/src/diploma.c
index 716495034..2113b09ed 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -13,8 +13,7 @@
#include "text.h"
#include "overworld.h"
#include "menu.h"
-
-extern bool16 sub_80C0944(void);
+#include "pokedex.h"
extern const u8 gText_DexNational[];
extern const u8 gText_DexHoenn[];
diff --git a/src/electric.c b/src/electric.c
index 142a9ca09..5e7729842 100644
--- a/src/electric.c
+++ b/src/electric.c
@@ -5,9 +5,6 @@
#include "constants/songs.h"
#include "sound.h"
-extern void sub_810E2C8(struct Sprite *);
-extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *);
-
static void sub_810A1A8(struct Sprite *);
static void sub_810A1F8(struct Sprite *);
static void sub_810A214(struct Sprite *);
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 8a7076591..680191bb3 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -32,8 +32,7 @@
#include "constants/map_types.h"
#include "constants/maps.h"
#include "constants/songs.h"
-
-extern bool32 TryStartMatchCall(void);
+#include "match_call.h"
static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0;
diff --git a/src/field_effect.c b/src/field_effect.c
index 158d4dead..ee9dcb987 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -240,12 +240,6 @@ static IWRAM_DATA u8 sActiveList[32];
extern u8 *gFieldEffectScriptPointers[];
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
-extern void sub_81555D8(u8, u8);
-extern void pal_fill_for_maplights(void);
-extern void sub_80E1558(u8);
-extern void sub_80E1570(void);
-extern bool8 sub_80E1584(void);
-extern void WarpFadeScreen(void);
// .rodata
const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp");
diff --git a/src/field_message_box.c b/src/field_message_box.c
index ac5e7a4bb..1c554b6c6 100755
--- a/src/field_message_box.c
+++ b/src/field_message_box.c
@@ -4,9 +4,7 @@
#include "string_util.h"
#include "task.h"
#include "text.h"
-
-extern bool32 IsMatchCallTaskActive(void);
-extern void StartMatchCallFromScript(u8*);
+#include "match_call.h"
static EWRAM_DATA u8 sFieldMessageBoxMode = 0;
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index 96e679dd7..a070fe0e1 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -2125,7 +2125,7 @@ void sub_808D194(void)
sub_808D1FC(CreateTask(sub_808D1FC, 0));
}
-bool8 sub_808D1B4(void)
+bool32 sub_808D1B4(void)
{
return FuncIsActiveTask(sub_808D1FC);
}
@@ -2135,7 +2135,7 @@ void sub_808D1C8(void)
sub_808D094(CreateTask(sub_808D094, 0));
}
-bool8 sub_808D1E8(void)
+bool32 sub_808D1E8(void)
{
return FuncIsActiveTask(sub_808D094);
}
diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c
index e7476dea3..b6dcf212c 100644
--- a/src/field_screen_effect.c
+++ b/src/field_screen_effect.c
@@ -10,7 +10,6 @@
#include "field_screen_effect.h"
#include "field_special_scene.h"
#include "field_weather.h"
-// #include "fldeff_flash.h"
#include "gpu_regs.h"
#include "link.h"
#include "link_rfu.h"
@@ -31,22 +30,9 @@
#include "constants/event_object_movement_constants.h"
#include "constants/songs.h"
#include "constants/rgb.h"
-
-extern bool32 sub_81D6534(void);
-extern bool8 walkrun_is_standing_still(void);
-extern void ScriptUnfreezeEventObjects(void);
-extern void sub_80FB768(void);
-extern void sub_808D194(void);
-extern void sub_808D1C8(void);
-extern bool32 sub_808D1B4(void);
-extern bool32 sub_808D1E8(void);
-extern void sub_80B6B68(void);
-extern void sub_80B6E4C(u8, u8);
-extern void sub_80B75D8(u8);
-extern void sub_80B7A74(u8);
-extern void sub_808C0A8(u8);
-extern u8 GetMapPairFadeToType(u8, u8);
-extern u8 GetMapPairFadeFromType(u8, u8);
+#include "trainer_hill.h"
+#include "event_obj_lock.h"
+#include "fldeff.h"
extern const u16 gUnknown_82EC7CC[];
diff --git a/src/field_specials.c b/src/field_specials.c
index a6e0ef746..436b06f53 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -55,6 +55,7 @@
#include "constants/vars.h"
#include "constants/battle_frontier.h"
#include "constants/weather.h"
+#include "palette.h"
EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE;
EWRAM_DATA u8 gBikeCollisions = 0;
@@ -80,9 +81,6 @@ extern const u16 gEventObjectPalette17[];
extern const u16 gEventObjectPalette33[];
extern const u16 gEventObjectPalette34[];
-extern void LoadPalette(const void *src, u32 offset, u16 size); // incorrect signature, needed to match
-extern void BlendPalettes(u32, u8, u16);
-extern void FieldInitRegionMap(MainCallback callback);
void UpdateMovedLilycoveFanClubMembers(void);
void sub_813BF60(void);
@@ -591,7 +589,9 @@ void SpawnLinkPartnerEventObject(void)
static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEventId, u8 paletteNum)
{
- paletteNum += 6;
+ u8 adjustedPaletteNum;
+ // Note: This temp var is necessary; paletteNum += 6 doesn't match.
+ adjustedPaletteNum = paletteNum + 6;
if (graphicsId == EVENT_OBJ_GFX_LINK_RS_BRENDAN ||
graphicsId == EVENT_OBJ_GFX_LINK_RS_MAY ||
graphicsId == EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL ||
@@ -602,21 +602,21 @@ static void LoadLinkPartnerEventObjectSpritePalette(u8 graphicsId, u8 localEvent
{
u8 spriteId = gEventObjects[obj].spriteId;
struct Sprite *sprite = &gSprites[spriteId];
- sprite->oam.paletteNum = paletteNum;
+ sprite->oam.paletteNum = adjustedPaletteNum;
switch (graphicsId)
{
case EVENT_OBJ_GFX_LINK_RS_BRENDAN:
- LoadPalette(gEventObjectPalette33, 0x100 + paletteNum * 16, 0x20);
+ LoadPalette(gEventObjectPalette33, 0x100 + (adjustedPaletteNum << 4), 0x20);
break;
case EVENT_OBJ_GFX_LINK_RS_MAY:
- LoadPalette(gEventObjectPalette34, 0x100 + paletteNum * 16, 0x20);
+ LoadPalette(gEventObjectPalette34, 0x100 + (adjustedPaletteNum << 4), 0x20);
break;
case EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL:
- LoadPalette(gEventObjectPalette8, 0x100 + paletteNum * 16, 0x20);
+ LoadPalette(gEventObjectPalette8, 0x100 + (adjustedPaletteNum << 4), 0x20);
break;
case EVENT_OBJ_GFX_RIVAL_MAY_NORMAL:
- LoadPalette(gEventObjectPalette17, 0x100 + paletteNum * 16, 0x20);
+ LoadPalette(gEventObjectPalette17, 0x100 + (adjustedPaletteNum << 4), 0x20);
break;
}
}
@@ -3379,7 +3379,7 @@ u16 get_unknown_box_id(void)
return gUnknown_0203AB6F;
}
-bool32 sub_813B21C(void)
+bool8 sub_813B21C(void)
{
if (FlagGet(FLAG_SYS_STORAGE_UNKNOWN_FLAG) == FALSE)
{
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index 348a1f46c..a715608c5 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -20,7 +20,6 @@
#include "constants/field_effects.h"
#include "constants/songs.h"
-extern void ScriptUnfreezeEventObjects(void);
extern bool8 IsMewPlayingHideAndSeek(void);
extern struct MapPosition gPlayerFacingPosition;
diff --git a/src/flying.c b/src/flying.c
index 7f48e57cb..a157582e9 100644
--- a/src/flying.c
+++ b/src/flying.c
@@ -108,7 +108,7 @@ const union AffineAnimCmd gUnknown_085962EC[] =
const union AffineAnimCmd *const gUnknown_08596314[] =
{
- gUnknown_085962EC,
+ gUnknown_085962EC,
};
const union AffineAnimCmd gUnknown_08596318[] =
@@ -357,7 +357,8 @@ void sub_810DE70(struct Sprite *sprite)
sprite->callback(sprite);
}
-static void sub_810DE98(struct Sprite *sprite) {
+static void sub_810DE98(struct Sprite *sprite)
+{
sprite->pos2.x = Sin(sprite->data[1], 32);
sprite->pos2.y = Cos(sprite->data[1], 8);
sprite->data[1] += 5;
@@ -392,8 +393,7 @@ static void sub_810DF18(u8 taskId)
{
gPlttBufferFaded[base + 0x101 + i] = gPlttBufferFaded[base + 0x100 + i];
i--;
- }
- while (i > 0);
+ } while (i > 0);
gPlttBufferFaded[base + 0x101] = temp;
}
@@ -524,7 +524,9 @@ static void sub_810E24C(struct Sprite *sprite)
sprite->data[3] &= 0xFF;
}
- if ((u32)(sprite->pos1.x + sprite->pos2.x + 32) > 304 || sprite->pos1.y + sprite->pos2.y > 160)
+ if (sprite->pos1.x + sprite->pos2.x < -32
+ || sprite->pos1.x + sprite->pos2.x > 272
+ || sprite->pos1.y + sprite->pos2.y > 160)
{
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = 0;
DestroyAnimSprite(sprite);
@@ -546,56 +548,62 @@ void sub_810E2C8(struct Sprite *sprite)
}
}
-// FAKEMATCHING
+struct FeatherDanceData
+{
+ u8 unk0_0a:1;
+ u8 unk0_0b:1;
+ u8 unk0_0c:1;
+ u8 unk0_0d:1;
+ u8 unk0_1:4;
+ u8 unk1;
+ u16 unk2;
+ s16 unk4;
+ u16 unk6;
+ u16 unk8;
+ u16 unkA;
+ u8 unkC[2];
+ u16 unkE_0:1;
+ u16 unkE_1:15;
+};
+
void sub_810E314(struct Sprite *sprite)
{
- s16 *data;
- u8 slot;
- s16 spriteCoord;
- int t1, t2;
- u32 arg2;
- u32 matrixNum;
- u8 sinIndex;
- register s16 sinVal asm ("r4");
- register int sinVal2 asm ("r0");
+ u8 battler, matrixNum, sinIndex;
+ s16 spriteCoord, sinVal;
- data = sprite->data;
+ struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data;
if (gBattleAnimArgs[7] & 0x100)
- slot = gBattleAnimAttacker;
+ battler = gBattleAnimAttacker;
else
- slot = gBattleAnimTarget;
+ battler = gBattleAnimTarget;
- if (GetBattlerSide(slot) == B_SIDE_PLAYER)
+ if (GetBattlerSide(battler) == B_SIDE_PLAYER)
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
- sprite->pos1.x = GetBattlerSpriteCoord(slot, 0) + gBattleAnimArgs[0];
- spriteCoord = GetBattlerSpriteCoord(slot, 1);
+ sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_HEIGHT) + gBattleAnimArgs[0];
+ spriteCoord = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_WIDTH);
sprite->pos1.y = spriteCoord + gBattleAnimArgs[1];
- data[4] = sprite->pos1.y << 8;
- t1 = (spriteCoord + (u16) gBattleAnimArgs[6]) << 1;
- data[7] = (data[7] & 1) | t1;
- ((u8 *) data)[0] |= 4;
+ data->unk8 = sprite->pos1.y << 8;
+ data->unkE_1 = spriteCoord + gBattleAnimArgs[6];
+ data->unk0_0c = 1;
+ data->unk2 = gBattleAnimArgs[2] & 0xFF;
+ data->unkA = (gBattleAnimArgs[2] >> 8) & 0xFF;
+ data->unk4 = gBattleAnimArgs[3];
+ data->unk6 = gBattleAnimArgs[4];
+ *(u16*)(data->unkC) = gBattleAnimArgs[5];
- arg2 = (u16) gBattleAnimArgs[2];
- data[1] = (u8) gBattleAnimArgs[2];
- arg2 <<= 16;
- data[5] = arg2 >> 24;
- data[2] = gBattleAnimArgs[3];
- data[3] = gBattleAnimArgs[4];
- data[6] = gBattleAnimArgs[5];
-
- if ((u16) (data[1] - 64) <= 0x7f)
+ if (data->unk2 >= 64 && data->unk2 <= 191)
{
if (!IsContest())
- sprite->oam.priority = GetBattlerSpriteBGPriority(slot) + 1;
+ sprite->oam.priority = GetBattlerSpriteBGPriority(battler) + 1;
else
- sprite->oam.priority = GetBattlerSpriteBGPriority(slot);
+ sprite->oam.priority = GetBattlerSpriteBGPriority(battler);
- ((u8 *) data)[14] = data[7] & -2;
+ data->unkE_0 = 0;
- if (!(data[2] & 0x8000))
+ if (!(data->unk4 & 0x8000))
{
sprite->hFlip ^= 1;
sprite->animNum = sprite->hFlip;
@@ -606,10 +614,10 @@ void sub_810E314(struct Sprite *sprite)
}
else
{
- sprite->oam.priority = GetBattlerSpriteBGPriority(slot);
- ((u8 *) data)[14] |= 1;
+ sprite->oam.priority = GetBattlerSpriteBGPriority(battler);
+ data->unkE_0 = 1;
- if (data[2] & 0x8000)
+ if (data->unk4 & 0x8000)
{
sprite->hFlip ^= 1;
sprite->animNum = sprite->hFlip;
@@ -619,24 +627,243 @@ void sub_810E314(struct Sprite *sprite)
}
}
- t2 = (u16) data[1] >> 6 << 4;
- ((u8 *) data)[0] = (15 & data[0]) | t2;
-
- sprite->pos2.x = (gSineTable[(u16) data[1]] * (u8) data[6]) >> 8;
-
+ data->unk0_1 = data->unk2 >> 6;
+ sprite->pos2.x = (gSineTable[data->unk2] * data->unkC[0]) >> 8;
matrixNum = sprite->oam.matrixNum;
- sinIndex = (-sprite->pos2.x >> 1) + data[5];
+ sinIndex = (-sprite->pos2.x >> 1) + data->unkA;
sinVal = gSineTable[sinIndex];
gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64];
- gOamMatrices[matrixNum].b = sinVal;
- sinVal2 = -sinVal;
- gOamMatrices[matrixNum].c = sinVal2;
+ // The comparison below is completely pointless. 'sprite' is sure to be a valid pointer and
+ // both the 'if' and 'else' parts are exactly the same.
+ // The only reason for this is making sure the compiler generates the exact ASM.
+ if (sprite)
+ {
+ gOamMatrices[matrixNum].b = sinVal;
+ gOamMatrices[matrixNum].c = -sinVal;
+ }
+ else
+ {
+ gOamMatrices[matrixNum].b = sinVal;
+ gOamMatrices[matrixNum].c = -sinVal;
+ }
sprite->callback = sub_810E520;
}
+#ifdef NONMATCHING
+/*
+Things I can't get to match:
+1. data->unk0_1 bitfield behaviour. The way bits are read is different.
+2. sprite->oam.priority--; sprite->oam.priority++; Nonmatching version tail-merges these, original does not.
+3. sprite->pos2.x = (gSineTable[data->unk2] * var) >> 8; data->unk2 is very weirdly read at seemingly random moments inside the switch.
+4. sinVal r6/r7 mismatch.
+*/
+void sub_810E520(struct Sprite *sprite)
+{
+ u8 matrixNum, sinIndex, var;
+ s16 sinVal = 0;
+ struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data;
+
+ if (data->unk0_0a)
+ {
+ if (data->unk1-- % 256 == 0)
+ {
+ data->unk0_0a = 0;
+ data->unk1 = 0;
+ }
+ }
+ else
+ {
+ switch (data->unk2 >> 6)
+ {
+ case 0:
+ if (data->unk0_1 == 1)
+ {
+ data->unk0_0d = 1;
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_1 == 3)
+ {
+ data->unk0_0b ^= 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_0d)
+ {
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+ sprite->animBeginning = 1;
+ sprite->animEnded = 0;
+ if (data->unk0_0c)
+ {
+ if (!IsContest())
+ {
+ if (!data->unkE_0)
+ sprite->oam.priority--;
+ else
+ sprite->oam.priority++;
+ }
+ else
+ {
+ if (!data->unkE_0)
+ sprite->subpriority -= 12;
+ else
+ sprite->subpriority += 12;
+ }
+ data->unkE_0 ^= 1;
+ }
+ data->unk0_0d = 0;
+ }
+ data->unk0_1 = 0;
+ break;
+ case 1:
+ if (data->unk0_1 == 0)
+ {
+ data->unk0_0d = 1;
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_1 == 2)
+ {
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_0d)
+ {
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+ sprite->animBeginning = 1;
+ sprite->animEnded = 0;
+ if (data->unk0_0c)
+ {
+ if (!IsContest())
+ {
+ if (!data->unkE_0)
+ sprite->oam.priority--;
+ else
+ sprite->oam.priority++;
+ }
+ else
+ {
+ if (!data->unkE_0)
+ sprite->subpriority -= 12;
+ else
+ sprite->subpriority += 12;
+ }
+ data->unkE_0 ^= 1;
+ }
+ data->unk0_0d = 0;
+ }
+ data->unk0_1 = 1;
+ break;
+ case 2:
+ if (data->unk0_1 == 0)
+ {
+ data->unk0_0d = 1;
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_1 == 2)
+ {
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_0d)
+ {
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+ sprite->animBeginning = 1;
+ sprite->animEnded = 0;
+ if (data->unk0_0c)
+ {
+ if (!IsContest())
+ {
+ if (!data->unkE_0)
+ sprite->oam.priority--;
+ else
+ sprite->oam.priority++;
+ }
+ else
+ {
+ if (!data->unkE_0)
+ sprite->subpriority -= 12;
+ else
+ sprite->subpriority += 12;
+ }
+ data->unkE_0 ^= 1;
+ }
+ data->unk0_0d = 0;
+ }
+ data->unk0_1 = 2;
+ break;
+ case 3:
+ if (data->unk0_1 == 2)
+ {
+ data->unk0_0d = 1;
+ }
+ else if (data->unk0_1 == 0)
+ {
+ data->unk0_0b ^= 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_0d)
+ {
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+ sprite->animBeginning = 1;
+ sprite->animEnded = 0;
+ if (data->unk0_0c)
+ {
+ if (!IsContest())
+ {
+ if (!data->unkE_0)
+ sprite->oam.priority--;
+ else
+ sprite->oam.priority++;
+ }
+ else
+ {
+ if (!data->unkE_0)
+ sprite->subpriority -= 12;
+ else
+ sprite->subpriority += 12;
+ }
+ data->unkE_0 ^= 1;
+ }
+ data->unk0_0d = 0;
+ }
+ data->unk0_1 = 3;
+ break;
+ }
+
+ var = data->unkC[data->unk0_0b];
+ sprite->pos2.x = (gSineTable[data->unk2] * var) >> 8;
+ matrixNum = sprite->oam.matrixNum;
+
+ sinIndex = (-sprite->pos2.x >> 1) + data->unkA;
+ sinVal = gSineTable[sinIndex];
+
+ gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64];
+ gOamMatrices[matrixNum].b = sinVal;
+ gOamMatrices[matrixNum].c = -sinVal;
+
+ data->unk8 += data->unk6;
+ sprite->pos1.y = data->unk8 >> 8;
+ if (data->unk4 & 0x8000)
+ data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF;
+ else
+ data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF;
+
+ if (sprite->pos1.y + sprite->pos2.y > data->unkE_1)
+ {
+ sprite->data[0] = 0;
+ sprite->callback = sub_810E2C8;
+ }
+ }
+}
+#else
NAKED
void sub_810E520(struct Sprite *sprite)
{
@@ -1345,6 +1572,7 @@ _0810EA36:\n\
.pool\n\
");
}
+#endif
void sub_810EA4C(struct Sprite *sprite)
{
@@ -1363,7 +1591,7 @@ void sub_810EAA0(struct Sprite * sprite)
InitSpritePosToAnimAttacker(sprite, 0);
else
InitSpritePosToAnimTarget(sprite, FALSE);
-
+
if ((!gBattleAnimArgs[2] && !GetBattlerSide(gBattleAnimAttacker))
|| (gBattleAnimArgs[2] == 1 && !GetBattlerSide(gBattleAnimTarget)))
{
@@ -1424,14 +1652,15 @@ void sub_810EC34(struct Sprite *sprite)
{
switch (sprite->data[0])
{
- case 0:
- InitSpritePosToAnimAttacker(sprite, 1);
- gSprites[GetAnimBattlerSpriteId(0)].invisible = 1;
- ++sprite->data[0];
- break;
- case 1:
- if (sprite->affineAnimEnded)
- DestroyAnimSprite(sprite);
+ case 0:
+ InitSpritePosToAnimAttacker(sprite, 1);
+ gSprites[GetAnimBattlerSpriteId(0)].invisible = 1;
+ ++sprite->data[0];
+ break;
+ case 1:
+ if (sprite->affineAnimEnded)
+ DestroyAnimSprite(sprite);
+ break;
}
}
@@ -1439,23 +1668,24 @@ void sub_810EC94(struct Sprite *sprite)
{
switch (sprite->data[0])
{
- case 0:
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
- sprite->pos2.y = -sprite->pos1.y - 32;
- sprite->data[0]++;
- break;
- case 1:
- sprite->pos2.y += 10;
- if (sprite->pos2.y >= 0)
- ++sprite->data[0];
- break;
- case 2:
- sprite->pos2.y -= 10;
- if (sprite->pos1.y + sprite->pos2.y < -32)
- {
- gSprites[GetAnimBattlerSpriteId(0)].invisible = 0;
- DestroyAnimSprite(sprite);
- }
+ case 0:
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
+ sprite->pos2.y = -sprite->pos1.y - 32;
+ sprite->data[0]++;
+ break;
+ case 1:
+ sprite->pos2.y += 10;
+ if (sprite->pos2.y >= 0)
+ ++sprite->data[0];
+ break;
+ case 2:
+ sprite->pos2.y -= 10;
+ if (sprite->pos1.y + sprite->pos2.y < -32)
+ {
+ gSprites[GetAnimBattlerSpriteId(0)].invisible = 0;
+ DestroyAnimSprite(sprite);
+ }
+ break;
}
}
@@ -1471,7 +1701,9 @@ void sub_810ED28(struct Sprite *sprite)
void sub_810ED70(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
+ }
else if (sprite->pos1.y + sprite->pos2.y > -32)
{
sprite->data[2] += sprite->data[1];
@@ -1496,210 +1728,79 @@ void sub_810EDD0(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
-#ifdef NONMATCHING
void sub_810EE14(struct Sprite *sprite)
{
- // NONMATCHING - Functionally equivalent - slight register swap at end
-
u32 matrixNum;
int t1, t2;
-
+
switch (sprite->data[0])
{
- case 0:
- if (!gBattleAnimArgs[0])
- {
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
- }
- else
- {
- sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
- sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
- }
+ case 0:
+ if (!gBattleAnimArgs[0])
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
+ }
+ else
+ {
+ sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
+ sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
+ }
- sprite->data[1] = 512;
+ sprite->data[1] = 512;
- TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0);
- sprite->data[0]++;
- break;
- case 1:
- if (sprite->data[2] <= 11)
- sprite->data[1] -= 40;
- else
- sprite->data[1] += 40;
-
- sprite->data[2]++;
-
- TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0);
-
- matrixNum = sprite->oam.matrixNum;
-
- t1 = 15616;
- t2 = t1 / gOamMatrices[matrixNum].d + 1;
-
- if (t2 > 128)
- t2 = 128;
-
-
- /* NONMATCHING
- * compiles to:
- * asr r0, r0, #0x1
- strh r0, [r5, #0x26]
- * needed:
- * asrs r1, r0, 1
- * strh r1, [r5, 0x26] */
- sprite->pos2.y = (64 - t2) / 2;
-
- if (sprite->data[2] == 24)
- {
- sub_80A749C(sprite);
- DestroyAnimSprite(sprite);
- }
- }
-}
+ TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0);
+ sprite->data[0]++;
+ break;
+ case 1:
+ if (sprite->data[2] <= 11)
+ sprite->data[1] -= 40;
+ else
+ sprite->data[1] += 40;
-#else
-NAKED
-void sub_810EE14(struct Sprite *sprite)
-{
- asm_unified("push {r4,r5,lr}\n\
- sub sp, 0x4\n\
- adds r5, r0, 0\n\
- movs r1, 0x2E\n\
- ldrsh r0, [r5, r1]\n\
- cmp r0, 0\n\
- beq _0810EE28\n\
- cmp r0, 0x1\n\
- beq _0810EE80\n\
- b _0810EEEC\n\
-_0810EE28:\n\
- ldr r0, =gBattleAnimArgs\n\
- movs r2, 0\n\
- ldrsh r0, [r0, r2]\n\
- cmp r0, 0\n\
- bne _0810EE40\n\
- ldr r4, =gBattleAnimAttacker\n\
- b _0810EE42\n\
- .pool\n\
-_0810EE40:\n\
- ldr r4, =gBattleAnimTarget\n\
-_0810EE42:\n\
- ldrb r0, [r4]\n\
- movs r1, 0\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r5, 0x20]\n\
- ldrb r0, [r4]\n\
- movs r1, 0x1\n\
- bl GetBattlerSpriteCoord\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r5, 0x22]\n\
- movs r0, 0\n\
- movs r3, 0x80\n\
- lsls r3, 2\n\
- strh r3, [r5, 0x30]\n\
- movs r2, 0x80\n\
- lsls r2, 1\n\
- str r0, [sp]\n\
- adds r0, r5, 0\n\
- movs r1, 0\n\
- bl TrySetSpriteRotScale\n\
- ldrh r0, [r5, 0x2E]\n\
- adds r0, 0x1\n\
- strh r0, [r5, 0x2E]\n\
- b _0810EEEC\n\
- .pool\n\
-_0810EE80:\n\
- movs r1, 0x32\n\
- ldrsh r0, [r5, r1]\n\
- cmp r0, 0xB\n\
- bgt _0810EE8E\n\
- ldrh r0, [r5, 0x30]\n\
- subs r0, 0x28\n\
- b _0810EE92\n\
-_0810EE8E:\n\
- ldrh r0, [r5, 0x30]\n\
- adds r0, 0x28\n\
-_0810EE92:\n\
- strh r0, [r5, 0x30]\n\
- ldrh r0, [r5, 0x32]\n\
- adds r0, 0x1\n\
- movs r1, 0\n\
- strh r0, [r5, 0x32]\n\
- movs r2, 0x80\n\
- lsls r2, 1\n\
- movs r0, 0x30\n\
- ldrsh r3, [r5, r0]\n\
- str r1, [sp]\n\
- adds r0, r5, 0\n\
- bl TrySetSpriteRotScale\n\
- ldrb r1, [r5, 0x3]\n\
- lsls r1, 26\n\
- lsrs r1, 27\n\
- movs r0, 0xF4\n\
- lsls r0, 6\n\
- ldr r2, =gOamMatrices\n\
- lsls r1, 3\n\
- adds r1, r2\n\
- movs r2, 0x6\n\
- ldrsh r1, [r1, r2]\n\
- bl __divsi3\n\
- adds r1, r0, 0x1\n\
- cmp r1, 0x80\n\
- ble _0810EECC\n\
- movs r1, 0x80\n\
-_0810EECC:\n\
- movs r0, 0x40\n\
- subs r0, r1\n\
- lsrs r1, r0, 31\n\
- adds r0, r1\n\
- asrs r1, r0, 1\n\
- strh r1, [r5, 0x26]\n\
- movs r1, 0x32\n\
- ldrsh r0, [r5, r1]\n\
- cmp r0, 0x18\n\
- bne _0810EEEC\n\
- adds r0, r5, 0\n\
- bl sub_80A749C\n\
- adds r0, r5, 0\n\
- bl DestroyAnimSprite\n\
-_0810EEEC:\n\
- add sp, 0x4\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n");
+ sprite->data[2]++;
+
+ TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0);
+
+ matrixNum = sprite->oam.matrixNum;
+
+ t1 = 15616;
+ t2 = t1 / gOamMatrices[matrixNum].d + 1;
+
+ if (t2 > 128)
+ t2 = 128;
+
+ t2 = (64 - t2) / 2;
+ sprite->pos2.y = t2;
+
+ if (sprite->data[2] == 24)
+ {
+ sub_80A749C(sprite);
+ DestroyAnimSprite(sprite);
+ }
+ break;
+ }
}
-#endif
void sub_810EEF8(struct Sprite *sprite)
{
- int v1, v2;
-
- v1 = 0x1ff & Random2();
- v2 = 0x7f & Random2();
+ int v1 = 0x1ff & Random2();
+ int v2 = 0x7f & Random2();
if (v1 % 2)
sprite->data[0] = 736 + v1;
-
else
sprite->data[0] = 736 - v1;
-
if (v2 % 2)
sprite->data[1] = 896 + v2;
-
else
sprite->data[1] = 896 - v2;
-
+
sprite->data[2] = gBattleAnimArgs[0];
if (sprite->data[2])
sprite->oam.matrixNum = 8;
-
if (gBattleAnimArgs[1] == 0)
{
@@ -1733,7 +1834,6 @@ void sub_810EFA8(struct Sprite *sprite)
if (sprite->data[0] < 0)
sprite->data[0] = 0;
-
if (++sprite->data[3] == 31)
DestroyAnimSprite(sprite);
@@ -1750,27 +1850,26 @@ void sub_810F018(struct Sprite *sprite)
{
switch (sprite->data[0])
{
- case 0:
- if (++sprite->data[1] > 8)
- {
- sprite->data[1] = 0;
- sprite->invisible ^= 1;
- if (++sprite->data[2] > 5 && sprite->invisible)
- sprite->data[0]++;
- }
- break;
- case 1:
- DestroyAnimSprite(sprite);
+ case 0:
+ if (++sprite->data[1] > 8)
+ {
+ sprite->data[1] = 0;
+ sprite->invisible ^= 1;
+ if (++sprite->data[2] > 5 && sprite->invisible)
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ DestroyAnimSprite(sprite);
+ break;
}
}
void sub_810F084(struct Sprite *sprite)
{
- s16 posx, posy;
u16 rotation;
-
- posx = sprite->pos1.x;
- posy = sprite->pos1.y;
+ s16 posx = sprite->pos1.x;
+ s16 posy = sprite->pos1.y;
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
@@ -1797,7 +1896,8 @@ void sub_810F140(struct Sprite *sprite)
sprite->pos1.x = sprite->data[4] >> 4;
sprite->pos1.y = sprite->data[5] >> 4;
- if ((u16) (sprite->pos1.x + 0x2d) > 0x14a || sprite->pos1.y > 0x9d || sprite->pos1.y < -0x2d)
+ if (sprite->pos1.x > 285 || sprite->pos1.x < -45
+ || sprite->pos1.y > 157 || sprite->pos1.y < -45)
DestroySpriteAndMatrix(sprite);
}
diff --git a/src/frontier_util.c b/src/frontier_util.c
index 0c68bf119..bce7b926f 100644
--- a/src/frontier_util.c
+++ b/src/frontier_util.c
@@ -35,8 +35,7 @@
#include "constants/moves.h"
#include "constants/items.h"
#include "constants/event_objects.h"
-
-extern u8 gSelectedOrderFromParty[];
+#include "party_menu.h"
struct FrontierBrainMon
{
@@ -48,8 +47,6 @@ struct FrontierBrainMon
u16 moves[4];
};
-extern void sub_81B8558(void);
-
// This file's functions.
static void sub_81A17A0(void);
static void sub_81A1830(void);
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 53577e166..2c31dba01 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -66,8 +66,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM;
#define HALL_OF_FAME_MAX_TEAMS 50
-extern void ReturnFromHallOfFamePC(void);
-
// this file's functions
static void ClearVramOamPltt_LoadHofPal(void);
static void sub_8174F70(void);
diff --git a/src/hof_pc.c b/src/hof_pc.c
index 2cea5540a..d76f04372 100644
--- a/src/hof_pc.c
+++ b/src/hof_pc.c
@@ -7,10 +7,6 @@
#include "script_menu.h"
#include "task.h"
-extern void Overworld_PlaySpecialMapMusic(void);
-extern bool16 ScrSpecial_CreatePCMenu(void);
-extern void ScriptMenu_DisplayPCStartupPrompt(void);
-
static void ReshowPCMenuAfterHallOfFamePC(void);
static void Task_WaitForPaletteFade(u8);
diff --git a/src/ice.c b/src/ice.c
index 34ad572e8..fa1913b96 100644
--- a/src/ice.c
+++ b/src/ice.c
@@ -21,30 +21,29 @@ struct HailStruct {
};
static void sub_810B6C4(struct Sprite *);
-extern void sub_810B848(struct Sprite *);
-extern void AnimIcePunchSwirlingParticle(struct Sprite *);
-extern void AnimIceBeamParticle(struct Sprite *);
-extern void AnimIceEffectParticle(struct Sprite *);
-extern void AnimFlickerIceEffectParticle(struct Sprite *);
-extern void AnimSwirlingSnowball_Step1(struct Sprite *);
-extern void AnimSwirlingSnowball_Step2(struct Sprite *);
-extern void AnimSwirlingSnowball_Step3(struct Sprite *);
-extern void AnimSwirlingSnowball_End(struct Sprite *);
-extern void AnimMoveParticleBeyondTarget(struct Sprite *);
-extern void AnimWiggleParticleTowardsTarget(struct Sprite *);
-extern void AnimWaveFromCenterOfTarget(struct Sprite *);
-extern void InitSwirlingFogAnim(struct Sprite *);
-extern void AnimSwirlingFogAnim(struct Sprite *);
-extern void AnimThrowMistBall(struct Sprite *);
-extern void InitPoisonGasCloudAnim(struct Sprite *);
-extern void MovePoisonGasCloud(struct Sprite *);
-extern void AnimHailBegin(struct Sprite *);
-extern void AnimHailContinue(struct Sprite *);
-extern void sub_80A8EE4(struct Sprite *);
-extern void InitIceBallAnim(struct Sprite *);
-extern void AnimThrowIceBall(struct Sprite *);
-extern void InitIceBallParticle(struct Sprite *);
-extern void AnimIceBallParticle(struct Sprite *);
+void sub_810B848(struct Sprite *);
+void AnimIcePunchSwirlingParticle(struct Sprite *);
+void AnimIceBeamParticle(struct Sprite *);
+void AnimIceEffectParticle(struct Sprite *);
+void AnimFlickerIceEffectParticle(struct Sprite *);
+void AnimSwirlingSnowball_Step1(struct Sprite *);
+void AnimSwirlingSnowball_Step2(struct Sprite *);
+void AnimSwirlingSnowball_Step3(struct Sprite *);
+void AnimSwirlingSnowball_End(struct Sprite *);
+void AnimMoveParticleBeyondTarget(struct Sprite *);
+void AnimWiggleParticleTowardsTarget(struct Sprite *);
+void AnimWaveFromCenterOfTarget(struct Sprite *);
+void InitSwirlingFogAnim(struct Sprite *);
+void AnimSwirlingFogAnim(struct Sprite *);
+void AnimThrowMistBall(struct Sprite *);
+void InitPoisonGasCloudAnim(struct Sprite *);
+void MovePoisonGasCloud(struct Sprite *);
+void AnimHailBegin(struct Sprite *);
+void AnimHailContinue(struct Sprite *);
+void InitIceBallAnim(struct Sprite *);
+void AnimThrowIceBall(struct Sprite *);
+void InitIceBallParticle(struct Sprite *);
+void AnimIceBallParticle(struct Sprite *);
void AnimTask_Haze2(u8);
void AnimTask_OverlayFogTiles(u8);
void AnimTask_Hail2(u8);
diff --git a/src/item_menu.c b/src/item_menu.c
index 5b9946e62..5738757bd 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -141,7 +141,6 @@ void unknown_ItemMenu_Confirm2(u8 taskId);
void unknown_item_menu_type(u8 taskId);
void item_menu_type_2(u8 taskId);
void display_sell_item_ask_str(u8 taskId);
-void unknown_ItemMenu_Confirm(u8 taskId);
void display_deposit_item_ask_str(u8 taskId);
void item_menu_type_b(u8 taskId);
void BagMenuActuallyToss(u8 taskId);
@@ -476,7 +475,7 @@ void CB2_ChooseBerry(void)
GoToBagMenu(RETURN_LOCATION_FIELD_2, BERRIES_POCKET, CB2_ReturnToFieldContinueScript);
}
-void sub_81AABF0(void(*callback)(void))
+void sub_81AABF0(void (*callback)(void))
{
GoToBagMenu(RETURN_LOCATION_FIELD_3, BERRIES_POCKET, callback);
}
diff --git a/src/item_use.c b/src/item_use.c
index 2281cc198..e646a18ee 100755
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -8,13 +8,15 @@
#include "coins.h"
#include "data2.h"
#include "event_data.h"
-#include "fieldmap.h"
#include "event_object_movement.h"
+#include "fieldmap.h"
+#include "field_effect.h"
#include "field_player_avatar.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "item.h"
#include "item_menu.h"
+#include "item_use.h"
#include "mail.h"
#include "main.h"
#include "menu.h"
@@ -37,31 +39,15 @@
#include "constants/items.h"
#include "constants/songs.h"
#include "constants/vars.h"
+#include "event_obj_lock.h"
-extern void unknown_ItemMenu_Confirm(u8 taskId);
-extern void sub_81C5B14(u8 taskId);
-extern void ScriptUnfreezeEventObjects(void);
-extern void ItemUseOutOfBattle_TMHM(u8 a);
-extern void ItemUseOutOfBattle_EvolutionStone(u8 b);
-extern bool8 IsPlayerFacingSurfableFishableWater(void);
-extern bool8 sub_81221AC(void);
extern u8 Route102_EventScript_274482[];
extern u8 Route102_EventScript_2744C0[];
extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[];
-extern int sub_80247BC(void);
-extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection);
-extern void SetUpItemUseCallback(u8 taskId);
-extern void ItemUseCB_Medicine(u8, TaskFunc);
-extern void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*);
-extern void sub_81C5924(void);
-extern void sub_81C59BC(void);
-extern void sub_81AB9A8(u8);
-extern void StartEscapeRopeFieldEffect(void);
-extern u8* sub_806CF78(u16);
-extern void sub_81B89F0(void);
-extern u8 GetItemEffectType(u16);
-extern struct MapConnection *sub_8088A8C(s16, s16);
+extern s32 sub_80247BC(void);
+
+void SetUpItemUseCallback(u8 taskId);
void MapPostLoadHook_UseItem(void);
void sub_80AF6D4(void);
void Task_CallItemUseOnFieldCallback(u8 taskId);
@@ -404,12 +390,12 @@ bool8 sub_80FD6D4(const struct MapEvents *events, s16 x, s16 y)
bool8 sub_80FD730(struct MapConnection *connection, int x, int y)
{
- struct MapHeader *mapHeader;
+
u16 localX, localY;
u32 localOffset;
s32 localLength;
- mapHeader = mapconnection_get_mapheader(connection);
+ struct MapHeader const *const mapHeader = mapconnection_get_mapheader(connection);
switch (connection->direction)
{
diff --git a/src/link.c b/src/link.c
index a49ffaca8..525d50d7c 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1893,7 +1893,7 @@ u32 GetLinkRecvQueueLength(void)
return gLink.recvQueue.count;
}
-bool8 sub_800B504(void)
+bool32 sub_800B504(void)
{
if (GetLinkRecvQueueLength() > 2)
{
diff --git a/src/link_rfu.c b/src/link_rfu.c
index 8da6b166a..d80ff2ae9 100644
--- a/src/link_rfu.c
+++ b/src/link_rfu.c
@@ -17,9 +17,9 @@
#include "text.h"
#include "constants/species.h"
#include "save.h"
+#include "rom_8011DC0.h"
extern u16 gHeldKeyCodeToSend;
-extern void nullsub_89(u8 taskId);
struct UnkRfuStruct_1 gUnknown_03004140;
struct UnkRfuStruct_2 gUnknown_03005000;
diff --git a/src/load_save.c b/src/load_save.c
index 7d307ec1b..d6785254f 100644
--- a/src/load_save.c
+++ b/src/load_save.c
@@ -11,10 +11,10 @@
#include "trainer_hill.h"
#include "gba/flash_internal.h"
#include "decoration_inventory.h"
+#include "agb_flash.h"
static void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey);
-extern bool16 IdentifyFlash(void);
extern void ApplyNewEncryptionKeyToBerryPowder(u32 key);
#define SAVEBLOCK_MOVE_RANGE 128
diff --git a/src/main.c b/src/main.c
index 3049f4f90..40381bb68 100644
--- a/src/main.c
+++ b/src/main.c
@@ -24,9 +24,6 @@
#include "main.h"
#include "trainer_hill.h"
-extern void sub_800B9B8(void);
-extern u8 gUnknown_03002748;
-
static void VBlankIntr(void);
static void HBlankIntr(void);
static void VCountIntr(void);
@@ -313,8 +310,6 @@ void SetSerialCallback(IntrCallback callback)
gMain.serialCallback = callback;
}
-extern void CopyBufferedValuesToGpuRegs(void);
-
static void VBlankIntr(void)
{
if (gWirelessCommType != 0)
diff --git a/src/match_call.c b/src/match_call.c
index cca55fcb6..641079ba9 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -111,8 +111,6 @@ static void PopulateSpeciesFromTrainerParty(int, u8 *);
static void PopulateBattleFrontierFacilityName(int, u8 *);
static void PopulateBattleFrontierStreak(int, u8 *);
-extern void sub_81973A4(void);
-
#define TEXT_ID(topic, id) (((topic) << 8) | ((id) & 0xFF))
static const struct MatchCallTrainerTextInfo sMatchCallTrainers[] =
diff --git a/src/menu.c b/src/menu.c
index 8cb7ac0b2..b04572b81 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -122,20 +122,18 @@ const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] =
{ 8, 8, 0xAF }, // Unused (Small dark pokeball)
};
+
// Forward declarations
-extern void sub_81973A4(void);
-extern void WindowFunc_DrawStandardFrame(u8, u8, u8, u8, u8, u8);
-extern void WindowFunc_DrawDialogueFrame(u8, u8, u8, u8, u8, u8);
-extern void WindowFunc_ClearStdWindowAndFrame(u8, u8, u8, u8, u8, u8);
-extern void WindowFunc_ClearDialogWindowAndFrame(u8, u8, u8, u8, u8, u8);
-extern void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
-extern void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8, u8, u8, u8, u8, u8);
-extern void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
-extern void WindowFunc_ClearStdWindowAndFrameToTransparent(u8, u8, u8, u8, u8, u8);
-extern u8 Menu_MoveCursor(s8);
-extern u8 sub_8199134(s8, s8);
-extern void sub_8198C78(void);
-extern void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
+void WindowFunc_DrawStandardFrame(u8, u8, u8, u8, u8, u8);
+void WindowFunc_DrawDialogueFrame(u8, u8, u8, u8, u8, u8);
+void WindowFunc_ClearStdWindowAndFrame(u8, u8, u8, u8, u8, u8);
+void WindowFunc_ClearDialogWindowAndFrame(u8, u8, u8, u8, u8, u8);
+void WindowFunc_DrawDialogFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
+void WindowFunc_ClearDialogWindowAndFrameNullPalette(u8, u8, u8, u8, u8, u8);
+void WindowFunc_DrawStdFrameWithCustomTileAndPalette(u8, u8, u8, u8, u8, u8);
+void WindowFunc_ClearStdWindowAndFrameToTransparent(u8, u8, u8, u8, u8, u8);
+void sub_8198C78(void);
+void task_free_buf_after_copying_tile_data_to_vram(u8 taskId);
void InitStandardTextBoxWindows(void)
{
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index 25058abf9..3fb5ca40d 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -18,8 +18,6 @@
#include "constants/items.h"
#include "constants/maps.h"
-extern bool32 sub_800B504(void);
-
// this file's functions
static void Task_ContinueTaskAfterMessagePrints(u8 taskId);
static void Task_CallYesOrNoCallback(u8 taskId);
diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c
index 4196bb34c..dba914b51 100644
--- a/src/mystery_event_script.c
+++ b/src/mystery_event_script.c
@@ -17,8 +17,6 @@
#include "mystery_event_msg.h"
#include "pokemon_storage_system.h"
-extern void sub_811EFC0(u8);
-
extern ScrCmdFunc gMysteryEventScriptCmdTable[];
extern ScrCmdFunc gMysteryEventScriptCmdTableEnd[];
diff --git a/src/normal.c b/src/normal.c
index 87c8792f1..2b592e199 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -36,8 +36,6 @@ static void sub_81162F8(u8);
static void sub_81163D0(struct Sprite *);
static void sub_81165E4(struct Sprite *);
-extern void sub_810E2C8(struct Sprite *);
-
const union AnimCmd gUnknown_0859722C[] =
{
ANIMCMD_FRAME(0, 8),
diff --git a/src/option_menu.c b/src/option_menu.c
index 1766f0bdb..2fc0d6f3e 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -13,8 +13,7 @@
#include "text_window.h"
#include "international_string_util.h"
#include "strings.h"
-
-extern void SetPokemonCryStereo(u32 val);
+#include "gba/m4a_internal.h"
// Task data
enum
diff --git a/src/poison.c b/src/poison.c
index c86ec2cd8..9af981694 100644
--- a/src/poison.c
+++ b/src/poison.c
@@ -3,8 +3,6 @@
#include "trig.h"
#include "constants/rgb.h"
-extern void sub_80A77C8(struct Sprite *);
-
void sub_810DBAC(struct Sprite *);
void sub_810DC2C(struct Sprite *);
void sub_810DCD0(struct Sprite *);
diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c
index d72a9ffbe..da803f454 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokeblock_feed.c
@@ -55,8 +55,6 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
extern const u16 gUnknown_0860F074[];
-extern bool8 sub_81221EC(void);
-
// this file's functions
static void HandleInitBackgrounds(void);
static void HandleInitWindows(void);
diff --git a/src/pokemon.c b/src/pokemon.c
index a35033d49..a984abbb9 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -10,6 +10,7 @@
#include "battle_tower.h"
#include "event_data.h"
#include "evolution_scene.h"
+#include "field_specials.h"
#include "item.h"
#include "link.h"
#include "main.h"
@@ -72,10 +73,6 @@ extern const struct CompressedSpritePalette gMonPaletteTable[];
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
extern const u8 gTrainerClassNames[][13];
-extern u16 get_unknown_box_id(void);
-extern void set_unknown_box_id(u8);
-extern bool8 sub_806F104(void);
-
// this file's functions
static u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
static union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType);
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
index b0e14d2b1..98d83d8ce 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon_size_record.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "event_data.h"
+#include "pokedex.h"
#include "pokemon.h"
#include "pokemon_size_record.h"
#include "string_util.h"
@@ -15,9 +16,6 @@ struct UnknownStruct
u16 unk4;
};
-extern u16 GetPokedexHeightWeight(u16 dexNo, bool8 height);
-extern u16 SpeciesToNationalPokedexNum(u16 species);
-
static const struct UnknownStruct sBigMonSizeTable[] =
{
{ 290, 1, 0 },
diff --git a/src/pokenav.c b/src/pokenav.c
index 8eb82ffa5..42114a4b2 100644
--- a/src/pokenav.c
+++ b/src/pokenav.c
@@ -141,7 +141,7 @@ void sub_81C7710(void);
static void InitKeys_(void);
static void FreeVars(void);
static void VblankCb_Pokenav(void);
-static void Cb2_Pokenav(void);
+static void CB2_Pokenav(void);
void sub_81C7C28(void);
void sub_81C72BC(void);
void sub_81C7B74(void);
@@ -485,7 +485,7 @@ void sub_81C71E4(u8 taskId)
}
}
-void CB2_PokeNav(void)
+void CB2_InitPokeNav(void)
{
gUnknown_0203CF40 = Alloc(sizeof(*gUnknown_0203CF40));
if (gUnknown_0203CF40 == NULL)
@@ -498,7 +498,7 @@ void CB2_PokeNav(void)
ResetTasks();
SetVBlankCallback(NULL);
CreateTask(sub_81C742C, 0);
- SetMainCallback2(Cb2_Pokenav);
+ SetMainCallback2(CB2_Pokenav);
SetVBlankCallback(VblankCb_Pokenav);
}
}
@@ -529,7 +529,7 @@ void sub_81C72BC(void)
FreeAllSpritePalettes();
SetVBlankCallback(NULL);
CreateTask(sub_81C742C, 0);
- SetMainCallback2(Cb2_Pokenav);
+ SetMainCallback2(CB2_Pokenav);
SetVBlankCallback(VblankCb_Pokenav);
}
}
@@ -588,7 +588,7 @@ static bool32 AnyMonHasRibbon(void)
return FALSE;
}
-static void Cb2_Pokenav(void)
+static void CB2_Pokenav(void)
{
RunTasks();
AnimateSprites();
diff --git a/src/pokenav_match_call.c b/src/pokenav_match_call.c
index 53f9f0548..b775ed10e 100644
--- a/src/pokenav_match_call.c
+++ b/src/pokenav_match_call.c
@@ -1,13 +1,11 @@
-
-// Includes
#include "global.h"
#include "battle_setup.h"
#include "event_data.h"
#include "string_util.h"
#include "battle.h"
#include "gym_leader_rematch.h"
+#include "match_call.h"
-extern void sub_8197080(u8 *dest);
extern const u8 gTrainerClassNames[][13];
// Static type declarations
diff --git a/src/record_mixing.c b/src/record_mixing.c
index ad34bc432..3a16f817e 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -34,9 +34,8 @@
#include "daycare.h"
#include "international_string_util.h"
#include "constants/battle_frontier.h"
+#include "dewford_trend.h"
-extern void ReceiveSecretBasesData(struct SecretBaseRecord *, size_t, u8);
-extern void ReceiveEasyChatPairsData(struct EasyChatPair *, size_t, u8);
// Static type declarations
diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c
index 0926d4569..dd177f884 100644
--- a/src/reshow_battle_screen.c
+++ b/src/reshow_battle_screen.c
@@ -2,6 +2,7 @@
#include "reshow_battle_screen.h"
#include "battle.h"
#include "palette.h"
+#include "pokemon.h"
#include "main.h"
#include "scanline_effect.h"
#include "text.h"
@@ -18,8 +19,6 @@
extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[];
-extern void SetMultiuseSpriteTemplateToTrainerBack(u16 backPicId, u8 battlerPosition);
-
// this file's functions
static void CB2_ReshowBattleScreenAfterMenu(void);
static bool8 LoadBattlerSpriteGfx(u8 battlerId);
diff --git a/src/rock.c b/src/rock.c
index 14ffc63e0..814b1d88b 100644
--- a/src/rock.c
+++ b/src/rock.c
@@ -12,8 +12,6 @@
extern const union AnimCmd *const gUnknown_085950E0[];
extern const union AnimCmd *const gUnknown_085954D0[];
-extern void AnimMoveTwisterParticle(struct Sprite *);
-
void sub_81109F0(struct Sprite *);
void sub_8110AB4(struct Sprite *);
void AnimDirtParticleAcrossScreen(struct Sprite *);
diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c
index 64850d2e3..3d9eab8d7 100644
--- a/src/rom_8011DC0.c
+++ b/src/rom_8011DC0.c
@@ -33,8 +33,7 @@
#include "start_menu.h"
#include "data2.h"
#include "field_screen_effect.h"
-
-extern void HealPlayerParty(void);
+#include "script_pokemon_util_80F87D8.h"
struct UnkStruct_Shared
{
diff --git a/src/safari_zone.c b/src/safari_zone.c
index accf94981..703c3d0cd 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -10,6 +10,7 @@
#include "string_util.h"
#include "tv.h"
#include "constants/game_stat.h"
+#include "field_screen_effect.h"
struct PokeblockFeeder
{
@@ -27,8 +28,6 @@ extern const u8 EventScript_2A4B6F[];
extern const u8 EventScript_2A4B4C[];
extern const u8 EventScript_2A4B9B[];
-extern void sub_80AF6F0(void);
-
EWRAM_DATA u8 gNumSafariBalls = 0;
EWRAM_DATA static u16 sSafariZoneStepCounter = 0;
EWRAM_DATA static u8 sSafariZoneCaughtMons = 0;
diff --git a/src/save.c b/src/save.c
index 4444e122c..361a88e1e 100644
--- a/src/save.c
+++ b/src/save.c
@@ -1,5 +1,7 @@
#include "global.h"
+#include "agb_flash.h"
#include "gba/flash_internal.h"
+#include "fieldmap.h"
#include "save.h"
#include "task.h"
#include "decompress.h"
@@ -8,6 +10,7 @@
#include "pokemon_storage_system.h"
#include "main.h"
#include "trainer_hill.h"
+#include "link.h"
#include "constants/game_stat.h"
static u16 CalculateChecksum(void *data, u16 size);
@@ -70,12 +73,6 @@ const struct SaveSectionOffsets gSaveSectionOffsets[] =
SAVEBLOCK_CHUNK(gPokemonStorage, 8),
};
-extern void DoSaveFailedScreen(u8); // save_failed_screen
-extern bool32 ProgramFlashSectorAndVerify(u8 sector, u8 *data);
-extern void save_serialize_map(void);
-extern void sub_800ADF8(void);
-extern bool8 IsLinkTaskFinished(void);
-
// iwram common
u16 gLastWrittenSector;
u32 gLastSaveCounter;
diff --git a/src/script_menu.c b/src/script_menu.c
index afb1ef312..c7523a370 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -1312,7 +1312,7 @@ static void Task_HandleMultichoiceGridInput(u8 taskId)
#undef tWindowId
-bool8 ScrSpecial_CreatePCMenu(void)
+bool16 ScrSpecial_CreatePCMenu(void)
{
if (FuncIsActiveTask(Task_HandleMultichoiceInput) == TRUE)
{
diff --git a/src/secret_base.c b/src/secret_base.c
index 9147c19f9..4b270e424 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -43,8 +43,6 @@
#include "constants/species.h"
#include "constants/trainers.h"
-extern void mapldr_default(void);
-
// Static type declarations
struct SecretBaseListMenuBuffer {
diff --git a/src/start_menu.c b/src/start_menu.c
index f56e5e861..4822c12e6 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -1,44 +1,49 @@
#include "global.h"
-#include "start_menu.h"
-#include "menu.h"
-#include "safari_zone.h"
-#include "event_data.h"
-#include "window.h"
-#include "string_util.h"
-#include "text.h"
-#include "strings.h"
+#include "battle_pike.h"
+#include "battle_pyramid.h"
+#include "battle_pyramid_bag.h"
#include "bg.h"
+#include "event_data.h"
+#include "event_object_movement.h"
+#include "event_obj_lock.h"
+#include "event_scripts.h"
+#include "fieldmap.h"
#include "field_effect.h"
-#include "party_menu.h"
-#include "frontier_pass.h"
-#include "task.h"
-#include "overworld.h"
-#include "link.h"
-#include "frontier_util.h"
+#include "field_player_avatar.h"
#include "field_specials.h"
-#include "event_object_movement.h"
-#include "script.h"
-#include "main.h"
-#include "sound.h"
-#include "pokedex.h"
#include "field_weather.h"
-#include "palette.h"
+#include "field_screen_effect.h"
+#include "frontier_pass.h"
+#include "frontier_util.h"
+#include "gpu_regs.h"
+#include "international_string_util.h"
#include "item_menu.h"
+#include "link.h"
+#include "load_save.h"
+#include "main.h"
+#include "menu.h"
+#include "new_game.h"
#include "option_menu.h"
-#include "event_scripts.h"
+#include "overworld.h"
+#include "palette.h"
+#include "party_menu.h"
+#include "pokedex.h"
+#include "pokenav.h"
+#include "safari_zone.h"
#include "save.h"
-#include "gpu_regs.h"
#include "scanline_effect.h"
+#include "script.h"
+#include "sound.h"
+#include "start_menu.h"
+#include "strings.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
#include "text_window.h"
-#include "load_save.h"
#include "trainer_card.h"
-#include "international_string_util.h"
+#include "window.h"
#include "constants/songs.h"
-#include "field_player_avatar.h"
-#include "battle_pyramid.h"
-#include "battle_pyramid_bag.h"
-#include "battle_pike.h"
-#include "new_game.h"
+#include "rom_8011DC0.h"
// Menu actions
enum
@@ -83,19 +88,6 @@ EWRAM_DATA static u8 sSaveDialogTimer = 0;
EWRAM_DATA static bool8 sSavingComplete = FALSE;
EWRAM_DATA static u8 sSaveInfoWindowId = 0;
-// Extern variables.
-extern u8 gLocalLinkPlayerId;
-
-// Extern functions in not decompiled files.
-extern void sub_80AF688(void);
-extern void var_800D_set_xB(void);
-extern void sub_808B864(void);
-extern void CB2_Pokedex(void);
-extern void PlayRainStoppingSoundEffect(void);
-extern void CB2_PokeNav(void);
-extern void ScriptUnfreezeEventObjects(void);
-extern void save_serialize_map(void);
-
// Menu action callbacks
static bool8 StartMenuPokedexCallback(void);
static bool8 StartMenuPokemonCallback(void);
@@ -656,7 +648,7 @@ static bool8 StartMenuPokeNavCallback(void)
PlayRainStoppingSoundEffect();
RemoveExtraStartMenuWindows();
CleanupOverworldWindowsAndTilemaps();
- SetMainCallback2(CB2_PokeNav); // Display PokeNav
+ SetMainCallback2(CB2_InitPokeNav); // Display PokeNav
return TRUE;
}
diff --git a/src/text.c b/src/text.c
index 2d286992d..be4bf2697 100644
--- a/src/text.c
+++ b/src/text.c
@@ -12,10 +12,6 @@
#include "menu.h"
#include "dynamic_placeholder_text_util.h"
-extern u8 GetKeypadIconWidth(u8 keypadIconId);
-extern u16 Font6Func(struct TextPrinter *textPrinter);
-extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese);
-
EWRAM_DATA struct TextPrinter gTempTextPrinter = {0};
EWRAM_DATA struct TextPrinter gTextPrinters[NUM_TEXT_PRINTERS] = {0};
diff --git a/src/trainer_card.c b/src/trainer_card.c
index cd8b34865..01839d598 100755
--- a/src/trainer_card.c
+++ b/src/trainer_card.c
@@ -21,6 +21,7 @@
#include "gpu_regs.h"
#include "international_string_util.h"
#include "pokedex.h"
+#include "pokemon_icon.h"
#include "graphics.h"
#include "pokemon_icon.h"
#include "trainer_pokemon_sprites.h"
@@ -89,9 +90,6 @@ struct TrainerCardData
u8 language;
};
-//external functions
-extern u8 sub_80D30A0(u16);
-
// EWRAM
EWRAM_DATA struct TrainerCard gTrainerCards[4] = {0};
EWRAM_DATA static struct TrainerCardData *sData = NULL;
diff --git a/src/trainer_see.c b/src/trainer_see.c
index bc5d9cbc3..16ea88a45 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -17,8 +17,6 @@
#include "constants/event_object_movement_constants.h"
#include "constants/field_effects.h"
-extern void sub_809BE48(u16 npcId);
-
// this file's functions
static u8 CheckTrainer(u8 eventObjectId);
static u8 GetTrainerApproachDistance(struct EventObject *trainerObj);
diff --git a/src/unk_text_util_2.c b/src/unk_text_util_2.c
index 03e049d72..02648bf93 100644
--- a/src/unk_text_util_2.c
+++ b/src/unk_text_util_2.c
@@ -214,7 +214,7 @@ static void DecompressGlyphFont6(u16 glyph)
gUnknown_03002F90.unk81 = 0x10;
}
-u8 GetGlyphWidthFont6(void)
+u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese)
{
return 0x10;
}
diff --git a/src/water.c b/src/water.c
index d13b1378e..20bf2542d 100644
--- a/src/water.c
+++ b/src/water.c
@@ -13,35 +13,33 @@
#include "constants/battle.h"
#include "constants/rgb.h"
-extern void sub_810721C(struct Sprite *);
-extern void sub_8107228(struct Sprite *);
-extern void sub_8107260(struct Sprite *);
-extern void sub_8107380(struct Sprite *);
-extern void sub_8107408(struct Sprite *);
-extern void sub_8107430(struct Sprite *);
-extern void sub_810744C(struct Sprite *);
-extern void sub_81074E4(struct Sprite *);
-extern void sub_81075EC(struct Sprite *);
-extern void sub_8107674(struct Sprite *);
-extern void sub_8107730(struct Sprite *);
-extern void sub_81077A4(struct Sprite *);
-extern void sub_81077C0(struct Sprite *);
-extern void sub_80A78AC(struct Sprite *);
-extern void sub_8107894(struct Sprite *);
-extern void sub_81078D0(struct Sprite *);
-extern void sub_810790C(struct Sprite *);
-extern void sub_8108034(struct Sprite *);
-extern void sub_8108098(struct Sprite *);
-extern void sub_810851C(struct Sprite *);
-extern void sub_81087C0(struct Sprite *);
-extern void sub_810886C(struct Sprite *);
-extern void sub_8108B2C(struct Sprite *);
-extern void sub_8108B94(struct Sprite *);
-extern void sub_8108BE0(struct Sprite *);
-extern void sub_8108C08(struct Sprite *);
-extern void sub_8108C54(struct Sprite *);
-extern void sub_8108CDC(struct Sprite *);
-extern void sub_80A8EE4(struct Sprite *);
+void sub_810721C(struct Sprite *);
+void sub_8107228(struct Sprite *);
+void sub_8107260(struct Sprite *);
+void sub_8107380(struct Sprite *);
+void sub_8107408(struct Sprite *);
+void sub_8107430(struct Sprite *);
+void sub_810744C(struct Sprite *);
+void sub_81074E4(struct Sprite *);
+void sub_81075EC(struct Sprite *);
+void sub_8107674(struct Sprite *);
+void sub_8107730(struct Sprite *);
+void sub_81077A4(struct Sprite *);
+void sub_81077C0(struct Sprite *);
+void sub_8107894(struct Sprite *);
+void sub_81078D0(struct Sprite *);
+void sub_810790C(struct Sprite *);
+void sub_8108034(struct Sprite *);
+void sub_8108098(struct Sprite *);
+void sub_810851C(struct Sprite *);
+void sub_81087C0(struct Sprite *);
+void sub_810886C(struct Sprite *);
+void sub_8108B2C(struct Sprite *);
+void sub_8108B94(struct Sprite *);
+void sub_8108BE0(struct Sprite *);
+void sub_8108C08(struct Sprite *);
+void sub_8108C54(struct Sprite *);
+void sub_8108CDC(struct Sprite *);
void sub_810756C(u8);
void sub_81076F4(u8);
void sub_8107B84(u8);