diff --git a/src/utils/modelinfomgr.cpp b/src/utils/modelinfomgr.cpp index af43e7f..b3b04b0 100755 --- a/src/utils/modelinfomgr.cpp +++ b/src/utils/modelinfomgr.cpp @@ -240,12 +240,6 @@ RpMaterial *ModelInfoMgr::SetEditableMaterialsCB(RpMaterial *material, void *dat { auto &data = m_VehData.Get(pCurVeh); - // Sirens crash fix TODO: remove this and fix it - if (iLightIndex == eMaterialType::SirenLight && data.nFrameCount <= 10) - { - return material; - } - bool lightOn = false; data.m_MatAvail[iLightIndex] = true; @@ -263,11 +257,19 @@ RpMaterial *ModelInfoMgr::SetEditableMaterialsCB(RpMaterial *material, void *dat if (iLightIndex == eMaterialType::SirenLight) { - lightOn = data.m_SirenStatus[GetSirenIndex(pCurVeh, material)]; + int idx = GetSirenIndex(pCurVeh, material); + if (idx >= 0 && idx < MAX_LIGHTS) + { + lightOn = data.m_SirenStatus[idx]; + } } else if (iLightIndex == eMaterialType::StrobeLight) { - lightOn = data.m_StrobeStatus[GetStrobeIndex(pCurVeh, material)]; + int idx = GetStrobeIndex(pCurVeh, material); + if (idx >= 0 && idx < MAX_LIGHTS) + { + lightOn = data.m_StrobeStatus[idx]; + } } else if (iLightIndex != eMaterialType::UnknownMaterial) {