diff options
| author | jacksonmj <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) |
| commit | c3d3f9fc2abd0b44d996fd511ce6cdddd74c8ea6 (patch) | |
| tree | 38cd261ad2f7ced2625db366b538e8b797da0f73 /src | |
| parent | 268158f1ddbdfe6067542bae0bd3fbd425a2c8f6 (diff) | |
| download | powder-c3d3f9fc2abd0b44d996fd511ce6cdddd74c8ea6.zip powder-c3d3f9fc2abd0b44d996fd511ce6cdddd74c8ea6.tar.gz | |
FILT mode for old QRTZ scattering, for Catelite.
FILT graphics could maybe do with changing in this mode.
Diffstat (limited to 'src')
| -rw-r--r-- | src/simulation/elements/FILT.cpp | 8 | ||||
| -rw-r--r-- | src/simulation/elements/PHOT.cpp | 5 |
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; } |
