diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2020-03-29 17:29:52 -0400 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2020-03-29 17:29:52 -0400 |
commit | 8c23bd7c96d1d7555a03a9288b924edcdebad7f6 (patch) | |
tree | 69b7eebb6446fd863e50143b1bae22370e291b19 /src | |
parent | 19812c9d18a64e57ebc2ef5425176b89249b2fef (diff) |
Document bike.c
Diffstat (limited to 'src')
-rw-r--r-- | src/bike.c | 232 | ||||
-rw-r--r-- | src/field_effect.c | 2 | ||||
-rw-r--r-- | src/field_player_avatar.c | 3 | ||||
-rw-r--r-- | src/item_use.c | 2 | ||||
-rw-r--r-- | src/overworld.c | 6 | ||||
-rw-r--r-- | src/quest_log_player.c | 2 |
6 files changed, 123 insertions, 124 deletions
diff --git a/src/bike.c b/src/bike.c index eaa4af2bd..d08a5fe82 100644 --- a/src/bike.c +++ b/src/bike.c @@ -9,67 +9,67 @@ #include "constants/map_types.h" #include "constants/songs.h" -static u8 sub_80BD0D4(u8 *, u16, u16); +static u8 GetMovePlayerOnBikeFuncId(u8 *, u16, u16); static void sub_80BD664(void); -static u8 sub_80BD4F0(u8, u8); -static u8 sub_80BD3A0(u8); -static u8 sub_80BD40C(struct ObjectEvent *, s16, s16, u8, u8); -static bool8 sub_80BD4B8(u8); -static void sub_80BD27C(u8); -static void sub_80BD28C(u8); -static void sub_80BD2C8(u8); -static void sub_80BD358(u8); -static void sub_80BD380(u8); -static u8 sub_80BD100(u8 *, u16, u16); -static u8 sub_80BD1C8(u8 *, u16, u16); -static u8 sub_80BD1E8(u8 *, u16, u16); - -static void (*const gUnknown_83E7CFC[])(u8) = +static u8 BikeCanFaceDIrectionOnRail(u8, u8); +static u8 CheckNextTileForBikingCollision(u8); +static u8 AdjustCollisionForBiking(struct ObjectEvent *, s16, s16, u8, u8); +static bool8 MetatileBehaviorForbidsBiking(u8); +static void BikeFaceDirection(u8); +static void BikeFaceDirectionAccountForRail(u8); +static void BikeTryMoveFastInDirection(u8); +static void BikeLetGravityTakeTheWheel(u8); +static void BikeTryMoveInDirection(u8); +static u8 GetBikeMoveCmd_0(u8 *, u16, u16); +static u8 GetBikeMoveCmd_1(u8 *, u16, u16); +static u8 GetBikeMoveCmd_2(u8 *, u16, u16); + +static void (*const sMovePlayerOnBikeFuncs[])(u8) = { - sub_80BD27C, - sub_80BD28C, - sub_80BD2C8, - sub_80BD358, - sub_80BD380, + BikeFaceDirection, + BikeFaceDirectionAccountForRail, + BikeTryMoveFastInDirection, + BikeLetGravityTakeTheWheel, + BikeTryMoveInDirection, }; -static u8 (*const gUnknown_83E7D10[])(u8 *, u16, u16) = +static u8 (*const sGetMovePlayerOnBikeFuncIdFuncs[])(u8 *, u16, u16) = { - sub_80BD100, - sub_80BD1C8, - sub_80BD1E8, + GetBikeMoveCmd_0, + GetBikeMoveCmd_1, + GetBikeMoveCmd_2, }; void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys) { - gUnknown_83E7CFC[sub_80BD0D4(&direction, newKeys, heldKeys)](direction); + sMovePlayerOnBikeFuncs[GetMovePlayerOnBikeFuncId(&direction, newKeys, heldKeys)](direction); } -static u8 sub_80BD0D4(u8 *direction, u16 newKeys, u16 heldKeys) +static u8 GetMovePlayerOnBikeFuncId(u8 *direction, u16 newKeys, u16 heldKeys) { - return gUnknown_83E7D10[gPlayerAvatar.acroBikeState](direction, newKeys, heldKeys); + return sGetMovePlayerOnBikeFuncIdFuncs[gPlayerAvatar.acroBikeState](direction, newKeys, heldKeys); } -static u8 sub_80BD100(u8 *r6, u16 sl, u16 sb) +static u8 GetBikeMoveCmd_0(u8 *direction_p, u16 newKeys, u16 heldKeys) { - struct ObjectEvent *r4 = &gObjectEvents[gPlayerAvatar.objectEventId]; - u8 r7 = GetPlayerMovementDirection(); + struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; + u8 direction = GetPlayerMovementDirection(); gPlayerAvatar.bikeFrameCounter = 0; - if (MetatileBehavior_IsCyclingRoadPullDownTile(r4->currentMetatileBehavior) == TRUE) + if (MetatileBehavior_IsCyclingRoadPullDownTile(playerObjEvent->currentMetatileBehavior) == TRUE) { if (!JOY_HELD(B_BUTTON)) { gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING; gPlayerAvatar.runningState = 2; - if (*r6 < 2) + if (*direction_p < DIR_NORTH) return 3; else return 4; } else { - if (*r6 != 0) + if (*direction_p != DIR_NONE) { gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING; gPlayerAvatar.runningState = 2; @@ -83,21 +83,21 @@ static u8 sub_80BD100(u8 *r6, u16 sl, u16 sb) } else { - if (*r6 == 0) + if (*direction_p == DIR_NONE) { _080BD17E: - *r6 = r7; + *direction_p = direction; gPlayerAvatar.runningState = 0; return 0; } else { - if (*r6 != r7 && gPlayerAvatar.runningState != 2) + if (*direction_p != direction && gPlayerAvatar.runningState != 2) { gPlayerAvatar.acroBikeState = ACRO_STATE_TURNING; - gPlayerAvatar.newDirBackup = *r6; + gPlayerAvatar.newDirBackup = *direction_p; gPlayerAvatar.runningState = 0; - return sub_80BD0D4(r6, sl, sb); + return GetMovePlayerOnBikeFuncId(direction_p, newKeys, heldKeys); } else { @@ -108,33 +108,33 @@ static u8 sub_80BD100(u8 *r6, u16 sl, u16 sb) } } -static u8 sub_80BD1C8(u8 *r0, UNUSED u16 r1, UNUSED u16 r2) +static u8 GetBikeMoveCmd_1(u8 *direction_p, UNUSED u16 newKeys, UNUSED u16 heldKeys) { - *r0 = gPlayerAvatar.newDirBackup; + *direction_p = gPlayerAvatar.newDirBackup; gPlayerAvatar.runningState = 1; gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; sub_80BD664(); return 1; } -static u8 sub_80BD1E8(u8 *r6, u16 sb, u16 r8) +static u8 GetBikeMoveCmd_2(u8 *direction_p, u16 newKeys, u16 heldKeys) { - u8 r5 = GetPlayerMovementDirection(); - u8 r1 = gPlayerAvatar.objectEventId; - if (MetatileBehavior_IsCyclingRoadPullDownTile(r1[gObjectEvents].currentMetatileBehavior) == TRUE) + u8 direction = GetPlayerMovementDirection(); + u8 playerObjEventId = gPlayerAvatar.objectEventId; + if (MetatileBehavior_IsCyclingRoadPullDownTile(playerObjEventId[gObjectEvents].currentMetatileBehavior) == TRUE) { - if (*r6 != r5) + if (*direction_p != direction) { gPlayerAvatar.acroBikeState = ACRO_STATE_TURNING; - gPlayerAvatar.newDirBackup = *r6; + gPlayerAvatar.newDirBackup = *direction_p; gPlayerAvatar.runningState = 0; - return sub_80BD0D4(r6, sb, r8); + return GetMovePlayerOnBikeFuncId(direction_p, newKeys, heldKeys); } else { gPlayerAvatar.runningState = 2; gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING; - if (*r6 < 2) + if (*direction_p < DIR_NORTH) return 3; else return 4; @@ -143,9 +143,9 @@ static u8 sub_80BD1E8(u8 *r6, u16 sb, u16 r8) else { gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL; - if (*r6 == 0) + if (*direction_p == DIR_NONE) { - *r6 = r5; + *direction_p = direction; gPlayerAvatar.runningState = 0; return 0; } @@ -157,100 +157,100 @@ static u8 sub_80BD1E8(u8 *r6, u16 sb, u16 r8) } } -static void sub_80BD27C(u8 r0) +static void BikeFaceDirection(u8 direction) { - PlayerFaceDirection(r0); + PlayerFaceDirection(direction); } -static void sub_80BD28C(u8 r4) +static void BikeFaceDirectionAccountForRail(u8 direction) { - struct ObjectEvent *r5 = &gObjectEvents[gPlayerAvatar.objectEventId]; + struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - if (!sub_80BD4F0(r4, r5->currentMetatileBehavior)) - r4 = r5->movementDirection; - PlayerFaceDirection(r4); + if (!BikeCanFaceDIrectionOnRail(direction, playerObjEvent->currentMetatileBehavior)) + direction = playerObjEvent->movementDirection; + PlayerFaceDirection(direction); } -static void sub_80BD2C8(u8 r4) +static void BikeTryMoveFastInDirection(u8 direction) { - struct ObjectEvent *r5; + struct ObjectEvent *playerObjEvent; - r5 = &gObjectEvents[gPlayerAvatar.objectEventId]; - if (!sub_80BD4F0(r4, r5->currentMetatileBehavior)) + playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; + if (!BikeCanFaceDIrectionOnRail(direction, playerObjEvent->currentMetatileBehavior)) { - sub_80BD27C(r5->movementDirection); + BikeFaceDirection(playerObjEvent->movementDirection); } else { - u8 r1 = sub_80BD3A0(r4); + u8 collision = CheckNextTileForBikingCollision(direction); - if (r1 > 0 && r1 <= 11) + if (collision > COLLISION_NONE && collision <= COLLISION_ISOLATED_HORIZONTAL_RAIL) { - if (r1 == 6) - PlayerJumpLedge(r4); - else if (r1 != 5 && r1 != 6 && r1 != 7 && r1 != 8) - PlayerOnBikeCollide(r4); + if (collision == COLLISION_LEDGE_JUMP) + PlayerJumpLedge(direction); + else if (collision != COLLISION_STOP_SURFING && collision != COLLISION_LEDGE_JUMP && collision != COLLISION_PUSHED_BOULDER && collision != COLLISION_UNKNOWN_WARP_6C_6D_6E_6F) + PlayerOnBikeCollide(direction); } else { - if (r1 == 14) - PlayerGoSpeed2(r4); - else if (PlayerIsMovingOnRockStairs(r4)) - PlayerGoSpeed2(r4); + if (collision == COLLISION_COUNT) + PlayerGoSpeed2(direction); + else if (PlayerIsMovingOnRockStairs(direction)) + PlayerGoSpeed2(direction); else - PlayerRideWaterCurrent(r4); + PlayerRideWaterCurrent(direction); } } } -static void sub_80BD358(UNUSED u8 v) +static void BikeLetGravityTakeTheWheel(UNUSED u8 v) { - u8 r0 = sub_80BD3A0(1); + u8 collision = CheckNextTileForBikingCollision(DIR_SOUTH); - if (r0 == 0) - sub_805C164(1); - else if (r0 == 6) - PlayerJumpLedge(1); + if (collision == COLLISION_NONE) + sub_805C164(DIR_SOUTH); + else if (collision == COLLISION_LEDGE_JUMP) + PlayerJumpLedge(DIR_SOUTH); } -static void sub_80BD380(u8 r4) +static void BikeTryMoveInDirection(u8 direction) { - if (sub_80BD3A0(r4) == 0) - PlayerGoSpeed1(r4); + if (CheckNextTileForBikingCollision(direction) == COLLISION_NONE) + PlayerGoSpeed1(direction); } -static u8 sub_80BD3A0(u8 r6) +static u8 CheckNextTileForBikingCollision(u8 direction) { - struct ObjectEvent *r4 = &gObjectEvents[gPlayerAvatar.objectEventId]; - s16 sp04, sp06; - u8 r0; - - sp04 = r4->currentCoords.x; - sp06 = r4->currentCoords.y; - MoveCoords(r6, &sp04, &sp06); - r0 = MapGridGetMetatileBehaviorAt(sp04, sp06); - return sub_80BD40C(r4, sp04, sp06, r6, r0); + struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; + s16 x, y; + u8 metatileBehavior; + + x = playerObjEvent->currentCoords.x; + y = playerObjEvent->currentCoords.y; + MoveCoords(direction, &x, &y); + metatileBehavior = MapGridGetMetatileBehaviorAt(x, y); + return AdjustCollisionForBiking(playerObjEvent, x, y, direction, metatileBehavior); } -static u8 sub_80BD40C(struct ObjectEvent *r0, s16 r1, s16 r2, u8 r3, u8 r5) +static u8 AdjustCollisionForBiking(struct ObjectEvent *playerObjEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior) { - u8 r4 = CheckForObjectEventCollision(r0, r1, r2, r3, r5); + u8 retVal = CheckForObjectEventCollision(playerObjEvent, x, y, direction, metatileBehavior); - if (r4 <= 4) + if (retVal <= COLLISION_OBJECT_EVENT) { - u8 r0 = MetatileBehavior_IsCrackedIce(r5); - if (r0 == TRUE) - return 14; - if (r4 == 0 && sub_80BD4B8(r5)) - r4 = 2; + bool8 isCrackedIce = MetatileBehavior_IsCrackedIce(metatileBehavior); + if (isCrackedIce == TRUE) + return COLLISION_COUNT; + if (retVal == COLLISION_NONE && MetatileBehaviorForbidsBiking(metatileBehavior)) + retVal = COLLISION_IMPASSABLE; } - return r4; + return retVal; } bool8 sub_80BD460(u8 r0) { - if (sub_80BD4B8(r0)) + if (MetatileBehaviorForbidsBiking(r0)) return TRUE; if (gMapHeader.mapType != MAP_TYPE_INDOOR) return FALSE; @@ -262,13 +262,13 @@ bool32 IsRunningDisallowed(u8 metatileBehavior) { if (!(gMapHeader.flags & MAP_ALLOW_RUN)) return TRUE; - if (sub_80BD4B8(metatileBehavior) != TRUE) + if (MetatileBehaviorForbidsBiking(metatileBehavior) != TRUE) return FALSE; else return TRUE; } -static bool8 sub_80BD4B8(u8 r4) +static bool8 MetatileBehaviorForbidsBiking(u8 r4) { if (MetatileBehavior_IsMB0A(r4)) return TRUE; @@ -279,31 +279,31 @@ static bool8 sub_80BD4B8(u8 r4) return TRUE; } -static bool8 sub_80BD4F0(u8 r0, u8 r4) +static bool8 BikeCanFaceDIrectionOnRail(u8 direction, u8 metatileBehavior) { - if (r0 == DIR_EAST || r0 == DIR_WEST) + if (direction == DIR_EAST || direction == DIR_WEST) { - if (MetatileBehavior_IsIsolatedVerticalRail(r4) || MetatileBehavior_IsVerticalRail(r4)) + if (MetatileBehavior_IsIsolatedVerticalRail(metatileBehavior) || MetatileBehavior_IsVerticalRail(metatileBehavior)) return FALSE; } else { - if (MetatileBehavior_IsIsolatedHorizontalRail(r4) || MetatileBehavior_IsHorizontalRail(r4)) + if (MetatileBehavior_IsIsolatedHorizontalRail(metatileBehavior) || MetatileBehavior_IsHorizontalRail(metatileBehavior)) return FALSE; } return TRUE; } -bool8 sub_80BD540(void) +bool8 MetatileAtPlayerPositionForbidsBiking(void) { - s16 sp00, sp02; - u8 r0; + s16 x, y; + u8 metatileBehavior; if (!(gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_UNDERWATER | PLAYER_AVATAR_FLAG_SURFING))) { - PlayerGetDestCoords(&sp00, &sp02); - r0 = MapGridGetMetatileBehaviorAt(sp00, sp02); - if (!sub_80BD4B8(r0)) + PlayerGetDestCoords(&x, &y); + metatileBehavior = MapGridGetMetatileBehaviorAt(x, y); + if (!MetatileBehaviorForbidsBiking(metatileBehavior)) return FALSE; } return TRUE; @@ -331,7 +331,7 @@ void StartTransitionToFlipBikeState(u8 flags) else { SetPlayerAvatarTransitionFlags(flags); - if (sub_8056124(MUS_CYCLING)) + if (Overworld_MusicCanOverrideMapMusic(MUS_CYCLING)) { Overworld_SetSavedMusic(MUS_CYCLING); Overworld_ChangeMusicTo(MUS_CYCLING); @@ -339,7 +339,7 @@ void StartTransitionToFlipBikeState(u8 flags) } } -void sub_80BD620(u32 directionHistory, u32 abStartSelectHistory) +void InitPlayerAvatarBikeState(u32 directionHistory, u32 abStartSelectHistory) { u8 i; diff --git a/src/field_effect.c b/src/field_effect.c index c0d7d3463..b8269ae46 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2889,7 +2889,7 @@ u8 FldEff_UseSurf(void) u8 taskId = CreateTask(Task_FldEffUseSurf, 0xff); gTasks[taskId].data[15] = gFieldEffectArguments[0]; Overworld_ClearSavedMusic(); - if (sub_8056124(MUS_NAMINORI)) + if (Overworld_MusicCanOverrideMapMusic(MUS_NAMINORI)) Overworld_ChangeMusicTo(MUS_NAMINORI); return FALSE; } diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 6b51e7bc2..8e25633a9 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -66,7 +66,6 @@ static void PlayerNotOnBikeNotMoving(u8 direction, u16 heldKeys); static void PlayerNotOnBikeTurningInPlace(u8 direction, u16 heldKeys); static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys); static u8 CheckForPlayerAvatarCollision(u8 direction); -u8 CheckForObjectEventCollision(struct ObjectEvent * objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior); static bool8 CanStopSurfing(s16 x, s16 y, u8 direction); static bool8 ShouldJumpLedge(s16 x, s16 y, u8 direction); static bool8 TryPushBoulder(s16 x, s16 y, u8 direction); @@ -722,7 +721,7 @@ static void PlayerAvatarTransition_Bike(struct ObjectEvent * playerObjEvent) { sub_8150474(1); sub_8150498(1); - sub_80BD620(0, 0); + InitPlayerAvatarBikeState(0, 0); } static void PlayerAvatarTransition_Surfing(struct ObjectEvent * playerObjEvent) diff --git a/src/item_use.c b/src/item_use.c index af3243678..45bed65e8 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -268,7 +268,7 @@ void FieldUseFunc_MachBike(u8 taskId) || MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE) sub_80A10C4(taskId, gTasks[taskId].data[3], 2, gUnknown_8416451); - else if (Overworld_IsBikingAllowed() == TRUE && !sub_80BD540()) + else if (Overworld_IsBikingAllowed() == TRUE && !MetatileAtPlayerPositionForbidsBiking()) { sItemUseOnFieldCB = ItemUseOnFieldCB_Bicycle; sub_80A103C(taskId); diff --git a/src/overworld.c b/src/overworld.c index 3b795887f..53b0df0af 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1037,7 +1037,7 @@ void Overworld_PlaySpecialMapMusic(void) if (gSaveBlock1Ptr->savedMusic) music = gSaveBlock1Ptr->savedMusic; - else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) &&sub_8056124(MUS_NAMINORI)) + else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && Overworld_MusicCanOverrideMapMusic(MUS_NAMINORI)) music = MUS_NAMINORI; if (music != GetCurrentMapMusic()) @@ -1075,7 +1075,7 @@ static void Overworld_TryMapConnectionMusicTransition(void) currentMusic = GetCurrentMapMusic(); if (currentMusic == MUS_NAMINORI) return; - if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && sub_8056124(MUS_NAMINORI)) + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) && Overworld_MusicCanOverrideMapMusic(MUS_NAMINORI)) newMusic = MUS_NAMINORI; if (newMusic != currentMusic) { @@ -1193,7 +1193,7 @@ static void ChooseAmbientCrySpecies(void) sAmbientCrySpecies = GetLocalWildMon(&sIsAmbientCryWaterMon); } -bool32 sub_8056124(u16 music) +bool32 Overworld_MusicCanOverrideMapMusic(u16 music) { if (music == MUS_CYCLING || music == MUS_NAMINORI) { diff --git a/src/quest_log_player.c b/src/quest_log_player.c index 42233999e..8abf7fab5 100644 --- a/src/quest_log_player.c +++ b/src/quest_log_player.c @@ -68,7 +68,7 @@ static void sub_81504E8(void) sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(1)); ObjectEventTurn(objectEvent, objectEvent->movementDirection); SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_MACH_BIKE); - sub_80BD620(0, 0); + InitPlayerAvatarBikeState(0, 0); } static void sub_8150530(void) |