summaryrefslogtreecommitdiff
path: root/src/elements
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2012-09-05 07:35:51 (GMT)
committer jacksonmj <mj-pt@jacksonmj.co.uk>2012-09-05 07:35:51 (GMT)
commit8233d609062838af100513911ba543f05a0f6392 (patch)
tree8ea8435e1a4bcb4697d1703277dba686598f35c0 /src/elements
parent6f1b80ead59c78e89c38920ebfac06e285cb38cd (diff)
downloadpowder-8233d609062838af100513911ba543f05a0f6392.zip
powder-8233d609062838af100513911ba543f05a0f6392.tar.gz
Fix bugs with energy particles in PIPE
Diffstat (limited to 'src/elements')
-rw-r--r--src/elements/pipe.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/elements/pipe.c b/src/elements/pipe.c
index 3aeaf7b..9502d38 100644
--- a/src/elements/pipe.c
+++ b/src/elements/pipe.c
@@ -134,8 +134,13 @@ void PIPE_transfer_pipe_to_part(particle *pipe, particle *part)
part->ctype = pipe->pavg[1];
pipe->tmp &= ~0xFF;
- part->vx = 0.0f;
- part->vy = 0.0f;
+ if (!ptypes[part->type].properties & TYPE_ENERGY)
+ {
+ part->vx = 0.0f;
+ part->vy = 0.0f;
+ }
+ else if (part->type == PT_PHOT && part->ctype == 0x40000000)
+ part->ctype = 0x3FFFFFFF;
part->tmp2 = 0;
part->flags = 0;
part->dcolour = 0;
@@ -479,6 +484,8 @@ int graphics_PIPE(GRAPHICS_FUNC_ARGS)
tpart.life = cpart->tmp2;
tpart.tmp = cpart->pavg[0];
tpart.ctype = cpart->pavg[1];
+ if (tpart.type == PT_PHOT && tpart.ctype == 0x40000000)
+ tpart.ctype = 0x3FFFFFFF;
t = tpart.type;
if (graphicscache[t].isready)
{