From d2388c76b87b69f5d1e62ad0a1c5605712950d31 Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Mon, 18 Nov 2024 21:43:30 +0200 Subject: [PATCH] Modify SoldierID constructor to prevent invalid valuels --- Tactical/Overhead Types.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Tactical/Overhead Types.h b/Tactical/Overhead Types.h index d4ed672f7..eb1a8571c 100644 --- a/Tactical/Overhead Types.h +++ b/Tactical/Overhead Types.h @@ -388,7 +388,11 @@ typedef struct SoldierID inline operator UINT16() const { return i; } SoldierID(const UINT16 val = 0) : i(val) - {} + { + // Limit the maximum value to TOTAL_SOLDIERS. Anything beyond that is invalid + if ( i > TOTAL_SOLDIERS ) + i = TOTAL_SOLDIERS; + } SOLDIERTYPE* operator->() { return MercPtrs[i]; } const SOLDIERTYPE* operator->() const { return MercPtrs[i]; }