diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2021-03-24 23:19:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-24 23:19:48 -0400 |
commit | 35b68c68ee565b9b232252e4f37ea082e9310560 (patch) | |
tree | aeacb544f27db8f63b17b7e808b28f4a1e12acde /src/field_player_avatar.c | |
parent | d8b76e6fb545efd69bfb18322a67243520e4d11d (diff) | |
parent | 7f70b570dd2e18a34a2c0ee558f404c15c77371c (diff) |
Merge pull request #404 from PikalaxALT/misc_doc
[PARTIALLY LEAK INFORMED] Miscellaneous cleanup and documentation
Diffstat (limited to 'src/field_player_avatar.c')
-rw-r--r-- | src/field_player_avatar.c | 265 |
1 files changed, 133 insertions, 132 deletions
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index d86811ca8..bf0afe5b8 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -26,13 +26,13 @@ #include "constants/metatile_behaviors.h" #include "constants/moves.h" -static EWRAM_DATA struct ObjectEvent * gUnknown_2036E30 = NULL; +static EWRAM_DATA struct ObjectEvent * sPlayerObjectPtr = NULL; static EWRAM_DATA u8 sTeleportSavedFacingDirection = DIR_NONE; EWRAM_DATA struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT] = {}; EWRAM_DATA struct PlayerAvatar gPlayerAvatar = {}; static u8 ObjectEventCB2_NoMovement2(struct ObjectEvent * object, struct Sprite * sprite); -static bool8 sub_805B528(void); +static bool8 TryUpdatePlayerSpinDirection(void); static bool8 TryInterruptObjectEventSpecialAnim(struct ObjectEvent * playerObjEvent, u8 direction); static void npc_clear_strange_bits(struct ObjectEvent * playerObjEvent); static bool8 TryDoMetatileBehaviorForcedMovement(void); @@ -77,18 +77,18 @@ static void PlayerAvatarTransition_Underwater(struct ObjectEvent * playerObject) static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent * playerObject); static bool8 PlayerIsAnimActive(void); static bool8 PlayerCheckIfAnimFinishedOrInactive(void); -static bool8 player_is_anim_in_certain_ranges(void); -static bool8 sub_805BF58(void); +static bool8 PlayerAnimIsMultiFrameStationary(void); +static bool8 PlayerAnimIsMultiFrameStationaryAndStateNotTurning(void); static void PlayCollisionSoundIfNotFacingWarp(u8 direction); static void PlayerGoSpin(u8 direction); -static void sub_805C2CC(u8 metatileBehavior); +static void PlayerApplyTileForcedMovement(u8 metatileBehavior); static bool8 MetatileAtCoordsIsWaterTile(s16 x, s16 y); -static void sub_805CC40(struct ObjectEvent * playerObjEvent); +static void HandleWarpArrowSpriteHideShow(struct ObjectEvent * playerObjEvent); static void StartStrengthAnim(u8 objectEventId, u8 direction); static void Task_BumpBoulder(u8 taskId); -static bool8 sub_805CD64(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj); -static bool8 do_boulder_dust(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj); -static bool8 sub_805CE20(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj); +static bool8 DoBoulderInit(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj); +static bool8 DoBoulderDust(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj); +static bool8 DoBoulderFinish(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj); static void DoPlayerMatJump(void); static void DoPlayerAvatarSecretBaseMatJump(u8 taskId); static bool8 PlayerAvatar_DoSecretBaseMatJump(struct Task * task, struct ObjectEvent * playerObj); @@ -136,8 +136,8 @@ void player_step(u8 direction, u16 newKeys, u16 heldKeys) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - sub_805CC40(playerObjEvent); - if (!gPlayerAvatar.preventStep && !sub_805B528()) + HandleWarpArrowSpriteHideShow(playerObjEvent); + if (!gPlayerAvatar.preventStep && !TryUpdatePlayerSpinDirection()) { if (!TryInterruptObjectEventSpecialAnim(playerObjEvent, direction)) { @@ -194,26 +194,26 @@ static void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 held static void PlayerAllowForcedMovementIfMovingSameDirection(void) { if (gPlayerAvatar.runningState == MOVING) - gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_FIELD_MOVE; + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_CONTROLLABLE; } -static bool8 sub_805B528(void) +static bool8 TryUpdatePlayerSpinDirection(void) { - if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FISHING) && MetatileBehavior_IsSpinTile(gPlayerAvatar.lastSpinTile)) + if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED) && MetatileBehavior_IsSpinTile(gPlayerAvatar.lastSpinTile)) { - gUnknown_2036E30 = &gObjectEvents[gPlayerAvatar.objectEventId]; - if (gUnknown_2036E30->heldMovementFinished) + sPlayerObjectPtr = &gObjectEvents[gPlayerAvatar.objectEventId]; + if (sPlayerObjectPtr->heldMovementFinished) { - if (MetatileBehavior_IsStopSpinning(gUnknown_2036E30->currentMetatileBehavior)) + if (MetatileBehavior_IsStopSpinning(sPlayerObjectPtr->currentMetatileBehavior)) { return FALSE; } - if (MetatileBehavior_IsSpinTile(gUnknown_2036E30->currentMetatileBehavior)) + if (MetatileBehavior_IsSpinTile(sPlayerObjectPtr->currentMetatileBehavior)) { - gPlayerAvatar.lastSpinTile = gUnknown_2036E30->currentMetatileBehavior; + gPlayerAvatar.lastSpinTile = sPlayerObjectPtr->currentMetatileBehavior; } - ObjectEventClearHeldMovement(gUnknown_2036E30); - sub_805C2CC(gPlayerAvatar.lastSpinTile); + ObjectEventClearHeldMovement(sPlayerObjectPtr); + PlayerApplyTileForcedMovement(gPlayerAvatar.lastSpinTile); } return TRUE; } @@ -221,8 +221,8 @@ static bool8 sub_805B528(void) } static const struct { - bool8 (*unk0)(u8 metatileBehavior); - bool8 (*unk4)(void); + bool8 (*check)(u8 metatileBehavior); + bool8 (*apply)(void); } sForcedMovementFuncs[] = { {MetatileBehavior_IsUnknownMovement48, ForcedMovement_Slip}, {MetatileBehavior_IsIce_2, ForcedMovement_Slip}, @@ -252,37 +252,38 @@ static bool8 TryDoMetatileBehaviorForcedMovement(void) { int i; u8 behavior; - if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FIELD_MOVE)) + if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_CONTROLLABLE)) { behavior = gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior; - for (i = 0; sForcedMovementFuncs[i].unk0 != NULL; i++) + for (i = 0; sForcedMovementFuncs[i].check != NULL; i++) { - if (sForcedMovementFuncs[i].unk0(behavior)) + if (sForcedMovementFuncs[i].check(behavior)) { gPlayerAvatar.lastSpinTile = behavior; - return sForcedMovementFuncs[i].unk4(); + return sForcedMovementFuncs[i].apply(); } } - return sForcedMovementFuncs[i].unk4(); + return sForcedMovementFuncs[i].apply(); } else { - for (i = 0; sForcedMovementFuncs[i].unk0 != NULL; i++) + // Calls ForcedMovement_None but with extra steps + for (i = 0; sForcedMovementFuncs[i].check != NULL; i++) ; - return sForcedMovementFuncs[i].unk4(); + return sForcedMovementFuncs[i].apply(); } } static bool8 ForcedMovement_None(void) { - if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FISHING) + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED) { struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; playerObjEvent->facingDirectionLocked = FALSE; playerObjEvent->enableAnim = TRUE; SetObjectEventDirection(playerObjEvent, playerObjEvent->facingDirection); - gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_FISHING; + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_FORCED; } return FALSE; } @@ -292,7 +293,7 @@ static u8 DoForcedMovement(u8 direction, MovementAction movementAction) struct PlayerAvatar *playerAvatar = &gPlayerAvatar; u8 collision = CheckForPlayerAvatarCollision(direction); - playerAvatar->flags |= PLAYER_AVATAR_FLAG_FISHING; + playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED; if (collision) { ForcedMovement_None(); @@ -304,7 +305,7 @@ static u8 DoForcedMovement(u8 direction, MovementAction movementAction) { if (collision == COLLISION_LEDGE_JUMP) PlayerJumpLedge(direction); - playerAvatar->flags |= PLAYER_AVATAR_FLAG_FISHING; + playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED; playerAvatar->runningState = MOVING; return 1; } @@ -581,12 +582,12 @@ u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u return collision; } -static const u8 gUnknown_835B820[] = { - MOVEMENT_ACTION_FACE_DOWN_FAST, - MOVEMENT_ACTION_FACE_DOWN_FAST, - MOVEMENT_ACTION_FACE_UP_FAST, - MOVEMENT_ACTION_FACE_LEFT_FAST, - MOVEMENT_ACTION_FACE_RIGHT_FAST +static const u8 sQuestLogSurfDismountActionIds[] = { + QL_PLAYER_GFX_STOP_SURF_S, + QL_PLAYER_GFX_STOP_SURF_S, + QL_PLAYER_GFX_STOP_SURF_N, + QL_PLAYER_GFX_STOP_SURF_W, + QL_PLAYER_GFX_STOP_SURF_E }; static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) @@ -595,7 +596,7 @@ static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) && MapGridGetZCoordAt(x, y) == 3 && GetObjectEventIdByXYZ(x, y, 3) == OBJECT_EVENTS_COUNT) { - sub_811278C(gUnknown_835B820[direction], 16); + QuestLogRecordPlayerAvatarGfxTransitionWithDuration(sQuestLogSurfDismountActionIds[direction], 16); CreateStopSurfingTask(direction); return TRUE; } @@ -641,7 +642,7 @@ static bool8 TryPushBoulder(s16 x, s16 y, u8 direction) } } -static bool8 (*const gUnknown_835B828[])(u8) = { +static bool8 (*const sAcroBikeTrickMetatiles[])(u8) = { MetatileBehavior_IsBumpySlope, MetatileBehavior_IsIsolatedVerticalRail, MetatileBehavior_IsIsolatedHorizontalRail, @@ -649,7 +650,7 @@ static bool8 (*const gUnknown_835B828[])(u8) = { MetatileBehavior_IsHorizontalRail }; -static const u8 gUnknown_835B83C[] = { +static const u8 sAcroBikeTrickCollisionTypes[] = { COLLISION_WHEELIE_HOP, COLLISION_ISOLATED_VERTICAL_RAIL, COLLISION_ISOLATED_HORIZONTAL_RAIL, @@ -661,11 +662,11 @@ static void CheckAcroBikeCollision(s16 x, s16 y, u8 metatileBehavior, u8 *collis { u8 i; - for (i = 0; i < NELEMS(gUnknown_835B828); i++) + for (i = 0; i < NELEMS(sAcroBikeTrickMetatiles); i++) { - if (gUnknown_835B828[i](metatileBehavior)) + if (sAcroBikeTrickMetatiles[i](metatileBehavior)) { - *collision = gUnknown_835B83C[i]; + *collision = sAcroBikeTrickCollisionTypes[i]; return; } } @@ -677,15 +678,15 @@ void SetPlayerAvatarTransitionFlags(u16 flags) DoPlayerAvatarTransition(); } -static void (*const gUnknown_835B844[])(struct ObjectEvent *) = { - [PLAYER_AVATAR_STATE_NORMAL] = PlayerAvatarTransition_Normal, - [PLAYER_AVATAR_STATE_MACH_BIKE] = PlayerAvatarTransition_Bike, - [PLAYER_AVATAR_STATE_ACRO_BIKE] = PlayerAvatarTransition_Bike, - [PLAYER_AVATAR_STATE_SURFING] = PlayerAvatarTransition_Surfing, - [PLAYER_AVATAR_STATE_UNDERWATER] = PlayerAvatarTransition_Underwater, - [PLAYER_AVATAR_STATE_FIELD_MOVE] = PlayerAvatarTransition_ReturnToField, - [PLAYER_AVATAR_STATE_FISHING] = PlayerAvatarTransition_Dummy, - [PLAYER_AVATAR_STATE_WATERING] = PlayerAvatarTransition_Dummy +static void (*const sPlayerAvatarTransitionFuncs[])(struct ObjectEvent *) = { + [PLAYER_AVATAR_STATE_NORMAL] = PlayerAvatarTransition_Normal, + [PLAYER_AVATAR_STATE_MACH_BIKE] = PlayerAvatarTransition_Bike, + [PLAYER_AVATAR_STATE_ACRO_BIKE] = PlayerAvatarTransition_Bike, + [PLAYER_AVATAR_STATE_SURFING] = PlayerAvatarTransition_Surfing, + [PLAYER_AVATAR_STATE_UNDERWATER] = PlayerAvatarTransition_Underwater, + [PLAYER_AVATAR_STATE_CONTROLLABLE] = PlayerAvatarTransition_ReturnToField, + [PLAYER_AVATAR_STATE_FORCED] = PlayerAvatarTransition_Dummy, + [PLAYER_AVATAR_STATE_DASH] = PlayerAvatarTransition_Dummy }; static void DoPlayerAvatarTransition(void) @@ -695,10 +696,10 @@ static void DoPlayerAvatarTransition(void) if (flags != 0) { - for (i = 0; i < NELEMS(gUnknown_835B844); i++, flags >>= 1) + for (i = 0; i < NELEMS(sPlayerAvatarTransitionFuncs); i++, flags >>= 1) { if (flags & 1) - gUnknown_835B844[i](&gObjectEvents[gPlayerAvatar.objectEventId]); + sPlayerAvatarTransitionFuncs[i](&gObjectEvents[gPlayerAvatar.objectEventId]); } gPlayerAvatar.transitionFlags = 0; } @@ -711,21 +712,21 @@ static void PlayerAvatarTransition_Dummy(struct ObjectEvent * playerObjEvent) static void PlayerAvatarTransition_Normal(struct ObjectEvent * playerObjEvent) { - sub_8150474(0); - sub_8150498(0); + QuestLogTryRecordPlayerAvatarGfxTransition(QL_PLAYER_GFX_NORMAL); + QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_NORMAL); } static void PlayerAvatarTransition_Bike(struct ObjectEvent * playerObjEvent) { - sub_8150474(1); - sub_8150498(1); + QuestLogTryRecordPlayerAvatarGfxTransition(QL_PLAYER_GFX_BIKE); + QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_BIKE); InitPlayerAvatarBikeState(0, 0); } static void PlayerAvatarTransition_Surfing(struct ObjectEvent * playerObjEvent) { - sub_8150474(3); - sub_8150498(3); + QuestLogTryRecordPlayerAvatarGfxTransition(QL_PLAYER_GFX_SURF); + QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_SURF); } static void PlayerAvatarTransition_Underwater(struct ObjectEvent * playerObjEvent) @@ -735,28 +736,28 @@ static void PlayerAvatarTransition_Underwater(struct ObjectEvent * playerObjEven static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent * playerObjEvent) { - gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_FIELD_MOVE; + gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_CONTROLLABLE; } -void sub_805BEB8(void) +void UpdatePlayerAvatarTransitionState(void) { gPlayerAvatar.tileTransitionState = T_NOT_MOVING; if (PlayerIsAnimActive()) { if (!PlayerCheckIfAnimFinishedOrInactive()) { - if (!player_is_anim_in_certain_ranges()) + if (!PlayerAnimIsMultiFrameStationary()) gPlayerAvatar.tileTransitionState = T_TILE_TRANSITION; } else { - if (!sub_805BF58()) + if (!PlayerAnimIsMultiFrameStationaryAndStateNotTurning()) gPlayerAvatar.tileTransitionState = T_TILE_CENTER; } } } -static bool8 player_is_anim_in_certain_ranges(void) +static bool8 PlayerAnimIsMultiFrameStationary(void) { u8 movementActionId = gObjectEvents[gPlayerAvatar.objectEventId].movementActionId; @@ -770,9 +771,9 @@ static bool8 player_is_anim_in_certain_ranges(void) return FALSE; } -static bool8 sub_805BF58(void) +static bool8 PlayerAnimIsMultiFrameStationaryAndStateNotTurning(void) { - if (player_is_anim_in_certain_ranges() && gPlayerAvatar.runningState != TURN_DIRECTION) + if (PlayerAnimIsMultiFrameStationary() && gPlayerAvatar.runningState != TURN_DIRECTION) return TRUE; else return FALSE; @@ -809,25 +810,25 @@ static void PlayerSetAnimId(u8 movementActionId, u8 copyableMovement) { PlayerSetCopyableMovement(copyableMovement); if (!ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], movementActionId)) - sub_8112628(movementActionId); + QuestLogRecordPlayerStep(movementActionId); } } -static void sub_805C06C(struct ObjectEvent * objectEvent, u8 movementAction) +static void QL_TryRecordPlayerStepWithDuration0(struct ObjectEvent * objectEvent, u8 movementAction) { if (!ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], movementAction)) - sub_81126AC(movementAction, 0); + QuestLogRecordPlayerStepWithDuration(movementAction, 0); } -static void sub_805C0A4(struct ObjectEvent * objectEvent, u8 movementAction) +static void QL_TryRecordNPCStepWithDuration32(struct ObjectEvent * objectEvent, u8 movementAction) { if (!ObjectEventSetHeldMovement(objectEvent, movementAction)) - sub_8112588(objectEvent->localId, objectEvent->mapNum, objectEvent->mapGroup, movementAction, 32); + QuestLogRecordNPCStepWithDuration(objectEvent->localId, objectEvent->mapNum, objectEvent->mapGroup, movementAction, 32); } -void sub_805C0D4(u8 direction) +void PlayerGoSlowest(u8 direction) { - PlayerSetAnimId(sub_8063F2C(direction), 2); + PlayerSetAnimId(GetWalkSlowestMovementAction(direction), 2); } void PlayerGoSlow(u8 direction) @@ -919,17 +920,17 @@ void HandleEnforcedLookDirectionOnPlayerStopMoving(void) static void PlayerGoSpin(u8 direction) { - PlayerSetAnimId(sub_80640E4(direction), 3); + PlayerSetAnimId(GetSpinMovementAction(direction), 3); } -static void sub_805C2CC(u8 metatileBehavior) +static void PlayerApplyTileForcedMovement(u8 metatileBehavior) { int i; - for (i = 0; sForcedMovementFuncs[i].unk0 != NULL; i++) + for (i = 0; sForcedMovementFuncs[i].check != NULL; i++) { - if (sForcedMovementFuncs[i].unk0(metatileBehavior)) - sForcedMovementFuncs[i].unk4(); + if (sForcedMovementFuncs[i].check(metatileBehavior)) + sForcedMovementFuncs[i].apply(); } } @@ -978,12 +979,12 @@ static void PlayerAcroWheelieCollide(u8 direction) PlayerSetAnimId(GetAcroWheelieInPlaceDirectionMovementAction(direction), 2); } -static void sub_805C408(u8 direction) +static void PlayerAcroPopWheelie(u8 direction) { PlayerSetAnimId(GetAcroPopWheelieMoveDirectionMovementAction(direction), 2); } -static void sub_805C420(u8 direction) +static void PlayerAcroWheelieMove(u8 direction) { PlayerSetAnimId(GetAcroWheelieMoveDirectionMovementAction(direction), 2); } @@ -1107,7 +1108,7 @@ u8 GetPlayerAvatarObjectId(void) return gPlayerAvatar.spriteId; } -void sub_805C774(void) +void CancelPlayerForcedMovement(void) { ForcedMovement_None(); } @@ -1126,12 +1127,12 @@ void StopPlayerAvatar(void) } static const u8 sPlayerAvatarGfxIds[][GENDER_COUNT] = { - {OBJ_EVENT_GFX_RED_NORMAL, OBJ_EVENT_GFX_GREEN_NORMAL}, - {OBJ_EVENT_GFX_RED_BIKE, OBJ_EVENT_GFX_GREEN_BIKE}, - {OBJ_EVENT_GFX_RED_SURF, OBJ_EVENT_GFX_GREEN_SURF}, - {OBJ_EVENT_GFX_RED_ITEM, OBJ_EVENT_GFX_GREEN_ITEM}, - {OBJ_EVENT_GFX_RED_FISH, OBJ_EVENT_GFX_GREEN_FISH}, - {OBJ_EVENT_GFX_RED_VS_SEEKER, OBJ_EVENT_GFX_GREEN_VS_SEEKER}, + [PLAYER_AVATAR_GFX_NORMAL] = {OBJ_EVENT_GFX_RED_NORMAL, OBJ_EVENT_GFX_GREEN_NORMAL}, + [PLAYER_AVATAR_GFX_BIKE] = {OBJ_EVENT_GFX_RED_BIKE, OBJ_EVENT_GFX_GREEN_BIKE}, + [PLAYER_AVATAR_GFX_RIDE] = {OBJ_EVENT_GFX_RED_SURF, OBJ_EVENT_GFX_GREEN_SURF}, + [PLAYER_AVATAR_GFX_FIELD_MOVE] = {OBJ_EVENT_GFX_RED_FIELD_MOVE, OBJ_EVENT_GFX_GREEN_FIELD_MOVE}, + [PLAYER_AVATAR_GFX_FISH] = {OBJ_EVENT_GFX_RED_FISH, OBJ_EVENT_GFX_GREEN_FISH}, + [PLAYER_AVATAR_GFX_VSSEEKER] = {OBJ_EVENT_GFX_RED_VS_SEEKER, OBJ_EVENT_GFX_GREEN_VS_SEEKER}, }; static const u8 sHoennLinkPartnerGfxIds[] = { @@ -1166,7 +1167,7 @@ u8 GetPlayerAvatarGenderByGraphicsId(u8 gfxId) case OBJ_EVENT_GFX_GREEN_NORMAL: case OBJ_EVENT_GFX_GREEN_BIKE: case OBJ_EVENT_GFX_GREEN_SURF: - case OBJ_EVENT_GFX_GREEN_ITEM: + case OBJ_EVENT_GFX_GREEN_FIELD_MOVE: case OBJ_EVENT_GFX_GREEN_FISH: return FEMALE; default: @@ -1226,7 +1227,7 @@ void ClearPlayerAvatarInfo(void) void SetPlayerAvatarStateMask(u8 flags) { - gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_DASH | PLAYER_AVATAR_FLAG_FISHING | PLAYER_AVATAR_FLAG_FIELD_MOVE); + gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_DASH | PLAYER_AVATAR_FLAG_FORCED | PLAYER_AVATAR_FLAG_CONTROLLABLE); gPlayerAvatar.flags |= flags; } @@ -1258,21 +1259,21 @@ u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 graphicsId, u8 gender) u8 GetPlayerAvatarGraphicsIdByCurrentState(void) { u8 i; - u8 r5 = gPlayerAvatar.flags; + u8 flags = gPlayerAvatar.flags; for (i = 0; i < NELEMS(*sPlayerAvatarGfxToStateFlag); i++) { - if (sPlayerAvatarGfxToStateFlag[gPlayerAvatar.gender][i][1] & r5) + if (sPlayerAvatarGfxToStateFlag[gPlayerAvatar.gender][i][1] & flags) return sPlayerAvatarGfxToStateFlag[gPlayerAvatar.gender][i][0]; } return 0; } -void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 b) +void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 extras) { u8 unk = GetPlayerAvatarStateTransitionByGraphicsId(graphicsId, gPlayerAvatar.gender); - gPlayerAvatar.transitionFlags |= unk | b; + gPlayerAvatar.transitionFlags |= unk | extras; DoPlayerAvatarTransition(); } @@ -1283,7 +1284,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender) struct ObjectEvent *objectEvent; playerObjEventTemplate.localId = OBJ_EVENT_ID_PLAYER; - playerObjEventTemplate.graphicsId = GetPlayerAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, gender); + playerObjEventTemplate.graphicsId = GetPlayerAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_GFX_NORMAL, gender); playerObjEventTemplate.x = x - 7; playerObjEventTemplate.y = y - 7; playerObjEventTemplate.elevation = 0; @@ -1305,7 +1306,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender) gPlayerAvatar.objectEventId = objectEventId; gPlayerAvatar.spriteId = objectEvent->spriteId; gPlayerAvatar.gender = gender; - SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_FIELD_MOVE | PLAYER_AVATAR_FLAG_ON_FOOT); + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_CONTROLLABLE | PLAYER_AVATAR_FLAG_ON_FOOT); } void SetPlayerInvisibility(bool8 invisible) @@ -1315,34 +1316,34 @@ void SetPlayerInvisibility(bool8 invisible) gSprites[gObjectEvents[gPlayerAvatar.objectEventId].fieldEffectSpriteId].invisible = invisible; } -void sub_805CB70(void) +void StartPlayerAvatarSummonMonForFieldMoveAnim(void) { - ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); + ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_FIELD_MOVE)); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 0); } -static const u8 gUnknown_835B88E[] = { +static const u8 sPlayerAvatarVsSeekerBikeGfxIds[] = { OBJ_EVENT_GFX_RED_VS_SEEKER_BIKE, OBJ_EVENT_GFX_GREEN_VS_SEEKER_BIKE }; -u8 sub_805CBB8(void) +u8 GetPlayerAvatarVsSeekerGfxId(void) { if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE)) - return gUnknown_835B88E[gPlayerAvatar.gender]; + return sPlayerAvatarVsSeekerBikeGfxIds[gPlayerAvatar.gender]; else - return GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_FIELD_MOVE); + return GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_VSSEEKER); } -void sub_805CBE8(void) +void StartPlayerAvatarVsSeekerAnim(void) { - ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], sub_805CBB8()); + ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarVsSeekerGfxId()); StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 0); } -void sub_805CC2C(u8 direction) +void StartPlayerAvatarFishAnim(u8 direction) { - sub_8150498(2); + QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_FISH); } void nullsub_24(u8 direction) @@ -1362,7 +1363,7 @@ static bool8 (*const sArrowWarpMetatileBehaviorChecks2[])(u8) = { MetatileBehavior_IsEastArrowWarp }; -static void sub_805CC40(struct ObjectEvent *objectEvent) +static void HandleWarpArrowSpriteHideShow(struct ObjectEvent *objectEvent) { s16 x; s16 y; @@ -1383,10 +1384,10 @@ static void sub_805CC40(struct ObjectEvent *objectEvent) SetSpriteInvisible(objectEvent->warpArrowSpriteId); } -static bool8 (*const gUnknown_835B8A0[])(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj) = { - sub_805CD64, - do_boulder_dust, - sub_805CE20 +static bool8 (*const sBoulderTaskSteps[])(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj) = { + DoBoulderInit, + DoBoulderDust, + DoBoulderFinish }; static void StartStrengthAnim(u8 a, u8 b) @@ -1400,13 +1401,13 @@ static void StartStrengthAnim(u8 a, u8 b) static void Task_BumpBoulder(u8 taskId) { - while (gUnknown_835B8A0[gTasks[taskId].data[0]](&gTasks[taskId], + while (sBoulderTaskSteps[gTasks[taskId].data[0]](&gTasks[taskId], &gObjectEvents[gPlayerAvatar.objectEventId], &gObjectEvents[gTasks[taskId].data[1]])) ; } -static bool8 sub_805CD64(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) +static bool8 DoBoulderInit(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) { ScriptContext2_Enable(); gPlayerAvatar.preventStep = TRUE; @@ -1414,15 +1415,15 @@ static bool8 sub_805CD64(struct Task *task, struct ObjectEvent *playerObject, st return FALSE; } -static bool8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) +static bool8 DoBoulderDust(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) { if (!ObjectEventIsMovementOverridden(playerObject) && !ObjectEventIsMovementOverridden(strengthObject)) { ObjectEventClearHeldMovementIfFinished(playerObject); ObjectEventClearHeldMovementIfFinished(strengthObject); - sub_805C06C(playerObject, GetWalkInPlaceNormalMovementAction((u8)task->data[2])); - sub_805C0A4(strengthObject, sub_8063F2C((u8)task->data[2])); + QL_TryRecordPlayerStepWithDuration0(playerObject, GetWalkInPlaceNormalMovementAction((u8)task->data[2])); + QL_TryRecordNPCStepWithDuration32(strengthObject, GetWalkSlowestMovementAction((u8)task->data[2])); gFieldEffectArguments[0] = strengthObject->currentCoords.x; gFieldEffectArguments[1] = strengthObject->currentCoords.y; gFieldEffectArguments[2] = strengthObject->previousElevation; @@ -1434,7 +1435,7 @@ static bool8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject return FALSE; } -static bool8 sub_805CE20(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) +static bool8 DoBoulderFinish(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) { if (ObjectEventCheckHeldMovementStatus(playerObject) && ObjectEventCheckHeldMovementStatus(strengthObject)) @@ -1472,12 +1473,12 @@ static bool8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct ObjectEv if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { PlaySE(SE_LEDGE); - sub_805C06C(objectEvent, GetJumpInPlaceMovementAction(objectEvent->facingDirection)); + QL_TryRecordPlayerStepWithDuration0(objectEvent, GetJumpInPlaceMovementAction(objectEvent->facingDirection)); task->data[1]++; if (task->data[1] > 1) { gPlayerAvatar.preventStep = FALSE; - gPlayerAvatar.transitionFlags |= PLAYER_AVATAR_FLAG_FIELD_MOVE; + gPlayerAvatar.transitionFlags |= PLAYER_AVATAR_FLAG_CONTROLLABLE; DestroyTask(FindTaskIdByFunc(DoPlayerAvatarSecretBaseMatJump)); } } @@ -1522,7 +1523,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep1(struct Task *task, struct Objec { u8 direction; - sub_805C06C(objectEvent, GetFaceDirectionMovementAction(direction = directions[objectEvent->movementDirection - 1])); + QL_TryRecordPlayerStepWithDuration0(objectEvent, GetFaceDirectionMovementAction(direction = directions[objectEvent->movementDirection - 1])); if (direction == (u8)task->data[1]) task->data[2]++; task->data[0]++; @@ -1544,7 +1545,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep2(struct Task *task, struct Objec if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { - sub_805C06C(objectEvent, actions[task->data[2]]); + QL_TryRecordPlayerStepWithDuration0(objectEvent, actions[task->data[2]]); task->data[0] = 1; } return FALSE; @@ -1554,7 +1555,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep3(struct Task *task, struct Objec { if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { - sub_805C06C(objectEvent, sub_8063F2C(GetOppositeDirection(task->data[1]))); + QL_TryRecordPlayerStepWithDuration0(objectEvent, GetWalkSlowestMovementAction(GetOppositeDirection(task->data[1]))); ScriptContext2_Disable(); gPlayerAvatar.preventStep = FALSE; DestroyTask(FindTaskIdByFunc(PlayerAvatar_DoSecretBaseMatSpin)); @@ -1596,7 +1597,7 @@ void SeafoamIslandsB4F_CurrentDumpsPlayerOnLand(void) { if (gQuestLogPlaybackState != 1 && gQuestLogPlaybackState != 3) { - sub_811278C(gUnknown_835B820[DIR_NORTH], 16); + QuestLogRecordPlayerAvatarGfxTransitionWithDuration(sQuestLogSurfDismountActionIds[DIR_NORTH], 16); CreateStopSurfingTask(DIR_NORTH); } } @@ -1611,7 +1612,7 @@ static void Task_StopSurfingInit(u8 taskId) return; } sub_80DC44C(playerObjEvent->fieldEffectSpriteId, 2); - sub_805C06C(playerObjEvent, sub_80641EC((u8)gTasks[taskId].data[0])); + QL_TryRecordPlayerStepWithDuration0(playerObjEvent, sub_80641EC((u8)gTasks[taskId].data[0])); gTasks[taskId].func = Task_WaitStopSurfing; } @@ -1621,8 +1622,8 @@ static void Task_WaitStopSurfing(u8 taskId) if (ObjectEventClearHeldMovementIfFinished(playerObjEvent)) { - ObjectEventSetGraphicsId(playerObjEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_NORMAL)); - sub_805C06C(playerObjEvent, GetFaceDirectionMovementAction(playerObjEvent->facingDirection)); + ObjectEventSetGraphicsId(playerObjEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL)); + QL_TryRecordPlayerStepWithDuration0(playerObjEvent, GetFaceDirectionMovementAction(playerObjEvent->facingDirection)); gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); UnfreezeObjectEvents(); @@ -1674,8 +1675,8 @@ void StartFishing(u8 rod) gTasks[taskId].tFishingRod = rod; Task_Fishing(taskId); - if (sub_8150474(2) == TRUE) - sub_8112C9C(); + if (QuestLogTryRecordPlayerAvatarGfxTransition(QL_PLAYER_GFX_FISH) == TRUE) + QL_AfterRecordFishActionSuccessful(); } @@ -1705,7 +1706,7 @@ static bool8 Fishing2(struct Task *task) playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; ObjectEventClearHeldMovementIfActive(playerObjEvent); playerObjEvent->enableAnim = 1; - sub_805CC2C(playerObjEvent->facingDirection); + StartPlayerAvatarFishAnim(playerObjEvent->facingDirection); task->tStep++; return FALSE; } |