From b2c9990aadeda5bb18acd5a814d92ed37a4d11f4 Mon Sep 17 00:00:00 2001 From: zeruth Date: Wed, 13 May 2020 02:56:37 -0400 Subject: [PATCH] hooks: track software mirror mouse --- .../net/runelite/client/callback/Hooks.java | 14 +++++++++++++- .../net/runelite/client/callback/cursor.png | Bin 0 -> 15630 bytes 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 runelite-client/src/main/resources/net/runelite/client/callback/cursor.png diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index 6bc2a60f0b..e69e8a445a 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -66,6 +66,7 @@ import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.eventbus.EventBus; import net.runelite.client.events.DrawFinished; import net.runelite.client.input.KeyManager; +import net.runelite.client.input.MouseListener; import net.runelite.client.input.MouseManager; import net.runelite.client.task.Scheduler; import net.runelite.client.ui.ClientUI; @@ -75,6 +76,7 @@ import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.OverlayRenderer; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.util.DeferredEventBus; +import net.runelite.client.util.ImageUtil; import net.runelite.client.util.RSTimeUnit; /** @@ -97,6 +99,11 @@ public class Hooks implements Callbacks private static final BeforeRender BEFORE_RENDER = BeforeRender.INSTANCE; private static final DrawFinished drawFinishedEvent = new DrawFinished(); + private int mouseX = 0; + private int mouseY = 0; + private final Image cursor = ImageUtil.getResourceStreamFromClass(Hooks.class, "cursor.png"); + + @Inject private EventBus eventBus; @@ -287,12 +294,16 @@ public class Hooks implements Callbacks @Override public MouseEvent mouseDragged(MouseEvent mouseEvent) { + mouseX = mouseEvent.getX(); + mouseY = mouseEvent.getY(); return mouseManager.processMouseDragged(mouseEvent); } @Override public MouseEvent mouseMoved(MouseEvent mouseEvent) { + mouseX = mouseEvent.getX(); + mouseY = mouseEvent.getY(); return mouseManager.processMouseMoved(mouseEvent); } @@ -397,7 +408,8 @@ public class Hooks implements Callbacks if (client.isMirrored()) { - drawFinishedEvent.image = finalImage; + drawFinishedEvent.image = copy(finalImage); + drawFinishedEvent.image.getGraphics().drawImage(cursor, mouseX, mouseY, null); eventBus.post(DrawFinished.class, drawFinishedEvent); } diff --git a/runelite-client/src/main/resources/net/runelite/client/callback/cursor.png b/runelite-client/src/main/resources/net/runelite/client/callback/cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..7415625a2f28cbeb4c1faf0f958aede3ba3236e2 GIT binary patch literal 15630 zcmeI3e^3 zGfAia?9JWnJ@4~=pXYr)@B6&B|7=rXLC(UY^dy2H7UtzTir`fxf955^??8S1Kj3A) zFSjf}5Xle9p9JDW+cJX4{6r`&l}er47*4F#u)OF3nozY5_9h7H#*mNYs(_?&feOKE zQ{R5|f?6f;Hg$>7NjrVnpi;=K_k*4F1;t!_6_?4YH`8# zPR|%<#-LM;ztr|5_{-|&-As{V%Xm6y+0>PiptPBpnG~&~bUG6D zAOm$?i4Bq7z?w*qi8u}r;QWG55=5^`j?22l8p)QH3VTTPG zLExE8gVCth(>l^^VmVSz8vyBIVJ(_iqXD>$W}V)g8HVU|#>=OKc8FY!TrDtk3qi4@a>nUX432*BN17q^SyUJjpZ zJHfumtrHH95I&)NtUmzc`m?Dg3NU)4MNceQ6Ru;1<>a%?&dKEg;1DOZ#)cJDj?09p z%Q-s)k@#`)nR5gyffrX^kx=1YGY1KXZYjw6!KMnhLuOO?k*JepXm~3n{}*_K|G`28 z*xE0*4701MFTD)06YBrB46$9zRkGd+z}u;b4Ls2>yOoQq=j6(osMe{KXqEq*7+A${ zN3r4R(ORh~ZL!Re{-ts?dTPS`%{m&sD6RZGE{%7i(lWd>-i=CQ%16C|WY>*nLz?4M z@;_+gc;5+c_JG|4&uF8SLYq-Vp%4O|QilM~;edRe=wYU?26ap;ESpIf=NK18mMZSH zEL?+;R(R6~?>DLF4d;~djGkg&<&W5mzRIXbEF}p71aB(1@O%)jf(rqHHx*oXK8RPr zg#f{u3NAb!#H-*!fZ$C97oHE|Rd69d@TP(b&j;};xDX(CQ^AGjgLoBO2oSuf;KK7k zyb3M^2;Nk1;rSq51s4JYZz{O(d=RgK3ju;R61f%xTMWY$^^7e)0|} zUMpPowd3Z{u{<>lCW@^X5HFNXd{qT<=a-@Xisc& z(GdP zZo}>~rY_Ix*Li=(fklsJC$g4>Z}`%e4&3j4Cb8@7Jr`c7vMgV4KZ85rHjpRVf&QVr z51jvKbRZ38DBikH*Lma8rOcH*zes6p2Oa&-CyWGtS_C_u?psG`F5ev*yZ1={%Nd8u zPxr}hGOe$FGniR{N~fm^@;8M-?3|2&%gTEsg%auzrL7fSn;NF#R1Q!OM43pD=s;q^}D7->IK!- zj26&&tMS59%^g+Wezv!-V8h{)m7$Y=xRwed)IXKDvHv<4`1jLuYVW>eD_?wd?&k;L fW$fo)e3P&hd}GIPa`c$|#B$!|0>{~`^2YxH>6vJ1 literal 0 HcmV?d00001