projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
prepared some tool functions for the following commit
[rocksndiamonds.git]
/
src
/
tools.c
diff --git
a/src/tools.c
b/src/tools.c
index c2b1ec15c80b9e31719171cb40b7d587f4f33478..47c4b4f8536a52c4a6d10a51bdcc95a6e62cb4a4 100644
(file)
--- a/
src/tools.c
+++ b/
src/tools.c
@@
-208,17
+208,17
@@
int correctLevelPosY_EM(int ly)
return ly;
}
return ly;
}
-
static int getFieldbufferOffsetX_RND(void
)
+
int getFieldbufferOffsetX_RND(int dir, int pos
)
{
int full_lev_fieldx = lev_fieldx + (BorderElement != EL_EMPTY ? 2 : 0);
{
int full_lev_fieldx = lev_fieldx + (BorderElement != EL_EMPTY ? 2 : 0);
- int dx = (
ScreenMovDir & (MV_LEFT | MV_RIGHT) ? ScreenGfxP
os : 0);
+ int dx = (
dir & MV_HORIZONTAL ? p
os : 0);
int dx_var = dx * TILESIZE_VAR / TILESIZE;
int fx = FX;
if (EVEN(SCR_FIELDX))
{
int sbx_right = SBX_Right + (BorderElement != EL_EMPTY ? 1 : 0);
int dx_var = dx * TILESIZE_VAR / TILESIZE;
int fx = FX;
if (EVEN(SCR_FIELDX))
{
int sbx_right = SBX_Right + (BorderElement != EL_EMPTY ? 1 : 0);
- int ffx = (scroll_x - SBX_Left)
* TILEX_VAR + dx_var;
+ int ffx = (scroll_x - SBX_Left) * TILEX_VAR + dx_var;
if (ffx < sbx_right * TILEX_VAR + TILEX_VAR / 2)
fx += dx_var - MIN(ffx, TILEX_VAR / 2) + TILEX_VAR;
if (ffx < sbx_right * TILEX_VAR + TILEX_VAR / 2)
fx += dx_var - MIN(ffx, TILEX_VAR / 2) + TILEX_VAR;
@@
-241,10
+241,10
@@
static int getFieldbufferOffsetX_RND(void)
return fx;
}
return fx;
}
-
static int getFieldbufferOffsetY_RND(void
)
+
int getFieldbufferOffsetY_RND(int dir, int pos
)
{
int full_lev_fieldy = lev_fieldy + (BorderElement != EL_EMPTY ? 2 : 0);
{
int full_lev_fieldy = lev_fieldy + (BorderElement != EL_EMPTY ? 2 : 0);
- int dy = (
ScreenMovDir & (MV_UP | MV_DOWN) ? ScreenGfxP
os : 0);
+ int dy = (
dir & MV_VERTICAL ? p
os : 0);
int dy_var = dy * TILESIZE_VAR / TILESIZE;
int fy = FY;
int dy_var = dy * TILESIZE_VAR / TILESIZE;
int fy = FY;
@@
-276,7
+276,7
@@
static int getFieldbufferOffsetY_RND(void)
static int getLevelFromScreenX_RND(int sx)
{
static int getLevelFromScreenX_RND(int sx)
{
- int fx = getFieldbufferOffsetX_RND();
+ int fx = getFieldbufferOffsetX_RND(
ScreenMovDir, ScreenGfxPos
);
int dx = fx - FX;
int px = sx - SX;
int lx = LEVELX((px + dx) / TILESIZE_VAR);
int dx = fx - FX;
int px = sx - SX;
int lx = LEVELX((px + dx) / TILESIZE_VAR);
@@
-286,7
+286,7
@@
static int getLevelFromScreenX_RND(int sx)
static int getLevelFromScreenY_RND(int sy)
{
static int getLevelFromScreenY_RND(int sy)
{
- int fy = getFieldbufferOffsetY_RND();
+ int fy = getFieldbufferOffsetY_RND(
ScreenMovDir, ScreenGfxPos
);
int dy = fy - FY;
int py = sy - SY;
int ly = LEVELY((py + dy) / TILESIZE_VAR);
int dy = fy - FY;
int py = sy - SY;
int ly = LEVELY((py + dy) / TILESIZE_VAR);
@@
-691,12
+691,17
@@
void DrawTileCursor(int draw_target)
dst_x, dst_y);
}
dst_x, dst_y);
}
+void BlitScreenToBitmapExt_RND(Bitmap *target_bitmap, int fx, int fy)
+{
+ BlitBitmap(drawto_field, target_bitmap, fx, fy, SXSIZE, SYSIZE, SX, SY);
+}
+
void BlitScreenToBitmap_RND(Bitmap *target_bitmap)
{
void BlitScreenToBitmap_RND(Bitmap *target_bitmap)
{
- int fx = getFieldbufferOffsetX_RND();
- int fy = getFieldbufferOffsetY_RND();
+ int fx = getFieldbufferOffsetX_RND(
ScreenMovDir, ScreenGfxPos
);
+ int fy = getFieldbufferOffsetY_RND(
ScreenMovDir, ScreenGfxPos
);
- Blit
Bitmap(drawto_field, target_bitmap, fx, fy, SXSIZE, SYSIZE, SX, SY
);
+ Blit
ScreenToBitmapExt_RND(target_bitmap, fx, fy
);
}
void BlitScreenToBitmap(Bitmap *target_bitmap)
}
void BlitScreenToBitmap(Bitmap *target_bitmap)