summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2013-08-29 17:28:49 (GMT)
committer jacksonmj <mj-pt@jacksonmj.co.uk>2013-08-29 17:28:49 (GMT)
commitc3d3f9fc2abd0b44d996fd511ce6cdddd74c8ea6 (patch)
tree38cd261ad2f7ced2625db366b538e8b797da0f73
parent268158f1ddbdfe6067542bae0bd3fbd425a2c8f6 (diff)
downloadpowder-c3d3f9fc2abd0b44d996fd511ce6cdddd74c8ea6.zip
powder-c3d3f9fc2abd0b44d996fd511ce6cdddd74c8ea6.tar.gz
FILT mode for old QRTZ scattering, for Catelite.
FILT graphics could maybe do with changing in this mode.
-rw-r--r--src/simulation/elements/FILT.cpp8
-rw-r--r--src/simulation/elements/PHOT.cpp5
2 files changed, 13 insertions, 0 deletions
diff --git a/src/simulation/elements/FILT.cpp b/src/simulation/elements/FILT.cpp
index 9c7615f..8ece142 100644
--- a/src/simulation/elements/FILT.cpp
+++ b/src/simulation/elements/FILT.cpp
@@ -104,6 +104,14 @@ int Element_FILT::interactWavelengths(Particle* cpart, int origWl)
return origWl ^ filtWl; // XOR colours
case 8:
return (~origWl) & mask; // Invert colours
+ case 9:
+ {
+ int t1, t2, t3, r;
+ t1 = (origWl & 0x0000FF)+(rand()%5)-2;
+ t1 = ((origWl & 0x00FF00)>>8)+(rand()%5)-2;
+ t3 = ((origWl & 0xFF0000)>>16)+(rand()%5)-2;
+ return (origWl & 0xFF000000) | (t3<<16) | (t2<<8) | t1;
+ }
default:
return filtWl;
}
diff --git a/src/simulation/elements/PHOT.cpp b/src/simulation/elements/PHOT.cpp
index e132d3d..4fe5bbe 100644
--- a/src/simulation/elements/PHOT.cpp
+++ b/src/simulation/elements/PHOT.cpp
@@ -88,6 +88,11 @@ int Element_PHOT::update(UPDATE_FUNC_ARGS)
parts[i].ctype = 0x1F<<(rand()%26);
parts[i].life++; //Delay death
}
+ else if ((r&0xFF) == PT_FILT && parts[r>>8].tmp==9)
+ {
+ parts[i].vx += ((float)(rand()%1000-500))/1000.0f;
+ parts[i].vy += ((float)(rand()%1000-500))/1000.0f;
+ }
}
return 0;
}