X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fcartoons.c;h=8ca4bdd5efde9c2e81ffbf96bc1796d1a2adcf17;hb=refs%2Fheads%2Freleases;hp=fc465fac037bc4dbb32c49b6d7d40a2a8422c749;hpb=d0fdd22ffb70dbd65efbabc6c509fb6ef75558c4;p=rocksndiamonds.git diff --git a/src/cartoons.c b/src/cartoons.c index fc465fac..8ca4bdd5 100644 --- a/src/cartoons.c +++ b/src/cartoons.c @@ -1,7 +1,7 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-2002 Artsoft Entertainment * +* (c) 1995-2006 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -23,30 +23,18 @@ 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 (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; @@ -59,16 +47,7 @@ static void PrepareBackbuffer() 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 +55,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 +83,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,