X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2FDDScrollBuffer.c;h=48a35ef12084aeb44410caeedc9b2586c91e2af1;hb=3c080c7b33b6dfcc6e0039b592c5f268535873e7;hp=09d037933ea70cb821d14046c4733e9382c6a63f;hpb=2d62255a9cc1edc3692c2597cf338ce50744da96;p=rocksndiamonds.git diff --git a/src/game_sp/DDScrollBuffer.c b/src/game_sp/DDScrollBuffer.c index 09d03793..48a35ef1 100644 --- a/src/game_sp/DDScrollBuffer.c +++ b/src/game_sp/DDScrollBuffer.c @@ -131,7 +131,7 @@ void DDScrollBuffer_Cls(int BackColor) Buffer.BltColorFill(EmptyRect, BackColor); } -void DDScrollBuffer_Blt() +void DDScrollBuffer_Blt_Ext(Bitmap *target_bitmap) { RECT DR, SR; long tX, tY, L; @@ -182,16 +182,29 @@ void DDScrollBuffer_Blt() #endif #if 0 - BlitBitmap(screenBitmap, window, - 1600, 320, - SCR_FIELDX * TILEX, SCR_FIELDY * TILEY, SX, SY); -#else - BlitBitmap(screenBitmap, window, + /* !!! quick and dirty -- FIX THIS !!! */ + if (tape.playing && tape.fast_forward && + target_bitmap == window && + (FrameCounter % 2) != 0) + printf("::: FrameCounter == %d\n", FrameCounter); +#endif + +#if 1 + SyncDisplay(); +#endif + +#if 1 + BlitBitmap(screenBitmap, target_bitmap, SR.left, SR.top, SCR_FIELDX * TILEX, SCR_FIELDY * TILEY, SX, SY); #endif +#if 1 + FlushDisplay(); +#endif + return; + #endif // DDraw.WaitForVerticalBlank DDWAITVB_BLOCKBEGIN, 0 @@ -305,6 +318,11 @@ void DDScrollBuffer_Blt() // BltEH: } +void DDScrollBuffer_Blt() +{ + DDScrollBuffer_Blt_Ext(window); +} + void DDScrollBuffer_ScrollTo(int X, int Y) { if (NoDisplayFlag)