void DrawEnvelopeRequestToScreen(int drawing_target)
{
if (global.use_envelope_request &&
- game.request_active_or_moving &&
+ game.request_active &&
drawing_target == DRAW_TO_SCREEN)
{
if (graphic_info[IMG_BACKGROUND_REQUEST].draw_masked)
static void AnimateEnvelopeRequest(int anim_mode, int action)
{
+ boolean game_just_ended = (game_status == GAME_MODE_PLAYING &&
+ checkGameEnded());
int delay_value_normal = request.step_delay;
int delay_value_fast = delay_value_normal / 2;
boolean ffwd_delay = (tape.playing && tape.fast_forward);
int dst_x, dst_y;
int xx, yy;
+ if (game_just_ended)
+ HandleGameActions();
+
setRequestPosition(&src_x, &src_y, FALSE);
setRequestPositionExt(&dst_x, &dst_y, width, height, FALSE);
int sx, sy;
int result;
- // when showing request dialog after game ended, deactivate game panel
- if (game_just_ended)
- game.panel.active = FALSE;
-
- game.request_active = TRUE;
-
setRequestPosition(&sx, &sy, FALSE);
button_status = MB_RELEASED;
SetDrawtoField(draw_buffer_last);
- game.request_active = FALSE;
-
return result;
}
boolean Request(char *text, unsigned int req_state)
{
+ boolean game_just_ended = (game_status == GAME_MODE_PLAYING &&
+ checkGameEnded());
boolean overlay_enabled = GetOverlayEnabled();
boolean result;
- game.request_active_or_moving = TRUE;
+ // when showing request dialog after game ended, deactivate game panel
+ if (game_just_ended)
+ game.panel.active = FALSE;
+
+ game.request_active = TRUE;
SetOverlayEnabled(FALSE);
SetOverlayEnabled(overlay_enabled);
- game.request_active_or_moving = FALSE;
+ game.request_active = FALSE;
return result;
}