fixed crash bug caused by accessing invalid (off-playfield) array positions
[rocksndiamonds.git] / src / tools.c
index ad4170e66870a4edcb676221742ee83b1051ab3d..6a998afb360639bb7611ac472c06ff6b0c7bf497 100644 (file)
@@ -1996,11 +1996,11 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element,
   int graphic;
   int frame;
 
-  if (element == EL_EMPTY)
-    element = GfxElementEmpty[lx][ly];
-
   if (IN_LEV_FIELD(lx, ly))
   {
+    if (element == EL_EMPTY)
+      element = GfxElementEmpty[lx][ly];
+
     SetRandomAnimationValue(lx, ly);
 
     graphic = el_act_dir2img(element, GfxAction[lx][ly], GfxDir[lx][ly]);
@@ -5381,7 +5381,6 @@ unsigned int MoveDoor(unsigned int door_state)
     int num_move_steps = 0;    // number of animation steps for all doors
     int max_move_delay_doors_only = 0; // delay for doors only (no panel)
     int num_move_steps_doors_only = 0; // steps for doors only (no panel)
-    int current_move_delay = 0;
     int start = 0;
     int k;
 
@@ -5641,8 +5640,6 @@ unsigned int MoveDoor(unsigned int door_state)
 
        SkipUntilDelayReached(&door_delay, door_delay_value, &k, last_frame);
 
-       current_move_delay += max_step_delay;
-
        // prevent OS (Windows) from complaining about program not responding
        CheckQuitEvent();
       }