diff options
| author | Philip <philip@philip-linuxlaptop.(none)> | 2010-11-20 03:03:52 (GMT) |
|---|---|---|
| committer | Philip <philip@philip-linuxlaptop.(none)> | 2010-11-20 03:03:52 (GMT) |
| commit | a38dddaf5a2106ffb3d112584f657a6c3d97c4fb (patch) | |
| tree | 5bb5260a5cc00e14ec257f8b07ed6230623fcaf6 /src | |
| parent | c1182db42d609a181128b818da28d323c39445fc (diff) | |
| download | powder-a38dddaf5a2106ffb3d112584f657a6c3d97c4fb.zip powder-a38dddaf5a2106ffb3d112584f657a6c3d97c4fb.tar.gz | |
Made wall code use #defines. small fix for adjustabl brush.
Diffstat (limited to 'src')
| -rw-r--r-- | src/air.c | 24 | ||||
| -rw-r--r-- | src/graphics.c | 2 | ||||
| -rw-r--r-- | src/interface.c | 8 | ||||
| -rw-r--r-- | src/main.c | 12 | ||||
| -rw-r--r-- | src/powder.c | 249 |
5 files changed, 120 insertions, 175 deletions
@@ -54,15 +54,15 @@ void update_air(void) vy[y][x] *= VLOSS; vx[y][x] += dx*TSTEPV; vy[y][x] += dy*TSTEPV; - if(bmap[y][x]==1 || bmap[y][x+1]==1 || - bmap[y][x]==8 || bmap[y][x+1]==8 || - (bmap[y][x]==7 && !emap[y][x]) || - (bmap[y][x+1]==7 && !emap[y][x+1])) + 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]) || + (bmap[y][x+1]==WL_EWALL && !emap[y][x+1])) vx[y][x] = 0; - if(bmap[y][x]==1 || bmap[y+1][x]==1 || - bmap[y][x]==8 || bmap[y+1][x]==8 || - (bmap[y][x]==7 && !emap[y][x]) || - (bmap[y+1][x]==7 && !emap[y+1][x])) + if(bmap[y][x]==WL_WALL || bmap[y+1][x]==WL_WALL || + bmap[y][x]==WL_WALLELEC || bmap[y+1][x]==WL_WALLELEC || + (bmap[y][x]==WL_EWALL && !emap[y][x]) || + (bmap[y+1][x]==WL_EWALL && !emap[y+1][x])) vy[y][x] = 0; } @@ -76,9 +76,9 @@ void update_air(void) for(i=-1; i<2; i++) if(y+j>0 && y+j<YRES/CELL-1 && x+i>0 && x+i<XRES/CELL-1 && - bmap[y+j][x+i]!=1 && - bmap[y+j][x+i]!=8 && - (bmap[y+j][x+i]!=7 || emap[y+j][x+i])) + bmap[y+j][x+i]!=WL_WALL && + bmap[y+j][x+i]!=WL_WALLELEC && + (bmap[y+j][x+i]!=WL_EWALL || emap[y+j][x+i])) { f = kernel[i+1+(j+1)*3]; dx += vx[y+j][x+i]*f; @@ -118,7 +118,7 @@ void update_air(void) dy += VADV*tx*ty*vy[j+1][i+1]; } - if(bmap[y][x] == 4) + if(bmap[y][x] == WL_FAN) { dx += fvx[y][x]; dy += fvy[y][x]; diff --git a/src/graphics.c b/src/graphics.c index 99e691e..b7808d9 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -2864,7 +2864,7 @@ void render_cursor(pixel *vid, int x, int y, int t, float rx, float ry) else if(CURRENT_BRUSH==CIRCLE_BRUSH) for(j=0; j<=ry; j++) for(i=0; i<=rx; i++) - if((i*i)/(rx*rx)+(j*j)/(ry*rx)<=1 && (((i+1)*(i+1))/(rx*rx)+(j*j)/(ry*rx)>1 || ((i*i)/(rx*rx)+((j+1)*(j+1))/(ry*ry)>1))) + if((i*i)/(rx*rx)+(j*j)/(ry*ry)<=1 && (((i+1)*(i+1))/(rx*rx)+(j*j)/(ry*ry)>1 || ((i*i)/(rx*rx)+((j+1)*(j+1))/(ry*ry)>1))) { xor_pixel(x+i, y+j, vid); if(j) xor_pixel(x+i, y-j, vid); diff --git a/src/interface.c b/src/interface.c index 0ea1bc7..6df2ae5 100644 --- a/src/interface.c +++ b/src/interface.c @@ -1491,7 +1491,7 @@ void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int b, int bq, int mx, sy = y; if(i==SC_WALL) { - for(n = 122; n<122+UI_WALLCOUNT; n++) + for(n = UI_WALLSTART; n<UI_WALLSTART+UI_WALLCOUNT; n++) { if(n!=SPC_AIR&&n!=SPC_HEAT&&n!=SPC_COOL&&n!=SPC_VACUUM) { @@ -1500,7 +1500,7 @@ void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int b, int bq, int mx, x = XRES-BARSIZE-26; y += 19; } - x -= draw_tool_xy(vid_buf, x, y, n, mwalls[n-122].colour)+5; + x -= draw_tool_xy(vid_buf, x, y, n, mwalls[n-UI_WALLSTART].colour)+5; if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) { drawrect(vid_buf, x+30, y-1, 29, 17, 255, 0, 0, 255); @@ -1528,7 +1528,7 @@ void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int b, int bq, int mx, } else if(i==SC_SPECIAL) { - for(n = 122; n<122+UI_WALLCOUNT; n++) + for(n = UI_WALLSTART; n<UI_WALLSTART+UI_WALLCOUNT; n++) { if(n==SPC_AIR||n==SPC_HEAT||n==SPC_COOL||n==SPC_VACUUM) { @@ -1537,7 +1537,7 @@ void menu_ui_v3(pixel *vid_buf, int i, int *sl, int *sr, int b, int bq, int mx, x = XRES-BARSIZE-26; y += 19; } - x -= draw_tool_xy(vid_buf, x, y, n, mwalls[n-122].colour)+5; + x -= draw_tool_xy(vid_buf, x, y, n, mwalls[n-UI_WALLSTART].colour)+5; if(!bq && mx>=x+32 && mx<x+58 && my>=y && my< y+15) { drawrect(vid_buf, x+30, y-1, 29, 17, 255, 0, 0, 255); @@ -250,7 +250,7 @@ void *build_save(int *size, int x0, int y0, int w, int h) d[p++] = bmap[y][x]; for(y=by0; y<by0+bh; y++) for(x=bx0; x<bx0+bw; x++) - if(bmap[y][x]==4) + if(bmap[y][x]==WL_FAN) { i = (int)(fvx[y][x]*64.0f+127.5f); if(i<0) i=0; @@ -259,7 +259,7 @@ void *build_save(int *size, int x0, int y0, int w, int h) } for(y=by0; y<by0+bh; y++) for(x=bx0; x<bx0+bw; x++) - if(bmap[y][x]==4) + if(bmap[y][x]==WL_FAN) { i = (int)(fvy[y][x]*64.0f+127.5f); if(i<0) i=0; @@ -1108,7 +1108,7 @@ int main(int argc, char *argv[]) { for(i=1; i<XRES/CELL; i++) { - if(bmap[j][i]==1 || bmap[j][i]==8 || (bmap[j][i]==7 && !emap[j][i])) + if(bmap[j][i]==WL_WALL || bmap[j][i]==WL_WALLELEC || (bmap[j][i]==WL_EWALL && !emap[j][i])) { vx[j][i] = 0.0f; vx[j][i-1] = 0.0f; @@ -1874,7 +1874,7 @@ int main(int argc, char *argv[]) if(lm == 1) { xor_line(lx, ly, x, y, vid_buf); - if(c==127 && lx>=0 && ly>=0 && lx<XRES && ly<YRES && bmap[ly/CELL][lx/CELL]==4) + if(c==127 && lx>=0 && ly>=0 && lx<XRES && ly<YRES && bmap[ly/CELL][lx/CELL]==WL_FAN) { nfvx = (x-lx)*0.005f; nfvy = (y-ly)*0.005f; @@ -1885,7 +1885,7 @@ int main(int argc, char *argv[]) { fvx[j][i] = nfvx; fvy[j][i] = nfvy; - bmap[j][i] = 4; + bmap[j][i] = WL_FAN; } } } @@ -1991,7 +1991,7 @@ int main(int argc, char *argv[]) su = c; if(lm == 1) { - if(c!=127 || lx<0 || ly<0 || lx>=XRES || ly>=YRES || bmap[ly/CELL][lx/CELL]!=4) + if(c!=127 || lx<0 || ly<0 || lx>=XRES || ly>=YRES || bmap[ly/CELL][lx/CELL]!=WL_FAN) create_line(lx, ly, x, y, bsx, bsy, c); } else diff --git a/src/powder.c b/src/powder.c index 52a7a2a..7645b5a 100644 --- a/src/powder.c +++ b/src/powder.c @@ -82,17 +82,17 @@ static int eval_move(int pt, int nx, int ny, unsigned *rr) if(pt==PT_STKM) //Stick man's head shouldn't collide return 2; - if(bmap[ny/CELL][nx/CELL]==13 && ptypes[pt].falldown!=0 && pt!=PT_FIRE && pt!=PT_SMKE) + if(bmap[ny/CELL][nx/CELL]==WL_ALLOWGAS && ptypes[pt].falldown!=0 && pt!=PT_FIRE && pt!=PT_SMKE) return 0; - if(ptypes[pt].falldown!=2 && bmap[ny/CELL][nx/CELL]==3) + if(ptypes[pt].falldown!=2 && bmap[ny/CELL][nx/CELL]==WL_ALLOWLIQUID) return 0; - if((pt==PT_NEUT ||pt==PT_PHOT) && bmap[ny/CELL][nx/CELL]==7 && !emap[ny/CELL][nx/CELL]) + if((pt==PT_NEUT ||pt==PT_PHOT) && bmap[ny/CELL][nx/CELL]==WL_EWALL && !emap[ny/CELL][nx/CELL]) return 0; - if(bmap[ny/CELL][nx/CELL]==9) + if(bmap[ny/CELL][nx/CELL]==WL_ALLOWAIR) return 0; - if(ptypes[pt].falldown!=1 && bmap[ny/CELL][nx/CELL]==10) + if(ptypes[pt].falldown!=1 && bmap[ny/CELL][nx/CELL]==WL_ALLOWSOLID) return 0; if(r && (r&0xFF) < PT_NUM){ @@ -183,12 +183,12 @@ int try_move(int i, int x, int y, int nx, int ny) if(parts[i].type==PT_CNCT && y<ny && (pmap[y+1][x]&0xFF)==PT_CNCT) return 0; - if(bmap[ny/CELL][nx/CELL]==12 && !emap[y/CELL][x/CELL]) + if(bmap[ny/CELL][nx/CELL]==WL_EHOLE && !emap[y/CELL][x/CELL]) return 1; - if((bmap[y/CELL][x/CELL]==12 && !emap[y/CELL][x/CELL]) && (bmap[ny/CELL][nx/CELL]!=12 && !emap[ny/CELL][nx/CELL])) + if((bmap[y/CELL][x/CELL]==WL_EHOLE && !emap[y/CELL][x/CELL]) && (bmap[ny/CELL][nx/CELL]!=WL_EHOLE && !emap[ny/CELL][nx/CELL])) return 0; - if(r && (r>>8)<NPART && ptypes[r&0xFF].falldown!=2 && bmap[y/CELL][x/CELL]==3) + if(r && (r>>8)<NPART && ptypes[r&0xFF].falldown!=2 && bmap[y/CELL][x/CELL]==WL_ALLOWLIQUID) return 0; if(parts[i].type == PT_PHOT) @@ -704,7 +704,7 @@ _inline int is_wire(int x, int y) inline int is_wire(int x, int y) #endif { - return bmap[y][x]==6 || bmap[y][x]==7 || bmap[y][x]==3 || bmap[y][x]==8 || bmap[y][x]==11 || bmap[y][x]==12; + return bmap[y][x]==WL_DETECT || bmap[y][x]==WL_EWALL || bmap[y][x]==WL_ALLOWLIQUID || bmap[y][x]==WL_WALLELEC || bmap[y][x]==WL_ALLOWALLELEC || bmap[y][x]==WL_EHOLE; } #if defined(WIN32) && !defined(__GNUC__) @@ -713,7 +713,7 @@ _inline int is_wire_off(int x, int y) inline int is_wire_off(int x, int y) #endif { - return (bmap[y][x]==6 || bmap[y][x]==7 || bmap[y][x]==3 || bmap[y][x]==8 || bmap[y][x]==11 || bmap[y][x]==12) && emap[y][x]<8; + return (bmap[y][x]==WL_DETECT || bmap[y][x]==WL_EWALL || bmap[y][x]==WL_ALLOWLIQUID || bmap[y][x]==WL_WALLELEC || bmap[y][x]==WL_ALLOWALLELEC || bmap[y][x]==WL_EHOLE) && emap[y][x]<8; } int get_wavelength_bin(int *wm) @@ -1024,15 +1024,15 @@ void update_particles_i(pixel *vid, int start, int inc) if(x<0 || y<0 || x>=XRES || y>=YRES || - ((bmap[y/CELL][x/CELL]==1 || - bmap[y/CELL][x/CELL]==8 || - bmap[y/CELL][x/CELL]==9 || - (bmap[y/CELL][x/CELL]==2) || - (bmap[y/CELL][x/CELL]==3 && ptypes[t].falldown!=2) || - (bmap[y/CELL][x/CELL]==10 && ptypes[t].falldown!=1) || - (bmap[y/CELL][x/CELL]==13 && ptypes[t].falldown!=0 && parts[i].type!=PT_FIRE && parts[i].type!=PT_SMKE) || - (bmap[y/CELL][x/CELL]==6 && (t==PT_METL || t==PT_SPRK)) || - (bmap[y/CELL][x/CELL]==7 && !emap[y/CELL][x/CELL])) && (t!=PT_STKM))) + ((bmap[y/CELL][x/CELL]==WL_WALL || + bmap[y/CELL][x/CELL]==WL_WALLELEC || + bmap[y/CELL][x/CELL]==WL_ALLOWAIR || + (bmap[y/CELL][x/CELL]==WL_DESTROYALL) || + (bmap[y/CELL][x/CELL]==WL_ALLOWLIQUID && ptypes[t].falldown!=2) || + (bmap[y/CELL][x/CELL]==WL_ALLOWSOLID && ptypes[t].falldown!=1) || + (bmap[y/CELL][x/CELL]==WL_ALLOWGAS && ptypes[t].falldown!=0 && parts[i].type!=PT_FIRE && parts[i].type!=PT_SMKE) || + (bmap[y/CELL][x/CELL]==WL_DETECT && (t==PT_METL || t==PT_SPRK)) || + (bmap[y/CELL][x/CELL]==WL_EWALL && !emap[y/CELL][x/CELL])) && (t!=PT_STKM))) { kill_part(i); continue; @@ -1158,7 +1158,7 @@ void update_particles_i(pixel *vid, int start, int inc) iy += dy; nx = (int)(ix+0.5f); ny = (int)(iy+0.5f); - if(nx<0 || ny<0 || nx>=XRES || ny>=YRES || pmap[ny][nx] || (bmap[ny/CELL][nx/CELL] && bmap[ny/CELL][nx/CELL]!=5)) + if(nx<0 || ny<0 || nx>=XRES || ny>=YRES || pmap[ny][nx] || (bmap[ny/CELL][nx/CELL] && bmap[ny/CELL][nx/CELL]!=WL_STREAM)) { parts[i].x = ix; parts[i].y = iy; @@ -1172,7 +1172,7 @@ void update_particles_i(pixel *vid, int start, int inc) for(ny=-1; ny<2; ny++) if(x+nx>=0 && y+ny>0 && x+nx<XRES && y+ny<YRES && - (!bmap[(y+ny)/CELL][(x+nx)/CELL] || bmap[(y+ny)/CELL][(x+nx)/CELL]==5)) + (!bmap[(y+ny)/CELL][(x+nx)/CELL] || bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_STREAM)) { if(!pmap[y+ny][x+nx]) a = 1; @@ -1415,14 +1415,14 @@ void update_particles_i(pixel *vid, int start, int inc) t = PT_SPRK; } } - else if(bmap[ny][nx]==6 || bmap[ny][nx]==7 || bmap[ny][nx]==3 || bmap[ny][nx]==8 || bmap[ny][nx]==11 || bmap[ny][nx]==12) + else if(bmap[ny][nx]==WL_DETECT || bmap[ny][nx]==WL_EWALL || bmap[ny][nx]==WL_ALLOWLIQUID || bmap[ny][nx]==WL_WALLELEC || bmap[ny][nx]==WL_ALLOWALLELEC || bmap[ny][nx]==WL_EHOLE) set_emap(nx, ny); } } nx = x/CELL; ny = y/CELL; - if(bmap[ny][nx]==6 && emap[ny][nx]<8) + if(bmap[ny][nx]==6 && emap[ny][nx]<WL_WALLELEC) set_emap(nx, ny); fe = 0; @@ -2029,8 +2029,8 @@ void update_particles_i(pixel *vid, int start, int inc) r = pmap[y+ny][x+nx]; if((r>>8)>=NPART) continue; - if((bmap[(y+ny)/CELL][(x+nx)/CELL]==8||bmap[(y+ny)/CELL][(x+nx)/CELL]==7||bmap[(y+ny)/CELL][(x+nx)/CELL]==2||bmap[(y+ny)/CELL][(x+nx)/CELL]==1|| - bmap[(y+ny)/CELL][(x+nx)/CELL]==9||bmap[(y+ny)/CELL][(x+nx)/CELL]==10||bmap[(y+ny)/CELL][(x+nx)/CELL]==13)) + if((bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_WALLELEC||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_EWALL||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_DESTROYALL||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_WALL|| + bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_ALLOWAIR||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_ALLOWSOLID||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_ALLOWGAS)) continue; if((!r)&&parts[i].life>=1)//if nothing then create water { @@ -2087,7 +2087,7 @@ void update_particles_i(pixel *vid, int start, int inc) r = pmap[y+ny][x+nx]; if((r>>8)>=NPART) continue; - if((bmap[(y+ny)/CELL][(x+nx)/CELL]==8||bmap[(y+ny)/CELL][(x+nx)/CELL]==3||bmap[(y+ny)/CELL][(x+nx)/CELL]==2||bmap[(y+ny)/CELL][(x+nx)/CELL]==1||bmap[(y+ny)/CELL][(x+nx)/CELL]==10)) + if((bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_WALLELEC||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_ALLOWLIQUID||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_DESTROYALL||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_WALL||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_ALLOWSOLID)) continue; if((!r)&&parts[i].life>=1)//if nothing then create steam { @@ -2143,8 +2143,8 @@ void update_particles_i(pixel *vid, int start, int inc) parts[i].life = parts[r>>8].life; } } - } - else if(t==PT_WTF) + } + else if(t==PT_WTF) { int maxlife = ((10000/(parts[i].temp + 1))-1); if((10000%((int)parts[i].temp+1))>rand()%((int)parts[i].temp+1)) @@ -2169,15 +2169,15 @@ void update_particles_i(pixel *vid, int start, int inc) } } else - for(nx=-1; nx<2; nx++) - for(ny=-1; ny<2; ny++) + 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)) { r = pmap[y+ny][x+nx]; if((r>>8)>=NPART || (parts[i].life<=maxlife)) continue; - if((bmap[(y+ny)/CELL][(x+nx)/CELL]==8||bmap[(y+ny)/CELL][(x+nx)/CELL]==7||bmap[(y+ny)/CELL][(x+nx)/CELL]==2||bmap[(y+ny)/CELL][(x+nx)/CELL]==1|| - bmap[(y+ny)/CELL][(x+nx)/CELL]==9||bmap[(y+ny)/CELL][(x+nx)/CELL]==10||bmap[(y+ny)/CELL][(x+nx)/CELL]==13)) + if((bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_WALLELEC||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_EWALL||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_DESTROYALL||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_WALL|| + bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_ALLOWAIR||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_ALLOWSOLID||bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_ALLOWGAS)) continue; if((!r)&&parts[i].life>=1)//if nothing then create wtf { @@ -2211,8 +2211,8 @@ void update_particles_i(pixel *vid, int start, int inc) } } } - } - else if(t==PT_WARP) + } + else if(t==PT_WARP) { for(int trade = 0; trade<5;trade ++) { @@ -2237,8 +2237,8 @@ void update_particles_i(pixel *vid, int start, int inc) } } } - if(t==PT_FWRK) - { + else if(t==PT_FWRK) + { if((parts[i].temp>400&&(9+parts[i].temp/40)>rand()%100000&&parts[i].life==0&&!pmap[y-1][x])||parts[i].ctype==PT_DUST) { create_part(-1, x , y-1 , PT_FWRK); @@ -2288,7 +2288,7 @@ void update_particles_i(pixel *vid, int start, int inc) } parts[i].type=PT_NONE; } - } + } else if(t==PT_LCRY) { for(nx=-1; nx<2; nx++) @@ -2714,7 +2714,7 @@ void update_particles_i(pixel *vid, int start, int inc) r = pmap[y+ny][x+nx]; if((r>>8)>=NPART || !r) continue; - if(bmap[(y+ny)/CELL][(x+nx)/CELL] && bmap[(y+ny)/CELL][(x+nx)/CELL]!=5) + if(bmap[(y+ny)/CELL][(x+nx)/CELL] && bmap[(y+ny)/CELL][(x+nx)/CELL]!=WL_STREAM) continue; rt = parts[r>>8].type; if((a || ptypes[rt].explosive) && ((rt!=PT_RBDM && rt!=PT_LRBD && rt!=PT_INSL && rt!=PT_SWCH) || t!=PT_SPRK) && @@ -3063,9 +3063,9 @@ killed: } //Charge detector wall if foot inside - if(bmap[(int)(player[8]+0.5)/CELL][(int)(player[7]+0.5)/CELL]==6) + if(bmap[(int)(player[8]+0.5)/CELL][(int)(player[7]+0.5)/CELL]==WL_DETECT) set_emap((int)player[7]/CELL, (int)player[8]/CELL); - if(bmap[(int)(player[16]+0.5)/CELL][(int)(player[15]+0.5)/CELL]==6) + if(bmap[(int)(player[16]+0.5)/CELL][(int)(player[15]+0.5)/CELL]==WL_DETECT) set_emap((int)(player[15]+0.5)/CELL, (int)(player[16]+0.5)/CELL); //Searching for particles near head @@ -3092,7 +3092,7 @@ killed: parts[i].life -= (102-parts[i].life)/2; kill_part(pmap[ny+y][nx+x]>>8); } - if(bmap[(ny+y)/CELL][(nx+x)/CELL]==4) + if(bmap[(ny+y)/CELL][(nx+x)/CELL]==WL_FAN) player[2] = SPC_AIR; } @@ -3523,7 +3523,7 @@ killed: s = 1; break; } - if((pmap[y][j]&255)!=t || (bmap[y/CELL][j/CELL] && bmap[y/CELL][j/CELL]!=5)) + if((pmap[y][j]&255)!=t || (bmap[y/CELL][j/CELL] && bmap[y/CELL][j/CELL]!=WL_STREAM)) break; } if(parts[i].vy>0) @@ -3538,7 +3538,7 @@ killed: parts[i].y += j-y; break; } - if((pmap[j][x]&255)!=t || (bmap[j/CELL][x/CELL] && bmap[j/CELL][x/CELL]!=5)) + if((pmap[j][x]&255)!=t || (bmap[j/CELL][x/CELL] && bmap[j/CELL][x/CELL]!=WL_STREAM)) { s = 0; break; @@ -3689,7 +3689,7 @@ void update_particles(pixel *vid) { for(x=0; x<XRES/CELL; x++) { - if(bmap[y][x]==1) + if(bmap[y][x]==WL_WALL) for(j=0; j<CELL; j++) for(i=0; i<CELL; i++) { @@ -3698,14 +3698,14 @@ void update_particles(pixel *vid) drawblob(vid, (x*CELL+i), (y*CELL+j), 0x80, 0x80, 0x80); } - if(bmap[y][x]==2) + if(bmap[y][x]==WL_DESTROYALL) for(j=0; j<CELL; j+=2) for(i=(j>>1)&1; i<CELL; i+=2) { vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x808080); drawblob(vid, (x*CELL+i), (y*CELL+j), 0x80, 0x80, 0x80); } - if(bmap[y][x]==3) + if(bmap[y][x]==WL_ALLOWLIQUID) { for(j=0; j<CELL; j++) for(i=0; i<CELL; i++) @@ -3728,14 +3728,14 @@ void update_particles(pixel *vid) fire_b[y][x] = cb; } } - if(bmap[y][x]==4) + if(bmap[y][x]==WL_FAN) for(j=0; j<CELL; j+=2) for(i=(j>>1)&1; i<CELL; i+=2) { vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x8080FF); drawblob(vid, (x*CELL+i), (y*CELL+j), 0x80, 0x80, 0xFF); } - if(bmap[y][x]==6) + if(bmap[y][x]==WL_DETECT) { for(j=0; j<CELL; j+=2) for(i=(j>>1)&1; i<CELL; i+=2) @@ -3759,7 +3759,7 @@ void update_particles(pixel *vid) fire_b[y][x] = cb; } } - if(bmap[y][x]==7) + if(bmap[y][x]==WL_EWALL) { if(emap[y][x]) { @@ -3795,7 +3795,7 @@ void update_particles(pixel *vid) } } } - if(bmap[y][x]==8) + if(bmap[y][x]==WL_WALLELEC) { for(j=0; j<CELL; j++) for(i=0; i<CELL; i++) @@ -3826,7 +3826,7 @@ void update_particles(pixel *vid) fire_b[y][x] = cb; } } - if(bmap[y][x]==11) + if(bmap[y][x]==WL_ALLOWALLELEC) { for(j=0; j<CELL; j++) for(i=0; i<CELL; i++) @@ -3853,7 +3853,7 @@ void update_particles(pixel *vid) fire_b[y][x] = cb; } } - if(bmap[y][x]==13) + if(bmap[y][x]==WL_ALLOWGAS) { for(j=0; j<CELL; j+=2) { @@ -3864,7 +3864,7 @@ void update_particles(pixel *vid) } } } - if(bmap[y][x]==9) + if(bmap[y][x]==WL_ALLOWAIR) { for(j=0; j<CELL; j+=2) { @@ -3875,7 +3875,7 @@ void update_particles(pixel *vid) } } } - if(bmap[y][x]==10) + if(bmap[y][x]==WL_ALLOWSOLID) { for(j=0; j<CELL; j+=2) { @@ -3886,7 +3886,7 @@ void update_particles(pixel *vid) } } } - if(bmap[y][x]==12) + if(bmap[y][x]==WL_EHOLE) { if(emap[y][x]) { @@ -3942,18 +3942,18 @@ void update_particles(pixel *vid) { for(x=0; x<XRES/CELL; x++) { - if(bmap[y][x]==1) + if(bmap[y][x]==WL_WALL) for(j=0; j<CELL; j++) for(i=0; i<CELL; i++) { pmap[y*CELL+j][x*CELL+i] = 0x7FFFFFFF; vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x808080); } - if(bmap[y][x]==2) + if(bmap[y][x]==WL_DESTROYALL) for(j=0; j<CELL; j+=2) for(i=(j>>1)&1; i<CELL; i+=2) vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x808080); - if(bmap[y][x]==3) + if(bmap[y][x]==WL_ALLOWLIQUID) { for(j=0; j<CELL; j++) for(i=0; i<CELL; i++) @@ -3973,11 +3973,11 @@ void update_particles(pixel *vid) fire_b[y][x] = cb; } } - if(bmap[y][x]==4) + if(bmap[y][x]==WL_FAN) for(j=0; j<CELL; j+=2) for(i=(j>>1)&1; i<CELL; i+=2) vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x8080FF); - if(bmap[y][x]==6) + if(bmap[y][x]==WL_DETECT) { for(j=0; j<CELL; j+=2) for(i=(j>>1)&1; i<CELL; i+=2) @@ -3998,7 +3998,7 @@ void update_particles(pixel *vid) fire_b[y][x] = cb; } } - if(bmap[y][x]==7) + if(bmap[y][x]==WL_EWALL) { if(emap[y][x]) { @@ -4028,7 +4028,7 @@ void update_particles(pixel *vid) vid[(y*CELL+j)*(XRES+BARSIZE)+(x*CELL+i)] = PIXPACK(0x808080); } } - if(bmap[y][x]==8) + if(bmap[y][x]==WL_WALLELEC) { for(j=0; j<CELL; j++) for(i=0; i<CELL; i++) @@ -4053,7 +4053,7 @@ void update_particles(pixel *vid) fire_b[y][x] = cb; } } - if(bmap[y][x]==11) + if(bmap[y][x]==WL_ALLOWALLELEC) { for(j=0; j<CELL; j++) for(i=0; i<CELL; i++) @@ -4077,7 +4077,7 @@ void update_particles(pixel *vid) fire_b[y][x] = cb; } } - if(bmap[y][x]==9) + if(bmap[y][x]==WL_ALLOWAIR) { for(j=0; j<CELL; j+=2) { @@ -4087,7 +4087,7 @@ void update_particles(pixel *vid) } } } - if(bmap[y][x]==13) + if(bmap[y][x]==WL_ALLOWGAS) { for(j=0; j<CELL; j+=2) { @@ -4097,7 +4097,7 @@ void update_particles(pixel *vid) } } } - if(bmap[y][x]==10) + if(bmap[y][x]==WL_ALLOWSOLID) { for(j=0; j<CELL; j+=2) { @@ -4107,7 +4107,7 @@ void update_particles(pixel *vid) } } } - if(bmap[y][x]==12) + if(bmap[y][x]==WL_EHOLE) { if(emap[y][x]) { @@ -4160,7 +4160,7 @@ void update_particles(pixel *vid) for(y=0; y<YRES/CELL; y++) for(x=0; x<XRES/CELL; x++) - if(bmap[y][x]==5) + if(bmap[y][x]==WL_STREAM) { lx = x*CELL + CELL*0.5f; ly = y*CELL + CELL*0.5f; @@ -4175,7 +4175,7 @@ void update_particles(pixel *vid) j = ny/CELL; lx += vx[j][i]*0.125f; ly += vy[j][i]*0.125f; - if(bmap[j][i]==5 && i!=x && j!=y) + if(bmap[j][i]==WL_STREAM && i!=x && j!=y) break; } drawtext(vid, x*CELL, y*CELL-2, "\x8D", 255, 255, 255, 128); @@ -4221,7 +4221,7 @@ int flood_parts(int x, int y, int c, int cm, int bm) { int x1, x2, dy = (c<PT_NUM)?1:CELL; int co = c; - if(c>=122&&c<=122+UI_WALLCOUNT) + if(c>=UI_WALLSTART&&c<=UI_WALLSTART+UI_WALLCOUNT) { c = c-100; } @@ -4238,12 +4238,12 @@ int flood_parts(int x, int y, int c, int cm, int bm) } if(bm==-1) { - if(c==30) + if(c==WL_ERASE) { bm = bmap[y/CELL][x/CELL]; if(!bm) return 0; - if(bm==1) + if(bm==WL_WALL) cm = 0xFF; } else @@ -4291,83 +4291,28 @@ int create_parts(int x, int y, float rx, float ry, int c) { int i, j, f = 0, u, v, oy, ox, b = 0, dw = 0, stemp = 0; //n; - if(c == 125) + + int wall = c - 100; + for(int r=UI_ACTUALSTART;r<=UI_ACTUALSTART+UI_WALLCOUNT;r++) { - i = x / CELL; - j = y / CELL; - for(v=-1; v<2; v++) - for(u=-1; u<2; u++) + if(wall==WL_STREAM) + { + i = x / CELL; + j = y / CELL; + for(v=-1; v<2; v++) + for(u=-1; u<2; u++) if(i+u>=0 && i+u<XRES/CELL && j+v>=0 && j+v<YRES/CELL && - bmap[j+v][i+u] == 5) - return 1; - bmap[j][i] = 5; - return 1; - } - if(c == 127) - { - b = 4; - dw = 1; - } - if(c == 122) - { - b = 8; - dw = 1; - } - if(c == 123) - { - b = 7; - dw = 1; - } - if(c == 124) - { - b = 6; - dw = 1; - } - if(c == 128) - { - b = 3; - dw = 1; - } - if(c == 129) - { - b = 2; - dw = 1; - } - if(c == 130) - { - b = 0; - dw = 1; - } - if(c == 131) - { - b = 1; - dw = 1; - } - if(c == 132) - { - b = 9; - dw = 1; - } - if(c == 133) - { - b = 10; - dw = 1; - } - if(c == 134) - { - b = 11; - dw = 1; - } - if(c == 135) - { - b = 12; - dw = 1; - } - if(c == 140) - { - b = 13; - dw = 1; + bmap[j+v][i+u] == WL_STREAM) + return 1; + bmap[j][i] = WL_STREAM; + return 1; + } + else if(wall==r) + { + b = wall; + dw = 1; + } } if(c == 255) { @@ -4389,7 +4334,7 @@ int create_parts(int x, int y, float rx, float ry, int c) { i = ox; j = oy; - if(b==4) + if(b==WL_FAN) { fvx[j][i] = 0.0f; fvy[j][i] = 0.0f; @@ -4404,7 +4349,7 @@ int create_parts(int x, int y, float rx, float ry, int c) { for(j=-ry; j<=ry; j++) for(i=-rx; i<=rx; i++) - if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*rx)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) + if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*ry)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) delete_part(x+i, y+j); return 1; } @@ -4412,7 +4357,7 @@ int create_parts(int x, int y, float rx, float ry, int c) { for(j=-ry; j<=ry; j++) for(i=-rx; i<=rx; i++) - if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*rx)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) + if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*ry)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) delete_part(x+i, y+j); if(c==0) return 1; @@ -4421,7 +4366,7 @@ int create_parts(int x, int y, float rx, float ry, int c) { for(j=-ry; j<=ry; j++) for(i=-rx; i<=rx; i++) - if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*rx)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) + if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*ry)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) create_part(-1, x+i, y+j, c); return 1; } @@ -4432,7 +4377,7 @@ int create_parts(int x, int y, float rx, float ry, int c) SLALT = 0; for(j=-ry; j<=ry; j++) for(i=-rx; i<=rx; i++) - if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*rx)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) + if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*ry)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) delete_part(x+i, y+j); SLALT = stemp; return 1; @@ -4440,7 +4385,7 @@ int create_parts(int x, int y, float rx, float ry, int c) for(j=-ry; j<=ry; j++) for(i=-rx; i<=rx; i++) - if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*rx)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) + if((CURRENT_BRUSH==CIRCLE_BRUSH && (i*i)/(rx*rx)+(j*j)/(ry*ry)<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=ry*rx)) if(create_part(-1, x+i, y+j, c)==-1) f = 1; return !f; |
