From f614a458458b6b57bb2fcc0d3da7501340ddaf6a Mon Sep 17 00:00:00 2001 From: Max Weber Date: Mon, 5 Nov 2018 19:23:06 -0700 Subject: [PATCH] zoom: Adjust inner zoom limit to safe value Any value greater than 1004 can cause an overflow with a large height, causing 3dzoom to be zero, crashing the renderer --- .../net/runelite/client/plugins/zoom/ZoomPlugin.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zoom/ZoomPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/zoom/ZoomPlugin.java index 0463a7f939..d60a903a60 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zoom/ZoomPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zoom/ZoomPlugin.java @@ -47,6 +47,13 @@ import net.runelite.client.plugins.PluginDescriptor; ) public class ZoomPlugin extends Plugin implements KeyListener { + /** + * The largest (most zoomed in) value that can be used without the client crashing. + * + * Larger values trigger an overflow in the engine's fov to scale code. + */ + private static final int INNER_ZOOM_LIMIT = 1004; + private boolean controlDown; @Inject @@ -84,7 +91,7 @@ public class ZoomPlugin extends Plugin implements KeyListener if ("innerZoomLimit".equals(event.getEventName()) && zoomConfig.innerLimit()) { - intStack[intStackSize - 1] = 1200; + intStack[intStackSize - 1] = INNER_ZOOM_LIMIT; return; }