summaryrefslogtreecommitdiff
path: root/src/elements
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2011-06-24 21:55:59 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-06-25 14:59:30 (GMT)
commit34d76f86803138699b46f7e6252c11985ef481cf (patch)
tree99c962bea2e407f70a20b1d69f1c453f2abfc04c /src/elements
parentc18009dd9c87343178e808565d815b454bd2b585 (diff)
downloadpowder-34d76f86803138699b46f7e6252c11985ef481cf.zip
powder-34d76f86803138699b46f7e6252c11985ef481cf.tar.gz
Check photon map in Lua functions, and allow any ctype
Also add some extra checks on ctype in the rest of the game
Diffstat (limited to 'src/elements')
-rw-r--r--src/elements/aray.c2
-rw-r--r--src/elements/bcln.c2
-rw-r--r--src/elements/clne.c2
-rw-r--r--src/elements/pcln.c4
-rw-r--r--src/elements/sprk.c2
5 files changed, 6 insertions, 6 deletions
diff --git a/src/elements/aray.c b/src/elements/aray.c
index 4f94f00..94729f4 100644
--- a/src/elements/aray.c
+++ b/src/elements/aray.c
@@ -49,7 +49,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[parts[r>>8].ctype].properties&PROP_CONDUCTS))) {
+ 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
docontinue = 0;
} else {
docontinue = 1;
diff --git a/src/elements/bcln.c b/src/elements/bcln.c
index aaf4afc..5d95d97 100644
--- a/src/elements/bcln.c
+++ b/src/elements/bcln.c
@@ -9,7 +9,7 @@ int update_BCLN(UPDATE_FUNC_ARGS) {
parts[i].vx += advection*vx[y/CELL][x/CELL];
parts[i].vy += advection*vy[y/CELL][x/CELL];
}
- if (!parts[i].ctype)
+ if (parts[i].ctype<=0 || parts[i].ctype>=PT_NUM)
{
int r, rx, ry;
for (rx=-1; rx<2; rx++)
diff --git a/src/elements/clne.c b/src/elements/clne.c
index 295974a..adc9a18 100644
--- a/src/elements/clne.c
+++ b/src/elements/clne.c
@@ -1,7 +1,7 @@
#include <element.h>
int update_CLNE(UPDATE_FUNC_ARGS) {
- if (!parts[i].ctype)
+ if (parts[i].ctype<=0 || parts[i].ctype>=PT_NUM)
{
int r, rx, ry;
for (rx=-1; rx<2; rx++)
diff --git a/src/elements/pcln.c b/src/elements/pcln.c
index 8afa656..3ba431c 100644
--- a/src/elements/pcln.c
+++ b/src/elements/pcln.c
@@ -26,7 +26,7 @@ int update_PCLN(UPDATE_FUNC_ARGS) {
parts[i].life = 10;
}
}
- if (!parts[i].ctype)
+ if (parts[i].ctype<=0 || parts[i].ctype>=PT_NUM)
for (rx=-1; rx<2; rx++)
for (ry=-1; ry<2; ry++)
if (x+rx>=0 && y+ry>=0 && x+rx<XRES && y+ry<YRES)
@@ -43,7 +43,7 @@ int update_PCLN(UPDATE_FUNC_ARGS) {
(r&0xFF)<PT_NUM)
parts[i].ctype = r&0xFF;
}
- if (parts[i].ctype && parts[i].life==10) {
+ if (parts[i].ctype>0 && parts[i].ctype<PT_NUM && parts[i].life==10) {
if (parts[i].ctype==PT_PHOT) {//create photons a different way
for (rx=-1; rx<2; rx++) {
for (ry=-1; ry<2; ry++) {
diff --git a/src/elements/sprk.c b/src/elements/sprk.c
index 004d6e8..0d579f5 100644
--- a/src/elements/sprk.c
+++ b/src/elements/sprk.c
@@ -8,7 +8,7 @@ int update_SPRK(UPDATE_FUNC_ARGS) {
{
if (ct==PT_WATR||ct==PT_SLTW||ct==PT_PSCN||ct==PT_NSCN||ct==PT_ETRD||ct==PT_INWR)
parts[i].temp = R_TEMP + 273.15f;
- if (!ct)
+ if (ct<=0 || ct>=PT_NUM)
ct = PT_METL;
part_change_type(i,x,y,ct);
parts[i].ctype = PT_NONE;