int depth;
int bigendian;
int ncolors;
+ Bool button_down_p;
+ int deferred;
+
};
/*
{
for (x = 0; x < st->width; x += 2, v += SHELLCOUNT)
{
- float f;
- f = sqrtf((fs->cx - x) * (fs->cx - x) + (fs->cy - y) * (fs->cy - y)) + 4.0;
+ double f;
+ f = sqrt((fs->cx - x) * (fs->cx - x) + (fs->cy - y) * (fs->cy - y)) + 4.0;
f = FLASH_ZOOM / f;
f += pow(f,0.1) * frand(0.0001); /* dither */
st->light_map[v] = f;
{
if (!explode(st, fs))
{
- recycle(st, fs, rnd(st->width), rnd(st->height));
+ if (st->button_down_p)
+ st->deferred++;
+ else
+ recycle(st, fs, rnd(st->width), rnd(st->height));
}
}
}
+ while (!st->button_down_p && st->deferred) {
+ st->deferred--;
+ recycle_oldest(st, rnd(st->width), rnd(st->height));
+ }
+
glow_blur(st);
if (st->flash_on)
if (event->type == ButtonPress)
{
recycle_oldest(st, event->xbutton.x, event->xbutton.y);
+ st->button_down_p = True;
+ return True;
+ }
+ else if (event->type == ButtonRelease)
+ {
+ st->button_down_p = False;
return True;
}
+
return False;
}