summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcbt6 <91667135+cbt6@users.noreply.github.com>2021-11-28 11:35:01 +0800
committercbt6 <91667135+cbt6@users.noreply.github.com>2021-11-28 12:01:29 +0800
commitb6430098d4f97d37ec994e8483d97be09f8ea9bc (patch)
tree66348400ab05661d7248a8d2941a51b8d61b1fde
parente677a006766baba12add2678e9406b5e01c31fdf (diff)
Rename speed parameter to distance in jump functions
-rw-r--r--src/event_object_movement.c56
1 files changed, 31 insertions, 25 deletions
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index d92569d32..ba13a7a1d 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -45,7 +45,6 @@ enum {
#define sTypeFuncId data[1] // Index into corresponding gMovementTypeFuncs_* table
#define sActionFuncId data[2] // Index into corresponding gMovementActionFuncs_* table
#define sDirection data[3]
-#define sSpeed data[4]
#define movement_type_def(setup, table) \
@@ -5386,7 +5385,7 @@ enum {
JUMP_TYPE_NORMAL,
};
-static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type)
+static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type)
{
s16 displacements[ARRAY_COUNT(sJumpInitDisplacements)];
s16 x;
@@ -5396,22 +5395,24 @@ static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8
x = 0;
y = 0;
SetObjectEventDirection(objectEvent, direction);
- MoveCoordsInDirection(direction, &x, &y, displacements[speed], displacements[speed]);
+ MoveCoordsInDirection(direction, &x, &y, displacements[distance], displacements[distance]);
ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y);
- SetJumpSpriteData(sprite, direction, speed, type);
+ SetJumpSpriteData(sprite, direction, distance, type);
sprite->sActionFuncId = 1;
sprite->animPaused = FALSE;
objectEvent->triggerGroundEffectsOnMove = TRUE;
objectEvent->disableCoveringGroundEffects = TRUE;
}
-static void InitJumpRegular(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type)
+static void InitJumpRegular(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type)
{
- InitJump(objectEvent, sprite, direction, speed, type);
+ InitJump(objectEvent, sprite, direction, distance, type);
SetStepAnimHandleAlternation(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
DoShadowFieldEffect(objectEvent);
}
+#define sDistance data[4]
+
static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callback(struct Sprite *))
{
s16 displacements[ARRAY_COUNT(sJumpDisplacements)];
@@ -5421,11 +5422,11 @@ static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite,
memcpy(displacements, sJumpDisplacements, sizeof sJumpDisplacements);
result = callback(sprite);
- if (result == JUMP_HALFWAY && displacements[sprite->sSpeed] != 0)
+ if (result == JUMP_HALFWAY && displacements[sprite->sDistance] != 0)
{
x = 0;
y = 0;
- MoveCoordsInDirection(objectEvent->movementDirection, &x, &y, displacements[sprite->sSpeed], displacements[sprite->sSpeed]);
+ MoveCoordsInDirection(objectEvent->movementDirection, &x, &y, displacements[sprite->sDistance], displacements[sprite->sDistance]);
ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y);
objectEvent->triggerGroundEffectsOnMove = TRUE;
objectEvent->disableCoveringGroundEffects = TRUE;
@@ -5440,6 +5441,8 @@ static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite,
return result;
}
+#undef sDistance
+
static u8 DoJumpAnimStep(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
return UpdateJumpAnim(objectEvent, sprite, DoJumpSpriteMovement);
@@ -6800,9 +6803,9 @@ bool8 MovementAction_Figure8_Step1(struct ObjectEvent *objectEvent, struct Sprit
return FALSE;
}
-static void InitAcroWheelieJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type)
+static void InitAcroWheelieJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type)
{
- InitJump(objectEvent, sprite, direction, speed, type);
+ InitJump(objectEvent, sprite, direction, distance, type);
StartSpriteAnimIfDifferent(sprite, GetAcroWheelieDirectionAnimNum(direction));
DoShadowFieldEffect(objectEvent);
}
@@ -8166,6 +8169,7 @@ static void Step8(struct Sprite *sprite, u8 dir)
sprite->y += 8 * (u16) sDirectionToVectors[dir].y;
}
+#define sSpeed data[4]
#define sTimer data[5]
static void SetSpriteDataForNormalStep(struct Sprite *sprite, u8 direction, u8 speed)
@@ -8259,6 +8263,7 @@ static bool8 NpcTakeStep(struct Sprite *sprite)
return TRUE;
}
+#undef sSpeed
#undef sTimer
#define sTimer data[4]
@@ -8393,34 +8398,35 @@ static s16 GetJumpY(s16 i, u8 type)
return sJumpYTable[type][i];
}
+#define sDistance data[4]
#define sJumpType data[5]
#define sTimer data[6]
-static void SetJumpSpriteData(struct Sprite *sprite, u8 direction, u8 speed, u8 type)
+static void SetJumpSpriteData(struct Sprite *sprite, u8 direction, u8 distance, u8 type)
{
sprite->sDirection = direction;
- sprite->sSpeed = speed;
+ sprite->sDistance = distance;
sprite->sJumpType = type;
sprite->sTimer = 0;
}
static u8 DoJumpSpriteMovement(struct Sprite *sprite)
{
- s16 speedToTime[] = {16, 16, 32};
- u8 speedToShift[] = {0, 0, 1};
+ s16 distanceToTime[] = {16, 16, 32};
+ u8 distanceToShift[] = {0, 0, 1};
u8 result = 0;
- if (sprite->sSpeed)
+ if (sprite->sDistance)
Step1(sprite, sprite->sDirection);
- sprite->y2 = GetJumpY(sprite->sTimer >> speedToShift[sprite->sSpeed], sprite->sJumpType);
+ sprite->y2 = GetJumpY(sprite->sTimer >> distanceToShift[sprite->sDistance], sprite->sJumpType);
sprite->sTimer++;
- if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1)
+ if (sprite->sTimer == distanceToTime[sprite->sDistance] >> 1)
result = JUMP_HALFWAY;
- if (sprite->sTimer >= speedToTime[sprite->sSpeed])
+ if (sprite->sTimer >= distanceToTime[sprite->sDistance])
{
sprite->y2 = 0;
result = JUMP_FINISHED;
@@ -8431,21 +8437,21 @@ static u8 DoJumpSpriteMovement(struct Sprite *sprite)
static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite)
{
- s16 speedToTime[] = {32, 32, 64};
- u8 speedToShift[] = {1, 1, 2};
+ s16 distanceToTime[] = {32, 32, 64};
+ u8 distanceToShift[] = {1, 1, 2};
u8 result = 0;
- if (sprite->sSpeed && !(sprite->sTimer & 1))
+ if (sprite->sDistance && !(sprite->sTimer & 1))
Step1(sprite, sprite->sDirection);
- sprite->y2 = GetJumpY(sprite->sTimer >> speedToShift[sprite->sSpeed], sprite->sJumpType);
+ sprite->y2 = GetJumpY(sprite->sTimer >> distanceToShift[sprite->sDistance], sprite->sJumpType);
sprite->sTimer++;
- if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1)
+ if (sprite->sTimer == distanceToTime[sprite->sDistance] >> 1)
result = JUMP_HALFWAY;
- if (sprite->sTimer >= speedToTime[sprite->sSpeed])
+ if (sprite->sTimer >= distanceToTime[sprite->sDistance])
{
sprite->y2 = 0;
result = JUMP_FINISHED;
@@ -8454,7 +8460,7 @@ static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite)
return result;
}
-#undef sSpeed
+#undef sDistance
#undef sJumpType
#undef sTimer