From 382442c4c8754262c77acb50930df31c63a62355 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 12 Feb 2018 15:01:43 +0100 Subject: start decompiling overworld.s --- include/overworld.h | 51 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-) (limited to 'include/overworld.h') diff --git a/include/overworld.h b/include/overworld.h index 630b0a617..904f61c8e 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -25,11 +25,49 @@ struct UCoords32 extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; extern MainCallback gFieldCallback; +void DoWhiteOut(void); +void Overworld_ResetStateAfterFly(void); +void Overworld_ResetStateAfterTeleport(void); +void Overworld_ResetStateAfterDigEscRope(void); +void sub_8084788(void); +void ResetGameStats(void); +void IncrementGameStat(u8 index); +u32 GetGameStat(u8 index); +void SetGameStat(u8 index, u32 value); +void ApplyNewEncryptionKeyToGameStats(u32 newKey); +void LoadMapObjTemplatesFromHeader(void); +void LoadSaveblockMapObjScripts(void); +void Overworld_SetMapObjTemplateCoords(u8 localId, s16 x, s16 y); +void Overworld_SetMapObjTemplateMovementType(u8 localId, u8 movementType); +void mapdata_load_assets_to_gpu_and_full_redraw(void); +struct MapData *get_mapdata_header(void); +void ApplyCurrentWarp(void); +void set_warp2_warp3_to_neg_1(void); +void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +bool32 warp_data_is_not_neg_1(struct WarpData *warp); +struct MapHeader *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum); +struct MapHeader *const warp1_get_mapheader(void); +void set_current_map_header_from_sav1_save_old_name(void); +void LoadSaveblockMapHeader(void); +void update_camera_pos_from_warpid(void); +void warp_in(void); +void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId); +void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); +void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); +void sub_8084CCC(u8 a1); +void Overworld_SetWarpDestToLastHealLoc(void); +void Overworld_SetHealLocationWarp(u8 healLocationId); +void sub_8084D5C(s16 a1, s16 a2); +void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); + +// to erase later +u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum); +u8 Overworld_GetMapTypeOfSaveblockLocation(void); void Overworld_SetMapObjTemplateCoords(u8, s16, s16); void Overworld_SetMapObjTemplateMovementType(u8, u8); - void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); - void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void Overworld_SetHealLocationWarp(u8); @@ -37,25 +75,18 @@ void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void sub_8084E2C(s8, s8, s8, s8, s8); void sub_8084E80(s8, s8, s8, s8, s8); void sub_8084EBC(s16, s16); - void player_avatar_init_params_reset(void); - bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); void Overworld_ResetStateAfterTeleport(void); - void Overworld_SetFlashLevel(s32 a1); //u8 Overworld_GetFlashLevel(void); void sub_8085524(u16); - void Overworld_SetSavedMusic(u16); void Overworld_ChangeMusicToDefault(void); void Overworld_ChangeMusicTo(u16); - bool32 is_c1_link_related_active(void); extern u16 gUnknown_03005DA8; - void strange_npc_table_clear(void); -const struct MapHeader *get_mapheader_by_bank_and_number(u16, u16); void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); void sub_8086230(void); void c2_exit_to_overworld_2_switch(void); @@ -71,13 +102,11 @@ void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); void mapldr_default(void); u8 get_map_light_from_warp0(void); bool8 is_light_level_1_2_3_5_or_6(u8 a1); - bool32 sub_80875C8(void); bool32 sub_8087634(void); bool32 sub_808766C(void); void IncrementGameStat(u8); u32 GetGameStat(u8); - void CB2_OverworldBasic(void); #endif //GUARD_ROM4_H -- cgit v1.2.3 From f22be4d0105304147ca982a91c239b9e3a7d31aa Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 12 Feb 2018 18:26:26 +0100 Subject: more overworld work --- include/overworld.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'include/overworld.h') diff --git a/include/overworld.h b/include/overworld.h index 904f61c8e..cedad6266 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -63,6 +63,14 @@ void sub_8084D5C(s16 a1, s16 a2); void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); // to erase later +bool32 Overworld_IsBikingAllowed(void); +u8 sub_808532C(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3); +u8 sub_808538C(struct UnkPlayerStruct *playerStruct, u8 a2, u16 a3, u8 a4); +u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void); +bool8 Overworld_MapTypeIsIndoors(u8 mapType); +void SetDefaultFlashLevel(void); +void Overworld_ClearSavedMusic(void); +void sub_8085810(void); u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum); u8 Overworld_GetMapTypeOfSaveblockLocation(void); void Overworld_SetMapObjTemplateCoords(u8, s16, s16); -- cgit v1.2.3 From 94b47c0686d3f4c5da962011797cc89a2efdd88c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 14 Feb 2018 00:58:22 +0100 Subject: decompile overworld --- include/overworld.h | 142 +++++++++++++++++++++++++++++----------------------- 1 file changed, 80 insertions(+), 62 deletions(-) (limited to 'include/overworld.h') diff --git a/include/overworld.h b/include/overworld.h index cedad6266..7f0a1795f 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -1,7 +1,5 @@ -#ifndef GUARD_ROM4_H -#define GUARD_ROM4_H - -#include "main.h" +#ifndef GUARD_OVERWORLD_H +#define GUARD_OVERWORLD_H struct UnkPlayerStruct { @@ -17,19 +15,15 @@ struct LinkPlayerMapObject u8 mode; }; -struct UCoords32 -{ - u32 x, y; -}; - +extern struct WarpData gUnknown_020322DC; extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; -extern MainCallback gFieldCallback; + +extern const struct UCoords32 gUnknown_08339D64[]; void DoWhiteOut(void); void Overworld_ResetStateAfterFly(void); void Overworld_ResetStateAfterTeleport(void); void Overworld_ResetStateAfterDigEscRope(void); -void sub_8084788(void); void ResetGameStats(void); void IncrementGameStat(u8 index); u32 GetGameStat(u8 index); @@ -39,82 +33,106 @@ void LoadMapObjTemplatesFromHeader(void); void LoadSaveblockMapObjScripts(void); void Overworld_SetMapObjTemplateCoords(u8 localId, s16 x, s16 y); void Overworld_SetMapObjTemplateMovementType(u8 localId, u8 movementType); -void mapdata_load_assets_to_gpu_and_full_redraw(void); -struct MapData *get_mapdata_header(void); +const struct MapData *get_mapdata_header(void); void ApplyCurrentWarp(void); void set_warp2_warp3_to_neg_1(void); void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); bool32 warp_data_is_not_neg_1(struct WarpData *warp); -struct MapHeader *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum); -struct MapHeader *const warp1_get_mapheader(void); +const struct MapHeader *Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 mapNum); +const struct MapHeader *warp1_get_mapheader(void); void set_current_map_header_from_sav1_save_old_name(void); void LoadSaveblockMapHeader(void); void update_camera_pos_from_warpid(void); void warp_in(void); void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpId); -void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); -void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void saved_warp2_set(s32 unused, s8 mapGroup, s8 mapNum, s8 warpId); +void saved_warp2_set_2(s32 unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); void sub_8084CCC(u8 a1); void Overworld_SetWarpDestToLastHealLoc(void); void Overworld_SetHealLocationWarp(u8 healLocationId); void sub_8084D5C(s16 a1, s16 a2); void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); - -// to erase later +void sub_8084E14(void); +void sub_8084E2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void warp1_set_to_warp2(void); +void sub_8084E80(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void sub_8084EBC(s16 x, s16 y); +void warp1_set_to_sav1w(void); +void sub_8084F2C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void sub_8084F6C(u8 a1); +void sub_8084FAC(void); +const struct MapConnection *GetMapConnection(u8 dir); +bool8 sub_8084FF8(u8 dir, u16 x, u16 y); +bool8 sub_8085058(u16 x, u16 y); +bool8 sub_8085078(u16 x, u16 y); +void mliX_load_map(u8 mapGroup, u8 mapNum); +void player_avatar_init_params_reset(void); +void walkrun_find_lowest_active_bit_in_bitfield(void); bool32 Overworld_IsBikingAllowed(void); -u8 sub_808532C(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3); -u8 sub_808538C(struct UnkPlayerStruct *playerStruct, u8 a2, u16 a3, u8 a4); -u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void); -bool8 Overworld_MapTypeIsIndoors(u8 mapType); void SetDefaultFlashLevel(void); +void Overworld_SetFlashLevel(s32 flashLevel); +u8 Overworld_GetFlashLevel(void); +void sub_8085524(u16 mapDataId); +void sub_8085540(u8 var); +u8 sub_808554C(void); +u16 GetLocationMusic(struct WarpData *warp); +u16 GetCurrLocationDefaultMusic(void); +u16 GetWarpDestinationMusic(void); +void Overworld_ResetMapMusic(void); +void Overworld_PlaySpecialMapMusic(void); +void Overworld_SetSavedMusic(u16 songNum); void Overworld_ClearSavedMusic(void); -void sub_8085810(void); +void Overworld_ChangeMusicToDefault(void); +void Overworld_ChangeMusicTo(u16 newMusic); +u8 GetMapMusicFadeoutSpeed(void); +void music_something(void); +bool8 sub_80859A0(void); +void Overworld_FadeOutMapMusic(void); +void UpdateAmbientCry(s16 *state, u16 *delayCounter); u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum); +u8 GetMapTypeByWarpData(struct WarpData *warp); u8 Overworld_GetMapTypeOfSaveblockLocation(void); -void Overworld_SetMapObjTemplateCoords(u8, s16, s16); -void Overworld_SetMapObjTemplateMovementType(u8, u8); -void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); -void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -void Overworld_SetHealLocationWarp(u8); -void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -void sub_8084E2C(s8, s8, s8, s8, s8); -void sub_8084E80(s8, s8, s8, s8, s8); -void sub_8084EBC(s16, s16); -void player_avatar_init_params_reset(void); +u8 get_map_light_from_warp0(void); +bool8 is_light_level_1_2_3_5_or_6(u8 mapType); bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); -void Overworld_ResetStateAfterTeleport(void); -void Overworld_SetFlashLevel(s32 a1); -//u8 Overworld_GetFlashLevel(void); -void sub_8085524(u16); -void Overworld_SetSavedMusic(u16); -void Overworld_ChangeMusicToDefault(void); -void Overworld_ChangeMusicTo(u16); +bool8 Overworld_MapTypeIsIndoors(u8 mapType); +u8 sav1_saved_warp2_map_get_name(void); +u8 sav1_map_get_name(void); +u8 GetCurrentMapBattleScene(void); +void overworld_free_bg_tilemaps(void); bool32 is_c1_link_related_active(void); -extern u16 gUnknown_03005DA8; -void strange_npc_table_clear(void); -void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); -void sub_8086230(void); -void c2_exit_to_overworld_2_switch(void); +void CB1_Overworld(void); +void CB2_OverworldBasic(void); +void CB2_Overworld(void); +void SetMainCallback1(void (*cb)(void)); +void sub_8085E94(void *a0); +void CB2_NewGame(void); +void CB2_WhiteOut(void); +void CB2_LoadMap(void); +void sub_8086024(void); +void sub_8086074(void); +void CB2_ReturnToField(void); +void CB2_ReturnToFieldLocal(void); +void CB2_ReturnToFieldLink(void); +void c2_8056854(void); +void CB2_ReturnToFieldWithOpenMenu(void); +void sub_80861B0(void); +void CB2_ReturnToFieldContinueScript(void); +void sub_80861E8(void); +void CB2_ContinueSavedGame(void); +void sub_8086C2C(void); +u32 sub_8087214(void); +bool32 sub_808727C(void); +u16 sub_8087288(void); +u16 sub_808729C(void); +u16 sub_80872B0(void); +u16 sub_80872C4(void); bool32 sub_8087598(void); -void c2_exit_to_overworld_1_continue_scripts_restart_music(void); -void warp_in(void); -u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum); -void sub_8086194(void); -void sub_8084CCC(u8 spawn); -void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpNum); -void c2_load_new_map(void); -void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); -void mapldr_default(void); -u8 get_map_light_from_warp0(void); -bool8 is_light_level_1_2_3_5_or_6(u8 a1); bool32 sub_80875C8(void); bool32 sub_8087634(void); bool32 sub_808766C(void); -void IncrementGameStat(u8); -u32 GetGameStat(u8); -void CB2_OverworldBasic(void); +void ZeroAllLinkPlayerMapObjects(void); -#endif //GUARD_ROM4_H +#endif // GUARD_OVERWORLD_H -- cgit v1.2.3