diff options
author | erorcun <erorcunerorcun@hotmail.com.tr> | 2021-07-27 20:51:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-27 20:51:28 +0200 |
commit | 1eedf7f0ae9ed1cf5559e1458b4a8b0b25e8e67e (patch) | |
tree | 48646df1a9e222727a953aee6f79787a728bf1ba | |
parent | fix (diff) | |
parent | Remove static_assert from previous commit (diff) | |
download | re3-1eedf7f0ae9ed1cf5559e1458b4a8b0b25e8e67e.tar re3-1eedf7f0ae9ed1cf5559e1458b4a8b0b25e8e67e.tar.gz re3-1eedf7f0ae9ed1cf5559e1458b4a8b0b25e8e67e.tar.bz2 re3-1eedf7f0ae9ed1cf5559e1458b4a8b0b25e8e67e.tar.lz re3-1eedf7f0ae9ed1cf5559e1458b4a8b0b25e8e67e.tar.xz re3-1eedf7f0ae9ed1cf5559e1458b4a8b0b25e8e67e.tar.zst re3-1eedf7f0ae9ed1cf5559e1458b4a8b0b25e8e67e.zip |
-rw-r--r-- | src/peds/Ped.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 147b1218..3ccae5d0 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -393,8 +393,20 @@ CPed::BuildPedLists(void) if (ped != this && !ped->bInVehicle) { float dist = (ped->GetPosition() - GetPosition()).Magnitude2D(); if (nThreatReactionRangeMultiplier * 30.0f > dist) { +#ifdef FIX_BUGS + // If the gap ped list is full, sort it and truncate it + // before pushing more unsorted peds + if( gnNumTempPedList == ARRAY_SIZE(gapTempPedList) - 1 ) + { + gapTempPedList[gnNumTempPedList] = nil; + SortPeds(gapTempPedList, 0, gnNumTempPedList - 1); + gnNumTempPedList = ARRAY_SIZE(m_nearPeds); + } +#endif + gapTempPedList[gnNumTempPedList] = ped; gnNumTempPedList++; + // NOTE: We cannot absolutely fill the gap list, as the list is null-terminated before being passed to SortPeds assert(gnNumTempPedList < ARRAY_SIZE(gapTempPedList)); } } |