diff options
| author | jacksonmj <mj-pt@jacksonmj.co.uk> | 2012-09-05 08:07:49 (GMT) |
|---|---|---|
| committer | jacksonmj <mj-pt@jacksonmj.co.uk> | 2012-09-05 08:07:49 (GMT) |
| commit | 8c09bf578774fdf9daec5ff40d95ff9518deb798 (patch) | |
| tree | 7bda258cb846f35668b65e4ce803d519a57e01d7 /src/elements | |
| parent | 8233d609062838af100513911ba543f05a0f6392 (diff) | |
| download | powder-8c09bf578774fdf9daec5ff40d95ff9518deb798.zip powder-8c09bf578774fdf9daec5ff40d95ff9518deb798.tar.gz | |
Also fix bugs with energy particles that pass directly from PIPE to portal
Diffstat (limited to 'src/elements')
| -rw-r--r-- | src/elements/prto.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/elements/prto.c b/src/elements/prto.c index 68ea0f5..d7eb642 100644 --- a/src/elements/prto.c +++ b/src/elements/prto.c @@ -87,7 +87,19 @@ int update_PRTO(UPDATE_FUNC_ARGS) { fighters[(unsigned char)parts[np].tmp].spwn = 0; fighters[(unsigned char)portalp[parts[i].tmp][randomness][nnx].tmp].spwn = 1; } - parts[np] = portalp[parts[i].tmp][randomness][nnx]; + if (portalp[parts[i].tmp][randomness][nnx].vx == 0.0f && portalp[parts[i].tmp][randomness][nnx].vy == 0.0f) + { + // particles that have passed from PIPE into PRTI have lost their velocity, so use the velocity of the newly created particle if the particle in the portal has no velocity + float tmp_vx = parts[np].vx; + float tmp_vy = parts[np].vy; + parts[np] = portalp[parts[i].tmp][randomness][nnx]; + parts[np].vx = tmp_vx; + parts[np].vy = tmp_vy; + } + else + { + parts[np] = portalp[parts[i].tmp][randomness][nnx]; + } parts[np].x = x+rx; parts[np].y = y+ry; portalp[parts[i].tmp][randomness][nnx] = emptyparticle; |
