projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20111007-1-src
[rocksndiamonds.git]
/
src
/
tools.c
diff --git
a/src/tools.c
b/src/tools.c
index ba0ec81ca5ffe036047f565321ccb0f5793cfe47..588f7f8eda16162eaa538c7f5b815a7419aa93e9 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,
@@
-2463,7
+2478,7
@@
void AnimateEnvelope(int envelope_nr, int anim_mode, int action)
int mask_mode = (src_bitmap != NULL ? BLIT_MASKED : BLIT_ON_BACKGROUND);
boolean ffwd_delay = (tape.playing && tape.fast_forward);
boolean no_delay = (tape.warp_forward);
int mask_mode = (src_bitmap != NULL ? BLIT_MASKED : BLIT_ON_BACKGROUND);
boolean ffwd_delay = (tape.playing && tape.fast_forward);
boolean no_delay = (tape.warp_forward);
- unsigned
long
anim_delay = 0;
+ unsigned
int
anim_delay = 0;
int frame_delay_value = (ffwd_delay ? FfwdFrameDelay : GameFrameDelay);
int anim_delay_value = (no_delay ? 0 : frame_delay_value);
int font_nr = FONT_ENVELOPE_1 + envelope_nr;
int frame_delay_value = (ffwd_delay ? FfwdFrameDelay : GameFrameDelay);
int anim_delay_value = (no_delay ? 0 : frame_delay_value);
int font_nr = FONT_ENVELOPE_1 + envelope_nr;
@@
-2525,7
+2540,7
@@
void AnimateEnvelopeDoor(char *text, int anim_mode, int action)
int mask_mode = (src_bitmap != NULL ? BLIT_MASKED : BLIT_ON_BACKGROUND);
boolean ffwd_delay = (tape.playing && tape.fast_forward);
boolean no_delay = (tape.warp_forward);
int mask_mode = (src_bitmap != NULL ? BLIT_MASKED : BLIT_ON_BACKGROUND);
boolean ffwd_delay = (tape.playing && tape.fast_forward);
boolean no_delay = (tape.warp_forward);
- unsigned
long
anim_delay = 0;
+ unsigned
int
anim_delay = 0;
int frame_delay_value = (ffwd_delay ? FfwdFrameDelay : GameFrameDelay);
int anim_delay_value = (no_delay ? 0 : frame_delay_value);
#if 1
int frame_delay_value = (ffwd_delay ? FfwdFrameDelay : GameFrameDelay);
int anim_delay_value = (no_delay ? 0 : frame_delay_value);
#if 1
@@
-3035,11
+3050,11
@@
static void DrawPreviewLevelLabelExt(int mode)
void DrawPreviewLevel(boolean restart)
{
void DrawPreviewLevel(boolean restart)
{
- static unsigned
long
scroll_delay = 0;
- static unsigned
long
label_delay = 0;
+ static unsigned
int
scroll_delay = 0;
+ static unsigned
int
label_delay = 0;
static int from_x, from_y, scroll_direction;
static int label_state, label_counter;
static int from_x, from_y, scroll_direction;
static int label_state, label_counter;
- unsigned
long
scroll_delay_value = preview.step_delay;
+ unsigned
int
scroll_delay_value = preview.step_delay;
boolean show_level_border = (BorderElement != EL_EMPTY);
int level_xsize = lev_fieldx + (show_level_border ? 2 : 0);
int level_ysize = lev_fieldy + (show_level_border ? 2 : 0);
boolean show_level_border = (BorderElement != EL_EMPTY);
int level_xsize = lev_fieldx + (show_level_border ? 2 : 0);
int level_ysize = lev_fieldy + (show_level_border ? 2 : 0);
@@
-4293,8
+4308,8
@@
unsigned int MoveDoor(unsigned int door_state)
{
static int door1 = DOOR_OPEN_1;
static int door2 = DOOR_CLOSE_2;
{
static int door1 = DOOR_OPEN_1;
static int door2 = DOOR_CLOSE_2;
- unsigned
long
door_delay = 0;
- unsigned
long
door_delay_value;
+ unsigned
int
door_delay = 0;
+ unsigned
int
door_delay_value;
int stepsize = 1;
if (door_1.width < 0 || door_1.width > DXSIZE)
int stepsize = 1;
if (door_1.width < 0 || door_1.width > DXSIZE)
@@
-4713,7
+4728,7
@@
void CreateToolButtons()
Bitmap *deco_bitmap = None;
int deco_x = 0, deco_y = 0, deco_xpos = 0, deco_ypos = 0;
struct GadgetInfo *gi;
Bitmap *deco_bitmap = None;
int deco_x = 0, deco_y = 0, deco_xpos = 0, deco_ypos = 0;
struct GadgetInfo *gi;
- unsigned
long
event_mask;
+ unsigned
int
event_mask;
int gd_xoffset, gd_yoffset;
int gd_x1, gd_x2, gd_y;
int id = i;
int gd_xoffset, gd_yoffset;
int gd_x1, gd_x2, gd_y;
int id = i;
@@
-7196,7
+7211,7
@@
int getGameFrameDelay_EM(int native_em_game_frame_delay)
return game_frame_delay_value;
}
return game_frame_delay_value;
}
-unsigned int InitRND(
long
seed)
+unsigned int InitRND(
int
seed)
{
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
return InitEngineRandom_EM(seed);
{
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)
return InitEngineRandom_EM(seed);