From aa873ce172bf3de23c2dece2fbe46a87da670dfa Mon Sep 17 00:00:00 2001 From: Misa Date: Sat, 4 Jul 2020 18:50:58 -0700 Subject: [PATCH] Use proper do-while for teleporter searching loop A do-while is just a while-loop, but the inner block will always run once before the conditional is checked. It looks like in order to achieve this desired behavior (always run the block once before checking the conditional), instead of using a do-while loop, Terry just used a normal while-loop and copy-pasted the inner block on the outside. So I'm de-duplicating the code. --- desktop_version/src/Input.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index 4183247d..b71e6003 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -2337,31 +2337,25 @@ void teleporterinput() if (game.press_left) { - game.teleport_to_teleporter--; - if (game.teleport_to_teleporter < 0) game.teleport_to_teleporter = map.teleporters.size() - 1; - tempx = map.teleporters[game.teleport_to_teleporter].x; - tempy = map.teleporters[game.teleport_to_teleporter].y; - while (map.explored[tempx + (20 * tempy)] == 0) + do { game.teleport_to_teleporter--; if (game.teleport_to_teleporter < 0) game.teleport_to_teleporter = map.teleporters.size() - 1; tempx = map.teleporters[game.teleport_to_teleporter].x; tempy = map.teleporters[game.teleport_to_teleporter].y; } + while (map.explored[tempx + (20 * tempy)] == 0); } else if (game.press_right) { - game.teleport_to_teleporter++; - if (game.teleport_to_teleporter >= (int) map.teleporters.size()) game.teleport_to_teleporter = 0; - tempx = map.teleporters[game.teleport_to_teleporter].x; - tempy = map.teleporters[game.teleport_to_teleporter].y; - while (map.explored[tempx + (20 * tempy)] == 0) + do { game.teleport_to_teleporter++; if (game.teleport_to_teleporter >= (int) map.teleporters.size()) game.teleport_to_teleporter = 0; tempx = map.teleporters[game.teleport_to_teleporter].x; tempy = map.teleporters[game.teleport_to_teleporter].y; } + while (map.explored[tempx + (20 * tempy)] == 0); } if (game.press_map)