summaryrefslogtreecommitdiff
path: root/src/elements/firw.c
diff options
context:
space:
mode:
authorjacksonmj <jacksonmj@jacksonmj.none>2011-01-10 14:41:03 (GMT)
committer jacksonmj <jacksonmj@jacksonmj.none>2011-01-10 14:41:03 (GMT)
commit54f9f872b9e4d5a0086d6de104e84d43b125c349 (patch)
treeb567fb9d3710acbce22f8193bfe2585bb2988bed /src/elements/firw.c
parent855281295fbc23366e8b84d7c8e55816d6f47a87 (diff)
downloadpowder-54f9f872b9e4d5a0086d6de104e84d43b125c349.zip
powder-54f9f872b9e4d5a0086d6de104e84d43b125c349.tar.gz
Finish update function cleanup
Diffstat (limited to 'src/elements/firw.c')
-rw-r--r--src/elements/firw.c35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/elements/firw.c b/src/elements/firw.c
index 033e942..e8e1c4a 100644
--- a/src/elements/firw.c
+++ b/src/elements/firw.c
@@ -1,14 +1,13 @@
#include <powder.h>
int update_FIRW(UPDATE_FUNC_ARGS) {
- int r, rt;
+ int r, rx, ry, rt;
if (parts[i].tmp==0) {
- for (nx=-1; nx<2; nx++)
- for (ny=-1; ny<2; ny++)
- if (x+nx>=0 && y+ny>0 &&
- x+nx<XRES && y+ny<YRES && (nx || ny))
+ 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 && (rx || ry))
{
- r = pmap[y+ny][x+nx];
+ r = pmap[y+ry][x+rx];
if ((r>>8)>=NPART || !r)
continue;
rt = parts[r>>8].type;
@@ -25,26 +24,28 @@ int update_FIRW(UPDATE_FUNC_ARGS) {
} else {
float newVel = parts[i].life/25;
parts[i].flags = parts[i].flags&0xFFFFFFFE;
+ /* TODO:
if ((pmap[(int)(ly-newVel)][(int)lx]&0xFF)==PT_NONE && ly-newVel>0) {
parts[i].vy = -newVel;
- // TODO
- //ly-=newVel;
- //iy-=newVel;
- }
+ ly-=newVel;
+ iy-=newVel;
+ }*/
+ parts[i].vy = -newVel;
}
}
else if (parts[i].tmp==2) {
int col = rand()%200+4;
- for (nx=-2; nx<3; nx++) {
- for (ny=-2; ny<3; ny++) {
- if (x+nx>=0 && y+ny>0 && x+nx<XRES && y+ny<YRES && (nx || ny))
+ for (rx=-2; rx<3; rx++)
+ for (ry=-2; ry<3; ry++)
+ if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry))
{
+ r = pmap[y+ry][x+rx];
int tmul = rand()%7;
- create_part(-1, x+nx, y+ny, PT_FIRW);
- r = pmap[y+ny][x+nx];
+ create_part(-1, x+rx, y+ry, PT_FIRW);
+ r = pmap[y+ry][x+rx];
if ((r>>8)>=NPART || !r)
continue;
- if (parts[r>>8].type==PT_FIRW) {
+ if ((r&0xFF)==PT_FIRW) {
parts[r>>8].vx = (rand()%3-1)*tmul;
parts[r>>8].vy = (rand()%3-1)*tmul;
parts[r>>8].tmp = col;
@@ -52,8 +53,6 @@ int update_FIRW(UPDATE_FUNC_ARGS) {
parts[r>>8].temp = 6000.0f;
}
}
- }
- }
pv[y/CELL][x/CELL] += 20;
kill_part(i);
return 1;