From d9854779a9f8bfcf09cfab5905c257da10c61e5f Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Fri, 31 Mar 2023 16:09:18 +0200 Subject: [PATCH 1/1] fixed handling laser when clicking on one of several McDuffins in MM engine --- src/game_mm/mm_game.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/game_mm/mm_game.c b/src/game_mm/mm_game.c index c5cfa1d5..6162d7a0 100644 --- a/src/game_mm/mm_game.c +++ b/src/game_mm/mm_game.c @@ -3088,29 +3088,25 @@ boolean ClickElement(int x, int y, int button) } else if (IS_MCDUFFIN(element)) { - if (!laser.fuse_off) - { - DrawLaser(0, DL_LASER_DISABLED); + boolean has_laser = (x == laser.start_edge.x && y == laser.start_edge.y); - /* - BackToFront(); - */ - } + if (has_laser && !laser.fuse_off) + DrawLaser(0, DL_LASER_DISABLED); element = get_rotated_element(element, BUTTON_ROTATION(button)); - laser.start_angle = get_element_angle(element); - - InitLaser(); Tile[x][y] = element; DrawField_MM(x, y); - /* - BackToFront(); - */ + if (has_laser) + { + laser.start_angle = get_element_angle(element); - if (!laser.fuse_off) - ScanLaser(); + InitLaser(); + + if (!laser.fuse_off) + ScanLaser(); + } element_clicked = TRUE; } -- 2.34.1