summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon <simon@hardwired.org.uk>2010-12-06 19:51:49 (GMT)
committer Simon <simon@hardwired.org.uk>2010-12-06 19:51:49 (GMT)
commite629908945576935b794b6c6219451bef8dc2132 (patch)
tree99667da2839aa6462ffb1ca7d331bd5d89bcb71e /src
parentae828393ce38b4a15ed9f9b47d615eb5505d5f47 (diff)
downloadpowder-e629908945576935b794b6c6219451bef8dc2132.zip
powder-e629908945576935b794b6c6219451bef8dc2132.tar.gz
Potential Fix for PSCN an A-RAY
Diffstat (limited to 'src')
-rw-r--r--src/powder.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/powder.c b/src/powder.c
index 550e0da..275f923 100644
--- a/src/powder.c
+++ b/src/powder.c
@@ -1841,23 +1841,25 @@ void update_particles_i(pixel *vid, int start, int inc)
parts[nr].tmp = 2;
parts[nr].life = 2;
}
- } else if(parts[r>>8].type==PT_BRAY&&parts[r>>8].tmp==0&&!destroy){
- if(nyy!=0 || nxx!=0){
- parts[r>>8].type = PT_BRAY;
- parts[r>>8].life = 1020;
- parts[r>>8].tmp = 1;
+ } else if(!((r>>8)>=NPART || !r)) {
+ if(parts[r>>8].type==PT_BRAY&&parts[r>>8].tmp==0&&!destroy){
+ if(nyy!=0 || nxx!=0){
+ parts[r>>8].type = PT_BRAY;
+ parts[r>>8].life = 1020;
+ parts[r>>8].tmp = 1;
+ }
+ docontinue = 0;
+ } else if(parts[r>>8].type==PT_BRAY&&parts[r>>8].tmp==1){
+ parts[r>>8].life = destroy?1:1020;
+ docontinue = 1;
+ } else if(!destroy) {
+ if(nyy!=0 || nxx!=0){
+ create_part(-1, x+nxi+nxx, y+nyi+nyy, PT_SPRK);
+ }
+ docontinue = 0;
+ } else {
+ docontinue = 0;
}
- docontinue = 0;
- } else if(parts[r>>8].type==PT_BRAY&&parts[r>>8].tmp==1){
- parts[r>>8].life = destroy?1:1020;
- docontinue = 1;
- } else if(!destroy) {
- if(nyy!=0 || nxx!=0){
- create_part(-1, x+nxi+nxx, y+nyi+nyy, PT_SPRK);
- }
- docontinue = 0;
- } else {
- docontinue = 0;
}
}
}