comparison draw_smart.pde @ 233:1d9f9c3d8ab1

Fixes to multicolor/pixelw==2 flood fill.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 06 Sep 2018 13:25:15 +0300
parents 1c9deae71fb1
children a3f79ce74471
comparison
equal deleted inserted replaced
232:ea6eb6541607 233:1d9f9c3d8ab1
158 } 158 }
159 159
160 160
161 void floodfill_mc(int xx, int yy, int mbut) 161 void floodfill_mc(int xx, int yy, int mbut)
162 { 162 {
163 int x, y, ax, valid, okay, par, npar, zad; 163 int x, y, ax, valid, okay, par, npar;
164 par = 0; 164 par = 0;
165 165
166 if (g_pixelw == 2) 166 if (g_pixelw == 2)
167 xx = chop2(xx); 167 xx = chop2(xx);
168 168
184 { 184 {
185 valid = 0; 185 valid = 0;
186 for (y = 0; y < Y; y++) 186 for (y = 0; y < Y; y++)
187 for (x = 0; x < X; x += g_pixelw) 187 for (x = 0; x < X; x += g_pixelw)
188 { 188 {
189 zad = 1024 + x + y * X; 189 int zad = 1024 + x + y * X;
190 ax = int(g_fillmap[zad]); 190 ax = int(g_fillmap[zad]);
191 if (ax >= 100 && ax <= 199) 191 if (ax >= 100 && ax <= 199)
192 { 192 {
193 valid = 1; 193 valid = 1;
194 if (y > 0 && floodfill_mc_plop(npar, x, y - 1)) 194 if (y > 0 && floodfill_mc_plop(npar, x, y - 1))
195 valid = 1; 195 valid = 1;
196 196
197 if (x > g_pixelw && floodfill_mc_plop(npar, x - g_pixelw, y)) 197 if (x >= g_pixelw && floodfill_mc_plop(npar, x - g_pixelw, y))
198 valid = 1; 198 valid = 1;
199 199
200 if (x < X - 1 - g_pixelw && floodfill_mc_plop(npar, x + g_pixelw, y)) 200 if (x <= X - g_pixelw - g_pixelw && floodfill_mc_plop(npar, x + g_pixelw, y))
201 valid = 1; 201 valid = 1;
202 202
203 if (y < Y - 1 && floodfill_mc_plop(npar, x, y + 1)) 203 if (y < Y - 1 && floodfill_mc_plop(npar, x, y + 1))
204 valid = 1; 204 valid = 1;
205 205
243 } 243 }
244 244
245 245
246 void floodfill_iq(int xx, int yy, int mbut) 246 void floodfill_iq(int xx, int yy, int mbut)
247 { 247 {
248 int x, y, ax, ay, valid, okay, par, npar, zad; 248 int x, y, ax, ay, valid, okay, par, npar;
249 par = 0; 249 par = 0;
250 250
251 if (mbut == LEFT) 251 if (mbut == LEFT)
252 par = g_farge; 252 par = g_farge;
253 else 253 else
269 { 269 {
270 valid = 0; 270 valid = 0;
271 for (y = 0; y < Y; y++) 271 for (y = 0; y < Y; y++)
272 for (x = 0; x < X; x++) 272 for (x = 0; x < X; x++)
273 { 273 {
274 zad = 1024 + x + y * X; 274 int zad = 1024 + x + y * X;
275 ax = int(g_fillmap[zad]); 275 ax = int(g_fillmap[zad]);
276 if (ax == 100) 276 if (ax == 100)
277 { 277 {
278 valid = 1; 278 valid = 1;
279 if (y > 0 && floodfill_iq_plop(npar, x, y - 1)) 279 if (y > 0 && floodfill_iq_plop(npar, x, y - 1))