case EL_SPIELFIGUR:
case EL_SPIELER1:
Feld[x][y] = EL_LEERRAUM;
- JX = x;
- JY = y;
+ JX = lastJX = x;
+ JY = lastJY = y;
break;
case EL_SPIELER2:
Feld[x][y] = EL_LEERRAUM;
}
}
}
-
- /*
- if (PlayerMovPos)
- ScrollFigure(0);
-
- DrawPlayerField();
- */
-
}
if (TimeLeft>0 && TimeFrames>=25 && !tape.pausing)
KillHero();
}
- /*
- if (PlayerMovPos)
- ScrollFigure(0);
- */
-
-
- /*
DrawPlayerField();
- */
-
-
- DrawPlayerField();
-
BackToFront();
}
void ScrollLevel(int dx, int dy)
{
+ int softscroll_offset = (soft_scrolling_on ? TILEX : 0);
int x,y;
- int softscroll_offset = (FX == TILEX ? TILEX : 0);
-
- /*
- if (soft_scrolling_on)
- {
- ScreenMovPos = PlayerMovPos;
- redraw_mask |= REDRAW_FIELD;
- }
- */
-
ScreenMovPos = PlayerMovPos;
- if (soft_scrolling_on)
- {
- redraw_mask |= REDRAW_FIELD;
- }
-
XCopyArea(display,drawto_field,drawto_field,gc,
FX + TILEX*(dx==-1) - softscroll_offset,
int element;
int can_move;
-/*
- int old_move_dir = PlayerMovDir;
-*/
-
if (PlayerGone || (!dx && !dy))
return(MF_NO_ACTION);
dx > 0 ? MV_RIGHT :
dy < 0 ? MV_UP :
dy > 0 ? MV_DOWN : MV_NO_MOVING);
-/*
- if (old_move_dir != PlayerMovDir)
- PlayerFrame = 0;
- else
- PlayerFrame = (PlayerFrame + 1) % 4;
-*/
if (!IN_LEV_FIELD(newJX,newJY))
return(MF_NO_ACTION);
if (PlayerGone || (!dx && !dy))
return(FALSE);
-/*
- if (!DelayReached(&move_delay,8) && !tape.playing)
- return(FALSE);
-*/
-
-/*
- if (!DelayReached(&move_delay,10) && !tape.playing)
- return(FALSE);
-*/
-
-/*
- if (!FrameReached(&move_delay,2) && !tape.playing)
- return(FALSE);
-*/
-
if (Movemethod == 0)
{
if (!DelayReached(&move_delay,Movespeed[0]) && !tape.playing)
return(FALSE);
}
-
if (last_move_dir & (MV_LEFT | MV_RIGHT))
{
if (!(moved |= MoveFigureOneStep(0,dy, dx,dy)))
last_move_dir = MV_NO_MOVING;
-
- /*
- if (moved |= MoveFigureOneStep(dx,0, dx,dy))
- moved |= MoveFigureOneStep(0,dy, dx,dy);
- else
- {
- moved |= MoveFigureOneStep(0,dy, dx,dy);
- moved |= MoveFigureOneStep(dx,0, dx,dy);
- }
- */
-
if (moved & MF_MOVING)
{
int old_scroll_x=scroll_x, old_scroll_y=scroll_y;
TestIfHeroHitsBadThing();
- /*
- BackToFront();
- */
-
if (PlayerGone)
RemoveHero();
if (init)
{
- /*
- if (PlayerMovPos && oldJX != -1 && oldJY != -1)
- {
- if (Feld[lastJX][lastJY] == EL_LEERRAUM)
- Feld[lastJX][lastJY] = EL_PLAYER_IS_LEAVING;
- DrawLevelElement(oldJX,oldJY, Feld[oldJX][oldJY]);
- DrawPlayerField();
- }
- */
-
if (oldJX != -1 && oldJY != -1)
- {
- /*
- if (Feld[lastJX][lastJY] == EL_LEERRAUM)
- Feld[lastJX][lastJY] = EL_PLAYER_IS_LEAVING;
- */
DrawLevelElement(oldJX,oldJY, Feld[oldJX][oldJY]);
- /*
- DrawLevelElement(lastJX,lastJY, Feld[lastJX][lastJY]);
- DrawPlayerField();
- */
- }
if (Feld[lastJX][lastJY] == EL_LEERRAUM)
Feld[lastJX][lastJY] = EL_PLAYER_IS_LEAVING;
oldJY = lastJY;
actual_frame_counter = FrameCounter;
- /*
- redraw[redraw_x1 + oldJX][redraw_y1 + oldJY] = 1;
- redraw_tiles++;
- */
-
- /*
- DrawLevelElement(oldJX,oldJY, Feld[oldJX][oldJY]);
- */
-
-
if (PlayerPushing)
{
int nextJX = JX + (JX - lastJX);
DrawLevelElement(nextJX,nextJY, EL_SOKOBAN_FELD_LEER);
else
DrawLevelElement(nextJX,nextJY, EL_LEERRAUM);
- }
-
+ }
DrawPlayerField();