From f210bbc4fb266ed1dd5cc21cf4f5690b9845e40d Mon Sep 17 00:00:00 2001 From: Lotto Date: Sun, 25 Feb 2018 20:48:16 +0100 Subject: [PATCH] puzzlesolver: remove bounds check from PuzzleSolver#getStep --- .../puzzlesolver/PuzzleSolverOverlay.java | 24 +++++++++++++++---- .../puzzlesolver/solver/PuzzleSolver.java | 5 ---- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java index b28ae9917c..c498c2e0ea 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverOverlay.java @@ -216,9 +216,16 @@ public class PuzzleSolverOverlay extends Overlay graphics.setColor(Color.YELLOW); // Display the next 4 steps - for (int j = 1; j < 5; j++) + for (int i = 1; i < 5; i++) { - PuzzleState futureMove = solver.getStep(solver.getPosition() + j); + int j = solver.getPosition() + i; + + if (j >= solver.getStepCount()) + { + break; + } + + PuzzleState futureMove = solver.getStep(j); if (futureMove == null) { @@ -228,7 +235,7 @@ public class PuzzleSolverOverlay extends Overlay int blankX = futureMove.getEmptyPiece() % DIMENSION; int blankY = futureMove.getEmptyPiece() / DIMENSION; - int markerSize = DOT_MARKER_SIZE - j * 3; + int markerSize = DOT_MARKER_SIZE - i * 3; int x = puzzleBoxLocation.getX() + blankX * PUZZLE_TILE_SIZE + PUZZLE_TILE_SIZE / 2 - markerSize / 2; @@ -248,9 +255,16 @@ public class PuzzleSolverOverlay extends Overlay int lastBlankY = currentMove.getEmptyPiece() / DIMENSION; // Display the next 3 steps - for (int j = 1; j < 4; j++) + for (int i = 1; i < 4; i++) { - PuzzleState futureMove = solver.getStep(solver.getPosition() + j); + int j = solver.getPosition() + i; + + if (j >= solver.getStepCount()) + { + break; + } + + PuzzleState futureMove = solver.getStep(j); if (futureMove == null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleSolver.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleSolver.java index cf4b0cc1c2..9749a7769e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleSolver.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/solver/PuzzleSolver.java @@ -47,11 +47,6 @@ public class PuzzleSolver implements Runnable public PuzzleState getStep(int stepIdx) { - if (stepIdx < 0 || stepIdx >= solution.size()) - { - return null; - } - return solution.get(stepIdx); }