if (IN_LEV_FIELD(left_x, left_y) &&
(IS_FREE(left_x, left_y) ||
if (IN_LEV_FIELD(left_x, left_y) &&
(IS_FREE(left_x, left_y) ||
can_turn_left = TRUE;
if (IN_LEV_FIELD(right_x, right_y) &&
(IS_FREE(right_x, right_y) ||
can_turn_left = TRUE;
if (IN_LEV_FIELD(right_x, right_y) &&
(IS_FREE(right_x, right_y) ||
{
if (IN_LEV_FIELD(left_x, left_y) &&
(IS_FREE(left_x, left_y) ||
{
if (IN_LEV_FIELD(left_x, left_y) &&
(IS_FREE(left_x, left_y) ||
MovDir[x][y] = left_dir;
else if (!IN_LEV_FIELD(move_x, move_y) ||
(!IS_FREE(move_x, move_y) &&
MovDir[x][y] = left_dir;
else if (!IN_LEV_FIELD(move_x, move_y) ||
(!IS_FREE(move_x, move_y) &&
{
if (IN_LEV_FIELD(right_x, right_y) &&
(IS_FREE(right_x, right_y) ||
{
if (IN_LEV_FIELD(right_x, right_y) &&
(IS_FREE(right_x, right_y) ||
MovDir[x][y] = right_dir;
else if (!IN_LEV_FIELD(move_x, move_y) ||
(!IS_FREE(move_x, move_y) &&
MovDir[x][y] = right_dir;
else if (!IN_LEV_FIELD(move_x, move_y) ||
(!IS_FREE(move_x, move_y) &&
Moving2Blocked(x, y, &newx, &newy);
if (IN_LEV_FIELD(newx, newy) && (IS_FREE(newx, newy) ||
Moving2Blocked(x, y, &newx, &newy);
if (IN_LEV_FIELD(newx, newy) && (IS_FREE(newx, newy) ||
IS_FREE_OR_PLAYER(newx, newy)) ||
Feld[newx][newy] == EL_ACID))
return;
IS_FREE_OR_PLAYER(newx, newy)) ||
Feld[newx][newy] == EL_ACID))
return;
Moving2Blocked(x, y, &newx, &newy);
if (IN_LEV_FIELD(newx, newy) && (IS_FREE(newx, newy) ||
Moving2Blocked(x, y, &newx, &newy);
if (IN_LEV_FIELD(newx, newy) && (IS_FREE(newx, newy) ||
IS_FREE_OR_PLAYER(newx, newy)) ||
Feld[newx][newy] == EL_ACID))
return;
IS_FREE_OR_PLAYER(newx, newy)) ||
Feld[newx][newy] == EL_ACID))
return;
Moving2Blocked(x, y, &newx, &newy); /* get next screen position */
Moving2Blocked(x, y, &newx, &newy); /* get next screen position */
!PLAYER_PROTECTED(newx, newy))
{
#if 1
TestIfBadThingRunsIntoHero(x, y, MovDir[x][y]);
return;
#else
!PLAYER_PROTECTED(newx, newy))
{
#if 1
TestIfBadThingRunsIntoHero(x, y, MovDir[x][y]);
return;
#else
int element2 = (IN_LEV_FIELD(newx2, newy2) ?
MovingOrBlocked2Element(newx2, newy2) : EL_STEELWALL);
int element2 = (IN_LEV_FIELD(newx2, newy2) ?
MovingOrBlocked2Element(newx2, newy2) : EL_STEELWALL);
- if ((DONT_GO_TO(test_element) && good_move_dir == test_dir[i]) ||
- (DONT_TOUCH(test_element) && test_move_dir != test_dir[i]))
+ if ((DONT_RUN_INTO(test_element) && good_move_dir == test_dir[i]) ||
+ (DONT_TOUCH(test_element) && test_move_dir != test_dir[i]))
- if ((DONT_GO_TO(bad_element) && bad_move_dir == test_dir[i]) ||
- (DONT_TOUCH(bad_element) && test_move_dir != test_dir[i]))
+ if ((DONT_RUN_INTO(bad_element) && bad_move_dir == test_dir[i]) ||
+ (DONT_TOUCH(bad_element) && test_move_dir != test_dir[i]))
{
/* good thing is player or penguin that does not move away */
if (IS_PLAYER(test_x, test_y))
{
/* good thing is player or penguin that does not move away */
if (IS_PLAYER(test_x, test_y))