From 3ceb1667c9b5e81934c7d608efc08905f21c372e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 1 Mar 2019 22:32:50 -0500 Subject: [PATCH 1/5] Reduce externs --- include/battle_anim.h | 9 +++ include/contest.h | 1 + include/event_obj_lock.h | 1 + include/event_object_movement.h | 3 + include/field_control_avatar.h | 1 + include/field_effect_helpers.h | 1 + include/field_player_avatar.h | 7 +++ include/field_screen_effect.h | 1 + include/field_special_scene.h | 1 + include/field_specials.h | 2 +- include/fieldmap.h | 4 +- include/flying.h | 6 ++ include/item_menu.h | 3 + include/link.h | 1 + include/main.h | 2 +- include/match_call.h | 3 + include/pokedex.h | 1 + include/water.h | 6 ++ src/battle_anim_effects_2.c | 4 +- src/battle_anim_effects_3.c | 4 +- src/battle_controller_link_opponent.c | 5 +- src/battle_controller_link_partner.c | 4 +- src/battle_controller_opponent.c | 4 +- src/battle_controller_player.c | 4 -- src/battle_controller_player_partner.c | 3 - src/battle_controller_recorded_opponent.c | 3 - src/battle_controller_recorded_player.c | 2 - src/battle_controller_safari.c | 2 - src/battle_controller_wally.c | 2 - src/battle_main.c | 4 +- src/battle_records.c | 3 +- src/battle_script_commands.c | 4 +- src/battle_setup.c | 5 +- src/berry.c | 6 +- src/berry_blender.c | 3 - src/bike.c | 6 -- src/contest.c | 2 - src/contest_link_80F57C4.c | 3 +- src/diploma.c | 3 +- src/electric.c | 4 +- src/field_control_avatar.c | 3 +- src/field_effect.c | 6 -- src/field_message_box.c | 4 +- src/field_screen_effect.c | 13 ++-- src/field_specials.c | 2 +- src/fldeff_cut.c | 1 - src/item_menu.c | 2 +- src/item_use.c | 2 +- src/normal.c | 3 +- src/safari_zone.c | 3 +- src/start_menu.c | 76 +++++++++++------------ 51 files changed, 112 insertions(+), 136 deletions(-) create mode 100644 include/flying.h create mode 100644 include/water.h diff --git a/include/battle_anim.h b/include/battle_anim.h index d0d3232160..4e241686fd 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -204,6 +204,9 @@ void sub_80A718C(struct Sprite *sprite); #define STAT_ANIM_MULTIPLE_MINUS2 58 void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); +// battle_anim_8170478.c +void sub_8172EF0(u8 battler, struct Pokemon *mon); + // ground.c void sub_81152DC(u8 taskId); @@ -216,6 +219,12 @@ u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes, void sub_8116EB4(u8); void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *arg8, const u32 *arg9, const u32 *palette); +// battle_anim_effects_1.c +void sub_810310C(u8 battler, struct Sprite* sprite); + +// smokescreen.c +u8 sub_807521C(s16 x, s16 y, u8 a3); + u32 UnpackSelectedBattleAnimPalettes(s16); u8 GetBattlerSpriteFinal_Y(u8, u16, u8); diff --git a/include/contest.h b/include/contest.h index e4391a3273..8146486cbf 100644 --- a/include/contest.h +++ b/include/contest.h @@ -478,5 +478,6 @@ bool32 sub_80FC4F4(void *, u16); bool8 sub_80FC55C(void); bool8 sub_80FC530(u8); u8 sub_80F86E0(u8 *); +void sub_80FC9F8(u8 taskId); #endif //GUARD_CONTEST_H diff --git a/include/event_obj_lock.h b/include/event_obj_lock.h index 59532fdcb2..2f09ad36a7 100644 --- a/include/event_obj_lock.h +++ b/include/event_obj_lock.h @@ -7,5 +7,6 @@ bool8 sub_809847C(void); void LockSelectedEventObject(void); void sub_8098630(void); bool8 sub_8098734(void); +void ScriptUnfreezeEventObjects(void); #endif // GUARD_EVENT_OBJ_LOCK_H diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 284bbe8db5..63ac09f2d3 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -193,6 +193,9 @@ void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible); s16 sub_809773C(s16 a1); s16 sub_8097728(s16 a1); void CameraObjectReset2(void); +u8 EventObjectGetBerryTreeId(u8 eventObjectId); +void sub_8092EF0(u8 mapId, u8 mapNumber, u8 mapGroup); +bool8 IsBerryTreeSparkling(u8, u8, u8); void MovementType_None(struct Sprite *); void MovementType_LookAround(struct Sprite *); diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h index 738cceb3e6..feb20cef6d 100644 --- a/include/field_control_avatar.h +++ b/include/field_control_avatar.h @@ -39,5 +39,6 @@ int SetCableClubWarp(void); u8 TrySetDiveWarp(void); const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, u8 direction); u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position); +void ClearPoisonStepCounter(void); #endif // GUARD_FIELDCONTROLAVATAR_H diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h index 6022467e49..6ea9771e61 100644 --- a/include/field_effect_helpers.h +++ b/include/field_effect_helpers.h @@ -34,5 +34,6 @@ void UpdateSparkleFieldEffect(struct Sprite*); void SetSpriteInvisible(u8 spriteId); void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y); void sub_8155604(u8 spriteId, u8 value, s16 data1); +void sub_81555D8(u8 spriteId, u8 value); #endif //GUARD_FIELD_EFFECT_HELPERS_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 45cd0dbd92..ae7aa92d27 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -63,5 +63,12 @@ u8 sub_808BCD0(void); void sub_808B578(void); u8 GetFRLGAvatarGraphicsIdByGender(u8); u8 GetRSAvatarGraphicsIdByGender(u8); +void sub_808B980(u8 direction); +void sub_808B9BC(u8 direction); +void sub_808B9A4(u8 direction); +void sub_808C1B4(u8 direction); +void sub_808B9D4(u8 direction); +void sub_808D194(void); +void sub_808D1C8(void); #endif // GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index 2b8b3a5a3a..b4429c1670 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -41,5 +41,6 @@ void sub_80B0534(void); void sub_80B058C(void); void sub_80B05B4(void); void WriteFlashScanlineEffectBuffer(u8 flashLevel); +bool8 walkrun_is_standing_still(void); #endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/include/field_special_scene.h b/include/field_special_scene.h index 240e9ecb60..2219c94332 100644 --- a/include/field_special_scene.h +++ b/include/field_special_scene.h @@ -10,5 +10,6 @@ void Task_HandleTruckSequence(u8 taskId); void ExecuteTruckSequence(void); void EndTruckSequence(u8); void sub_80C791C(void); +void sub_80FB768(void); #endif // GUARD_FIELD_SPECIAL_SCENE_H diff --git a/include/field_specials.h b/include/field_specials.h index bff04a7397..e6ed605936 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -26,6 +26,6 @@ void UpdateFrontierGambler(u16 a0); void ResetCyclingRoadChallengeData(void); bool8 warp0_in_pokecenter(void); void ResetFanClub(void); - +bool8 sub_813B21C(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 24bc4989af..8e10240d22 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -37,8 +37,8 @@ void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout); void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout); void apply_map_tileset2_palette(struct MapLayout const *mapLayout); void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout); -extern void copy_map_tileset1_to_vram(const struct MapLayout *); -extern void copy_map_tileset2_to_vram(const struct MapLayout *); +void copy_map_tileset1_to_vram(const struct MapLayout *); +void copy_map_tileset2_to_vram(const struct MapLayout *); void SpriteCB_PokeballGlow(struct Sprite *); void SpriteCB_PokecenterMonitor(struct Sprite *); diff --git a/include/flying.h b/include/flying.h new file mode 100644 index 0000000000..062320b4d2 --- /dev/null +++ b/include/flying.h @@ -0,0 +1,6 @@ +#ifndef GUARD_FLYING_H +#define GUARD_FLYING_H + +void sub_810E2C8(struct Sprite *sprite); + +#endif // GUARD_FLYING_H \ No newline at end of file diff --git a/include/item_menu.h b/include/item_menu.h index 2ca1af2001..465e5966e6 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -71,6 +71,7 @@ void sub_81AAC14(void); void sub_81AAC50(void); void sub_81AAC70(void); void sub_81AAC28(void); +void sub_81AABB0(void); void SetInitialScrollAndCursorPositions(u8 pocketId); void bag_menu_mail_related(void); void CB2_BagMenuFromStartMenu(void); @@ -80,6 +81,8 @@ void CB2_GoToSellMenu(void); void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)()); void DoWallyTutorialBagMenu(void); void ResetBagScrollPositions(void); +void sub_81AABF0(void (*callback)(void)); +void CB2_ChooseBerry(void); #endif //GUARD_item_menu_H diff --git a/include/link.h b/include/link.h index 83deab88f7..400816fd01 100644 --- a/include/link.h +++ b/include/link.h @@ -261,6 +261,7 @@ void sub_800B3A4(u32 who); bool32 sub_800A07C(void); void sub_800AB98(void); void sub_800AA04(u8 a0); +void sub_800B4C0(void); extern u16 gLinkPartnersHeldKeys[6]; extern u32 gLinkDebugSeed; diff --git a/include/main.h b/include/main.h index 728064288a..1b312550ef 100644 --- a/include/main.h +++ b/include/main.h @@ -68,7 +68,7 @@ void ClearPokemonCrySongs(void); void RestoreSerialTimer3IntrHandlers(void); void StartTimer1(void); void SeedRngAndSetTrainerId(void); -extern u16 GetGeneratedTrainerIdLower(void); +u16 GetGeneratedTrainerIdLower(void); #endif // GUARD_MAIN_H diff --git a/include/match_call.h b/include/match_call.h index 17d40d41cf..1bf654937d 100644 --- a/include/match_call.h +++ b/include/match_call.h @@ -12,5 +12,8 @@ enum { s32 GetRematchIdxByTrainerIdx(s32 trainerIdx); void InitMatchCallCounters(void); +bool32 TryStartMatchCall(void); +bool32 IsMatchCallTaskActive(void); +void StartMatchCallFromScript(u8* script); #endif //GUARD_MATCH_CALL_H diff --git a/include/pokedex.h b/include/pokedex.h index 6136f77861..c3700c8112 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -43,5 +43,6 @@ s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16); bool16 HasAllHoennMons(void); void ResetPokedexScrollPositions(void); +u16 sub_80C0944(void); #endif // GUARD_POKEDEX_H diff --git a/include/water.h b/include/water.h new file mode 100644 index 0000000000..9f876021c4 --- /dev/null +++ b/include/water.h @@ -0,0 +1,6 @@ +#ifndef GUARD_WATER_H +#define GUARD_WATER_H + +void sub_8108C94(struct Sprite *sprite); + +#endif // GUARD_WATER_H \ No newline at end of file diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index ee6676e644..a72b2c8dce 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -15,9 +15,7 @@ #include "util.h" #include "constants/rgb.h" #include "constants/songs.h" - -extern void sub_8108C94(struct Sprite *); -extern void sub_810310C(u8, struct Sprite *); +#include "water.h" void sub_8103448(struct Sprite *); void sub_8103498(struct Sprite *); diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 49fb693421..de00892ba4 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -23,9 +23,7 @@ #include "constants/songs.h" #include "constants/species.h" #include "constants/weather.h" - -extern u8 sub_807521C(s16 x, s16 y, u8 a3); -extern void sub_810E2C8(struct Sprite *); +#include "flying.h" extern const struct SpriteTemplate gUnknown_08593114; extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 05da72e16a..6c0f81d41f 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -26,15 +26,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); diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 19d39609fb..59fc2aae58 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -26,13 +26,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); diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 99bb0c5887..9fee8134de 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); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 6bcc97c68d..42d29dbbd9 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); diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index a9b0f376be..95a3f698b7 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); diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 911eb6ce58..c66a1b49cc 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); diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index b2dfca6a07..cc40f159ab 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); diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 54ba04ab4a..b0173df687 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); diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index d891b96b67..a3dc927574 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); diff --git a/src/battle_main.c b/src/battle_main.c index 043e758087..befef364f7 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 f9c40d8de6..d905ccaf38 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 a53fa30f21..8a4436a3f9 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 7626420e92..3d27b517e8 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/berry.c b/src/berry.c index bd596db7f7..cbac06a3dd 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 87d24e7175..70e50a72e8 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 1e91baab07..530742bdf6 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 7be4aa23b5..230ccd1b48 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 c0a79af814..881d9847ee 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/diploma.c b/src/diploma.c index b3d5a48fa0..78d49527f3 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 142a9ca090..6c6c337467 100644 --- a/src/electric.c +++ b/src/electric.c @@ -4,9 +4,7 @@ #include "trig.h" #include "constants/songs.h" #include "sound.h" - -extern void sub_810E2C8(struct Sprite *); -extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *); +#include "flying.h" static void sub_810A1A8(struct Sprite *); static void sub_810A1F8(struct Sprite *); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index cffafaf9f7..f5961bb48c 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 7f11a8e582..fcdc483e69 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 299aafaf26..fa1aee5660 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_screen_effect.c b/src/field_screen_effect.c index e7476dea3a..3e49656677 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,15 +30,9 @@ #include "constants/event_object_movement_constants.h" #include "constants/songs.h" #include "constants/rgb.h" +#include "trainer_hill.h" +#include "event_obj_lock.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); @@ -47,6 +40,8 @@ extern void sub_80B7A74(u8); extern void sub_808C0A8(u8); extern u8 GetMapPairFadeToType(u8, u8); extern u8 GetMapPairFadeFromType(u8, u8); +extern bool32 sub_808D1B4(void); +extern bool32 sub_808D1E8(void); extern const u16 gUnknown_82EC7CC[]; diff --git a/src/field_specials.c b/src/field_specials.c index 639d86e685..3994f8c36a 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -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 348a1f46c9..a715608c5c 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/item_menu.c b/src/item_menu.c index 43f2afce34..b3d341c2ee 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -476,7 +476,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 97d6292c45..16fb22d94d 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -37,10 +37,10 @@ #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); diff --git a/src/normal.c b/src/normal.c index 87c8792f14..cbf0caa83c 100644 --- a/src/normal.c +++ b/src/normal.c @@ -5,6 +5,7 @@ #include "task.h" #include "trig.h" #include "constants/rgb.h" +#include "flying.h" void AnimConfusionDuck(struct Sprite *); void AnimSimplePaletteBlend(struct Sprite *); @@ -36,8 +37,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/safari_zone.c b/src/safari_zone.c index accf949817..703c3d0cde 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/start_menu.c b/src/start_menu.c index 4b71f61474..79404d0b2d 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1,44 +1,45 @@ #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 "bg.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_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 "item_menu.h" -#include "option_menu.h" -#include "event_scripts.h" -#include "save.h" -#include "gpu_regs.h" -#include "scanline_effect.h" -#include "text_window.h" -#include "load_save.h" -#include "trainer_card.h" -#include "international_string_util.h" -#include "constants/songs.h" -#include "field_player_avatar.h" +#include "battle_pike.h" #include "battle_pyramid.h" #include "battle_pyramid_bag.h" -#include "battle_pike.h" +#include "bg.h" +#include "event_data.h" +#include "event_object_movement.h" +#include "event_obj_lock.h" +#include "event_scripts.h" +#include "field_effect.h" +#include "field_player_avatar.h" +#include "field_specials.h" +#include "field_weather.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 "overworld.h" +#include "palette.h" +#include "party_menu.h" +#include "pokedex.h" +#include "safari_zone.h" +#include "save.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 "trainer_card.h" +#include "window.h" +#include "constants/songs.h" // Menu actions enum @@ -93,7 +94,6 @@ 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 From 0f6cc27e81d4985d61e5caa669027801d520a122 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 00:36:59 -0500 Subject: [PATCH 2/5] Fixed decomp issue around LoadPalette In LoadLinkPartnerEventObjectSpritePalette, using paletteNum += 6 causes GCC to "mark" paletteNum's register as a possible overflow, even though it performs the overflow check. Then, when passing args to LoadPalette, GCC fails to recognize that 0x100 + ((any u8) << 4) can never overflow as a u16. It then does an overflow check before calling LoadPalette. Assigning to a temp variable seems to avoid this "marking" behavior. --- src/field_specials.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/field_specials.c b/src/field_specials.c index 3994f8c36a..629dd80152 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,7 +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); @@ -591,7 +591,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 +604,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; } } From ee6942683882e2abd4bde79f8355b71abbd21af9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 02:44:02 -0500 Subject: [PATCH 3/5] Eliminate more externs --- include/agb_flash.h | 1 + include/easy_chat.h | 1 + include/field_effect.h | 5 ++++ include/field_player_avatar.h | 3 +++ include/field_specials.h | 1 + include/fieldmap.h | 7 ++++++ include/hall_of_fame.h | 3 +++ include/item_menu.h | 4 +++ include/link.h | 1 + include/rom_8011DC0.h | 1 + include/script_menu.h | 2 ++ src/field_player_avatar.c | 4 +-- src/field_screen_effect.c | 11 +------- src/field_specials.c | 2 -- src/frontier_util.c | 5 +--- src/hall_of_fame.c | 2 -- src/hof_pc.c | 4 --- src/ice.c | 47 +++++++++++++++++------------------ src/item_menu.c | 1 - src/item_use.c | 30 ++++++---------------- src/link.c | 2 +- src/link_rfu.c | 2 +- src/load_save.c | 2 +- src/main.c | 5 ---- src/match_call.c | 2 -- src/menu.c | 24 ++++++++---------- src/menu_helpers.c | 2 -- src/mystery_event_script.c | 2 -- src/option_menu.c | 3 +-- src/poison.c | 2 -- src/pokeblock_feed.c | 2 -- src/pokemon.c | 5 +--- src/pokemon_size_record.c | 4 +-- src/script_menu.c | 2 +- src/water.c | 1 - 35 files changed, 82 insertions(+), 113 deletions(-) diff --git a/include/agb_flash.h b/include/agb_flash.h index 27e45e8fa5..3dd60df0f1 100644 --- a/include/agb_flash.h +++ b/include/agb_flash.h @@ -8,5 +8,6 @@ // Exported ROM declarations u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)); +u16 IdentifyFlash(void); #endif //GUARD_AGB_FLASH_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 2efdc4e5d6..84ac154227 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -134,5 +134,6 @@ u16 EasyChat_GetNumWordsInGroup(u8); u16 sub_811EE90(u16); void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType); void sub_811F8BC(void); +void sub_811EFC0(u8 additionalPhraseId); #endif // GUARD_EASYCHAT_H diff --git a/include/field_effect.h b/include/field_effect.h index 205dbb68a1..1f5f4ee297 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -36,6 +36,10 @@ bool8 FieldEffectCmd_end(u8 **script, u32 *val); bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u32 *val); bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u32 *val); bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u32 *val); +void sub_80B6B68(void); +void sub_80B6E4C(u8 a0, u8 priority); +void sub_80B75D8(u8 priority); +void sub_80B7A74(u8 priority); void sub_80B9C28(s16*, u8); void sub_80B9C54(s16*, u8); @@ -47,5 +51,6 @@ void sub_80B7A58(struct Sprite*); void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b); void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId); u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority); +void StartEscapeRopeFieldEffect(void); #endif //GUARD_FIELD_EFFECTS_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index ae7aa92d27..ca3d415468 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -70,5 +70,8 @@ void sub_808C1B4(u8 direction); void sub_808B9D4(u8 direction); void sub_808D194(void); void sub_808D1C8(void); +bool32 sub_808D1B4(void); +bool32 sub_808D1E8(void); +void sub_808C0A8(u8 a); #endif // GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/field_specials.h b/include/field_specials.h index e6ed605936..3131531dc8 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -27,5 +27,6 @@ void ResetCyclingRoadChallengeData(void); bool8 warp0_in_pokecenter(void); void ResetFanClub(void); bool8 sub_813B21C(void); +void set_unknown_box_id(u8 id); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 8e10240d22..bb5b0e290a 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -9,6 +9,8 @@ #define NUM_PALS_TOTAL 13 #define MAX_MAP_DATA_SIZE 0x2800 +#include "main.h" + extern struct BackupMapLayout gBackupMapLayout; u32 MapGridGetMetatileIdAt(int, int); @@ -39,9 +41,14 @@ void apply_map_tileset2_palette(struct MapLayout const *mapLayout); void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout); void copy_map_tileset1_to_vram(const struct MapLayout *); void copy_map_tileset2_to_vram(const struct MapLayout *); +struct MapHeader const *const mapconnection_get_mapheader(struct MapConnection *connection); +struct MapConnection *sub_8088A8C(s16 x, s16 y); void SpriteCB_PokeballGlow(struct Sprite *); void SpriteCB_PokecenterMonitor(struct Sprite *); void SpriteCB_HallOfFameMonitor(struct Sprite *); +// field_region_map.c +void FieldInitRegionMap(MainCallback callback); + #endif //GUARD_FIELDMAP_H diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h index d35ecf268c..5c8a01bcb6 100644 --- a/include/hall_of_fame.h +++ b/include/hall_of_fame.h @@ -6,4 +6,7 @@ void CB2_DoHallOfFameScreenDontSaveData(void); void CB2_DoHallOfFamePC(void); void sub_8175280(void); +// hof_pc.c +void ReturnFromHallOfFamePC(void); + #endif // GUARD_HALL_OF_FAME_H diff --git a/include/item_menu.h b/include/item_menu.h index 465e5966e6..70d6b5a94d 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -2,6 +2,7 @@ #define GUARD_item_menu_H #include "item.h" +#include "menu_helpers.h" #define RETURN_LOCATION_FIELD 0 #define RETURN_LOCATION_BATTLE 1 @@ -83,6 +84,9 @@ void DoWallyTutorialBagMenu(void); void ResetBagScrollPositions(void); void sub_81AABF0(void (*callback)(void)); void CB2_ChooseBerry(void); +void unknown_ItemMenu_Confirm(u8 taskId); +void bag_menu_yes_no(u8, u8, const struct YesNoFuncTable*); +void sub_81AB9A8(u8 pocketId); #endif //GUARD_item_menu_H diff --git a/include/link.h b/include/link.h index 400816fd01..24a834c686 100644 --- a/include/link.h +++ b/include/link.h @@ -262,6 +262,7 @@ bool32 sub_800A07C(void); void sub_800AB98(void); void sub_800AA04(u8 a0); void sub_800B4C0(void); +bool32 sub_800B504(void); extern u16 gLinkPartnersHeldKeys[6]; extern u32 gLinkDebugSeed; diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h index faffd33752..9940a5b441 100644 --- a/include/rom_8011DC0.h +++ b/include/rom_8011DC0.h @@ -17,5 +17,6 @@ u16 mevent_081445C0(u8); void sub_801B990(u32, u32); u8 sub_8013F78(void); bool32 sub_802C908(u16); +void nullsub_89(u8 taskId); #endif //GUARD_rom_8011DC0_H diff --git a/include/script_menu.h b/include/script_menu.h index a6d52c31e9..1f4e549fec 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -14,5 +14,7 @@ u8 CreateWindowFromRect(u8, u8, u8, u8); void sub_80E2A78(u8); int display_text_and_get_width(const u8*, int); int sub_80E2D5C(int arg0, int tileWidth); +bool16 ScrSpecial_CreatePCMenu(void); +void ScriptMenu_DisplayPCStartupPrompt(void); #endif //GUARD_SCRIPT_MENU_H diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index b1291f0ce1..66f176d39e 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 3e49656677..b6dcf212c0 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -32,16 +32,7 @@ #include "constants/rgb.h" #include "trainer_hill.h" #include "event_obj_lock.h" - -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); -extern bool32 sub_808D1B4(void); -extern bool32 sub_808D1E8(void); +#include "fldeff.h" extern const u16 gUnknown_82EC7CC[]; diff --git a/src/field_specials.c b/src/field_specials.c index 629dd80152..85bc41723c 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -81,8 +81,6 @@ extern const u16 gEventObjectPalette17[]; extern const u16 gEventObjectPalette33[]; extern const u16 gEventObjectPalette34[]; -extern void BlendPalettes(u32, u8, u16); -extern void FieldInitRegionMap(MainCallback callback); void UpdateMovedLilycoveFanClubMembers(void); void sub_813BF60(void); diff --git a/src/frontier_util.c b/src/frontier_util.c index 6fcbd4ffbe..8c190f5223 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 3f217b7828..48e4f8bec0 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 2cea5540af..d76f043725 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 34ad572e8f..fa1913b967 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 b3d341c2ee..8774445752 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -140,7 +140,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); diff --git a/src/item_use.c b/src/item_use.c index 16fb22d94d..f9d81bfc08 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" @@ -39,29 +41,13 @@ #include "constants/vars.h" #include "event_obj_lock.h" -extern void unknown_ItemMenu_Confirm(u8 taskId); -extern void sub_81C5B14(u8 taskId); -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 72ac3e8787..05da4e4588 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 8da6b166a8..d80ff2ae91 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 0d19c6dae2..a0d2568d31 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 61c5e33865..aa42c59585 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 e7e91969f1..ce15731646 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 ae589dff4c..e82a6355c0 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 DrawStandardFrame(u8, u8, u8, u8, u8, u8); -extern void DrawDialogueFrame(u8, u8, u8, u8, u8, u8); -extern void sub_81977BC(u8, u8, u8, u8, u8, u8); -extern void sub_8197804(u8, u8, u8, u8, u8, u8); -extern void sub_8197BB4(u8, u8, u8, u8, u8, u8); -extern void sub_8197E30(u8, u8, u8, u8, u8, u8); -extern void DrawWindowBorder(u8, u8, u8, u8, u8, u8); -extern void sub_81980A8(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 DrawStandardFrame(u8, u8, u8, u8, u8, u8); +void DrawDialogueFrame(u8, u8, u8, u8, u8, u8); +void sub_81977BC(u8, u8, u8, u8, u8, u8); +void sub_8197804(u8, u8, u8, u8, u8, u8); +void sub_8197BB4(u8, u8, u8, u8, u8, u8); +void sub_8197E30(u8, u8, u8, u8, u8, u8); +void DrawWindowBorder(u8, u8, u8, u8, u8, u8); +void sub_81980A8(u8, u8, u8, u8, u8, u8); +void task_free_buf_after_copying_tile_data_to_vram(u8 taskId); +void sub_8198C78(void); void InitStandardTextBoxWindows(void) { diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 846c23b6b6..1f9979ecac 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 4196bb34c2..dba914b512 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/option_menu.c b/src/option_menu.c index 122ba8d8af..caeb3d5daa 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 c86ec2cd82..9af981694c 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 b1f182b660..42a71ad52f 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 a35033d498..a984abbb98 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 b0e14d2b17..98d83d8ce4 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/script_menu.c b/src/script_menu.c index 7180bfc607..d9dbc770c2 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/water.c b/src/water.c index d13b1378e8..c856b9aa45 100644 --- a/src/water.c +++ b/src/water.c @@ -41,7 +41,6 @@ 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_810756C(u8); void sub_81076F4(u8); void sub_8107B84(u8); From 49bef258567b8ac6ead607de8ce0ac64581cdb55 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 03:18:08 -0500 Subject: [PATCH 4/5] Clean up the last extern functions --- include/agb_flash.h | 1 + include/battle_anim.h | 1 + include/dewford_trend.h | 2 ++ include/match_call.h | 1 + include/pokedex.h | 1 + include/pokemon_icon.h | 1 + include/pokenav.h | 1 + include/rom_8011DC0.h | 1 + include/save.h | 3 +++ include/script.h | 3 +++ include/secret_base.h | 2 ++ include/text.h | 4 +++ src/dewford_trend.c | 4 +-- src/pokenav.c | 10 +++---- src/pokenav_match_call.c | 4 +-- src/record_mixing.c | 3 +-- src/reshow_battle_screen.c | 3 +-- src/rock.c | 2 -- src/rom_8011DC0.c | 3 +-- src/save.c | 9 +++---- src/secret_base.c | 2 -- src/start_menu.c | 18 ++++--------- src/text.c | 4 --- src/trainer_card.c | 4 +-- src/trainer_see.c | 2 -- src/unk_text_util_2.c | 2 +- src/water.c | 55 +++++++++++++++++++------------------- 27 files changed, 69 insertions(+), 77 deletions(-) diff --git a/include/agb_flash.h b/include/agb_flash.h index 3dd60df0f1..ba5820f016 100644 --- a/include/agb_flash.h +++ b/include/agb_flash.h @@ -9,5 +9,6 @@ u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)); u16 IdentifyFlash(void); +u32 ProgramFlashSectorAndVerify(u16 sectorNum, u8 *src); #endif //GUARD_AGB_FLASH_H diff --git a/include/battle_anim.h b/include/battle_anim.h index 4e241686fd..ac47cadf14 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -221,6 +221,7 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, // battle_anim_effects_1.c void sub_810310C(u8 battler, struct Sprite* sprite); +void AnimMoveTwisterParticle(struct Sprite* sprite); // smokescreen.c u8 sub_807521C(s16 x, s16 y, u8 a3); diff --git a/include/dewford_trend.h b/include/dewford_trend.h index 608a925f57..bdb0fc95cf 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -5,5 +5,7 @@ void InitDewfordTrend(void); void UpdateDewfordTrendPerDay(u16); void UpdateDewfordTrendPerDay(u16 days); bool8 sub_81226D8(u16 *a); +void ReceiveEasyChatPairsData(struct EasyChatPair *a, size_t b, u8 unused); + #endif // GUARD_DEWFORDTREND_H diff --git a/include/match_call.h b/include/match_call.h index 1bf654937d..6803d2f260 100644 --- a/include/match_call.h +++ b/include/match_call.h @@ -15,5 +15,6 @@ void InitMatchCallCounters(void); bool32 TryStartMatchCall(void); bool32 IsMatchCallTaskActive(void); void StartMatchCallFromScript(u8* script); +void sub_8197080(u8 *destStr); #endif //GUARD_MATCH_CALL_H diff --git a/include/pokedex.h b/include/pokedex.h index c3700c8112..a1b7378bfc 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -44,5 +44,6 @@ u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16); bool16 HasAllHoennMons(void); void ResetPokedexScrollPositions(void); u16 sub_80C0944(void); +void CB2_Pokedex(void); #endif // GUARD_POKEDEX_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 4f27ef2811..c7b895028c 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -23,5 +23,6 @@ void LoadMonIconPalette(u16 species); void sub_80D328C(struct Sprite *sprite); void sub_80D3014(struct Sprite *sprite); void sub_80D32C8(struct Sprite *sprite, u8 animNum); +u8 sub_80D30A0(u16 species); #endif // GUARD_POKEMON_ICON_H diff --git a/include/pokenav.h b/include/pokenav.h index e5dba8ae09..29ccaec3e5 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -30,5 +30,6 @@ u32 sub_81D427C(void); void sub_81D4998(void); void sub_81D3640(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); void sub_81D3784(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); +void CB2_InitPokeNav(void); #endif //GUARD_POKENAV_H diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h index 9940a5b441..ac9bbb5c30 100644 --- a/include/rom_8011DC0.h +++ b/include/rom_8011DC0.h @@ -18,5 +18,6 @@ void sub_801B990(u32, u32); u8 sub_8013F78(void); bool32 sub_802C908(u16); void nullsub_89(u8 taskId); +void var_800D_set_xB(void); #endif //GUARD_rom_8011DC0_H diff --git a/include/save.h b/include/save.h index 7ce86de705..88e5f22806 100644 --- a/include/save.h +++ b/include/save.h @@ -92,4 +92,7 @@ u32 TryCopySpecialSaveSection(u8 sector, u8* dst); u32 sub_8153634(u8 sector, u8* src); void sub_8153688(u8 taskId); +// save_failed_screen.c +void DoSaveFailedScreen(u8 saveType); + #endif // GUARD_SAVE_H diff --git a/include/script.h b/include/script.h index 386b388d02..34f4635bb3 100644 --- a/include/script.h +++ b/include/script.h @@ -61,4 +61,7 @@ bool32 sub_80991F8(void); u8 *sub_8099244(void); void sub_80992A0(u8 *script, u16 scriptSize); +// srccmd.h +void sub_809BE48(u16 npcId); + #endif // GUARD_SCRIPT_H diff --git a/include/secret_base.h b/include/secret_base.h index 699158d0e6..17efc314d3 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -33,6 +33,8 @@ void sub_80E8B6C(void); void sub_80E8BC8(void); void sub_80E8D4C(void); void EnableBothScriptContexts(void); +void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx); + #endif //GUARD_SECRET_BASE_H diff --git a/include/text.h b/include/text.h index 96c5a45071..d8f2fd8a35 100644 --- a/include/text.h +++ b/include/text.h @@ -284,4 +284,8 @@ void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese); u32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont9(u16 glyphId); +// unk_text_util_2.c +u16 Font6Func(struct TextPrinter *textPrinter); +u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); + #endif // GUARD_TEXT_H diff --git a/src/dewford_trend.c b/src/dewford_trend.c index cad5ef9c2a..ee310af04a 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/pokenav.c b/src/pokenav.c index 41434606cb..62ec75842b 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 53f9f05484..b775ed10e3 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 aafd7284ba..ce9bacf4cd 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 0926d4569e..dd177f8842 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 14ffc63e01..814b1d88bf 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 27472b6e38..b0e861fac3 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/save.c b/src/save.c index d07e597661..ff26ce4606 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/secret_base.c b/src/secret_base.c index 3e591eba2c..8bb216452d 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 79404d0b2d..1052b640c2 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -7,10 +7,12 @@ #include "event_object_movement.h" #include "event_obj_lock.h" #include "event_scripts.h" +#include "fieldmap.h" #include "field_effect.h" #include "field_player_avatar.h" #include "field_specials.h" #include "field_weather.h" +#include "field_screen_effect.h" #include "frontier_pass.h" #include "frontier_util.h" #include "gpu_regs.h" @@ -26,6 +28,7 @@ #include "palette.h" #include "party_menu.h" #include "pokedex.h" +#include "pokenav.h" #include "safari_zone.h" #include "save.h" #include "scanline_effect.h" @@ -40,6 +43,7 @@ #include "trainer_card.h" #include "window.h" #include "constants/songs.h" +#include "rom_8011DC0.h" // Menu actions enum @@ -84,18 +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 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 a439d3ced8..bdc0f14f79 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 4fb30f616c..41bf71cd33 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 bc5d9cbc39..16ea88a455 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 bbc256915f..530bd40852 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 c856b9aa45..20bf2542d3 100644 --- a/src/water.c +++ b/src/water.c @@ -13,34 +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 *); +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); From 80a4ee11457e82092f52a3aef5362f8b59b68633 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 17:23:10 -0500 Subject: [PATCH 5/5] Remove water.h and flying.h --- include/battle_anim.h | 6 ++++++ include/flying.h | 6 ------ include/water.h | 6 ------ src/battle_anim_effects_2.c | 1 - src/battle_anim_effects_3.c | 1 - src/electric.c | 1 - src/normal.c | 1 - 7 files changed, 6 insertions(+), 16 deletions(-) delete mode 100644 include/flying.h delete mode 100644 include/water.h diff --git a/include/battle_anim.h b/include/battle_anim.h index ac47cadf14..b3350f893d 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -223,6 +223,12 @@ void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, void sub_810310C(u8 battler, struct Sprite* sprite); void AnimMoveTwisterParticle(struct Sprite* sprite); +// water.c +void sub_8108C94(struct Sprite *sprite); + +// flying.c +void sub_810E2C8(struct Sprite *sprite); + // smokescreen.c u8 sub_807521C(s16 x, s16 y, u8 a3); diff --git a/include/flying.h b/include/flying.h deleted file mode 100644 index 062320b4d2..0000000000 --- a/include/flying.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef GUARD_FLYING_H -#define GUARD_FLYING_H - -void sub_810E2C8(struct Sprite *sprite); - -#endif // GUARD_FLYING_H \ No newline at end of file diff --git a/include/water.h b/include/water.h deleted file mode 100644 index 9f876021c4..0000000000 --- a/include/water.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef GUARD_WATER_H -#define GUARD_WATER_H - -void sub_8108C94(struct Sprite *sprite); - -#endif // GUARD_WATER_H \ No newline at end of file diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index a72b2c8dce..80b3258b45 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -15,7 +15,6 @@ #include "util.h" #include "constants/rgb.h" #include "constants/songs.h" -#include "water.h" void sub_8103448(struct Sprite *); void sub_8103498(struct Sprite *); diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index de00892ba4..efa2620fd5 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -23,7 +23,6 @@ #include "constants/songs.h" #include "constants/species.h" #include "constants/weather.h" -#include "flying.h" extern const struct SpriteTemplate gUnknown_08593114; extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; diff --git a/src/electric.c b/src/electric.c index 6c6c337467..5e77298421 100644 --- a/src/electric.c +++ b/src/electric.c @@ -4,7 +4,6 @@ #include "trig.h" #include "constants/songs.h" #include "sound.h" -#include "flying.h" static void sub_810A1A8(struct Sprite *); static void sub_810A1F8(struct Sprite *); diff --git a/src/normal.c b/src/normal.c index cbf0caa83c..2b592e1998 100644 --- a/src/normal.c +++ b/src/normal.c @@ -5,7 +5,6 @@ #include "task.h" #include "trig.h" #include "constants/rgb.h" -#include "flying.h" void AnimConfusionDuck(struct Sprite *); void AnimSimplePaletteBlend(struct Sprite *);