moved variables to higher position in scope
[rocksndiamonds.git] / src / game_mm / mm_game.c
index e35b1321a1bcb595733fe78a9473a46343b675d9..d66dbc846aa9d6fb7f6d7f52b1466c9df59de6bf 100644 (file)
@@ -1692,6 +1692,9 @@ static boolean HitElement(int element, int hit_mask)
     // check if laser scan has crossed element boundaries (not just mini tiles)
     boolean cross_x = (getLevelFromLaserX(LX) != getLevelFromLaserX(LX + 2));
     boolean cross_y = (getLevelFromLaserY(LY) != getLevelFromLaserY(LY + 2));
+    int element_angle = get_element_angle(element);
+    int mirrored_angle = get_mirrored_angle(laser.current_angle, element_angle);
+    int opposite_angle = get_opposite_angle(laser.current_angle);
 
     // check if wall (horizontal or vertical) side of slope was hit
     if (hit_mask == HIT_MASK_LEFT ||
@@ -1722,10 +1725,6 @@ static boolean HitElement(int element, int hit_mask)
       }
     }
 
-    int mirrored_angle = get_mirrored_angle(laser.current_angle,
-                                           get_element_angle(element));
-    int opposite_angle = get_opposite_angle(laser.current_angle);
-
     // check if laser is reflected by slope by 180°
     if (mirrored_angle == opposite_angle)
     {
@@ -1956,8 +1955,8 @@ static boolean HitElement(int element, int hit_mask)
       {
        int elx, ely;
 
-       elx = getLevelFromLaserX(LX);
-       ely = getLevelFromLaserY(LY);
+       elx = getLevelFromLaserX(LX + XS);
+       ely = getLevelFromLaserY(LY + YS);
 
        if (IN_LEV_FIELD(elx, ely))
        {