diff --git a/src/elements/aray.cpp b/src/elements/aray.cpp index 8505d8186..a4e8c6310 100644 --- a/src/elements/aray.cpp +++ b/src/elements/aray.cpp @@ -63,7 +63,7 @@ int update_ARAY(UPDATE_FUNC_ARGS) { if (np!=-1) { parts[np].temp = parts[r>>8].temp; - parts[np].life = parts[r>>8].flags; + parts[np].life = parts[r>>8].tmp2; parts[np].tmp = parts[r>>8].pavg[0]; parts[np].ctype = parts[r>>8].pavg[1]; parts[r>>8].tmp = 0; diff --git a/src/elements/firw.cpp b/src/elements/firw.cpp index ffd794113..712d416f3 100644 --- a/src/elements/firw.cpp +++ b/src/elements/firw.cpp @@ -23,7 +23,7 @@ int update_FIRW(UPDATE_FUNC_ARGS) { parts[i].tmp=2; } else { float newVel = parts[i].life/25; - parts[i].flags = parts[i].flags&0xFFFFFFFE; + parts[i].flags &= ~FLAG_STAGNANT; /* TODO: if ((pmap[(int)(ly-newVel)][(int)lx]&0xFF)==PT_NONE && ly-newVel>0) { parts[i].vy = -newVel; diff --git a/src/elements/fwrk.cpp b/src/elements/fwrk.cpp index 1838ddecb..64da2871d 100644 --- a/src/elements/fwrk.cpp +++ b/src/elements/fwrk.cpp @@ -38,7 +38,7 @@ int update_FWRK(UPDATE_FUNC_ARGS) { parts[np].vx = ((rand()%2)*2-1)*rand()%(5+5)+(parts[i].vx)*2 ; parts[np].life= rand()%37+18; parts[np].tmp=q; - parts[np].flags=w; + parts[np].tmp2=w; parts[np].ctype=e; parts[np].temp= rand()%20+6000; parts[np].dcolour = parts[i].dcolour; diff --git a/src/elements/pipe.cpp b/src/elements/pipe.cpp index 78f384b4b..05972b6cd 100644 --- a/src/elements/pipe.cpp +++ b/src/elements/pipe.cpp @@ -1,5 +1,7 @@ #include "simulation/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(Simulation * sim, int i, int count, int original) { sim->parts[r>>8].tmp = (sim->parts[r>>8].tmp&~0xFF) | (sim->parts[i].tmp&0xFF); sim->parts[r>>8].temp = sim->parts[i].temp; - sim->parts[r>>8].flags = sim->parts[i].flags; + sim->parts[r>>8].tmp2 = sim->parts[i].tmp2; sim->parts[r>>8].pavg[0] = sim->parts[i].pavg[0]; sim->parts[r>>8].pavg[1] = sim->parts[i].pavg[1]; if (r>>8 > original) - sim->parts[r>>8].tmp2 = 1;//skip particle push, normalizes speed + sim->parts[r>>8].flags |= PFLAG_NORMALSPEED;//skip particle push, normalizes speed sim->parts[i].tmp &= ~0xFF; count++; pushParticle(sim, r>>8,count,original); @@ -54,11 +56,11 @@ void pushParticle(Simulation * sim, int i, int count, int original) { sim->parts[r>>8].tmp = (sim->parts[r>>8].tmp&~0xFF) | (sim->parts[i].tmp&0xFF); sim->parts[r>>8].temp = sim->parts[i].temp; - sim->parts[r>>8].flags = sim->parts[i].flags; + sim->parts[r>>8].tmp2 = sim->parts[i].tmp2; sim->parts[r>>8].pavg[0] = sim->parts[i].pavg[0]; sim->parts[r>>8].pavg[1] = sim->parts[i].pavg[1]; if (r>>8 > original) - sim->parts[r>>8].tmp2 = 1;//skip particle push, normalizes speed + sim->parts[r>>8].flags |= PFLAG_NORMALSPEED;//skip particle push, normalizes speed sim->parts[i].tmp &= ~0xFF; count++; pushParticle(sim, 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].tmp2 &= ~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) { sim->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; sim->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; diff --git a/src/elements/stor.cpp b/src/elements/stor.cpp index cf6425571..01c341546 100644 --- a/src/elements/stor.cpp +++ b/src/elements/stor.cpp @@ -15,7 +15,7 @@ int update_STOR(UPDATE_FUNC_ARGS) { { parts[i].tmp = 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; sim->kill_part(r>>8); @@ -28,7 +28,7 @@ int update_STOR(UPDATE_FUNC_ARGS) { if (np!=-1) { parts[np].temp = parts[i].temp; - 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 = 0;