summaryrefslogtreecommitdiff
path: root/src/elements
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-04-19 16:01:17 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-04-19 16:01:17 (GMT)
commit456fca22c692cd5199e17e9b6d4279a04ce7da25 (patch)
tree88e8a16909a44c6e4af2d21ace552f17154a7d67 /src/elements
parentceb25440cbbb1c6b712985770a0379c4da57cdd4 (diff)
downloadpowder-456fca22c692cd5199e17e9b6d4279a04ce7da25.zip
powder-456fca22c692cd5199e17e9b6d4279a04ce7da25.tar.gz
TPT: Change STOR, PIPE, DUST to make correct use of .flags field.
Diffstat (limited to 'src/elements')
-rw-r--r--src/elements/aray.cpp2
-rw-r--r--src/elements/firw.cpp2
-rw-r--r--src/elements/fwrk.cpp2
-rw-r--r--src/elements/pipe.cpp22
-rw-r--r--src/elements/stor.cpp4
5 files changed, 17 insertions, 15 deletions
diff --git a/src/elements/aray.cpp b/src/elements/aray.cpp
index 8505d81..a4e8c63 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 ffd7941..712d416 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 1838dde..64da287 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 78f384b..05972b6 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 cf64255..01c3415 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;