* meant to be at the location.
*/
void
- flash_glyph_at(x, y, tg)
- int x, y, tg;
+ flash_glyph_at(x, y, tg, rpt)
+ int x, y;
+ int tg, rpt;
{
- int i, glyph[2];
-
- glyph[0] = tg;
- glyph[1] = (g.level.flags.hero_memory)
- ? levl[x][y].glyph
- : back_to_glyph(x, y);
- for (i = 0; i < 15; i++) {
- show_glyph(x, y, glyph[i % 2]);
- flush_screen(1);
- delay_output();
- }
- newsym(x, y);
+ int i, glyph[2];
+
+ rpt *= 2; /* two loop iterations per 'count' */
+ glyph[0] = tg;
- glyph[1] = (level.flags.hero_memory) ? levl[x][y].glyph
++ glyph[1] = (g.level.flags.hero_memory) ? levl[x][y].glyph
+ : back_to_glyph(x, y);
+ /* even iteration count (guaranteed) ends with glyph[1] showing;
+ caller might want to override that, but no newsym() calls here
+ in case caller has tinkered with location visibility */
+ for (i = 0; i < rpt; i++) {
+ show_glyph(x, y, glyph[i % 2]);
+ flush_screen(1);
+ delay_output();
+ }
}
/*