summaryrefslogtreecommitdiff
path: root/src/elements
diff options
context:
space:
mode:
authorjacksonmj <mj-pt@jacksonmj.co.uk>2012-06-09 10:08:11 (GMT)
committer jacksonmj <mj-pt@jacksonmj.co.uk>2012-06-09 10:08:11 (GMT)
commit8b20bfd764308fddc1280b8a9d030e77503d0b0c (patch)
treefe5c3a7799972b43188085fc9420ab98f4709e9c /src/elements
parent6603baa538673f073fd5ecfd383ab294e75409ba (diff)
downloadpowder-8b20bfd764308fddc1280b8a9d030e77503d0b0c.zip
powder-8b20bfd764308fddc1280b8a9d030e77503d0b0c.tar.gz
Make THDR TYPE_ENERGY again, so it goes in photon map
Will simplify checking for excessive stacking
Diffstat (limited to 'src/elements')
-rw-r--r--src/elements/firw.c2
-rw-r--r--src/elements/ligh.c4
-rw-r--r--src/elements/neut.c4
-rw-r--r--src/elements/thdr.c2
4 files changed, 7 insertions, 5 deletions
diff --git a/src/elements/firw.c b/src/elements/firw.c
index 5bb8f3d..52a783f 100644
--- a/src/elements/firw.c
+++ b/src/elements/firw.c
@@ -24,6 +24,8 @@ int update_FIRW(UPDATE_FUNC_ARGS) {
{
r = pmap[y+ry][x+rx];
if (!r)
+ r = photons[y+ry][x+rx];
+ if (!r)
continue;
rt = parts[r>>8].type;
if (rt==PT_FIRE||rt==PT_PLSM||rt==PT_THDR)
diff --git a/src/elements/ligh.c b/src/elements/ligh.c
index 146ba1f..61bf8f7 100644
--- a/src/elements/ligh.c
+++ b/src/elements/ligh.c
@@ -27,7 +27,7 @@ int LIGH_nearest_part(int ci, int max_d)
int cy = (int)parts[ci].y;
for (i=0; i<=parts_lastActiveIndex; i++)
{
- if (parts[i].type && !parts[i].life && i!=ci && parts[i].type!=PT_LIGH && parts[i].type!=PT_THDR && parts[i].type!=PT_NEUT && parts[i].type!=PT_PHOT)
+ if (parts[i].type && i!=ci && parts[i].type!=PT_LIGH && !(ptypes[parts[i].type].properties&TYPE_ENERGY))
{
ndistance = abs(cx-parts[i].x)+abs(cy-parts[i].y);// Faster but less accurate Older: sqrt(pow(cx-parts[i].x, 2)+pow(cy-parts[i].y, 2));
if (ndistance<distance)
@@ -151,7 +151,7 @@ int update_LIGH(UPDATE_FUNC_ARGS)
continue;
if ((r&0xFF)!=PT_LIGH && (r&0xFF)!=PT_TESC)
{
- if ((r&0xFF)!=PT_CLNE&&(r&0xFF)!=PT_THDR&&(r&0xFF)!=PT_DMND&&(r&0xFF)!=PT_FIRE&&(r&0xFF)!=PT_NEUT&&(r&0xFF)!=PT_PHOT)
+ if ((r&0xFF)!=PT_CLNE&&(r&0xFF)!=PT_DMND&&(r&0xFF)!=PT_FIRE && !(ptypes[r&0xFF].properties&TYPE_ENERGY))
{
if ((ptypes[r&0xFF].properties&PROP_CONDUCTS) && parts[r>>8].life==0)
{
diff --git a/src/elements/neut.c b/src/elements/neut.c
index e3593f5..bbaa3bd 100644
--- a/src/elements/neut.c
+++ b/src/elements/neut.c
@@ -51,9 +51,9 @@ int create_n_parts(int n, int x, int y, float vx, float vy, float temp, int t)//
parts[i].ctype = 0;
parts[i].temp = temp;
parts[i].tmp = 0;
- if (t!=PT_STKM&&t!=PT_STKM2 && t!=PT_PHOT && t!=PT_NEUT && !pmap[y][x])
+ if (t!=PT_STKM&&t!=PT_STKM2 && !(ptypes[t].properties&TYPE_ENERGY) && !pmap[y][x])
pmap[y][x] = t|(i<<8);
- else if ((t==PT_PHOT||t==PT_NEUT) && !photons[y][x])
+ else if ((ptypes[t].properties&TYPE_ENERGY) && !photons[y][x])
photons[y][x] = t|(i<<8);
pv[y/CELL][x/CELL] += 6.0f * CFDS;
diff --git a/src/elements/thdr.c b/src/elements/thdr.c
index f1aafa3..d400ecb 100644
--- a/src/elements/thdr.c
+++ b/src/elements/thdr.c
@@ -31,7 +31,7 @@ int update_THDR(UPDATE_FUNC_ARGS) {
part_change_type(r>>8,x+rx,y+ry,PT_SPRK);
parts[r>>8].life = 4;
}
- else if ((r&0xFF)!=PT_CLNE&&(r&0xFF)!=PT_THDR&&(r&0xFF)!=PT_SPRK&&(r&0xFF)!=PT_DMND&&(r&0xFF)!=PT_FIRE&&(r&0xFF)!=PT_NEUT&&(r&0xFF)!=PT_PHOT&&(r&0xFF))
+ else if ((r&0xFF)!=PT_CLNE&&(r&0xFF)!=PT_SPRK&&(r&0xFF)!=PT_DMND&&(r&0xFF)!=PT_FIRE&&!(ptypes[r&0xFF].properties&TYPE_ENERGY)&&(r&0xFF))
{
pv[y/CELL][x/CELL] += 100.0f;
if (legacy_enable&&1>(rand()%200))