From fb2947925e0e990825ded896d29b20296c950ab1 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Sun, 17 May 2015 13:51:48 +0200 Subject: [PATCH] fixed displaying envelope request after solved game --- src/tools.c | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/tools.c b/src/tools.c index b4449392..61b4c4cb 100644 --- a/src/tools.c +++ b/src/tools.c @@ -3290,9 +3290,15 @@ void WaitForEventToContinue() static int RequestHandleEvents(unsigned int req_state) { + boolean level_solved = (game_status == GAME_MODE_PLAYING && + local_player->LevelSolved_GameEnd); int last_game_status = game_status; /* save current game status */ + int width = request.width; + int height = request.height; + int sx, sy; int result; - int mx, my; + + setRequestPosition(&sx, &sy, FALSE); button_status = MB_RELEASED; @@ -3301,6 +3307,21 @@ static int RequestHandleEvents(unsigned int req_state) while (result < 0) { + if (level_solved) + { + SetDrawtoField(DRAW_FIELDBUFFER); + + HandleGameActions(); + + SetDrawtoField(DRAW_BACKBUFFER); + + if (global.use_envelope_request) + { + /* copy current state of request area to middle of playfield area */ + BlitBitmap(bitmap_db_cross, drawto, sx, sy, width, height, sx, sy); + } + } + if (PendingEvent()) { Event event; @@ -3313,6 +3334,8 @@ static int RequestHandleEvents(unsigned int req_state) case EVENT_BUTTONRELEASE: case EVENT_MOTIONNOTIFY: { + int mx, my; + if (event.type == EVENT_MOTIONNOTIFY) { if (!button_status) @@ -3418,9 +3441,13 @@ static int RequestHandleEvents(unsigned int req_state) result = 0; } - if (game_status == GAME_MODE_PLAYING && local_player->LevelSolved_GameEnd) + if (level_solved) { - HandleGameActions(); + if (global.use_envelope_request) + { + /* copy back current state of pressed buttons inside request area */ + BlitBitmap(drawto, bitmap_db_cross, sx, sy, width, height, sx, sy); + } } else { -- 2.34.1