projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed bug with using wrong draw buffer after request if game has ended
[rocksndiamonds.git]
/
src
/
tools.c
diff --git
a/src/tools.c
b/src/tools.c
index de19e464567463177202220a0734e57367be1607..a042e88fe91f7c84bcb914da569720cd63036612 100644
(file)
--- a/
src/tools.c
+++ b/
src/tools.c
@@
-462,6
+462,11
@@
void SetDrawtoField(int mode)
}
}
}
}
+int GetDrawtoField(void)
+{
+ return (drawto_field == fieldbuffer ? DRAW_TO_FIELDBUFFER : DRAW_TO_BACKBUFFER);
+}
+
static void RedrawPlayfield_RND(void)
{
if (game.envelope_active)
static void RedrawPlayfield_RND(void)
{
if (game.envelope_active)
@@
-4212,6
+4217,7
@@
static int RequestHandleEvents(unsigned int req_state)
{
boolean game_just_ended = (game_status == GAME_MODE_PLAYING &&
checkGameEnded());
{
boolean game_just_ended = (game_status == GAME_MODE_PLAYING &&
checkGameEnded());
+ int draw_buffer_last = GetDrawtoField();
int width = request.width;
int height = request.height;
int sx, sy;
int width = request.width;
int height = request.height;
int sx, sy;
@@
-4234,9
+4240,7
@@
static int RequestHandleEvents(unsigned int req_state)
{
if (game_just_ended)
{
{
if (game_just_ended)
{
- // the MM game engine does not use a special (scrollable) field buffer
- if (level.game_engine_type != GAME_ENGINE_TYPE_MM)
- SetDrawtoField(DRAW_TO_FIELDBUFFER);
+ SetDrawtoField(draw_buffer_last);
HandleGameActions();
HandleGameActions();
@@
-4521,6
+4525,8
@@
static int RequestHandleEvents(unsigned int req_state)
BackToFront();
}
BackToFront();
}
+ SetDrawtoField(draw_buffer_last);
+
game.request_active = FALSE;
return result;
game.request_active = FALSE;
return result;