Update player avatar state enums
This commit is contained in:
@@ -224,8 +224,8 @@ struct ObjectEventGraphicsInfo
|
|||||||
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
|
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
|
||||||
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
|
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
|
||||||
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4)
|
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4)
|
||||||
#define PLAYER_AVATAR_FLAG_FIELD_MOVE (1 << 5)
|
#define PLAYER_AVATAR_FLAG_CONTROLLABLE (1 << 5)
|
||||||
#define PLAYER_AVATAR_FLAG_FISHING (1 << 6)
|
#define PLAYER_AVATAR_FLAG_FORCED (1 << 6)
|
||||||
#define PLAYER_AVATAR_FLAG_WATERING (1 << 7)
|
#define PLAYER_AVATAR_FLAG_WATERING (1 << 7)
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent);
|
|||||||
u8 GetWalkNormalMovementAction(u32);
|
u8 GetWalkNormalMovementAction(u32);
|
||||||
u8 GetWalkFastMovementAction(u32);
|
u8 GetWalkFastMovementAction(u32);
|
||||||
u8 GetWalkFastestMovementAction(u32);
|
u8 GetWalkFastestMovementAction(u32);
|
||||||
u8 sub_8063F2C(u32 direction);
|
u8 GetWalkSlowestMovementAction(u32 direction);
|
||||||
u8 GetTrainerFacingDirectionMovementType(u8 direction);
|
u8 GetTrainerFacingDirectionMovementType(u8 direction);
|
||||||
u8 GetFaceDirectionMovementAction(u32);
|
u8 GetFaceDirectionMovementAction(u32);
|
||||||
u8 GetFaceDirectionFastMovementAction(u32);
|
u8 GetFaceDirectionFastMovementAction(u32);
|
||||||
@@ -149,7 +149,8 @@ const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId);
|
|||||||
u8 GetFirstInactiveObjectEventId(void);
|
u8 GetFirstInactiveObjectEventId(void);
|
||||||
u8 GetCollisionFlagsAtCoords(struct ObjectEvent * objectEvent, s16 x, s16 y, u8 direction);
|
u8 GetCollisionFlagsAtCoords(struct ObjectEvent * objectEvent, s16 x, s16 y, u8 direction);
|
||||||
u8 sub_8063FB0(u8 direction);
|
u8 sub_8063FB0(u8 direction);
|
||||||
void OverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent);void sub_805C774(void);
|
void OverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent);
|
||||||
|
void CancelPlayerForcedMovement(void);
|
||||||
void FreezeObjectEvents(void);
|
void FreezeObjectEvents(void);
|
||||||
bool8 FreezeObjectEvent(struct ObjectEvent *);
|
bool8 FreezeObjectEvent(struct ObjectEvent *);
|
||||||
void UnfreezeObjectEvent(struct ObjectEvent *);
|
void UnfreezeObjectEvent(struct ObjectEvent *);
|
||||||
@@ -208,7 +209,7 @@ u8 sub_8064008(u32 direction);
|
|||||||
u8 GetPlayerRunMovementAction(u32 direction);
|
u8 GetPlayerRunMovementAction(u32 direction);
|
||||||
u8 GetPlayerRunSlowMovementAction(u32 direction);
|
u8 GetPlayerRunSlowMovementAction(u32 direction);
|
||||||
u8 GetWalkSlowMovementAction(u32 direction);
|
u8 GetWalkSlowMovementAction(u32 direction);
|
||||||
u8 sub_80640E4(u32 direction);
|
u8 GetSpinMovementAction(u32 direction);
|
||||||
u8 GetAcroWheelieFaceDirectionMovementAction(u32 direction);
|
u8 GetAcroWheelieFaceDirectionMovementAction(u32 direction);
|
||||||
u8 GetAcroPopWheelieFaceDirectionMovementAction(u32 direction);
|
u8 GetAcroPopWheelieFaceDirectionMovementAction(u32 direction);
|
||||||
u8 GetAcroEndWheelieFaceDirectionMovementAction(u32 direction);
|
u8 GetAcroEndWheelieFaceDirectionMovementAction(u32 direction);
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ void StartPlayerAvatarVsSeekerAnim(void);
|
|||||||
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
|
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
|
||||||
u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
|
u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
|
||||||
u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior);
|
u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior);
|
||||||
void sub_805C0D4(u8 direction);
|
void PlayerGoSlowest(u8 direction);
|
||||||
void PlayerGoSlow(u8 direction);
|
void PlayerGoSlow(u8 direction);
|
||||||
void PlayerGoSpeed1(u8 direction);
|
void PlayerGoSpeed1(u8 direction);
|
||||||
void PlayerGoSpeed2(u8 direction);
|
void PlayerGoSpeed2(u8 direction);
|
||||||
@@ -59,7 +59,7 @@ void PlayerJumpLedge(u8 direction);
|
|||||||
void sub_805C260(void);
|
void sub_805C260(void);
|
||||||
void player_step(u8 direction, u16 newKeys, u16 heldKeys);
|
void player_step(u8 direction, u16 newKeys, u16 heldKeys);
|
||||||
bool32 PlayerIsMovingOnRockStairs(u8 direction);
|
bool32 PlayerIsMovingOnRockStairs(u8 direction);
|
||||||
void sub_805BEB8(void);
|
void UpdatePlayerAvatarTransitionState(void);
|
||||||
void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender);
|
void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender);
|
||||||
void nullsub_24(u8 direction);
|
void nullsub_24(u8 direction);
|
||||||
u8 GetRSAvatarGraphicsIdByGender(u8 gender);
|
u8 GetRSAvatarGraphicsIdByGender(u8 gender);
|
||||||
|
|||||||
+12
-12
@@ -279,24 +279,24 @@ enum {
|
|||||||
PLAYER_AVATAR_STATE_ACRO_BIKE,
|
PLAYER_AVATAR_STATE_ACRO_BIKE,
|
||||||
PLAYER_AVATAR_STATE_SURFING,
|
PLAYER_AVATAR_STATE_SURFING,
|
||||||
PLAYER_AVATAR_STATE_UNDERWATER,
|
PLAYER_AVATAR_STATE_UNDERWATER,
|
||||||
PLAYER_AVATAR_STATE_FIELD_MOVE,
|
PLAYER_AVATAR_STATE_CONTROLLABLE,
|
||||||
PLAYER_AVATAR_STATE_FISHING,
|
PLAYER_AVATAR_STATE_FORCED,
|
||||||
PLAYER_AVATAR_STATE_WATERING,
|
PLAYER_AVATAR_STATE_DASH,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << PLAYER_AVATAR_STATE_NORMAL)
|
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << PLAYER_AVATAR_STATE_NORMAL)
|
||||||
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << PLAYER_AVATAR_STATE_MACH_BIKE)
|
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << PLAYER_AVATAR_STATE_MACH_BIKE)
|
||||||
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << PLAYER_AVATAR_STATE_ACRO_BIKE)
|
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << PLAYER_AVATAR_STATE_ACRO_BIKE)
|
||||||
#define PLAYER_AVATAR_FLAG_SURFING (1 << PLAYER_AVATAR_STATE_SURFING)
|
#define PLAYER_AVATAR_FLAG_SURFING (1 << PLAYER_AVATAR_STATE_SURFING)
|
||||||
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << PLAYER_AVATAR_STATE_UNDERWATER)
|
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << PLAYER_AVATAR_STATE_UNDERWATER)
|
||||||
#define PLAYER_AVATAR_FLAG_FIELD_MOVE (1 << PLAYER_AVATAR_STATE_FIELD_MOVE)
|
#define PLAYER_AVATAR_FLAG_CONTROLLABLE (1 << PLAYER_AVATAR_STATE_CONTROLLABLE)
|
||||||
#define PLAYER_AVATAR_FLAG_FISHING (1 << PLAYER_AVATAR_STATE_FISHING)
|
#define PLAYER_AVATAR_FLAG_FORCED (1 << PLAYER_AVATAR_STATE_FORCED)
|
||||||
#define PLAYER_AVATAR_FLAG_DASH (1 << PLAYER_AVATAR_STATE_WATERING)
|
#define PLAYER_AVATAR_FLAG_DASH (1 << PLAYER_AVATAR_STATE_DASH)
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PLAYER_AVATAR_GFX_NORMAL,
|
PLAYER_AVATAR_GFX_NORMAL,
|
||||||
PLAYER_AVATAR_GFX_BIKE,
|
PLAYER_AVATAR_GFX_BIKE,
|
||||||
PLAYER_AVATAR_GFX_SURF,
|
PLAYER_AVATAR_GFX_RIDE,
|
||||||
PLAYER_AVATAR_GFX_FIELD_MOVE,
|
PLAYER_AVATAR_GFX_FIELD_MOVE,
|
||||||
PLAYER_AVATAR_GFX_FISH,
|
PLAYER_AVATAR_GFX_FISH,
|
||||||
PLAYER_AVATAR_GFX_VSSEEKER,
|
PLAYER_AVATAR_GFX_VSSEEKER,
|
||||||
|
|||||||
+1
-1
@@ -743,7 +743,7 @@ static void BerryCrush_UpdateGameState(struct BerryCrushGame * game)
|
|||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
for (i = 0; i < game->playerCount; ++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
|
#endif
|
||||||
if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00
|
if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00
|
||||||
|| gRecvCmds[0][1] != 2)
|
|| gRecvCmds[0][1] != 2)
|
||||||
|
|||||||
@@ -2231,7 +2231,7 @@ static void SetPlayerAvatarObjectEventIdAndObjectId(u8 objectEventId, u8 spriteI
|
|||||||
gPlayerAvatar.objectEventId = objectEventId;
|
gPlayerAvatar.objectEventId = objectEventId;
|
||||||
gPlayerAvatar.spriteId = spriteId;
|
gPlayerAvatar.spriteId = spriteId;
|
||||||
gPlayerAvatar.gender = GetPlayerAvatarGenderByGraphicsId(gObjectEvents[objectEventId].graphicsId);
|
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)
|
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)
|
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;
|
objectEvent->singleMovementActive = TRUE;
|
||||||
sprite->data[1] = 6;
|
sprite->data[1] = 6;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -5451,7 +5451,7 @@ u8 sub_8063F10(u32 idx)
|
|||||||
return gUnknown_83A64F6[direction];
|
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(GetWalkSlowMovementAction, gUnknown_83A6500);
|
||||||
dirn_to_anim(GetWalkNormalMovementAction, gUnknown_83A6505);
|
dirn_to_anim(GetWalkNormalMovementAction, gUnknown_83A6505);
|
||||||
dirn_to_anim(GetWalkFastMovementAction, gUnknown_83A650A);
|
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(GetSlideMovementAction, gUnknown_83A651E);
|
||||||
dirn_to_anim(GetPlayerRunMovementAction, gUnknown_83A6523);
|
dirn_to_anim(GetPlayerRunMovementAction, gUnknown_83A6523);
|
||||||
dirn_to_anim(GetPlayerRunSlowMovementAction, gUnknown_83A6528);
|
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(GetJump2MovementAction, gUnknown_83A6532);
|
||||||
dirn_to_anim(GetJumpInPlaceMovementAction, gUnknown_83A6537);
|
dirn_to_anim(GetJumpInPlaceMovementAction, gUnknown_83A6537);
|
||||||
dirn_to_anim(GetJumpInPlaceTurnAroundMovementAction, gUnknown_83A653C);
|
dirn_to_anim(GetJumpInPlaceTurnAroundMovementAction, gUnknown_83A653C);
|
||||||
|
|||||||
@@ -105,11 +105,11 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
|
|||||||
{
|
{
|
||||||
if (GetPlayerSpeed() != 4)
|
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;
|
input->pressedStartButton = TRUE;
|
||||||
if (!QL_IS_PLAYBACK_STATE)
|
if (!QL_IS_PLAYBACK_STATE)
|
||||||
{
|
{
|
||||||
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FISHING))
|
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED))
|
||||||
{
|
{
|
||||||
if (newKeys & SELECT_BUTTON)
|
if (newKeys & SELECT_BUTTON)
|
||||||
input->pressedSelectButton = TRUE;
|
input->pressedSelectButton = TRUE;
|
||||||
@@ -625,7 +625,7 @@ static bool8 TryStartStepBasedScript(struct MapPosition *position, u16 metatileB
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
if (TryStartStepCountScript(metatileBehavior) == TRUE)
|
if (TryStartStepCountScript(metatileBehavior) == TRUE)
|
||||||
return 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 TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -655,7 +655,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior)
|
|||||||
|
|
||||||
UpdateHappinessStepCounter();
|
UpdateHappinessStepCounter();
|
||||||
|
|
||||||
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FISHING) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior))
|
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior))
|
||||||
{
|
{
|
||||||
if (UpdateVsSeekerStepCounter() == TRUE)
|
if (UpdateVsSeekerStepCounter() == TRUE)
|
||||||
{
|
{
|
||||||
|
|||||||
+15
-15
@@ -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)
|
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]++;
|
task->data[0]++;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -2907,7 +2907,7 @@ static void UseSurfEffect_1(struct Task * task)
|
|||||||
ScriptContext2_Enable();
|
ScriptContext2_Enable();
|
||||||
FreezeObjectEvents();
|
FreezeObjectEvents();
|
||||||
gPlayerAvatar.preventStep = TRUE;
|
gPlayerAvatar.preventStep = TRUE;
|
||||||
SetPlayerAvatarStateMask(8);
|
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING);
|
||||||
PlayerGetDestCoords(&task->data[1], &task->data[2]);
|
PlayerGetDestCoords(&task->data[1], &task->data[2]);
|
||||||
MoveCoords(gObjectEvents[gPlayerAvatar.objectEventId].movementDirection, &task->data[1], &task->data[2]);
|
MoveCoords(gObjectEvents[gPlayerAvatar.objectEventId].movementDirection, &task->data[1], &task->data[2]);
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
@@ -2943,7 +2943,7 @@ static void UseSurfEffect_4(struct Task * task)
|
|||||||
if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
|
if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON))
|
||||||
{
|
{
|
||||||
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||||
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2));
|
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE));
|
||||||
ObjectEventClearHeldMovementIfFinished(objectEvent);
|
ObjectEventClearHeldMovementIfFinished(objectEvent);
|
||||||
ObjectEventSetHeldMovement(objectEvent, sub_80641C0(objectEvent->movementDirection));
|
ObjectEventSetHeldMovement(objectEvent, sub_80641C0(objectEvent->movementDirection));
|
||||||
gFieldEffectArguments[0] = task->data[1];
|
gFieldEffectArguments[0] = task->data[1];
|
||||||
@@ -2961,7 +2961,7 @@ static void UseSurfEffect_5(struct Task * task)
|
|||||||
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
||||||
{
|
{
|
||||||
gPlayerAvatar.preventStep = FALSE;
|
gPlayerAvatar.preventStep = FALSE;
|
||||||
gPlayerAvatar.flags &= 0xdf;
|
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_CONTROLLABLE;
|
||||||
ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection));
|
ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection));
|
||||||
sub_80DC44C(objectEvent->fieldEffectSpriteId, 1);
|
sub_80DC44C(objectEvent->fieldEffectSpriteId, 1);
|
||||||
UnfreezeObjectEvents();
|
UnfreezeObjectEvents();
|
||||||
@@ -3023,11 +3023,11 @@ static void UseVsSeekerEffect_3(struct Task * task)
|
|||||||
if (ObjectEventClearHeldMovementIfFinished(playerObj))
|
if (ObjectEventClearHeldMovementIfFinished(playerObj))
|
||||||
{
|
{
|
||||||
if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE))
|
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)
|
else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
|
||||||
ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(2));
|
ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE));
|
||||||
else
|
else
|
||||||
ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(0));
|
ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL));
|
||||||
ObjectEventForceSetHeldMovement(playerObj, GetFaceDirectionMovementAction(playerObj->facingDirection));
|
ObjectEventForceSetHeldMovement(playerObj, GetFaceDirectionMovementAction(playerObj->facingDirection));
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
}
|
}
|
||||||
@@ -3131,7 +3131,7 @@ static void UseFlyEffect_1(struct Task * task)
|
|||||||
{
|
{
|
||||||
task->data[15] = gPlayerAvatar.flags;
|
task->data[15] = gPlayerAvatar.flags;
|
||||||
gPlayerAvatar.preventStep = TRUE;
|
gPlayerAvatar.preventStep = TRUE;
|
||||||
SetPlayerAvatarStateMask(1);
|
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT);
|
||||||
StartPlayerAvatarSummonMonForFieldMoveAnim();
|
StartPlayerAvatarSummonMonForFieldMoveAnim();
|
||||||
ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
|
ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
@@ -3191,7 +3191,7 @@ static void UseFlyEffect_6(struct Task * task)
|
|||||||
if ((++task->data[2]) >= 8)
|
if ((++task->data[2]) >= 8)
|
||||||
{
|
{
|
||||||
struct ObjectEvent * objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
struct ObjectEvent * objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||||
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2));
|
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE));
|
||||||
StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16);
|
StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16);
|
||||||
objectEvent->inanimate = TRUE;
|
objectEvent->inanimate = TRUE;
|
||||||
ObjectEventSetHeldMovement(objectEvent, MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT);
|
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[2] = 33;
|
||||||
task->data[15] = gPlayerAvatar.flags;
|
task->data[15] = gPlayerAvatar.flags;
|
||||||
gPlayerAvatar.preventStep = TRUE;
|
gPlayerAvatar.preventStep = TRUE;
|
||||||
SetPlayerAvatarStateMask(0x01);
|
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT);
|
||||||
if (task->data[15] & 0x08)
|
if (task->data[15] & PLAYER_AVATAR_FLAG_SURFING)
|
||||||
{
|
{
|
||||||
sub_80DC44C(objectEvent->fieldEffectSpriteId, 0);
|
sub_80DC44C(objectEvent->fieldEffectSpriteId, 0);
|
||||||
}
|
}
|
||||||
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(2));
|
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE));
|
||||||
CameraObjectReset2();
|
CameraObjectReset2();
|
||||||
ObjectEventTurn(objectEvent, DIR_WEST);
|
ObjectEventTurn(objectEvent, DIR_WEST);
|
||||||
StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16);
|
StartSpriteAnim(&gSprites[objectEvent->spriteId], 0x16);
|
||||||
@@ -3550,10 +3550,10 @@ static void FlyInEffect_7(struct Task * task)
|
|||||||
if ((--task->data[1]) == 0)
|
if ((--task->data[1]) == 0)
|
||||||
{
|
{
|
||||||
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||||
state = 0;
|
state = PLAYER_AVATAR_GFX_NORMAL;
|
||||||
if (task->data[15] & 0x08)
|
if (task->data[15] & PLAYER_AVATAR_FLAG_SURFING)
|
||||||
{
|
{
|
||||||
state = 2;
|
state = PLAYER_AVATAR_GFX_RIDE;
|
||||||
sub_80DC44C(objectEvent->fieldEffectSpriteId, 1);
|
sub_80DC44C(objectEvent->fieldEffectSpriteId, 1);
|
||||||
}
|
}
|
||||||
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(state));
|
ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(state));
|
||||||
|
|||||||
+83
-82
@@ -26,13 +26,13 @@
|
|||||||
#include "constants/metatile_behaviors.h"
|
#include "constants/metatile_behaviors.h"
|
||||||
#include "constants/moves.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;
|
static EWRAM_DATA u8 sTeleportSavedFacingDirection = DIR_NONE;
|
||||||
EWRAM_DATA struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT] = {};
|
EWRAM_DATA struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT] = {};
|
||||||
EWRAM_DATA struct PlayerAvatar gPlayerAvatar = {};
|
EWRAM_DATA struct PlayerAvatar gPlayerAvatar = {};
|
||||||
|
|
||||||
static u8 ObjectEventCB2_NoMovement2(struct ObjectEvent * object, struct Sprite * sprite);
|
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 bool8 TryInterruptObjectEventSpecialAnim(struct ObjectEvent * playerObjEvent, u8 direction);
|
||||||
static void npc_clear_strange_bits(struct ObjectEvent * playerObjEvent);
|
static void npc_clear_strange_bits(struct ObjectEvent * playerObjEvent);
|
||||||
static bool8 TryDoMetatileBehaviorForcedMovement(void);
|
static bool8 TryDoMetatileBehaviorForcedMovement(void);
|
||||||
@@ -78,17 +78,17 @@ static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent * playerObje
|
|||||||
static bool8 PlayerIsAnimActive(void);
|
static bool8 PlayerIsAnimActive(void);
|
||||||
static bool8 PlayerCheckIfAnimFinishedOrInactive(void);
|
static bool8 PlayerCheckIfAnimFinishedOrInactive(void);
|
||||||
static bool8 player_is_anim_in_certain_ranges(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 PlayCollisionSoundIfNotFacingWarp(u8 direction);
|
||||||
static void PlayerGoSpin(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 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 StartStrengthAnim(u8 objectEventId, u8 direction);
|
||||||
static void Task_BumpBoulder(u8 taskId);
|
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 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 DoPlayerMatJump(void);
|
||||||
static void DoPlayerAvatarSecretBaseMatJump(u8 taskId);
|
static void DoPlayerAvatarSecretBaseMatJump(u8 taskId);
|
||||||
static bool8 PlayerAvatar_DoSecretBaseMatJump(struct Task * task, struct ObjectEvent * playerObj);
|
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];
|
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||||
|
|
||||||
sub_805CC40(playerObjEvent);
|
HandleWarpArrowSpriteHideShow(playerObjEvent);
|
||||||
if (!gPlayerAvatar.preventStep && !sub_805B528())
|
if (!gPlayerAvatar.preventStep && !TryUpdatePlayerSpinDirection())
|
||||||
{
|
{
|
||||||
if (!TryInterruptObjectEventSpecialAnim(playerObjEvent, direction))
|
if (!TryInterruptObjectEventSpecialAnim(playerObjEvent, direction))
|
||||||
{
|
{
|
||||||
@@ -194,26 +194,26 @@ static void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 held
|
|||||||
static void PlayerAllowForcedMovementIfMovingSameDirection(void)
|
static void PlayerAllowForcedMovementIfMovingSameDirection(void)
|
||||||
{
|
{
|
||||||
if (gPlayerAvatar.runningState == MOVING)
|
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];
|
sPlayerObjectPtr = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||||
if (gUnknown_2036E30->heldMovementFinished)
|
if (sPlayerObjectPtr->heldMovementFinished)
|
||||||
{
|
{
|
||||||
if (MetatileBehavior_IsStopSpinning(gUnknown_2036E30->currentMetatileBehavior))
|
if (MetatileBehavior_IsStopSpinning(sPlayerObjectPtr->currentMetatileBehavior))
|
||||||
{
|
{
|
||||||
return FALSE;
|
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);
|
ObjectEventClearHeldMovement(sPlayerObjectPtr);
|
||||||
sub_805C2CC(gPlayerAvatar.lastSpinTile);
|
PlayerApplyTileForcedMovement(gPlayerAvatar.lastSpinTile);
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -221,8 +221,8 @@ static bool8 sub_805B528(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
bool8 (*unk0)(u8 metatileBehavior);
|
bool8 (*check)(u8 metatileBehavior);
|
||||||
bool8 (*unk4)(void);
|
bool8 (*apply)(void);
|
||||||
} sForcedMovementFuncs[] = {
|
} sForcedMovementFuncs[] = {
|
||||||
{MetatileBehavior_IsUnknownMovement48, ForcedMovement_Slip},
|
{MetatileBehavior_IsUnknownMovement48, ForcedMovement_Slip},
|
||||||
{MetatileBehavior_IsIce_2, ForcedMovement_Slip},
|
{MetatileBehavior_IsIce_2, ForcedMovement_Slip},
|
||||||
@@ -252,37 +252,38 @@ static bool8 TryDoMetatileBehaviorForcedMovement(void)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
u8 behavior;
|
u8 behavior;
|
||||||
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FIELD_MOVE))
|
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_CONTROLLABLE))
|
||||||
{
|
{
|
||||||
behavior = gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior;
|
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;
|
gPlayerAvatar.lastSpinTile = behavior;
|
||||||
return sForcedMovementFuncs[i].unk4();
|
return sForcedMovementFuncs[i].apply();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sForcedMovementFuncs[i].unk4();
|
return sForcedMovementFuncs[i].apply();
|
||||||
}
|
}
|
||||||
else
|
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)
|
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];
|
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
|
||||||
|
|
||||||
playerObjEvent->facingDirectionLocked = FALSE;
|
playerObjEvent->facingDirectionLocked = FALSE;
|
||||||
playerObjEvent->enableAnim = TRUE;
|
playerObjEvent->enableAnim = TRUE;
|
||||||
SetObjectEventDirection(playerObjEvent, playerObjEvent->facingDirection);
|
SetObjectEventDirection(playerObjEvent, playerObjEvent->facingDirection);
|
||||||
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_FISHING;
|
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_FORCED;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -292,7 +293,7 @@ static u8 DoForcedMovement(u8 direction, MovementAction movementAction)
|
|||||||
struct PlayerAvatar *playerAvatar = &gPlayerAvatar;
|
struct PlayerAvatar *playerAvatar = &gPlayerAvatar;
|
||||||
u8 collision = CheckForPlayerAvatarCollision(direction);
|
u8 collision = CheckForPlayerAvatarCollision(direction);
|
||||||
|
|
||||||
playerAvatar->flags |= PLAYER_AVATAR_FLAG_FISHING;
|
playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED;
|
||||||
if (collision)
|
if (collision)
|
||||||
{
|
{
|
||||||
ForcedMovement_None();
|
ForcedMovement_None();
|
||||||
@@ -304,7 +305,7 @@ static u8 DoForcedMovement(u8 direction, MovementAction movementAction)
|
|||||||
{
|
{
|
||||||
if (collision == COLLISION_LEDGE_JUMP)
|
if (collision == COLLISION_LEDGE_JUMP)
|
||||||
PlayerJumpLedge(direction);
|
PlayerJumpLedge(direction);
|
||||||
playerAvatar->flags |= PLAYER_AVATAR_FLAG_FISHING;
|
playerAvatar->flags |= PLAYER_AVATAR_FLAG_FORCED;
|
||||||
playerAvatar->runningState = MOVING;
|
playerAvatar->runningState = MOVING;
|
||||||
return 1;
|
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_IsBumpySlope,
|
||||||
MetatileBehavior_IsIsolatedVerticalRail,
|
MetatileBehavior_IsIsolatedVerticalRail,
|
||||||
MetatileBehavior_IsIsolatedHorizontalRail,
|
MetatileBehavior_IsIsolatedHorizontalRail,
|
||||||
@@ -649,7 +650,7 @@ static bool8 (*const gUnknown_835B828[])(u8) = {
|
|||||||
MetatileBehavior_IsHorizontalRail
|
MetatileBehavior_IsHorizontalRail
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u8 gUnknown_835B83C[] = {
|
static const u8 sAcroBikeTrickCollisionTypes[] = {
|
||||||
COLLISION_WHEELIE_HOP,
|
COLLISION_WHEELIE_HOP,
|
||||||
COLLISION_ISOLATED_VERTICAL_RAIL,
|
COLLISION_ISOLATED_VERTICAL_RAIL,
|
||||||
COLLISION_ISOLATED_HORIZONTAL_RAIL,
|
COLLISION_ISOLATED_HORIZONTAL_RAIL,
|
||||||
@@ -661,11 +662,11 @@ static void CheckAcroBikeCollision(s16 x, s16 y, u8 metatileBehavior, u8 *collis
|
|||||||
{
|
{
|
||||||
u8 i;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -677,15 +678,15 @@ void SetPlayerAvatarTransitionFlags(u16 flags)
|
|||||||
DoPlayerAvatarTransition();
|
DoPlayerAvatarTransition();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void (*const gUnknown_835B844[])(struct ObjectEvent *) = {
|
static void (*const sPlayerAvatarTransitionFuncs[])(struct ObjectEvent *) = {
|
||||||
[PLAYER_AVATAR_STATE_NORMAL] = PlayerAvatarTransition_Normal,
|
[PLAYER_AVATAR_STATE_NORMAL] = PlayerAvatarTransition_Normal,
|
||||||
[PLAYER_AVATAR_STATE_MACH_BIKE] = PlayerAvatarTransition_Bike,
|
[PLAYER_AVATAR_STATE_MACH_BIKE] = PlayerAvatarTransition_Bike,
|
||||||
[PLAYER_AVATAR_STATE_ACRO_BIKE] = PlayerAvatarTransition_Bike,
|
[PLAYER_AVATAR_STATE_ACRO_BIKE] = PlayerAvatarTransition_Bike,
|
||||||
[PLAYER_AVATAR_STATE_SURFING] = PlayerAvatarTransition_Surfing,
|
[PLAYER_AVATAR_STATE_SURFING] = PlayerAvatarTransition_Surfing,
|
||||||
[PLAYER_AVATAR_STATE_UNDERWATER] = PlayerAvatarTransition_Underwater,
|
[PLAYER_AVATAR_STATE_UNDERWATER] = PlayerAvatarTransition_Underwater,
|
||||||
[PLAYER_AVATAR_STATE_FIELD_MOVE] = PlayerAvatarTransition_ReturnToField,
|
[PLAYER_AVATAR_STATE_CONTROLLABLE] = PlayerAvatarTransition_ReturnToField,
|
||||||
[PLAYER_AVATAR_STATE_FISHING] = PlayerAvatarTransition_Dummy,
|
[PLAYER_AVATAR_STATE_FORCED] = PlayerAvatarTransition_Dummy,
|
||||||
[PLAYER_AVATAR_STATE_WATERING] = PlayerAvatarTransition_Dummy
|
[PLAYER_AVATAR_STATE_DASH] = PlayerAvatarTransition_Dummy
|
||||||
};
|
};
|
||||||
|
|
||||||
static void DoPlayerAvatarTransition(void)
|
static void DoPlayerAvatarTransition(void)
|
||||||
@@ -695,10 +696,10 @@ static void DoPlayerAvatarTransition(void)
|
|||||||
|
|
||||||
if (flags != 0)
|
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)
|
if (flags & 1)
|
||||||
gUnknown_835B844[i](&gObjectEvents[gPlayerAvatar.objectEventId]);
|
sPlayerAvatarTransitionFuncs[i](&gObjectEvents[gPlayerAvatar.objectEventId]);
|
||||||
}
|
}
|
||||||
gPlayerAvatar.transitionFlags = 0;
|
gPlayerAvatar.transitionFlags = 0;
|
||||||
}
|
}
|
||||||
@@ -735,10 +736,10 @@ static void PlayerAvatarTransition_Underwater(struct ObjectEvent * playerObjEven
|
|||||||
|
|
||||||
static void PlayerAvatarTransition_ReturnToField(struct ObjectEvent * playerObjEvent)
|
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;
|
gPlayerAvatar.tileTransitionState = T_NOT_MOVING;
|
||||||
if (PlayerIsAnimActive())
|
if (PlayerIsAnimActive())
|
||||||
@@ -750,7 +751,7 @@ void sub_805BEB8(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!sub_805BF58())
|
if (!player_is_anim_in_certain_ranges__running_state_not_turn())
|
||||||
gPlayerAvatar.tileTransitionState = T_TILE_CENTER;
|
gPlayerAvatar.tileTransitionState = T_TILE_CENTER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -770,7 +771,7 @@ static bool8 player_is_anim_in_certain_ranges(void)
|
|||||||
return FALSE;
|
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)
|
if (player_is_anim_in_certain_ranges() && gPlayerAvatar.runningState != TURN_DIRECTION)
|
||||||
return TRUE;
|
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))
|
if (!ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], movementAction))
|
||||||
QuestLogRecordPlayerStepWithDuration(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))
|
if (!ObjectEventSetHeldMovement(objectEvent, movementAction))
|
||||||
QuestLogRecordNPCStepWithDuration(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)
|
void PlayerGoSlow(u8 direction)
|
||||||
@@ -919,17 +920,17 @@ void HandleEnforcedLookDirectionOnPlayerStopMoving(void)
|
|||||||
|
|
||||||
static void PlayerGoSpin(u8 direction)
|
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;
|
int i;
|
||||||
|
|
||||||
for (i = 0; sForcedMovementFuncs[i].unk0 != NULL; i++)
|
for (i = 0; sForcedMovementFuncs[i].check != NULL; i++)
|
||||||
{
|
{
|
||||||
if (sForcedMovementFuncs[i].unk0(metatileBehavior))
|
if (sForcedMovementFuncs[i].check(metatileBehavior))
|
||||||
sForcedMovementFuncs[i].unk4();
|
sForcedMovementFuncs[i].apply();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -978,12 +979,12 @@ static void PlayerAcroWheelieCollide(u8 direction)
|
|||||||
PlayerSetAnimId(GetAcroWheelieInPlaceDirectionMovementAction(direction), 2);
|
PlayerSetAnimId(GetAcroWheelieInPlaceDirectionMovementAction(direction), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_805C408(u8 direction)
|
static void PlayerAcroPopWheelie(u8 direction)
|
||||||
{
|
{
|
||||||
PlayerSetAnimId(GetAcroPopWheelieMoveDirectionMovementAction(direction), 2);
|
PlayerSetAnimId(GetAcroPopWheelieMoveDirectionMovementAction(direction), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_805C420(u8 direction)
|
static void PlayerAcroWheelieMove(u8 direction)
|
||||||
{
|
{
|
||||||
PlayerSetAnimId(GetAcroWheelieMoveDirectionMovementAction(direction), 2);
|
PlayerSetAnimId(GetAcroWheelieMoveDirectionMovementAction(direction), 2);
|
||||||
}
|
}
|
||||||
@@ -1107,7 +1108,7 @@ u8 GetPlayerAvatarObjectId(void)
|
|||||||
return gPlayerAvatar.spriteId;
|
return gPlayerAvatar.spriteId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_805C774(void)
|
void CancelPlayerForcedMovement(void)
|
||||||
{
|
{
|
||||||
ForcedMovement_None();
|
ForcedMovement_None();
|
||||||
}
|
}
|
||||||
@@ -1128,7 +1129,7 @@ void StopPlayerAvatar(void)
|
|||||||
static const u8 sPlayerAvatarGfxIds[][GENDER_COUNT] = {
|
static const u8 sPlayerAvatarGfxIds[][GENDER_COUNT] = {
|
||||||
[PLAYER_AVATAR_GFX_NORMAL] = {OBJ_EVENT_GFX_RED_NORMAL, OBJ_EVENT_GFX_GREEN_NORMAL},
|
[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_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_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_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},
|
[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)
|
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;
|
gPlayerAvatar.flags |= flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1258,21 +1259,21 @@ u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 graphicsId, u8 gender)
|
|||||||
u8 GetPlayerAvatarGraphicsIdByCurrentState(void)
|
u8 GetPlayerAvatarGraphicsIdByCurrentState(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u8 r5 = gPlayerAvatar.flags;
|
u8 flags = gPlayerAvatar.flags;
|
||||||
|
|
||||||
for (i = 0; i < NELEMS(*sPlayerAvatarGfxToStateFlag); i++)
|
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 sPlayerAvatarGfxToStateFlag[gPlayerAvatar.gender][i][0];
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 b)
|
void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 extras)
|
||||||
{
|
{
|
||||||
u8 unk = GetPlayerAvatarStateTransitionByGraphicsId(graphicsId, gPlayerAvatar.gender);
|
u8 unk = GetPlayerAvatarStateTransitionByGraphicsId(graphicsId, gPlayerAvatar.gender);
|
||||||
|
|
||||||
gPlayerAvatar.transitionFlags |= unk | b;
|
gPlayerAvatar.transitionFlags |= unk | extras;
|
||||||
DoPlayerAvatarTransition();
|
DoPlayerAvatarTransition();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1305,7 +1306,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender)
|
|||||||
gPlayerAvatar.objectEventId = objectEventId;
|
gPlayerAvatar.objectEventId = objectEventId;
|
||||||
gPlayerAvatar.spriteId = objectEvent->spriteId;
|
gPlayerAvatar.spriteId = objectEvent->spriteId;
|
||||||
gPlayerAvatar.gender = gender;
|
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)
|
void SetPlayerInvisibility(bool8 invisible)
|
||||||
@@ -1362,7 +1363,7 @@ static bool8 (*const sArrowWarpMetatileBehaviorChecks2[])(u8) = {
|
|||||||
MetatileBehavior_IsEastArrowWarp
|
MetatileBehavior_IsEastArrowWarp
|
||||||
};
|
};
|
||||||
|
|
||||||
static void sub_805CC40(struct ObjectEvent *objectEvent)
|
static void HandleWarpArrowSpriteHideShow(struct ObjectEvent *objectEvent)
|
||||||
{
|
{
|
||||||
s16 x;
|
s16 x;
|
||||||
s16 y;
|
s16 y;
|
||||||
@@ -1383,10 +1384,10 @@ static void sub_805CC40(struct ObjectEvent *objectEvent)
|
|||||||
SetSpriteInvisible(objectEvent->warpArrowSpriteId);
|
SetSpriteInvisible(objectEvent->warpArrowSpriteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool8 (*const gUnknown_835B8A0[])(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj) = {
|
static bool8 (*const sBoulderTaskSteps[])(struct Task * task, struct ObjectEvent * playerObj, struct ObjectEvent * boulderObj) = {
|
||||||
sub_805CD64,
|
do_boulder_init,
|
||||||
do_boulder_dust,
|
do_boulder_dust,
|
||||||
sub_805CE20
|
do_boulder_finish
|
||||||
};
|
};
|
||||||
|
|
||||||
static void StartStrengthAnim(u8 a, u8 b)
|
static void StartStrengthAnim(u8 a, u8 b)
|
||||||
@@ -1400,13 +1401,13 @@ static void StartStrengthAnim(u8 a, u8 b)
|
|||||||
|
|
||||||
static void Task_BumpBoulder(u8 taskId)
|
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[gPlayerAvatar.objectEventId],
|
||||||
&gObjectEvents[gTasks[taskId].data[1]]))
|
&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();
|
ScriptContext2_Enable();
|
||||||
gPlayerAvatar.preventStep = TRUE;
|
gPlayerAvatar.preventStep = TRUE;
|
||||||
@@ -1421,8 +1422,8 @@ static bool8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject
|
|||||||
{
|
{
|
||||||
ObjectEventClearHeldMovementIfFinished(playerObject);
|
ObjectEventClearHeldMovementIfFinished(playerObject);
|
||||||
ObjectEventClearHeldMovementIfFinished(strengthObject);
|
ObjectEventClearHeldMovementIfFinished(strengthObject);
|
||||||
sub_805C06C(playerObject, GetWalkInPlaceNormalMovementAction((u8)task->data[2]));
|
QL_TryRecordPlayerStepWithDuration0(playerObject, GetWalkInPlaceNormalMovementAction((u8)task->data[2]));
|
||||||
sub_805C0A4(strengthObject, sub_8063F2C((u8)task->data[2]));
|
QL_TryRecordNPCStepWithDuration32(strengthObject, GetWalkSlowestMovementAction((u8)task->data[2]));
|
||||||
gFieldEffectArguments[0] = strengthObject->currentCoords.x;
|
gFieldEffectArguments[0] = strengthObject->currentCoords.x;
|
||||||
gFieldEffectArguments[1] = strengthObject->currentCoords.y;
|
gFieldEffectArguments[1] = strengthObject->currentCoords.y;
|
||||||
gFieldEffectArguments[2] = strengthObject->previousElevation;
|
gFieldEffectArguments[2] = strengthObject->previousElevation;
|
||||||
@@ -1434,7 +1435,7 @@ static bool8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject
|
|||||||
return FALSE;
|
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)
|
if (ObjectEventCheckHeldMovementStatus(playerObject)
|
||||||
&& ObjectEventCheckHeldMovementStatus(strengthObject))
|
&& ObjectEventCheckHeldMovementStatus(strengthObject))
|
||||||
@@ -1472,12 +1473,12 @@ static bool8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct ObjectEv
|
|||||||
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
||||||
{
|
{
|
||||||
PlaySE(SE_LEDGE);
|
PlaySE(SE_LEDGE);
|
||||||
sub_805C06C(objectEvent, GetJumpInPlaceMovementAction(objectEvent->facingDirection));
|
QL_TryRecordPlayerStepWithDuration0(objectEvent, GetJumpInPlaceMovementAction(objectEvent->facingDirection));
|
||||||
task->data[1]++;
|
task->data[1]++;
|
||||||
if (task->data[1] > 1)
|
if (task->data[1] > 1)
|
||||||
{
|
{
|
||||||
gPlayerAvatar.preventStep = FALSE;
|
gPlayerAvatar.preventStep = FALSE;
|
||||||
gPlayerAvatar.transitionFlags |= PLAYER_AVATAR_FLAG_FIELD_MOVE;
|
gPlayerAvatar.transitionFlags |= PLAYER_AVATAR_FLAG_CONTROLLABLE;
|
||||||
DestroyTask(FindTaskIdByFunc(DoPlayerAvatarSecretBaseMatJump));
|
DestroyTask(FindTaskIdByFunc(DoPlayerAvatarSecretBaseMatJump));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1522,7 +1523,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep1(struct Task *task, struct Objec
|
|||||||
{
|
{
|
||||||
u8 direction;
|
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])
|
if (direction == (u8)task->data[1])
|
||||||
task->data[2]++;
|
task->data[2]++;
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
@@ -1544,7 +1545,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep2(struct Task *task, struct Objec
|
|||||||
|
|
||||||
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
||||||
{
|
{
|
||||||
sub_805C06C(objectEvent, actions[task->data[2]]);
|
QL_TryRecordPlayerStepWithDuration0(objectEvent, actions[task->data[2]]);
|
||||||
task->data[0] = 1;
|
task->data[0] = 1;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -1554,7 +1555,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep3(struct Task *task, struct Objec
|
|||||||
{
|
{
|
||||||
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
||||||
{
|
{
|
||||||
sub_805C06C(objectEvent, sub_8063F2C(GetOppositeDirection(task->data[1])));
|
QL_TryRecordPlayerStepWithDuration0(objectEvent, GetWalkSlowestMovementAction(GetOppositeDirection(task->data[1])));
|
||||||
ScriptContext2_Disable();
|
ScriptContext2_Disable();
|
||||||
gPlayerAvatar.preventStep = FALSE;
|
gPlayerAvatar.preventStep = FALSE;
|
||||||
DestroyTask(FindTaskIdByFunc(PlayerAvatar_DoSecretBaseMatSpin));
|
DestroyTask(FindTaskIdByFunc(PlayerAvatar_DoSecretBaseMatSpin));
|
||||||
@@ -1611,7 +1612,7 @@ static void Task_StopSurfingInit(u8 taskId)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sub_80DC44C(playerObjEvent->fieldEffectSpriteId, 2);
|
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;
|
gTasks[taskId].func = Task_WaitStopSurfing;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1622,7 +1623,7 @@ static void Task_WaitStopSurfing(u8 taskId)
|
|||||||
if (ObjectEventClearHeldMovementIfFinished(playerObjEvent))
|
if (ObjectEventClearHeldMovementIfFinished(playerObjEvent))
|
||||||
{
|
{
|
||||||
ObjectEventSetGraphicsId(playerObjEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL));
|
ObjectEventSetGraphicsId(playerObjEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL));
|
||||||
sub_805C06C(playerObjEvent, GetFaceDirectionMovementAction(playerObjEvent->facingDirection));
|
QL_TryRecordPlayerStepWithDuration0(playerObjEvent, GetFaceDirectionMovementAction(playerObjEvent->facingDirection));
|
||||||
gPlayerAvatar.preventStep = FALSE;
|
gPlayerAvatar.preventStep = FALSE;
|
||||||
ScriptContext2_Disable();
|
ScriptContext2_Disable();
|
||||||
UnfreezeObjectEvents();
|
UnfreezeObjectEvents();
|
||||||
|
|||||||
@@ -109,9 +109,9 @@ void ResetCyclingRoadChallengeData(void)
|
|||||||
|
|
||||||
u8 GetPlayerAvatarBike(void)
|
u8 GetPlayerAvatarBike(void)
|
||||||
{
|
{
|
||||||
if (TestPlayerAvatarFlags(4))
|
if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE))
|
||||||
return 1;
|
return 1;
|
||||||
else if (TestPlayerAvatarFlags(2))
|
else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE))
|
||||||
return 2;
|
return 2;
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
+2
-2
@@ -1393,7 +1393,7 @@ static void DoCB1_Overworld(u16 newKeys, u16 heldKeys)
|
|||||||
struct FieldInput fieldInput;
|
struct FieldInput fieldInput;
|
||||||
|
|
||||||
sub_8112B3C();
|
sub_8112B3C();
|
||||||
sub_805BEB8();
|
UpdatePlayerAvatarTransitionState();
|
||||||
FieldClearPlayerInput(&fieldInput);
|
FieldClearPlayerInput(&fieldInput);
|
||||||
FieldGetPlayerInput(&fieldInput, newKeys, heldKeys);
|
FieldGetPlayerInput(&fieldInput, newKeys, heldKeys);
|
||||||
FieldInput_HandleCancelSignpost(&fieldInput);
|
FieldInput_HandleCancelSignpost(&fieldInput);
|
||||||
@@ -1419,7 +1419,7 @@ static void DoCB1_Overworld_QuestLogPlayback(void)
|
|||||||
struct FieldInput fieldInput;
|
struct FieldInput fieldInput;
|
||||||
|
|
||||||
sub_8112B3C();
|
sub_8112B3C();
|
||||||
sub_805BEB8();
|
UpdatePlayerAvatarTransitionState();
|
||||||
sub_8111C68();
|
sub_8111C68();
|
||||||
FieldClearPlayerInput(&fieldInput);
|
FieldClearPlayerInput(&fieldInput);
|
||||||
fieldInput = gQuestLogFieldInput;
|
fieldInput = gQuestLogFieldInput;
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ static void Task_QLFishMovement(u8 taskId)
|
|||||||
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
|
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
|
||||||
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL));
|
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL));
|
||||||
else
|
else
|
||||||
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_SURF));
|
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_RIDE));
|
||||||
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
|
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
|
||||||
sprite->pos2.x = 0;
|
sprite->pos2.x = 0;
|
||||||
sprite->pos2.y = 0;
|
sprite->pos2.y = 0;
|
||||||
@@ -143,7 +143,7 @@ static void QL_GfxTransition_StartSurf(void)
|
|||||||
|
|
||||||
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
|
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);
|
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
|
||||||
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING);
|
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING);
|
||||||
gFieldEffectArguments[0] = objectEvent->currentCoords.x;
|
gFieldEffectArguments[0] = objectEvent->currentCoords.x;
|
||||||
|
|||||||
+1
-1
@@ -356,7 +356,7 @@ static bool8 TrainerSeeFunc_PrepareToEngage(u8 taskId, struct Task * task, struc
|
|||||||
if (ObjectEventIsMovementOverridden(playerObj) && !ObjectEventClearHeldMovementIfFinished(playerObj))
|
if (ObjectEventIsMovementOverridden(playerObj) && !ObjectEventClearHeldMovementIfFinished(playerObj))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
sub_805C774();
|
CancelPlayerForcedMovement();
|
||||||
// Uncomment to have player turn to face their opponent
|
// Uncomment to have player turn to face their opponent
|
||||||
// ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetFaceDirectionMovementAction(GetOppositeDirection(trainerObj->facingDirection)));
|
// ObjectEventSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetFaceDirectionMovementAction(GetOppositeDirection(trainerObj->facingDirection)));
|
||||||
task->tFuncId++;
|
task->tFuncId++;
|
||||||
|
|||||||
Reference in New Issue
Block a user