updated contact info in source file headers
[rocksndiamonds.git] / src / tape.c
index 2ab6f4be8bbcdced5b641be9e27e10d2f5ca718b..4f1239171c65ed91e7aa58b494bedddd9be5a9a8 100644 (file)
@@ -1,15 +1,13 @@
-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back!               *
-*----------------------------------------------------------*
-* (c) 1995-2006 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* tape.c                                                   *
-***********************************************************/
+// ============================================================================
+// Rocks'n'Diamonds - McDuffin Strikes Back!
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// tape.c
+// ============================================================================
 
 #include "libgame/libgame.h"
 
@@ -544,6 +542,52 @@ void DrawCompleteVideoDisplay()
         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
   BlitBitmap(graphic_info[IMG_GLOBAL_DOOR].bitmap, drawto,
             DOOR_GFX_PAGEX3, DOOR_GFX_PAGEY2,
             gfx.vxsize, gfx.vysize, gfx.vx, gfx.vy);
@@ -552,6 +596,9 @@ void DrawCompleteVideoDisplay()
             DOOR_GFX_PAGEY2 + VIDEO_CONTROL_YPOS,
             VIDEO_CONTROL_XSIZE, VIDEO_CONTROL_YSIZE,
             gfx.vx + VIDEO_CONTROL_XPOS, gfx.vy + VIDEO_CONTROL_YPOS);
+#endif
+
+#endif
 
   DrawVideoDisplay(VIDEO_ALL_OFF, 0);
 
@@ -587,8 +634,13 @@ void DrawCompleteVideoDisplay()
   }
 #endif
 
+#if 1
+  BlitBitmap(drawto, bitmap_db_door_2, gfx.vx, gfx.vy, gfx.vxsize, gfx.vysize,
+            0, 0);
+#else
   BlitBitmap(drawto, bitmap_db_door, gfx.vx, gfx.vy, gfx.vxsize, gfx.vysize,
             DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY2);
+#endif
 }
 
 void TapeDeactivateDisplayOn()
@@ -1125,6 +1177,10 @@ void TapeQuickLoad()
 
   if (CheckEngineSnapshot())
   {
+#if 0
+    printf("::: MARK 1\n");
+#endif
+
     TapeStartGamePlaying();
 
     LoadEngineSnapshot();
@@ -1141,6 +1197,10 @@ void TapeQuickLoad()
       return;
   }
 
+#if 0
+  printf("::: MARK 2\n");
+#endif
+
   TapeStop();
   TapeErase();
 
@@ -1433,6 +1493,9 @@ void MapTapeButtons()
 
   if (tape.recording || tape.playing)
     MapTapeWarpButton();
+
+  if (tape.show_game_buttons)
+    MapGameButtons();
 }
 
 void UnmapTapeButtons()