{
int i;
int element = Feld[ax][ay];
+ int graphic = el2img(element);
int newax = ax, neway = ay;
static int xy[4][2] =
{
return;
}
+ if (IS_ANIMATED(graphic))
+ DrawLevelGraphicAnimationIfNeeded(ax, ay, graphic);
+
if (!MovDelay[ax][ay]) /* start making new amoeba field */
MovDelay[ax][ay] = RND(FRAMES_PER_SECOND * 25 / (1 + level.amoeba_speed));
static int life[4] = { 2, 3, 3, 3 }; /* parameters for "game of life" */
int life_time = 40;
int element = Feld[ax][ay];
+ int graphic = el2img(element);
boolean changed = FALSE;
+ if (IS_ANIMATED(graphic))
+ DrawLevelGraphicAnimationIfNeeded(ax, ay, graphic);
+
if (Stop[ax][ay])
return;
if (local_player->gems_still_needed > 0 ||
local_player->sokobanfields_still_needed > 0 ||
local_player->lights_still_needed > 0)
+ {
+ int element = Feld[x][y];
+ int graphic = el2img(element);
+
+ if (IS_ANIMATED(graphic))
+ DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
+
return;
+ }
Feld[x][y] = EL_EXIT_OPENING;
void CheckExitSP(int x, int y)
{
if (local_player->gems_still_needed > 0)
+ {
+ int element = Feld[x][y];
+ int graphic = el2img(element);
+
+ if (IS_ANIMATED(graphic))
+ DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
+
return;
+ }
Feld[x][y] = EL_SP_EXIT_OPEN;
void MauerAbleger(int ax, int ay)
{
int element = Feld[ax][ay];
+ int graphic = el2img(element);
boolean oben_frei = FALSE, unten_frei = FALSE;
boolean links_frei = FALSE, rechts_frei = FALSE;
boolean oben_massiv = FALSE, unten_massiv = FALSE;
boolean links_massiv = FALSE, rechts_massiv = FALSE;
boolean new_wall = FALSE;
+ if (IS_ANIMATED(graphic))
+ DrawLevelGraphicAnimationIfNeeded(ax, ay, graphic);
+
if (!MovDelay[ax][ay]) /* start building new wall */
MovDelay[ax][ay] = 6;
element = Feld[x][y];
graphic = el2img(element);
-#if 1
if (graphic_info[graphic].anim_global_sync)
GfxFrame[x][y] = FrameCounter;
-#endif
if (ANIM_MODE(graphic) == ANIM_RANDOM &&
IS_NEXT_FRAME(GfxFrame[x][y], graphic))
if (IS_INACTIVE(element))
{
-
-#if 1
if (IS_ANIMATED(graphic))
DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
-#endif
continue;
}
if (IS_GEM(element) || element == EL_SP_INFOTRON)
EdelsteinFunkeln(x, y);
}
-
-#if 1
else if ((element == EL_ACID ||
element == EL_EXIT_OPEN ||
element == EL_SP_EXIT_OPEN ||
element == EL_SHIELD_DEADLY) &&
IS_ANIMATED(graphic))
DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
-#endif
-
else if (IS_MOVING(x, y))
ContinueMoving(x, y);
else if (IS_ACTIVE_BOMB(element))
AmoebeWaechst(x, y);
else if (element == EL_AMOEBA_SHRINKING)
AmoebaDisappearing(x, y);
-
#if !USE_NEW_AMOEBA_CODE
else if (IS_AMOEBALIVE(element))
AmoebeAbleger(x, y);
#endif
-
else if (element == EL_GAMEOFLIFE || element == EL_BIOMAZE)
Life(x, y);
-#if 0
- else if (element == EL_ROBOT_WHEEL_ACTIVE)
- RobotWheel(x, y);
- else if (element == EL_TIMEGATE_SWITCH_ACTIVE)
- TimegateWheel(x, y);
-#endif
-#if 0
- else if (element == EL_ACID_SPLASH_LEFT ||
- element == EL_ACID_SPLASH_RIGHT)
- SplashAcid(x, y);
-#endif
-#if 0
- else if (element == EL_NUT_CRACKING)
- NussKnacken(x, y);
- else if (element == EL_PEARL_BREAKING)
- BreakingPearl(x, y);
-#endif
else if (element == EL_EXIT_CLOSED)
CheckExit(x, y);
else if (element == EL_SP_EXIT_CLOSED)
CheckExitSP(x, y);
-#if 0
- else if (element == EL_EXIT_OPENING)
- AusgangstuerOeffnen(x, y);
-#endif
else if (element == EL_WALL_GROWING_ACTIVE)
MauerWaechst(x, y);
else if (element == EL_WALL_GROWING ||
MauerAbleger(x, y);
else if (element == EL_FLAMES)
CheckForDragon(x, y);
-#if 0
- else if (element == EL_SP_BUGGY_BASE ||
- element == EL_SP_BUGGY_BASE_ACTIVATING ||
- element == EL_SP_BUGGY_BASE_ACTIVE)
- CheckBuggyBase(x, y);
- else if (element == EL_TRAP ||
- element == EL_TRAP_ACTIVE)
- CheckTrap(x, y);
- else if (IS_BELT_ACTIVE(element))
- DrawBeltAnimation(x, y, element);
- else if (element == EL_SWITCHGATE_OPENING)
- OpenSwitchgate(x, y);
- else if (element == EL_SWITCHGATE_CLOSING)
- CloseSwitchgate(x, y);
- else if (element == EL_TIMEGATE_OPENING)
- OpenTimegate(x, y);
- else if (element == EL_TIMEGATE_CLOSING)
- CloseTimegate(x, y);
-#endif
-
else if (IS_AUTO_CHANGING(element))
ChangeElement(x, y);
-
-#if 1
else if (element == EL_EXPLOSION)
; /* drawing of correct explosion animation is handled separately */
else if (IS_ANIMATED(graphic))
DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
-#endif
if (IS_BELT_ACTIVE(element))
PlaySoundLevelAction(x, y, ACTION_ACTIVE);