diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java index a237fc03cd..87181b4085 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/Raid.java @@ -98,6 +98,25 @@ public class Raid return combatRooms.toArray(new RaidRoom[0]); } + void setCombatRooms(RaidRoom[] combatRooms) + { + int index = 0; + + for (Room room : layout.getRooms()) + { + if (room == null) + { + continue; + } + + if (rooms[room.getPosition()].getType() == RoomType.COMBAT) + { + rooms[room.getPosition()] = combatRooms[index]; + index++; + } + } + } + public String toCode() { StringBuilder builder = new StringBuilder(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java index 5047c4e625..f25ba51534 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsPlugin.java @@ -320,7 +320,9 @@ public class RaidsPlugin extends Plugin } raid.updateLayout(layout); - RotationSolver.solve(raid.getCombatRooms()); + RaidRoom[] rooms = raid.getCombatRooms(); + RotationSolver.solve(rooms); + raid.setCombatRooms(rooms); overlay.setScoutOverlayShown(true); if (config.layoutMessage()) diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java index 5c2bba30e6..38039ca832 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/raids/RotationSolverTest.java @@ -69,4 +69,12 @@ public class RotationSolverTest RotationSolver.solve(rooms); assertArrayEquals(new RaidRoom[]{VASA, SHAMANS, VESPULA, GUARDIANS}, rooms); } + + @Test + public void testSolve5() + { + RaidRoom[] rooms = new RaidRoom[]{GUARDIANS, UNKNOWN_COMBAT, SHAMANS, VASA}; + RotationSolver.solve(rooms); + assertArrayEquals(new RaidRoom[]{GUARDIANS, VESPULA, SHAMANS, VASA}, rooms); + } } \ No newline at end of file