diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-14 15:29:07 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-14 15:29:07 (GMT) |
| commit | b06f7f5b6db540a546f5677c1c8933e168df5e4c (patch) | |
| tree | 63c5180fe9ce9a7af8d058f6a6bf60606f28400a /src/simulation | |
| parent | e13476a4063bd7bdf428d53fd686864c1c90e0ec (diff) | |
| download | powder-b06f7f5b6db540a546f5677c1c8933e168df5e4c.zip powder-b06f7f5b6db540a546f5677c1c8933e168df5e4c.tar.gz | |
Air and heat tool limits, fixes #112
Diffstat (limited to 'src/simulation')
| -rw-r--r-- | src/simulation/tools/Air.cpp | 4 | ||||
| -rw-r--r-- | src/simulation/tools/Cool.cpp | 4 | ||||
| -rw-r--r-- | src/simulation/tools/Heat.cpp | 4 | ||||
| -rw-r--r-- | src/simulation/tools/Vac.cpp | 4 |
4 files changed, 16 insertions, 0 deletions
diff --git a/src/simulation/tools/Air.cpp b/src/simulation/tools/Air.cpp index b7b1351..9fd7f79 100644 --- a/src/simulation/tools/Air.cpp +++ b/src/simulation/tools/Air.cpp @@ -12,6 +12,10 @@ Tool_Air::Tool_Air() int Tool_Air::Perform(Simulation * sim, Particle * cpart, int x, int y, float strength) { sim->air->pv[y/CELL][x/CELL] += 0.03f*strength; + if(sim->air->pv[y/CELL][x/CELL] > 256.0f) + sim->air->pv[y/CELL][x/CELL] = 256.0f; + if(sim->air->pv[y/CELL][x/CELL] < -256.0f) + sim->air->pv[y/CELL][x/CELL] = -256.0f; return 1; } diff --git a/src/simulation/tools/Cool.cpp b/src/simulation/tools/Cool.cpp index 12a6b28..b1b57b1 100644 --- a/src/simulation/tools/Cool.cpp +++ b/src/simulation/tools/Cool.cpp @@ -13,6 +13,10 @@ int Tool_Cool::Perform(Simulation * sim, Particle * cpart, int x, int y, float s if(!cpart) return 0; cpart->temp -= strength; + if(cpart->temp > MAX_TEMP) + cpart->temp = MAX_TEMP; + if(cpart->temp < 0) + cpart->temp = 0; return 1; } diff --git a/src/simulation/tools/Heat.cpp b/src/simulation/tools/Heat.cpp index a2c500c..f28274c 100644 --- a/src/simulation/tools/Heat.cpp +++ b/src/simulation/tools/Heat.cpp @@ -13,6 +13,10 @@ int Tool_Heat::Perform(Simulation * sim, Particle * cpart, int x, int y, float s if(!cpart) return 0; cpart->temp += strength; + if(cpart->temp > MAX_TEMP) + cpart->temp = MAX_TEMP; + if(cpart->temp < 0) + cpart->temp = 0; return 1; } diff --git a/src/simulation/tools/Vac.cpp b/src/simulation/tools/Vac.cpp index 2777f75..aa319e2 100644 --- a/src/simulation/tools/Vac.cpp +++ b/src/simulation/tools/Vac.cpp @@ -12,6 +12,10 @@ Tool_Vac::Tool_Vac() int Tool_Vac::Perform(Simulation * sim, Particle * cpart, int x, int y, float strength) { sim->air->pv[y/CELL][x/CELL] -= 0.03f*strength; + if(sim->air->pv[y/CELL][x/CELL] > 256.0f) + sim->air->pv[y/CELL][x/CELL] = 256.0f; + if(sim->air->pv[y/CELL][x/CELL] < -256.0f) + sim->air->pv[y/CELL][x/CELL] = -256.0f; return 1; } |
