summaryrefslogtreecommitdiff
path: root/src/elements/caus.c
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-09-23 11:48:24 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-09-23 11:48:24 (GMT)
commit24b4478136ff0919cff0c62ace2deb173b879472 (patch)
tree55095c76527bf106c8f84e48bf8135f9b45932f8 /src/elements/caus.c
parent8b9a0b663fb7684ae7a2f054f4ec53c0cb293a66 (diff)
downloadpowder-24b4478136ff0919cff0c62ace2deb173b879472.zip
powder-24b4478136ff0919cff0c62ace2deb173b879472.tar.gz
Added Caustic gas, similar to acid, created with acid and water vapour
Diffstat (limited to 'src/elements/caus.c')
-rw-r--r--src/elements/caus.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/elements/caus.c b/src/elements/caus.c
new file mode 100644
index 0000000..cb7fab5
--- /dev/null
+++ b/src/elements/caus.c
@@ -0,0 +1,35 @@
+#include <element.h>
+
+int update_CAUS(UPDATE_FUNC_ARGS) {
+ int r, rx, ry, trade, np;
+ for (rx=-2; rx<3; rx++)
+ for (ry=-2; ry<3; ry++)
+ if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
+ {
+ r = pmap[y+ry][x+rx];
+ if (!r)
+ continue;
+ if ((r&0xFF)!=PT_ACID && (r&0xFF)!=PT_CAUS)
+ {
+ if (((r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PCLN && ptypes[r&0xFF].hardness>(rand()%1000))&&parts[i].life>=50)
+ {
+ if (parts_avg(i, r>>8,PT_GLAS)!= PT_GLAS)//GLAS protects stuff from acid
+ {
+ float newtemp = ((60.0f-(float)ptypes[r&0xFF].hardness))*7.0f;
+ if(newtemp < 0){
+ newtemp = 0;
+ }
+ parts[i].temp += newtemp;
+ parts[i].life--;
+ kill_part(r>>8);
+ }
+ }
+ else if (parts[i].life<=50)
+ {
+ kill_part(i);
+ return 1;
+ }
+ }
+ }
+ return 0;
+}