Skip to content

Commit

Permalink
Merge pull request #1985 from PokemonSanFran/surfingDismountFix
Browse files Browse the repository at this point in the history
BUGFIX for Surfing Dismount Ground Effects
  • Loading branch information
GriffinRichards authored Apr 11, 2024
2 parents f19747d + 71b8d20 commit 0b73cd8
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 6 deletions.
4 changes: 2 additions & 2 deletions src/event_object_movement.c
Original file line number Diff line number Diff line change
Expand Up @@ -8077,7 +8077,7 @@ static void DoGroundEffects_OnSpawn(struct ObjectEvent *objEvent, struct Sprite
GetAllGroundEffectFlags_OnSpawn(objEvent, &flags);
SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite);
DoFlaggedGroundEffects(objEvent, sprite, flags);
objEvent->triggerGroundEffectsOnMove = 0;
objEvent->triggerGroundEffectsOnMove = FALSE;
objEvent->disableCoveringGroundEffects = 0;
}
}
Expand All @@ -8094,7 +8094,7 @@ static void DoGroundEffects_OnBeginStep(struct ObjectEvent *objEvent, struct Spr
SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite);
filters_out_some_ground_effects(objEvent, &flags);
DoFlaggedGroundEffects(objEvent, sprite, flags);
objEvent->triggerGroundEffectsOnMove = 0;
objEvent->triggerGroundEffectsOnMove = FALSE;
objEvent->disableCoveringGroundEffects = 0;
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/field_effect.c
Original file line number Diff line number Diff line change
Expand Up @@ -2496,7 +2496,7 @@ static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task)
if (task->data[13] == 0)
{
task->data[13]++;
objectEvent->triggerGroundEffectsOnMove = 1;
objectEvent->triggerGroundEffectsOnMove = TRUE;
sprite->subspriteMode = task->data[14];
}
} else
Expand Down
4 changes: 4 additions & 0 deletions src/field_player_avatar.c
Original file line number Diff line number Diff line change
Expand Up @@ -1663,6 +1663,10 @@ static void Task_WaitStopSurfing(u8 taskId)
gPlayerAvatar.preventStep = FALSE;
UnlockPlayerFieldControls();
DestroySprite(&gSprites[playerObjEvent->fieldEffectSpriteId]);
#ifdef BUGFIX
// If this is not defined but the player steps into grass from surfing, they will appear over the grass instead of in the grass.
playerObjEvent->triggerGroundEffectsOnMove = TRUE;
#endif
DestroyTask(taskId);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/overworld.c
Original file line number Diff line number Diff line change
Expand Up @@ -3050,7 +3050,7 @@ static void SetPlayerFacingDirection(u8 linkPlayerId, u8 facing)
{
if (facing > FACING_FORCED_RIGHT)
{
objEvent->triggerGroundEffectsOnMove = 1;
objEvent->triggerGroundEffectsOnMove = TRUE;
}
else
{
Expand Down Expand Up @@ -3199,7 +3199,7 @@ static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion)
sprite = &gSprites[objEvent->spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->data[0] = linkPlayerId;
objEvent->triggerGroundEffectsOnMove = 0;
objEvent->triggerGroundEffectsOnMove = FALSE;
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/trainer_see.c
Original file line number Diff line number Diff line change
Expand Up @@ -595,7 +595,7 @@ static bool8 JumpInPlaceBuriedTrainer(u8 taskId, struct Task *task, struct Objec
if (gSprites[task->tOutOfAshSpriteId].animCmdIndex == 2)
{
trainerObj->fixedPriority = 0;
trainerObj->triggerGroundEffectsOnMove = 1;
trainerObj->triggerGroundEffectsOnMove = TRUE;

sprite = &gSprites[trainerObj->spriteId];
sprite->oam.priority = 2;
Expand Down

0 comments on commit 0b73cd8

Please sign in to comment.