diff options
Diffstat (limited to 'include')
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 |