mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-02-09 14:53:01 +01:00
Rename speed parameter to distance in jump functions
This commit is contained in:
parent
e677a00676
commit
b6430098d4
@ -45,7 +45,6 @@ enum {
|
|||||||
#define sTypeFuncId data[1] // Index into corresponding gMovementTypeFuncs_* table
|
#define sTypeFuncId data[1] // Index into corresponding gMovementTypeFuncs_* table
|
||||||
#define sActionFuncId data[2] // Index into corresponding gMovementActionFuncs_* table
|
#define sActionFuncId data[2] // Index into corresponding gMovementActionFuncs_* table
|
||||||
#define sDirection data[3]
|
#define sDirection data[3]
|
||||||
#define sSpeed data[4]
|
|
||||||
|
|
||||||
|
|
||||||
#define movement_type_def(setup, table) \
|
#define movement_type_def(setup, table) \
|
||||||
@ -5386,7 +5385,7 @@ enum {
|
|||||||
JUMP_TYPE_NORMAL,
|
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 displacements[ARRAY_COUNT(sJumpInitDisplacements)];
|
||||||
s16 x;
|
s16 x;
|
||||||
@ -5396,22 +5395,24 @@ static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8
|
|||||||
x = 0;
|
x = 0;
|
||||||
y = 0;
|
y = 0;
|
||||||
SetObjectEventDirection(objectEvent, direction);
|
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);
|
ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y);
|
||||||
SetJumpSpriteData(sprite, direction, speed, type);
|
SetJumpSpriteData(sprite, direction, distance, type);
|
||||||
sprite->sActionFuncId = 1;
|
sprite->sActionFuncId = 1;
|
||||||
sprite->animPaused = FALSE;
|
sprite->animPaused = FALSE;
|
||||||
objectEvent->triggerGroundEffectsOnMove = TRUE;
|
objectEvent->triggerGroundEffectsOnMove = TRUE;
|
||||||
objectEvent->disableCoveringGroundEffects = 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));
|
SetStepAnimHandleAlternation(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
|
||||||
DoShadowFieldEffect(objectEvent);
|
DoShadowFieldEffect(objectEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define sDistance data[4]
|
||||||
|
|
||||||
static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callback(struct Sprite *))
|
static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callback(struct Sprite *))
|
||||||
{
|
{
|
||||||
s16 displacements[ARRAY_COUNT(sJumpDisplacements)];
|
s16 displacements[ARRAY_COUNT(sJumpDisplacements)];
|
||||||
@ -5421,11 +5422,11 @@ static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite,
|
|||||||
|
|
||||||
memcpy(displacements, sJumpDisplacements, sizeof sJumpDisplacements);
|
memcpy(displacements, sJumpDisplacements, sizeof sJumpDisplacements);
|
||||||
result = callback(sprite);
|
result = callback(sprite);
|
||||||
if (result == JUMP_HALFWAY && displacements[sprite->sSpeed] != 0)
|
if (result == JUMP_HALFWAY && displacements[sprite->sDistance] != 0)
|
||||||
{
|
{
|
||||||
x = 0;
|
x = 0;
|
||||||
y = 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);
|
ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y);
|
||||||
objectEvent->triggerGroundEffectsOnMove = TRUE;
|
objectEvent->triggerGroundEffectsOnMove = TRUE;
|
||||||
objectEvent->disableCoveringGroundEffects = TRUE;
|
objectEvent->disableCoveringGroundEffects = TRUE;
|
||||||
@ -5440,6 +5441,8 @@ static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef sDistance
|
||||||
|
|
||||||
static u8 DoJumpAnimStep(struct ObjectEvent *objectEvent, struct Sprite *sprite)
|
static u8 DoJumpAnimStep(struct ObjectEvent *objectEvent, struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
return UpdateJumpAnim(objectEvent, sprite, DoJumpSpriteMovement);
|
return UpdateJumpAnim(objectEvent, sprite, DoJumpSpriteMovement);
|
||||||
@ -6800,9 +6803,9 @@ bool8 MovementAction_Figure8_Step1(struct ObjectEvent *objectEvent, struct Sprit
|
|||||||
return FALSE;
|
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));
|
StartSpriteAnimIfDifferent(sprite, GetAcroWheelieDirectionAnimNum(direction));
|
||||||
DoShadowFieldEffect(objectEvent);
|
DoShadowFieldEffect(objectEvent);
|
||||||
}
|
}
|
||||||
@ -8166,6 +8169,7 @@ static void Step8(struct Sprite *sprite, u8 dir)
|
|||||||
sprite->y += 8 * (u16) sDirectionToVectors[dir].y;
|
sprite->y += 8 * (u16) sDirectionToVectors[dir].y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define sSpeed data[4]
|
||||||
#define sTimer data[5]
|
#define sTimer data[5]
|
||||||
|
|
||||||
static void SetSpriteDataForNormalStep(struct Sprite *sprite, u8 direction, u8 speed)
|
static void SetSpriteDataForNormalStep(struct Sprite *sprite, u8 direction, u8 speed)
|
||||||
@ -8259,6 +8263,7 @@ static bool8 NpcTakeStep(struct Sprite *sprite)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef sSpeed
|
||||||
#undef sTimer
|
#undef sTimer
|
||||||
|
|
||||||
#define sTimer data[4]
|
#define sTimer data[4]
|
||||||
@ -8393,34 +8398,35 @@ static s16 GetJumpY(s16 i, u8 type)
|
|||||||
return sJumpYTable[type][i];
|
return sJumpYTable[type][i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define sDistance data[4]
|
||||||
#define sJumpType data[5]
|
#define sJumpType data[5]
|
||||||
#define sTimer data[6]
|
#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->sDirection = direction;
|
||||||
sprite->sSpeed = speed;
|
sprite->sDistance = distance;
|
||||||
sprite->sJumpType = type;
|
sprite->sJumpType = type;
|
||||||
sprite->sTimer = 0;
|
sprite->sTimer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 DoJumpSpriteMovement(struct Sprite *sprite)
|
static u8 DoJumpSpriteMovement(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
s16 speedToTime[] = {16, 16, 32};
|
s16 distanceToTime[] = {16, 16, 32};
|
||||||
u8 speedToShift[] = {0, 0, 1};
|
u8 distanceToShift[] = {0, 0, 1};
|
||||||
u8 result = 0;
|
u8 result = 0;
|
||||||
|
|
||||||
if (sprite->sSpeed)
|
if (sprite->sDistance)
|
||||||
Step1(sprite, sprite->sDirection);
|
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++;
|
sprite->sTimer++;
|
||||||
|
|
||||||
if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1)
|
if (sprite->sTimer == distanceToTime[sprite->sDistance] >> 1)
|
||||||
result = JUMP_HALFWAY;
|
result = JUMP_HALFWAY;
|
||||||
|
|
||||||
if (sprite->sTimer >= speedToTime[sprite->sSpeed])
|
if (sprite->sTimer >= distanceToTime[sprite->sDistance])
|
||||||
{
|
{
|
||||||
sprite->y2 = 0;
|
sprite->y2 = 0;
|
||||||
result = JUMP_FINISHED;
|
result = JUMP_FINISHED;
|
||||||
@ -8431,21 +8437,21 @@ static u8 DoJumpSpriteMovement(struct Sprite *sprite)
|
|||||||
|
|
||||||
static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite)
|
static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
s16 speedToTime[] = {32, 32, 64};
|
s16 distanceToTime[] = {32, 32, 64};
|
||||||
u8 speedToShift[] = {1, 1, 2};
|
u8 distanceToShift[] = {1, 1, 2};
|
||||||
u8 result = 0;
|
u8 result = 0;
|
||||||
|
|
||||||
if (sprite->sSpeed && !(sprite->sTimer & 1))
|
if (sprite->sDistance && !(sprite->sTimer & 1))
|
||||||
Step1(sprite, sprite->sDirection);
|
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++;
|
sprite->sTimer++;
|
||||||
|
|
||||||
if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1)
|
if (sprite->sTimer == distanceToTime[sprite->sDistance] >> 1)
|
||||||
result = JUMP_HALFWAY;
|
result = JUMP_HALFWAY;
|
||||||
|
|
||||||
if (sprite->sTimer >= speedToTime[sprite->sSpeed])
|
if (sprite->sTimer >= distanceToTime[sprite->sDistance])
|
||||||
{
|
{
|
||||||
sprite->y2 = 0;
|
sprite->y2 = 0;
|
||||||
result = JUMP_FINISHED;
|
result = JUMP_FINISHED;
|
||||||
@ -8454,7 +8460,7 @@ static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef sSpeed
|
#undef sDistance
|
||||||
#undef sJumpType
|
#undef sJumpType
|
||||||
#undef sTimer
|
#undef sTimer
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user