if (!player->active || tape.pausing)
return 0;
+#if 0
+ printf("::: [%d %d %d %d] [%d %d]\n",
+ left, right, up, down, button1, button2);
+#endif
+
if (player_action)
{
#if 0
/* automatically move to the next field with double speed */
player->programmed_action = move_direction;
-#if 0
+#if 1
if (player->move_delay_reset_counter == 0)
{
player->move_delay_reset_counter = 2; /* two double speed steps */
DOUBLE_PLAYER_SPEED(player);
}
#else
- DOUBLE_PLAYER_SPEED(player);
-
player->move_delay_reset_counter = 2;
+
+ DOUBLE_PLAYER_SPEED(player);
#endif
PlayLevelSound(x, y, SND_CLASS_SP_PORT_PASSING);
DOUBLE_PLAYER_SPEED(player);
}
#else
- DOUBLE_PLAYER_SPEED(player);
-
player->move_delay_reset_counter = 2;
+
+ DOUBLE_PLAYER_SPEED(player);
#endif
PlayLevelSoundAction(x, y, ACTION_PASSING);
player->MovDir = snap_direction;
- player->is_moving = FALSE;
- player->is_digging = FALSE;
- player->is_collecting = FALSE;
+#if 1
+ if (player->MovPos == 0)
+#endif
+ {
+ player->is_moving = FALSE;
+ player->is_digging = FALSE;
+ player->is_collecting = FALSE;
+ }
player->is_dropping = FALSE;
player->is_snapping = TRUE;
- player->is_moving = FALSE;
- player->is_digging = FALSE;
- player->is_collecting = FALSE;
+#if 1
+ if (player->MovPos == 0)
+#endif
+ {
+ player->is_moving = FALSE;
+ player->is_digging = FALSE;
+ player->is_collecting = FALSE;
+ }
DrawLevelField(x, y);
BackToFront();