diff options
| author | Cracker64 <cracker642@gmail.com> | 2011-02-24 05:26:37 (GMT) |
|---|---|---|
| committer | Cracker64 <cracker642@gmail.com> | 2011-02-24 05:26:37 (GMT) |
| commit | 98a61e0e201d90157ca9c77b9e996663d12e9dff (patch) | |
| tree | 5b2330be5d4e5c7495e28de5ca75814d39994390 /src | |
| parent | a53d956d8dea008f6719b3d537c0e1d204c476c0 (diff) | |
| download | powder-98a61e0e201d90157ca9c77b9e996663d12e9dff.zip powder-98a61e0e201d90157ca9c77b9e996663d12e9dff.tar.gz | |
a drag tool!
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 17 | ||||
| -rw-r--r-- | src/powder.c | 2 |
2 files changed, 16 insertions, 3 deletions
@@ -1183,7 +1183,7 @@ int main(int argc, char *argv[]) #endif char uitext[512] = ""; char heattext[128] = ""; - char coordtext[13] = ""; + char coordtext[128] = ""; int currentTime = 0; int FPS = 0; int pastFPS = 0; @@ -2436,7 +2436,18 @@ int main(int argc, char *argv[]) } else { - create_line(lx, ly, x, y, bsx, bsy, c); + if (c == PT_DRAG) + { + for (j=-bsy; j<=bsy; j++) + for (i=-bsx; i<=bsx; i++) + if ((CURRENT_BRUSH==CIRCLE_BRUSH && (pow(i,2))/(pow(bsx,2))+(pow(j,2))/(pow(bsy,2))<=1)||(CURRENT_BRUSH==SQUARE_BRUSH&&i*j<=bsy*bsx)) + { + vx[(y+j)/CELL][(x+i)/CELL] += (x-lx)*0.01f; + vy[(y+j)/CELL][(x+i)/CELL] += (y-ly)*0.01f; + } + } + else + create_line(lx, ly, x, y, bsx, bsy, c); lx = x; ly = y; } @@ -2461,7 +2472,7 @@ int main(int argc, char *argv[]) { if (sdl_mod & (KMOD_CAPS)) c = 0; - if (c!=WL_STREAM+100&&c!=SPC_AIR&&c!=SPC_HEAT&&c!=SPC_COOL&&c!=SPC_VACUUM&&!REPLACE_MODE) + if (c!=WL_STREAM+100&&c!=SPC_AIR&&c!=SPC_HEAT&&c!=SPC_COOL&&c!=SPC_VACUUM&&!REPLACE_MODE&&c!=PT_DRAG) flood_parts(x, y, c, -1, -1); if (c==SPC_HEAT || c==SPC_COOL) create_parts(x, y, bsx, bsy, c); diff --git a/src/powder.c b/src/powder.c index 6059640..8decfba 100644 --- a/src/powder.c +++ b/src/powder.c @@ -2860,6 +2860,8 @@ int create_parts(int x, int y, int rx, int ry, int c) b = WL_FANHELPER; dw = 1; } + if (c == PT_DRAG) + return 1; if (dw==1) { rx = rx/CELL; |
