- WaitUntilDelayReached(&anim_delay, anim_delay_value);
- }
-
- if (tape.playing)
- Delay(wait_delay_value);
- else
- WaitForEventToContinue();
-
- if (anim_mode != ANIM_NONE)
- PlaySoundStereo(sound_closing, SOUND_MIDDLE);
-
- if (anim_mode != ANIM_NONE)
- {
- /* close envelope window vertically */
- for (i = level.envelope_ysize[envelope_nr]; i >= 0; i--)
- {
- int xsize = level.envelope_xsize[envelope_nr] + 2;
- int ysize = i + 2;
- int startx = (SXSIZE - xsize * font_width) / 2;
- int starty = (SYSIZE - ysize * font_height) / 2;
-
- SetDrawtoField(DRAW_BUFFERED);
-
- BlitBitmap(fieldbuffer, backbuffer, FX, FY, SXSIZE, SYSIZE, SX, SY);
-
- SetDrawtoField(DRAW_BACKBUFFER);
-
- for (y=0; y < ysize; y++) for (x=0; x < xsize; x++)
- DrawEnvelopeBackground(envelope_nr, startx, starty, x, y, xsize, ysize,
- font_nr);
-
- DrawTextToTextArea(SX + startx + font_width, SY + starty + font_height,
- level.envelope_text[envelope_nr], font_nr,
- level.envelope_xsize[envelope_nr], i, mask_mode);
-
- redraw_mask |= REDRAW_FIELD | REDRAW_FROM_BACKBUFFER;
- BackToFront();
-
- WaitUntilDelayReached(&anim_delay, anim_delay_value);
- }
- }
-
- if (anim_mode == ANIM_DEFAULT)
- {
- /* close envelope window horizontally */
- for (i = level.envelope_xsize[envelope_nr]; i >= 0; i--)
- {
- int xsize = i + 2;
- int ysize = 2;
- int startx = (SXSIZE - xsize * font_width) / 2;
- int starty = (SYSIZE - ysize * font_height) / 2;
-
- SetDrawtoField(DRAW_BUFFERED);
-
- BlitBitmap(fieldbuffer, backbuffer, FX, FY, SXSIZE, SYSIZE, SX, SY);
-
- SetDrawtoField(DRAW_BACKBUFFER);
-
- for (y=0; y < ysize; y++) for (x=0; x < xsize; x++)
- DrawEnvelopeBackground(envelope_nr, startx, starty, x, y, xsize, ysize,
- font_nr);
-
- redraw_mask |= REDRAW_FIELD | REDRAW_FROM_BACKBUFFER;
- BackToFront();
-
- WaitUntilDelayReached(&anim_delay, anim_delay_value / 2);
- }