From cf503a29f4321bd1836410bf9c339db29587bcec Mon Sep 17 00:00:00 2001 From: jacksonmj Date: Sun, 26 Jan 2014 10:16:42 +0000 Subject: [PATCH] Bounds check before interpolation to find walls --- src/simulation/Air.cpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/simulation/Air.cpp b/src/simulation/Air.cpp index 5221ffcc7f..6f0e18672f 100644 --- a/src/simulation/Air.cpp +++ b/src/simulation/Air.cpp @@ -235,17 +235,9 @@ void Air::update_air(void) dp += pv[y][x]*f; } - if (dx*advDistanceMult<=1.0f && dy*advDistanceMult<=1.0f) - { - tx = x - dx*advDistanceMult; - ty = y - dy*advDistanceMult; - } - else if (bmap_blockair[y][x]) - { - tx = x; - ty = y; - } - else + tx = x - dx*advDistanceMult; + ty = y - dy*advDistanceMult; + if ((dx*advDistanceMult>1.0f || dy*advDistanceMult>1.0f) && (tx>=2 && tx=2 && tyabs(dy)) @@ -284,8 +276,8 @@ void Air::update_air(void) j = (int)ty; tx -= i; ty -= j; - if (i>=2 && i=2 && j=2 && i<=XRES/CELL-3 && + j>=2 && j<=YRES/CELL-3) { dx *= 1.0f - AIR_VADV; dy *= 1.0f - AIR_VADV;