{ "mm_gray_ball.xpos", "15" },
{ "mm_gray_ball.ypos", "2" },
{ "mm_gray_ball.frames", "1" },
+ { "mm_gray_ball.active", "RocksMM.png" },
+ { "mm_gray_ball.active.xpos", "15" },
+ { "mm_gray_ball.active.ypos", "1" },
+ { "mm_gray_ball.active.frames", "2" },
+ { "mm_gray_ball.active.delay", "20" },
+ { "mm_gray_ball.active.vertical", "true" },
{ "mm_gray_ball.EDITOR", "RocksMM.png" },
{ "mm_gray_ball.EDITOR.xpos", "15" },
{ "mm_gray_ball.EDITOR.ypos", "1" },
{
if (laser.dest_element_last == EL_BOMB_ACTIVE ||
laser.dest_element_last == EL_MINE_ACTIVE ||
+ laser.dest_element_last == EL_GRAY_BALL_ACTIVE ||
laser.dest_element_last == EL_GRAY_BALL_OPENING)
{
int x = laser.dest_element_last_x;
return TRUE;
}
- if (element == EL_BOMB || element == EL_MINE)
+ if (element == EL_BOMB || element == EL_MINE || element == EL_BALL_GRAY)
{
PlayLevelSound_MM(ELX, ELY, element, MM_ACTION_HITTING);
- Tile[ELX][ELY] = (element == EL_BOMB ? EL_BOMB_ACTIVE : EL_MINE_ACTIVE);
+ Tile[ELX][ELY] = (element == EL_BOMB ? EL_BOMB_ACTIVE :
+ element == EL_MINE ? EL_MINE_ACTIVE :
+ EL_GRAY_BALL_ACTIVE);
laser.dest_element_last = Tile[ELX][ELY];
laser.dest_element_last_x = ELX;
IS_MIRROR_FIXED(element) ||
element == EL_PRISM)
DrawFieldTwinkle(x, y);
- else if (element == EL_GRAY_BALL_OPENING ||
+ else if (element == EL_GRAY_BALL_ACTIVE ||
element == EL_BOMB_ACTIVE ||
element == EL_MINE_ACTIVE)
DrawFieldAnimated_MM(x, y);
element != EL_MINE &&
element != EL_MINE_ACTIVE &&
element != EL_BALL_GRAY &&
+ element != EL_GRAY_BALL_ACTIVE &&
element != EL_BLOCK_STONE &&
element != EL_BLOCK_WOOD &&
element != EL_FUSE_ON &&
Tile[ELX][ELY] = EL_GRAY_BALL_OPENING;
- // !!! CHECK AGAIN: Laser on Polarizer !!!
- ScanLaser();
-
laser.dest_element_last = Tile[ELX][ELY];
- laser.dest_element_last_x = ELX;
- laser.dest_element_last_y = ELY;
return;
// "real" (and therefore drawable) runtime elements
#define EL_EXIT_OPENING 500
#define EL_EXIT_CLOSING 501
-#define EL_GRAY_BALL_OPENING 502
-#define EL_ICE_WALL_SHRINKING 503
-#define EL_AMOEBA_WALL_GROWING 504
-#define EL_BOMB_ACTIVE 505
-#define EL_MINE_ACTIVE 506
-#define EL_ENVELOPE_1_OPENING 507
-#define EL_ENVELOPE_2_OPENING 508
-#define EL_ENVELOPE_3_OPENING 509
-#define EL_ENVELOPE_4_OPENING 510
+#define EL_GRAY_BALL_ACTIVE 502
+#define EL_GRAY_BALL_OPENING 503
+#define EL_ICE_WALL_SHRINKING 504
+#define EL_AMOEBA_WALL_GROWING 505
+#define EL_BOMB_ACTIVE 506
+#define EL_MINE_ACTIVE 507
+#define EL_ENVELOPE_1_OPENING 508
+#define EL_ENVELOPE_2_OPENING 509
+#define EL_ENVELOPE_3_OPENING 510
+#define EL_ENVELOPE_4_OPENING 511
#define EL_ENVELOPE_OPENING_START EL_ENVELOPE_1_OPENING
#define EL_ENVELOPE_OPENING_END EL_ENVELOPE_4_OPENING
laser.fuse_x == x &&
laser.fuse_y == y)
DrawGraphic_MM(x, y, IMG_MM_FUSE);
+ else if (element == EL_GRAY_BALL_ACTIVE)
+ DrawGraphic_MM(x, y, el_act2gfx(EL_BALL_GRAY, MM_ACTION_ACTIVE));
else if (element == EL_GRAY_BALL_OPENING)
DrawGraphic_MM(x, y, el_act2gfx(EL_BALL_GRAY, MM_ACTION_OPENING));
else if (element == EL_BOMB_ACTIVE)
"mm_exit",
"-"
},
+ {
+ "mm_gray_ball.active",
+ "mm_gray_ball",
+ "-",
+ },
{
"mm_gray_ball.opening",
"mm_gray_ball",
#define EL_EMC_SPRING_BUMPER_ACTIVE (EL_FIRST_RUNTIME_REAL + 71)
#define EL_MM_EXIT_OPENING (EL_FIRST_RUNTIME_REAL + 72)
#define EL_MM_EXIT_CLOSING (EL_FIRST_RUNTIME_REAL + 73)
-#define EL_MM_GRAY_BALL_OPENING (EL_FIRST_RUNTIME_REAL + 74)
-#define EL_MM_ICE_WALL_SHRINKING (EL_FIRST_RUNTIME_REAL + 75)
-#define EL_MM_AMOEBA_WALL_GROWING (EL_FIRST_RUNTIME_REAL + 76)
-#define EL_MM_PACMAN_EATING_RIGHT (EL_FIRST_RUNTIME_REAL + 77)
-#define EL_MM_PACMAN_EATING_UP (EL_FIRST_RUNTIME_REAL + 78)
-#define EL_MM_PACMAN_EATING_LEFT (EL_FIRST_RUNTIME_REAL + 79)
-#define EL_MM_PACMAN_EATING_DOWN (EL_FIRST_RUNTIME_REAL + 80)
-#define EL_MM_BOMB_ACTIVE (EL_FIRST_RUNTIME_REAL + 81)
-#define EL_DF_MINE_ACTIVE (EL_FIRST_RUNTIME_REAL + 82)
-
-#define NUM_DRAWABLE_ELEMENTS (EL_FIRST_RUNTIME_REAL + 83)
+#define EL_MM_GRAY_BALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 74)
+#define EL_MM_GRAY_BALL_OPENING (EL_FIRST_RUNTIME_REAL + 75)
+#define EL_MM_ICE_WALL_SHRINKING (EL_FIRST_RUNTIME_REAL + 76)
+#define EL_MM_AMOEBA_WALL_GROWING (EL_FIRST_RUNTIME_REAL + 77)
+#define EL_MM_PACMAN_EATING_RIGHT (EL_FIRST_RUNTIME_REAL + 78)
+#define EL_MM_PACMAN_EATING_UP (EL_FIRST_RUNTIME_REAL + 79)
+#define EL_MM_PACMAN_EATING_LEFT (EL_FIRST_RUNTIME_REAL + 80)
+#define EL_MM_PACMAN_EATING_DOWN (EL_FIRST_RUNTIME_REAL + 81)
+#define EL_MM_BOMB_ACTIVE (EL_FIRST_RUNTIME_REAL + 82)
+#define EL_DF_MINE_ACTIVE (EL_FIRST_RUNTIME_REAL + 83)
+
+#define NUM_DRAWABLE_ELEMENTS (EL_FIRST_RUNTIME_REAL + 84)
#define EL_MM_RUNTIME_START EL_MM_EXIT_OPENING
#define EL_MM_RUNTIME_END EL_MM_AMOEBA_WALL_GROWING