From a0acf50d7d5ab6e30d340fccdba08c6d3d80ca49 Mon Sep 17 00:00:00 2001 From: AreaZeroArven <122058867+AreaZeroArven@users.noreply.github.com> Date: Fri, 6 Jan 2023 11:01:35 -0500 Subject: [PATCH] event-object: simplify SetObjectSubpriorityByElevation As is, the current function is hard to understand. This change matches while also making the intention clear. Signed-off-by:Arven --- src/event_object_movement.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 3429b2049d..1262b109fe 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -7756,12 +7756,10 @@ void ObjectEventUpdateElevation(struct ObjectEvent *objEvent) void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *sprite, u8 subpriority) { - s32 tmp = sprite->centerToCornerVecY; - u32 tmpa = *(u16 *)&sprite->y; - u32 tmpb = *(u16 *)&gSpriteCoordOffsetY; - s32 tmp2 = (tmpa - tmp) + tmpb; - u16 tmp3 = (16 - ((((u32)tmp2 + 8) & 0xFF) >> 4)) * 2; - sprite->subpriority = tmp3 + sElevationToSubpriority[elevation] + subpriority; + u16 y = (sprite->y - sprite->centerToCornerVecY + gSpriteCoordOffsetY + 8) & 0xFF; + y = (16 - (y >> 4)) << 1; + + sprite->subpriority = sElevationToSubpriority[elevation] + y + subpriority; } static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sprite *sprite)