rnd-20100630-1-src
authorHolger Schemel <info@artsoft.org>
Wed, 30 Jun 2010 21:36:25 +0000 (23:36 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:59:42 +0000 (10:59 +0200)
src/conftime.h
src/game.c
src/main.h
src/tools.c

index 11e5c4fc602b5a8a268f4d1458af3d906c8ab9b3..0d45bca7affed63341460720b848c32f741bfb9b 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2010-06-28 20:54"
+#define COMPILE_DATE_STRING "2010-06-30 23:35"
index a88b3f04ec1a8525e904b45e13418c94580ea9c3..5a0a70b76f9cf6169f9ae91edf8c56904fb0469d 100644 (file)
@@ -4354,6 +4354,16 @@ void InitGame()
     SBY_Lower = lev_fieldy - SCR_FIELDY + 1;
   }
 
+#if NEW_TILESIZE
+#if 1
+  if (TILESIZE_VAR < TILESIZE && EVEN(SCR_FIELDX))
+  {
+    // SBX_Left--;
+    SBX_Right++;
+  }
+#endif
+#endif
+
   if (lev_fieldx + (SBX_Left == -1 ? 2 : 0) <= SCR_FIELDX)
     SBX_Left = SBX_Right = -1 * (SCR_FIELDX - lev_fieldx) / 2;
 
index 0c16dce67f1b54d3b4605be793fc2e337a45d96c..3fd8c9150f51bb390fff3f7b4ba1bf294d5b965d 100644 (file)
@@ -32,7 +32,7 @@
 
 
 #define NEW_TILESIZE                   1
-#define NEW_SCROLL                     0
+#define NEW_SCROLL                     1
 
 #define IMG_UNDEFINED                  (-1)
 #define IMG_EMPTY                      IMG_EMPTY_SPACE
index 9fa295648f06bf90b40fee431eaf6e43273eaffd..176b56f683c6ad6b05fcd7145344900251d6f357 100644 (file)
@@ -407,16 +407,60 @@ void BackToFront()
        int dx = (ScreenMovDir & (MV_LEFT | MV_RIGHT) ? ScreenGfxPos : 0);
        int dy = (ScreenMovDir & (MV_UP | MV_DOWN)    ? ScreenGfxPos : 0);
 
-       fx += dx * TILESIZE_VAR / TILESIZE;
-       fy += dy * TILESIZE_VAR / TILESIZE;
+       int bx1, bx2, ffx, ffy;
+
+       // fx += dx * TILESIZE_VAR / TILESIZE;
+       // fy += dy * TILESIZE_VAR / TILESIZE;
 #else
        fx += (ScreenMovDir & (MV_LEFT | MV_RIGHT) ? ScreenGfxPos : 0);
        fy += (ScreenMovDir & (MV_UP | MV_DOWN)    ? ScreenGfxPos : 0);
 #endif
 
+#if 1
+
 #if 0
-       printf("::: %d, %d [%d, %d] [%d, %d]\n",
-              fx, fy, FX, FY, ScreenMovDir, ScreenGfxPos);
+       bx1 = SBX_Left * TILEX_VAR  + TILEX_VAR / 2;
+       // bx1 = SBX_Left * TILEX_VAR;
+       bx2 = SBX_Right * TILEX_VAR - TILEX_VAR / 2;
+       ffx = scroll_x * TILEX_VAR + dx * TILESIZE_VAR / TILESIZE;
+
+       if (ffx > bx1) // && ffx < bx2)
+         fx += dx * TILESIZE_VAR / TILESIZE;
+
+       // fx += TILEX_VAR - (ffx - bx1) % TILEX_VAR;
+
+       printf("::: %d (%d, %d) (%d)\n", ffx, bx1, bx2, dx);
+
+#if 0
+       if (ffx > SBX_Left * TILEX_VAR)
+         fx -= MIN(ffx, TILEX_VAR / 2);
+       if (ffx > SBX_Left * TILEX_VAR && ffx < (SBX_Right + 1) * TILEX_VAR)
+         fx -= MIN(ffx, TILEX_VAR / 2);
+#endif
+
+#else
+       ffx = (scroll_x - SBX_Left) * TILEX_VAR + dx * TILESIZE_VAR / TILESIZE;
+
+       if (EVEN(SCR_FIELDX))
+       {
+         if (ffx < SBX_Right * TILEX_VAR + TILEX_VAR / 2)
+           fx = fx + dx * TILESIZE_VAR / TILESIZE - MIN(ffx, TILEX_VAR / 2);
+         else
+           fx = fx - (dx <= 0 ? TILEX_VAR : 0);
+
+         printf("::: %d (%d, %d) [%d] [%d] => %d\n",
+                ffx, SBX_Left * TILEX_VAR, SBX_Right * TILEX_VAR, dx, FX, fx);
+       }
+#endif
+
+#if 0
+       printf("::: %d, %d [%d, %d] [%d, %d] [%d, %d] [%d] [%d, %d]\n",
+              fx, fy, FX, FY, ScreenMovDir, ScreenGfxPos,
+              scroll_x, scroll_y,
+              ffx,
+              SBX_Left, SBX_Right);
+#endif
+
 #endif
 
 #if 0