diff --git a/src/engine/surface_collision.c b/src/engine/surface_collision.c index 4af08bee..2b232126 100644 --- a/src/engine/surface_collision.c +++ b/src/engine/surface_collision.c @@ -39,8 +39,6 @@ static s32 find_wall_collisions_from_list(struct SurfaceNode *surfaceNode, while (surfaceNode != NULL) { surf = surfaceNode->surface; surfaceNode = surfaceNode->next; - if (y > surf->upperY) - continue; // Exclude a large number of walls immediately to optimize. if (y < surf->lowerY || y > surf->upperY) { @@ -243,6 +241,8 @@ static struct Surface *find_ceil_from_list(struct SurfaceNode *surfaceNode, s32 while (surfaceNode != NULL) { surf = surfaceNode->surface; surfaceNode = surfaceNode->next; + if (y > surf->upperY) + continue; x1 = surf->vertex1[0]; z1 = surf->vertex1[2]; z2 = surf->vertex2[2];