diff --git a/src/k_waypoint.cpp b/src/k_waypoint.cpp index 903a3138b..75a12b8c1 100644 --- a/src/k_waypoint.cpp +++ b/src/k_waypoint.cpp @@ -372,16 +372,19 @@ waypoint_t *K_GetSpawnWaypointForMobj(const mobj_t *mobj) waypoint_t *closestwaypoint = NULL; fixed_t closestdist = INT32_MAX; line_t *finish = P_FindNearestLine(finishline->mobj->x, finishline->mobj->y, nullptr, 2001); // erm... NULL? thanks hanagumi hall - INT32 myside = P_PointOnLineSide(mobj->x, mobj->y, finish); + INT32 myside = finish != NULL ? P_PointOnLineSide(mobj->x, mobj->y, finish) : 0; I_Assert(mobj != NULL); + if (finish == NULL) + CONS_Alert(CONS_WARNING, "No finish line linedef found!\n"); + for (size_t i = 0; i < numwaypoints; i++) { waypoint_t *checkwaypoint = &waypointheap[i]; if (!K_GetWaypointIsEnabled(checkwaypoint) || checkwaypoint == finishline - || myside != P_PointOnLineSide(checkwaypoint->mobj->x, checkwaypoint->mobj->y, finish)) + || (finish != NULL && myside != P_PointOnLineSide(checkwaypoint->mobj->x, checkwaypoint->mobj->y, finish))) continue; fixed_t checkdist = P_AproxDistance(