summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-02-14 00:58:22 +0100
committerDizzyEggg <jajkodizzy@wp.pl>2018-02-14 00:58:22 +0100
commit94b47c0686d3f4c5da962011797cc89a2efdd88c (patch)
tree39c301010ead5f96ceb927a72e09de7d9550b266 /include
parentf22be4d0105304147ca982a91c239b9e3a7d31aa (diff)
decompile overworld
Diffstat (limited to 'include')
-rw-r--r--include/field_camera.h9
-rw-r--r--include/field_control_avatar.h41
-rw-r--r--include/field_ground_effect.h2
-rw-r--r--include/field_map_obj.h3
-rw-r--r--include/field_player_avatar.h3
-rw-r--r--include/fieldmap.h1
-rw-r--r--include/global.fieldmap.h6
-rw-r--r--include/global.h12
-rw-r--r--include/overworld.h142
9 files changed, 153 insertions, 66 deletions
diff --git a/include/field_camera.h b/include/field_camera.h
index 6daa9a8a2..6ff8ce006 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -26,5 +26,14 @@ void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y);
void sub_8089C08(s16 *a0, s16 *a1);
void DrawDoorMetatileAt(int x, int y, u16 *arr);
+void move_tilemap_camera_to_upper_left_corner(void);
+void sub_8057A58(void);
+void ResetCameraUpdateInfo(void);
+u32 InitCameraUpdateCallback(u8 a);
+void CameraUpdate(void);
+void SetCameraPanningCallback(void (*a)(void));
+void SetCameraPanning(s16 a, s16 b);
+void InstallCameraPanAheadCallback(void);
+void UpdateCameraPanning(void);
#endif //GUARD_FIELD_CAMERA_H
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
new file mode 100644
index 000000000..b915d1419
--- /dev/null
+++ b/include/field_control_avatar.h
@@ -0,0 +1,41 @@
+#ifndef GUARD_FIELDCONTROLAVATAR_H
+#define GUARD_FIELDCONTROLAVATAR_H
+
+struct FieldInput
+{
+ u8 pressedAButton:1;
+ u8 input_field_0_1:1;
+ u8 pressedStartButton:1;
+ u8 pressedSelectButton:1;
+ u8 input_field_0_4:1;
+ u8 input_field_0_5:1;
+ u8 input_field_0_6:1;
+ u8 pressedBButton:1;
+ u8 input_field_1_0:1;
+ u8 input_field_1_1:1;
+ u8 input_field_1_2:1;
+ u8 input_field_1_3:1;
+ u8 input_field_1_4:1;
+ u8 input_field_1_5:1;
+ u8 input_field_1_6:1;
+ u8 input_field_1_7:1;
+ u8 dpadDirection;
+ u8 input_field_3;
+};
+
+void FieldClearPlayerInput(struct FieldInput *pStruct);
+void FieldGetPlayerInput(struct FieldInput *pStruct, u16 keys, u16 heldKeys);
+int sub_809C014(struct FieldInput *pStruct);
+u8 *sub_80682A8(struct MapPosition *, u8, u8);
+void overworld_poison_timer_set(void);
+void prev_quest_postbuffer_cursor_backup_reset(void);
+u8 *sub_8068E24(struct MapPosition *);
+u8 *GetFieldObjectScriptPointerPlayerFacing(void);
+bool8 mapheader_trigger_activate_at__run_now(struct MapPosition *);
+bool8 sub_8068870(u16 a);
+bool8 sub_8068894(void);
+bool8 sub_8068A64(struct MapPosition *, u16);
+u8 sub_8068F18(void);
+bool8 dive_warp(struct MapPosition *position, u16 b);
+
+#endif // GUARD_FIELDCONTROLAVATAR_H
diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h
index 63b67ceaf..89b14aed1 100644
--- a/include/field_ground_effect.h
+++ b/include/field_ground_effect.h
@@ -10,6 +10,8 @@
// Exported RAM declarations
// Exported ROM declarations
+u8 ZCoordToPriority(u8);
+void FieldObjectUpdateZCoord(struct MapObject *pObject);
void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
void InitObjectPriorityByZCoord(struct Sprite *, u8);
bool8 IsZCoordMismatchAt(u8, s16, s16);
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 198dd9759..8b7e296dd 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -25,6 +25,7 @@ enum SpinnerRunnerFollowPatterns {
// Exported ROM declarations
void sub_808D438(void);
+u8 get_go_image_anim_num(u8);
u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
u8 GetFieldObjectIdByXY(s16, s16);
@@ -88,6 +89,8 @@ bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *ma
u8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *mapObject);
void sub_808F23C(const struct MapObject *mapObject, u8 movementType);
void sub_808F208(const struct MapObject *mapObject);
+void npc_coords_shift_still(struct MapObject *pObject);
+void FieldObjectMoveDestCoords(struct MapObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1);
// Exported data declarations
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index af602245b..de6db5d63 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -1,6 +1,7 @@
#ifndef GUARD_FIELD_PLAYER_AVATAR_H
#define GUARD_FIELD_PLAYER_AVATAR_H
+void player_step(u8 a, u16 b, u16 c);
void ClearPlayerAvatarInfo(void);
void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8);
@@ -31,7 +32,7 @@ u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e);
u8 PlayerGetZCoord(void);
void SetPlayerAvatarTransitionFlags(u16 a);
void sub_808BCE8(void);
-
+void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d);
void sub_808D074(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8);
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 06cb7cc77..23654f536 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -15,5 +15,6 @@ bool8 MapGridIsImpassableAt(s16, s16);
s32 GetMapBorderIdAt(s16, s16);
bool32 CanCameraMoveInDirection(u8);
u16 GetBehaviorByMetatileId(u16 metatileId);
+void sav1_camera_get_focus_coords(u16 *x, u16 *y);
#endif //GUARD_FIELDMAP_H
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index b12febefd..6e262dc9c 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -162,10 +162,10 @@ struct MapConnections
struct MapHeader
{
- /* 0x00 */ struct MapData *mapData;
- /* 0x04 */ struct MapEvents *events;
+ /* 0x00 */ const struct MapData *mapData;
+ /* 0x04 */ const struct MapEvents *events;
/* 0x08 */ u8 *mapScripts;
- /* 0x0C */ struct MapConnections *connections;
+ /* 0x0C */ const struct MapConnections *connections;
/* 0x10 */ u16 music;
/* 0x12 */ u16 mapDataId;
/* 0x14 */ u8 regionMapSectionId;
diff --git a/include/global.h b/include/global.h
index b815e1e5f..8c56c0a58 100644
--- a/include/global.h
+++ b/include/global.h
@@ -144,6 +144,18 @@ struct UCoords16
u16 y;
};
+struct Coords32
+{
+ s32 x;
+ s32 y;
+};
+
+struct UCoords32
+{
+ u32 x;
+ u32 y;
+};
+
struct Time
{
/*0x00*/ s16 days;
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