fixed activating robot wheel at wrap-around position for EM engine
authorHolger Schemel <info@artsoft.org>
Tue, 1 Dec 2020 20:22:41 +0000 (21:22 +0100)
committerHolger Schemel <info@artsoft.org>
Tue, 1 Dec 2020 20:22:41 +0000 (21:22 +0100)
src/game_em/logic.c

index a56547b14a462365e830a8cdfbdb59ac0adead0b..1eaefcfc93421c0303f66dd66f7792a73c202206 100644 (file)
@@ -7768,6 +7768,18 @@ static void logic_players(void)
       next[ply[i].x][ply[i].y] = add_player[element];
     }
   }
+
+  /* check for wheel at wrap-around position */
+  if (lev.wheel_x < lev.left ||
+      lev.wheel_x > lev.right - 1)
+  {
+    int direction = (lev.wheel_x < lev.left ? -1 : 1);
+
+    lev.wheel_x += -direction * lev.width;
+
+    if (!lev.infinite_true)
+      lev.wheel_y += direction;
+  }
 }
 
 static void logic_objects(void)