fixed bug with game restart request when opening/closing doors
[rocksndiamonds.git] / src / tools.c
index babb4987171bd73559191c0429f79aed62e64432..d83cb75aada4810bf6a2b235d695e45d54976c10 100644 (file)
@@ -5515,6 +5515,10 @@ unsigned int MoveDoor(unsigned int door_state)
       }
     }
 
+    SetDoorBackgroundImage(IMG_BACKGROUND_DOOR);
+
+    game.any_door_active = TRUE;
+
     for (k = start; k < num_move_steps; k++)
     {
       int last_frame = num_move_steps - 1;     // last frame of this "for" loop
@@ -5709,6 +5713,8 @@ unsigned int MoveDoor(unsigned int door_state)
        BackToFront();
       }
     }
+
+    game.any_door_active = FALSE;
   }
 
   if (door_state & DOOR_ACTION_1)
@@ -6212,7 +6218,7 @@ bd_object_mapping_list[] =
   },
   {
     O_FLYING_STONE_F,                          FALSE,
-    EL_BD_FLYING_ROCK,                         ACTION_FALLING, -1
+    EL_BD_FLYING_ROCK,                         ACTION_FLYING, -1
   },
   {
     O_MEGA_STONE,                              TRUE,
@@ -6248,7 +6254,7 @@ bd_object_mapping_list[] =
   },
   {
     O_FLYING_DIAMOND_F,                                FALSE,
-    EL_BD_FLYING_DIAMOND,                      ACTION_FALLING, -1
+    EL_BD_FLYING_DIAMOND,                      ACTION_FLYING, -1
   },
   {
     O_NUT,                                     TRUE,
@@ -6296,7 +6302,7 @@ bd_object_mapping_list[] =
   },
   {
     O_EXPANDING_WALL_SWITCH,                   TRUE,
-    EL_BD_EXPANDABLE_WALL_SWITCH_HORIZONTAL,   -1, -1
+    EL_BD_EXPANDABLE_WALL_SWITCH,              -1, -1
   },
   {
     O_CREATURE_SWITCH,                         TRUE,
@@ -6316,7 +6322,7 @@ bd_object_mapping_list[] =
   },
   {
     O_CONVEYOR_DIR_SWITCH,                     TRUE,
-    EL_BD_CONVEYOR_DIR_SWITCH_NORMAL,          -1, -1
+    EL_BD_CONVEYOR_DIR_SWITCH,                 -1, -1
   },
   {
     O_ACID,                                    TRUE,
@@ -6894,6 +6900,10 @@ bd_object_mapping_list[] =
     O_PLAYER_BOMB,                             TRUE,
     EL_BD_PLAYER_WITH_BOMB,                    -1, -1
   },
+  {
+    O_PLAYER_ROCKET_LAUNCHER,                  TRUE,
+    EL_BD_PLAYER_WITH_ROCKET_LAUNCHER,         -1, -1
+  },
   {
     O_PLAYER_GLUED,                            TRUE,
     EL_BD_PLAYER_GLUED,                                -1, -1
@@ -6902,6 +6912,26 @@ bd_object_mapping_list[] =
     O_PLAYER_STIRRING,                         TRUE,
     EL_BD_PLAYER_STIRRING,                     -1, -1
   },
+  {
+    O_ROCKET_LAUNCHER,                         TRUE,
+    EL_BD_ROCKET_LAUNCHER,                     -1, -1
+  },
+  {
+    O_ROCKET_1,                                        TRUE,
+    EL_BD_ROCKET_RIGHT,                                -1, -1
+  },
+  {
+    O_ROCKET_2,                                        TRUE,
+    EL_BD_ROCKET_UP,                           -1, -1
+  },
+  {
+    O_ROCKET_3,                                        TRUE,
+    EL_BD_ROCKET_LEFT,                         -1, -1
+  },
+  {
+    O_ROCKET_4,                                        TRUE,
+    EL_BD_ROCKET_DOWN,                         -1, -1
+  },
   {
     O_BOMB,                                    TRUE,
     EL_BD_BOMB,                                        -1, -1
@@ -6974,14 +7004,6 @@ bd_object_mapping_list[] =
     O_NITRO_PACK_F,                            FALSE,
     EL_BD_NITRO_PACK,                          ACTION_FALLING, -1
   },
-  {
-    O_NITRO_PACK_EXPLODE,                      TRUE,
-    EL_BD_NITRO_PACK_EXPLODING,                        -1, -1
-  },
-  {
-    O_NITRO_PACK_EXPLODE,                      FALSE,
-    EL_BD_NITRO_PACK,                          ACTION_EXPLODING, -1
-  },
   {
     O_PRE_CLOCK_1,                             TRUE,
     EL_BD_CLOCK_GROWING_1,                     -1, -1
@@ -7254,6 +7276,14 @@ bd_object_mapping_list[] =
     O_NITRO_EXPL_4,                            FALSE,
     EL_BD_NITRO_PACK,                          ACTION_EXPLODING, -1
   },
+  {
+    O_NITRO_PACK_EXPLODE,                      TRUE,
+    EL_BD_NITRO_PACK_EXPLODING,                        -1, -1
+  },
+  {
+    O_NITRO_PACK_EXPLODE,                      FALSE,
+    EL_BD_NITRO_PACK,                          ACTION_EXPLODING, -1
+  },
   {
     O_AMOEBA_2_EXPL_1,                         TRUE,
     EL_BD_AMOEBA_2_EXPLODING_1,                        -1, -1
@@ -7327,11 +7357,11 @@ bd_object_mapping_list[] =
     EL_BD_PLAYER,                              ACTION_HITTING, MV_BIT_RIGHT
   },
   {
-    O_PNEUMATIC_ACTIVE_LEFT,                   TRUE,
+    O_PNEUMATIC_ACTIVE_LEFT,                   FALSE,
     EL_BD_PNEUMATIC_HAMMER,                    ACTION_HITTING, MV_BIT_LEFT
   },
   {
-    O_PNEUMATIC_ACTIVE_RIGHT,                  TRUE,
+    O_PNEUMATIC_ACTIVE_RIGHT,                  FALSE,
     EL_BD_PNEUMATIC_HAMMER,                    ACTION_HITTING, MV_BIT_RIGHT
   },
 
@@ -7387,11 +7417,11 @@ bd_object_mapping_list[] =
   },
   {
     O_EXPANDING_WALL_SWITCH_HORIZ,             FALSE,
-    EL_BD_EXPANDABLE_WALL_SWITCH_HORIZONTAL,   -1, -1
+    EL_BD_EXPANDABLE_WALL_SWITCH,              -1, -1
   },
   {
     O_EXPANDING_WALL_SWITCH_VERT,              FALSE,
-    EL_BD_EXPANDABLE_WALL_SWITCH_VERTICAL,     -1, -1
+    EL_BD_EXPANDABLE_WALL_SWITCH_ACTIVE,       -1, -1
   },
   {
     O_GRAVITY_SWITCH_ACTIVE,                   FALSE,
@@ -7407,11 +7437,11 @@ bd_object_mapping_list[] =
   },
   {
     O_CONVEYOR_DIR_NORMAL,                     FALSE,
-    EL_BD_CONVEYOR_DIR_SWITCH_NORMAL,          -1, -1
+    EL_BD_CONVEYOR_DIR_SWITCH,                 -1, -1
   },
   {
     O_CONVEYOR_DIR_CHANGED,                    FALSE,
-    EL_BD_CONVEYOR_DIR_SWITCH_CHANGED,         -1, -1
+    EL_BD_CONVEYOR_DIR_SWITCH_ACTIVE,          -1, -1
   },
   {
     O_CONVEYOR_SWITCH_OFF,                     FALSE,