From 4bb4be17a462f0728baaef46d7bb08abf1f0b9ba Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Fri, 16 Sep 2022 05:14:31 +0200 Subject: [PATCH] Fix pedestrian edit functions segfaulting when path isn't created (#163) Dropping a point in pedestrian edit mode would segfault otherwise. CARM95.EXE also segfaults. How to reproduce: - enable Pedestrian edit mode - F10 or F11 (+a few other) --- src/DETHRACE/common/pedestrn.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/DETHRACE/common/pedestrn.c b/src/DETHRACE/common/pedestrn.c index f4d96797..331d78fd 100644 --- a/src/DETHRACE/common/pedestrn.c +++ b/src/DETHRACE/common/pedestrn.c @@ -3355,6 +3355,11 @@ void DropPedPoint2() { void DropPedPoint() { LOG_TRACE("()"); +#if defined(DETHRACE_FIX_BUGS) + if (gPath_actor == NULL) { + return; + } +#endif DropPedPoint2(); NewTextHeadupSlot(4, 0, 2000, -1, "Dropped pedestrian point"); } @@ -3363,6 +3368,11 @@ void DropPedPoint() { void DropInitPedPoint() { LOG_TRACE("()"); + #if defined(DETHRACE_FIX_BUGS) + if (gPath_actor == NULL) { + return; + } + #endif gInit_ped_instruc = gPed_instruc_count; DropPedPoint2(); NewTextHeadupSlot(4, 0, 2000, -1, "Dropped initial pedestrian point"); @@ -3384,6 +3394,11 @@ void DropPedPointAir2() { void DropPedPointAir() { LOG_TRACE("()"); +#if defined(DETHRACE_FIX_BUGS) + if (gPath_actor == NULL) { + return; + } +#endif DropPedPointAir2(); NewTextHeadupSlot(4, 0, 2000, -1, "Dropped auto-y pedestrian point"); } @@ -3392,6 +3407,11 @@ void DropPedPointAir() { void DropInitPedPointAir() { LOG_TRACE("()"); +#if defined(DETHRACE_FIX_BUGS) + if (gPath_actor == NULL) { + return; + } +#endif gInit_ped_instruc = gPed_instruc_count; DropPedPointAir2(); NewTextHeadupSlot(4, 0, 2000, -1, "Dropped initial auto-y pedestrian point");