Specific delete speed increase, delete useless(?) if statement
This commit is contained in:
parent
5f51cb3042
commit
dea920680b
37
src/powder.c
37
src/powder.c
@ -3111,31 +3111,22 @@ int create_parts(int x, int y, int rx, int ry, int c, int flags)
|
|||||||
delete_part(x, y, flags);
|
delete_part(x, y, flags);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
for (j=-ry; j<=ry; j++)
|
{
|
||||||
for (i=-rx; i<=rx; i++)
|
int tempy = y, i, j, jmax;
|
||||||
if (InCurrentBrush(i ,j ,rx ,ry))
|
if (CURRENT_BRUSH == TRI_BRUSH)
|
||||||
delete_part(x+i, y+j, flags);
|
tempy = y + ry;
|
||||||
return 1;
|
for (i = x - rx; i <= x; i++) {
|
||||||
|
while (InCurrentBrush(i-x,tempy-y,rx,ry))
|
||||||
|
tempy = tempy - 1;
|
||||||
|
tempy = tempy + 1;
|
||||||
|
jmax = 2*y - tempy;
|
||||||
|
if (CURRENT_BRUSH == TRI_BRUSH)
|
||||||
|
jmax = y + ry;
|
||||||
|
for (j = tempy; j <= jmax; j++) {
|
||||||
|
delete_part(i, j, flags);
|
||||||
|
delete_part(2*x-i, j, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
//why do these need a special if
|
|
||||||
if (c == SPC_AIR || c == SPC_HEAT || c == SPC_COOL || c == SPC_VACUUM || c == SPC_PGRV || c == SPC_NGRV)
|
|
||||||
{
|
|
||||||
if (rx==0&&ry==0)
|
|
||||||
{
|
|
||||||
create_part(-2, x, y, c);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
for (j=-ry; j<=ry; j++)
|
|
||||||
for (i=-rx; i<=rx; i++)
|
|
||||||
if (InCurrentBrush(i ,j ,rx ,ry))
|
|
||||||
{
|
|
||||||
if ( x+i<0 || y+j<0 || x+i>=XRES || y+j>=YRES)
|
|
||||||
continue;
|
|
||||||
if (!REPLACE_MODE)
|
|
||||||
create_part(-2, x+i, y+j, c);
|
|
||||||
else if ((pmap[y+j][x+i]&0xFF)==SLALT&&SLALT!=0)
|
|
||||||
create_part(-2, x+i, y+j, c);
|
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user