From 5006e959b024c0fa564ebff0d8923c83a01cda82 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 2 Mar 2022 14:20:03 -0500 Subject: [PATCH] gpu: fix anim array indexes with sparse texture array Texture 54 doesn't exist and was causing everything after it to have its index off by 1 --- .../client/plugins/gpu/TextureManager.java | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/TextureManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/TextureManager.java index 00f984f778..994fc64d26 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/TextureManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/TextureManager.java @@ -208,35 +208,37 @@ class TextureManager { Texture[] textures = textureProvider.getTextures(); float[] anims = new float[TEXTURE_SIZE * 2]; - int idx = 0; - for (Texture texture : textures) + for (int i = 0; i < textures.length; ++i) { - if (texture != null) + Texture texture = textures[i]; + if (texture == null) { - float u = 0f, v = 0f; - switch (texture.getAnimationDirection()) - { - case 1: - v = -1f; - break; - case 3: - v = 1f; - break; - case 2: - u = -1f; - break; - case 4: - u = 1f; - break; - } - - int speed = texture.getAnimationSpeed(); - u *= speed; - v *= speed; - - anims[idx++] = u; - anims[idx++] = v; + continue; } + + float u = 0f, v = 0f; + switch (texture.getAnimationDirection()) + { + case 1: + v = -1f; + break; + case 3: + v = 1f; + break; + case 2: + u = -1f; + break; + case 4: + u = 1f; + break; + } + + int speed = texture.getAnimationSpeed(); + u *= speed; + v *= speed; + + anims[i * 2] = u; + anims[i * 2 + 1] = v; } return anims; }