From f2cc543dc7b04e930b3663f8de52e26272af7151 Mon Sep 17 00:00:00 2001 From: SomeoneWithAnInternetConnection <34518321+SomeoneWithAnInternetConnection@users.noreply.github.com> Date: Thu, 1 Feb 2018 19:18:39 -0500 Subject: [PATCH] Move orientation incantation into Vertex.rotate Everywhere that Vertex#rotate was called, the orientation was rotated by 180 degrees first. --- .../main/java/net/runelite/api/model/Vertex.java | 8 ++++++++ .../java/net/runelite/mixins/RSPlayerMixin.java | 8 ++------ .../java/net/runelite/mixins/TileObjectMixin.java | 14 ++++---------- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/model/Vertex.java b/runelite-api/src/main/java/net/runelite/api/model/Vertex.java index 18c8295abe..efde7051e6 100644 --- a/runelite-api/src/main/java/net/runelite/api/model/Vertex.java +++ b/runelite-api/src/main/java/net/runelite/api/model/Vertex.java @@ -48,6 +48,14 @@ public class Vertex */ public Vertex rotate(int orientation) { + // models are orientated north (1024) and there are 2048 angles total + orientation = (orientation + 1024) % 2048; + + if (orientation == 0) + { + return this; + } + int sin = Perspective.SINE[orientation]; int cos = Perspective.COSINE[orientation]; 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 93a51af761..80fb65c2da 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java @@ -72,15 +72,11 @@ public abstract class RSPlayerMixin implements RSPlayer int localX = getX(); int localY = getY(); - // models are orientated north (1024) and there are 2048 angles total - int orientation = (getOrientation() + 1024) % 2048; + int orientation = getOrientation(); List triangles = model.getTriangles(); - if (orientation != 0) - { - triangles = rotate(triangles, orientation); - } + triangles = rotate(triangles, orientation); List polys = new ArrayList(); for (Triangle triangle : triangles) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/TileObjectMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/TileObjectMixin.java index 79dec96c8f..a5e8ff5688 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/TileObjectMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/TileObjectMixin.java @@ -132,19 +132,13 @@ public abstract class TileObjectMixin implements TileObject int localX = getX(); int localY = getY(); - // models are orientated north (1024) and there are 2048 angles total - orientation = (orientation + 1024) % 2048; - List vertices = model.getVertices(); - if (orientation != 0) + // rotate vertices + for (int i = 0; i < vertices.size(); ++i) { - // rotate vertices - for (int i = 0; i < vertices.size(); ++i) - { - Vertex v = vertices.get(i); - vertices.set(i, v.rotate(orientation)); - } + Vertex v = vertices.get(i); + vertices.set(i, v.rotate(orientation)); } List points = new ArrayList();