diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java index d69e951218..1e057fa4e5 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSDynamicObjectMixin.java @@ -25,6 +25,7 @@ package net.runelite.mixins; import net.runelite.api.DialogOption; +import net.runelite.api.ObjectID; import net.runelite.api.events.DialogProcessed; import net.runelite.api.events.DynamicObjectAnimationChanged; import net.runelite.api.mixins.Copy; @@ -75,7 +76,7 @@ public abstract class RSDynamicObjectMixin implements RSDynamicObject @Inject public void onAnimCycleCountChanged(int idx) { - if (client.isInterpolateObjectAnimations()) + if (client.isInterpolateObjectAnimations() && this.getId() != ObjectID.WATER_WHEEL_26671) { // sets the packed anim frame with the frame cycle int objectFrameCycle = client.getGameCycle() - getAnimCycleCount(); diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java index 1a2778ea5b..01f81d46ca 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCMixin.java @@ -28,6 +28,7 @@ import java.awt.Polygon; import java.awt.Shape; import net.runelite.api.AnimationID; import net.runelite.api.NPCComposition; +import net.runelite.api.NpcID; import net.runelite.api.Perspective; import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.NpcChanged; @@ -140,8 +141,15 @@ public abstract class RSNPCMixin implements RSNPC public RSModel copy$getModel() { if (!client.isInterpolateNpcAnimations() - || getAnimation() == AnimationID.HELLHOUND_DEFENCE) - { + || this.getAnimation() == AnimationID.HELLHOUND_DEFENCE + || this.getAnimation() == 8270 + || this.getAnimation() == 8271 + || this.getPoseAnimation() == 5583 + || this.getId() == NpcID.WYRM && this.getAnimation() == AnimationID.IDLE + || this.getId() == NpcID.TREE_SPIRIT && this.getAnimation() == AnimationID.IDLE + || this.getId() == NpcID.TREE_SPIRIT_6380 && this.getAnimation() == AnimationID.IDLE + || this.getId() == NpcID.TREE_SPIRIT_HARD && this.getAnimation() == AnimationID.IDLE + ) { return copy$getModel(); } int actionFrame = getActionFrame(); diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java index ed963a288d..5994bc53c2 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java @@ -231,7 +231,7 @@ public abstract class RSPlayerMixin implements RSPlayer @Replace("getModel") public RSModel copy$getModel() { - if (!client.isInterpolatePlayerAnimations()) + if (!client.isInterpolatePlayerAnimations() || this.getPoseAnimation() == 244) { return copy$getModel(); }