X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fcartoons.c;h=f85d0263815e072e541791238be2d570159a837f;hp=fc465fac037bc4dbb32c49b6d7d40a2a8422c749;hb=abe44529b439ad39b4d8dbf19cbd67c9b9844279;hpb=2d235297197dd0c325184f7fc401d9c5c41c2616 diff --git a/src/cartoons.c b/src/cartoons.c index fc465fac..f85d0263 100644 --- a/src/cartoons.c +++ b/src/cartoons.c @@ -1,15 +1,13 @@ -/*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * -*----------------------------------------------------------* -* (c) 1995-2002 Artsoft Entertainment * -* Holger Schemel * -* Detmolder Strasse 189 * -* 33604 Bielefeld * -* Germany * -* e-mail: info@artsoft.org * -*----------------------------------------------------------* -* cartoons.c * -***********************************************************/ +// ============================================================================ +// Rocks'n'Diamonds - McDuffin Strikes Back! +// ---------------------------------------------------------------------------- +// (c) 1995-2014 by Artsoft Entertainment +// Holger Schemel +// info@artsoft.org +// http://www.artsoft.org/ +// ---------------------------------------------------------------------------- +// cartoons.c +// ============================================================================ #include "cartoons.h" #include "main.h" @@ -23,30 +21,21 @@ static struct ToonInfo toons[MAX_NUM_TOONS]; static void PrepareBackbuffer() { - if (game_status == GAME_MODE_PLAYING && - level.game_engine_type == GAME_ENGINE_TYPE_EM) + if (game_status != GAME_MODE_PLAYING) + return; + +#if 1 + BlitScreenToBitmap(backbuffer); +#else + if (level.game_engine_type == GAME_ENGINE_TYPE_EM) { BlitScreenToBitmap_EM(backbuffer); - - return; } - - /* fill empty backbuffer for animation functions */ - if (setup.direct_draw && game_status == GAME_MODE_PLAYING) + else if (level.game_engine_type == GAME_ENGINE_TYPE_SP) { - int xx, yy; - - SetDrawtoField(DRAW_BACKBUFFER); - - for (xx = 0; xx < SCR_FIELDX; xx++) - for (yy = 0; yy < SCR_FIELDY; yy++) - DrawScreenField(xx, yy); - DrawAllPlayers(); - - SetDrawtoField(DRAW_DIRECT); + BlitScreenToBitmap_SP(backbuffer); } - - if (setup.soft_scrolling && game_status == GAME_MODE_PLAYING) + else if (setup.soft_scrolling) /* GAME_ENGINE_TYPE_RND */ { int fx = FX, fy = FY; @@ -55,20 +44,12 @@ static void PrepareBackbuffer() BlitBitmap(fieldbuffer, backbuffer, fx, fy, SXSIZE, SYSIZE, SX, SY); } +#endif } boolean ToonNeedsRedraw() { -#if 1 return TRUE; -#else - return (game_status == GAME_MODE_INFO || - game_status == GAME_MODE_LEVELS || - game_status == GAME_MODE_SETUP || - (game_status == GAME_MODE_MAIN && - ((redraw_mask & REDRAW_MICROLEVEL) || - (redraw_mask & REDRAW_MICROLABEL)))); -#endif } void InitToons() @@ -76,10 +57,10 @@ void InitToons() int num_toons = MAX_NUM_TOONS; int i; - if (global.num_toons > 0 && global.num_toons < MAX_NUM_TOONS) + if (global.num_toons >= 0 && global.num_toons < MAX_NUM_TOONS) num_toons = global.num_toons; - for (i=0; i < num_toons; i++) + for (i = 0; i < num_toons; i++) { int graphic = IMG_TOON_1 + i; struct FileInfo *image = getImageListEntryFromImageID(graphic); @@ -104,7 +85,11 @@ void InitToons() toons[i].position = image->parameter[GFX_ARG_POSITION]; } +#if 1 + InitToonScreen(bitmap_db_toons, +#else InitToonScreen(bitmap_db_door, +#endif BackToFront, PrepareBackbuffer, ToonNeedsRedraw, toons, num_toons, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE,