effectiveGameStatus() == GAME_MODE_TITLE)
return;
+ /* never draw masked screen borders when displaying request outside door */
+ if (effectiveGameStatus() == GAME_MODE_PSEUDO_DOOR &&
+ global.use_envelope_request)
+ return;
+
if (redraw_mask & REDRAW_ALL)
DrawMaskedBorder_ALL();
else
SyncDisplay();
- /* prevent drawing masked border to backbuffer when using playfield buffer */
+ /* never draw masked border to backbuffer when using playfield buffer */
if (game_status != GAME_MODE_PLAYING ||
redraw_mask & REDRAW_FROM_BACKBUFFER ||
buffer == backbuffer)
game.envelope_active = FALSE;
#if 1
- game_status = last_game_status; /* restore current game status */
+ // game_status = last_game_status; /* restore current game status */
if (action == ACTION_CLOSING)
{
BackToFront();
+ /* (important: after "BackToFront()", but before "SetDrawtoField()") */
+ game_status = last_game_status; /* restore current game status */
+
if (game_status == GAME_MODE_PLAYING &&
level.game_engine_type == GAME_ENGINE_TYPE_RND)
SetDrawtoField(DRAW_BUFFERED);
int last_game_status = game_status; /* save current game status */
int max_request_line_len = MAX_REQUEST_LINE_FONT1_LEN;
int font_nr = FONT_TEXT_2;
- boolean use_envelope_request = TRUE * 0;
#if 0
int max_word_len = 0;
#endif
char *text_ptr;
int i;
+ global.use_envelope_request = TRUE * 1;
+
#if 1
if (maxWordLengthInString(text) > MAX_REQUEST_LINE_FONT1_LEN)
{
UnmapAllGadgets();
-#if 1
- if (old_door_state & DOOR_OPEN_1 && !use_envelope_request)
+ /* draw released gadget before proceeding */
+ // BackToFront();
+
+#if 0
+ if (old_door_state & DOOR_OPEN_1 && !global.use_envelope_request)
#else
if (old_door_state & DOOR_OPEN_1)
#endif
{
+#if 1
+ if (!global.use_envelope_request)
+ CloseDoor(DOOR_CLOSE_1);
+#else
CloseDoor(DOOR_CLOSE_1);
+#endif
/* save old door content */
BlitBitmap(bitmap_db_door, bitmap_db_door,
game_status = last_game_status; /* restore current game status */
#if 1
- if (use_envelope_request)
+ if (global.use_envelope_request)
{
/* !!! TMP !!! */
FreeToolButtons();
DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
#if 1
- if (use_envelope_request)
+ if (global.use_envelope_request)
{
ShowEnvelopeDoor(text, ACTION_OPENING);
#endif
#if 1
- if (!use_envelope_request)
+ if (!global.use_envelope_request)
OpenDoor(DOOR_OPEN_1);
#else
OpenDoor(DOOR_OPEN_1);
}
#if 1
- if (game_status != GAME_MODE_MAIN && !use_envelope_request)
+ if (game_status != GAME_MODE_MAIN && !global.use_envelope_request)
InitAnimation();
#else
if (game_status != GAME_MODE_MAIN)
Delay(10);
}
+#if 1
+ game_status = GAME_MODE_PSEUDO_DOOR;
+#endif
+
BackToFront();
+#if 1
+ game_status = last_game_status; /* restore current game status */
+#endif
+
#else
DoAnimation();
UnmapToolButtons();
#if 1
- if (use_envelope_request)
+ if (global.use_envelope_request)
ShowEnvelopeDoor(text, ACTION_CLOSING);
#endif
#if 1
- if (!(req_state & REQ_STAY_OPEN) && !use_envelope_request)
+ if (!(req_state & REQ_STAY_OPEN) && !global.use_envelope_request)
#else
if (!(req_state & REQ_STAY_OPEN))
#endif