summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle_anim.h18
-rw-r--r--include/bg_regs.h1
-rw-r--r--include/bike.h34
-rw-r--r--include/cable_club.h1
-rw-r--r--include/constants/event_objects.h18
-rw-r--r--include/constants/flags.h9
-rw-r--r--include/constants/global.h4
-rw-r--r--include/constants/trainer_types.h8
-rw-r--r--include/constants/vars.h9
-rw-r--r--include/credits.h16
-rw-r--r--include/decoration.h55
-rw-r--r--include/event_data.h1
-rw-r--r--include/event_object_movement.h33
-rw-r--r--include/event_scripts.h24
-rw-r--r--include/field_camera.h7
-rw-r--r--include/field_control_avatar.h1
-rw-r--r--include/field_effect.h3
-rw-r--r--include/field_effect_helpers.h18
-rw-r--r--include/field_fadetransition.h14
-rw-r--r--include/field_message_box.h1
-rw-r--r--include/field_player_avatar.h51
-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.h69
-rw-r--r--include/global.h4
-rw-r--r--include/heal_location.h2
-rw-r--r--include/intro.h2
-rw-r--r--include/link.h6
-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/menu_helpers.h2
-rw-r--r--include/metatile_behavior.h24
-rw-r--r--include/overworld.h70
-rw-r--r--include/quest_log.h43
-rw-r--r--include/quest_log_objects.h3
-rw-r--r--include/quest_log_player.h2
-rw-r--r--include/save_location.h4
-rw-r--r--include/script.h12
-rw-r--r--include/strings.h11
-rw-r--r--include/vs_seeker.h7
47 files changed, 458 insertions, 176 deletions
diff --git a/include/battle_anim.h b/include/battle_anim.h
index f568d0f97..c8704707b 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -412,9 +412,9 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x
void sub_8075AD8(struct Sprite *sprite);
u16 ArcTan2Neg(s16 a, s16 b);
void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor);
-u32 sub_8075BE8(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7);
-u32 sub_8075CB8(u8 a1, u8 a2, u8 a3, u8 a4);
-u8 sub_8075D80(u8 a1);
+u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7);
+u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight);
+u8 GetSpritePalIdxByBattler(u8 a1);
void AnimSpriteOnMonPos(struct Sprite *sprite);
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
void AnimThrowProjectile(struct Sprite *sprite);
@@ -468,7 +468,7 @@ void sub_8099BD4(u8 taskId);
extern const struct SpriteTemplate gUnknown_83E7C98;
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
u32 UnpackSelectedBattleAnimPalettes(s16 selector);
-void sub_80B9BDC(u8 taskId);
+void AnimTask_CurseBlendEffect(u8 taskId);
void sub_80B9CE4(u8 taskId);
void sub_80B9E58(u8 taskId);
void sub_80B9F6C(u8 taskId);
@@ -561,13 +561,13 @@ void AnimWaterPulseRing(struct Sprite *sprite);
u8 SmokescreenImpact(s16 x, s16 y, u8 a3);
// battle_anim_utility_funcs.c
-void sub_80BA7F8(u8 taskId);
-void sub_80BA83C(u8 taskId);
+void AnimTask_BlendSelected(u8 taskId);
+void AnimTask_BlendExcept(u8 taskId);
void AnimTask_SetCamouflageBlend(u8 taskId);
void AnimTask_BlendParticle(u8 taskId);
-void sub_80BAB38(u8 taskId);
-void sub_80BAB98(u8 taskId);
-void sub_80BACEC(u8 taskId);
+void AnimTask_HardwarePaletteFade(u8 taskId);
+void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId);
+void AnimTask_SetUpCurseBackground(u8 taskId);
void sub_80BB088(u8 taskId);
void sub_80BB660(u8 taskId);
void sub_80BB7DC(u8 taskId);
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 30049ee8c..e4f94becb 100644
--- a/include/bike.h
+++ b/include/bike.h
@@ -1,9 +1,39 @@
#ifndef GUARD_BIKE_H
#define GUARD_BIKE_H
-void sub_80BD620(u32 unkC, u32 unk10);
-bool8 sub_80BD540(void);
+// 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 InitPlayerAvatarBikeState(u32 directionHistory, u32 abStartSelectHistory);
+bool8 MetatileAtPlayerPositionForbidsBiking(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);
+void Bike_UpdateBikeCounterSpeed(u8 counter);
+bool8 player_should_look_direction_be_enforced_upon_movement(void);
#endif //GUARD_BIKE_H
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/event_objects.h b/include/constants/event_objects.h
index 2d51cd74d..2e9fcaa83 100644
--- a/include/constants/event_objects.h
+++ b/include/constants/event_objects.h
@@ -6,15 +6,15 @@
#define OBJ_EVENT_GFX_RED_SURF 2
#define OBJ_EVENT_GFX_RED_ITEM 3
#define OBJ_EVENT_GFX_RED_FISH 4
-#define OBJ_EVENT_GFX_RED_ITEM_COPY 5
-#define OBJ_EVENT_GFX_RED_VS_SEEKER 6
+#define OBJ_EVENT_GFX_RED_VS_SEEKER 5
+#define OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE 6
#define OBJ_EVENT_GFX_GREEN_NORMAL 7
#define OBJ_EVENT_GFX_GREEN_BIKE 8
#define OBJ_EVENT_GFX_GREEN_SURF 9
#define OBJ_EVENT_GFX_GREEN_ITEM 10
#define OBJ_EVENT_GFX_GREEN_FISH 11
-#define OBJ_EVENT_GFX_GREEN_ITEM_COPY 12
-#define OBJ_EVENT_GFX_GREEN_VS_SEEKER 13
+#define OBJ_EVENT_GFX_GREEN_VS_SEEKER 12
+#define OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE 13
#define OBJ_EVENT_GFX_RS_BRENDAN 14
#define OBJ_EVENT_GFX_RS_MAY 15
#define OBJ_EVENT_GFX_LITTLE_BOY 16
@@ -37,9 +37,9 @@
#define OBJ_EVENT_GFX_OLD_MAN_2 33
#define OBJ_EVENT_GFX_OLD_MAN_LYING_DOWN 34
#define OBJ_EVENT_GFX_OLD_WOMAN 35
-#define OBJ_EVENT_GFX_TUBER_M_1 36
+#define OBJ_EVENT_GFX_TUBER_M_WATER 36
#define OBJ_EVENT_GFX_TUBER_F 37
-#define OBJ_EVENT_GFX_TUBER_M_2 38
+#define OBJ_EVENT_GFX_TUBER_M_LAND 38
#define OBJ_EVENT_GFX_CAMPER 39
#define OBJ_EVENT_GFX_PICNICKER 40
#define OBJ_EVENT_GFX_COOLTRAINER_M 41
@@ -98,7 +98,7 @@
#define OBJ_EVENT_GFX_POKEDEX 94
#define OBJ_EVENT_GFX_CUT_TREE 95
#define OBJ_EVENT_GFX_ROCK_SMASH_ROCK 96
-#define OBJ_EVENT_GFX_STRENGTH_BOULDER 97
+#define OBJ_EVENT_GFX_PUSHABLE_BOULDER 97
#define OBJ_EVENT_GFX_FOSSIL 98
#define OBJ_EVENT_GFX_RUBY 99
#define OBJ_EVENT_GFX_SAPPHIRE 100
@@ -154,12 +154,12 @@
#define OBJ_EVENT_GFX_DEOXYS_N 150
#define OBJ_EVENT_GFX_SS_ANNE 151
-#define NUM_OBJ_EVENT_GFX 239
+#define NUM_OBJ_EVENT_GFX 152
// These are dynamic object gfx ids.
// They correspond with the values of the VAR_OBJ_GFX_ID_X vars.
// More info about them in include/constants/vars.h
-#define OBJ_EVENT_GFX_VARS (NUM_OBJ_EVENT_GFX + 1)
+#define OBJ_EVENT_GFX_VARS 240
#define OBJ_EVENT_GFX_VAR_0 (OBJ_EVENT_GFX_VARS + 0x0) // 240
#define OBJ_EVENT_GFX_VAR_1 (OBJ_EVENT_GFX_VARS + 0x1)
#define OBJ_EVENT_GFX_VAR_2 (OBJ_EVENT_GFX_VARS + 0x2)
diff --git a/include/constants/flags.h b/include/constants/flags.h
index ccac1da3b..d7b4195e2 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -1319,9 +1319,10 @@
#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_STRENGTH_ACTIVE (SYS_FLAGS + 0x5)
+#define FLAG_SYS_USE_STRENGTH (SYS_FLAGS + 0x5)
#define FLAG_SYS_FLASH_ACTIVE (SYS_FLAGS + 0x6)
#define FLAG_SYS_SPECIAL_WILD_BATTLE (SYS_FLAGS + 0x7)
#define FLAG_0x808 (SYS_FLAGS + 0x8)
@@ -1345,7 +1346,7 @@
#define FLAG_SYS_GAME_CLEAR (SYS_FLAGS + 0x2C)
#define FLAG_SYS_SET_TRAINER_CARD_PROFILE (SYS_FLAGS + 0x2D)
#define FLAG_0x82E (SYS_FLAGS + 0x2E)
-#define FLAG_SYS_RUNNING_SHOES (SYS_FLAGS + 0x2F)
+#define FLAG_SYS_B_DASH (SYS_FLAGS + 0x2F)
#define FLAG_SYS_ON_CYCLING_ROAD (SYS_FLAGS + 0x30)
#define FLAG_0x831 (SYS_FLAGS + 0x31)
#define FLAG_0x832 (SYS_FLAGS + 0x32)
@@ -1436,8 +1437,8 @@
// SPECIAL FLAGS (unknown purpose)
#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_SHOW_MAP_NAME_POPUP 0x4000
+#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/global.h b/include/constants/global.h
index 28fe660e3..f8cfaa4b0 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -78,5 +78,9 @@
#define DIR_NORTH 2
#define DIR_WEST 3
#define DIR_EAST 4
+#define DIR_SOUTHWEST 5
+#define DIR_SOUTHEAST 6
+#define DIR_NORTHWEST 7
+#define DIR_NORTHEAST 8
#endif //GUARD_CONSTANTS_GLOBAL_H
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/constants/vars.h b/include/constants/vars.h
index 4a64eb095..358209eaf 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -221,11 +221,10 @@
#define VAR_0x40A7 0x40A7
#define VAR_0x40A8 0x40A8
#define VAR_0x40A9 0x40A9
-#define VAR_0x40AA 0x40AA
-#define VAR_0x40AB 0x40AB
-#define VAR_0x40AC 0x40AC
-#define VAR_0x40AD 0x40AD
-#define VAR_0x40AE 0x40AE
+
+#define VAR_QLBAK_TRAINER_REMATCHES 0x40AA // array of 4
+#define VAR_QLBAK_MAP_LAYOUT 0x40AE
+
#define VAR_0x40AF 0x40AF
#define VAR_0x40B0 0x40B0
#define VAR_0x40B1 0x40B1
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/decoration.h b/include/decoration.h
new file mode 100644
index 000000000..fadb2a3c8
--- /dev/null
+++ b/include/decoration.h
@@ -0,0 +1,55 @@
+#ifndef GUARD_DECORATION_H
+#define GUARD_DECORATION_H
+
+enum DecorationPermission
+{
+ /*
+ * The nomenclature here describes collision and placement permissions, in that order.
+ */
+ DECORPERM_SOLID_FLOOR,
+ DECORPERM_PASS_FLOOR,
+ DECORPERM_BEHIND_FLOOR,
+ DECORPERM_NA_WALL,
+ DECORPERM_SPRITE,
+};
+
+enum DecorationShape
+{
+ DECORSHAPE_1x1,
+ DECORSHAPE_2x1,
+ DECORSHAPE_3x1, // unused
+ DECORSHAPE_4x2,
+ DECORSHAPE_2x2,
+ DECORSHAPE_1x2,
+ DECORSHAPE_1x3, // unused
+ DECORSHAPE_2x4,
+ DECORSHAPE_3x3,
+ DECORSHAPE_3x2,
+};
+
+enum DecorationCategory
+{
+ DECORCAT_DESK,
+ DECORCAT_CHAIR,
+ DECORCAT_PLANT,
+ DECORCAT_ORNAMENT,
+ DECORCAT_MAT,
+ DECORCAT_POSTER,
+ DECORCAT_DOLL,
+ DECORCAT_CUSHION,
+ DECORCAT_COUNT,
+};
+
+struct Decoration
+{
+ u8 id;
+ u8 name[16];
+ u8 permission;
+ u8 shape;
+ u8 category;
+ u16 price;
+ const u8 *description;
+ const u16 *tiles;
+};
+
+#endif //GUARD_DECORATION_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 e01364e55..0c383b2bb 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -26,6 +26,8 @@ struct UnkStruct_083A3698
u8 animPos[4];
};
+typedef void (*MovementAction)(u8 direction);
+
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << 0)
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << 1)
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN (1 << 2)
@@ -69,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);
@@ -117,8 +119,8 @@ bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8);
void ShiftStillObjectEventCoords(struct ObjectEvent *);
void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *, u8);
void SetTrainerMovementType(struct ObjectEvent *, u8);
-u8 GetFishingNoCatchDirectionAnimNum(u8 direction);
-u8 GetFishingBiteDirectionAnimNum(u8 a0);
+u8 GetFishingDirectionAnimNum(u8 direction);
+u8 GetFishingNoCatchDirectionAnimNum(u8 a0);
void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 a1);
u8 sub_805EB44(u8, u8, s16, s16);
void InitObjectEventPalettes(u8 mode);
@@ -130,6 +132,7 @@ u8 GetWalkFastestMovementAction(u32);
u8 sub_8063F2C(u32 direction);
u8 GetTrainerFacingDirectionMovementType(u8 direction);
u8 GetFaceDirectionMovementAction(u32);
+u8 GetFaceDirectionFastMovementAction(u32);
void CameraObjectSetFollowedObjectId(u8 objectId);
void UnfreezeObjectEvents(void);
void sub_8069058(u8, u8);
@@ -186,6 +189,8 @@ void sub_8068CA4(struct Sprite *, u8);
bool8 sub_8068CB4(struct Sprite *sprite);
void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
bool8 SpriteAnimEnded(struct Sprite *);
+u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent);
+u8 GetMoveDirectionAnimNum(u8 direction);
// Exported data declarations
@@ -196,5 +201,27 @@ extern const struct OamData gObjectEventBaseOam_32x32;
extern const u16 gUnknown_8398648[];
extern const u16 gUnknown_8398688[];
extern const u8 gReflectionEffectPaletteMap[];
+u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z);
+u8 sub_8063F58(u32 direction);
+u8 sub_8063FDC(u32 direction);
+u8 sub_8064008(u32 direction);
+u8 GetPlayerRunMovementAction(u32 direction);
+u8 GetPlayerRunSlowMovementAction(u32 direction);
+u8 GetWalkSlowMovementAction(u32 direction);
+u8 sub_80640E4(u32 direction);
+u8 GetAcroWheelieFaceDirectionMovementAction(u32 direction);
+u8 GetAcroPopWheelieFaceDirectionMovementAction(u32 direction);
+u8 GetAcroEndWheelieFaceDirectionMovementAction(u32 direction);
+u8 GetAcroWheelieHopFaceDirectionMovementAction(u32 direction);
+u8 GetAcroWheelieHopDirectionMovementAction(u32 direction);
+u8 GetAcroWheelieJumpDirectionMovementAction(u32 direction);
+u8 GetJumpInPlaceTurnAroundMovementAction(u32 direction);
+u8 GetAcroWheelieInPlaceDirectionMovementAction(u32 direction);
+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..0f076ed28 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1254,9 +1254,31 @@ extern const u8 EventScript_CurrentTooFast[];
extern const u8 EventScript_UseSurf[];
extern const u8 EventScript_Waterfall[];
extern const u8 EventScript_CantUseWaterfall[];
-extern const u8 gUnknown_81A8CED[];
+extern const u8 EventScript_VsSeekerChargingDone[];
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_control_avatar.h b/include/field_control_avatar.h
index 335076a9d..e0873aa52 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -35,5 +35,6 @@ void FieldClearPlayerInput(struct FieldInput *input);
int ProcessPlayerFieldInput(struct FieldInput *input);
void FieldInput_HandleCancelSignpost(struct FieldInput * input);
void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys);
+void sub_806DE70(u16 x, u16 y);
#endif //GUARD_FIELD_CONTROL_AVATAR_H
diff --git a/include/field_effect.h b/include/field_effect.h
index 59de741be..f9760d87f 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -25,5 +25,8 @@ void FreeResourcesAndDestroySprite(struct Sprite * sprite, u8 spriteId);
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, bool8 unused);
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_effect_helpers.h b/include/field_effect_helpers.h
index 9472f0b94..a842c5dc6 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -22,5 +22,23 @@ bool8 sub_80DCBE0(struct ObjectEvent *);
void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8);
u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*);
u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
+void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y);
+void SetSpriteInvisible(u8 spriteId);
+void sub_80DC4A4(u8 spriteId, u8 value, s16 data1);
+void sub_80DCCE0(struct Sprite * sprite);
+void UpdateShadowFieldEffect(struct Sprite * sprite);
+void UpdateBubblesFieldEffect(struct Sprite * sprite);
+void UpdateSparkleFieldEffect(struct Sprite * sprite);
+void UpdateTallGrassFieldEffect(struct Sprite * sprite);
+void WaitFieldEffectSpriteAnim(struct Sprite * sprite);
+void UpdateAshFieldEffect(struct Sprite * sprite);
+void UpdateSurfBlobFieldEffect(struct Sprite * sprite);
+void UpdateFootprintsTireTracksFieldEffect(struct Sprite * sprite);
+void UpdateSplashFieldEffect(struct Sprite * sprite);
+void UpdateShortGrassFieldEffect(struct Sprite * sprite);
+void UpdateLongGrassFieldEffect(struct Sprite * sprite);
+void UpdateSandPileFieldEffect(struct Sprite * sprite);
+void UpdateDisguiseFieldEffect(struct Sprite * sprite);
+void UpdateHotSpringsWaterFieldEffect(struct Sprite * sprite);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index d649fc02f..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,16 +11,16 @@ void DoDoorWarp(void);
void DoFallWarp(void);
void DoTeleportWarp(void);
void sub_807E500(void);
-void sub_807DF64(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);
void sub_807DCE4(void);
-bool32 sub_807E418(void);
+bool32 FieldFadeTransitionBackgroundEffectIsFinished(void);
void palette_bg_faded_fill_black(void);
void sub_807E4A0(u16 metatileBehavior, u16 delay);
void DoEscalatorWarp(u8 a0);
@@ -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 51ae9905f..df9084eab 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -11,32 +11,57 @@ void PlayerGetDestCoords(s16 *, s16 *);
u8 GetPlayerFacingDirection(void);
u8 GetPlayerMovementDirection(void);
u8 PlayerGetCopyableMovement(void);
+void MovePlayerNotOnBike(u8 direction, u16 heldKeys);
-void sub_808D074(u8);
+void MovementType_Player(struct Sprite * sprite);
void sub_805C270(void);
-void sub_805C780(void);
+void StopPlayerAvatar(void);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
u8 GetPlayerAvatarGraphicsIdByStateId(u8);
void SetPlayerAvatarStateMask(u8 mask);
-void sub_805D9C4(struct Sprite *sprite);
-void sub_805D154(u8 direction);
-void sub_805DAE4(u8 direction);
+void AlignFishingAnimationFrames(struct Sprite *sprite);
+void CreateStopSurfingTask_NoMusicChange(u8 direction);
+void SavePlayerFacingDirectionForTeleport(u8 direction);
void SetPlayerAvatarTransitionFlags(u16 a);
bool8 IsPlayerFacingSurfableFishableWater(void);
-void sub_805D2C0(u8 secondaryId);
+void StartFishing(u8 secondaryId);
u8 GetPlayerAvatarObjectId(void);
u8 PlayerGetZCoord(void);
u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
void sub_805CB70(void);
-void sub_805CB04(bool8);
-void sub_805DC04(void);
-void sub_805DAB0(void);
-bool32 sub_805DAD0(void);
-bool32 sub_805DC24(void);
+void SetPlayerInvisibility(bool8);
+void StartTeleportInPlayerAnim(void);
+void StartTeleportWarpOutPlayerAnim(void);
+bool32 WaitTeleportWarpOutPlayerAnim(void);
+bool32 WaitTeleportInPlayerAnim(void);
bool8 PartyHasMonWithSurf(void);
bool8 IsPlayerSurfingNorth(void);
-void player_get_pos_including_state_based_drift(s16 *x, s16 *y);
+u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y);
void sub_805CBE8(void);
-u8 sub_805C7C8(u8 state, u8 gender);
+u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
+u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
+u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior);
+void sub_805C0D4(u8 direction);
+void PlayerGoSlow(u8 direction);
+void PlayerGoSpeed1(u8 direction);
+void PlayerGoSpeed2(u8 direction);
+void sub_805C134(u8 direction);
+void PlayerRideWaterCurrent(u8 direction);
+void sub_805C164(u8 direction);
+void PlayerRun(u8 direction);
+void PlayerRunSlow(u8 direction);
+void PlayerOnBikeCollide(u8 direction);
+void PlayerNotOnBikeCollide(u8 direction);
+void PlayerFaceDirection(u8 direction);
+void PlayerFaceDirectionFast(u8 direction);
+void PlayerTurnInPlace(u8 direction);
+void PlayerJumpLedge(u8 direction);
+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 3c4b5f382..5fa15b95a 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;
@@ -278,14 +286,25 @@ struct ObjectEventGraphicsInfo
/*0x20*/ const union AffineAnimCmd *const *affineAnims;
};
-#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
-#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
-#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
-#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
-#define PLAYER_AVATAR_FLAG_4 (1 << 4)
-#define PLAYER_AVATAR_FLAG_5 (1 << 5)
-#define PLAYER_AVATAR_FLAG_6 (1 << 6)
-#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
+enum {
+ PLAYER_AVATAR_STATE_NORMAL,
+ PLAYER_AVATAR_STATE_MACH_BIKE,
+ PLAYER_AVATAR_STATE_ACRO_BIKE,
+ PLAYER_AVATAR_STATE_SURFING,
+ PLAYER_AVATAR_STATE_UNDERWATER,
+ PLAYER_AVATAR_STATE_FIELD_MOVE,
+ PLAYER_AVATAR_STATE_FISHING,
+ PLAYER_AVATAR_STATE_WATERING,
+};
+
+#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << PLAYER_AVATAR_STATE_NORMAL)
+#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << PLAYER_AVATAR_STATE_MACH_BIKE)
+#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << PLAYER_AVATAR_STATE_ACRO_BIKE)
+#define PLAYER_AVATAR_FLAG_SURFING (1 << PLAYER_AVATAR_STATE_SURFING)
+#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << PLAYER_AVATAR_STATE_UNDERWATER)
+#define PLAYER_AVATAR_FLAG_FIELD_MOVE (1 << PLAYER_AVATAR_STATE_FIELD_MOVE)
+#define PLAYER_AVATAR_FLAG_FISHING (1 << PLAYER_AVATAR_STATE_FISHING)
+#define PLAYER_AVATAR_FLAG_WATERING (1 << PLAYER_AVATAR_STATE_WATERING)
enum
{
@@ -308,12 +327,13 @@ enum
COLLISION_STOP_SURFING,
COLLISION_LEDGE_JUMP,
COLLISION_PUSHED_BOULDER,
- COLLISION_ROTATING_GATE,
+ COLLISION_UNKNOWN_WARP_6C_6D_6E_6F,
COLLISION_WHEELIE_HOP,
COLLISION_ISOLATED_VERTICAL_RAIL,
COLLISION_ISOLATED_HORIZONTAL_RAIL,
COLLISION_VERTICAL_RAIL,
COLLISION_HORIZONTAL_RAIL,
+ COLLISION_COUNT
};
// player running states
@@ -335,22 +355,23 @@ enum
struct PlayerAvatar /* 0x202E858 */
{
/*0x00*/ u8 flags;
- /*0x01*/ u8 unk1; // used to be bike, but it's not that in Emerald and probably isn't here either. maybe transition flags?
+ /*0x01*/ u8 transitionFlags; // used to be bike, but it's not that in Emerald and probably isn't here either. maybe transition flags?
/*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving.
/*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning.
/*0x04*/ u8 spriteId;
/*0x05*/ u8 objectEventId;
/*0x06*/ bool8 preventStep;
/*0x07*/ u8 gender;
+ // These are not used in FRLG
u8 acroBikeState;
- u8 unk9;
+ u8 newDirBackup;
u8 bikeFrameCounter;
- u8 unkB;
- u32 unkC;
- u32 unk10;
- u8 unk14[8];
- u8 unk1C[8];
- // TODO: rest of struct
+ u8 bikeSpeed;
+ u32 directionHistory;
+ u32 abStartSelectHistory;
+ u8 dirTimerHistory[8];
+ // For the Rocket mazes
+ u16 lastSpinTile;
};
struct Camera
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/intro.h b/include/intro.h
index 19cdcd032..1630b845e 100644
--- a/include/intro.h
+++ b/include/intro.h
@@ -1,7 +1,7 @@
#ifndef GUARD_INTRO_H
#define GUARD_INTRO_H
-void sub_80EC864(void);
+void CB2_CopyrightScreen(void);
void c2_copyright_1(void);
#endif //GUARD_INTRO_H
diff --git a/include/link.h b/include/link.h
index e5a40d6a5..899f0cb03 100644
--- a/include/link.h
+++ b/include/link.h
@@ -79,8 +79,8 @@
#define LINKTYPE_BATTLE_TOWER 0x2288
#define LINKTYPE_0x3311 0x3311
#define LINKTYPE_0x3322 0x3322
-#define LINKTYPE_0x4411 0x4411
-#define LINKTYPE_0x6601 0x6601
+#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
+#define LINKTYPE_CONTEST_GMODE 0x6601
#define MASTER_HANDSHAKE 0x8FFF
#define SLAVE_HANDSHAKE 0xB9A0
@@ -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/menu_helpers.h b/include/menu_helpers.h
index d26f50483..fda77d1b6 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -15,7 +15,7 @@ struct YesNoFuncTable
};
bool16 RunTextPrinters_CheckActive(u8 textPrinterId);
-bool32 sub_80BF72C(void);
+bool32 MenuHelpers_CallLinkSomething(void);
bool8 sub_80BF748(void);
bool8 MenuHelpers_LinkSomething(void);
void SetVBlankHBlankCallbacksToNull(void);
diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h
index ae3e6a01d..793eeb8a1 100644
--- a/include/metatile_behavior.h
+++ b/include/metatile_behavior.h
@@ -23,8 +23,8 @@ bool8 MetatileBehavior_IsUnknownWarp6E(u8 metatileBehavior);
bool8 MetatileBehavior_IsUnknownWarp6F(u8 metatileBehavior);
bool8 MetatileBehavior_IsUnknownWarp6C_to_6F(u8 metatileBehavior);
bool8 MetatileBehavior_IsLadder(u8 metatileBehavior);
-bool8 MetatileBehavior_IsCaveDoor(u8 metatileBehavior);
-bool8 MetatileBehavior_ReturnFalse_2(u8 metatileBehavior);
+bool8 MetatileBehavior_IsNonAnimDoor(u8 metatileBehavior);
+bool8 MetatileBehavior_IsDeepSouthWarp(u8 metatileBehavior);
bool8 MetatileBehavior_IsSurfable(u8 metatileBehavior);
bool8 MetatileBehavior_IsSemiDeepWater(u8 metatileBehavior);
bool8 MetatileBehavior_IsEastArrowWarp(u8 metatileBehavior);
@@ -96,13 +96,13 @@ 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_ReturnFalse_14(u8 metatileBehavior);
-bool8 MetatileBehavior_ReturnFalse_15(u8 metatileBehavior);
-bool8 MetatileBehavior_ReturnFalse_16(u8 metatileBehavior);
-bool8 MetatileBehavior_ReturnFalse_17(u8 metatileBehavior);
-bool8 MetatileBehavior_ReturnFalse_18(u8 metatileBehavior);
+bool8 MetatileBehavior_IsBumpySlope(u8 metatileBehavior);
+bool8 MetatileBehavior_IsIsolatedVerticalRail(u8 metatileBehavior);
+bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8 metatileBehavior);
+bool8 MetatileBehavior_IsVerticalRail(u8 metatileBehavior);
+bool8 MetatileBehavior_IsHorizontalRail(u8 metatileBehavior);
bool8 MetatileBehavior_IsSeaweed(u8 metatileBehavior);
bool8 MetatileBehavior_IsMB0A(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_9(u8 metatileBehavior);
@@ -115,10 +115,10 @@ bool8 MetatileBehavior_UnusedReturnFalse_11(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_12(u8 metatileBehavior);
bool8 MetatileBehavior_UnusedReturnFalse_13(u8 metatileBehavior);
bool8 TestMetatileAttributeBit(u8 attr, u8 bitmask);
-bool8 MetatileBehavior_UnusedIsSpinRight(u8 metatileBehavior);
-bool8 MetatileBehavior_UnusedIsSpinLeft(u8 metatileBehavior);
-bool8 MetatileBehavior_UnusedIsSpinUp(u8 metatileBehavior);
-bool8 MetatileBehavior_UnusedIsSpinDown(u8 metatileBehavior);
+bool8 MetatileBehavior_IsSpinRight(u8 metatileBehavior);
+bool8 MetatileBehavior_IsSpinLeft(u8 metatileBehavior);
+bool8 MetatileBehavior_IsSpinUp(u8 metatileBehavior);
+bool8 MetatileBehavior_IsSpinDown(u8 metatileBehavior);
bool8 MetatileBehavior_IsStopSpinning(u8 metatileBehavior);
bool8 MetatileBehavior_IsSpinTile(u8 metatileBehavior);
bool8 MetatileBehavior_IsSignpost(u8 metatileBehavior);
diff --git a/include/overworld.h b/include/overworld.h
index bd4dda9b6..f5cb1987e 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,15 +77,11 @@ 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 sav1_reset_battle_music_maybe(void);
-bool32 sub_8056124(u16 song);
+void Overworld_ClearSavedMusic(void);
+bool32 Overworld_MusicCanOverrideMapMusic(u16 song);
void player_avatar_init_params_reset(void);
@@ -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);
+bool32 Overworld_LinkRecvQueueLengthMoreThan2(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 e2e652a81..090d0daf6 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 sNumQuestLogs;
-extern struct UnkStruct_3005E90 gUnknown_3005E90;
-extern struct UnkStruct_203AE98 * gUnknown_3005E94;
extern const u16 gUnknown_84566A8[];
+extern struct FieldInput gQuestLogFieldInput;
void sub_8112720(u8);
void SetQuestLogEvent(u16, const u16 *);
@@ -30,7 +18,7 @@ void QuestLog_RecordEnteredMap(u16);
u8 sub_8112CAC(void);
bool8 QuestLog_SchedulePlaybackCB(void (*func)(void));
void sub_8111F38(u16 offset, u16 idx);
-void sub_8111134(void);
+void CommitQuestLogWindow1(void);
void DestroyHelpMessageWindow(u8 a0);
u8 CreateHelpMessageWindow(void);
void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode);
@@ -39,8 +27,8 @@ void sub_8111CF0(void);
void ResetQuestLog(void);
void ResetTrainerFanClub(void);
void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId);
-void sub_8112450(void);
-void sub_8112364(void);
+void SaveQuestLogData(void);
+void QuestLog_OnInteractionWithSpecialNpc(void);
u8 sub_8112CAC(void);
void sub_81138F8(void);
void sub_811231C(void);
@@ -53,7 +41,26 @@ void sub_811246C(struct Sprite *sprite);
void sub_81124EC(u8 a0, u8 a1, u8 a2, u8 a3);
bool8 sub_8111C2C(void);
void sub_81128BC(u8 a0);
-void sub_811278C(u8, u8);
+void sub_811278C(u8 movementActionId, u8 duration);
void Special_UpdateTrainerFansAfterLinkBattle(void);
+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 e582ba27a..fbf73f504 100644
--- a/include/quest_log_objects.h
+++ b/include/quest_log_objects.h
@@ -4,6 +4,7 @@
#include "global.h"
void SetQuestLogObjectEventsData(struct QuestLog *);
-void sub_815A1F8(struct QuestLog *, struct ObjectEventTemplate *);
+void SetSav1ObjectEventsFromQuestLog(struct QuestLog *, struct ObjectEventTemplate *);
+void sub_815A540(void);
#endif //GUARD_QUEST_LOG_OBJECTS_H
diff --git a/include/quest_log_player.h b/include/quest_log_player.h
index 9cde1747e..5aee3f2d0 100644
--- a/include/quest_log_player.h
+++ b/include/quest_log_player.h
@@ -4,5 +4,7 @@
#include "global.h"
void sub_8150454(void);
+bool32 sub_8150474(u8 a0);
+void sub_8150498(u8 a0);
#endif //GUARD_QUEST_LOG_PLAYER_H
diff --git a/include/save_location.h b/include/save_location.h
index c8e362231..2d2cb1974 100644
--- a/include/save_location.h
+++ b/include/save_location.h
@@ -10,7 +10,7 @@
void TrySetMapSaveWarpStatus(void);
bool32 IsCurMapPokeCenter(void);
-void sub_810B810(void);
-void sub_810B82C(void);
+void SetUnlockedPokedexFlags(void);
+void SetPostgameFlags(void);
#endif // GUARD_SAVE_LOCATION_H
diff --git a/include/script.h b/include/script.h
index 3dd91ca59..ba1de4f1c 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);
@@ -78,7 +78,7 @@ u8 GetRegisteredQuestLogInput(void);
void ResetFacingNpcOrSignPostVars(void);
bool8 CanWalkAwayToCancelMsgBox(void);
void SetWalkingIntoSignVars(void);
-bool8 sub_80699D4(void);
+bool8 IsMsgBoxWalkawayDisabled(void);
extern const u8 *gRAMScriptPtr;
extern u8 gWalkAwayFromSignInhibitTimer;
diff --git a/include/strings.h b/include/strings.h
index e7f274abd..6979f6757 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -916,7 +916,7 @@ extern const u8 gText_GiveUpTryingToTeachNewMove[];
extern const u8 gText_DecimalPoint[];
// map_name_popup
-extern const u8 gUnknown_841D18D[];
+extern const u8 gText_Rooftop2[];
// option menu
extern const u8 gText_TextSpeed[];
@@ -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[];
@@ -1463,4 +1463,9 @@ extern const u8 gUnknown_841B2C6[];
extern const u8 gUnknown_841B2E5[];
extern const u8 gUnknown_841B2DC[];
+// field_player_avatar
+extern const u8 gText_PokemonOnHook[];
+extern const u8 gText_NotEvenANibble[];
+extern const u8 gText_ItGotAway[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/vs_seeker.h b/include/vs_seeker.h
index d80e558ea..6668cc6b4 100644
--- a/include/vs_seeker.h
+++ b/include/vs_seeker.h
@@ -3,17 +3,14 @@
#include "global.h"
-void sub_810C604(void);
-void sub_810C640(void);
-
void Task_VsSeeker_0(u8 taskId);
void sub_810CB90(void);
void sub_810CDE8(void);
int GetRematchTrainerId(u16 a0);
bool8 sub_810CF04(u8 a0);
-u8 sub_810CF54();
void sub_810D0D0(void);
void sub_810CB90(void);
-bool8 sub_810C4EC(void);
+bool8 UpdateVsSeekerStepCounter(void);
+void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum);
#endif //GUARD_VS_SEEKER_H