projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
re-added variable to check if any global animation was clicked
[rocksndiamonds.git]
/
src
/
tools.c
diff --git
a/src/tools.c
b/src/tools.c
index 187fb00c70a4bed5324972bf034bf742e55d89d7..0817e3d864e656b081d0a6658a5ed4774402dd47 100644
(file)
--- a/
src/tools.c
+++ b/
src/tools.c
@@
-208,10
+208,10
@@
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;
int dx_var = dx * TILESIZE_VAR / TILESIZE;
int fx = FX;
@@
-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)
@@
-1059,7
+1064,8
@@
void FadeIn(int fade_mask)
void FadeOut(int fade_mask)
{
// update screen if areas covered by "fade_mask" and "redraw_mask" differ
void FadeOut(int fade_mask)
{
// update screen if areas covered by "fade_mask" and "redraw_mask" differ
- if (!equalRedrawMasks(fade_mask, redraw_mask))
+ if (!equalRedrawMasks(fade_mask, redraw_mask) &&
+ fade_type_skip != FADE_MODE_SKIP_FADE_OUT)
BackToFront();
SetScreenStates_BeforeFadingOut();
BackToFront();
SetScreenStates_BeforeFadingOut();
@@
-2840,7
+2846,7
@@
void ShowEnvelope(int envelope_nr)
AnimateEnvelope(envelope_nr, main_anim_mode, ACTION_OPENING);
if (tape.playing)
AnimateEnvelope(envelope_nr, main_anim_mode, ACTION_OPENING);
if (tape.playing)
- Delay(wait_delay_value);
+ Delay
_WithScreenUpdates
(wait_delay_value);
else
WaitForEventToContinue();
else
WaitForEventToContinue();
@@
-4356,6
+4362,8
@@
static int RequestHandleEvents(unsigned int req_state)
break;
default:
break;
default:
+ // only check clickable animations if no request gadget clicked
+ HandleGlobalAnimClicks(mx, my, button_status, FALSE);
break;
}
break;
}