- MovDelay[x][y]--;
- if (MovDelay[x][y])
- {
- if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
- {
- int frame = getGraphicAnimationFrame(IMG_PEARL_BREAKING,
- 8 - MovDelay[x][y]);
-
- DrawGraphic(SCREENX(x), SCREENY(y), IMG_PEARL_BREAKING, frame);
- }
-
- return;
- }
- }
-
- Feld[x][y] = EL_EMPTY;
- DrawLevelField(x, y);
-}
-#endif
-
-void SiebAktivieren(int x, int y, int type)
-{
- int graphic = (type == 1 ? IMG_MAGIC_WALL_FULL : IMG_BD_MAGIC_WALL_FULL);
-
- DrawLevelGraphicAnimation(x, y, graphic);
-}
-
-void CheckExit(int x, int y)
-{
- if (local_player->gems_still_needed > 0 ||
- local_player->sokobanfields_still_needed > 0 ||
- local_player->lights_still_needed > 0)
- return;
-
- Feld[x][y] = EL_EXIT_OPENING;
-
- PlaySoundLevelNearest(x, y, SND_EXIT_OPENING);
-}
-
-void CheckExitSP(int x, int y)
-{
- if (local_player->gems_still_needed > 0)
- return;
-
- Feld[x][y] = EL_SP_EXIT_OPEN;
-
- PlaySoundLevelNearest(x, y, SND_SP_EXIT_OPENING);
-}
-
-#if 1
-void AusgangstuerOeffnen(int x, int y)
-{
- int delay = 6;
-
- if (!MovDelay[x][y]) /* next animation frame */
- MovDelay[x][y] = 5 * delay;
-
- if (MovDelay[x][y]) /* wait some time before next frame */
- {
- int tuer;
-
- MovDelay[x][y]--;
- tuer = MovDelay[x][y] / delay;
-
- if (!(MovDelay[x][y] % delay))
- {
- if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
- {
- int frame = getGraphicAnimationFrame(IMG_EXIT_OPENING,
- 29 - MovDelay[x][y]);
-
- DrawGraphic(SCREENX(x), SCREENY(y), IMG_EXIT_OPENING, frame);
- }
- }
-
- if (MovDelay[x][y])
- return;
- }
-
- Feld[x][y] = EL_EXIT_OPEN;
- DrawLevelField(x, y);
-}
-#endif
-
-#if 1
-void OpenSwitchgate(int x, int y)
-{
- int delay = 6;
-
- if (!MovDelay[x][y]) /* next animation frame */
- MovDelay[x][y] = 5 * delay;
-
- if (MovDelay[x][y]) /* wait some time before next frame */
- {
- MovDelay[x][y]--;
-
- if (!(MovDelay[x][y] % delay))
- {
- if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
- {
- int frame = getGraphicAnimationFrame(IMG_SWITCHGATE_OPENING,
- 29 - MovDelay[x][y]);
-
- DrawGraphic(SCREENX(x), SCREENY(y), IMG_SWITCHGATE_OPENING, frame);
- }
- }
-
- if (MovDelay[x][y])
- return;
- }
-
- Feld[x][y] = EL_SWITCHGATE_OPEN;
- DrawLevelField(x, y);
-}
-#endif
-
-#if 1
-void CloseSwitchgate(int x, int y)
-{
- int delay = 6;
-
- if (!MovDelay[x][y]) /* next animation frame */
- MovDelay[x][y] = 5 * delay;
-
- if (MovDelay[x][y]) /* wait some time before next frame */
- {
- MovDelay[x][y]--;
-
- if (!(MovDelay[x][y] % delay))
- {
- if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
- {
- int frame = getGraphicAnimationFrame(IMG_SWITCHGATE_CLOSING,
- 29 - MovDelay[x][y]);
-
- DrawGraphic(SCREENX(x), SCREENY(y), IMG_SWITCHGATE_CLOSING, frame);
- }
- }
-
- if (MovDelay[x][y])
- return;
- }
-
- Feld[x][y] = EL_SWITCHGATE_CLOSED;
- DrawLevelField(x, y);
-}
-#endif
-
-#if 1
-void OpenTimegate(int x, int y)
-{
- int delay = 6;
-
- if (!MovDelay[x][y]) /* next animation frame */
- MovDelay[x][y] = 5 * delay;
-
- if (MovDelay[x][y]) /* wait some time before next frame */
- {
- MovDelay[x][y]--;
-
- if (!(MovDelay[x][y] % delay))
- {
- if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
- {
- int frame = getGraphicAnimationFrame(IMG_TIMEGATE_OPENING,
- 29 - MovDelay[x][y]);
-
- DrawGraphic(SCREENX(x), SCREENY(y), IMG_TIMEGATE_OPENING, frame);
- }
- }
-
- if (MovDelay[x][y])
- return;
- }
-
- Feld[x][y] = EL_TIMEGATE_OPEN;
- DrawLevelField(x, y);
-}
-#endif
-
-#if 1
-void CloseTimegate(int x, int y)
-{
- int delay = 6;
-
- if (!MovDelay[x][y]) /* next animation frame */
- MovDelay[x][y] = 5 * delay;
-
- if (MovDelay[x][y]) /* wait some time before next frame */
- {
- MovDelay[x][y]--;
-
- if (!(MovDelay[x][y] % delay))
- {
- if (IN_SCR_FIELD(SCREENX(x), SCREENY(y)))
- {
- int frame = getGraphicAnimationFrame(IMG_TIMEGATE_CLOSING,
- 29 - MovDelay[x][y]);
-
- DrawGraphic(SCREENX(x), SCREENY(y), IMG_TIMEGATE_CLOSING, frame);
- }
- }
-
- if (MovDelay[x][y])
- return;
- }
-
- Feld[x][y] = EL_TIMEGATE_CLOSED;
- DrawLevelField(x, y);
-}
-#endif
-
-static void CloseAllOpenTimegates()
-{
- int x, y;
-
- for (y=0; y<lev_fieldy; y++)
- {
- for (x=0; x<lev_fieldx; x++)