rnd-20091124-2-src
authorHolger Schemel <info@artsoft.org>
Tue, 24 Nov 2009 22:03:11 +0000 (23:03 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:58:01 +0000 (10:58 +0200)
src/conftime.h
src/game_sp/DDScrollBuffer.c
src/game_sp/DDSpriteBuffer.c
src/game_sp/MainForm.c
src/game_sp/main_sp.h

index a8578e71f9df345cb6897011260041500f4766a6..abed863e9b0925a1eda38193ee2feecbedf8c3fd 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2009-11-24 01:16"
+#define COMPILE_DATE_STRING "2009-11-24 23:00"
index 859fb35d18e7cc83842101d17ae4790637e22be5..fdc925f2bbbec6fcff23e67c17114340c7a38d5f 100644 (file)
@@ -348,6 +348,36 @@ void BlitScreenToBitmap_SP(Bitmap *target_bitmap)
   sy = SY + (full_ysize < ysize ? (ysize - full_ysize) / 2 : 0);
 #endif
 
+#if 0
+  {
+    static int mScrollX_tmp = -1;
+    static int mScrollY_tmp = -1;
+
+    if (mScrollX != mScrollX_tmp || mScrollY != mScrollY_tmp)
+    {
+      printf("::: %ld, %ld\n", mScrollX, mScrollY);
+
+      mScrollX_tmp = mScrollX;
+      mScrollY_tmp = mScrollY;
+    }
+  }
+#endif
+
+#if 0
+  {
+    static boolean x = 0;
+
+    if (x == 0)
+    {
+      printf("::: %d, %d (%d, %d) (%d, %d) [%ld, %ld] [%ld, %ld] \n",
+            sx, sy, xsize, ysize, full_xsize, full_ysize,
+            mScrollX, mScrollY, mScrollX_last, mScrollY_last);
+
+      x = 1;
+    }
+  }
+#endif
+
 #if 1
   if (!menBorder.Checked)
   {
@@ -356,6 +386,29 @@ void BlitScreenToBitmap_SP(Bitmap *target_bitmap)
   }
 #endif
 
+#if 0
+  if (mScrollX >= 0 && mScrollX <= 16)
+  {
+    px -= mScrollX;
+  }
+#if 0
+  else if (mScrollX >= 352 && mScrollX <= 368)
+  {
+    px -= mScrollX;
+  }
+#endif
+  else if (mScrollX >= 16) // && mScrollX <= 352)
+  {
+    px -= TILEX / 2;
+  }
+#endif
+
+#if 0
+  /* !!! TEST ONLY !!! */
+  px = py = 0;
+  sx = sy = SX;
+#endif
+
   BlitBitmap(screenBitmap, target_bitmap, px, py, sxsize, sysize, sx, sy);
 }
 
index 00e49d7ac02f62aaaac59c05e3445c853382f57a..872ded6f1a27b736c23d074c79b8520ba0109cbe 100644 (file)
@@ -179,10 +179,12 @@ static void Blt(int pX, int pY, int SpriteX, int SpriteY)
 
 #if 1
 
-  int sx1 = mScrollX_last - 2 * TILEX;
-  int sy1 = mScrollY_last - 2 * TILEY;
-  int sx2 = mScrollX_last + SXSIZE + 1 * TILEX;
-  int sy2 = mScrollY_last + SYSIZE + 1 * TILEY;
+  int scx = (mScrollX_last < 0 ? 0 : mScrollX_last);
+  int scy = (mScrollY_last < 0 ? 0 : mScrollY_last);
+  int sx1 = scx - 2 * TILEX;
+  int sy1 = scy - 2 * TILEY;
+  int sx2 = scx + SXSIZE + 1 * TILEX;
+  int sy2 = scy + SYSIZE + 1 * TILEY;
 
   int sx = pX - sx1;
   int sy = pY - sy1;
index a2dfbbeb100c21ec95681f311343691101a0d6e3..a9dc22c5789dbf8cbaa4a74693cfd4feb05e4b54 100644 (file)
@@ -1029,6 +1029,10 @@ void DisplayLevel()
   if (! LevelLoaded)
     return;
 
+  ClearRectangle(backbuffer, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE);
+  ClearRectangle(screenBitmap, 0, 0,
+                MAX_BUF_XSIZE * TILEX, MAX_BUF_YSIZE * TILEY);
+
 #if 1
   SetDisplayRegion();
 #endif
index 7e0480e2c9f6fea89103b15e52fbfa4329e8571f..008afa319562d3ab84a781ae6b70b84e2fa00194 100644 (file)
 #define SXSIZE                 (SCR_FIELDX * TILEX)
 #define SYSIZE                 (SCR_FIELDY * TILEY)
 
+#define REAL_SX                        (SX - 2)
+#define REAL_SY                        (SY - 2)
+#define FULL_SXSIZE            (2 + SXSIZE + 2)
+#define FULL_SYSIZE            (2 + SYSIZE + 2)
+
 
 /* ------------------------------------------------------------------------- */
 /* data structure definitions                                                */