Merge pull request #724 from devLotto/model-fix

Fix ArrayIndexOutOfBoundsException on getting vertices of certain gameobjects
This commit is contained in:
Tomas Slusny
2018-02-27 17:10:12 +01:00
committed by GitHub
2 changed files with 9 additions and 3 deletions

View File

@@ -45,7 +45,7 @@ public abstract class RSModelMixin implements RSModel
List<Vertex> vertices = new ArrayList<Vertex>(); List<Vertex> vertices = new ArrayList<Vertex>();
for (int i = 0; i < verticesX.length; ++i) for (int i = 0; i < getVerticesCount(); ++i)
{ {
Vertex v = new Vertex( Vertex v = new Vertex(
verticesX[i], verticesX[i],
@@ -67,9 +67,9 @@ public abstract class RSModelMixin implements RSModel
int[] trianglesZ = getTrianglesZ(); int[] trianglesZ = getTrianglesZ();
List<Vertex> vertices = getVertices(); List<Vertex> vertices = getVertices();
List<Triangle> triangles = new ArrayList<Triangle>(trianglesX.length); List<Triangle> triangles = new ArrayList<Triangle>(getTrianglesCount());
for (int i = 0; i < trianglesX.length; ++i) for (int i = 0; i < getTrianglesCount(); ++i)
{ {
int triangleX = trianglesX[i]; int triangleX = trianglesX[i];
int triangleY = trianglesY[i]; int triangleY = trianglesY[i];

View File

@@ -29,6 +29,9 @@ import net.runelite.mapping.Import;
public interface RSModel extends RSRenderable, Model public interface RSModel extends RSRenderable, Model
{ {
@Import("verticesCount")
int getVerticesCount();
@Import("verticesX") @Import("verticesX")
int[] getVerticesX(); int[] getVerticesX();
@@ -38,6 +41,9 @@ public interface RSModel extends RSRenderable, Model
@Import("verticesZ") @Import("verticesZ")
int[] getVerticesZ(); int[] getVerticesZ();
@Import("indicesCount")
int getTrianglesCount();
@Import("indices1") @Import("indices1")
int[] getTrianglesX(); int[] getTrianglesX();