summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/bg_regs.h1
-rw-r--r--include/bike.h28
-rw-r--r--include/cable_club.h1
-rw-r--r--include/constants/flags.h3
-rw-r--r--include/constants/trainer_types.h8
-rw-r--r--include/credits.h16
-rw-r--r--include/event_data.h1
-rw-r--r--include/event_object_movement.h4
-rw-r--r--include/event_scripts.h22
-rw-r--r--include/field_camera.h7
-rw-r--r--include/field_effect.h1
-rw-r--r--include/field_fadetransition.h12
-rw-r--r--include/field_message_box.h1
-rw-r--r--include/field_player_avatar.h3
-rw-r--r--include/field_screen_effect.h5
-rw-r--r--include/field_specials.h5
-rw-r--r--include/field_tasks.h1
-rw-r--r--include/field_weather.h4
-rw-r--r--include/fieldmap.h12
-rw-r--r--include/fldeff.h1
-rw-r--r--include/global.fieldmap.h22
-rw-r--r--include/global.h4
-rw-r--r--include/heal_location.h2
-rw-r--r--include/link.h2
-rw-r--r--include/link_rfu.h10
-rw-r--r--include/load_save.h4
-rw-r--r--include/m4a.h2
-rw-r--r--include/map_name_popup.h2
-rw-r--r--include/map_preview_screen.h1
-rw-r--r--include/metatile_behavior.h4
-rw-r--r--include/overworld.h64
-rw-r--r--include/quest_log.h31
-rw-r--r--include/quest_log_objects.h1
-rw-r--r--include/script.h10
-rw-r--r--include/strings.h4
-rw-r--r--include/vs_seeker.h1
36 files changed, 215 insertions, 85 deletions
diff --git a/include/bg_regs.h b/include/bg_regs.h
index 660b47d1e..e16cf3119 100644
--- a/include/bg_regs.h
+++ b/include/bg_regs.h
@@ -2,5 +2,6 @@
#define GUARD_BG_REGS_H
extern const u8 gBGControlRegOffsets[];
+extern const u16 gOverworldBackgroundLayerFlags[];
#endif //GUARD_BG_REGS_H
diff --git a/include/bike.h b/include/bike.h
index ad2bd999a..abffae435 100644
--- a/include/bike.h
+++ b/include/bike.h
@@ -1,11 +1,35 @@
#ifndef GUARD_BIKE_H
#define GUARD_BIKE_H
-void sub_80BD620(u32 unkC, u32 unk10);
+// TODO: Do the constants make sense in FRLG?
+
+// Player speeds
+enum
+{
+ SPEED_STANDING,
+ SPEED_NORMAL,
+ SPEED_FAST,
+ SPEED_FASTER,
+ SPEED_FASTEST,
+};
+
+// Acro bike states
+enum
+{
+ ACRO_STATE_NORMAL,
+ ACRO_STATE_TURNING,
+ ACRO_STATE_WHEELIE_STANDING,
+ ACRO_STATE_BUNNY_HOP,
+ ACRO_STATE_WHEELIE_MOVING,
+ ACRO_STATE_SIDE_JUMP,
+ ACRO_STATE_TURN_JUMP,
+};
+
+void sub_80BD620(u32 directionHistory, u32 abStartSelectHistory);
bool8 sub_80BD540(void);
void StartTransitionToFlipBikeState(u8 flags);
s16 GetPlayerSpeed(void);
-
+bool8 sub_80BD460(u8);
void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys);
bool32 IsRunningDisallowed(u8 metatileBehavior);
void Bike_HandleBumpySlopeJump(void);
diff --git a/include/cable_club.h b/include/cable_club.h
index 57515efc7..ccdc6b98d 100644
--- a/include/cable_club.h
+++ b/include/cable_club.h
@@ -11,5 +11,6 @@
void sub_8081A90(u8 taskId);
u8 CreateTask_ReestablishLinkInCableClubRoom(void);
void CB2_ReturnFromCableClubBattle(void);
+bool32 GetSeeingLinkPlayerCardMsg(u8 who);
#endif //GUARD_CABLE_CLUB_H
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 6fd532a0e..212718bc9 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -1319,6 +1319,7 @@
#define FLAG_SYS_SAFARI_MODE (SYS_FLAGS + 0x0)
#define FLAG_SYS_VS_SEEKER_CHARGING (SYS_FLAGS + 0x1)
+#define FLAG_SYS_CRUISE_MODE (SYS_FLAGS + 0x2)
#define FLAG_SYS_WHITE_FLUTE_ACTIVE (SYS_FLAGS + 0x3)
#define FLAG_SYS_BLACK_FLUTE_ACTIVE (SYS_FLAGS + 0x4)
#define FLAG_SYS_USE_STRENGTH (SYS_FLAGS + 0x5)
@@ -1437,7 +1438,7 @@
#define SPECIAL_FLAGS_START 0x4000
#define SPECIAL_FLAGS_COUNT 16
#define FLAG_SPECIAL_FLAG_0x4000 0x4000
-#define FLAG_SPECIAL_FLAG_0x4001 0x4001
+#define FLAG_DONT_TRANSITION_MUSIC 0x4001
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
#define FLAG_SPECIAL_FLAG_0x4004 0x4004
diff --git a/include/constants/trainer_types.h b/include/constants/trainer_types.h
new file mode 100644
index 000000000..c2adf1e12
--- /dev/null
+++ b/include/constants/trainer_types.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_CONSTANTS_TRAINER_TYPES_H
+#define GUARD_CONSTANTS_TRAINER_TYPES_H
+
+#define TRAINER_TYPE_NONE 0
+#define TRAINER_TYPE_NORMAL 1
+#define TRAINER_TYPE_SEE_ALL_DIRECTIONS 2
+
+#endif // GUARD_CONSTANTS_TRAINER_TYPES_H
diff --git a/include/credits.h b/include/credits.h
index 763abd77f..8207b703c 100644
--- a/include/credits.h
+++ b/include/credits.h
@@ -3,4 +3,20 @@
extern bool8 gHasHallOfFameRecords;
+#define CREDITSOVWLDCMD_FB 0xFB
+#define CREDITSOVWLDCMD_FC 0xFC
+#define CREDITSOVWLDCMD_END 0xFD
+#define CREDITSOVWLDCMD_LOADMAP 0xFE
+#define CREDITSOVWLDCMD_FF 0xFF
+
+#define CREDITSOVWLDLOADMAP(_map, _x, _y, _delay) \
+ { CREDITSOVWLDCMD_LOADMAP, MAP_GROUP(_map), MAP_NUM(_map) }, \
+ { _x, _y, _delay }
+
+#define CREDITSOVWLDSCROLL(_xspeed, _yspeed, _length) \
+ { _xspeed, _yspeed, _length }
+
+#define CREDITSOVWLDEND \
+ { CREDITSOVWLDCMD_END, CREDITSOVWLDCMD_END, CREDITSOVWLDCMD_END }
+
#endif //GUARD_CREDITS_H
diff --git a/include/event_data.h b/include/event_data.h
index e635cbc6d..269762b23 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -58,5 +58,6 @@ void ResetMysteryEventFlags(void);
void ResetMysteryEventVars(void);
bool32 IsNationalPokedexEnabled(void);
void sub_806E190(void);
+void ClearTempFieldEventData(void);
#endif // GUARD_EVENT_DATA_H
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index 792118c00..0c383b2bb 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -71,7 +71,7 @@ void LoadPlayerObjectReflectionPalette(u16, u8);
void LoadSpecialObjectReflectionPalette(u16, u8);
void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16);
void PatchObjectPalette(u16, u8);
-void sub_808E16C(s16, s16);
+void sub_805EDF0(s16, s16);
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
void sub_8063AD4(s16, s16, s16 *, s16 *);
u8 GetFaceDirectionAnimNum(u8);
@@ -221,5 +221,7 @@ u8 GetAcroPopWheelieMoveDirectionMovementAction(u32 direction);
u8 GetAcroWheelieMoveDirectionMovementAction(u32 direction);
u8 sub_80641EC(u32 direction);
u8 GetFishingBiteDirectionAnimNum(u8 direction);
+void TrySpawnObjectEvents(s16 cameraX, s16 cameraY);
+void ResetObjectEvents(void);
#endif // GUARD_EVENT_OBJECT_MOVEMENT_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index 9b78854fa..a1bb5e35d 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1259,4 +1259,26 @@ extern const u8 EventScript_FieldPoison[];
extern const u8 EventScript_EggHatch[];
extern const u8 EventScript_1C1361[];
+// overworld
+
+extern const u8 EventScript_ResetEliteFourEnd[];
+extern const u8 CableClub_EventScript_DoLinkRoomExit[];
+extern const u8 CableClub_EventScript_TooBusyToNotice[];
+extern const u8 CableClub_EventScript_ReadTrainerCard[];
+extern const u8 CableClub_EventScript_ReadTrainerCardColored[];
+extern const u8 BattleColosseum_4P_EventScript_PlayerSpot0[];
+extern const u8 BattleColosseum_4P_EventScript_PlayerSpot1[];
+extern const u8 BattleColosseum_4P_EventScript_PlayerSpot2[];
+extern const u8 BattleColosseum_4P_EventScript_PlayerSpot3[];
+extern const u8 RecordCenter_EventScript_Spot0[];
+extern const u8 RecordCenter_EventScript_Spot1[];
+extern const u8 RecordCenter_EventScript_Spot2[];
+extern const u8 RecordCenter_EventScript_Spot3[];
+extern const u8 BattleColosseum_2P_EventScript_PlayerSpot0[];
+extern const u8 BattleColosseum_2P_EventScript_PlayerSpot1[];
+extern const u8 TradeCenter_EventScript_Chair0[];
+extern const u8 TradeCenter_EventScript_Chair1[];
+extern const u8 TradeCenter_ConfirmLeaveRoom[];
+extern const u8 TradeCenter_TerminateLink[];
+
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_camera.h b/include/field_camera.h
index 2d1ce2ce9..a3275eb9d 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -20,6 +20,7 @@ struct CameraObject
extern struct CameraObject gFieldCamera;
extern u16 gTotalCameraPixelOffsetX;
extern u16 gTotalCameraPixelOffsetY;
+extern bool8 gBikeCameraAheadPanback;
// Exported ROM declarations
@@ -31,5 +32,11 @@ void SetCameraPanning(s16 x, s16 y);
void UpdateCameraPanning(void);
void InstallCameraPanAheadCallback(void);
void DrawDoorMetatileAt(int x, int y, const u16 *data);
+void move_tilemap_camera_to_upper_left_corner(void);
+void CameraUpdate(void);
+void FieldUpdateBgTilemapScroll(void);
+void ResetCameraUpdateInfo(void);
+u32 InitCameraUpdateCallback(u8 trackedSpriteId);
+void sub_805ACF0(void);
#endif //GUARD_FIELD_CAMERA_H
diff --git a/include/field_effect.h b/include/field_effect.h
index 40c58f44e..f9760d87f 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -27,5 +27,6 @@ void ReturnToFieldFromFlyMapSelect(void);
void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
void SpriteCB_PopOutOfAsh(struct Sprite * sprite);
void SpriteCB_LavaridgeGymWarp(struct Sprite * sprite);
+void FieldEffectActiveListClear(void);
#endif //GUARD_FIELD_EFFECTS_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index 240353f5e..b57ef14b0 100644
--- a/include/field_fadetransition.h
+++ b/include/field_fadetransition.h
@@ -3,7 +3,7 @@
#include "global.h"
-void sub_807DF7C(void);
+void FieldCB_RushInjuredPokemonToCenter(void);
void DoWarp(void);
void DoDiveWarp(void);
void DoDoorWarp(void);
@@ -11,9 +11,9 @@ void DoDoorWarp(void);
void DoFallWarp(void);
void DoTeleportWarp(void);
void sub_807E500(void);
-void FieldCB_UnionRoomWarp(void);
+void FieldCB_DefaultWarpExit(void);
void WarpFadeOutScreen(void);
-void FieldCallback_ReturnToEventScript2(void);
+void FieldCB_ContinueScriptHandleMusic(void);
void FadeInFromBlack(void);
void FadeTransition_FadeInOnReturnToStartMenu(void);
void WarpFadeInScreen(void);
@@ -28,5 +28,11 @@ void DoLavaridgeGymB1FWarp(void);
void DoLavaridgeGym1FWarp(void);
void DoTeleportWarp(void);
void DoUnionRoomWarp(void);
+void FieldCB_ReturnToFieldWirelessLink(void);
+void FieldCB_ReturnToFieldCableLink(void);
+bool8 FieldCB_ReturnToFieldOpenStartMenu(void);
+void FieldCB_ContinueScript(void);
+void FieldCB_ContinueScriptHandleMusic(void);
+void FieldCB_WarpExitFadeFromBlack(void);
#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_message_box.h b/include/field_message_box.h
index a6ef14aae..b822fb8f7 100644
--- a/include/field_message_box.h
+++ b/include/field_message_box.h
@@ -9,5 +9,6 @@ bool8 ShowFieldAutoScrollMessage(const u8 *message);
void HideFieldMessageBox(void);
bool8 IsFieldMessageBoxHidden(void);
bool8 textbox_any_visible(void);
+void sub_8069348(void);
#endif // GUARD_FIELD_MESSAGE_BOX_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 73109ae1e..79e6c2aef 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -60,5 +60,8 @@ void sub_805C260(void);
void player_step(u8 direction, u16 newKeys, u16 heldKeys);
bool32 PlayerIsMovingOnRockStairs(u8 direction);
void sub_805BEB8(void);
+void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender);
+void nullsub_24(u8 direction);
+u8 GetRSAvatarGraphicsIdByGender(u8 gender);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h
index aee7dc5a7..06c56d38a 100644
--- a/include/field_screen_effect.h
+++ b/include/field_screen_effect.h
@@ -9,6 +9,9 @@ void sub_80B0244(void);
void sub_807E3EC(void);
void DoOutwardBarnDoorWipe(void);
void Task_BarnDoorWipe(u8 taskId);
-void sub_807F5F0(void);
+void FieldCB_RushInjuredPokemonToCenter(void);
+void WriteFlashScanlineEffectBuffer(u8 flashLevel);
+
+extern const s32 gMaxFlashLevel;
#endif // GUARD_FIELD_SCREEN_EFFECT_H
diff --git a/include/field_specials.h b/include/field_specials.h
index 9c44c35bc..5beeba928 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -31,5 +31,10 @@ void CutMoveOpenDottedHoleDoor(void);
void RunMassageCooldownStepCounter(void);
void IncrementResortGorgeousStepCounter(void);
void IncrementBirthIslandRockStepCount(void);
+void ResetCyclingRoadChallengeData(void);
+void ResetFieldTasksArgs(void);
+bool8 UsedPokemonCenterWarp(void);
+void sub_80CC534(void);
+void sub_80CC59C(void);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/field_tasks.h b/include/field_tasks.h
index aba2a9eee..b037e382d 100644
--- a/include/field_tasks.h
+++ b/include/field_tasks.h
@@ -4,5 +4,6 @@
#include "global.h"
void ActivatePerStepCallback(u8);
+void SetUpFieldTasks(void);
#endif // GUARD_FIELD_TASKS_H
diff --git a/include/field_weather.h b/include/field_weather.h
index 432c8c100..195b35318 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -143,6 +143,10 @@ void sub_807AC98(void);
void SetRainStrengthFromSoundEffect(u16 soundEffect);
void sub_807A790(s8 gammaIndex);
void sub_807A7C4(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay);
+void ApplyWeatherGammaShiftToPal(u8 paletteIndex);
+void StartWeather(void);
+void ResumePausedWeather(void);
+void FadeSelectedPals(u8 mode, s8 delay, u32 selectedPalettes);
extern const u16 gCloudsWeatherPalette[];
extern const u16 gSandstormWeatherPalette[];
diff --git a/include/fieldmap.h b/include/fieldmap.h
index cc4a0f7ed..40aa1c916 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -24,7 +24,7 @@ void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(s32, s32);
s32 GetMapBorderIdAt(s32, s32);
bool32 CanCameraMoveInDirection(s32);
-u32 GetBehaviorByMetatileIdAndMapLayout(struct MapLayout *mapLayout, u16 metatile, u8 attr);
+u32 GetBehaviorByMetatileIdAndMapLayout(const struct MapLayout *mapLayout, u16 metatile, u8 attr);
const struct MapHeader * mapconnection_get_mapheader(struct MapConnection * connection);
struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
void sub_8059948(u8 a0, u8 a1);
@@ -34,5 +34,15 @@ u32 GetMetatileAttributeFromRawMetatileBehavior(u32 original, u8 bit);
u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attr);
void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 arg2);
bool8 CameraMove(s32 x, s32 y);
+void copy_map_tileset1_tileset2_to_vram(struct MapLayout const * mapLayout);
+void apply_map_tileset1_tileset2_palette(struct MapLayout const * mapLayout);
+void InitMap(void);
+void copy_map_tileset2_to_vram_2(const struct MapLayout * mapLayout);
+void apply_map_tileset2_palette(const struct MapLayout * mapLayout);
+void InitMapFromSavedGame(void);
+void copy_map_tileset1_to_vram(const struct MapLayout *mapLayout);
+void copy_map_tileset2_to_vram(const struct MapLayout *mapLayout);
+void GetCameraFocusCoords(u16 *x, u16 *y);
+void SetCameraFocusCoords(u16 x, u16 y);
#endif //GUARD_FIELDMAP_H
diff --git a/include/fldeff.h b/include/fldeff.h
index 9dd6121b2..de0fd2f03 100644
--- a/include/fldeff.h
+++ b/include/fldeff.h
@@ -16,6 +16,7 @@ u8 CreateFieldEffectShowMon(void);
u8 MapTransitionIsExit(u8 lightLevel, u8 mapType);
u8 MapTransitionIsEnter(u8 mapType1, u8 mapType2);
bool8 SetUpFieldMove_Flash(void);
+void CB2_DoChangeMap(void);
// cut
bool8 SetUpFieldMove_Cut(void);
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 1858d3344..cd553a55a 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -185,22 +185,30 @@ struct MapConnections
struct MapHeader
{
- /* 0x00 */ struct MapLayout *mapLayout;
- /* 0x04 */ struct MapEvents *events;
- /* 0x08 */ u8 *mapScripts;
- /* 0x0C */ struct MapConnections *connections;
+ /* 0x00 */ const struct MapLayout *mapLayout;
+ /* 0x04 */ const struct MapEvents *events;
+ /* 0x08 */ const u8 *mapScripts;
+ /* 0x0C */ const struct MapConnections *connections;
/* 0x10 */ u16 music;
/* 0x12 */ u16 mapLayoutId;
/* 0x14 */ u8 regionMapSectionId;
/* 0x15 */ u8 cave;
/* 0x16 */ u8 weather;
/* 0x17 */ u8 mapType;
- /* 0x18 */ u8 filler_18;
- /* 0x19 */ u8 escapeRope;
- /* 0x1A */ s8 flags;
+ /* 0x18 */ bool8 bikingAllowed;
+ /* 0x19 */ u8 flags;
+ /* 0x1A */ s8 floorNum;
/* 0x1B */ u8 battleType;
};
+// Flags for gMapHeader.flags, as defined in the map_header_flags macro
+#define MAP_ALLOW_ESCAPE_ROPE (1 << 0)
+#define MAP_ALLOW_RUN (1 << 1)
+#define MAP_SHOW_MAP_NAME (1 << 2)
+#define UNUSED_MAP_FLAGS (1 << 3 | 1 << 4 | 1 << 5 | 1 << 6 | 1 << 7)
+
+#define SHOW_MAP_NAME_ENABLED ((gMapHeader.flags & (MAP_SHOW_MAP_NAME | UNUSED_MAP_FLAGS)) == MAP_SHOW_MAP_NAME)
+
struct ObjectEvent
{
/*0x00*/ /* 0*/ u32 active:1;
diff --git a/include/global.h b/include/global.h
index b2fd67b4b..aa60be994 100644
--- a/include/global.h
+++ b/include/global.h
@@ -743,8 +743,8 @@ struct SaveBlock1
{
/*0x0000*/ struct Coords16 pos;
/*0x0004*/ struct WarpData location;
- /*0x000C*/ struct WarpData warp1;
- /*0x0014*/ struct WarpData warp2;
+ /*0x000C*/ struct WarpData continueGameWarp;
+ /*0x0014*/ struct WarpData dynamicWarp;
/*0x001C*/ struct WarpData lastHealLocation;
/*0x0024*/ struct WarpData escapeWarp;
/*0x002C*/ u16 savedMusic;
diff --git a/include/heal_location.h b/include/heal_location.h
index 9680f8fdd..2480d1723 100644
--- a/include/heal_location.h
+++ b/include/heal_location.h
@@ -11,7 +11,7 @@ struct HealLocation
s16 y;
};
-const struct HealLocation *GetHealLocationPointer(u32 loc);
+const struct HealLocation *GetHealLocation(u32 loc);
void SetWhiteoutRespawnWarpAndHealerNpc(struct WarpData * warp);
#endif // GUARD_HEAL_LOCATION_H
diff --git a/include/link.h b/include/link.h
index e5a40d6a5..d6f35f66d 100644
--- a/include/link.h
+++ b/include/link.h
@@ -289,5 +289,7 @@ void sub_800A900(u8 a0);
u8 sub_800A8A4(void);
void sub_800A9A4(void);
void SetLocalLinkPlayerId(u8 playerId);
+bool32 IsSendingKeysToLink(void);
+u32 GetLinkRecvQueueLength(void);
#endif // GUARD_LINK_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
index ba2eb0120..31075be77 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -88,7 +88,7 @@ struct UnkRfuStruct_2_Sub_124
/* 0x57b */ vu8 full;
};
-struct UnkRfuStruct_2_Sub_9e8
+struct RfuSendQueue
{
/* 0x000 */ u8 slots[40][14];
/* 0x230 */ vu8 recv_slot;
@@ -148,7 +148,7 @@ typedef struct UnkRfuStruct_2
/* 0x102 */ u8 unk_102;
/* 0x104 */ struct RfuTgtData unk_104;
/* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124;
- /* 0x6a0 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8;
+ /* 0x6a0 */ struct RfuSendQueue sendQueue;
/* 0x8d4 */ struct UnkRfuStruct_2_Sub_c1c unk_c1c;
/* 0x8f4 */ vu8 unk_c3c;
/* 0x8f5 */ u8 reconnectedParentIdx;
@@ -227,16 +227,16 @@ void InitRFU(void);
bool32 RfuIsErrorStatus1or2(void);
void RFU_queue_20_70_reset(struct UnkRfuStruct_2_Sub_124 *ptr);
-void RFU_queue_40_14_reset(struct UnkRfuStruct_2_Sub_9e8 *ptr);
+void RFU_queue_40_14_reset(struct RfuSendQueue *ptr);
void RfuSetErrorStatus(u8 a0, u16 msg);
u8 RfuGetErrorStatus(void);
void RFU_queue_20_70_recv(struct UnkRfuStruct_2_Sub_124 *q1, u8 *q2);
-bool8 RFU_queue_40_14_send(struct UnkRfuStruct_2_Sub_9e8 *q1, u8 *q2);
+bool8 RFU_queue_40_14_send(struct RfuSendQueue *q1, u8 *q2);
bool8 RFU_queue_2_14_send(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2);
void RFU_queue_2_14_recv(struct UnkRfuStruct_2_Sub_c1c *q1, const u8 *q2);
bool8 RFU_queue_20_70_send(struct UnkRfuStruct_2_Sub_124 * a0, u8 *a1);
-void RFU_queue_40_14_recv(struct UnkRfuStruct_2_Sub_9e8 * a0, u8 *a1);
+void RFU_queue_40_14_recv(struct RfuSendQueue * a0, u8 *a1);
void InitHostRFUtgtGname(struct GFtgtGname *data, u8 activity, bool32 started, s32 child_sprite_genders);
void UpdateGameData_GroupLockedIn(bool8 started);
bool32 RfuSerialNumberIsValid(u32 a0);
diff --git a/include/load_save.h b/include/load_save.h
index 20df691e5..23c1429ed 100644
--- a/include/load_save.h
+++ b/include/load_save.h
@@ -30,6 +30,8 @@ void ApplyNewEncryptionKeyToWord(u32 * word, u32 encryptionKey);
void ApplyNewEncryptionKeyToHword(u16 * hword, u32 encryptionKey);
void ClearContinueGameWarpStatus2(void);
void SetContinueGameWarpStatusToDynamicWarp(void);
-void sub_804C1AC(void);
+void SetContinueGameWarpStatus(void);
+bool32 UseContinueGameWarp(void);
+void ClearContinueGameWarpStatus();
#endif // GUARD_LOAD_SAVE_H
diff --git a/include/m4a.h b/include/m4a.h
index ee23d917a..b67dd0492 100644
--- a/include/m4a.h
+++ b/include/m4a.h
@@ -25,4 +25,6 @@ void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
+extern const struct SongHeader mus_win_gym;
+
#endif //GUARD_M4A_H
diff --git a/include/map_name_popup.h b/include/map_name_popup.h
index a7c1234c6..3058489f7 100644
--- a/include/map_name_popup.h
+++ b/include/map_name_popup.h
@@ -3,7 +3,7 @@
#include "global.h"
-void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer);
+void ShowMapNamePopup(bool32 palIntoFadedBuffer);
void DismissMapNamePopup(void);
#endif //GUARD_MAP_NAME_POPUP_H
diff --git a/include/map_preview_screen.h b/include/map_preview_screen.h
index a287c6f89..228d37d54 100644
--- a/include/map_preview_screen.h
+++ b/include/map_preview_screen.h
@@ -59,5 +59,6 @@ void MapPreview_InitBgs(void);
void MapPreview_LoadGfx(u8 mapsec);
bool32 MapPreview_IsGfxLoadFinished(void);
void MapPreview_Unload(s32 windowId);
+void MapPreview_StartForestTransition(u8 mapsec);
#endif //GUARD_MAP_PREVIEW_SCREEN_H
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
index a5f5a81b7..793eeb8a1 100644
--- a/include/metatile_behavior.h
+++ b/include/metatile_behavior.h
@@ -24,7 +24,7 @@ bool8 MetatileBehavior_IsUnknownWarp6F(u8 metatileBehavior);
bool8 MetatileBehavior_IsUnknownWarp6C_to_6F(u8 metatileBehavior);
bool8 MetatileBehavior_IsLadder(u8 metatileBehavior);
bool8 MetatileBehavior_IsNonAnimDoor(u8 metatileBehavior);
-bool8 MetatileBehavior_ReturnFalse_2(u8 metatileBehavior);
+bool8 MetatileBehavior_IsDeepSouthWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsSurfable(u8 metatileBehavior);
bool8 MetatileBehavior_IsSemiDeepWater(u8 metatileBehavior);
bool8 MetatileBehavior_IsEastArrowWarp(u8 metatileBehavior);
@@ -96,7 +96,7 @@ bool8 MetatileBehavior_IsUnionRoomWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsWater(u8 metatileBehavior);
bool8 MetatileBehavior_IsFallWarp(u8 metatileBehavior);
bool8 MetatileBehavior_ReturnFalse_13(u8 metatileBehavior);
-bool8 MetatileBehavior_IsCyclingRoadPullDownTile(u8 metatileBehavior);
+bool32 MetatileBehavior_IsCyclingRoadPullDownTile(u8 metatileBehavior);
bool8 MetatileBehavior_IsCyclingRoadPullDownTileGrass(u8 metatileBehavior);
bool8 MetatileBehavior_IsBumpySlope(u8 metatileBehavior);
bool8 MetatileBehavior_IsIsolatedVerticalRail(u8 metatileBehavior);
diff --git a/include/overworld.h b/include/overworld.h
index 730df3667..5f3728dec 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -38,14 +38,14 @@ struct LinkPlayerObjectEvent
u8 active;
u8 linkPlayerId;
u8 objEventId;
- u8 mode;
+ u8 movementMode;
};
struct CreditsOverworldCmd
{
s16 unk_0;
- u16 unk_2;
- u16 unk_4;
+ s16 unk_2;
+ s16 unk_4;
};
/* gDisableMapMusicChangeOnMapLoad */
@@ -53,13 +53,12 @@ struct CreditsOverworldCmd
#define MUSIC_DISABLE_STOP 1
#define MUSIC_DISABLE_KEEP 2
-extern struct UCoords32 gDirectionToVectors[];
+extern const struct UCoords32 gDirectionToVectors[];
extern struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4];
extern MainCallback gFieldCallback;
-extern struct WarpData gUnknown_2031DB4;
-extern struct WarpData gUnknown_2031DBC;
+extern struct WarpData gLastUsedWarp;
extern u8 gUnknown_2031DE0;
extern u8 gFieldLinkPlayerCount;
@@ -68,7 +67,7 @@ extern u8 gLocalLinkPlayerId;
void IncrementGameStat(u8 index);
void Overworld_SetMapObjTemplateCoords(u8, s16, s16);
-void Overworld_SetMapObjTemplateMovementType(u8, u8);
+void Overworld_SetObjEventTemplateMovementType(u8, u8);
void SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
@@ -78,12 +77,8 @@ void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
void SetEscapeWarp(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 sub_80555E0(void);
-void copy_saved_warp3_bank_and_enter_x_to_warp1(void);
+void SetWarpDestinationToEscapeWarp(void);
+void SetWarpDestinationToLastHealLocation(void);
u8 IsMapTypeOutdoors(u8 mapType);
void Overworld_ClearSavedMusic(void);
bool32 sub_8056124(u16 song);
@@ -100,23 +95,19 @@ void Overworld_ChangeMusicTo(u16);
bool32 IsUpdateLinkStateCBActive(void);
void ClearLinkPlayerObjectEvents(void);
-const struct MapHeader *Overworld_GetMapHeaderByGroupAndId(u16, u16);
+const struct MapHeader *const Overworld_GetMapHeaderByGroupAndId(u16, u16);
void ObjectEventMoveDestCoords(struct ObjectEvent *, u32, s16 *, s16 *);
-void sub_8086230(void);
void CB2_ReturnToField(void);
-bool32 sub_8087598(void);
void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
void WarpIntoMap(void);
-u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
-void sub_8086194(void);
-void sub_8084CCC(u8 spawn);
+u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum);
void SetWarpDestinationToMapWarp(s8 mapGroup, s8 mapNum, s8 warpNum);
void c2_load_new_map(void);
void SetWarpDestinationToDynamicWarp(u8 unused);
void mapldr_default(void);
u32 GetGameStat(u8 statId);
-u32 SetGameStat(u8 statId, u32 value);
+void SetGameStat(u8 statId, u32 value);
void CB2_ContinueSavedGame(void);
void sub_8055D5C(struct WarpData *);
@@ -141,8 +132,8 @@ extern u8 gUnknown_2036E28;
extern bool8 (* gFieldCallback2)(void);
void SetLastHealLocationWarp(u8 healLocaionId);
-void sub_8055864(u8 mapGroup, u8 mapNum);
-void CB2_Overworld(void);
+void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum);
+void sub_80568FC(void);
void CB2_OverworldBasic(void);
void CB2_NewGame(void);
bool8 IsMapTypeOutdoors(u8 mapType);
@@ -153,13 +144,13 @@ void Overworld_FadeOutMapMusic(void);
void CB2_LoadMap(void);
bool8 BGMusicStopped(void);
bool8 IsMapTypeIndoors(u8 mapType);
-bool32 sub_8055C9C(void);
+bool32 Overworld_IsBikingAllowed(void);
void Overworld_ResetStateAfterDigEscRope(void);
bool32 sub_8058244(void);
u8 GetCurrentMapType(void);
u8 GetLastUsedWarpMapType(void);
-const struct MapHeader *warp1_get_mapheader(void);
+const struct MapHeader *const GetDestinationWarpMapHeader(void);
void TryFadeOutOldMapMusic(void);
void CB2_ReturnToFieldCableClub(void);
void ResetGameStats(void);
@@ -171,28 +162,29 @@ bool32 sub_8058318(void);
void CB2_ReturnToFieldWithOpenMenu(void);
void CB2_WhiteOut(void);
-void c2_8056854(void);
-void sub_8054F38(u32 newKey);
-void sub_8055778(int);
+void CB2_ReturnToFieldFromMultiplayer(void);
+void ApplyNewEncryptionKeyToGameStats(u32 newKey);
+void SetContinueGameWarpToDynamicWarp(int);
-void sub_8055738(u8 loc);
+void SetContinueGameWarpToHealLocation(u8 loc);
-void sub_8056078(void *, void *);
-void sub_805546C(u8 a0);
+void UpdateAmbientCry(s16 *state, u16 *delayCounter);
+void SetWarpDestinationToHealLocation(u8 a0);
bool32 sub_80582E0(void);
bool32 sub_8058274(void);
+void OverworldWhiteOutGetMoneyLoss(void);
u8 GetCurrentMapBattleScene(void);
void Overworld_ResetStateAfterFly(void);
bool8 sub_8055B38(u16 metatileBehavior);
-void sub_8055DB8(void);
-void sub_8057F5C(void);
-void sub_8057F34(void);
+void Overworld_ResetMapMusic(void);
+u16 QueueExitLinkRoomKey(void);
+u16 sub_8057F34(void);
u32 sub_8057EC0(void);
-void sub_8057F70(void);
-void sub_8057F48(void);
+u16 sub_8057F70(void);
+u16 sub_8057F48(void);
void SetMainCallback1(MainCallback cb);
void CB1_Overworld(void);
-void sub_80568C4(void);
+void CB2_ReturnToFieldContinueScript(void);
u8 GetLastUsedWarpMapSectionId(void);
void StoreInitialPlayerAvatarState(void);
void UpdateEscapeWarp(s16 x, s16 y);
diff --git a/include/quest_log.h b/include/quest_log.h
index 28c69505b..54da8822a 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -4,24 +4,12 @@
#include "global.h"
#include "quest_log_battle.h"
#include "constants/quest_log.h"
-
-struct UnkStruct_3005E90
-{
- u8 unk_0;
- u8 unk_1_0:1;
- u8 unk_1_1:1;
- u8 unk_1_2:1;
- u8 unk_1_3:1;
- u8 unk_1_4:1;
- u8 unk_2;
-};
+#include "field_control_avatar.h"
extern u8 gQuestLogState;
extern u8 gUnknown_3005E88;
-extern u16 sNumEventsInLogEntry;
-extern struct UnkStruct_3005E90 gUnknown_3005E90;
-extern struct QuestLogEntry * sCurQuestLogEntry;
extern const u16 gUnknown_84566A8[];
+extern struct FieldInput gUnknown_3005E90;
void sub_8112720(u8);
void SetQuestLogEvent(u16, const u16 *);
@@ -59,5 +47,20 @@ void sub_8112628(u8 movementActionId);
void sub_81126AC(u8 movementActionId, u8 duration);
void sub_8112588(u8 localId, u8 mapNum, u8 mapGroup, u8 movementActionId, u8 duration);
void sub_8112C9C(void);
+void sub_8110920(void);
+void sub_8111708(void);
+void sub_81127F8(struct FieldInput * a0);
+void sub_8112B3C(void);
+void RunQuestLogCB(void);
+void sub_8111C68(void);
+bool8 sub_8111CD0(void);
+void sub_8115798(void);
+bool8 sub_8113748(void);
+void sub_81119C8(void);
+void sub_8111F14(void);
+void sub_8110FCC(void);
+u8 sub_8110AC8(void);
+void sub_81113E4(void);
+void sub_8111438(void);
#endif //GUARD_QUEST_LOG_H
diff --git a/include/quest_log_objects.h b/include/quest_log_objects.h
index d3e11d11f..fbf73f504 100644
--- a/include/quest_log_objects.h
+++ b/include/quest_log_objects.h
@@ -5,5 +5,6 @@
void SetQuestLogObjectEventsData(struct QuestLog *);
void SetSav1ObjectEventsFromQuestLog(struct QuestLog *, struct ObjectEventTemplate *);
+void sub_815A540(void);
#endif //GUARD_QUEST_LOG_OBJECTS_H
diff --git a/include/script.h b/include/script.h
index 3dd91ca59..a37909137 100644
--- a/include/script.h
+++ b/include/script.h
@@ -49,12 +49,12 @@ u8 *mapheader_get_tagged_pointer(u8 tag);
void mapheader_run_script_by_tag(u8 tag);
u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag);
void RunOnLoadMapScript(void);
-void mapheader_run_script_with_tag_x3(void);
-void mapheader_run_script_with_tag_x5(void);
-void mapheader_run_script_with_tag_x7(void);
-void mapheader_run_script_with_tag_x6(void);
+void RunOnTransitionMapScript(void);
+void RunOnResumeMapScript(void);
+void RunOnReturnToFieldMapScript(void);
+void RunOnDiveWarpMapScript(void);
bool8 TryRunOnFrameMapScript(void);
-void mapheader_run_first_tag4_script_list_match(void);
+void TryRunOnWarpIntoMapScript(void);
u32 CalculateRamScriptChecksum(void);
void ClearRamScript(void);
bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
diff --git a/include/strings.h b/include/strings.h
index 37d856a86..eb6a47ce7 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1037,8 +1037,8 @@ extern const u8 gText_RegionMap_AreaDesc_PatternBush[];
extern const u8 gText_RegionMap_AreaDesc_DottedHole[];
// field_screen_effect
-extern const u8 gUnknown_841B554[];
-extern const u8 gUnknown_841B5B6[];
+extern const u8 gText_PlayerScurriedToCenter[];
+extern const u8 gText_PlayerScurriedBackHome[];
// save_failed_screen
extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[];
diff --git a/include/vs_seeker.h b/include/vs_seeker.h
index d80e558ea..8c3b86194 100644
--- a/include/vs_seeker.h
+++ b/include/vs_seeker.h
@@ -15,5 +15,6 @@ u8 sub_810CF54();
void sub_810D0D0(void);
void sub_810CB90(void);
bool8 sub_810C4EC(void);
+void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum);
#endif //GUARD_VS_SEEKER_H