diff options
| author | jacksonmj <jacksonmj@jacksonmj.none> | 2011-01-09 19:23:05 (GMT) |
|---|---|---|
| committer | jacksonmj <jacksonmj@jacksonmj.none> | 2011-01-09 19:23:05 (GMT) |
| commit | 144e4bdb6991a042f9b985a9719299f612420dd0 (patch) | |
| tree | 3da5132fc731dea1334048c707f4c074e390a86c /src/elements/warp.c | |
| parent | 56a3ad373c126da22be05e4c5b64a446c7d7dff0 (diff) | |
| download | powder-144e4bdb6991a042f9b985a9719299f612420dd0.zip powder-144e4bdb6991a042f9b985a9719299f612420dd0.tar.gz | |
Begin cleanup of update functions
Diffstat (limited to 'src/elements/warp.c')
| -rw-r--r-- | src/elements/warp.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/elements/warp.c b/src/elements/warp.c index 92881ed..d0fe62c 100644 --- a/src/elements/warp.c +++ b/src/elements/warp.c @@ -1,23 +1,25 @@ #include <powder.h> int update_WARP(UPDATE_FUNC_ARGS) { - int trade, r; + int trade, r, rx, ry; for ( trade = 0; trade<5; trade ++) { - nx = rand()%3-1; - ny = rand()%3-1; - if (x+nx>=0 && y+ny>0 && x+nx<XRES && y+ny<YRES && (nx || ny)) + rx = rand()%3-1; + ry = rand()%3-1; + 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; - if (parts[r>>8].type!=PT_WARP&&parts[r>>8].type!=PT_STKM&&parts[r>>8].type!=PT_DMND&&parts[r>>8].type!=PT_CLNE&&parts[r>>8].type!=PT_BCLN&&parts[r>>8].type!=PT_PCLN&&(10>=rand()%200)) + 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)) { parts[i].x = parts[r>>8].x; parts[i].y = parts[r>>8].y; parts[r>>8].x = x; parts[r>>8].y = y; parts[i].life += 4; + pmap[y][x] = r; + pmap[y+ry][x+rx] = (i<<8)|parts[i].type; trade = 5; } } |
