summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2011-01-08 17:40:30 (GMT)
committer Simon <simon@hardwired.org.uk>2011-01-08 17:40:30 (GMT)
commitcd08a7102cf29180ac38969aa71fe9a7c4d67168 (patch)
treef0497be0c5aac71df20fc0c180c039a76138a734 /src
parentb83b2f1d270662ab28e4ea65d63f023f922bcc8f (diff)
parent52573e94f9dcde2cc2a43061b5bcb77c724bb3c5 (diff)
downloadpowder-cd08a7102cf29180ac38969aa71fe9a7c4d67168.zip
powder-cd08a7102cf29180ac38969aa71fe9a7c4d67168.tar.gz
Changes from cracker
Diffstat (limited to 'src')
-rw-r--r--src/powder.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/powder.c b/src/powder.c
index 196f76d..26edb0c 100644
--- a/src/powder.c
+++ b/src/powder.c
@@ -2147,7 +2147,7 @@ void update_particles_i(pixel *vid, int start, int inc)
}
else if(parts[r>>8].type==PT_FILT){
colored = parts[r>>8].ctype;
- }else if(parts[r>>8].type!=PT_INWR && parts[r>>8].type!=PT_ARAY && parts[r>>8].type!=PT_WIFI) {
+ }else if(parts[r>>8].type!=PT_INWR && parts[r>>8].type!=PT_ARAY && parts[r>>8].type!=PT_WIFI && !(parts[r>>8].type==PT_SWCH && parts[r>>8].life>=10)) {
if(nyy!=0 || nxx!=0){
create_part(-1, x+nxi+nxx, y+nyi+nyy, PT_SPRK);
}
@@ -2161,7 +2161,7 @@ void update_particles_i(pixel *vid, int start, int inc)
if(parts[r>>8].type==PT_BRAY){
parts[r>>8].life = 1;
docontinue = 1;
- } else if(parts[r>>8].type==PT_INWR || parts[r>>8].type==PT_ARAY || parts[r>>8].type==PT_WIFI) {
+ } else if(parts[r>>8].type==PT_INWR || parts[r>>8].type==PT_ARAY || parts[r>>8].type==PT_WIFI || parts[r>>8].type==PT_FILT || (parts[r>>8].type==PT_SWCH && parts[r>>8].life>=10)) {
docontinue = 1;
} else {
docontinue = 0;
@@ -3830,6 +3830,7 @@ void update_particles_i(pixel *vid, int start, int inc)
if((r>>8)>=NPART || !r)
continue;
rt = parts[r>>8].type;
+
if(parts[r>>8].type == PT_SWCH&&parts_avg(i,r>>8,PT_INSL)!=PT_INSL)
{
if(parts[i].life==10&&parts[r>>8].life<10&&parts[r>>8].life>0)
@@ -3847,6 +3848,14 @@ void update_particles_i(pixel *vid, int start, int inc)
parts[r>>8].life = 9;
}
}
+ if(parts[i].life==10 && (!(pmap[y-1][x-1]&0xFF) && ((pmap[y-1][x]&0xFF)==PT_BRAY&&parts[pmap[y-1][x]>>8].tmp==2) && !(pmap[y-1][x+1]&0xFF) && ((pmap[y][x+1]&0xFF)==PT_BRAY&&parts[pmap[y][x+1]>>8].tmp==2)))
+ {
+ parts[i].life = 9;
+ }
+ else if(parts[i].life<=5 && (!(pmap[y-1][x-1]&0xFF) && (((pmap[y-1][x]&0xFF)==PT_BRAY&&parts[pmap[y-1][x]>>8].tmp==2) || ((pmap[y+1][x]&0xFF)==PT_BRAY&&parts[pmap[y+1][x]>>8].tmp==2)) && !(pmap[y-1][x+1]&0xFF) && (((pmap[y][x+1]&0xFF)==PT_BRAY&&parts[pmap[y][x+1]>>8].tmp==2) || ((pmap[y][x-1]&0xFF)==PT_BRAY&&parts[pmap[y][x-1]>>8].tmp==2))))
+ {
+ parts[i].life = 14;
+ }
}
if(t==PT_SWCH)
if((parts[i].life>0&&parts[i].life<10)|| parts[i].life > 10)