X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftape.c;h=4f1239171c65ed91e7aa58b494bedddd9be5a9a8;hp=2ab6f4be8bbcdced5b641be9e27e10d2f5ca718b;hb=abe44529b439ad39b4d8dbf19cbd67c9b9844279;hpb=439b24a7e57f7af4081ef917fabe6b3cb78d902d diff --git a/src/tape.c b/src/tape.c index 2ab6f4be..4f123917 100644 --- a/src/tape.c +++ b/src/tape.c @@ -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()