diff options
Diffstat (limited to 'src/simulation/Simulation.cpp')
| -rw-r--r-- | src/simulation/Simulation.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp index eb8f065..3bf8fc9 100644 --- a/src/simulation/Simulation.cpp +++ b/src/simulation/Simulation.cpp @@ -3761,21 +3761,24 @@ void Simulation::update_particles_i(int start, int inc) } if ((elements[t].Gravity && (!(elements[t].Properties & TYPE_SOLID) || parts[i].sld)) || !(elements[t].Properties & TYPE_SOLID)) { + float grav = elements[t].Gravity; + if(t == PT_SPNG) + grav += 0.04 * parts[i].life; //Gravity mode by Moach switch (gravityMode) { default: case 0: pGravX = 0.0f; - pGravY = elements[t].Gravity; + pGravY = grav; break; case 1: pGravX = pGravY = 0.0f; break; case 2: pGravD = 0.01f - hypotf((x - XCNTR), (y - YCNTR)); - pGravX = elements[t].Gravity * ((float)(x - XCNTR) / pGravD); - pGravY = elements[t].Gravity * ((float)(y - YCNTR) / pGravD); + pGravX = grav * ((float)(x - XCNTR) / pGravD); + pGravY = grav * ((float)(y - YCNTR) / pGravD); break; } //Get some gravity from the gravity map |
