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/vine.c | |
| parent | 56a3ad373c126da22be05e4c5b64a446c7d7dff0 (diff) | |
| download | powder-144e4bdb6991a042f9b985a9719299f612420dd0.zip powder-144e4bdb6991a042f9b985a9719299f612420dd0.tar.gz | |
Begin cleanup of update functions
Diffstat (limited to 'src/elements/vine.c')
| -rw-r--r-- | src/elements/vine.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/elements/vine.c b/src/elements/vine.c index 3932263..a5d932a 100644 --- a/src/elements/vine.c +++ b/src/elements/vine.c @@ -1,22 +1,20 @@ #include <powder.h> int update_VINE(UPDATE_FUNC_ARGS) { - int r; - nx=(rand()%3)-1; - ny=(rand()%3)-1; - if (x+nx>=0 && y+ny>0 && - x+nx<XRES && y+ny<YRES && (nx || ny)) + int r, np, 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) - return 1; + return 0; if (1>rand()%15) - parts[i].type=PT_PLNT; + part_change_type(i,x,y,PT_PLNT); else if (!r) { - create_part(-1,x+nx,y+ny,PT_VINE); - parts[pmap[y+ny][x+nx]>>8].temp = parts[i].temp; - parts[i].type=PT_PLNT; + np = create_part(-1,x+rx,y+ry,PT_VINE); + if (np<0) return 0; + parts[np].temp = parts[i].temp; + part_change_type(i,x,y,PT_PLNT); } } return 0; |
