added support for setting alpha value for global animations
[rocksndiamonds.git] / src / libgame / system.c
index 5a63172f72421e6c0fe58095bce1864945d636cb..2f21541d8e0419b5c938853082051c8075f550fe 100644 (file)
@@ -292,6 +292,11 @@ void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int))
   gfx.draw_tile_cursor_function = draw_tile_cursor_function;
 }
 
+void InitGfxDrawEnvelopeRequestFunction(void (*draw_envelope_request_function)(int))
+{
+  gfx.draw_envelope_request_function = draw_envelope_request_function;
+}
+
 void InitGfxCustomArtworkInfo(void)
 {
   gfx.override_level_graphics = FALSE;
@@ -596,7 +601,15 @@ void FreeBitmap(Bitmap *bitmap)
 
 Bitmap *CreateBitmapStruct(void)
 {
-  return checked_calloc(sizeof(Bitmap));
+  Bitmap *new_bitmap = checked_calloc(sizeof(Bitmap));
+
+  new_bitmap->alpha[0][0] = -1;
+  new_bitmap->alpha[0][1] = -1;
+  new_bitmap->alpha[1][0] = -1;
+  new_bitmap->alpha[1][1] = -1;
+  new_bitmap->alpha_next_blit = -1;
+
+  return new_bitmap;
 }
 
 Bitmap *CreateBitmap(int width, int height, int depth)
@@ -767,6 +780,12 @@ static boolean InClippedRectangle(Bitmap *bitmap, int *x, int *y,
   return TRUE;
 }
 
+void SetBitmapAlphaNextBlit(Bitmap *bitmap, int alpha)
+{
+  // set alpha value for next blitting of bitmap
+  bitmap->alpha_next_blit = alpha;
+}
+
 void BlitBitmap(Bitmap *src_bitmap, Bitmap *dst_bitmap,
                int src_x, int src_y, int width, int height,
                int dst_x, int dst_y)