From 9a2b7749c7aa57c4732bbde35a70b2aa6f39cfb9 Mon Sep 17 00:00:00 2001 From: jacob1 Date: Sat, 26 Dec 2015 01:23:53 -0500 Subject: [PATCH] Newtonian Gravity sources inside of a no gravity grav wall zone no longer generate gravity --- src/simulation/elements/GBMB.cpp | 11 +++++++---- src/simulation/elements/GPMP.cpp | 3 ++- src/simulation/elements/GRVT.cpp | 3 ++- src/simulation/elements/NBHL.cpp | 11 +++++++---- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/simulation/elements/GBMB.cpp b/src/simulation/elements/GBMB.cpp index 21948579e8..9f25f0c1d2 100644 --- a/src/simulation/elements/GBMB.cpp +++ b/src/simulation/elements/GBMB.cpp @@ -69,10 +69,13 @@ int Element_GBMB::update(UPDATE_FUNC_ARGS) } } } - if(parts[i].life>20) - sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = 20; - else if(parts[i].life>=1) - sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = -80; + if (sim->grav->gravmask[(y/CELL)*(XRES/CELL)+(x/CELL)]) + { + if (parts[i].life>20) + sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = 20; + else if (parts[i].life>=1) + sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = -80; + } return 0; } diff --git a/src/simulation/elements/GPMP.cpp b/src/simulation/elements/GPMP.cpp index 6febb6f0ca..5c5cf90a50 100644 --- a/src/simulation/elements/GPMP.cpp +++ b/src/simulation/elements/GPMP.cpp @@ -61,7 +61,8 @@ int Element_GPMP::update(UPDATE_FUNC_ARGS) if (parts[i].temp<= -256.0+273.15) parts[i].temp = -256.0+273.15; - sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = 0.2f*(parts[i].temp-273.15); + if (sim->grav->gravmask[(y/CELL)*(XRES/CELL)+(x/CELL)]) + sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = 0.2f*(parts[i].temp-273.15); for (rx=-2; rx<3; rx++) for (ry=-2; ry<3; ry++) if (BOUNDS_CHECK && (rx || ry)) diff --git a/src/simulation/elements/GRVT.cpp b/src/simulation/elements/GRVT.cpp index f6a3a902f3..cfa9e7b35b 100644 --- a/src/simulation/elements/GRVT.cpp +++ b/src/simulation/elements/GRVT.cpp @@ -54,7 +54,8 @@ int Element_GRVT::update(UPDATE_FUNC_ARGS) if (parts[i].tmp <= -100) parts[i].tmp = -100; - sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = 0.2f*parts[i].tmp; + if (sim->grav->gravmask[(y/CELL)*(XRES/CELL)+(x/CELL)]) + sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = 0.2f*parts[i].tmp; return 0; } diff --git a/src/simulation/elements/NBHL.cpp b/src/simulation/elements/NBHL.cpp index 8f9fde5bb5..fba482ffe8 100644 --- a/src/simulation/elements/NBHL.cpp +++ b/src/simulation/elements/NBHL.cpp @@ -47,10 +47,13 @@ Element_NBHL::Element_NBHL() //#TPT-Directive ElementHeader Element_NBHL static int update(UPDATE_FUNC_ARGS) int Element_NBHL::update(UPDATE_FUNC_ARGS) { - if (parts[i].tmp) - sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] += restrict_flt(0.001f*parts[i].tmp, 0.1f, 51.2f); - else - sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] += 0.1f; + if (sim->grav->gravmask[(y/CELL)*(XRES/CELL)+(x/CELL)]) + { + if (parts[i].tmp) + sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] += restrict_flt(0.001f*parts[i].tmp, 0.1f, 51.2f); + else + sim->gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] += 0.1f; + } return 0; }