summaryrefslogtreecommitdiff
path: root/src/elements
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2011-08-24 15:35:52 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-08-27 10:37:03 (GMT)
commit42cfb74c2bb82eb185962a17f848e47265a16316 (patch)
treed2185ba1276dd85144b7d26099f597833f0cc975 /src/elements
parentf97e8e5c7caddadadf71f7635070777c6e1248ad (diff)
downloadpowder-42cfb74c2bb82eb185962a17f848e47265a16316.zip
powder-42cfb74c2bb82eb185962a17f848e47265a16316.tar.gz
Remove blocking walls from pmap
2.5% speed increase on a screen full of water
Diffstat (limited to 'src/elements')
-rw-r--r--src/elements/O2.c2
-rw-r--r--src/elements/acid.c2
-rw-r--r--src/elements/amtr.c2
-rw-r--r--src/elements/anar.c2
-rw-r--r--src/elements/aray.c6
-rw-r--r--src/elements/bcln.c4
-rw-r--r--src/elements/bcol.c4
-rw-r--r--src/elements/bmtl.c2
-rw-r--r--src/elements/bomb.c4
-rw-r--r--src/elements/boyl.c2
-rw-r--r--src/elements/btry.c2
-rw-r--r--src/elements/c5.c2
-rw-r--r--src/elements/clne.c4
-rw-r--r--src/elements/clst.c2
-rw-r--r--src/elements/coal.c4
-rw-r--r--src/elements/deut.c6
-rw-r--r--src/elements/dlay.c2
-rw-r--r--src/elements/dstw.c2
-rw-r--r--src/elements/firw.c4
-rw-r--r--src/elements/fog.c2
-rw-r--r--src/elements/frzw.c2
-rw-r--r--src/elements/frzz.c2
-rw-r--r--src/elements/fsep.c2
-rw-r--r--src/elements/fuse.c2
-rw-r--r--src/elements/gbmb.c2
-rw-r--r--src/elements/glow.c2
-rw-r--r--src/elements/gpmp.c2
-rw-r--r--src/elements/h2.c2
-rw-r--r--src/elements/hswc.c2
-rw-r--r--src/elements/ice.c2
-rw-r--r--src/elements/iron.c2
-rw-r--r--src/elements/lcry.c2
-rw-r--r--src/elements/legacy.c12
-rw-r--r--src/elements/merc.c6
-rw-r--r--src/elements/neut.c2
-rw-r--r--src/elements/pbcn.c6
-rw-r--r--src/elements/pcln.c6
-rw-r--r--src/elements/phot.c2
-rw-r--r--src/elements/pipe.c8
-rw-r--r--src/elements/plnt.c6
-rw-r--r--src/elements/prti.c4
-rw-r--r--src/elements/prto.c2
-rw-r--r--src/elements/pump.c2
-rw-r--r--src/elements/pyro.c4
-rw-r--r--src/elements/qrtz.c6
-rw-r--r--src/elements/rime.c2
-rw-r--r--src/elements/shld.c8
-rw-r--r--src/elements/sing.c2
-rw-r--r--src/elements/sltw.c2
-rw-r--r--src/elements/soap.c6
-rw-r--r--src/elements/spng.c10
-rw-r--r--src/elements/sprk.c4
-rw-r--r--src/elements/stkm.c11
-rw-r--r--src/elements/swch.c2
-rw-r--r--src/elements/thdr.c2
-rw-r--r--src/elements/thrm.c2
-rw-r--r--src/elements/vine.c2
-rw-r--r--src/elements/warp.c2
-rw-r--r--src/elements/watr.c2
-rw-r--r--src/elements/wifi.c2
-rw-r--r--src/elements/wire.c2
-rw-r--r--src/elements/wtrv.c2
-rw-r--r--src/elements/yest.c2
63 files changed, 95 insertions, 120 deletions
diff --git a/src/elements/O2.c b/src/elements/O2.c
index a008766..b71870e 100644
--- a/src/elements/O2.c
+++ b/src/elements/O2.c
@@ -8,7 +8,7 @@ int update_O2(UPDATE_FUNC_ARGS)
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_FIRE)
diff --git a/src/elements/acid.c b/src/elements/acid.c
index 24bb321..d6e31be 100644
--- a/src/elements/acid.c
+++ b/src/elements/acid.c
@@ -7,7 +7,7 @@ int update_ACID(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)!=PT_ACID)
{
diff --git a/src/elements/amtr.c b/src/elements/amtr.c
index 49a9618..42002c8 100644
--- a/src/elements/amtr.c
+++ b/src/elements/amtr.c
@@ -7,7 +7,7 @@ int update_AMTR(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)!=PT_AMTR && (r&0xFF)!=PT_DMND && (r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PCLN && (r&0xFF)!=PT_NONE && (r&0xFF)!=PT_PHOT && (r&0xFF)!=PT_VOID && (r&0xFF)!=PT_BHOL && (r&0xFF)!=PT_NBHL && (r&0xFF)!=PT_PRTI && (r&0xFF)!=PT_PRTO)
{
diff --git a/src/elements/anar.c b/src/elements/anar.c
index 4a30cc2..bab112c 100644
--- a/src/elements/anar.c
+++ b/src/elements/anar.c
@@ -10,7 +10,7 @@ int update_ANAR(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_HFLM)
{
diff --git a/src/elements/aray.c b/src/elements/aray.c
index 9604fba..539b5a6 100644
--- a/src/elements/aray.c
+++ b/src/elements/aray.c
@@ -9,7 +9,7 @@ int update_ARAY(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_SPRK) {
int destroy = (parts[r>>8].ctype==PT_PSCN)?1:0;
@@ -19,7 +19,6 @@ int update_ARAY(UPDATE_FUNC_ARGS) {
break;
}
r = pmap[y+nyi+nyy][x+nxi+nxx];
- if (!((r>>8)>=NPART)) {
if (!r) {
int nr = create_part(-1, x+nxi+nxx, y+nyi+nyy, PT_BRAY);
if (nr!=-1) {
@@ -49,7 +48,7 @@ int update_ARAY(UPDATE_FUNC_ARGS) {
if (nyy!=0 || nxx!=0) {
create_part(-1, x+nxi+nxx, y+nyi+nyy, PT_SPRK);
}
- //if (!(nostop && (ptypes[r&0xFF].properties&PROP_CONDUCTS))) {//don't need to check r&0xFF<PT_NUM here because it should have been excluded by (r>>8)>=NPART //Not sure why you changed checking "ctype" to "type"
+ //if (!(nostop && (ptypes[r&0xFF].properties&PROP_CONDUCTS))) {
if (!(nostop && parts[r>>8].ctype >= 0 && parts[r>>8].ctype < PT_NUM && (ptypes[parts[r>>8].ctype].properties&PROP_CONDUCTS))) {
docontinue = 0;
} else {
@@ -67,7 +66,6 @@ int update_ARAY(UPDATE_FUNC_ARGS) {
docontinue = 0;
}
}
- }
}
}
//parts[i].life = 4;
diff --git a/src/elements/bcln.c b/src/elements/bcln.c
index 062c85f..29a45a7 100644
--- a/src/elements/bcln.c
+++ b/src/elements/bcln.c
@@ -17,9 +17,9 @@ int update_BCLN(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES)
{
r = photons[y+ry][x+rx];
- if (!r || (r>>8)>=NPART)
+ if (!r)
r = pmap[y+ry][x+rx];
- if (!r || (r>>8)>=NPART)
+ if (!r)
continue;
if ((r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PCLN &&
(r&0xFF)!=PT_BCLN && (r&0xFF)!=PT_STKM &&
diff --git a/src/elements/bcol.c b/src/elements/bcol.c
index bc8713c..aac3ffe 100644
--- a/src/elements/bcol.c
+++ b/src/elements/bcol.c
@@ -15,7 +15,7 @@ int update_BCOL(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_FIRE || (r&0xFF)==PT_PLSM) && 1>(rand()%500))
{
@@ -42,7 +42,7 @@ int update_BCOL(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_COAL || (r&0xFF)==PT_BCOL)&&(parts[i].tmp2>parts[r>>8].tmp2)&&parts[i].tmp2>0)//diffusion
{
diff --git a/src/elements/bmtl.c b/src/elements/bmtl.c
index a29ac7d..04d9f3a 100644
--- a/src/elements/bmtl.c
+++ b/src/elements/bmtl.c
@@ -9,7 +9,7 @@ int update_BMTL(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
rt = parts[r>>8].type;
if ((rt==PT_METL || rt==PT_IRON) && 1>(rand()/(RAND_MAX/100)))
diff --git a/src/elements/bomb.c b/src/elements/bomb.c
index de10fcc..31f01ab 100644
--- a/src/elements/bomb.c
+++ b/src/elements/bomb.c
@@ -8,7 +8,7 @@ int update_BOMB(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)!=PT_BOMB) {
kill_part(i);
@@ -21,7 +21,7 @@ int update_BOMB(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)!=PT_BOMB && (r&0xFF)!=PT_DMND && (r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PCLN && (r&0xFF)!=PT_BCLN) {
int rad = 8;
diff --git a/src/elements/boyl.c b/src/elements/boyl.c
index 68e1bf6..ec8eec5 100644
--- a/src/elements/boyl.c
+++ b/src/elements/boyl.c
@@ -26,7 +26,7 @@ int update_BOYL(UPDATE_FUNC_ARGS) {
x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_WATR && 1>rand()%30)
{
diff --git a/src/elements/btry.c b/src/elements/btry.c
index c3a96c7..4716c6a 100644
--- a/src/elements/btry.c
+++ b/src/elements/btry.c
@@ -7,7 +7,7 @@ int update_BTRY(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
rt = parts[r>>8].type;
if (parts_avg(i,r>>8,PT_INSL) != PT_INSL)
diff --git a/src/elements/c5.c b/src/elements/c5.c
index 000c2be..93fd63c 100644
--- a/src/elements/c5.c
+++ b/src/elements/c5.c
@@ -7,7 +7,7 @@ int update_C5(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)!=PT_C5 && parts[r>>8].temp<100)||(r&0xFF)==PT_HFLM)
{
diff --git a/src/elements/clne.c b/src/elements/clne.c
index 41f27e3..a7d22fd 100644
--- a/src/elements/clne.c
+++ b/src/elements/clne.c
@@ -9,9 +9,9 @@ int update_CLNE(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES)
{
r = photons[y+ry][x+rx];
- if (!r || (r>>8)>=NPART)
+ if (!r)
r = pmap[y+ry][x+rx];
- if (!r || (r>>8)>=NPART)
+ if (!r)
continue;
if ((r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PCLN &&
(r&0xFF)!=PT_BCLN && (r&0xFF)!=PT_STKM &&
diff --git a/src/elements/clst.c b/src/elements/clst.c
index 78c827f..8666582 100644
--- a/src/elements/clst.c
+++ b/src/elements/clst.c
@@ -8,7 +8,7 @@ int update_CLST(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_WATR && 1>(rand()%1500))
{
diff --git a/src/elements/coal.c b/src/elements/coal.c
index e111890..14c3138 100644
--- a/src/elements/coal.c
+++ b/src/elements/coal.c
@@ -22,7 +22,7 @@ int update_COAL(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_FIRE || (r&0xFF)==PT_PLSM) && 1>(rand()%500))
{
@@ -49,7 +49,7 @@ int update_COAL(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_COAL || (r&0xFF)==PT_BCOL)&&(parts[i].tmp2>parts[r>>8].tmp2)&&parts[i].tmp2>0)//diffusion
{
diff --git a/src/elements/deut.c b/src/elements/deut.c
index 2d7a1f2..749bf28 100644
--- a/src/elements/deut.c
+++ b/src/elements/deut.c
@@ -12,7 +12,7 @@ int update_DEUT(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r || (parts[i].life >=maxlife))
+ if (!r || (parts[i].life >=maxlife))
continue;
if ((r&0xFF)==PT_DEUT&&33>=rand()/(RAND_MAX/100)+1)
{
@@ -30,7 +30,7 @@ int update_DEUT(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || (parts[i].life<=maxlife))
+ if (parts[i].life<=maxlife)
continue;
if ((bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_WALLELEC||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_EWALL||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_DESTROYALL||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_WALL||
bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWAIR||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWSOLID||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWGAS))
@@ -51,7 +51,7 @@ int update_DEUT(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_DEUT&&(parts[i].life>parts[r>>8].life)&&parts[i].life>0)//diffusion
{
diff --git a/src/elements/dlay.c b/src/elements/dlay.c
index 2a248ca..c91b69b 100644
--- a/src/elements/dlay.c
+++ b/src/elements/dlay.c
@@ -17,7 +17,7 @@ int update_DLAY(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_SPRK && parts[i].life==0 && parts[r>>8].ctype==PT_PSCN)
{
diff --git a/src/elements/dstw.c b/src/elements/dstw.c
index 390896d..e00d7b3 100644
--- a/src/elements/dstw.c
+++ b/src/elements/dstw.c
@@ -7,7 +7,7 @@ int update_DSTW(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_SALT && 1>(rand()%250))
{
diff --git a/src/elements/firw.c b/src/elements/firw.c
index c41400e..9c8f546 100644
--- a/src/elements/firw.c
+++ b/src/elements/firw.c
@@ -8,7 +8,7 @@ int update_FIRW(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
rt = parts[r>>8].type;
if (rt==PT_FIRE||rt==PT_PLSM||rt==PT_THDR)
@@ -44,7 +44,7 @@ int update_FIRW(UPDATE_FUNC_ARGS) {
tmul = rand()%7;
create_part(-1, x+rx, y+ry, PT_FIRW);
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_FIRW) {
parts[r>>8].vx = (rand()%3-1)*tmul;
diff --git a/src/elements/fog.c b/src/elements/fog.c
index ff13916..135db12 100644
--- a/src/elements/fog.c
+++ b/src/elements/fog.c
@@ -7,7 +7,7 @@ int update_FOG(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (ptypes[r&0xFF].state==ST_SOLID&&5>=rand()%50&&parts[i].life==0&&!((r&0xFF)==PT_CLNE||(r&0xFF)==PT_PCLN)) // TODO: should this also exclude BCLN?
{
diff --git a/src/elements/frzw.c b/src/elements/frzw.c
index 3135357..066bc64 100644
--- a/src/elements/frzw.c
+++ b/src/elements/frzw.c
@@ -7,7 +7,7 @@ int update_FRZW(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_WATR&&5>rand()%70)
{
diff --git a/src/elements/frzz.c b/src/elements/frzz.c
index f995d5f..fbd083d 100644
--- a/src/elements/frzz.c
+++ b/src/elements/frzz.c
@@ -7,7 +7,7 @@ int update_FRZZ(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_WATR&&5>rand()%100)
{
diff --git a/src/elements/fsep.c b/src/elements/fsep.c
index 6b3b376..7968240 100644
--- a/src/elements/fsep.c
+++ b/src/elements/fsep.c
@@ -21,7 +21,7 @@ int update_FSEP(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_SPRK || (parts[i].temp>=(273.15+400.0f))) && 1>(rand()%15))
{
diff --git a/src/elements/fuse.c b/src/elements/fuse.c
index ad0a413..450308a 100644
--- a/src/elements/fuse.c
+++ b/src/elements/fuse.c
@@ -28,7 +28,7 @@ int update_FUSE(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_SPRK || ((parts[i].temp>=(273.15+700.0f)) && 1>(rand()%20)))
{
diff --git a/src/elements/gbmb.c b/src/elements/gbmb.c
index d1d45b9..d606312 100644
--- a/src/elements/gbmb.c
+++ b/src/elements/gbmb.c
@@ -7,7 +7,7 @@ int update_GBMB(UPDATE_FUNC_ARGS) {
for (ry=-2; ry<3; ry++)
{
r = pmap[y+ry][x+rx];
- if(!r || (r>>8)>=NPART)
+ if(!r)
continue;
if((r&0xFF)!=PT_BOMB && (r&0xFF)!=PT_GBMB &&
(r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PCLN &&
diff --git a/src/elements/glow.c b/src/elements/glow.c
index ecbb005..984ba7e 100644
--- a/src/elements/glow.c
+++ b/src/elements/glow.c
@@ -7,7 +7,7 @@ int update_GLOW(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_WATR&&5>(rand()%2000))
{
diff --git a/src/elements/gpmp.c b/src/elements/gpmp.c
index 2f0f839..1766b3b 100644
--- a/src/elements/gpmp.c
+++ b/src/elements/gpmp.c
@@ -19,7 +19,7 @@ int update_GPMP(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_GPMP)
{
diff --git a/src/elements/h2.c b/src/elements/h2.c
index 04f3d01..c601108 100644
--- a/src/elements/h2.c
+++ b/src/elements/h2.c
@@ -9,7 +9,7 @@ int update_H2(UPDATE_FUNC_ARGS)
{
r = pmap[y+ry][x+rx];
rt = (r&0xFF);
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (pv[y/CELL][x/CELL] > 8.0f && rt == PT_DESL) // This will not work. DESL turns to fire above 5.0 pressure
{
diff --git a/src/elements/hswc.c b/src/elements/hswc.c
index 6e1b2df..350cc07 100644
--- a/src/elements/hswc.c
+++ b/src/elements/hswc.c
@@ -11,7 +11,7 @@ int update_HSWC(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_HSWC)
{
diff --git a/src/elements/ice.c b/src/elements/ice.c
index 96bb22b..92b6450 100644
--- a/src/elements/ice.c
+++ b/src/elements/ice.c
@@ -11,7 +11,7 @@ int update_ICEI(UPDATE_FUNC_ARGS) { //currently used for snow as well
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_SALT || (r&0xFF)==PT_SLTW) && 1>(rand()%1000))
{
diff --git a/src/elements/iron.c b/src/elements/iron.c
index 0be1e1f..451783d 100644
--- a/src/elements/iron.c
+++ b/src/elements/iron.c
@@ -7,7 +7,7 @@ int update_IRON(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((((r&0xFF) == PT_SALT && 15>(rand()/(RAND_MAX/700))) ||
((r&0xFF) == PT_SLTW && 30>(rand()/(RAND_MAX/2000))) ||
diff --git a/src/elements/lcry.c b/src/elements/lcry.c
index 7b1a64e..e03a3a4 100644
--- a/src/elements/lcry.c
+++ b/src/elements/lcry.c
@@ -11,7 +11,7 @@ int update_LCRY(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_LCRY)
{
diff --git a/src/elements/legacy.c b/src/elements/legacy.c
index 0fd3d6b..8674e4b 100644
--- a/src/elements/legacy.c
+++ b/src/elements/legacy.c
@@ -12,7 +12,7 @@ int update_legacy_all(UPDATE_FUNC_ARGS) {
x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_WATR||(r&0xFF)==PT_DSTW||(r&0xFF)==PT_SLTW) && 1>(rand()%1000))
{
@@ -34,7 +34,7 @@ int update_legacy_all(UPDATE_FUNC_ARGS) {
x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_FIRE || (r&0xFF)==PT_LAVA) && 1>(rand()%10))
{
@@ -49,7 +49,7 @@ int update_legacy_all(UPDATE_FUNC_ARGS) {
x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_FIRE || (r&0xFF)==PT_LAVA) && 1>(rand()%10))
{
@@ -65,7 +65,7 @@ int update_legacy_all(UPDATE_FUNC_ARGS) {
x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_FIRE || (r&0xFF)==PT_LAVA) && 1>(rand()%10))
{
@@ -79,7 +79,7 @@ int update_legacy_all(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_WATR || (r&0xFF)==PT_DSTW) && 1>(rand()%1000))
{
@@ -94,7 +94,7 @@ int update_legacy_all(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_WATR || (r&0xFF)==PT_DSTW) && 1>(rand()%1000))
{
diff --git a/src/elements/merc.c b/src/elements/merc.c
index 89cd79c..98fdb57 100644
--- a/src/elements/merc.c
+++ b/src/elements/merc.c
@@ -12,7 +12,7 @@ int update_MERC(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r || (parts[i].tmp >=maxtmp))
+ if (!r || (parts[i].tmp >=maxtmp))
continue;
if ((r&0xFF)==PT_MERC&&33>=rand()/(RAND_MAX/100)+1)
{
@@ -30,7 +30,7 @@ int update_MERC(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || (parts[i].tmp<=maxtmp))
+ if (parts[i].tmp<=maxtmp)
continue;
if ((bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_WALLELEC||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_EWALL||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_DESTROYALL||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_WALL||
bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWAIR||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWSOLID||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWGAS))
@@ -51,7 +51,7 @@ int update_MERC(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_MERC&&(parts[i].tmp>parts[r>>8].tmp)&&parts[i].tmp>0)//diffusion
{
diff --git a/src/elements/neut.c b/src/elements/neut.c
index 85a0be2..0677af8 100644
--- a/src/elements/neut.c
+++ b/src/elements/neut.c
@@ -50,7 +50,7 @@ int update_NEUT(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_WATR || (r&0xFF)==PT_ICEI || (r&0xFF)==PT_SNOW)
{
diff --git a/src/elements/pbcn.c b/src/elements/pbcn.c
index 3f40628..634a411 100644
--- a/src/elements/pbcn.c
+++ b/src/elements/pbcn.c
@@ -23,9 +23,9 @@ int update_PBCN(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES)
{
r = photons[y+ry][x+rx];
- if (!r || (r>>8)>=NPART)
+ if (!r)
r = pmap[y+ry][x+rx];
- if (!r || (r>>8)>=NPART)
+ if (!r)
continue;
if ((r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PCLN &&
(r&0xFF)!=PT_BCLN && (r&0xFF)!=PT_SPRK &&
@@ -46,7 +46,7 @@ int update_PBCN(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_PBCN)
{
diff --git a/src/elements/pcln.c b/src/elements/pcln.c
index 45cfc79..e9c8d5b 100644
--- a/src/elements/pcln.c
+++ b/src/elements/pcln.c
@@ -9,7 +9,7 @@ int update_PCLN(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_SPRK)
{
@@ -32,9 +32,9 @@ int update_PCLN(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES)
{
r = photons[y+ry][x+rx];
- if (!r || (r>>8)>=NPART)
+ if (!r)
r = pmap[y+ry][x+rx];
- if (!r || (r>>8)>=NPART)
+ if (!r)
continue;
if ((r&0xFF)!=PT_CLNE && (r&0xFF)!=PT_PCLN &&
(r&0xFF)!=PT_BCLN && (r&0xFF)!=PT_SPRK &&
diff --git a/src/elements/phot.c b/src/elements/phot.c
index 12e7da5..98d421d 100644
--- a/src/elements/phot.c
+++ b/src/elements/phot.c
@@ -14,7 +14,7 @@ int update_PHOT(UPDATE_FUNC_ARGS) {
for (ry=-1; ry<2; ry++)
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES && (rx || ry)) {
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_ISOZ && 5>(rand()%2000))
{
diff --git a/src/elements/pipe.c b/src/elements/pipe.c
index 0d66482..af008dc 100644
--- a/src/elements/pipe.c
+++ b/src/elements/pipe.c
@@ -25,7 +25,7 @@ void pushParticle(int i, int count, int original)
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES)
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
else if ((r&0xFF)==PT_PIPE && parts[r>>8].ctype!=notctype && (parts[r>>8].tmp&0xFF)==0)
{
@@ -47,7 +47,7 @@ void pushParticle(int i, int count, int original)
{
int coords = 7 - (parts[i].tmp>>10);
r = pmap[y+ pos_1_ry[coords]][x+ pos_1_rx[coords]];
- if ((r>>8)>=NPART || !r)
+ if (!r)
{
}
else if ((r&0xFF)==PT_PIPE && parts[r>>8].ctype!=notctype && (parts[r>>8].tmp&0xFF)==0)
@@ -85,7 +85,7 @@ int update_PIPE(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_PIPE&&parts[r>>8].ctype==1)
{
@@ -130,8 +130,6 @@ int update_PIPE(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES)
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART)
- return 0;
if (surround_space && !r && (parts[i].tmp&0xFF)!=0) //creating at end
{
np = create_part(-1,x+rx,y+ry,parts[i].tmp&0xFF);
diff --git a/src/elements/plnt.c b/src/elements/plnt.c
index 5baec2f..97b09e2 100644
--- a/src/elements/plnt.c
+++ b/src/elements/plnt.c
@@ -7,7 +7,7 @@ int update_PLNT(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_WATR && 1>(rand()%250))
{
@@ -31,7 +31,7 @@ int update_PLNT(UPDATE_FUNC_ARGS) {
int nny = rand()%3 -1;
if (x+rx+nnx>=0 && y+ry+nny>0 && x+rx+nnx<XRES && y+ry+nny<YRES && (nnx || nny))
{
- if ((pmap[y+ry+nny][x+rx+nnx]>>8)>=NPART||pmap[y+ry+nny][x+rx+nnx])
+ if (pmap[y+ry+nny][x+rx+nnx])
continue;
np = create_part(-1,x+rx+nnx,y+ry+nny,PT_VINE);
if (np<0) continue;
@@ -46,8 +46,6 @@ int update_PLNT(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART)
- continue;
if (!r)
create_part(-1,x+rx,y+ry,PT_O2);
}
diff --git a/src/elements/prti.c b/src/elements/prti.c
index 7038412..57830ab 100644
--- a/src/elements/prti.c
+++ b/src/elements/prti.c
@@ -24,13 +24,9 @@ int update_PRTI(UPDATE_FUNC_ARGS) {
r = pmap[y+ry][x+rx];
if (!r)
fe = 1;
- if ((r>>8)>=NPART)
- continue;
if (!r || (r&0xFF)==PT_PRTI || (r&0xFF)==PT_PRTO || (ptypes[r&0xFF].falldown== 0 && ptypes[r&0xFF].state != ST_GAS && (r&0xFF)!=PT_SPRK))
{
r = photons[y+ry][x+rx];
- if ((r>>8)>=NPART)
- continue;
if (!r || (r&0xFF)==PT_PRTI || (r&0xFF)==PT_PRTO || (ptypes[r&0xFF].falldown== 0 && ptypes[r&0xFF].state != ST_GAS && (r&0xFF)!=PT_SPRK))
continue;
}
diff --git a/src/elements/prto.c b/src/elements/prto.c
index 880de20..e86891a 100644
--- a/src/elements/prto.c
+++ b/src/elements/prto.c
@@ -21,7 +21,7 @@ int update_PRTO(UPDATE_FUNC_ARGS) {
r = pmap[y+ry][x+rx];
if (!r)
fe = 1;
- if ((r>>8)>=NPART || r)
+ if (r)
continue;
if (!r)
{
diff --git a/src/elements/pump.c b/src/elements/pump.c
index fa28b4c..2e11ae0 100644
--- a/src/elements/pump.c
+++ b/src/elements/pump.c
@@ -26,7 +26,7 @@ int update_PUMP(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_PUMP)
{
diff --git a/src/elements/pyro.c b/src/elements/pyro.c
index bd6ab26..465d075 100644
--- a/src/elements/pyro.c
+++ b/src/elements/pyro.c
@@ -28,7 +28,7 @@ int update_PYRO(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (bmap[(y+ry)/CELL][(x+rx)/CELL] && bmap[(y+ry)/CELL][(x+rx)/CELL]!=WL_STREAM)
continue;
@@ -58,7 +58,7 @@ int update_legacy_PYRO(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (bmap[(y+ry)/CELL][(x+rx)/CELL] && bmap[(y+ry)/CELL][(x+rx)/CELL]!=WL_STREAM)
continue;
diff --git a/src/elements/qrtz.c b/src/elements/qrtz.c
index cf22925..c8017b0 100644
--- a/src/elements/qrtz.c
+++ b/src/elements/qrtz.c
@@ -19,7 +19,7 @@ int update_QRTZ(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
else if ((r&0xFF)==PT_SLTW && (1>rand()%2500))
{
@@ -37,7 +37,7 @@ int update_QRTZ(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)<NPART && !r && parts[i].ctype!=0)
+ if (!r && parts[i].ctype!=0)
{
np = create_part(-1,x+rx,y+ry,PT_QRTZ);
if (np>-1)
@@ -69,7 +69,7 @@ int update_QRTZ(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==t && (parts[i].ctype>parts[r>>8].ctype) && parts[r>>8].ctype>=0 )//diffusion
{
diff --git a/src/elements/rime.c b/src/elements/rime.c
index e0337e5..1c994b8 100644
--- a/src/elements/rime.c
+++ b/src/elements/rime.c
@@ -9,7 +9,7 @@ int update_RIME(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_SPRK)
{
diff --git a/src/elements/shld.c b/src/elements/shld.c
index 81b9f1b..ece353c 100644
--- a/src/elements/shld.c
+++ b/src/elements/shld.c
@@ -7,7 +7,7 @@ int update_SHLD1(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
else if ((r&0xFF)==PT_SPRK&&parts[i].life==0)
{
@@ -42,8 +42,6 @@ int update_SHLD2(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART)
- continue;
if (!r && parts[i].life>0)
create_part(-1,x+rx,y+ry,PT_SHLD1);
if (!r)
@@ -82,8 +80,6 @@ int update_SHLD3(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART)
- continue;
if (!r)
{
if (1>rand()%2500)
@@ -132,8 +128,6 @@ int update_SHLD4(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART)
- continue;
if (!r)
{
if (1>rand()%5500)
diff --git a/src/elements/sing.c b/src/elements/sing.c
index f75b5b0..1f463bf 100644
--- a/src/elements/sing.c
+++ b/src/elements/sing.c
@@ -64,7 +64,7 @@ int update_SING(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)!=PT_DMND&&33>=rand()/(RAND_MAX/100)+1)
{
diff --git a/src/elements/sltw.c b/src/elements/sltw.c
index ed62e40..619cdaf 100644
--- a/src/elements/sltw.c
+++ b/src/elements/sltw.c
@@ -7,7 +7,7 @@ int update_SLTW(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_SALT && 1>(rand()%10000))
kill_part(r>>8);
diff --git a/src/elements/soap.c b/src/elements/soap.c
index e130e35..6cf25cd 100644
--- a/src/elements/soap.c
+++ b/src/elements/soap.c
@@ -56,7 +56,7 @@ int update_SOAP(UPDATE_FUNC_ARGS)
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((parts[r>>8].type == PT_SOAP) && ((parts[r>>8].ctype&1) == 1)
@@ -92,7 +92,7 @@ int update_SOAP(UPDATE_FUNC_ARGS)
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if (((r>>8)>=NPART || !r) && !bmap[(y+ry)/CELL][(x+rx)/CELL])
+ if (!r && !bmap[(y+ry)/CELL][(x+rx)/CELL])
continue;
if (parts[i].temp>0)
@@ -181,7 +181,7 @@ int update_SOAP(UPDATE_FUNC_ARGS)
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF) == PT_OIL)
diff --git a/src/elements/spng.c b/src/elements/spng.c
index 5ace1d6..eba3f69 100644
--- a/src/elements/spng.c
+++ b/src/elements/spng.c
@@ -9,7 +9,7 @@ int update_SPNG(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r || parts[i].temp>374.0f)
+ if (!r)
continue;
if ((r&0xFF)==PT_WATR&&33>=rand()/(RAND_MAX/100)+1)
{
@@ -24,8 +24,6 @@ int update_SPNG(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART)
- continue;
if ((bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_WALLELEC||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_EWALL||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_DESTROYALL||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_WALL||
bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWAIR||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWSOLID||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWGAS))
continue;
@@ -42,7 +40,7 @@ int update_SPNG(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_SPNG&&(parts[i].life>parts[r>>8].life)&&parts[i].life>0)//diffusion
{
@@ -70,7 +68,7 @@ int update_SPNG(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_FIRE)
{
@@ -92,8 +90,6 @@ int update_SPNG(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART)
- continue;
if ((bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_WALLELEC||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWLIQUID||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_DESTROYALL||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_WALL||bmap[(y+ry)/CELL][(x+rx)/CELL]==WL_ALLOWSOLID))
continue;
if ((!r)&&parts[i].life>=1)//if nothing then create steam
diff --git a/src/elements/sprk.c b/src/elements/sprk.c
index 0f3d8e9..bae66e8 100644
--- a/src/elements/sprk.c
+++ b/src/elements/sprk.c
@@ -58,7 +58,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF) == PT_DSTW && 30>(rand()/(RAND_MAX/1000))) ||
((r&0xFF) == PT_SLTW && 30>(rand()/(RAND_MAX/1000))) ||
@@ -76,7 +76,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
rt = parts[r>>8].type;
conduct_sprk = 1;
diff --git a/src/elements/stkm.c b/src/elements/stkm.c
index 6873ef5..41d2871 100644
--- a/src/elements/stkm.c
+++ b/src/elements/stkm.c
@@ -188,10 +188,10 @@ int run_stickman(float* playerp, UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if (!r || (r>>8)>=NPART)
+ if (!r)
r = photons[y+ry][x+rx];
- if ((!r || (r>>8)>=NPART) && !bmap[(y+ry)/CELL][(x+rx)/CELL])
+ if (!r && !bmap[(y+ry)/CELL][(x+rx)/CELL])
continue;
if (ptypes[r&0xFF].falldown!=0 || (r&0xFF) == PT_NEUT || (r&0xFF) == PT_PHOT)
@@ -230,8 +230,6 @@ int run_stickman(float* playerp, UPDATE_FUNC_ARGS) {
{
ry -= 2*(rand()%2)+1;
r = pmap[ry][rx];
- if (!((r>>8)>=NPART))
- {
if (ptypes[r&0xFF].state == ST_SOLID)
{
create_part(-1, rx, ry, PT_SPRK);
@@ -267,7 +265,6 @@ int run_stickman(float* playerp, UPDATE_FUNC_ARGS) {
}
}
- }
}
//Simulation of joints
@@ -371,9 +368,9 @@ void STKM_interact(float* playerp, int i, int x, int y)
if (x<0 || y<0 || x>=XRES || y>=YRES || !parts[i].type)
return;
r = pmap[y][x];
- if (r && (r>>8)<NPART)
+ if (r)
{
- if ((r&0xFF)==PT_SPRK && r && (r>>8)<NPART) //If on charge
+ if ((r&0xFF)==PT_SPRK) //If on charge
{
parts[i].life -= (int)(rand()*20/RAND_MAX)+32;
}
diff --git a/src/elements/swch.c b/src/elements/swch.c
index 5642419..b88983b 100644
--- a/src/elements/swch.c
+++ b/src/elements/swch.c
@@ -9,7 +9,7 @@ int update_SWCH(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (parts_avg(i,r>>8,PT_INSL)!=PT_INSL) {
rt = r&0xFF;
diff --git a/src/elements/thdr.c b/src/elements/thdr.c
index fb90d1d..5179e1f 100644
--- a/src/elements/thdr.c
+++ b/src/elements/thdr.c
@@ -7,7 +7,7 @@ int update_THDR(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((ptypes[r&0xFF].properties&PROP_CONDUCTS) && parts[r>>8].life==0 && !((r&0xFF)==PT_WATR||(r&0xFF)==PT_SLTW) && parts[r>>8].ctype!=PT_SPRK)
{
diff --git a/src/elements/thrm.c b/src/elements/thrm.c
index 838b466..c296a8a 100644
--- a/src/elements/thrm.c
+++ b/src/elements/thrm.c
@@ -7,7 +7,7 @@ int update_THRM(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_FIRE || (r&0xFF)==PT_PLSM || (r&0xFF)==PT_LAVA)) // TODO: could this go in update_PYRO?
{
diff --git a/src/elements/vine.c b/src/elements/vine.c
index 28b97d5..180d95c 100644
--- a/src/elements/vine.c
+++ b/src/elements/vine.c
@@ -5,8 +5,6 @@ int update_VINE(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART)
- return 0;
if (1>rand()%15)
part_change_type(i,x,y,PT_PLNT);
else if (!r)
diff --git a/src/elements/warp.c b/src/elements/warp.c
index 755433f..a3e49ec 100644
--- a/src/elements/warp.c
+++ b/src/elements/warp.c
@@ -9,7 +9,7 @@ int update_WARP(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)!=PT_WARP&&(r&0xFF)!=PT_STKM&&(r&0xFF)!=PT_STKM2&&(r&0xFF)!=PT_DMND&&(r&0xFF)!=PT_CLNE&&(r&0xFF)!=PT_BCLN&&(r&0xFF)!=PT_PCLN&&(10>=rand()%200))
{
diff --git a/src/elements/watr.c b/src/elements/watr.c
index 92c906d..ac8d8e3 100644
--- a/src/elements/watr.c
+++ b/src/elements/watr.c
@@ -7,7 +7,7 @@ int update_WATR(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_SALT && 1>(rand()%250))
{
diff --git a/src/elements/wifi.c b/src/elements/wifi.c
index a511e4b..3e87fef 100644
--- a/src/elements/wifi.c
+++ b/src/elements/wifi.c
@@ -10,7 +10,7 @@ int update_WIFI(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (wireless[parts[i].tmp][0])
{
diff --git a/src/elements/wire.c b/src/elements/wire.c
index f56e469..d4225a5 100644
--- a/src/elements/wire.c
+++ b/src/elements/wire.c
@@ -27,7 +27,7 @@ int update_WIRE(UPDATE_FUNC_ARGS) {
if(x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if((r&0xFF)==PT_SPRK && parts[r>>8].ctype==PT_PSCN){parts[i].ctype=1; parts[r>>8].life=0; return 0;}
else if((r&0xFF)==PT_NSCN && parts[i].tmp==1){create_part(-1, x+rx, y+ry, PT_SPRK);}
diff --git a/src/elements/wtrv.c b/src/elements/wtrv.c
index a4facde..2e8ca3a 100644
--- a/src/elements/wtrv.c
+++ b/src/elements/wtrv.c
@@ -7,7 +7,7 @@ int update_WTRV(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if (((r&0xFF)==PT_RBDM||(r&0xFF)==PT_LRBD) && !legacy_enable && parts[i].temp>(273.15f+12.0f) && 1>(rand()%500))
{
diff --git a/src/elements/yest.c b/src/elements/yest.c
index d3f64cd..3246de2 100644
--- a/src/elements/yest.c
+++ b/src/elements/yest.c
@@ -7,7 +7,7 @@ int update_YEST(UPDATE_FUNC_ARGS) {
if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
r = pmap[y+ry][x+rx];
- if ((r>>8)>=NPART || !r)
+ if (!r)
continue;
if ((r&0xFF)==PT_DYST && 1>(rand()%30) && !legacy_enable)
{