+#if 0
+ printf("::: %d, %d / %d, %d [%d] [%d, %d] [%d/%d]\n",
+ VX, VY, EX, EY, game_status, gfx.vx, gfx.vy,
+ tape.date, tape.length);
+#endif
+
+#if 1
+
+ struct GraphicInfo *g_tape = &graphic_info[IMG_BACKGROUND_TAPE];
+
+ /* draw tape background */
+ BlitBitmap(g_tape->bitmap, drawto, g_tape->src_x, g_tape->src_y,
+ gfx.vxsize, gfx.vysize, gfx.vx, gfx.vy);
+
+ /* draw tape buttons (forced) */
+ UnmapTapeButtons();
+ MapTapeButtons();
+
+#else
+
+#if 1
+ struct GraphicInfo *g_tape = &graphic_info[IMG_BACKGROUND_TAPE];
+ int tape_button_graphics[] =
+ {
+ IMG_TAPE_BUTTON_GFX_EJECT,
+ IMG_TAPE_BUTTON_GFX_STOP,
+ IMG_TAPE_BUTTON_GFX_PAUSE,
+ IMG_TAPE_BUTTON_GFX_RECORD,
+ IMG_TAPE_BUTTON_GFX_PLAY
+ };
+ struct Rect *tape_button_positions[] =
+ {
+ &tape.button.eject,
+ &tape.button.stop,
+ &tape.button.pause,
+ &tape.button.record,
+ &tape.button.play
+ };
+ int i;
+
+ BlitBitmap(g_tape->bitmap, drawto, g_tape->src_x, g_tape->src_y,
+ gfx.vxsize, gfx.vysize, gfx.vx, gfx.vy);
+
+ for (i = 0; i < SIZEOF_ARRAY_INT(tape_button_graphics); i++)
+ {
+ struct GraphicInfo *g = &graphic_info[tape_button_graphics[i]];
+ struct Rect *pos = tape_button_positions[i];
+
+ BlitBitmap(g->bitmap, drawto, g->src_x, g->src_y,
+ g->width, g->height, gfx.vx + pos->x, gfx.vy + pos->y);
+ }
+#else