diff options
Diffstat (limited to 'src')
50 files changed, 218 insertions, 495 deletions
diff --git a/src/battle_setup.c b/src/battle_setup.c index 15b09645f..fd44d2fc6 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -1,11 +1,15 @@ #include "global.h" +#include "battle_setup.h" +#include "safari_zone.h" +#include "weather.h" +#include "palette.h" +#include "field_player_avatar.h" +#include "rom4.h" #include "battle.h" #include "main.h" #include "species.h" -#include "pokemon.h" #include "songs.h" #include "task.h" -#include "fieldmap.h" #include "string_util.h" #include "rng.h" #include "flag.h" @@ -13,6 +17,7 @@ #include "script.h" #include "field_message_box.h" #include "trainer.h" +#include "starter_choose.h" #define NUM_TRAINER_EYE_TRAINERS 56 #define TRAINER_REMATCH_STEPS 255 @@ -23,28 +28,28 @@ extern void current_map_music_set__default_for_battle(u16); extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void); extern void c2_exit_to_overworld_2_switch(void); extern void npc_set_running_behaviour_etc(struct MapObject *, u8); +extern u8 npc_running_behaviour_by_direction(u8); extern void c2_whiteout(void); extern void sub_800E7C4(void); extern void sub_8081AA4(void); extern void sub_8081A18(void); extern void sub_8081C8C(void); -extern void sub_80C824C(void); extern void sub_8081CEC(void); extern void sub_8080E44(void); extern void sub_80821D8(void); extern void sub_8082228(void); extern void sub_808260C(void); extern void sub_8082CB8(void); +extern void sub_811AAD8(u8); extern u8 *sub_80BCCE8(void); -extern void CB2_ChooseStarter(void); extern void sub_811AABC(u8); extern u8 sub_811AAE8(void); extern u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); extern u8 *sub_8082880(void); extern u8 sub_803FC58(u16); extern bool32 FieldPoisonEffectIsRunning(void); -extern bool32 GetSafariZoneFlag(void); extern void player_bitmagic(void); +extern void sub_80408BC(); u8 GetWildBattleTransition(void); u8 GetTrainerBattleTransition(void); @@ -99,7 +104,6 @@ struct TrainerEyeTrainer u16 mapNum; }; -extern u16 MapGridGetMetatileBehaviorAt(s16, s16); extern bool8 MetatileBehavior_IsTallGrass(char); extern bool8 MetatileBehavior_IsLongGrass(char); extern bool8 MetatileBehavior_IsSandOrDeepSand(char); @@ -108,9 +112,7 @@ extern bool8 MetatileBehavior_IsBridge(char); extern bool8 sub_80574C4(char); extern bool8 sub_80574D8(char); extern bool8 sub_8057568(char); -extern u8 TestPlayerAvatarFlags(u8); extern u8 sub_8057450(u8); -extern u8 GetSav1Weather(void); extern void PlayNewMapMusic(u16); extern u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8); diff --git a/src/berry.c b/src/berry.c index e00015477..2d7b50e2b 100644 --- a/src/berry.c +++ b/src/berry.c @@ -1,19 +1,17 @@ #include "global.h" +#include "item.h" +#include "main.h" #include "text.h" +#include "rng.h" #define FIRST_BERRY 0x85 // ITEM_CHERI_BERRY #define LAST_BERRY 0xaf // ITEM_ENIGMA_BERRY extern u8 GetStageByBerryTreeId(u8); extern u16 GetStageDurationByBerryType(u8); -extern void SetMainCallback2(void*); extern void sub_80A68CC(); -extern u16 Random(void); extern u8 sub_8060234(u8, u8, u8); -extern u8 AddBagItem(u16, u8); extern void sub_8060288(u8, u8, u8); -extern u8 IsBagPocketNonEmpty(u8); -extern void GetCameraCoords(s16*, s16*); extern u8 FieldObjectGetBerryTreeId(u8); extern u8 *GetFieldObjectScriptPointerForComparison(); diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c index 22fc8cc13..7e00223ce 100644 --- a/src/clear_save_data_menu.c +++ b/src/clear_save_data_menu.c @@ -1,4 +1,6 @@ #include "global.h" +#include "clear_save_data_menu.h" +#include "save.h" #include "task.h" #include "songs.h" #include "menu.h" @@ -6,7 +8,6 @@ #include "sprite.h" #include "palette.h" #include "sound.h" -#include "clear_save_data_menu.h" extern u8 gSystemText_ClearAllSaveDataPrompt[]; extern u8 gSystemText_ClearingData[]; diff --git a/src/coins.c b/src/coins.c index acd8c6e10..c07a0c7c7 100644 --- a/src/coins.c +++ b/src/coins.c @@ -1,4 +1,5 @@ #include "global.h" +#include "coins.h" #include "menu.h" #include "string_util.h" @@ -6,7 +7,6 @@ extern u8 gOtherText_Coins2[]; -void PrintCoins(s32, u8, u8, u8); void UpdateCoinsWindow(s32 a, u8 b, u8 c) { diff --git a/src/decompress.c b/src/decompress.c index b38acc7b2..16c9f39ed 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -1,6 +1,6 @@ #include "global.h" +#include "decompress.h" #include "species.h" -#include "sprite.h" #define WRAM 0x02000000 @@ -10,8 +10,6 @@ extern void *gUnknown_081FAF4C[]; extern void DrawSpindaSpots(u16, u32, void *, u8); -void sub_800D378(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *e, s32 f, u32 g, u32 h); - void sub_800D238(const void *src, void *dest) { LZ77UnCompWram(src, dest); diff --git a/src/field_camera.c b/src/field_camera.c index 02db33bf2..1986e33d7 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -1,5 +1,7 @@ #include "global.h" -#include "fieldmap.h" +#include "field_camera.h" +#include "field_player_avatar.h" +#include "asm_fieldmap.h" #include "sprite.h" #include "text.h" @@ -7,12 +9,8 @@ extern u16 gBGTilemapBuffers[4][0x400]; //ToDo: argument types -extern u8 MapGridGetMetatileLayerTypeAt(); -extern u8 player_get_direction_upper_nybble(void); extern void ResetBerryTreeSparkleFlags(void); extern void RotatingGatePuzzleCameraUpdate(s16, s16); -extern int MapGridGetMetatileIdAt(int, int); -extern int CameraMove(int, int); extern u8 gUnknown_0202E854; diff --git a/src/field_door.c b/src/field_door.c index 68c884af1..8aac6cce3 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -1,5 +1,6 @@ #include "global.h" #include "task.h" +#include "field_camera.h" extern u8 MetatileBehavior_IsDoor(u8); diff --git a/src/field_effect.c b/src/field_effect.c index 97301ab50..480e970ab 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1,4 +1,6 @@ #include "global.h" +#include "field_effect.h" +#include "weather.h" #include "sprite.h" typedef bool8 (*FldEffCmd)(u8 **, u32 *); diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 6719f6c3a..be9d07582 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1,5 +1,7 @@ #include "global.h" -#include "fieldmap.h" +#include "field_player_avatar.h" +#include "field_map_obj.h" +#include "rom4.h" #include "flag.h" #include "main.h" #include "menu.h" @@ -7,8 +9,10 @@ #include "script.h" #include "songs.h" #include "sound.h" -#include "sprite.h" #include "task.h" +#include "field_effect.h" +#include "wild_encounter.h" +#include "asm_fieldmap.h" struct UnknownStruct { @@ -34,19 +38,12 @@ extern u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); extern u8 FieldObjectGetSpecialAnim(struct MapObject *); extern bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8); extern void FieldObjectClearAnim(struct MapObject *); -extern u8 sub_80E5DEC(u8); extern s16 sub_80E6034(void); -extern u8 player_get_direction_upper_nybble(void); -extern u8 player_get_direction_lower_nybble(void); -extern u8 MapGridGetMetatileBehaviorAt(s32, s32); -extern u32 FieldEffectStart(u8); -extern void PlayerGetDestCoords(s16 *, s16 *); extern bool8 MetatileBehavior_IsSurfableFishableWater(u8); extern bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *); extern void sub_806451C(void); extern void sub_805B980(struct MapObject *, u8); extern void sub_8127ED0(u8, u8); -extern bool8 player_should_look_direction_be_enforced_upon_movement(void); extern bool8 is_tile_x69_2_warp_door(u8); extern bool8 pokemon_has_move(struct Pokemon *, u8); extern u8 GetSimpleGoAnimId(u8); @@ -56,19 +53,16 @@ extern u8 GetOppositeDirection(u8); extern u8 GetFaceDirectionAnimId(u8); extern u8 sub_80608D0(u8); extern bool8 GetFishingWildMonListHeader(void); -extern void FishingWildEncounter(u8); extern u8 npc_block_way(struct MapObject *, s16, s16, u8); extern u8 GetFieldObjectIdByXY(s16, s16); extern u8 sub_8056F08(u8); extern u8 GetLedgeJumpDirection(s16, s16, u8); extern u8 GetFieldObjectIdByXYZ(u16, u16, int); -extern u8 MapGridGetZCoordAt(); extern u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16); extern u8 sub_805FDF8(u8); extern void sub_80BE97C(u8); extern void sub_8127F28(u8, u8, s16); extern u8 sub_805FE08(u8); -extern void sav1_reset_battle_music_maybe(void); extern void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *); extern u8 FieldObjectDirectionToImageAnimId(u8); extern u8 sub_805FD98(u8); @@ -85,9 +79,28 @@ extern u8 sub_8060AE0(u8); extern u8 sub_8060B0C(u8); extern u8 sub_8060B38(u8); extern u8 sub_8060B64(u8); -extern void MovePlayerOnBike(u8, u16, u16); extern void objid_set_invisible(u8); extern void FieldObjectTurn(struct MapObject *, u8); +extern u8 sub_8128124(u8 id); +extern u8 sub_80607F4(u8 a); +extern u8 GetGoSpeed0AnimId(u8 a); +extern u8 sub_8060744(u8 a); +extern u8 d2s_08064034(u8 a); +extern u8 sub_806079C(u8 a); +extern void FieldObjectForceSetSpecialAnim(struct MapObject *pObject, u8 a); +extern u8 GetStepInPlaceDelay8AnimId(u8 a); +extern u8 GetStepInPlaceDelay32AnimId(u8 a); +extern u8 GetJumpLedgeAnimId(u8 a); + +// Bike +extern void MovePlayerOnBike(u8, u16, u16); +extern void sub_80E5B38(u16 i, u16 c); +extern u8 sub_80E5DEC(u8); +extern bool8 player_should_look_direction_be_enforced_upon_movement(void); +extern void sub_80E5FCC(int i, int i1); +extern void sub_80E6010(int i); +extern void sub_80E6084(); +extern void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y); extern u8 gOtherText_OhABite[]; extern u8 gOtherText_PokeOnHook[]; diff --git a/src/fldeff_emotion.c b/src/fldeff_emotion.c index 06eb7bd9e..81ab135c4 100644 --- a/src/fldeff_emotion.c +++ b/src/fldeff_emotion.c @@ -1,6 +1,7 @@ #include "global.h" #include "sprite.h" -#include "fieldmap.h" +#include "asm_fieldmap.h" +#include "field_effect.h" extern u32 gUnknown_0202FF84[]; @@ -9,7 +10,6 @@ extern struct SpriteTemplate gSpriteTemplate_839B528; bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *); -void FieldEffectStop(struct Sprite *sprite, u16 a2); void sub_8084894(struct Sprite *sprite, u16 a2, u8 a3); void objc_exclamation_mark_probably(struct Sprite *sprite); diff --git a/src/heal_location.c b/src/heal_location.c index da2e466a9..13bb125b6 100644 --- a/src/heal_location.c +++ b/src/heal_location.c @@ -1,15 +1,8 @@ #include "global.h" +#include "heal_location.h" #define NUM_HEAL_LOCATIONS 22 -struct HealLocation -{ - s8 group; - s8 map; - u16 x; - u16 y; -}; - extern const struct HealLocation gHealLocations[]; u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum) diff --git a/src/intro.c b/src/intro.c index ac51e456c..3d32cb18e 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1,4 +1,12 @@ #include "global.h" +#include "intro.h" +#include "gba/m4a_internal.h" +#include "m4a.h" +#include "libgncmultiboot.h" +#include "save.h" +#include "decompress.h" +#include "title_screen.h" +#include "new_game.h" #include "link.h" #include "main.h" #include "palette.h" @@ -6,16 +14,9 @@ #include "songs.h" #include "sound.h" #include "species.h" -#include "sprite.h" #include "task.h" #include "trig.h" -struct GcmbStruct -{ - u16 gcmb_field_0; - u8 gcmb_field_2; -}; - extern u16 gUnknown_02039318; extern u16 gUnknown_0203931A; extern u16 gUnknown_02039358; @@ -59,12 +60,38 @@ extern const u8 gIntroCopyright_Gfx[]; extern const u16 gIntroCopyright_Pal[]; extern const u16 gIntroCopyright_Tilemap[]; -extern void LoadCompressedObjectPic(const struct SpriteSheet *); -extern void LoadCompressedObjectPalette(const struct SpritePalette *); -extern void CB2_InitTitleScreen(void); +// rom_813BA94 +extern void sub_813CAF4(u8); +extern void intro_reset_and_hide_bgs(void); +extern void sub_813CCE8(u8); +extern void sub_813CE30(u16, u16, u16, u16); +extern u8 sub_813CE88(/*TODO: arg types*/); +extern u8 sub_813CFA8(/*TODO: arg types*/); +extern void sub_813D084(/*TODO: arg types*/); +extern u8 sub_813D584(/*TODO: arg types*/); +extern void sub_813D788(struct Sprite *); +extern void sub_813D880(struct Sprite *); +extern void sub_813D954(/*TODO: arg types*/); +extern void sub_813DB9C(struct Sprite *); +extern void sub_813DE70(struct Sprite *); +extern void sub_813E10C(struct Sprite *); +extern void sub_813E210(struct Sprite *); +extern void sub_813E7C0(u8); +extern void sub_813E930(/*TODO: arg types*/); +extern void sub_813EB4C(u8); +extern void sub_813EDBC(/*TODO: arg types*/); + +// rom_8148B8C +extern void load_intro_part2_graphics(/*TODO: arg types*/); +extern void sub_8148C78(/*TODO: arg types*/); extern u8 sub_8148EC0(/*TODO: arg types*/); +extern void sub_8149020(/*TODO: arg types*/); extern u8 intro_create_brendan_sprite(/*TODO: arg types*/); extern u8 intro_create_may_sprite(/*TODO: arg types*/); +extern u8 intro_create_latios_sprite(/*TODO: arg types*/); +extern u8 intro_create_latias_sprite(/*TODO: arg types*/); + +extern void remove_some_task(void); static void MainCB2_EndIntro(void); static void Task_IntroLoadPart1Graphics(u8); @@ -86,22 +113,6 @@ static void task_intro_16(u8); static void task_intro_17(u8); static void Task_IntroPokemonBattle(u8); static void task_intro_19(u8); -void sub_813CAF4(u8); -void intro_reset_and_hide_bgs(void); -void sub_813CCE8(u8); -void sub_813CE30(u16, u16, u16, u16); -u8 sub_813CE88(/*TODO: arg types*/); -u8 sub_813CFA8(/*TODO: arg types*/); -u8 sub_813D584(/*TODO: arg types*/); -void sub_813D788(struct Sprite *); -void sub_813D880(struct Sprite *); -sub_813D954(/*TODO: arg types*/); -void sub_813DB9C(struct Sprite *); -void sub_813DE70(struct Sprite *); -void sub_813E10C(struct Sprite *); -void sub_813E210(struct Sprite *); -void sub_813E7C0(u8); -void sub_813EB4C(u8); static void VBlankCB_Intro(void) { diff --git a/src/item.c b/src/item.c index 8bc0cf0f0..84ab4c1c8 100644 --- a/src/item.c +++ b/src/item.c @@ -1,5 +1,5 @@ #include "global.h" -#include "berry.h" +#include "item.h" #include "string_util.h" extern struct Berry *GetBerryInfo(u8 berry); @@ -7,8 +7,6 @@ extern struct Berry *GetBerryInfo(u8 berry); extern u8 gOtherText_Berry2[]; extern u8 gUnknown_02038560; -typedef void (*ItemUseFunc)(u8); - struct Item { u8 name[14]; @@ -46,8 +44,6 @@ enum KEYITEMS_POCKET }; -struct Item *ItemId_GetItem(u16); -u8 ItemId_GetPocket(u16); static void CompactPCItems(void); void CopyItemName(u16 itemId, u8 *string) diff --git a/src/landmark.c b/src/landmark.c index aa4d8c6fa..4657a0083 100644 --- a/src/landmark.c +++ b/src/landmark.c @@ -1,4 +1,5 @@ #include "global.h" +#include "landmark.h" #include "flag.h" #define MAPSEC_NONE 0x58 diff --git a/src/link.c b/src/link.c index 47820185c..2208390da 100644 --- a/src/link.c +++ b/src/link.c @@ -9,6 +9,7 @@ #include "rng.h" #include "menu.h" #include "sound.h" +#include "save.h" #define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT) diff --git a/src/lottery_corner.c b/src/lottery_corner.c index c807237af..f073688e0 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -1,5 +1,5 @@ #include "global.h" -#include "pokemon.h" +#include "lottery_corner.h" #include "rng.h" #include "string_util.h" #include "var.h" @@ -14,8 +14,6 @@ extern u16 gSpecialVar_0x8006; static EWRAM_DATA u16 sWinNumberDigit = 0; static EWRAM_DATA u16 sOtIdDigit = 0; -void sub_8145D14(u32); -u32 sub_8145D3C(void); static u8 GetMatchingDigits(u16, u16); void sub_8145A78(void) diff --git a/src/main.c b/src/main.c index ef7e76df6..0023925f8 100644 --- a/src/main.c +++ b/src/main.c @@ -1,12 +1,15 @@ #include "global.h" +#include "main.h" +#include "play_time.h" +#include "m4a.h" #include "gba/m4a_internal.h" #include "gba/flash_internal.h" #include "siirtc.h" -#include "main.h" #include "rtc.h" #include "link.h" #include "rng.h" #include "sound.h" +#include "intro.h" extern struct SoundInfo gSoundInfo; extern u32 gUnknown_3004820; @@ -64,7 +67,6 @@ EWRAM_DATA void (*gFlashTimerIntrFunc)(void) = NULL; extern void sub_800C35C(void); extern void remove_some_task(void); -extern void c2_copyright_1(); extern u32 sub_80558AC(void); extern u32 sub_8055910(void); extern u32 sub_8055940(void); diff --git a/src/main_menu.c b/src/main_menu.c index 966f93f0d..eb5867d5d 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,4 +1,6 @@ #include "global.h" +#include "save_menu_util.h" +#include "option_menu.h" #include "text.h" #include "sprite.h" #include "task.h" @@ -11,6 +13,8 @@ #include "pokemon.h" #include "menu.h" #include "sound.h" +#include "title_screen.h" +#include "decompress.h" #define BirchSpeechUpdateWindowText() ((u8)MenuUpdateWindowText_OverrideLineLength(24)) @@ -19,15 +23,8 @@ extern void CreatePokeballSprite(u8 r0, u8 r1, u8 r2, u8 r3, u8 s1, u8 s2, u8 s3 extern bool32 IsMysteryGiftAvailable(void); extern void CB2_ContinueSavedGame(void); extern void CB2_InitMysteryEventMenu(void); -extern void CB2_InitOptionMenu(void); -extern void CB2_InitTitleScreen(void); -extern void FormatPlayTime(u8 *str, u16 hours, u16 minutes, bool16 colon); -extern u16 GetPokedexSeenCount(void); -extern u8 GetBadgeCount(void); extern void DoNamingScreen(u8 r0, struct SaveBlock2 *r1, u16 r2, u16 r3, u8 s0, MainCallback s4); extern void CB2_NewGame(void); -extern void DecompressPicFromTable_2(const struct SpriteSheet *, u8, u8, void *, void *, u32); -extern void LoadCompressedObjectPalette(const struct SpritePalette *); extern u8 CreateBirchSprite(u8, u8, u8); extern u8 CreateTrainerSprite_BirchSpeech(u8, u16, u16, u8, void *); diff --git a/src/map_obj_80643A4.c b/src/map_obj_80643A4.c index 8e2faf268..d30fab49c 100644 --- a/src/map_obj_80643A4.c +++ b/src/map_obj_80643A4.c @@ -1,10 +1,10 @@ #include "global.h" #include "sprite.h" -#include "fieldmap.h" +#include "asm_fieldmap.h" +#include "field_effect.h" extern void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8); extern u8 FieldObjectDirectionToImageAnimId(u8); -extern u32 FieldEffectStart(u8); extern void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *); extern struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c index 422903a97..bbe08ac37 100644 --- a/src/map_obj_lock.c +++ b/src/map_obj_lock.c @@ -1,9 +1,8 @@ #include "global.h" +#include "map_obj_lock.h" +#include "field_player_avatar.h" #include "task.h" -#include "fieldmap.h" -extern void sub_80594C0(void); -extern void sub_80597F4(void); extern void player_bitmagic(void); extern void sub_80643A4(struct MapObject *); extern void sub_8064470(u8); diff --git a/src/menu.c b/src/menu.c index 5744df4c1..3b0440afb 100644 --- a/src/menu.c +++ b/src/menu.c @@ -5,6 +5,7 @@ #include "songs.h" #include "text_window.h" #include "sound.h" +#include "menu_cursor.h" struct Menu { @@ -27,12 +28,6 @@ static u8 sub_80724F4(u8, u8, u8, u8 * const [][2], u8); static void sub_8072620(u8, u8, u8, u8 * const [][2], u8); static void sub_8072D18(u8, u8); -extern void sub_814A5C0(u8, u16, u8, u16, u8); -extern void sub_814A880(u8, u8); -extern void sub_814A904(void); -extern void sub_814A958(u8); -extern void sub_814A7FC(void); - static struct Menu gMenu; EWRAM_DATA struct Window gMenuWindow = {0}; @@ -46,7 +41,7 @@ EWRAM_DATA u16 gMenuMessageBoxContentTileOffset = 0; extern const u8 *gUnknown_08376D74[][2]; -void InitMenuWindow(struct WindowConfig *winConfig) +void InitMenuWindow(const struct WindowConfig *winConfig) { InitMenuWindowInternal(winConfig, 1); } diff --git a/src/menu_cursor.c b/src/menu_cursor.c index 21e4d9d58..c87716f01 100644 --- a/src/menu_cursor.c +++ b/src/menu_cursor.c @@ -1,4 +1,5 @@ #include "global.h" +#include "menu_cursor.h" #include "sprite.h" #include "palette.h" @@ -29,11 +30,6 @@ extern u8 gUnknown_0203A3D2; extern u8 gUnknown_0203A3D3; extern u8 gUnknown_0203A3D4; -void sub_814A7FC(void); -void sub_814A958(u8 a1); -void sub_814AD44(void); -void sub_814ADF4(u8 a1); - void sub_814A590(void) { gUnknown_0203A3D0 = 0x40; diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c index 139650c12..3353ec58e 100644 --- a/src/mori_debug_menu.c +++ b/src/mori_debug_menu.c @@ -1,8 +1,10 @@ +#include "global.h" +#include "mori_debug_menu.h" +#include "start_menu.h" +#include "menu.h" #include "main.h" #include "string_util.h" -#include "pokemon.h" -extern void sub_8071C20(void); extern u16 sub_8041870(u16); extern void sub_810CA6C(s32); extern u8 (*gCallback_03004AE8)(void); diff --git a/src/new_game.c b/src/new_game.c index 3225ba2bd..97a6c6ee0 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -1,9 +1,13 @@ #include "global.h" +#include "new_game.h" +#include "play_time.h" +#include "pokemon_size_record.h" +#include "script.h" +#include "rom4.h" +#include "pokedex.h" +#include "lottery_corner.h" #include "rng.h" #include "rtc.h" -#include "pokemon.h" - -extern void warp1_set(s8, s8, s8, s8, s8); extern u8 gUnknown_020297EC; diff --git a/src/option_menu.c b/src/option_menu.c index ede91acf0..6d6310b46 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "option_menu.h" #include "main.h" #include "menu.h" #include "palette.h" diff --git a/src/palette.c b/src/palette.c index 243c0c87b..53ade0105 100644 --- a/src/palette.c +++ b/src/palette.c @@ -1,5 +1,6 @@ #include "global.h" #include "palette.h" +#include "decompress.h" enum { @@ -37,7 +38,6 @@ struct PaletteStruct u8 ps_field_9; }; -extern void sub_800D238(const void *src, void *dest); extern void BlendPalette(u16, u16, u8, u16); EWRAM_DATA u16 gPlttBufferUnfaded[0x200] = {0}; diff --git a/src/play_time.c b/src/play_time.c index 4eabf38cc..9882c9c4b 100644 --- a/src/play_time.c +++ b/src/play_time.c @@ -10,8 +10,6 @@ enum static u8 sPlayTimeCounterState; -void PlayTimeCounter_SetToMax(); - void PlayTimeCounter_Reset() { sPlayTimeCounterState = STOPPED; diff --git a/src/pokedex.c b/src/pokedex.c index 8dfc4212c..c7f3b5f5c 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -1,65 +1,16 @@ #include "global.h" +#include "pokedex.h" +#include "gba/m4a_internal.h" +#include "string_util.h" +#include "m4a.h" +#include "decompress.h" #include "main.h" #include "menu.h" #include "palette.h" #include "rng.h" #include "songs.h" #include "sound.h" -#include "sprite.h" #include "task.h" -#include "text.h" - -struct PokedexListItem -{ - u16 dexNum; - u16 seen:1; - u16 owned:1; -}; - -struct PokedexView -{ - struct PokedexListItem unk0[386]; - u16 unk608; - u8 unk60A_1:1; - u8 unk60A_2:1; - u8 unk60B; - u16 unk60C; - u16 selectedPokemon; - u16 unk610; - u16 dexMode; //National or Hoenn - u16 unk614; - u16 dexOrder; - u16 unk618; - u16 unk61A; - u16 unk61C; - u16 unk61E[4]; - u16 unk626; //sprite id of selected Pokemon - u16 unk628; - u16 unk62A; - u8 unk62C; - u8 unk62D; - u8 unk62E; - u8 unk62F; - s16 unk630; - s16 unk632; - u16 unk634; - u16 unk636; - u16 unk638; - u16 unk63A[4]; - u8 filler642[8]; - u8 unk64A; - u8 unk64B; - u8 unk64C_1:1; - u8 selectedScreen; - u8 unk64E; - u8 unk64F; - u8 menuIsOpen; //menuIsOpen - u8 unk651; - u16 menuCursorPos; //Menu cursor position - s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this) - u8 unk656[8]; - u8 unk65E[8]; -}; // I'm #define-ing these just for now so I can keep using the old unkXXX member names #define unk60E selectedPokemon @@ -157,11 +108,9 @@ extern void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBi extern bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16); extern void remove_some_task(void); extern bool32 IsNationalPokedex(void); -extern u16 GetNationalPokedexCount(u8); extern u8 sub_8091E3C(void); extern void sub_80690C8(void); extern void sub_805469C(void); -extern void LoadCompressedObjectPic(void *); extern u16 HoennToNationalOrder(u16); extern u16 NationalToHoennOrder(u16); extern u16 gPokedexOrder_Alphabetical[]; @@ -169,73 +118,17 @@ extern u16 gPokedexOrder_Weight[]; extern u16 gPokedexOrder_Height[]; extern u8 gSpeciesNames[][11]; -void ClearPokedexView(struct PokedexView *); -void Task_PokedexShowMainScreen(u8 taskId); -void sub_808C0B8(void); -void MainCB(void); -bool8 sub_808D344(u8); -void Task_PokedexMainScreen(u8 taskId); -void sub_808E6BC(void); -void sub_808EDB8(struct Sprite *); -void sub_808CA64(u8 taskId); -void Task_PokedexMainScreenMenu(u8 taskId); -void sub_808CB8C(u8 taskId); -u16 sub_808E48C(u16, u16); -void sub_808C898(u8 taskId); -void Task_ClosePokedex(u8 taskId); -void sub_8091060(u16); -void sub_808CAE4(u8 taskId); -void sub_808D198(u8 taskId); -bool8 sub_808E208(u8, u8, u8); -u8 sub_808E82C(void); -void sub_808E0CC(u16, u16); -u8 sub_808F210(struct PokedexListItem *, u8); -u8 sub_808F284(struct PokedexListItem *, u8); -bool8 sub_808F250(u8); -bool8 sub_808E71C(void); -void sub_808CCC4(u8 taskId); -u16 GetHoennPokedexCount(u8); -void SortPokedex(u8, u8); -void Task_PokedexResultsScreen(u8 taskId); -void sub_808D118(u8 taskId); -void Task_PokedexResultsScreenMenu(u8 taskId); -void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId); -void sub_808CEF8(u8 taskId); -void Task_PokedexResultsScreenExitPokedex(u8 taskId); -void sub_808D640(void); -void sub_808E978(u8); -bool8 sub_8090D90(u16, u8); -void sub_808E090(u8, u8, u16); -void sub_808DEB0(u16, u8, u8, u16); -void sub_808DF88(u16, u8, u8, u16); -u8 sub_808DFE4(u16, u8, u8); -u16 sub_808E888(u16); -u32 sub_808E8C8(u16, u16, u16); -void sub_808EE28(struct Sprite *sprite); -u16 sub_8091818(u8, u16, u16, u16); -u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); //Not sure of return type -void Task_InitPageScreenMultistep(u8 taskId); -void Task_PageScreenProcessInput(u8 taskId); -void Task_InitCryScreenMultistep(u8 taskId); -void Task_InitAreaScreenMultistep(u8 taskId); -void Task_ClosePageScreen(u8 taskId); -void sub_808F888(u8 taskId); -void Task_InitSizeScreenMultistep(u8 taskId); -void Task_AreaScreenProcessInput(u8 taskId); -void sub_808FA00(u8 taskId); -void Task_CryScreenProcessInput(u8 taskId); -void sub_808FFBC(u8 taskId); -void Task_SizeScreenProcessInput(u8 taskId); -void sub_8090040(u8); -void sub_8090498(u8 taskId); -void sub_80904FC(u16); -void sub_8090540(u16); -void sub_8090750(u8); -void sub_8090A3C(u8); -void sub_8091738(u16, u16, u16); u16 NationalPokedexNumToSpecies(u16); + +// asm/pokedex_area_screen +void ShowPokedexAreaScreen(u16 species, u8 *string); + +// asm/pokedex_cry_screen u8 sub_8119E3C(struct CryRelatedStruct *, u8); +void sub_8119F88(u8 a); +void sub_811A050(u16 species); u8 ShowPokedexCryScreen(struct CryRelatedStruct *, u8); +void DestroyCryMeterNeedleSprite(); void sub_808C02C(void) { diff --git a/src/pokemon_2.c b/src/pokemon_2.c index c8d07f88d..78b394b87 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -5,7 +5,6 @@ #include "species.h" #include "main.h" #include "sprite.h" -#include "berry.h" #include "flag.h" extern u8 gPlayerPartyCount; @@ -54,7 +53,6 @@ extern u8 battle_side_get_owner(u8); extern u8 battle_get_side_with_given_state(u8); extern u32 battle_get_per_side_status(u8); extern u8 sub_8018324(u8, u8, u8, u8, u16); -extern u8 sub_803C348(u8); u8 sub_803C348(u8 a1) { diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index 6381881b7..11c00dbe2 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -1,6 +1,6 @@ -#include "gba/gba.h" #include "global.h" -#include "pokemon.h" +#include "pokemon_size_record.h" +#include "string_util.h" #include "species.h" #include "flag.h" #include "var.h" diff --git a/src/record_mixing.c b/src/record_mixing.c index 4996dc01f..1bcd83882 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1,8 +1,7 @@ #include "global.h" +#include "record_mixing.h" #include "link.h" #include "menu.h" -#include "pokemon.h" -#include "rng.h" #include "script.h" #include "songs.h" #include "sound.h" @@ -40,8 +39,6 @@ extern void sub_80BFD44(void *, u32, u8); extern void sub_80C0514(void *, u32, u8); // UB: sub_80FA4E4 declared with 3 arguments instead of 2 extern void sub_80FA4E4(void *, u32, u8); -extern void sub_80B9C6C(void *, u32, u8, void *); -extern void sub_80B9F3C(void *, u8); extern u16 sub_8126338(void); extern u8 sub_8083664(void); extern void sub_80720B0(void); @@ -51,20 +48,6 @@ extern u16 sub_8055588(void); extern void sub_80F7F30(void); extern void sub_8134AC0(void *); -void sub_80B9484(u8); -void sub_80B95F0(u8); -void sub_80BA00C(u8); -void sub_80B97DC(u8); -void Task_CopyRecvBuffer(u8); -void sub_80B9A1C(u8); -u8 GetMultiplayerId_(void); -void StorePtrInTaskData(void *, u16 *); -void *LoadPtrFromTaskData(u16 *); -void sub_80B9B1C(u8 *, size_t, u8); -void sub_80B9B70(u8 *, size_t, u8); -u16 *GetPlayerRecvBuffer(u8 player); -void sub_80B9A78(void); - #define BUFFER_CHUNK_SIZE 200 void sub_80B929C(void) diff --git a/src/rom4.c b/src/rom4.c index 15041cb39..493f37513 100644 --- a/src/rom4.c +++ b/src/rom4.c @@ -1,16 +1,29 @@ #include "global.h" -#include "fieldmap.h" +#include "rom4.h" +#include "field_player_avatar.h" +#include "menu.h" +#include "weather.h" +#include "task.h" +#include "tileset_anim.h" +#include "start_menu.h" +#include "play_time.h" +#include "truck_scene.h" +#include "new_game.h" +#include "heal_location.h" +#include "field_message_box.h" #include "script.h" #include "songs.h" #include "sound.h" #include "rng.h" #include "main.h" #include "palette.h" -#include "text.h" #include "link.h" -#include "sprite.h" #include "flag.h" #include "var.h" +#include "field_camera.h" +#include "field_effect.h" +#include "wild_encounter.h" +#include "asm_fieldmap.h" #ifdef SAPPHIRE #define LEGENDARY_MUSIC BGM_OOAME // Heavy Rain @@ -18,13 +31,6 @@ #define LEGENDARY_MUSIC BGM_HIDERI // Drought #endif -struct UnkWarpStruct -{ - s8 mapGroup; - s8 mapNum; - s16 x, y; -}; - struct UnkTVStruct { u32 tv_field_0; @@ -134,13 +140,7 @@ extern const struct WarpData gDummyWarpData; extern s32 gUnknown_0839ACE8; extern u32 gUnknown_08216694[]; -extern struct UnkWarpStruct *GetHealLocation(u8); -extern u8 GetSav1Weather(void); -extern void PlayerGetDestCoords(u16 *, u16 *); extern u8 sub_810D32C(void); -extern u16 GetLocalWildMon(bool8 *); -extern u16 GetMirageIslandMon(void); -extern void ExecuteTruckSequence(void); extern void sub_8080B60(void); extern void sub_810CC80(void); extern void sub_8080AC4(void); @@ -149,23 +149,12 @@ extern void atk17_seteffectuser(void); extern void sub_80809B0(void); extern void sub_8080990(void); extern u8 sub_80BBB24(void); -extern u16 MapGridGetMetatileBehaviorAt(int, int); extern u8 *sub_80682A8(void *, u8, u8); extern u8 *sub_8068E24(struct UnkStruct_8054FF8_Substruct *); -extern bool8 MapGridIsImpassableAt(s16, s16); extern u8 ZCoordToPriority(u8); -void sub_8053050(void); -void warp_in(void); -void sub_8053570(void); -u8 sav1_map_get_light_level(void); -u8 get_map_light_level_by_bank_and_number(s8, s8); -bool8 is_light_level_1_2_3_5_or_6(u8); -void sub_805363C(s8, s8, s8, s8, s8); -void sub_807D874(u8); void sub_8082BD0(u16, u16); void player_avatar_init_params_reset(void); -u8 TestPlayerAvatarFlags(u8); u8 player_get_direction_lower_nybble(void); u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16, u8); u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8); @@ -181,7 +170,6 @@ bool8 MetatileBehavior_IsLadder(u8); u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void); bool32 sub_8053C44(void); void sub_8053C98(void); -void sav1_reset_battle_music_maybe(void); void sub_8053F0C(void); u8 is_light_level_8_or_9(u8); void sub_8054164(void); @@ -245,7 +233,6 @@ u8 npc_something3(u8, u8); u8 LinkPlayerDetectCollision(u8, u8, s16, s16); void CreateLinkPlayerSprite(u8); void SpriteCB_LinkPlayer(struct Sprite *); -void sub_8056C50(u16, u16); void sub_8052F5C(void) { @@ -515,9 +502,9 @@ void copy_saved_warp2_bank_and_enter_x_to_warp1(void) void sub_8053538(u8 a1) { - struct UnkWarpStruct *warp = GetHealLocation(a1); + const struct HealLocation *warp = GetHealLocation(a1); if (warp) - warp1_set(warp->mapGroup, warp->mapNum, -1, warp->x, warp->y); + warp1_set(warp->group, warp->map, -1, warp->x, warp->y); } void sub_8053570(void) @@ -527,9 +514,9 @@ void sub_8053570(void) void sub_8053588(u8 a1) { - struct UnkWarpStruct *warp = GetHealLocation(a1); + const struct HealLocation *warp = GetHealLocation(a1); if (warp) - warp_set(&gSaveBlock1.warp3, warp->mapGroup, warp->mapNum, -1, warp->x, warp->y); + warp_set(&gSaveBlock1.warp3, warp->group, warp->map, -1, warp->x, warp->y); } void sub_80535C4(u16 a1, u16 a2) @@ -589,9 +576,9 @@ void unref_sub_8053790(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) void sub_80537CC(u8 a1) { - struct UnkWarpStruct *warp = GetHealLocation(a1); + const struct HealLocation *warp = GetHealLocation(a1); if (warp) - warp_set(&gSaveBlock1.warp1, warp->mapGroup, warp->mapNum, -1, warp->x, warp->y); + warp_set(&gSaveBlock1.warp1, warp->group, warp->map, -1, warp->x, warp->y); } void gpu_sync_bg_hide(void) @@ -1,5 +1,4 @@ #include "global.h" -#include "siirtc.h" #include "rtc.h" #include "string_util.h" #include "text.h" @@ -29,19 +28,6 @@ static const s32 sNumDaysInMonths[12] = 31, }; -void RtcDisableInterrupts(); -void RtcRestoreInterrupts(); -u32 ConvertBcdToBinary(u8 bcd); -bool8 IsLeapYear(u8 year); -u16 ConvertDateToDayCount(u8 year, u8 month, u8 day); -u16 RtcGetDayCount(struct SiiRtcInfo *rtc); -void RtcGetInfo(struct SiiRtcInfo *rtc); -void RtcGetDateTime(struct SiiRtcInfo *rtc); -void RtcGetStatus(struct SiiRtcInfo *rtc); -void RtcGetRawInfo(struct SiiRtcInfo *rtc); -u16 RtcCheckInfo(struct SiiRtcInfo *rtc); -void RtcCalcTimeDifference(struct SiiRtcInfo *rtc, struct Time *result, struct Time *t); - void RtcDisableInterrupts() { sSavedIme = REG_IME; diff --git a/src/safari_zone.c b/src/safari_zone.c index 600ba95d2..deb8817ec 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -1,8 +1,11 @@ #include "global.h" +#include "safari_zone.h" +#include "field_player_avatar.h" #include "flag.h" #include "main.h" #include "script.h" #include "string_util.h" +#include "rom4.h" struct PokeblockFeeder { @@ -15,16 +18,11 @@ struct PokeblockFeeder #define NUM_POKEBLOCK_FEEDERS 10 -void ClearAllPokeblockFeeders(void); -void DecrementFeederStepCounters(void); +static void ClearAllPokeblockFeeders(void); +static void DecrementFeederStepCounters(void); extern void c2_exit_to_overworld_2_switch(void); extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void); extern void sub_8080E44(void); -extern void CB2_LoadMap(void); -extern void sav12_xor_increment(u8); -extern void warp_in(void); -extern void GetXYCoordsOneStepInFrontOfPlayer(void *, void *); -extern void PlayerGetDestCoords(u16 *, u16 *); extern u8 gUnknown_02024D26; diff --git a/src/save.c b/src/save.c index c6b82bc0a..6d9ec8b03 100644 --- a/src/save.c +++ b/src/save.c @@ -1,29 +1,10 @@ #include "global.h" +#include "save.h" +#include "gba/gba.h" +#include "rom4.h" #include "gba/flash_internal.h" -struct SaveSectionLocation -{ - void *data; - u16 size; -}; - -struct SaveSection -{ - u8 data[0xFF4]; - u16 id; - u16 checksum; - u32 unknown; - u32 counter; -}; - -struct UnkSaveSection -{ - u8 data[0xFF4]; - u32 unknown; -}; - extern u32 sub_8053108(u8); -extern void sav12_xor_increment(u8); extern u32 ProgramFlashSectorAndVerifyNBytes(u16 sectorNum, u8 *src, u32 n); extern struct SaveSection unk_2000000; @@ -46,14 +27,6 @@ extern struct SaveSectionLocation gSaveSectionLocations[]; extern struct SaveSectionLocation gHallOfFameSaveSectionLocations[]; extern u8 gUnknown_08401E24[]; -u8 sub_81252D8(u16, struct SaveSectionLocation *); -u8 sub_8125440(u8, u8 *); -u8 sub_81255B8(u16, struct SaveSectionLocation *); -u8 sub_81258BC(u16, struct SaveSectionLocation *); -u8 sub_8125BF8(u8, struct SaveSection *); -u8 sub_8125974(struct SaveSectionLocation *); -u16 sub_8125C10(void *, u16); - void ClearSaveData(void) { u16 i; diff --git a/src/save_menu_util.c b/src/save_menu_util.c index c811f5244..c315acda5 100644 --- a/src/save_menu_util.c +++ b/src/save_menu_util.c @@ -1,23 +1,15 @@ #include "global.h" +#include "save_menu_util.h" #include "menu.h" #include "flag.h" +#include "string_util.h" +#include "pokedex.h" extern u8 gOtherText_Player[]; extern u8 gOtherText_Badges[]; extern u8 gOtherText_Pokedex[]; extern u8 gOtherText_PlayTime[]; -extern void ConvertIntToDecimalStringN(u8 *dest, u32 value, int mode, u8 n); - -u8 sub_809473C(void); -u8 GetBadgeCount(void); - -void PrintSavePlayerName(s16 x, s16 y); -void PrintSaveMapName(s16 x, s16 y); -void PrintSaveBadges(s16 x, s16 y); -void PrintSavePokedexCount(s16 x, s16 y); -void PrintSavePlayTime(s16 x, s16 y); - void HandleDrawSaveWindowInfo(s16 left, s16 top) { u32 width = 12; diff --git a/src/scrcmd.c b/src/scrcmd.c index 9d6f36a54..e80777489 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1,10 +1,12 @@ #include "global.h" +#include "field_player_avatar.h" +#include "item.h" #include "script.h" #include "rng.h" #include "palette.h" #include "rtc.h" #include "pokemon.h" -#include "fieldmap.h" +#include "asm_fieldmap.h" #include "main.h" #include "menu.h" #include "decoration.h" @@ -13,43 +15,33 @@ #include "string_util.h" #include "flag.h" #include "var.h" +#include "rom4.h" +#include "weather.h" +#include "map_obj_lock.h" +#include "coins.h" +#include "field_effect.h" extern void ClearRamScript(void); extern void sub_8126160(u8); -extern u8 AddBagItem(u16, u16); -extern u8 RemoveBagItem(u16, u16); -extern u8 CheckBagHasSpace(u16, u16); -extern u8 CheckBagHasItem(u16, u16); -extern u8 GetPocketByItemId(u16); -extern u8 AddPCItem(u16, u16); -extern u8 CheckPCHasItem(u16, u16); extern u8 IsThereStorageSpaceForDecoration(u8); extern s8 sub_81340A8(u8); extern u8 sub_8134074(u8); extern u8 sub_8133FE4(u8); -extern void sav12_xor_increment(u8); extern void sub_8081594(u8); extern void sub_8053CE4(u32); -extern void fade_screen(u8, u8); extern void DoTimeBasedEvents(void); -extern void SetSav1Weather(u32); -extern void sub_80806E4(void); -extern void sub_808073C(void); extern void activate_per_step_callback(u8); extern void sub_8053D14(u16); -extern void warp1_set(s8, s8, s8, s8, s8); extern void sub_8080E88(void); extern void player_avatar_init_params_reset(void); extern void sp13E_warp_to_last_warp(void); extern void sub_8080EF0(void); extern void sp13F_fall_to_last_warp(void); extern void sub_8053720(s16, s16); -extern void PlayerGetDestCoords(u16 *, u16 *); extern void sub_8080F68(void); extern void saved_warp2_set_2(s8, s8, s8, s8, s8, s8); extern void sub_8053690(s8, s8, s8, s8, s8); extern void sub_80536E4(s8, s8, s8, s8, s8); -extern void sub_805363C(s8, s8, s8, s8, s8); extern void sav1_set_battle_music_maybe(u16); extern void sub_8053F84(void); extern void sub_8053FB0(u16); @@ -63,17 +55,12 @@ extern void sub_805C78C(u8, u8, u8); extern void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8); extern void sub_805BCF0(u8, u8, u8, u8); extern void sub_805BD48(u8, u8, u8); -extern u8 player_get_direction_lower_nybble(void); extern u8 FieldObjectFaceOppositeDirection(void *, u8); extern void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8); extern void update_saveblock1_field_object_movement_behavior(u8, u8); extern u8 sub_805B410(u8, u8, s16, s16, u8, u8); extern void sub_8064990(u8, u8); extern bool32 is_c1_link_related_active(void); -extern void sub_8064D20(void); -extern bool8 sub_8064CFC(void); -extern void sub_8064DD8(void); -extern bool8 sub_8064DB4(void); extern u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8); extern u8 FieldObjectClearAnimIfSpecialAnimFinished(void *); extern void sub_80A2178(void); @@ -88,7 +75,6 @@ extern void *picbox_close(void); extern void sub_8106630(u32); extern void ShowContestWinner(void); extern u8 GetLeadMonIndex(void); -extern void CopyItemName(u16, u8 *); extern u8 sub_80BF0B8(u32); extern void sub_80B79B8(u32 *, u32); extern void sub_80B79E0(u32 *, u32); @@ -96,9 +82,6 @@ extern bool8 IsEnoughMoney(u32, u32); extern void sub_80B7C14(u32, u8, u8); extern void RemoveMoneyLabelObject(u8, u8); extern void sub_80B7BEC(u32, u8, u8); -extern void ShowCoinsWindow(u32, u8, u8); -extern void HideCoinsWindow(u8, u8); -extern void UpdateCoinsWindow(u32, u8, u8); extern void *TrainerBattleConfigure(u8 *); extern void sub_80825E4(void); extern u8 *sub_80826E8(void); @@ -118,10 +101,7 @@ extern void sub_80F99CC(void); extern void sub_80C48C8(void); extern void sub_80C4940(void); extern void sub_80C4980(u8); -extern u32 FieldEffectStart(u8); -extern bool8 FieldEffectActiveListContains(u8); extern void sub_8053588(u8); -extern void MapGridSetMetatileIdAt(u32, u32, u16); extern u16 sub_8058790(u32, u32); extern bool8 FieldAnimateDoorOpen(u32, u32); extern bool8 FieldAnimateDoorClose(u32, u32); @@ -130,9 +110,6 @@ extern void FieldSetDoorOpened(u32, u32); extern void FieldSetDoorClosed(u32, u32); extern void ScriptAddElevatorMenuItem(u8, u8, u8, u8); extern void ScriptShowElevatorMenu(void); -extern u16 GetCoins(void); -extern bool8 GiveCoins(u16); -extern bool8 TakeCoins(u16); extern u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8); extern u8 ScriptGiveEgg(u16); extern void ScriptSetMonMoveSlot(u8, u16, u8); diff --git a/src/script.c b/src/script.c index 8e07a580e..a7aa9c809 100644 --- a/src/script.c +++ b/src/script.c @@ -1,6 +1,6 @@ #include "global.h" #include "script.h" -#include "fieldmap.h" +#include "asm_fieldmap.h" #include "var.h" #define RAM_SCRIPT_MAGIC 51 diff --git a/src/sound.c b/src/sound.c index 49ab78cc7..77ad2b9f6 100644 --- a/src/sound.c +++ b/src/sound.c @@ -1,8 +1,9 @@ #include "global.h" +#include "sound.h" #include "gba/m4a_internal.h" #include "task.h" -#include "sound.h" #include "songs.h" +#include "m4a.h" struct Fanfare { diff --git a/src/sprite.c b/src/sprite.c index c91476f51..78a8608ad 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -1,6 +1,8 @@ #include "global.h" -#include "main.h" #include "sprite.h" +#include "main.h" +#include "palette.h" +#include "menu_cursor.h" #define MAX_SPRITE_COPY_REQUESTS 64 @@ -49,9 +51,6 @@ struct OamDimensions s8 height; }; -void LoadPalette(u16 *, u16, u32); -void sub_814A590(void); - static void UpdateOamCoords(void); static void BuildSpritePriorities(void); static void SortSprites(void); diff --git a/src/start_menu.c b/src/start_menu.c index c8e77af66..3237632a8 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "start_menu.h" #include "main.h" #include "menu.h" #include "palette.h" @@ -9,37 +10,31 @@ #include "string_util.h" #include "task.h" #include "flag.h" +#include "rom4.h" +#include "safari_zone.h" +#include "field_player_avatar.h" +#include "weather.h" +#include "save.h" +#include "option_menu.h" +#include "map_obj_lock.h" +#include "save_menu_util.h" //External functions -extern void sub_8064E2C(void); extern void sub_8047A1C(void); -extern u8 sub_8125E6C(void); extern void sub_8047A34(void); -extern void sub_8125E2C(void); extern void remove_some_task(void); extern void dp12_8087EA4(void); -extern void sav12_xor_increment(u8 index); -extern bool8 sub_8125D44(u8); //Saving related -extern void HandleDrawSaveWindowInfo(u8, u8); -extern void sub_80946C8(u8, u8); -extern void save_serialize_map(void); -extern void PlayRainSoundEffect(void); extern void sub_8093130(u8, void (*)(void)); extern void sub_805469C(void); extern void SafariZoneRetirePrompt(void); -extern void CB2_InitOptionMenu(void); extern void sub_8093110(void (*)(void)); extern void sub_80EBA5C(void); extern void sub_80A53F8(void); extern void sub_8089A70(void); extern void CB2_InitPokedex(void); extern u16 GetNationalPokedexCount(u8); -extern void fade_screen(u8, u8); extern bool32 is_c1_link_related_active(); -extern void sub_80594C0(void); -extern void sub_80597F4(void); extern void player_bitmagic(void); -extern bool32 GetSafariZoneFlag(void); extern u8 *sub_8072C44(u8 *, s32, u8, u8); extern bool32 is_c1_link_related_active(void); @@ -88,25 +83,6 @@ extern u8 gSaveText_ThereIsADifferentFile[]; extern u8 gSaveText_WouldYouLikeToSave[]; extern u8 gOtherText_SafariStock[]; -//Public functions -void CreateStartMenuTask(void (*func)(u8)); -void sub_80712B4(u8 taskId); -void sub_8071310(void); -u8 StartMenu_PokedexCallback(void); -u8 StartMenu_PokemonCallback(void); -u8 StartMenu_BagCallback(void); -u8 StartMenu_PokenavCallback(void); -u8 StartMenu_PlayerCallback(void); -u8 StartMenu_SaveCallback(void); -u8 StartMenu_OptionCallback(void); -u8 StartMenu_ExitCallback(void); -u8 StartMenu_RetireCallback(void); -u8 StartMenu_PlayerLinkCallback(void); -void InitSaveDialog(void); -void sub_8071B28(void); -void sub_8071C20(void); -void AppendToList(u8 *list, u8 *pindex, u32 value); - //Private functions static void BuildStartMenuActions(void); static void AddStartMenuAction(u8 action); diff --git a/src/starter_choose.c b/src/starter_choose.c index a80401e8b..725d481be 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -1,22 +1,18 @@ #include "global.h" +#include "starter_choose.h" #include "main.h" #include "menu.h" #include "palette.h" -#include "pokemon.h" #include "songs.h" #include "sound.h" -#include "sprite.h" #include "string_util.h" #include "task.h" -#include "text.h" #include "trig.h" +#include "decompress.h" //Functions that need to be put in headers void remove_some_task(void); -void LoadCompressedObjectPic(void *); -void LoadCompressedObjectPalette(const struct SpritePalette *); u16 SpeciesToNationalPokedexNum(u16); -void DecompressPicFromTable_2(const struct SpriteSheet *, u8, u8, void *, void *, u32); struct MonCoords { @@ -50,7 +46,6 @@ extern struct SpritePalette gUnknown_083F77B4[]; extern struct SpriteTemplate gSpriteTemplate_83F77FC; extern struct SpriteTemplate gUnknown_02024E8C; -u16 GetStarterPokemon(u16); static void MainCallback2(void); static void Task_StarterChoose1(u8 taskId); static void Task_StarterChoose2(u8 taskId); @@ -62,7 +57,6 @@ static void Task_StarterChoose6(u8 taskId); extern u8 *GetPokemonCategory(u16); static void CreateStarterPokemonLabel(u8, u8); static u8 CreatePokemonFrontSprite(u16, u8, u8); -void StarterPokemonSpriteAnimCallback(struct Sprite *); //Position of the sprite of the selected starter Pokemon #define STARTER_PKMN_POS_X 120 diff --git a/src/text_window.c b/src/text_window.c index e7f72a80b..1ac624dd0 100644 --- a/src/text_window.c +++ b/src/text_window.c @@ -1,40 +1,23 @@ #include "global.h" +#include "text_window.h" #include "main.h" #include "text.h" -#include "text_window.h" +#include "palette.h" #define STD_MSG_BOX_LEFT 0 #define STD_MSG_BOX_TOP 14 #define STD_MSG_BOX_WIDTH 26 #define STD_MSG_BOX_HEIGHT 4 -u16 SetTextWindowBaseTileNum(u16); -void LoadTextWindowGraphics(struct Window *); -void LoadTextWindowGraphics_OverridePalSlot(struct Window *, u8); -void LoadTextWindowGraphics_OverrideFrameType(struct Window *, u8); -void DrawTextWindow(struct Window *win, u8 left, u8 top, u8 right, u8 bottom); -const struct FrameGraphics *GetTextWindowFrameGraphics(u8 frameType); static void LoadTextWindowTiles(u8, void *); static void LoadTextWindowPalette(u8, u8); static void DrawTextWindowInternal(u16 *dest, u16 baseTileNum, u8 left, u8 top, u8 right, u8 bottom); -u16 SetMessageBoxBaseTileNum(u16); -void unref_sub_80651DC(struct Window *, u8 *); -void DisplayMessageBox(struct Window *); static u16 GetMessageBoxTilemapEntry(u16 tilemapEntry, u8 x, u8 y, u8 width, u8 height); static void DrawMessageBox(struct Window *win, u8 left, u8 top, u8 width, u8 height); -void DrawStandardMessageBox(struct Window *win); -void LoadMessageBoxTiles(struct Window *win); -void ClearStandardMessageBox(struct Window *win); static u16 sTextWindowBaseTileNum; static u16 sMessageBoxBaseTileNum; -struct FrameGraphics -{ - u8 *tiles; - u16 *palette; -}; - extern const struct FrameGraphics gUnknown_083761F0[20]; extern const u16 gMessageBoxTilemap[5][7]; diff --git a/src/tileset_anim.c b/src/tileset_anim.c index 96030f037..415b69cfe 100644 --- a/src/tileset_anim.c +++ b/src/tileset_anim.c @@ -1,4 +1,5 @@ #include "global.h" +#include "tileset_anim.h" extern u8 *gTilesetAnimTable_General_0[]; extern u8 *gTilesetAnimTable_General_1[]; diff --git a/src/title_screen.c b/src/title_screen.c index d5cfa032b..72833a4e9 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -1,14 +1,15 @@ #include "global.h" +#include "title_screen.h" +#include "intro.h" #include "gba/m4a_internal.h" #include "main.h" #include "palette.h" #include "sound.h" #include "sprite.h" #include "task.h" +#include "decompress.h" extern void m4aSongNumStart(u16); -extern void LoadCompressedObjectPic(void *); -extern void CB2_InitCopyrightScreen(void); extern void CB2_InitMainMenu(void); extern void CB2_InitClearSaveDataScreen(void); extern void CB2_InitResetRtcScreen(void); diff --git a/src/trainer_see.c b/src/trainer_see.c index 968f7c0a1..6e2292067 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -1,18 +1,21 @@ #include "global.h" -#include "fieldmap.h" +#include "trainer_see.h" +#include "field_player_avatar.h" +#include "field_map_obj.h" +#include "asm_fieldmap.h" #include "task.h" #include "sprite.h" +#include "field_effect.h" +#include "script.h" extern u8 * GetFieldObjectScriptPointerByFieldObjectId(u8); extern u8 * GetTrainerFlagFromScriptPointer(u8 *); -extern u8 TrainerCanApproachPlayer(struct MapObject *); extern u8 sub_8060024(struct MapObject *, s16, s16, u8); extern u8 npc_block_way(struct MapObject *, s16, s16, u8); extern u8 npc_running_behaviour_by_direction(u8); extern u8 GetGoSpeed0AnimId(u8); extern u8 GetOppositeDirection(u8); extern u8 GetFaceDirectionAnimId(u8); -extern bool8 FieldEffectActiveListContains(u8); extern bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *); extern bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *); extern bool8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); @@ -22,7 +25,6 @@ extern void FieldObjectSetSpecialAnim(struct MapObject *, u8); extern void LoadWordFromTwoHalfwords(u32, u8 *); extern void StoreWordInTwoHalfwords(u32, u8 *); -extern void sub_80842FC(void (*func)(u8)); extern bool8 (*gIsTrainerInRange[])(struct MapObject *, u16, s16, s16); extern bool8 (*gTrainerSeeFuncList[])(u8, struct Task *, struct MapObject *); @@ -30,11 +32,6 @@ extern bool8 (*gTrainerSeeFuncList2[])(u8, struct Task *, struct MapObject *); extern u32 gUnknown_0202FF84[]; -bool8 CheckTrainer(u8); -bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *, u8, u8); -void sub_80842C8(struct MapObject *, u8); -void RunTrainerSeeFuncList(u8); -void sub_80847D8(u8); bool8 CheckTrainers(void) { diff --git a/src/truck_scene.c b/src/truck_scene.c index 565851856..c8997a643 100644 --- a/src/truck_scene.c +++ b/src/truck_scene.c @@ -1,20 +1,17 @@ #include "global.h" +#include "truck_scene.h" #include "palette.h" #include "task.h" #include "script.h" #include "songs.h" #include "sound.h" +#include "field_camera.h" extern s8 gTruckCamera_HorizontalTable[]; extern void SetCameraPanning(s16 a1, s16 a2); extern void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); -void Task_Truck1(u8 taskId); -void Task_Truck2(u8 taskId); -void Task_Truck3(u8 taskId); -void ExecuteTruckSequence(void); - s32 GetTruckCameraBobbingY(int a1) { s32 result; diff --git a/src/wallclock.c b/src/wallclock.c index 05e30a8cb..e41bf761d 100644 --- a/src/wallclock.c +++ b/src/wallclock.c @@ -1,18 +1,17 @@ #include "global.h" +#include "wallclock.h" +#include "decompress.h" #include "main.h" #include "menu.h" #include "palette.h" #include "rtc.h" #include "songs.h" -#include "sprite.h" #include "task.h" -#include "text.h" #include "trig.h" #include "sound.h" //Functions that need to be put in headers void remove_some_task(void); -void LoadCompressedObjectPic(void *); extern u16 gSpecialVar_0x8004; extern u16 gMiscClockMale_Pal[]; @@ -26,8 +25,6 @@ extern u8 gOtherText_CorrectTimePrompt[]; extern u8 * const gUnknown_08376D74[][2]; extern s8 gClockHandCoords[][2]; -extern struct WindowConfig gWindowConfig_81E6C3C; -extern struct WindowConfig gWindowConfig_81E6CE4; extern struct SpriteTemplate gSpriteTemplate_83F7AD8; extern struct SpriteTemplate gSpriteTemplate_83F7AF0; extern struct SpriteTemplate gSpriteTemplate_83F7B28; diff --git a/src/weather.c b/src/weather.c index 5dddb6614..07a8f9f91 100644 --- a/src/weather.c +++ b/src/weather.c @@ -1,4 +1,5 @@ #include "global.h" +#include "weather.h" #include "task.h" #include "sprite.h" #include "palette.h" @@ -58,20 +59,6 @@ extern u8 gUnknown_083970C8; extern u8 (*gUnknown_0202FC48)[32]; extern u8 (*gUnknown_0202F9E8)[32]; -void sub_807CA34(u8); -void sub_807C9E4(u8); -void sub_807CB10(void); -extern void sub_807DB64(u8, u8); -u8 sub_807CDC4(void); -u8 sub_807CE24(void); -u8 sub_807CE7C(void); -void sub_807CEBC(u8, u8, s8); - -extern void sub_807D1BC(u8, u8, u8, u8, u16); -extern void sub_807D304(int, u8, u16); -extern void sub_807D424(u8, u16); - -void PlayRainSoundEffect(void); void sub_807C828(void) { u8 index; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 151088cd6..d021189e9 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -1,11 +1,15 @@ #include "global.h" +#include "wild_encounter.h" +#include "field_player_avatar.h" +#include "safari_zone.h" +#include "battle_setup.h" #include "abilities.h" -#include "fieldmap.h" -#include "pokemon.h" #include "rng.h" #include "script.h" #include "flag.h" #include "var.h" +#include "rom4.h" +#include "vars.h" struct WildPokemon { @@ -31,20 +35,12 @@ struct WildPokemonHeader }; extern bool8 sub_805759C(u8); -extern void GetXYCoordsOneStepInFrontOfPlayer(void *, void *); extern s16 sub_810CAE4(u8, struct Pokeblock *); -extern bool32 GetSafariZoneFlag(void); -extern u8 TestPlayerAvatarFlags(u8); extern u8 MetatileBehavior_IsLandWildEncounter(u8); extern u8 sub_81344CC(void); extern u8 MetatileBehavior_IsWaterWildEncounter(u8); -extern void CheckForSafariZoneAndProceed(void); extern u8 MetatileBehavior_IsBridge(u8); -extern void PlayerGetDestCoords(u16 *x, u16 *y); extern void sub_80BEA50(u16); -extern void sav12_xor_increment(u8); -extern int MapGridGetMetatileBehaviorAt(int x, int y); -extern struct Pokeblock *SafariZoneGetActivePokeblock(void); extern u16 gRoute119WaterTileData[]; extern struct WildPokemonHeader gWildMonHeaders[]; |