static void DoRequestBefore(void)
{
+ boolean game_ended = (game_status == GAME_MODE_PLAYING && checkGameEnded());
+
+ // when showing request dialog after game ended, deactivate game panel
+ if (game_ended)
+ game.panel.active = FALSE;
+
if (game_status == GAME_MODE_PLAYING)
BlitScreenToBitmap(backbuffer);
static int RequestDoor(char *text, unsigned int req_state)
{
- int draw_buffer_last = GetDrawtoField();
unsigned int old_door_state = GetDoorState();
+ int draw_buffer_last = GetDrawtoField();
int result;
- DoRequestBefore();
-
if (old_door_state & DOOR_OPEN_1)
{
CloseDoor(DOOR_CLOSE_1);
OpenDoor(DOOR_OPEN_1 | DOOR_COPY_BACK);
}
- DoRequestAfter();
-
return result;
}
int draw_buffer_last = GetDrawtoField();
int result;
- DoRequestBefore();
-
DrawEnvelopeRequest(text, req_state);
ShowEnvelopeRequest(text, req_state, ACTION_OPENING);
ShowEnvelopeRequest(text, req_state, ACTION_CLOSING);
- DoRequestAfter();
-
return result;
}
int Request(char *text, unsigned int req_state)
{
- boolean game_ended = (game_status == GAME_MODE_PLAYING && checkGameEnded());
boolean overlay_enabled = GetOverlayEnabled();
int result;
- // when showing request dialog after game ended, deactivate game panel
- if (game_ended)
- game.panel.active = FALSE;
-
game.request_active = TRUE;
SetOverlayEnabled(FALSE);
+ DoRequestBefore();
+
if (global.use_envelope_request)
result = RequestEnvelope(text, req_state);
else
result = RequestDoor(text, req_state);
+ DoRequestAfter();
+
SetOverlayEnabled(overlay_enabled);
game.request_active = FALSE;