projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added optional button to restart game (door, panel and touch variants)
[rocksndiamonds.git]
/
src
/
tools.c
diff --git
a/src/tools.c
b/src/tools.c
index e56516a016ef5cd04e40b08d3a55ae966e9fc968..4083e77ea1ba9733746632ceeb8bc2c1182dea0c 100644
(file)
--- a/
src/tools.c
+++ b/
src/tools.c
@@
-1517,6
+1517,11
@@
void SetRandomAnimationValue(int x, int y)
gfx.anim_random_frame = GfxRandom[x][y];
}
gfx.anim_random_frame = GfxRandom[x][y];
}
+void SetAnimationFirstLevel(int first_level)
+{
+ gfx.anim_first_level = first_level;
+}
+
int getGraphicAnimationFrame(int graphic, int sync_frame)
{
// animation synchronized with global frame counter, not move position
int getGraphicAnimationFrame(int graphic, int sync_frame)
{
// animation synchronized with global frame counter, not move position
@@
-3056,6
+3061,8
@@
static void PrepareEnvelopeRequestToScreen(Bitmap *bitmap, int sx, int sy,
SDLFreeBitmapTextures(request.bitmap);
SDLCreateBitmapTextures(request.bitmap);
SDLFreeBitmapTextures(request.bitmap);
SDLCreateBitmapTextures(request.bitmap);
+ ResetBitmapAlpha(request.bitmap);
+
// set envelope request run-time values
request.sx = sx;
request.sy = sy;
// set envelope request run-time values
request.sx = sx;
request.sy = sy;
@@
-3069,7
+3076,11
@@
void DrawEnvelopeRequestToScreen(int drawing_target)
game.request_active &&
drawing_target == DRAW_TO_SCREEN)
{
game.request_active &&
drawing_target == DRAW_TO_SCREEN)
{
- if (graphic_info[IMG_BACKGROUND_REQUEST].draw_masked)
+ struct GraphicInfo *g = &graphic_info[IMG_BACKGROUND_REQUEST];
+
+ SetBitmapAlphaNextBlit(request.bitmap, g->alpha);
+
+ if (g->draw_masked)
BlitToScreenMasked(request.bitmap, 0, 0, request.xsize, request.ysize,
request.sx, request.sy);
else
BlitToScreenMasked(request.bitmap, 0, 0, request.xsize, request.ysize,
request.sx, request.sy);
else
@@
-3176,6
+3187,13
@@
static void DrawEnvelopeRequestText(int sx, int sy, char *text)
{
char *src_text_ptr, *dst_text_ptr;
{
char *src_text_ptr, *dst_text_ptr;
+ if (maxWordLengthInRequestString(text) > line_length)
+ {
+ font_nr = FONT_REQUEST_NARROW;
+ font_width = getFontWidth(font_nr);
+ line_length = max_text_width / font_width;
+ }
+
text_door_style = checked_malloc(2 * strlen(text) + 1);
src_text_ptr = text;
text_door_style = checked_malloc(2 * strlen(text) + 1);
src_text_ptr = text;
@@
-4595,11
+4613,12
@@
static int RequestHandleEvents(unsigned int req_state, int draw_buffer_game)
break;
default:
break;
default:
- // only check clickable animations if no request gadget clicked
- HandleGlobalAnimClicks(mx, my, button_status, FALSE);
break;
}
break;
}
+ // only needed to handle clickable pointer animations here
+ HandleGlobalAnimClicks(mx, my, button_status, FALSE);
+
break;
}
break;
}