X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Flogic.c;fp=src%2Fgame_em%2Flogic.c;h=b73edab2558584e6bc2d53475c04dd9aa81383b5;hb=8517e5eb6d3a4d17920a6705546d14593d3158e2;hp=61f3237c98727d3faf59b09a032954befe854406;hpb=26111e8a6e3efa228a897f120f45776ad60f2d48;p=rocksndiamonds.git diff --git a/src/game_em/logic.c b/src/game_em/logic.c index 61f3237c..b73edab2 100644 --- a/src/game_em/logic.c +++ b/src/game_em/logic.c @@ -777,6 +777,9 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy) if (dy) break; + if (game_em.use_push_delay && RANDOM(32) < 16) + goto stone_push_anim; + switch (cave[x+dx][y]) { case Xblank: @@ -817,6 +820,8 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy) break; } + stone_push_anim: + ply->anim = PLY_push_n + anim; break; @@ -824,6 +829,9 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy) if (dy) break; + if (game_em.use_push_delay && RANDOM(32) < 22) + goto bomb_push_anim; + switch (cave[x+dx][y]) { case Xblank: @@ -864,6 +872,8 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy) break; } + bomb_push_anim: + ply->anim = PLY_push_n + anim; break; @@ -871,6 +881,9 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy) if (dy) break; + if (game_em.use_push_delay && RANDOM(32) < 19) + goto nut_push_anim; + switch (cave[x+dx][y]) { case Xblank: @@ -911,6 +924,8 @@ static boolean player_digfield(struct PLAYER *ply, int dx, int dy) break; } + nut_push_anim: + ply->anim = PLY_push_n + anim; break; @@ -1469,6 +1484,8 @@ static void check_player(struct PLAYER *ply) ply->dynamite_cnt = 0; /* reset dynamite timer if we move */ + seed = game_em.random; + if (!ply->joy_snap) /* player wants to move */ { boolean moved = FALSE; @@ -1500,6 +1517,8 @@ static void check_player(struct PLAYER *ply) { game_em.any_player_snapping = player_digfield(ply, dx, dy); } + + game_em.random = seed; } static void set_nearest_player_xy(int x, int y, int *dx, int *dy)