diff options
Diffstat (limited to 'src/audio')
-rw-r--r-- | src/audio/AudioManager.cpp | 75 |
1 files changed, 31 insertions, 44 deletions
diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp index e7a7a9b4..7e177226 100644 --- a/src/audio/AudioManager.cpp +++ b/src/audio/AudioManager.cpp @@ -9694,54 +9694,41 @@ cAudioManager::UpdateReflections() CColPoint colpoint; CEntity *ent; - if (m_FrameCounter & 7) { - if (((uint8)m_FrameCounter + 1) & 7) { - if (((uint8)m_FrameCounter + 2) & 7) { - if (((uint8)m_FrameCounter + 3) & 7) { - if (!(((uint8)m_FrameCounter + 4) & 7)) { - m_avecReflectionsPos[4] = camPos; - m_avecReflectionsPos[4].z += 50.f; - if (CWorld::ProcessVerticalLine(camPos, m_avecReflectionsPos[4].z, colpoint, ent, true, false, false, false, true, false, nil)) { - m_afReflectionsDistances[4] = colpoint.point.z - camPos.z; - } else { - m_afReflectionsDistances[4] = 50.0f; - } - } - } else { - m_avecReflectionsPos[3] = camPos; - m_avecReflectionsPos[3].x += 50.f; - if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[3], colpoint, ent, true, false, false, true, false, true, true)) { - m_afReflectionsDistances[3] = Distance(camPos, colpoint.point); - } else { - m_afReflectionsDistances[3] = 50.0f; - } - } - } else { - m_avecReflectionsPos[2] = camPos; - m_avecReflectionsPos[2].x -= 50.f; - if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[2], colpoint, ent, true, false, false, true, false, true, true)) { - m_afReflectionsDistances[2] = Distance(camPos, colpoint.point); - } else { - m_afReflectionsDistances[2] = 50.0f; - } - } - } else { - m_avecReflectionsPos[1] = camPos; - m_avecReflectionsPos[1].y -= 50.f; - if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[1], colpoint, ent, true, false, false, true, false, true, true)) { - m_afReflectionsDistances[1] = Distance(camPos, colpoint.point); - } else { - m_afReflectionsDistances[1] = 50.0f; - } - } - } else { + if (m_FrameCounter % 8 == 0) { m_avecReflectionsPos[0] = camPos; m_avecReflectionsPos[0].y += 50.f; - if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[0], colpoint, ent, true, false, false, true, false, true, true)) { + if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[0], colpoint, ent, true, false, false, true, false, true, true)) m_afReflectionsDistances[0] = Distance(camPos, colpoint.point); - } else { + else m_afReflectionsDistances[0] = 50.0f; - } + } else if ((m_FrameCounter + 1) % 8 == 0) { + m_avecReflectionsPos[1] = camPos; + m_avecReflectionsPos[1].y -= 50.0f; + if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[1], colpoint, ent, true, false, false, true, false, true, true)) + m_afReflectionsDistances[1] = Distance(camPos, colpoint.point); + else + m_afReflectionsDistances[1] = 50.0f; + } else if ((m_FrameCounter + 2) % 8 == 0) { + m_avecReflectionsPos[2] = camPos; + m_avecReflectionsPos[2].x -= 50.0f; + if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[2], colpoint, ent, true, false, false, true, false, true, true)) + m_afReflectionsDistances[2] = Distance(camPos, colpoint.point); + else + m_afReflectionsDistances[2] = 50.0f; + } else if ((m_FrameCounter + 3) % 8 == 0) { + m_avecReflectionsPos[3] = camPos; + m_avecReflectionsPos[3].x += 50.0f; + if (CWorld::ProcessLineOfSight(camPos, m_avecReflectionsPos[3], colpoint, ent, true, false, false, true, false, true, true)) + m_afReflectionsDistances[3] = Distance(camPos, colpoint.point); + else + m_afReflectionsDistances[3] = 50.0f; + } else if ((m_FrameCounter + 4) % 8 == 0) { + m_avecReflectionsPos[4] = camPos; + m_avecReflectionsPos[4].z += 50.0f; + if (CWorld::ProcessVerticalLine(camPos, m_avecReflectionsPos[4].z, colpoint, ent, true, false, false, false, true, false, nil)) + m_afReflectionsDistances[4] = colpoint.point.z - camPos.z; + else + m_afReflectionsDistances[4] = 50.0f; } } |