diff --git a/src/elements/pipe.c b/src/elements/pipe.c index 3aeaf7b32..9502d38ad 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) {