diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/berry_crush_2.c | 2 | ||||
-rw-r--r-- | src/event_object_movement.c | 8 | ||||
-rw-r--r-- | src/field_control_avatar.c | 8 | ||||
-rw-r--r-- | src/field_effect.c | 30 | ||||
-rw-r--r-- | src/field_player_avatar.c | 165 | ||||
-rw-r--r-- | src/field_specials.c | 4 | ||||
-rw-r--r-- | src/overworld.c | 4 | ||||
-rw-r--r-- | src/quest_log_player.c | 4 | ||||
-rw-r--r-- | src/trainer_see.c | 2 |
9 files changed, 114 insertions, 113 deletions
diff --git a/src/berry_crush_2.c b/src/berry_crush_2.c index fa9440888..cb5b97b47 100644 --- a/src/berry_crush_2.c +++ b/src/berry_crush_2.c @@ -743,7 +743,7 @@ static void BerryCrush_UpdateGameState(struct BerryCrushGame * game) u8 i; for (i = 0; i < game->playerCount; ++i) - game->unk68.as_four_players.others[i].unk4.as_2d_bytes[1][5] = 0; + game->unk68.as_four_players.others[i].apply.as_2d_bytes[1][5] = 0; #endif if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00 || gRecvCmds[0][1] != 2) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index cc6c07e5b..f66061181 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -2231,7 +2231,7 @@ static void SetPlayerAvatarObjectEventIdAndObjectId(u8 objectEventId, u8 spriteI gPlayerAvatar.objectEventId = objectEventId; gPlayerAvatar.spriteId = spriteId; gPlayerAvatar.gender = GetPlayerAvatarGenderByGraphicsId(gObjectEvents[objectEventId].graphicsId); - SetPlayerAvatarExtraStateTransition(gObjectEvents[objectEventId].graphicsId, 0x20); + SetPlayerAvatarExtraStateTransition(gObjectEvents[objectEventId].graphicsId, PLAYER_AVATAR_FLAG_CONTROLLABLE); } void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) @@ -3016,7 +3016,7 @@ static bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, st static bool8 MovementType_WanderAround_Step5Duplicate(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - ObjectEventSetSingleMovement(objectEvent, sprite, sub_8063F2C(objectEvent->movementDirection)); + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkSlowestMovementAction(objectEvent->movementDirection)); objectEvent->singleMovementActive = TRUE; sprite->data[1] = 6; return TRUE; @@ -5451,7 +5451,7 @@ u8 sub_8063F10(u32 idx) return gUnknown_83A64F6[direction]; } -dirn_to_anim(sub_8063F2C, gUnknown_83A64FB); +dirn_to_anim(GetWalkSlowestMovementAction, gUnknown_83A64FB); dirn_to_anim(GetWalkSlowMovementAction, gUnknown_83A6500); dirn_to_anim(GetWalkNormalMovementAction, gUnknown_83A6505); dirn_to_anim(GetWalkFastMovementAction, gUnknown_83A650A); @@ -5461,7 +5461,7 @@ dirn_to_anim(GetWalkFastestMovementAction, gUnknown_83A6519); dirn_to_anim(GetSlideMovementAction, gUnknown_83A651E); dirn_to_anim(GetPlayerRunMovementAction, gUnknown_83A6523); dirn_to_anim(GetPlayerRunSlowMovementAction, gUnknown_83A6528); -dirn_to_anim(sub_80640E4, gUnknown_83A652D); +dirn_to_anim(GetSpinMovementAction, gUnknown_83A652D); dirn_to_anim(GetJump2MovementAction, gUnknown_83A6532); dirn_to_anim(GetJumpInPlaceMovementAction, gUnknown_83A6537); dirn_to_anim(GetJumpInPlaceTurnAroundMovementAction, gUnknown_83A653C); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 572c6af6b..004e2c219 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -105,11 +105,11 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) { if (GetPlayerSpeed() != 4) { - if ((newKeys & START_BUTTON) && !(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FISHING)) + if ((newKeys & START_BUTTON) && !(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED)) input->pressedStartButton = TRUE; if (!QL_IS_PLAYBACK_STATE) { - if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FISHING)) + if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED)) { if (newKeys & SELECT_BUTTON) input->pressedSelectButton = TRUE; @@ -625,7 +625,7 @@ static bool8 TryStartStepBasedScript(struct MapPosition *position, u16 metatileB return TRUE; if (TryStartStepCountScript(metatileBehavior) == TRUE) return TRUE; - if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FISHING) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior) && UpdateRepelCounter() == TRUE) + if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior) && UpdateRepelCounter() == TRUE) return TRUE; return FALSE; } @@ -655,7 +655,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) UpdateHappinessStepCounter(); - if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FISHING) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) + if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior)) { if (UpdateVsSeekerStepCounter() == TRUE) { diff --git a/src/field_effect.c b/src/field_effect.c index 051e72282..5942e68fd 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1600,7 +1600,7 @@ static bool8 waterfall_2_wait_anim_finish_probably(struct Task * task, struct Ob static bool8 waterfall_3_move_player_probably(struct Task * task, struct ObjectEvent * playerObj) { - ObjectEventSetHeldMovement(playerObj, sub_8063F2C(DIR_NORTH)); + ObjectEventSetHeldMovement(playerObj, GetWalkSlowestMovementAction(DIR_NORTH)); task->data[0]++; return FALSE; } @@ -2907,7 +2907,7 @@ static void UseSurfEffect_1(struct Task * task) ScriptContext2_Enable(); FreezeObjectEvents(); gPlayerAvatar.preventStep = TRUE; - SetPlayerAvatarStateMask(8); + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING); PlayerGetDestCoords(&task->data[1], &task->data[2]); MoveCoords(gObjectEvents[gPlayerAvatar.objectEventId].movementDirection, &task->data[1], &task->data[2]); task->data[0]++; @@ -2943,7 +2943,7 @@ static void UseSurfEffect_4(struct Task * task) if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2)); + ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE)); ObjectEventClearHeldMovementIfFinished(objectEvent); ObjectEventSetHeldMovement(objectEvent, sub_80641C0(objectEvent->movementDirection)); gFieldEffectArguments[0] = task->data[1]; @@ -2961,7 +2961,7 @@ static void UseSurfEffect_5(struct Task * task) if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { gPlayerAvatar.preventStep = FALSE; - gPlayerAvatar.flags &= 0xdf; + gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_CONTROLLABLE; ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection)); sub_80DC44C(objectEvent->fieldEffectSpriteId, 1); UnfreezeObjectEvents(); @@ -3023,11 +3023,11 @@ static void UseVsSeekerEffect_3(struct Task * task) if (ObjectEventClearHeldMovementIfFinished(playerObj)) { if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE)) - ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(1)); + ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_BIKE)); else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(2)); + ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE)); else - ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(0)); + ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL)); ObjectEventForceSetHeldMovement(playerObj, GetFaceDirectionMovementAction(playerObj->facingDirection)); task->data[0]++; } @@ -3131,7 +3131,7 @@ static void UseFlyEffect_1(struct Task * task) { task->data[15] = gPlayerAvatar.flags; gPlayerAvatar.preventStep = TRUE; - SetPlayerAvatarStateMask(1); + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); StartPlayerAvatarSummonMonForFieldMoveAnim(); ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); task->data[0]++; @@ -3191,7 +3191,7 @@ static void UseFlyEffect_6(struct Task * task) if ((++task->data[2]) >= 8) { struct ObjectEvent * objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2)); + ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE)); StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16); objectEvent->inanimate = TRUE; ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT); @@ -3437,12 +3437,12 @@ static void FlyInEffect_1(struct Task * task) task->data[2] = 33; task->data[15] = gPlayerAvatar.flags; gPlayerAvatar.preventStep = TRUE; - SetPlayerAvatarStateMask(0x01); - if (task->data[15] & 0x08) + SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT); + if (task->data[15] & PLAYER_AVATAR_FLAG_SURFING) { sub_80DC44C(objectEvent->fieldEffectSpriteId, 0); } - ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2)); + ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE)); CameraObjectReset2(); ObjectEventTurn(objectEvent, DIR_WEST); StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16); @@ -3550,10 +3550,10 @@ static void FlyInEffect_7(struct Task * task) if ((--task->data[1]) == 0) { objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; - state = 0; - if (task->data[15] & 0x08) + state = PLAYER_AVATAR_GFX_NORMAL; + if (task->data[15] & PLAYER_AVATAR_FLAG_SURFING) { - state = 2; + state = PLAYER_AVATAR_GFX_RIDE; sub_80DC44C(objectEvent->fieldEffectSpriteId, 1); } ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(state)); diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 0fde0b223..5680a1f33 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); @@ -78,17 +78,17 @@ static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent * playerObje static bool8 PlayerIsAnimActive(void); static bool8 PlayerCheckIfAnimFinishedOrInactive(void); static bool8 player_is_anim_in_certain_ranges(void); -static bool8 sub_805BF58(void); +static bool8 player_is_anim_in_certain_ranges__running_state_not_turn(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_init(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 do_boulder_finish(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; } @@ -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 *) = { +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_FIELD_MOVE] = PlayerAvatarTransition_ReturnToField, - [PLAYER_AVATAR_STATE_FISHING] = PlayerAvatarTransition_Dummy, - [PLAYER_AVATAR_STATE_WATERING] = PlayerAvatarTransition_Dummy + [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; } @@ -735,10 +736,10 @@ 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()) @@ -750,7 +751,7 @@ void sub_805BEB8(void) } else { - if (!sub_805BF58()) + if (!player_is_anim_in_certain_ranges__running_state_not_turn()) gPlayerAvatar.tileTransitionState = T_TILE_CENTER; } } @@ -770,7 +771,7 @@ static bool8 player_is_anim_in_certain_ranges(void) return FALSE; } -static bool8 sub_805BF58(void) +static bool8 player_is_anim_in_certain_ranges__running_state_not_turn(void) { if (player_is_anim_in_certain_ranges() && gPlayerAvatar.runningState != TURN_DIRECTION) return TRUE; @@ -813,21 +814,21 @@ static void PlayerSetAnimId(u8 movementActionId, u8 copyableMovement) } } -static void sub_805C06C(struct ObjectEvent * objectEvent, u8 movementAction) +static void QL_TryRecordPlayerStepWithDuration0(struct ObjectEvent * objectEvent, u8 movementAction) { if (!ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], movementAction)) 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)) 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(); } @@ -1128,7 +1129,7 @@ void StopPlayerAvatar(void) static const u8 sPlayerAvatarGfxIds[][GENDER_COUNT] = { [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_SURF] = {OBJ_EVENT_GFX_RED_SURF, OBJ_EVENT_GFX_GREEN_SURF}, + [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}, @@ -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(); } @@ -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) @@ -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, +static bool8 (*const sBoulderTaskSteps[])(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj) = { + do_boulder_init, do_boulder_dust, - sub_805CE20 + do_boulder_finish }; 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 do_boulder_init(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) { ScriptContext2_Enable(); gPlayerAvatar.preventStep = TRUE; @@ -1421,8 +1422,8 @@ static bool8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject { 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 do_boulder_finish(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)); @@ -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; } @@ -1622,7 +1623,7 @@ static void Task_WaitStopSurfing(u8 taskId) if (ObjectEventClearHeldMovementIfFinished(playerObjEvent)) { ObjectEventSetGraphicsId(playerObjEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL)); - sub_805C06C(playerObjEvent, GetFaceDirectionMovementAction(playerObjEvent->facingDirection)); + QL_TryRecordPlayerStepWithDuration0(playerObjEvent, GetFaceDirectionMovementAction(playerObjEvent->facingDirection)); gPlayerAvatar.preventStep = FALSE; ScriptContext2_Disable(); UnfreezeObjectEvents(); diff --git a/src/field_specials.c b/src/field_specials.c index 1b043b5f5..7bbe1f258 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -109,9 +109,9 @@ void ResetCyclingRoadChallengeData(void) u8 GetPlayerAvatarBike(void) { - if (TestPlayerAvatarFlags(4)) + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE)) return 1; - else if (TestPlayerAvatarFlags(2)) + else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE)) return 2; else return 0; diff --git a/src/overworld.c b/src/overworld.c index 1f25d523b..073295e8d 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1393,7 +1393,7 @@ static void DoCB1_Overworld(u16 newKeys, u16 heldKeys) struct FieldInput fieldInput; sub_8112B3C(); - sub_805BEB8(); + UpdatePlayerAvatarTransitionState(); FieldClearPlayerInput(&fieldInput); FieldGetPlayerInput(&fieldInput, newKeys, heldKeys); FieldInput_HandleCancelSignpost(&fieldInput); @@ -1419,7 +1419,7 @@ static void DoCB1_Overworld_QuestLogPlayback(void) struct FieldInput fieldInput; sub_8112B3C(); - sub_805BEB8(); + UpdatePlayerAvatarTransitionState(); sub_8111C68(); FieldClearPlayerInput(&fieldInput); fieldInput = gQuestLogFieldInput; diff --git a/src/quest_log_player.c b/src/quest_log_player.c index 951273639..4dcb13af2 100644 --- a/src/quest_log_player.c +++ b/src/quest_log_player.c @@ -125,7 +125,7 @@ static void Task_QLFishMovement(u8 taskId) if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)) QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL)); else - QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_SURF)); + QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE)); ObjectEventTurn(objectEvent, objectEvent->movementDirection); sprite->pos2.x = 0; sprite->pos2.y = 0; @@ -143,7 +143,7 @@ static void QL_GfxTransition_StartSurf(void) if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)) { - QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_SURF)); + QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE)); ObjectEventTurn(objectEvent, objectEvent->movementDirection); SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING); gFieldEffectArguments[0] = objectEvent->currentCoords.x; diff --git a/src/trainer_see.c b/src/trainer_see.c index f393c4bbd..a46799bfe 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -356,7 +356,7 @@ static bool8 TrainerSeeFunc_PrepareToEngage(u8 taskId, struct Task * task, struc if (ObjectEventIsMovementOverridden(playerObj) && !ObjectEventClearHeldMovementIfFinished(playerObj)) return FALSE; - sub_805C774(); + CancelPlayerForcedMovement(); // Uncomment to have player turn to face their opponent // ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetFaceDirectionMovementAction(GetOppositeDirection(trainerObj->facingDirection))); task->tFuncId++; |