From 9cdf146bfdde5e75104f81580a4a5ea03a11e808 Mon Sep 17 00:00:00 2001 From: Timberpoes Date: Thu, 15 Oct 2020 18:37:19 +0100 Subject: [PATCH] Guards DT_PROB and DT_PROB_RATE macros against scenarios where they're used as if they were procs. (#54397) --- code/__DEFINES/maths.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index db69b263cdf..1cb081058cf 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -214,10 +214,10 @@ /// Converts a probability/second chance to probability/delta_time chance /// For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do `if(prob(100*DT_PROB_RATE(0.1, 5)))` -#define DT_PROB_RATE(prob_per_second, delta_time) (1 - (1 - prob_per_second) ** delta_time) +#define DT_PROB_RATE(prob_per_second, delta_time) (1 - (1 - (prob_per_second)) ** (delta_time)) /// Like DT_PROB_RATE but easier to use, simply put `if(DT_PROB(10, 5))` -#define DT_PROB(prob_per_second_percent, delta_time) (prob(100*DT_PROB_RATE(prob_per_second_percent/100, delta_time))) +#define DT_PROB(prob_per_second_percent, delta_time) (prob(100*DT_PROB_RATE((prob_per_second_percent)/100, (delta_time)))) // ) #define GET_TRUE_DIST(a, b) (a == null || b == null) ? -1 : max(abs(a.x -b.x), abs(a.y-b.y), abs(a.z-b.z))