diff options
| author | jacksonmj <jacksonmj@jacksonmj.none> | 2011-02-01 16:03:09 (GMT) |
|---|---|---|
| committer | jacksonmj <jacksonmj@jacksonmj.none> | 2011-02-01 16:06:48 (GMT) |
| commit | 77bcac1a5628aecdf8e4c1968106e3bed86890ab (patch) | |
| tree | 6e55d756941374d89a1c87cf8193dfdf7a312629 /src | |
| parent | c78d4203eecb9cd90cf6dafc5aa61e6aa0adf09d (diff) | |
| download | powder-77bcac1a5628aecdf8e4c1968106e3bed86890ab.zip powder-77bcac1a5628aecdf8e4c1968106e3bed86890ab.tar.gz | |
Small fixes
Fix nearest_part distance calculation
Rename air constants to avoid PLOSS clash with math.h
Prevent crashes due to bad lava ctype.
Diffstat (limited to 'src')
| -rw-r--r-- | src/air.c | 32 | ||||
| -rw-r--r-- | src/powder.c | 6 |
2 files changed, 19 insertions, 19 deletions
@@ -86,8 +86,8 @@ void update_air(void) dp = 0.0f; dp += vx[y][x-1] - vx[y][x]; dp += vy[y-1][x] - vy[y][x]; - pv[y][x] *= PLOSS; - pv[y][x] += dp*TSTEPP; + pv[y][x] *= AIR_PLOSS; + pv[y][x] += dp*AIR_TSTEPP; } for (y=0; y<YRES/CELL-1; y++) @@ -96,10 +96,10 @@ void update_air(void) dx = dy = 0.0f; dx += pv[y][x] - pv[y][x+1]; dy += pv[y][x] - pv[y+1][x]; - vx[y][x] *= VLOSS; - vy[y][x] *= VLOSS; - vx[y][x] += dx*TSTEPV; - vy[y][x] += dy*TSTEPV; + vx[y][x] *= AIR_VLOSS; + vy[y][x] *= AIR_VLOSS; + vx[y][x] += dx*AIR_TSTEPV; + vy[y][x] += dy*AIR_TSTEPV; if (bmap[y][x]==WL_WALL || bmap[y][x+1]==WL_WALL || bmap[y][x]==WL_WALLELEC || bmap[y][x+1]==WL_WALLELEC || (bmap[y][x]==WL_EWALL && !emap[y][x]) || @@ -148,20 +148,20 @@ void update_air(void) if (i>=2 && i<XRES/CELL-3 && j>=2 && j<YRES/CELL-3) { - dx *= 1.0f - VADV; - dy *= 1.0f - VADV; + dx *= 1.0f - AIR_VADV; + dy *= 1.0f - AIR_VADV; - dx += VADV*(1.0f-tx)*(1.0f-ty)*vx[j][i]; - dy += VADV*(1.0f-tx)*(1.0f-ty)*vy[j][i]; + dx += AIR_VADV*(1.0f-tx)*(1.0f-ty)*vx[j][i]; + dy += AIR_VADV*(1.0f-tx)*(1.0f-ty)*vy[j][i]; - dx += VADV*tx*(1.0f-ty)*vx[j][i+1]; - dy += VADV*tx*(1.0f-ty)*vy[j][i+1]; + dx += AIR_VADV*tx*(1.0f-ty)*vx[j][i+1]; + dy += AIR_VADV*tx*(1.0f-ty)*vy[j][i+1]; - dx += VADV*(1.0f-tx)*ty*vx[j+1][i]; - dy += VADV*(1.0f-tx)*ty*vy[j+1][i]; + dx += AIR_VADV*(1.0f-tx)*ty*vx[j+1][i]; + dy += AIR_VADV*(1.0f-tx)*ty*vy[j+1][i]; - dx += VADV*tx*ty*vx[j+1][i+1]; - dy += VADV*tx*ty*vy[j+1][i+1]; + dx += AIR_VADV*tx*ty*vx[j+1][i+1]; + dy += AIR_VADV*tx*ty*vy[j+1][i+1]; } if (bmap[y][x] == WL_FAN) diff --git a/src/powder.c b/src/powder.c index 493dec7..f8a5d3d 100644 --- a/src/powder.c +++ b/src/powder.c @@ -1113,7 +1113,7 @@ int nearest_part(int ci, int t) { if (parts[i].type==t&&!parts[i].life&&i!=ci) { - ndistance = abs((cx-parts[i].x)+(cy-parts[i].y));// Faster but less accurate Older: sqrt(pow(cx-parts[i].x, 2)+pow(cy-parts[i].y, 2)); + 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) { distance = ndistance; @@ -1290,9 +1290,9 @@ void update_particles_i(pixel *vid, int start, int inc) } if (ISGOL==1&&++CGOL>=GSPEED)//GSPEED is frames per generation { + int createdsomething = 0; CGOL=0; ISGOL=0; - int createdsomething = 0; for (nx=CELL; nx<XRES-CELL; nx++) for (ny=CELL; ny<YRES-CELL; ny++) { @@ -1553,7 +1553,7 @@ void update_particles_i(pixel *vid, int start, int inc) else t = PT_DSTW; } else if (t==PT_LAVA) { - if (parts[i].ctype&&parts[i].ctype!=PT_LAVA) { + if (parts[i].ctype && parts[i].ctype<PT_NUM && parts[i].ctype!=PT_LAVA) { if (ptransitions[parts[i].ctype].tht==PT_LAVA&&pt>=ptransitions[parts[i].ctype].thv) s = 0; else if (parts[i].ctype==PT_THRM&&pt>=ptransitions[PT_BMTL].thv) s = 0; else if (pt>=973.0f) s = 0; // freezing point for lava with any other (not listed in ptransitions as turning into lava) ctype |
