X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftools.c;h=3015b1adad66ea0db1439f7b29fe7815d89de503;hb=2e9b81c595b0150da80f8bf5ee56a74240fda6c1;hp=f0423cc622c429f0b9d2005e45ab647e8a484027;hpb=79411a5006963926966da0465fd46344a34a57fe;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index f0423cc6..3015b1ad 100644 --- a/src/tools.c +++ b/src/tools.c @@ -402,14 +402,14 @@ void SetBorderElement() { int x, y; - BorderElement = EL_LEERRAUM; + BorderElement = EL_EMPTY; - for(y=0; yGfxPos) { - if (Feld[next_jx][next_jy] == EL_SOKOBAN_FELD_VOLL) - DrawLevelElement(next_jx, next_jy, EL_SOKOBAN_FELD_LEER); + if (Feld[next_jx][next_jy] == EL_SOKOBAN_FIELD_FULL) + DrawLevelElement(next_jx, next_jy, EL_SOKOBAN_FIELD_EMPTY); else - DrawLevelElement(next_jx, next_jy, EL_LEERRAUM); + DrawLevelElement(next_jx, next_jy, EL_EMPTY); } else DrawLevelField(next_jx, next_jy); @@ -505,7 +505,7 @@ void DrawPlayer(struct PlayerInfo *player) else if (!IS_ACTIVE_BOMB(element)) DrawLevelField(jx, jy); else - DrawLevelElement(jx, jy, EL_LEERRAUM); + DrawLevelElement(jx, jy, EL_EMPTY); /* draw player himself */ @@ -605,8 +605,8 @@ void DrawPlayer(struct PlayerInfo *player) { int px = SCREENX(next_jx), py = SCREENY(next_jy); - if (element == EL_SOKOBAN_FELD_LEER || - Feld[next_jx][next_jy] == EL_SOKOBAN_FELD_VOLL) + if (element == EL_SOKOBAN_FIELD_EMPTY || + Feld[next_jx][next_jy] == EL_SOKOBAN_FIELD_FULL) DrawGraphicShiftedThruMask(px, py, sxx, syy, GFX_SOKOBAN_OBJEKT, NO_CUTTING); else @@ -614,7 +614,7 @@ void DrawPlayer(struct PlayerInfo *player) int element = Feld[next_jx][next_jy]; int graphic = el2gfx(element); - if ((element == EL_FELSBROCKEN || + if ((element == EL_ROCK || element == EL_SP_ZONK || element == EL_BD_ROCK) && sxx) { @@ -653,7 +653,7 @@ void DrawPlayer(struct PlayerInfo *player) DrawGraphicThruMask(sx, sy, graphic + phase); } - if (player_is_moving && last_element == EL_EXPLODING) + if (player_is_moving && last_element == EL_EXPLOSION) { int phase = Frame[last_jx][last_jy]; int delay = 2; @@ -1318,7 +1318,7 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element, int phase2 = phase8 / 4; int dir = MovDir[ux][uy]; - if (element == EL_PACMAN || element == EL_KAEFER || element == EL_FLIEGER) + if (element == EL_PACMAN || element == EL_BUG || element == EL_SPACESHIP) { graphic += 1 * !phase2; @@ -1346,37 +1346,37 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element, { graphic = GFX2_SP_ELECTRON + getGraphicAnimationPhase(8, 2, ANIM_NORMAL); } - else if (element == EL_MOLE || element == EL_PINGUIN || - element == EL_SCHWEIN || element == EL_DRACHE) + else if (element == EL_MOLE || element == EL_PENGUIN || + element == EL_PIG || element == EL_DRAGON) { if (dir == MV_LEFT) graphic = (element == EL_MOLE ? GFX_MOLE_LEFT : - element == EL_PINGUIN ? GFX_PINGUIN_LEFT : - element == EL_SCHWEIN ? GFX_SCHWEIN_LEFT : GFX_DRACHE_LEFT); + element == EL_PENGUIN ? GFX_PINGUIN_LEFT : + element == EL_PIG ? GFX_SCHWEIN_LEFT : GFX_DRACHE_LEFT); else if (dir == MV_RIGHT) graphic = (element == EL_MOLE ? GFX_MOLE_RIGHT : - element == EL_PINGUIN ? GFX_PINGUIN_RIGHT : - element == EL_SCHWEIN ? GFX_SCHWEIN_RIGHT : GFX_DRACHE_RIGHT); + element == EL_PENGUIN ? GFX_PINGUIN_RIGHT : + element == EL_PIG ? GFX_SCHWEIN_RIGHT : GFX_DRACHE_RIGHT); else if (dir == MV_UP) graphic = (element == EL_MOLE ? GFX_MOLE_UP : - element == EL_PINGUIN ? GFX_PINGUIN_UP : - element == EL_SCHWEIN ? GFX_SCHWEIN_UP : GFX_DRACHE_UP); + element == EL_PENGUIN ? GFX_PINGUIN_UP : + element == EL_PIG ? GFX_SCHWEIN_UP : GFX_DRACHE_UP); else graphic = (element == EL_MOLE ? GFX_MOLE_DOWN : - element == EL_PINGUIN ? GFX_PINGUIN_DOWN : - element == EL_SCHWEIN ? GFX_SCHWEIN_DOWN : GFX_DRACHE_DOWN); + element == EL_PENGUIN ? GFX_PINGUIN_DOWN : + element == EL_PIG ? GFX_SCHWEIN_DOWN : GFX_DRACHE_DOWN); graphic += phase4; } - else if (element == EL_SONDE) + else if (element == EL_SATELLITE) { graphic = GFX_SONDE_START + getGraphicAnimationPhase(8, 2, ANIM_NORMAL); } - else if (element == EL_SALZSAEURE) + else if (element == EL_ACID) { graphic = GFX_GEBLUBBER + getGraphicAnimationPhase(4, 10, ANIM_NORMAL); } - else if (element == EL_BUTTERFLY || element == EL_FIREFLY) + else if (element == EL_BD_BUTTERFLY || element == EL_BD_FIREFLY) { graphic += !phase2; } @@ -1384,7 +1384,7 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element, { graphic += phase4; } - else if ((element == EL_FELSBROCKEN || + else if ((element == EL_ROCK || element == EL_SP_ZONK || element == EL_BD_ROCK || element == EL_SP_INFOTRON || @@ -1393,7 +1393,7 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element, { if (uy >= lev_fieldy-1 || !IS_BELT(Feld[ux][uy+1])) { - if (element == EL_FELSBROCKEN || + if (element == EL_ROCK || element == EL_SP_ZONK || element == EL_BD_ROCK) { @@ -1408,21 +1408,21 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element, graphic += phase2; } } - else if (element == EL_MAGIC_WALL_EMPTY || + else if (element == EL_MAGIC_WALL_ACTIVE || element == EL_MAGIC_WALL_EMPTYING || - element == EL_MAGIC_WALL_BD_EMPTY || - element == EL_MAGIC_WALL_BD_EMPTYING || + element == EL_BD_MAGIC_WALL_ACTIVE || + element == EL_BD_MAGIC_WALL_EMPTYING || element == EL_MAGIC_WALL_FULL || - element == EL_MAGIC_WALL_BD_FULL) + element == EL_BD_MAGIC_WALL_FULL) { graphic += 3 + getGraphicAnimationPhase(4, 4, ANIM_REVERSE); } else if (IS_AMOEBOID(element) || element == EL_AMOEBA_DRIPPING) { - graphic = (element == EL_AMOEBE_TOT ? GFX_AMOEBE_TOT : GFX_AMOEBE_LEBT); + graphic = (element == EL_AMOEBA_DEAD ? GFX_AMOEBE_TOT : GFX_AMOEBE_LEBT); graphic += (x + 2 * y + 4) % 4; } - else if (element == EL_MAUER_LEBT) + else if (element == EL_WALL_GROWING) { boolean links_massiv = FALSE, rechts_massiv = FALSE; @@ -1438,14 +1438,16 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element, else if (rechts_massiv) graphic = GFX_MAUER_L; } - else if ((element == EL_INVISIBLE_STEEL || - element == EL_UNSICHTBAR || - element == EL_SAND_INVISIBLE) && game.light_time_left) +#if 0 + else if ((element == EL_INVISIBLE_STEELWALL || + element == EL_INVISIBLE_WALL || + element == EL_INVISIBLE_SAND) && game.light_time_left) { - graphic = (element == EL_INVISIBLE_STEEL ? GFX_INVISIBLE_STEEL_ON : - element == EL_UNSICHTBAR ? GFX_UNSICHTBAR_ON : + graphic = (element == EL_INVISIBLE_STEELWALL ? GFX_INVISIBLE_STEEL_ON : + element == EL_INVISIBLE_WALL ? GFX_UNSICHTBAR_ON : GFX_SAND_INVISIBLE_ON); } +#endif if (dx || dy) DrawGraphicShifted(x, y, dx, dy, graphic, cut_mode, mask_mode); @@ -1474,8 +1476,8 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element, ; } #if 0 - else if (element == EL_PACMAN || element == EL_KAEFER || - element == EL_FLIEGER) + else if (element == EL_PACMAN || element == EL_BUG || + element == EL_SPACESHIP) { graphic += 1 * !phase2; @@ -1504,29 +1506,29 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element, graphic = GFX2_SP_ELECTRON + getGraphicAnimationPhase(8, 2, ANIM_NORMAL); } #endif - else if (element == EL_MOLE || element == EL_PINGUIN || - element == EL_SCHWEIN || element == EL_DRACHE) + else if (element == EL_MOLE || element == EL_PENGUIN || + element == EL_PIG || element == EL_DRAGON) { if (dir == MV_LEFT) graphic = (element == EL_MOLE ? GFX_MOLE_LEFT : - element == EL_PINGUIN ? GFX_PINGUIN_LEFT : - element == EL_SCHWEIN ? GFX_SCHWEIN_LEFT : GFX_DRACHE_LEFT); + element == EL_PENGUIN ? GFX_PINGUIN_LEFT : + element == EL_PIG ? GFX_SCHWEIN_LEFT : GFX_DRACHE_LEFT); else if (dir == MV_RIGHT) graphic = (element == EL_MOLE ? GFX_MOLE_RIGHT : - element == EL_PINGUIN ? GFX_PINGUIN_RIGHT : - element == EL_SCHWEIN ? GFX_SCHWEIN_RIGHT : GFX_DRACHE_RIGHT); + element == EL_PENGUIN ? GFX_PINGUIN_RIGHT : + element == EL_PIG ? GFX_SCHWEIN_RIGHT : GFX_DRACHE_RIGHT); else if (dir == MV_UP) graphic = (element == EL_MOLE ? GFX_MOLE_UP : - element == EL_PINGUIN ? GFX_PINGUIN_UP : - element == EL_SCHWEIN ? GFX_SCHWEIN_UP : GFX_DRACHE_UP); + element == EL_PENGUIN ? GFX_PINGUIN_UP : + element == EL_PIG ? GFX_SCHWEIN_UP : GFX_DRACHE_UP); else graphic = (element == EL_MOLE ? GFX_MOLE_DOWN : - element == EL_PINGUIN ? GFX_PINGUIN_DOWN : - element == EL_SCHWEIN ? GFX_SCHWEIN_DOWN : GFX_DRACHE_DOWN); + element == EL_PENGUIN ? GFX_PINGUIN_DOWN : + element == EL_PIG ? GFX_SCHWEIN_DOWN : GFX_DRACHE_DOWN); graphic += phase4; } - else if (element == EL_SONDE) + else if (element == EL_SATELLITE) { #if 1 graphic = GFX_SONDE_START + getGraphicAnimationPhase(8, 2, ANIM_NORMAL); @@ -1534,7 +1536,7 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element, graphic = GFX_SONDE_START + getNewGraphicAnimationFrame(graphic, move_pos); #endif } - else if (element == EL_SALZSAEURE) + else if (element == EL_ACID) { #if 1 graphic = GFX_GEBLUBBER + getGraphicAnimationPhase(4, 10, ANIM_NORMAL); @@ -1542,7 +1544,7 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element, graphic = GFX_GEBLUBBER + getNewGraphicAnimationFrame(graphic, move_pos); #endif } - else if (element == EL_BUTTERFLY || element == EL_FIREFLY) + else if (element == EL_BD_BUTTERFLY || element == EL_BD_FIREFLY) { graphic += !phase2; } @@ -1550,7 +1552,7 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element, { graphic += phase4; } - else if ((element == EL_FELSBROCKEN || + else if ((element == EL_ROCK || element == EL_SP_ZONK || element == EL_BD_ROCK || element == EL_SP_INFOTRON || @@ -1559,7 +1561,7 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element, { if (uy >= lev_fieldy-1 || !IS_BELT(Feld[ux][uy+1])) { - if (element == EL_FELSBROCKEN || + if (element == EL_ROCK || element == EL_SP_ZONK || element == EL_BD_ROCK) { @@ -1574,12 +1576,12 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element, graphic += phase2; } } - else if (element == EL_MAGIC_WALL_EMPTY || + else if (element == EL_MAGIC_WALL_ACTIVE || element == EL_MAGIC_WALL_EMPTYING || - element == EL_MAGIC_WALL_BD_EMPTY || - element == EL_MAGIC_WALL_BD_EMPTYING || + element == EL_BD_MAGIC_WALL_ACTIVE || + element == EL_BD_MAGIC_WALL_EMPTYING || element == EL_MAGIC_WALL_FULL || - element == EL_MAGIC_WALL_BD_FULL) + element == EL_BD_MAGIC_WALL_FULL) { #if 1 graphic += 3 + getGraphicAnimationPhase(4, 4, ANIM_REVERSE); @@ -1589,10 +1591,10 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element, } else if (IS_AMOEBOID(element) || element == EL_AMOEBA_DRIPPING) { - graphic = (element == EL_AMOEBE_TOT ? GFX_AMOEBE_TOT : GFX_AMOEBE_LEBT); + graphic = (element == EL_AMOEBA_DEAD ? GFX_AMOEBE_TOT : GFX_AMOEBE_LEBT); graphic += (x + 2 * y + 4) % 4; } - else if (element == EL_MAUER_LEBT) + else if (element == EL_WALL_GROWING) { boolean links_massiv = FALSE, rechts_massiv = FALSE; @@ -1608,14 +1610,16 @@ void DrawNewScreenElementExt(int x, int y, int dx, int dy, int element, else if (rechts_massiv) graphic = GFX_MAUER_L; } - else if ((element == EL_INVISIBLE_STEEL || - element == EL_UNSICHTBAR || - element == EL_SAND_INVISIBLE) && game.light_time_left) +#if 0 + else if ((element == EL_INVISIBLE_STEELWALL || + element == EL_INVISIBLE_WALL || + element == EL_INVISIBLE_SAND) && game.light_time_left) { - graphic = (element == EL_INVISIBLE_STEEL ? GFX_INVISIBLE_STEEL_ON : - element == EL_UNSICHTBAR ? GFX_UNSICHTBAR_ON : + graphic = (element == EL_INVISIBLE_STEELWALL ? GFX_INVISIBLE_STEEL_ON : + element == EL_INVISIBLE_WALL ? GFX_UNSICHTBAR_ON : GFX_SAND_INVISIBLE_ON); } +#endif if (dx || dy) DrawNewGraphicShifted(x, y, dx, dy, graphic, frame, cut_mode, mask_mode); @@ -1716,9 +1720,9 @@ void ErdreichAnbroeckeln(int x, int y) element = Feld[ux][uy]; - if (element == EL_ERDREICH || + if (element == EL_SAND || element == EL_LANDMINE || - element == EL_TRAP_INACTIVE || + element == EL_TRAP || element == EL_TRAP_ACTIVE) { if (!IN_SCR_FIELD(x, y)) @@ -1735,13 +1739,13 @@ void ErdreichAnbroeckeln(int x, int y) uxx = ux + xy[i][0]; uyy = uy + xy[i][1]; if (!IN_LEV_FIELD(uxx, uyy)) - element = EL_BETON; + element = EL_STEELWALL; else element = Feld[uxx][uyy]; - if (element == EL_ERDREICH || + if (element == EL_SAND || element == EL_LANDMINE || - element == EL_TRAP_INACTIVE || + element == EL_TRAP || element == EL_TRAP_ACTIVE) continue; @@ -1782,9 +1786,9 @@ void ErdreichAnbroeckeln(int x, int y) uyy = uy + xy[i][1]; if (!IN_LEV_FIELD(uxx, uyy) || - (Feld[uxx][uyy] != EL_ERDREICH && + (Feld[uxx][uyy] != EL_SAND && Feld[uxx][uyy] != EL_LANDMINE && - Feld[uxx][uyy] != EL_TRAP_INACTIVE && + Feld[uxx][uyy] != EL_TRAP && Feld[uxx][uyy] != EL_TRAP_ACTIVE) || !IN_SCR_FIELD(xx, yy)) continue; @@ -1844,7 +1848,7 @@ void DrawScreenField(int x, int y) if (!IN_LEV_FIELD(ux, uy)) { if (ux < -1 || ux > lev_fieldx || uy < -1 || uy > lev_fieldy) - element = EL_LEERRAUM; + element = EL_EMPTY; else element = BorderElement; @@ -1862,18 +1866,18 @@ void DrawScreenField(int x, int y) if (element == EL_QUICKSAND_EMPTYING || element == EL_MAGIC_WALL_EMPTYING || - element == EL_MAGIC_WALL_BD_EMPTYING || + element == EL_BD_MAGIC_WALL_EMPTYING || element == EL_AMOEBA_DRIPPING) cut_mode = CUT_ABOVE; else if (element == EL_QUICKSAND_FILLING || element == EL_MAGIC_WALL_FILLING || - element == EL_MAGIC_WALL_BD_FILLING) + element == EL_BD_MAGIC_WALL_FILLING) cut_mode = CUT_BELOW; if (cut_mode == CUT_ABOVE) DrawScreenElementShifted(x, y, 0, 0, element, NO_CUTTING); else - DrawScreenElement(x, y, EL_LEERRAUM); + DrawScreenElement(x, y, EL_EMPTY); if (horiz_move) DrawScreenElementShifted(x, y, MovPos[ux][uy], 0, element, NO_CUTTING); @@ -1882,8 +1886,8 @@ void DrawScreenField(int x, int y) else DrawScreenElementShifted(x, y, 0, MovPos[ux][uy], content, cut_mode); - if (content == EL_SALZSAEURE) - DrawLevelElementThruMask(ux, uy + 1, EL_SALZSAEURE); + if (content == EL_ACID) + DrawLevelElementThruMask(ux, uy + 1, EL_ACID); } else if (IS_BLOCKED(ux, uy)) { @@ -1904,11 +1908,11 @@ void DrawScreenField(int x, int y) if (element_old == EL_QUICKSAND_EMPTYING || element_old == EL_MAGIC_WALL_EMPTYING || - element_old == EL_MAGIC_WALL_BD_EMPTYING || + element_old == EL_BD_MAGIC_WALL_EMPTYING || element_old == EL_AMOEBA_DRIPPING) cut_mode = CUT_ABOVE; - DrawScreenElement(x, y, EL_LEERRAUM); + DrawScreenElement(x, y, EL_EMPTY); if (horiz_move) DrawScreenElementShifted(sx, sy, MovPos[oldx][oldy], 0, element_old, @@ -1923,7 +1927,7 @@ void DrawScreenField(int x, int y) else if (IS_DRAWABLE(element)) DrawScreenElement(x, y, element); else - DrawScreenElement(x, y, EL_LEERRAUM); + DrawScreenElement(x, y, EL_EMPTY); } void DrawNewScreenField(int x, int y) @@ -1934,7 +1938,7 @@ void DrawNewScreenField(int x, int y) if (!IN_LEV_FIELD(ux, uy)) { if (ux < -1 || ux > lev_fieldx || uy < -1 || uy > lev_fieldy) - element = EL_LEERRAUM; + element = EL_EMPTY; else element = BorderElement; @@ -1952,18 +1956,18 @@ void DrawNewScreenField(int x, int y) if (element == EL_QUICKSAND_EMPTYING || element == EL_MAGIC_WALL_EMPTYING || - element == EL_MAGIC_WALL_BD_EMPTYING || + element == EL_BD_MAGIC_WALL_EMPTYING || element == EL_AMOEBA_DRIPPING) cut_mode = CUT_ABOVE; else if (element == EL_QUICKSAND_FILLING || element == EL_MAGIC_WALL_FILLING || - element == EL_MAGIC_WALL_BD_FILLING) + element == EL_BD_MAGIC_WALL_FILLING) cut_mode = CUT_BELOW; if (cut_mode == CUT_ABOVE) DrawNewScreenElementShifted(x, y, 0, 0, element, NO_CUTTING); else - DrawNewScreenElement(x, y, EL_LEERRAUM); + DrawNewScreenElement(x, y, EL_EMPTY); if (horiz_move) DrawNewScreenElementShifted(x, y, MovPos[ux][uy], 0, element, NO_CUTTING); @@ -1972,8 +1976,8 @@ void DrawNewScreenField(int x, int y) else DrawNewScreenElementShifted(x, y, 0, MovPos[ux][uy], content, cut_mode); - if (content == EL_SALZSAEURE) - DrawNewLevelElementThruMask(ux, uy + 1, EL_SALZSAEURE); + if (content == EL_ACID) + DrawNewLevelElementThruMask(ux, uy + 1, EL_ACID); } else if (IS_BLOCKED(ux, uy)) { @@ -1994,11 +1998,11 @@ void DrawNewScreenField(int x, int y) if (element_old == EL_QUICKSAND_EMPTYING || element_old == EL_MAGIC_WALL_EMPTYING || - element_old == EL_MAGIC_WALL_BD_EMPTYING || + element_old == EL_BD_MAGIC_WALL_EMPTYING || element_old == EL_AMOEBA_DRIPPING) cut_mode = CUT_ABOVE; - DrawNewScreenElement(x, y, EL_LEERRAUM); + DrawNewScreenElement(x, y, EL_EMPTY); if (horiz_move) DrawNewScreenElementShifted(sx, sy, MovPos[oldx][oldy], 0, element_old, @@ -2013,7 +2017,7 @@ void DrawNewScreenField(int x, int y) else if (IS_DRAWABLE(element)) DrawNewScreenElement(x, y, element); else - DrawNewScreenElement(x, y, EL_LEERRAUM); + DrawNewScreenElement(x, y, EL_EMPTY); } void DrawLevelField(int x, int y) @@ -2079,7 +2083,7 @@ void DrawMiniElementOrWall(int sx, int sy, int scroll_x, int scroll_y) int x = sx + scroll_x, y = sy + scroll_y; if (x < -1 || x > lev_fieldx || y < -1 || y > lev_fieldy) - DrawMiniElement(sx, sy, EL_LEERRAUM); + DrawMiniElement(sx, sy, EL_EMPTY); else if (x > -1 && x < lev_fieldx && y > -1 && y < lev_fieldy) DrawMiniElement(sx, sy, Feld[x][y]); else @@ -2095,7 +2099,7 @@ void DrawMiniElementOrWall(int sx, int sy, int scroll_x, int scroll_y) { GFX_VSTEEL_HORIZONTAL, GFX_ISTEEL_HORIZONTAL } }; - steel_type = (BorderElement == EL_BETON ? 0 : 1); + steel_type = (BorderElement == EL_STEELWALL ? 0 : 1); steel_position = (x == -1 && y == -1 ? 0 : x == lev_fieldx && y == -1 ? 1 : x == -1 && y == lev_fieldy ? 2 : @@ -2112,7 +2116,7 @@ void DrawMicroElement(int xpos, int ypos, int element) { int graphic; - if (element == EL_LEERRAUM) + if (element == EL_EMPTY) return; graphic = el2gfx(element); @@ -3000,13 +3004,13 @@ int get_next_element(int element) { switch(element) { - case EL_QUICKSAND_FILLING: return EL_MORAST_VOLL; - case EL_QUICKSAND_EMPTYING: return EL_MORAST_LEER; + case EL_QUICKSAND_FILLING: return EL_QUICKSAND_FULL; + case EL_QUICKSAND_EMPTYING: return EL_QUICKSAND_EMPTY; case EL_MAGIC_WALL_FILLING: return EL_MAGIC_WALL_FULL; - case EL_MAGIC_WALL_EMPTYING: return EL_MAGIC_WALL_EMPTY; - case EL_MAGIC_WALL_BD_FILLING: return EL_MAGIC_WALL_BD_FULL; - case EL_MAGIC_WALL_BD_EMPTYING: return EL_MAGIC_WALL_BD_EMPTY; - case EL_AMOEBA_DRIPPING: return EL_AMOEBE_NASS; + case EL_MAGIC_WALL_EMPTYING: return EL_MAGIC_WALL_ACTIVE; + case EL_BD_MAGIC_WALL_FILLING: return EL_BD_MAGIC_WALL_FULL; + case EL_BD_MAGIC_WALL_EMPTYING: return EL_BD_MAGIC_WALL_ACTIVE; + case EL_AMOEBA_DRIPPING: return EL_AMOEBA_WET; default: return element; } @@ -3016,263 +3020,277 @@ int el2gfx_OLD(int element) { switch(element) { - case EL_LEERRAUM: return -1; - case EL_ERDREICH: return GFX_ERDREICH; - case EL_MAUERWERK: return GFX_MAUERWERK; - case EL_FELSBODEN: return GFX_FELSBODEN; - case EL_FELSBROCKEN: return GFX_FELSBROCKEN; - case EL_SCHLUESSEL: return GFX_SCHLUESSEL; - case EL_EDELSTEIN: return GFX_EDELSTEIN; - case EL_AUSGANG_ZU: return GFX_AUSGANG_ZU; - case EL_AUSGANG_ACT: return GFX_AUSGANG_ACT; - case EL_AUSGANG_AUF: return GFX_AUSGANG_AUF; - case EL_SPIELFIGUR: return GFX_SPIELFIGUR; - case EL_SPIELER1: return GFX_SPIELER1; - case EL_SPIELER2: return GFX_SPIELER2; - case EL_SPIELER3: return GFX_SPIELER3; - case EL_SPIELER4: return GFX_SPIELER4; - case EL_KAEFER: return GFX_KAEFER; - case EL_KAEFER_RIGHT: return GFX_KAEFER_RIGHT; - case EL_KAEFER_UP: return GFX_KAEFER_UP; - case EL_KAEFER_LEFT: return GFX_KAEFER_LEFT; - case EL_KAEFER_DOWN: return GFX_KAEFER_DOWN; - case EL_FLIEGER: return GFX_FLIEGER; - case EL_FLIEGER_RIGHT: return GFX_FLIEGER_RIGHT; - case EL_FLIEGER_UP: return GFX_FLIEGER_UP; - case EL_FLIEGER_LEFT: return GFX_FLIEGER_LEFT; - case EL_FLIEGER_DOWN: return GFX_FLIEGER_DOWN; - case EL_BUTTERFLY: return GFX_BUTTERFLY; - case EL_BUTTERFLY_RIGHT: return GFX_BUTTERFLY_RIGHT; - case EL_BUTTERFLY_UP: return GFX_BUTTERFLY_UP; - case EL_BUTTERFLY_LEFT: return GFX_BUTTERFLY_LEFT; - case EL_BUTTERFLY_DOWN: return GFX_BUTTERFLY_DOWN; - case EL_FIREFLY: return GFX_FIREFLY; - case EL_FIREFLY_RIGHT: return GFX_FIREFLY_RIGHT; - case EL_FIREFLY_UP: return GFX_FIREFLY_UP; - case EL_FIREFLY_LEFT: return GFX_FIREFLY_LEFT; - case EL_FIREFLY_DOWN: return GFX_FIREFLY_DOWN; - case EL_MAMPFER: return GFX_MAMPFER; - case EL_ROBOT: return GFX_ROBOT; - case EL_BETON: return GFX_BETON; - case EL_DIAMANT: return GFX_DIAMANT; - case EL_MORAST_LEER: return GFX_MORAST_LEER; - case EL_MORAST_VOLL: return GFX_MORAST_VOLL; - case EL_QUICKSAND_EMPTYING: return GFX_MORAST_LEER; - case EL_TROPFEN: return GFX_TROPFEN; - case EL_BOMBE: return GFX_BOMBE; - case EL_MAGIC_WALL_OFF: return GFX_MAGIC_WALL_OFF; - case EL_MAGIC_WALL_EMPTY: return GFX_MAGIC_WALL_EMPTY; - case EL_MAGIC_WALL_EMPTYING:return GFX_MAGIC_WALL_EMPTY; - case EL_MAGIC_WALL_FULL: return GFX_MAGIC_WALL_FULL; - case EL_MAGIC_WALL_DEAD: return GFX_MAGIC_WALL_DEAD; - case EL_SALZSAEURE: return GFX_SALZSAEURE; - case EL_AMOEBE_TOT: return GFX_AMOEBE_TOT; - case EL_AMOEBE_NASS: return GFX_AMOEBE_NASS; - case EL_AMOEBE_NORM: return GFX_AMOEBE_NORM; - case EL_AMOEBE_VOLL: return GFX_AMOEBE_VOLL; - case EL_AMOEBE_BD: return GFX_AMOEBE_BD; - case EL_AMOEBA2DIAM: return GFX_AMOEBA2DIAM; - case EL_AMOEBA_DRIPPING: return GFX_AMOEBE_NASS; - case EL_KOKOSNUSS: return GFX_KOKOSNUSS; - case EL_LIFE: return GFX_LIFE; - case EL_LIFE_ASYNC: return GFX_LIFE_ASYNC; - case EL_DYNAMITE_ACTIVE: return GFX_DYNAMIT; - case EL_BADEWANNE: return GFX_BADEWANNE; - case EL_BADEWANNE1: return GFX_BADEWANNE1; - case EL_BADEWANNE2: return GFX_BADEWANNE2; - case EL_BADEWANNE3: return GFX_BADEWANNE3; - case EL_BADEWANNE4: return GFX_BADEWANNE4; - case EL_BADEWANNE5: return GFX_BADEWANNE5; - case EL_ABLENK_AUS: return GFX_ABLENK_AUS; - case EL_ABLENK_EIN: return GFX_ABLENK_EIN; - case EL_SCHLUESSEL1: return GFX_SCHLUESSEL1; - case EL_SCHLUESSEL2: return GFX_SCHLUESSEL2; - case EL_SCHLUESSEL3: return GFX_SCHLUESSEL3; - case EL_SCHLUESSEL4: return GFX_SCHLUESSEL4; - case EL_PFORTE1: return GFX_PFORTE1; - case EL_PFORTE2: return GFX_PFORTE2; - case EL_PFORTE3: return GFX_PFORTE3; - case EL_PFORTE4: return GFX_PFORTE4; - case EL_PFORTE1X: return GFX_PFORTE1X; - case EL_PFORTE2X: return GFX_PFORTE2X; - case EL_PFORTE3X: return GFX_PFORTE3X; - case EL_PFORTE4X: return GFX_PFORTE4X; - case EL_DYNAMITE_INACTIVE: return GFX_DYNAMIT_AUS; - case EL_PACMAN: return GFX_PACMAN; - case EL_PACMAN_RIGHT: return GFX_PACMAN_RIGHT; - case EL_PACMAN_UP: return GFX_PACMAN_UP; - case EL_PACMAN_LEFT: return GFX_PACMAN_LEFT; - case EL_PACMAN_DOWN: return GFX_PACMAN_DOWN; - case EL_UNSICHTBAR: return GFX_UNSICHTBAR; - case EL_ERZ_EDEL: return GFX_ERZ_EDEL; - case EL_ERZ_DIAM: return GFX_ERZ_DIAM; - case EL_BIRNE_AUS: return GFX_BIRNE_AUS; - case EL_BIRNE_EIN: return GFX_BIRNE_EIN; - case EL_ZEIT_VOLL: return GFX_ZEIT_VOLL; - case EL_ZEIT_LEER: return GFX_ZEIT_LEER; - case EL_MAUER_LEBT: return GFX_MAUER_LEBT; - case EL_MAUER_X: return GFX_MAUER_X; - case EL_MAUER_Y: return GFX_MAUER_Y; - case EL_MAUER_XY: return GFX_MAUER_XY; - case EL_EDELSTEIN_BD: return GFX_EDELSTEIN_BD; - case EL_EDELSTEIN_GELB: return GFX_EDELSTEIN_GELB; - case EL_EDELSTEIN_ROT: return GFX_EDELSTEIN_ROT; - case EL_EDELSTEIN_LILA: return GFX_EDELSTEIN_LILA; - case EL_ERZ_EDEL_BD: return GFX_ERZ_EDEL_BD; - case EL_ERZ_EDEL_GELB: return GFX_ERZ_EDEL_GELB; - case EL_ERZ_EDEL_ROT: return GFX_ERZ_EDEL_ROT; - case EL_ERZ_EDEL_LILA: return GFX_ERZ_EDEL_LILA; - case EL_MAMPFER2: return GFX_MAMPFER2; - case EL_MAGIC_WALL_BD_OFF: return GFX_MAGIC_WALL_BD_OFF; - case EL_MAGIC_WALL_BD_EMPTY:return GFX_MAGIC_WALL_BD_EMPTY; - case EL_MAGIC_WALL_BD_EMPTYING:return GFX_MAGIC_WALL_BD_EMPTY; - case EL_MAGIC_WALL_BD_FULL: return GFX_MAGIC_WALL_BD_FULL; - case EL_MAGIC_WALL_BD_DEAD: return GFX_MAGIC_WALL_BD_DEAD; - case EL_DYNABOMB_ACTIVE_1: return GFX_DYNABOMB; - case EL_DYNABOMB_ACTIVE_2: return GFX_DYNABOMB; - case EL_DYNABOMB_ACTIVE_3: return GFX_DYNABOMB; - case EL_DYNABOMB_ACTIVE_4: return GFX_DYNABOMB; - case EL_DYNABOMB_NR: return GFX_DYNABOMB_NR; - case EL_DYNABOMB_SZ: return GFX_DYNABOMB_SZ; - case EL_DYNABOMB_XL: return GFX_DYNABOMB_XL; - case EL_SOKOBAN_OBJEKT: return GFX_SOKOBAN_OBJEKT; - case EL_SOKOBAN_FELD_LEER: return GFX_SOKOBAN_FELD_LEER; - case EL_SOKOBAN_FELD_VOLL: return GFX_SOKOBAN_FELD_VOLL; - case EL_MOLE: return GFX_MOLE; - case EL_PINGUIN: return GFX_PINGUIN; - case EL_SCHWEIN: return GFX_SCHWEIN; - case EL_DRACHE: return GFX_DRACHE; - case EL_SONDE: return GFX_SONDE; - case EL_PFEIL_LEFT: return GFX_PFEIL_LEFT; - case EL_PFEIL_RIGHT: return GFX_PFEIL_RIGHT; - case EL_PFEIL_UP: return GFX_PFEIL_UP; - case EL_PFEIL_DOWN: return GFX_PFEIL_DOWN; - case EL_SPEED_PILL: return GFX_SPEED_PILL; - case EL_SP_TERMINAL_ACTIVE: return GFX_SP_TERMINAL; - case EL_SP_BUG_ACTIVE: return GFX_SP_BUG_ACTIVE; - case EL_SP_ZONK: return GFX_SP_ZONK; + case EL_EMPTY: return -1; + case EL_SAND: return GFX_ERDREICH; + case EL_WALL: return GFX_MAUERWERK; + case EL_WALL_CRUMBLED: return GFX_FELSBODEN; + case EL_ROCK: return GFX_FELSBROCKEN; + case EL_EMERALD: return GFX_EDELSTEIN; + case EL_EXIT_CLOSED: return GFX_AUSGANG_ZU; + case EL_EXIT_OPENING: return GFX_AUSGANG_ACT; + case EL_EXIT_OPEN: return GFX_AUSGANG_AUF; + case EL_SP_EXIT_OPEN: return GFX_SP_EXIT; + case EL_PLAYER1: return GFX_SPIELER1; + case EL_PLAYER2: return GFX_SPIELER2; + case EL_PLAYER3: return GFX_SPIELER3; + case EL_PLAYER4: return GFX_SPIELER4; + case EL_BUG: return GFX_KAEFER; + case EL_BUG_RIGHT: return GFX_KAEFER_RIGHT; + case EL_BUG_UP: return GFX_KAEFER_UP; + case EL_BUG_LEFT: return GFX_KAEFER_LEFT; + case EL_BUG_DOWN: return GFX_KAEFER_DOWN; + case EL_SPACESHIP: return GFX_FLIEGER; + case EL_SPACESHIP_RIGHT: return GFX_FLIEGER_RIGHT; + case EL_SPACESHIP_UP: return GFX_FLIEGER_UP; + case EL_SPACESHIP_LEFT: return GFX_FLIEGER_LEFT; + case EL_SPACESHIP_DOWN: return GFX_FLIEGER_DOWN; + case EL_BD_BUTTERFLY: return GFX_BUTTERFLY; + case EL_BD_BUTTERFLY_RIGHT: return GFX_BUTTERFLY_RIGHT; + case EL_BD_BUTTERFLY_UP: return GFX_BUTTERFLY_UP; + case EL_BD_BUTTERFLY_LEFT: return GFX_BUTTERFLY_LEFT; + case EL_BD_BUTTERFLY_DOWN: return GFX_BUTTERFLY_DOWN; + case EL_BD_FIREFLY: return GFX_FIREFLY; + case EL_BD_FIREFLY_RIGHT: return GFX_FIREFLY_RIGHT; + case EL_BD_FIREFLY_UP: return GFX_FIREFLY_UP; + case EL_BD_FIREFLY_LEFT: return GFX_FIREFLY_LEFT; + case EL_BD_FIREFLY_DOWN: return GFX_FIREFLY_DOWN; + case EL_YAMYAM: return GFX_MAMPFER; + case EL_ROBOT: return GFX_ROBOT; + case EL_STEELWALL: return GFX_BETON; + case EL_DIAMOND: return GFX_DIAMANT; + case EL_QUICKSAND_EMPTY: return GFX_MORAST_LEER; + case EL_QUICKSAND_FULL: return GFX_MORAST_VOLL; + case EL_QUICKSAND_EMPTYING: return GFX_MORAST_LEER; + case EL_AMOEBA_DROP: return GFX_TROPFEN; + case EL_BOMB: return GFX_BOMBE; + case EL_MAGIC_WALL: return GFX_MAGIC_WALL_OFF; + case EL_MAGIC_WALL_ACTIVE: return GFX_MAGIC_WALL_EMPTY; + case EL_MAGIC_WALL_EMPTYING: return GFX_MAGIC_WALL_EMPTY; + case EL_MAGIC_WALL_FULL: return GFX_MAGIC_WALL_FULL; + case EL_MAGIC_WALL_DEAD: return GFX_MAGIC_WALL_DEAD; + case EL_ACID: return GFX_SALZSAEURE; + case EL_AMOEBA_DEAD: return GFX_AMOEBE_TOT; + case EL_AMOEBA_WET: return GFX_AMOEBE_NASS; + case EL_AMOEBA_DRY: return GFX_AMOEBE_NORM; + case EL_AMOEBA_FULL: return GFX_AMOEBE_VOLL; + case EL_BD_AMOEBA: return GFX_AMOEBE_BD; + case EL_AMOEBA_TO_DIAMOND: return GFX_AMOEBA2DIAM; + case EL_AMOEBA_DRIPPING: return GFX_AMOEBE_NASS; + case EL_NUT: return GFX_KOKOSNUSS; + case EL_GAMEOFLIFE: return GFX_LIFE; + case EL_BIOMAZE: return GFX_LIFE_ASYNC; + case EL_DYNAMITE_ACTIVE: return GFX_DYNAMIT; + case EL_STONEBLOCK: return GFX_BADEWANNE; + case EL_ACIDPOOL_TOPLEFT: return GFX_BADEWANNE1; + case EL_ACIDPOOL_TOPRIGHT: return GFX_BADEWANNE2; + case EL_ACIDPOOL_BOTTOMLEFT: return GFX_BADEWANNE3; + case EL_ACIDPOOL_BOTTOM: return GFX_BADEWANNE4; + case EL_ACIDPOOL_BOTTOMRIGHT: return GFX_BADEWANNE5; + case EL_ROBOT_WHEEL: return GFX_ABLENK_AUS; + case EL_ROBOT_WHEEL_ACTIVE: return GFX_ABLENK_EIN; + case EL_KEY1: return GFX_SCHLUESSEL1; + case EL_KEY2: return GFX_SCHLUESSEL2; + case EL_KEY3: return GFX_SCHLUESSEL3; + case EL_KEY4: return GFX_SCHLUESSEL4; + case EL_GATE1: return GFX_PFORTE1; + case EL_GATE2: return GFX_PFORTE2; + case EL_GATE3: return GFX_PFORTE3; + case EL_GATE4: return GFX_PFORTE4; + case EL_GATE1_GRAY: return GFX_PFORTE1X; + case EL_GATE2_GRAY: return GFX_PFORTE2X; + case EL_GATE3_GRAY: return GFX_PFORTE3X; + case EL_GATE4_GRAY: return GFX_PFORTE4X; + case EL_DYNAMITE: return GFX_DYNAMIT_AUS; + case EL_PACMAN: return GFX_PACMAN; + case EL_PACMAN_RIGHT: return GFX_PACMAN_RIGHT; + case EL_PACMAN_UP: return GFX_PACMAN_UP; + case EL_PACMAN_LEFT: return GFX_PACMAN_LEFT; + case EL_PACMAN_DOWN: return GFX_PACMAN_DOWN; + case EL_INVISIBLE_WALL: return GFX_UNSICHTBAR; + case EL_INVISIBLE_WALL_ACTIVE: return GFX_UNSICHTBAR_ON; + case EL_WALL_EMERALD: return GFX_ERZ_EDEL; + case EL_WALL_DIAMOND: return GFX_ERZ_DIAM; + case EL_LAMP: return GFX_BIRNE_AUS; + case EL_LAMP_ACTIVE: return GFX_BIRNE_EIN; + case EL_TIME_ORB_FULL: return GFX_ZEIT_VOLL; + case EL_TIME_ORB_EMPTY: return GFX_ZEIT_LEER; + case EL_WALL_GROWING: return GFX_MAUER_LEBT; + case EL_WALL_GROWING_X: return GFX_MAUER_X; + case EL_WALL_GROWING_Y: return GFX_MAUER_Y; + case EL_WALL_GROWING_XY: return GFX_MAUER_XY; + case EL_BD_DIAMOND: return GFX_EDELSTEIN_BD; + case EL_EMERALD_YELLOW: return GFX_EDELSTEIN_GELB; + case EL_EMERALD_RED: return GFX_EDELSTEIN_ROT; + case EL_EMERALD_PURPLE: return GFX_EDELSTEIN_LILA; + case EL_WALL_BD_DIAMOND: return GFX_ERZ_EDEL_BD; + case EL_WALL_EMERALD_YELLOW: return GFX_ERZ_EDEL_GELB; + case EL_WALL_EMERALD_RED: return GFX_ERZ_EDEL_ROT; + case EL_WALL_EMERALD_PURPLE: return GFX_ERZ_EDEL_LILA; + case EL_DARK_YAMYAM: return GFX_MAMPFER2; + case EL_BD_MAGIC_WALL: return GFX_MAGIC_WALL_BD_OFF; + case EL_BD_MAGIC_WALL_ACTIVE: return GFX_MAGIC_WALL_BD_EMPTY; + case EL_BD_MAGIC_WALL_EMPTYING: return GFX_MAGIC_WALL_BD_EMPTY; + case EL_BD_MAGIC_WALL_FULL: return GFX_MAGIC_WALL_BD_FULL; + case EL_BD_MAGIC_WALL_DEAD: return GFX_MAGIC_WALL_BD_DEAD; + case EL_DYNABOMB_PLAYER1_ACTIVE: return GFX_DYNABOMB; + case EL_DYNABOMB_PLAYER2_ACTIVE: return GFX_DYNABOMB; + case EL_DYNABOMB_PLAYER3_ACTIVE: return GFX_DYNABOMB; + case EL_DYNABOMB_PLAYER4_ACTIVE: return GFX_DYNABOMB; + case EL_DYNABOMB_NR: return GFX_DYNABOMB_NR; + case EL_DYNABOMB_SZ: return GFX_DYNABOMB_SZ; + case EL_DYNABOMB_XL: return GFX_DYNABOMB_XL; + case EL_SOKOBAN_OBJECT: return GFX_SOKOBAN_OBJEKT; + case EL_SOKOBAN_FIELD_EMPTY: return GFX_SOKOBAN_FELD_LEER; + case EL_SOKOBAN_FIELD_FULL: return GFX_SOKOBAN_FELD_VOLL; + case EL_MOLE: return GFX_MOLE; + case EL_PENGUIN: return GFX_PINGUIN; + case EL_PIG: return GFX_SCHWEIN; + case EL_DRAGON: return GFX_DRACHE; + case EL_SATELLITE: return GFX_SONDE; + case EL_ARROW_BLUE_LEFT: return GFX_PFEIL_LEFT; + case EL_ARROW_BLUE_RIGHT: return GFX_PFEIL_RIGHT; + case EL_ARROW_BLUE_UP: return GFX_PFEIL_UP; + case EL_ARROW_BLUE_DOWN: return GFX_PFEIL_DOWN; + case EL_SPEED_PILL: return GFX_SPEED_PILL; + case EL_SP_TERMINAL_ACTIVE: return GFX_SP_TERMINAL; + case EL_SP_BUGGY_BASE_ACTIVE: return GFX_SP_BUG_ACTIVE; + case EL_SP_ZONK: return GFX_SP_ZONK; /* ^^^^^^^^^^ non-standard position in supaplex graphic set! */ - case EL_INVISIBLE_STEEL: return GFX_INVISIBLE_STEEL; - case EL_BLACK_ORB: return GFX_BLACK_ORB; - case EL_EM_GATE_1: return GFX_EM_GATE_1; - case EL_EM_GATE_2: return GFX_EM_GATE_2; - case EL_EM_GATE_3: return GFX_EM_GATE_3; - case EL_EM_GATE_4: return GFX_EM_GATE_4; - case EL_EM_GATE_1X: return GFX_EM_GATE_1X; - case EL_EM_GATE_2X: return GFX_EM_GATE_2X; - case EL_EM_GATE_3X: return GFX_EM_GATE_3X; - case EL_EM_GATE_4X: return GFX_EM_GATE_4X; - case EL_EM_KEY_1_FILE: return GFX_EM_KEY_1; - case EL_EM_KEY_2_FILE: return GFX_EM_KEY_2; - case EL_EM_KEY_3_FILE: return GFX_EM_KEY_3; - case EL_EM_KEY_4_FILE: return GFX_EM_KEY_4; - case EL_EM_KEY_1: return GFX_EM_KEY_1; - case EL_EM_KEY_2: return GFX_EM_KEY_2; - case EL_EM_KEY_3: return GFX_EM_KEY_3; - case EL_EM_KEY_4: return GFX_EM_KEY_4; - case EL_PEARL: return GFX_PEARL; - case EL_CRYSTAL: return GFX_CRYSTAL; - case EL_WALL_PEARL: return GFX_WALL_PEARL; - case EL_WALL_CRYSTAL: return GFX_WALL_CRYSTAL; - case EL_DOOR_WHITE: return GFX_DOOR_WHITE; - case EL_DOOR_WHITE_GRAY: return GFX_DOOR_WHITE_GRAY; - case EL_KEY_WHITE: return GFX_KEY_WHITE; - case EL_SHIELD_PASSIVE: return GFX_SHIELD_PASSIVE; - case EL_SHIELD_ACTIVE: return GFX_SHIELD_ACTIVE; - case EL_EXTRA_TIME: return GFX_EXTRA_TIME; - case EL_SWITCHGATE_OPEN: return GFX_SWITCHGATE_OPEN; - case EL_SWITCHGATE_CLOSED: return GFX_SWITCHGATE_CLOSED; - case EL_SWITCHGATE_SWITCH_1:return GFX_SWITCHGATE_SWITCH_1; - case EL_SWITCHGATE_SWITCH_2:return GFX_SWITCHGATE_SWITCH_2; - case EL_BELT1_LEFT: return GFX_BELT1_LEFT; - case EL_BELT1_MIDDLE: return GFX_BELT1_MIDDLE; - case EL_BELT1_RIGHT: return GFX_BELT1_RIGHT; - case EL_BELT1_SWITCH_LEFT: return GFX_BELT1_SWITCH_LEFT; - case EL_BELT1_SWITCH_MIDDLE:return GFX_BELT1_SWITCH_MIDDLE; - case EL_BELT1_SWITCH_RIGHT: return GFX_BELT1_SWITCH_RIGHT; - case EL_BELT2_LEFT: return GFX_BELT2_LEFT; - case EL_BELT2_MIDDLE: return GFX_BELT2_MIDDLE; - case EL_BELT2_RIGHT: return GFX_BELT2_RIGHT; - case EL_BELT2_SWITCH_LEFT: return GFX_BELT2_SWITCH_LEFT; - case EL_BELT2_SWITCH_MIDDLE:return GFX_BELT2_SWITCH_MIDDLE; - case EL_BELT2_SWITCH_RIGHT: return GFX_BELT2_SWITCH_RIGHT; - case EL_BELT3_LEFT: return GFX_BELT3_LEFT; - case EL_BELT3_MIDDLE: return GFX_BELT3_MIDDLE; - case EL_BELT3_RIGHT: return GFX_BELT3_RIGHT; - case EL_BELT3_SWITCH_LEFT: return GFX_BELT3_SWITCH_LEFT; - case EL_BELT3_SWITCH_MIDDLE:return GFX_BELT3_SWITCH_MIDDLE; - case EL_BELT3_SWITCH_RIGHT: return GFX_BELT3_SWITCH_RIGHT; - case EL_BELT4_LEFT: return GFX_BELT4_LEFT; - case EL_BELT4_MIDDLE: return GFX_BELT4_MIDDLE; - case EL_BELT4_RIGHT: return GFX_BELT4_RIGHT; - case EL_BELT4_SWITCH_LEFT: return GFX_BELT4_SWITCH_LEFT; - case EL_BELT4_SWITCH_MIDDLE:return GFX_BELT4_SWITCH_MIDDLE; - case EL_BELT4_SWITCH_RIGHT: return GFX_BELT4_SWITCH_RIGHT; - case EL_LANDMINE: return GFX_LANDMINE; - case EL_ENVELOPE: return GFX_ENVELOPE; - case EL_LIGHT_SWITCH_OFF: return GFX_LIGHT_SWITCH_OFF; - case EL_LIGHT_SWITCH_ON: return GFX_LIGHT_SWITCH_ON; - case EL_SIGN_EXCLAMATION: return GFX_SIGN_EXCLAMATION; - case EL_SIGN_RADIOACTIVITY: return GFX_SIGN_RADIOACTIVITY; - case EL_SIGN_STOP: return GFX_SIGN_STOP; - case EL_SIGN_WHEELCHAIR: return GFX_SIGN_WHEELCHAIR; - case EL_SIGN_PARKING: return GFX_SIGN_PARKING; - case EL_SIGN_ONEWAY: return GFX_SIGN_ONEWAY; - case EL_SIGN_HEART: return GFX_SIGN_HEART; - case EL_SIGN_TRIANGLE: return GFX_SIGN_TRIANGLE; - case EL_SIGN_ROUND: return GFX_SIGN_ROUND; - case EL_SIGN_EXIT: return GFX_SIGN_EXIT; - case EL_SIGN_YINYANG: return GFX_SIGN_YINYANG; - case EL_SIGN_OTHER: return GFX_SIGN_OTHER; - case EL_MOLE_LEFT: return GFX_MOLE_LEFT; - case EL_MOLE_RIGHT: return GFX_MOLE_RIGHT; - case EL_MOLE_UP: return GFX_MOLE_UP; - case EL_MOLE_DOWN: return GFX_MOLE_DOWN; - case EL_STEEL_SLANTED: return GFX_STEEL_SLANTED; - case EL_SAND_INVISIBLE: return GFX_SAND_INVISIBLE; - case EL_DX_UNKNOWN_15: return GFX_DX_UNKNOWN_15; - case EL_DX_UNKNOWN_42: return GFX_DX_UNKNOWN_42; - case EL_TIMEGATE_OPEN: return GFX_TIMEGATE_OPEN; - case EL_TIMEGATE_CLOSED: return GFX_TIMEGATE_CLOSED; - case EL_TIMEGATE_SWITCH_ON: return GFX_TIMEGATE_SWITCH; - case EL_TIMEGATE_SWITCH_OFF:return GFX_TIMEGATE_SWITCH; - case EL_BALLOON: return GFX_BALLOON; - case EL_BALLOON_SEND_LEFT: return GFX_BALLOON_SEND_LEFT; - case EL_BALLOON_SEND_RIGHT: return GFX_BALLOON_SEND_RIGHT; - case EL_BALLOON_SEND_UP: return GFX_BALLOON_SEND_UP; - case EL_BALLOON_SEND_DOWN: return GFX_BALLOON_SEND_DOWN; - case EL_BALLOON_SEND_ANY: return GFX_BALLOON_SEND_ANY; - case EL_EMC_STEEL_WALL_1: return GFX_EMC_STEEL_WALL_1; - case EL_EMC_STEEL_WALL_2: return GFX_EMC_STEEL_WALL_2; - case EL_EMC_STEEL_WALL_3: return GFX_EMC_STEEL_WALL_3; - case EL_EMC_STEEL_WALL_4: return GFX_EMC_STEEL_WALL_4; - case EL_EMC_WALL_1: return GFX_EMC_WALL_1; - case EL_EMC_WALL_2: return GFX_EMC_WALL_2; - case EL_EMC_WALL_3: return GFX_EMC_WALL_3; - case EL_EMC_WALL_4: return GFX_EMC_WALL_4; - case EL_EMC_WALL_5: return GFX_EMC_WALL_5; - case EL_EMC_WALL_6: return GFX_EMC_WALL_6; - case EL_EMC_WALL_7: return GFX_EMC_WALL_7; - case EL_EMC_WALL_8: return GFX_EMC_WALL_8; - case EL_TUBE_CROSS: return GFX_TUBE_CROSS; - case EL_TUBE_VERTICAL: return GFX_TUBE_VERTICAL; - case EL_TUBE_HORIZONTAL: return GFX_TUBE_HORIZONTAL; - case EL_TUBE_VERT_LEFT: return GFX_TUBE_VERT_LEFT; - case EL_TUBE_VERT_RIGHT: return GFX_TUBE_VERT_RIGHT; - case EL_TUBE_HORIZ_UP: return GFX_TUBE_HORIZ_UP; - case EL_TUBE_HORIZ_DOWN: return GFX_TUBE_HORIZ_DOWN; - case EL_TUBE_LEFT_UP: return GFX_TUBE_LEFT_UP; - case EL_TUBE_LEFT_DOWN: return GFX_TUBE_LEFT_DOWN; - case EL_TUBE_RIGHT_UP: return GFX_TUBE_RIGHT_UP; - case EL_TUBE_RIGHT_DOWN: return GFX_TUBE_RIGHT_DOWN; - case EL_SPRING: return GFX_SPRING; - case EL_SPRING_MOVING: return GFX_SPRING; - case EL_TRAP_INACTIVE: return GFX_TRAP_INACTIVE; - case EL_TRAP_ACTIVE: return GFX_TRAP_ACTIVE; - case EL_BD_WALL: return GFX_BD_WALL; - case EL_BD_ROCK: return GFX_BD_ROCK; - case EL_DX_SUPABOMB: return GFX_DX_SUPABOMB; - case EL_SP_MURPHY_CLONE: return GFX_SP_MURPHY_CLONE; + case EL_INVISIBLE_STEELWALL: return GFX_INVISIBLE_STEEL; + case EL_INVISIBLE_STEELWALL_ACTIVE: return GFX_INVISIBLE_STEEL_ON; + case EL_BLACK_ORB: return GFX_BLACK_ORB; + case EL_EM_GATE1: return GFX_EM_GATE_1; + case EL_EM_GATE2: return GFX_EM_GATE_2; + case EL_EM_GATE3: return GFX_EM_GATE_3; + case EL_EM_GATE4: return GFX_EM_GATE_4; + case EL_EM_GATE1_GRAY: return GFX_EM_GATE_1X; + case EL_EM_GATE2_GRAY: return GFX_EM_GATE_2X; + case EL_EM_GATE3_GRAY: return GFX_EM_GATE_3X; + case EL_EM_GATE4_GRAY: return GFX_EM_GATE_4X; + case EL_EM_KEY1_FILE: return GFX_EM_KEY_1; + case EL_EM_KEY2_FILE: return GFX_EM_KEY_2; + case EL_EM_KEY3_FILE: return GFX_EM_KEY_3; + case EL_EM_KEY4_FILE: return GFX_EM_KEY_4; + case EL_EM_KEY1: return GFX_EM_KEY_1; + case EL_EM_KEY2: return GFX_EM_KEY_2; + case EL_EM_KEY3: return GFX_EM_KEY_3; + case EL_EM_KEY4: return GFX_EM_KEY_4; + case EL_PEARL: return GFX_PEARL; + case EL_CRYSTAL: return GFX_CRYSTAL; + case EL_WALL_PEARL: return GFX_WALL_PEARL; + case EL_WALL_CRYSTAL: return GFX_WALL_CRYSTAL; + case EL_DOOR_WHITE: return GFX_DOOR_WHITE; + case EL_DOOR_WHITE_GRAY: return GFX_DOOR_WHITE_GRAY; + case EL_KEY_WHITE: return GFX_KEY_WHITE; + case EL_SHIELD_NORMAL: return GFX_SHIELD_PASSIVE; + case EL_SHIELD_DEADLY: return GFX_SHIELD_ACTIVE; + case EL_EXTRA_TIME: return GFX_EXTRA_TIME; + case EL_SWITCHGATE_OPEN: return GFX_SWITCHGATE_OPEN; + case EL_SWITCHGATE_CLOSED: return GFX_SWITCHGATE_CLOSED; + case EL_SWITCHGATE_SWITCH_UP: return GFX_SWITCHGATE_SWITCH_1; + case EL_SWITCHGATE_SWITCH_DOWN: return GFX_SWITCHGATE_SWITCH_2; + case EL_CONVEYOR_BELT1_LEFT: return GFX_BELT1_LEFT; + case EL_CONVEYOR_BELT1_MIDDLE: return GFX_BELT1_MIDDLE; + case EL_CONVEYOR_BELT1_RIGHT: return GFX_BELT1_RIGHT; + case EL_CONVEYOR_BELT1_LEFT_ACTIVE: return GFX_BELT1_LEFT; + case EL_CONVEYOR_BELT1_MIDDLE_ACTIVE:return GFX_BELT1_MIDDLE; + case EL_CONVEYOR_BELT1_RIGHT_ACTIVE:return GFX_BELT1_RIGHT; + case EL_CONVEYOR_BELT1_SWITCH_LEFT: return GFX_BELT1_SWITCH_LEFT; + case EL_CONVEYOR_BELT1_SWITCH_MIDDLE:return GFX_BELT1_SWITCH_MIDDLE; + case EL_CONVEYOR_BELT1_SWITCH_RIGHT:return GFX_BELT1_SWITCH_RIGHT; + case EL_CONVEYOR_BELT2_LEFT: return GFX_BELT2_LEFT; + case EL_CONVEYOR_BELT2_MIDDLE: return GFX_BELT2_MIDDLE; + case EL_CONVEYOR_BELT2_RIGHT: return GFX_BELT2_RIGHT; + case EL_CONVEYOR_BELT2_LEFT_ACTIVE: return GFX_BELT2_LEFT; + case EL_CONVEYOR_BELT2_MIDDLE_ACTIVE:return GFX_BELT2_MIDDLE; + case EL_CONVEYOR_BELT2_RIGHT_ACTIVE:return GFX_BELT2_RIGHT; + case EL_CONVEYOR_BELT2_SWITCH_LEFT: return GFX_BELT2_SWITCH_LEFT; + case EL_CONVEYOR_BELT2_SWITCH_MIDDLE:return GFX_BELT2_SWITCH_MIDDLE; + case EL_CONVEYOR_BELT2_SWITCH_RIGHT:return GFX_BELT2_SWITCH_RIGHT; + case EL_CONVEYOR_BELT3_LEFT: return GFX_BELT3_LEFT; + case EL_CONVEYOR_BELT3_MIDDLE: return GFX_BELT3_MIDDLE; + case EL_CONVEYOR_BELT3_RIGHT: return GFX_BELT3_RIGHT; + case EL_CONVEYOR_BELT3_LEFT_ACTIVE: return GFX_BELT3_LEFT; + case EL_CONVEYOR_BELT3_MIDDLE_ACTIVE:return GFX_BELT3_MIDDLE; + case EL_CONVEYOR_BELT3_RIGHT_ACTIVE:return GFX_BELT3_RIGHT; + case EL_CONVEYOR_BELT3_SWITCH_LEFT: return GFX_BELT3_SWITCH_LEFT; + case EL_CONVEYOR_BELT3_SWITCH_MIDDLE:return GFX_BELT3_SWITCH_MIDDLE; + case EL_CONVEYOR_BELT3_SWITCH_RIGHT:return GFX_BELT3_SWITCH_RIGHT; + case EL_CONVEYOR_BELT4_LEFT: return GFX_BELT4_LEFT; + case EL_CONVEYOR_BELT4_MIDDLE: return GFX_BELT4_MIDDLE; + case EL_CONVEYOR_BELT4_RIGHT: return GFX_BELT4_RIGHT; + case EL_CONVEYOR_BELT4_LEFT_ACTIVE: return GFX_BELT4_LEFT; + case EL_CONVEYOR_BELT4_MIDDLE_ACTIVE:return GFX_BELT4_MIDDLE; + case EL_CONVEYOR_BELT4_RIGHT_ACTIVE:return GFX_BELT4_RIGHT; + case EL_CONVEYOR_BELT4_SWITCH_LEFT: return GFX_BELT4_SWITCH_LEFT; + case EL_CONVEYOR_BELT4_SWITCH_MIDDLE:return GFX_BELT4_SWITCH_MIDDLE; + case EL_CONVEYOR_BELT4_SWITCH_RIGHT:return GFX_BELT4_SWITCH_RIGHT; + case EL_LANDMINE: return GFX_LANDMINE; + case EL_ENVELOPE: return GFX_ENVELOPE; + case EL_LIGHT_SWITCH: return GFX_LIGHT_SWITCH_OFF; + case EL_LIGHT_SWITCH_ACTIVE: return GFX_LIGHT_SWITCH_ON; + case EL_SIGN_EXCLAMATION: return GFX_SIGN_EXCLAMATION; + case EL_SIGN_RADIOACTIVITY: return GFX_SIGN_RADIOACTIVITY; + case EL_SIGN_STOP: return GFX_SIGN_STOP; + case EL_SIGN_WHEELCHAIR: return GFX_SIGN_WHEELCHAIR; + case EL_SIGN_PARKING: return GFX_SIGN_PARKING; + case EL_SIGN_ONEWAY: return GFX_SIGN_ONEWAY; + case EL_SIGN_HEART: return GFX_SIGN_HEART; + case EL_SIGN_TRIANGLE: return GFX_SIGN_TRIANGLE; + case EL_SIGN_ROUND: return GFX_SIGN_ROUND; + case EL_SIGN_EXIT: return GFX_SIGN_EXIT; + case EL_SIGN_YINYANG: return GFX_SIGN_YINYANG; + case EL_SIGN_OTHER: return GFX_SIGN_OTHER; + case EL_MOLE_LEFT: return GFX_MOLE_LEFT; + case EL_MOLE_RIGHT: return GFX_MOLE_RIGHT; + case EL_MOLE_UP: return GFX_MOLE_UP; + case EL_MOLE_DOWN: return GFX_MOLE_DOWN; + case EL_STEELWALL_SLANTED: return GFX_STEEL_SLANTED; + case EL_INVISIBLE_SAND: return GFX_SAND_INVISIBLE; + case EL_INVISIBLE_SAND_ACTIVE: return GFX_SAND_INVISIBLE_ON; + case EL_DX_UNKNOWN_15: return GFX_DX_UNKNOWN_15; + case EL_DX_UNKNOWN_42: return GFX_DX_UNKNOWN_42; + case EL_TIMEGATE_OPEN: return GFX_TIMEGATE_OPEN; + case EL_TIMEGATE_CLOSED: return GFX_TIMEGATE_CLOSED; + case EL_TIMEGATE_SWITCH_ACTIVE: return GFX_TIMEGATE_SWITCH; + case EL_TIMEGATE_SWITCH: return GFX_TIMEGATE_SWITCH; + case EL_BALLOON: return GFX_BALLOON; + case EL_BALLOON_SEND_LEFT: return GFX_BALLOON_SEND_LEFT; + case EL_BALLOON_SEND_RIGHT: return GFX_BALLOON_SEND_RIGHT; + case EL_BALLOON_SEND_UP: return GFX_BALLOON_SEND_UP; + case EL_BALLOON_SEND_DOWN: return GFX_BALLOON_SEND_DOWN; + case EL_BALLOON_SEND_ANY_DIRECTION: return GFX_BALLOON_SEND_ANY; + case EL_EMC_STEELWALL1: return GFX_EMC_STEEL_WALL_1; + case EL_EMC_STEELWALL2: return GFX_EMC_STEEL_WALL_2; + case EL_EMC_STEELWALL3: return GFX_EMC_STEEL_WALL_3; + case EL_EMC_STEELWALL4: return GFX_EMC_STEEL_WALL_4; + case EL_EMC_WALL_PILLAR_UPPER: return GFX_EMC_WALL_1; + case EL_EMC_WALL_PILLAR_MIDDLE: return GFX_EMC_WALL_2; + case EL_EMC_WALL_PILLAR_LOWER: return GFX_EMC_WALL_3; + case EL_EMC_WALL4: return GFX_EMC_WALL_4; + case EL_EMC_WALL5: return GFX_EMC_WALL_5; + case EL_EMC_WALL6: return GFX_EMC_WALL_6; + case EL_EMC_WALL7: return GFX_EMC_WALL_7; + case EL_EMC_WALL8: return GFX_EMC_WALL_8; + case EL_TUBE_ALL: return GFX_TUBE_CROSS; + case EL_TUBE_VERTICAL: return GFX_TUBE_VERTICAL; + case EL_TUBE_HORIZONTAL: return GFX_TUBE_HORIZONTAL; + case EL_TUBE_VERTICAL_LEFT: return GFX_TUBE_VERT_LEFT; + case EL_TUBE_VERTICAL_RIGHT: return GFX_TUBE_VERT_RIGHT; + case EL_TUBE_HORIZONTAL_UP: return GFX_TUBE_HORIZ_UP; + case EL_TUBE_HORIZONTAL_DOWN: return GFX_TUBE_HORIZ_DOWN; + case EL_TUBE_LEFT_UP: return GFX_TUBE_LEFT_UP; + case EL_TUBE_LEFT_DOWN: return GFX_TUBE_LEFT_DOWN; + case EL_TUBE_RIGHT_UP: return GFX_TUBE_RIGHT_UP; + case EL_TUBE_RIGHT_DOWN: return GFX_TUBE_RIGHT_DOWN; + case EL_SPRING: return GFX_SPRING; + case EL_SPRING_MOVING: return GFX_SPRING; + case EL_TRAP: return GFX_TRAP_INACTIVE; + case EL_TRAP_ACTIVE: return GFX_TRAP_ACTIVE; + case EL_BD_WALL: return GFX_BD_WALL; + case EL_BD_ROCK: return GFX_BD_ROCK; + case EL_DX_SUPABOMB: return GFX_DX_SUPABOMB; + case EL_SP_MURPHY_CLONE: return GFX_SP_MURPHY_CLONE; default: { @@ -3296,6 +3314,12 @@ int el2gfx_OLD(int element) int el2gfx(int element) { +#if 1 + int graphic_OLD = el2gfx_OLD(element); + + return graphic_OLD; +#else + int graphic_NEW = element_info[element].graphic[GFX_ACTION_DEFAULT]; #if DEBUG @@ -3314,14 +3338,21 @@ int el2gfx(int element) #endif return graphic_NEW; +#endif } int el2img(int element) { +#if 1 + int graphic_NEW = element_info[element].graphic[GFX_ACTION_DEFAULT]; + + return graphic_NEW; +#else + switch(element) { - case EL_BUTTERFLY: return IMG_BD_BUTTERFLY; - case EL_FIREFLY: return IMG_BD_FIREFLY; + case EL_BD_BUTTERFLY: return IMG_BD_BUTTERFLY; + case EL_BD_FIREFLY: return IMG_BD_FIREFLY; case EL_SP_ELECTRON: return IMG_SP_ELECTRON; default: @@ -3329,16 +3360,31 @@ int el2img(int element) } return IMG_EMPTY_SPACE; +#endif } int el_dir2img(int element, int direction) { - if (element_info[element].has_direction_graphic[GFX_ACTION_DEFAULT]) + int action = GFX_ACTION_DEFAULT; + + if (element_info[element].has_direction_graphic[action]) { - int i = LOG_MV_DIR(direction); + direction = MV_DIR_BIT(direction); - return element_info[element].direction_graphic[GFX_ACTION_DEFAULT][i]; + return element_info[element].direction_graphic[action][direction]; } else return el2img(element); } + +int el_dir_act2img(int element, int direction, int action) +{ + if (element_info[element].has_direction_graphic[action]) + { + direction = MV_DIR_BIT(direction); + + return element_info[element].direction_graphic[action][direction]; + } + else + return el_dir2img(element, direction); +}