diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-04-19 15:37:53 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-04-19 15:37:53 (GMT) |
| commit | b5a52838c7ac3d1339923d417a9d447eab42cc7d (patch) | |
| tree | 90eddaa29e667a78c7ee7af49a5d1e93ea1c2252 /src/elements/pipe.c | |
| parent | f93a829672c7aabb09ae9b958623a97105b8e28d (diff) | |
| download | powder-b5a52838c7ac3d1339923d417a9d447eab42cc7d.zip powder-b5a52838c7ac3d1339923d417a9d447eab42cc7d.tar.gz | |
Change STOR, PIPE, DUST to make correct use of .flags field.
Diffstat (limited to 'src/elements/pipe.c')
| -rw-r--r-- | src/elements/pipe.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/elements/pipe.c b/src/elements/pipe.c index b387b7d..5487eca 100644 --- a/src/elements/pipe.c +++ b/src/elements/pipe.c @@ -1,5 +1,7 @@ #include <element.h> +#define PFLAG_NORMALSPEED 0x00010000 + signed char pos_1_rx[] = {-1,-1,-1, 0, 0, 1, 1, 1}; signed char pos_1_ry[] = {-1, 0, 1,-1, 1,-1, 0, 1}; @@ -31,11 +33,11 @@ void pushParticle(int i, int count, int original) { parts[r>>8].tmp = (parts[r>>8].tmp&~0xFF) | (parts[i].tmp&0xFF); parts[r>>8].temp = parts[i].temp; - parts[r>>8].flags = parts[i].flags; + parts[r>>8].tmp2 = parts[i].tmp2; parts[r>>8].pavg[0] = parts[i].pavg[0]; parts[r>>8].pavg[1] = parts[i].pavg[1]; if (r>>8 > original) - parts[r>>8].tmp2 = 1;//skip particle push, normalizes speed + parts[r>>8].flags |= PFLAG_NORMALSPEED;//skip particle push, normalizes speed parts[i].tmp &= ~0xFF; count++; pushParticle(r>>8,count,original); @@ -54,11 +56,11 @@ void pushParticle(int i, int count, int original) { parts[r>>8].tmp = (parts[r>>8].tmp&~0xFF) | (parts[i].tmp&0xFF); parts[r>>8].temp = parts[i].temp; - parts[r>>8].flags = parts[i].flags; + parts[r>>8].tmp2 = parts[i].tmp2; parts[r>>8].pavg[0] = parts[i].pavg[0]; parts[r>>8].pavg[1] = parts[i].pavg[1]; if (r>>8 > original) - parts[r>>8].tmp2 = 1;//skip particle push, normalizes speed + parts[r>>8].flags |= PFLAG_NORMALSPEED;//skip particle push, normalizes speed parts[i].tmp &= ~0xFF; count++; pushParticle(r>>8,count,original); @@ -111,9 +113,9 @@ int update_PIPE(UPDATE_FUNC_ARGS) { } else { - if (parts[i].tmp2 == 1)//skip particle push to prevent particle number being higher causeing speed up + if (parts[i].flags&PFLAG_NORMALSPEED)//skip particle push to prevent particle number being higher causeing speed up { - parts[i].tmp2 = 0 ; + parts[i].flags &= ~PFLAG_NORMALSPEED; } else { @@ -138,7 +140,7 @@ int update_PIPE(UPDATE_FUNC_ARGS) { if (np!=-1) { parts[np].temp = parts[i].temp;//pipe saves temp and life now - parts[np].life = parts[i].flags; + parts[np].life = parts[i].tmp2; parts[np].tmp = parts[i].pavg[0]; parts[np].ctype = parts[i].pavg[1]; parts[i].tmp &= ~0xFF; @@ -151,7 +153,7 @@ int update_PIPE(UPDATE_FUNC_ARGS) { detach(r>>8); parts[i].tmp = (parts[i].tmp&~0xFF) | parts[r>>8].type; parts[i].temp = parts[r>>8].temp; - parts[i].flags = parts[r>>8].life; + parts[i].tmp2 = parts[r>>8].life; parts[i].pavg[0] = parts[r>>8].tmp; parts[i].pavg[1] = parts[r>>8].ctype; kill_part(r>>8); @@ -160,7 +162,7 @@ int update_PIPE(UPDATE_FUNC_ARGS) { { parts[i].tmp = parts[r>>8].tmp; parts[i].temp = parts[r>>8].temp; - parts[i].flags = parts[r>>8].flags; + parts[i].tmp2 = parts[r>>8].tmp2; parts[i].pavg[0] = parts[r>>8].pavg[0]; parts[i].pavg[1] = parts[r>>8].pavg[1]; parts[r>>8].tmp = 0; @@ -253,7 +255,7 @@ int graphics_PIPE(GRAPHICS_FUNC_ARGS) memset(&tpart, 0, sizeof(particle)); tpart.type = cpart->tmp&0xFF; tpart.temp = cpart->temp; - tpart.life = cpart->flags; + tpart.life = cpart->tmp2; tpart.tmp = cpart->pavg[0]; tpart.ctype = cpart->pavg[1]; t = tpart.type; |
