diff --git a/library/modules/Units.cpp b/library/modules/Units.cpp index ed47af271..29afd00e9 100644 --- a/library/modules/Units.cpp +++ b/library/modules/Units.cpp @@ -2012,7 +2012,12 @@ void subtractActionTimerCore(df::unit_action *action, int32_t amount) { int32_t *timer = getActionTimerPointer(action); if (timer != nullptr && *timer > 0) { - *timer = max(*timer - amount, 1); + double value = *timer; + value = max(value - amount, 1.0); + if (value > INT32_MAX) { + value = INT32_MAX; + } + *timer = value; } }