projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20100719-1-src
[rocksndiamonds.git]
/
src
/
tools.c
diff --git
a/src/tools.c
b/src/tools.c
index ba0ec81ca5ffe036047f565321ccb0f5793cfe47..c89ef367bfee6a9f05ba0ac4ddddac863ffc445e 100644
(file)
--- a/
src/tools.c
+++ b/
src/tools.c
@@
-323,13
+323,6
@@
void BlitScreenToBitmap(Bitmap *target_bitmap)
fy += (ScreenMovDir & (MV_UP | MV_DOWN) ? ScreenGfxPos : 0);
#endif
fy += (ScreenMovDir & (MV_UP | MV_DOWN) ? ScreenGfxPos : 0);
#endif
- /* !!! THIS WORKS !!! */
-
- printf("::: (%d, %d) [(%d / %d, %d / %d)]\n",
- scroll_x, scroll_y,
- SBX_Left, SBX_Right,
- SBY_Upper, SBY_Lower);
-
ffx = (scroll_x - SBX_Left) * TILEX_VAR + dx_var;
ffy = (scroll_y - SBY_Upper) * TILEY_VAR + dy_var;
ffx = (scroll_x - SBX_Left) * TILEX_VAR + dx_var;
ffy = (scroll_y - SBY_Upper) * TILEY_VAR + dy_var;
@@
-338,11
+331,11
@@
void BlitScreenToBitmap(Bitmap *target_bitmap)
if (ffx < SBX_Right * TILEX_VAR + TILEX_VAR / 2 + TILEX_VAR)
fx += dx_var - MIN(ffx, TILEX_VAR / 2) + TILEX_VAR;
else
if (ffx < SBX_Right * TILEX_VAR + TILEX_VAR / 2 + TILEX_VAR)
fx += dx_var - MIN(ffx, TILEX_VAR / 2) + TILEX_VAR;
else
- fx += (dx > 0 ? TILEX_VAR : 0);
+ fx += (dx
_var
> 0 ? TILEX_VAR : 0);
}
else
{
}
else
{
- fx += dx;
+ fx += dx
_var
;
}
if (EVEN(SCR_FIELDY))
}
if (EVEN(SCR_FIELDY))
@@
-350,13
+343,21
@@
void BlitScreenToBitmap(Bitmap *target_bitmap)
if (ffy < SBY_Lower * TILEY_VAR + TILEY_VAR / 2 + TILEY_VAR)
fy += dy_var - MIN(ffy, TILEY_VAR / 2) + TILEY_VAR;
else
if (ffy < SBY_Lower * TILEY_VAR + TILEY_VAR / 2 + TILEY_VAR)
fy += dy_var - MIN(ffy, TILEY_VAR / 2) + TILEY_VAR;
else
- fy += (dy > 0 ? TILEY_VAR : 0);
+ fy += (dy
_var
> 0 ? TILEY_VAR : 0);
}
else
{
}
else
{
- fy += dy;
+ fy += dy
_var
;
}
}
+#if 0
+ printf("::: (%d, %d) [(%d / %d, %d / %d)] => %d, %d\n",
+ scroll_x, scroll_y,
+ SBX_Left, SBX_Right,
+ SBY_Upper, SBY_Lower,
+ fx, fy);
+#endif
+
if (border.draw_masked[GAME_MODE_PLAYING])
{
if (buffer != backbuffer)
if (border.draw_masked[GAME_MODE_PLAYING])
{
if (buffer != backbuffer)
@@
-394,6
+395,13
@@
void BackToFront()
if (redraw_mask & REDRAW_TILES && redraw_tiles > REDRAWTILES_THRESHOLD)
redraw_mask |= REDRAW_FIELD;
if (redraw_mask & REDRAW_TILES && redraw_tiles > REDRAWTILES_THRESHOLD)
redraw_mask |= REDRAW_FIELD;
+#if 0
+ /* !!! TEST ONLY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 */
+ /* (force full redraw) */
+ if (game_status == GAME_MODE_PLAYING)
+ redraw_mask |= REDRAW_FIELD;
+#endif
+
if (redraw_mask & REDRAW_FIELD)
redraw_mask &= ~REDRAW_TILES;
if (redraw_mask & REDRAW_FIELD)
redraw_mask &= ~REDRAW_TILES;
@@
-596,18
+604,22
@@
void BackToFront()
int sy = SY; // + (EVEN(SCR_FIELDY) ? TILEY_VAR / 2 : 0);
int dx = 0, dy = 0;
int sy = SY; // + (EVEN(SCR_FIELDY) ? TILEY_VAR / 2 : 0);
int dx = 0, dy = 0;
+ int dx_var = dx * TILESIZE_VAR / TILESIZE;
+ int dy_var = dy * TILESIZE_VAR / TILESIZE;
int ffx, ffy;
int fx = FX, fy = FY;
int ffx, ffy;
int fx = FX, fy = FY;
- ffx = (scroll_x - SBX_Left) * TILEX_VAR + dx * TILESIZE_VAR / TILESIZE;
- ffy = (scroll_y - SBY_Upper) * TILEY_VAR + dy * TILESIZE_VAR / TILESIZE;
+ int scr_fieldx = SCR_FIELDX + (EVEN(SCR_FIELDX) ? 2 : 0);
+ int scr_fieldy = SCR_FIELDY + (EVEN(SCR_FIELDY) ? 2 : 0);
+
+ ffx = (scroll_x - SBX_Left) * TILEX_VAR + dx_var;
+ ffy = (scroll_y - SBY_Upper) * TILEY_VAR + dy_var;
if (EVEN(SCR_FIELDX))
{
if (ffx < SBX_Right * TILEX_VAR + TILEX_VAR / 2 + TILEX_VAR)
{
if (EVEN(SCR_FIELDX))
{
if (ffx < SBX_Right * TILEX_VAR + TILEX_VAR / 2 + TILEX_VAR)
{
- fx = fx + dx * TILESIZE_VAR / TILESIZE - MIN(ffx, TILEX_VAR / 2) +
- TILEX_VAR;
+ fx += dx_var - MIN(ffx, TILEX_VAR / 2) + TILEX_VAR;
if (fx % TILEX_VAR)
sx -= TILEX_VAR / 2;
if (fx % TILEX_VAR)
sx -= TILEX_VAR / 2;
@@
-616,7
+628,7
@@
void BackToFront()
}
else
{
}
else
{
- fx
= fx - (dx <= 0 ? TILEX_VAR : 0) + TILEX_VAR
;
+ fx
+= (dx_var > 0 ? TILEX_VAR : 0)
;
}
}
}
}
@@
-624,8
+636,7
@@
void BackToFront()
{
if (ffy < SBY_Lower * TILEY_VAR + TILEY_VAR / 2 + TILEY_VAR)
{
{
if (ffy < SBY_Lower * TILEY_VAR + TILEY_VAR / 2 + TILEY_VAR)
{
- fy = fy + dy * TILESIZE_VAR / TILESIZE - MIN(ffy, TILEY_VAR / 2) +
- TILEY_VAR;
+ fy += dy_var - MIN(ffy, TILEY_VAR / 2) + TILEY_VAR;
if (fy % TILEY_VAR)
sy -= TILEY_VAR / 2;
if (fy % TILEY_VAR)
sy -= TILEY_VAR / 2;
@@
-634,12
+645,16
@@
void BackToFront()
}
else
{
}
else
{
- fy
= fy - (dy <= 0 ? TILEY_VAR : 0) + TILEY_VAR
;
+ fy
+= (dy_var > 0 ? TILEY_VAR : 0)
;
}
}
}
}
- for (x = 0; x < SCR_FIELDX; x++)
- for (y = 0 ; y < SCR_FIELDY; y++)
+#if 0
+ printf("::: %d, %d, %d, %d\n", sx, sy, SCR_FIELDX, SCR_FIELDY);
+#endif
+
+ for (x = 0; x < scr_fieldx; x++)
+ for (y = 0 ; y < scr_fieldy; y++)
if (redraw[redraw_x1 + x][redraw_y1 + y])
BlitBitmap(buffer, window,
FX + x * TILEX_VAR, FY + y * TILEY_VAR,
if (redraw[redraw_x1 + x][redraw_y1 + y])
BlitBitmap(buffer, window,
FX + x * TILEX_VAR, FY + y * TILEY_VAR,