@@ -552,7 +552,7 @@ bool Atom::StepForward(int numSteps) {
552
552
g_SceneMan.WrapPosition (m_IntPos[X], m_IntPos[Y]);
553
553
554
554
// Detect terrain hits, if not disabled.
555
- if (g_MaterialAir != (m_TerrainMatHit = g_SceneMan.GetTerrMatter (m_IntPos[X], m_IntPos[Y])) && !m_OwnerMO-> m_IgnoreTerrain ) {
555
+ if (!m_OwnerMO-> m_IgnoreTerrain && g_MaterialAir != (m_TerrainMatHit = g_SceneMan.GetTerrMatter (m_IntPos[X], m_IntPos[Y]))) {
556
556
// Check if we're temporarily disabled from hitting terrain
557
557
if (!m_TerrainHitsDisabled) {
558
558
m_OwnerMO->SetHitWhatTerrMaterial (m_TerrainMatHit);
@@ -766,7 +766,7 @@ int Atom::Travel(float travelTime, bool autoTravel, bool scenePreLocked) {
766
766
// Bresenham's line drawing algorithm execution
767
767
for (domSteps = 0 ; domSteps < delta[dom] && !(hit[X] || hit[Y]); ++domSteps) {
768
768
// Check for the special case if the Atom is starting out embedded in terrain. This can happen if something large gets copied to the terrain and embeds some Atoms.
769
- if (domSteps == 0 && !m_OwnerMO-> m_IgnoreTerrain && g_SceneMan.GetTerrMatter (intPos[X], intPos[Y]) != g_MaterialAir) {
769
+ if (!m_OwnerMO-> m_IgnoreTerrain && domSteps == 0 && g_SceneMan.GetTerrMatter (intPos[X], intPos[Y]) != g_MaterialAir) {
770
770
++hitCount;
771
771
hit[X] = hit[Y] = true ;
772
772
if (g_SceneMan.TryPenetrate (intPos[X], intPos[Y], velocity * mass * sharpness, velocity, retardation, 0 .5F , m_NumPenetrations, removeOrphansRadius, removeOrphansMaxArea, removeOrphansRate)) {
@@ -902,7 +902,7 @@ int Atom::Travel(float travelTime, bool autoTravel, bool scenePreLocked) {
902
902
// Atom-Terrain collision detection and response.
903
903
904
904
// If there was no MO collision detected, then check for terrain hits.
905
- else if ((hitMaterialID = g_SceneMan.GetTerrMatter (intPos[X], intPos[Y])) && !m_OwnerMO-> m_IgnoreTerrain ) {
905
+ else if (!m_OwnerMO-> m_IgnoreTerrain && (hitMaterialID = g_SceneMan.GetTerrMatter (intPos[X], intPos[Y]))) {
906
906
if (hitMaterialID != g_MaterialAir) {
907
907
m_OwnerMO->SetHitWhatTerrMaterial (hitMaterialID);
908
908
}
0 commit comments