+static void PreparePreviewTileBitmap(void)
+{
+ // check if special preview bitmap with level-specific colors should be created
+ if (level.game_engine_type != GAME_ENGINE_TYPE_BD)
+ return;
+
+ // use original sized bitmap (else reduced color palette is lost by downscaling)
+ int original_tilesize = MAX(MINI_TILESIZE, preview.tile_size);
+ int scale_down_factor = original_tilesize / preview.tile_size;
+ Bitmap *src_bitmap;
+ int src_x, src_y;
+ int element = EL_BD_ROCK;
+ int graphic = el2preimg(element);
+
+ // create special preview bitmap and scale it down to preview tile size
+ getSizedGraphicSource(graphic, 0, original_tilesize, &src_bitmap, &src_x, &src_y);
+ PreparePreviewTileBitmap_BD(src_bitmap, scale_down_factor);
+
+ // force using special preview bitmap to replace original preview bitmap
+ getSizedGraphicSource(graphic, 0, preview.tile_size, &src_bitmap, &src_x, &src_y);
+ SetPreviewTileBitmapReference_BD(src_bitmap);
+}
+