From a683f1c96bb6b517e199b8429049cef2ae8d13bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Guilloux?= Date: Tue, 24 Feb 2026 21:57:11 +0100 Subject: [PATCH] Fix 98ac75e: non deterministic handling of train crashes (#15338) --- src/train_cmd.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 0267b872a7..fd24043140 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3242,8 +3242,10 @@ static uint CheckTrainCollision(Vehicle *v, Train *t) /* Happens when there is a train under bridge next to bridge head */ if (abs(v->z_pos - t->z_pos) > 5) return 0; - /* crash both trains */ - return TrainCrashed(t) + TrainCrashed(coll); + /* Crash both trains. Two statements required to guarantee execution + * order because RandomRange() is involved. */ + uint num_victims = TrainCrashed(t); + return num_victims + TrainCrashed(coll); } /**