From 1f220ff146a2dfeb63770f0582f4ebb440c515f7 Mon Sep 17 00:00:00 2001 From: Ganom Date: Sun, 28 Apr 2019 22:00:19 -0400 Subject: [PATCH] Adding Oak's graphic change transformer (#146) --- .../rs/bytecode/transformers/ActorTransform.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java index 73dc2a6930..fbee047beb 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java @@ -15,6 +15,7 @@ public class ActorTransform implements Transform { ct = ByteCodePatcher.classPool.get(actor.getName()); transformGetAnimation(); transformAnimationChanged(); + transformGraphicChanged(); ByteCodePatcher.modifiedClasses.add(ct); } catch (NotFoundException e) { e.printStackTrace(); @@ -54,4 +55,18 @@ public class ActorTransform implements Transform { } } + public void transformGraphicChanged() { + try { + CtMethod graphicChanged = ct.getDeclaredMethod("graphicChanged", new CtClass[]{CtClass.intType}); + ct.removeMethod(graphicChanged); + graphicChanged = CtNewMethod.make("public void graphicChanged(int paramInt){" + + " net.runelite.api.events.GraphicChanged localGraphicChanged = new net.runelite.api.events.GraphicChanged();" + + " localGraphicChanged.setActor(this);" + + " "+ByteCodePatcher.clientInstance+".getCallbacks().post(localGraphicChanged);}",ct); + ct.addMethod(graphicChanged); + } catch (Exception e) { + e.printStackTrace(); + } + } + }