Skip to content

Commit 13b51bd

Browse files
committed
refactor: move perlin to landscape
1 parent 586806e commit 13b51bd

File tree

3 files changed

+36
-36
lines changed

3 files changed

+36
-36
lines changed

src/main/java/org/runejs/client/Landscape.java

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1436,7 +1436,7 @@ public static void method789(int chunkLocalX, int chunkY, int chunkX, int chunkL
14361436
}
14371437

14381438
public static int method888(int x, int y) {
1439-
int vertexHeight = -128 + MovedStatics.perlinNoise(x + 45365, 91923 + y, 4) - (-(MovedStatics.perlinNoise(x + 10294, 37821 + y, 2) - 128 >> 1) + -(-128 + MovedStatics.perlinNoise(x, y, 1) >> 2));
1439+
int vertexHeight = -128 + perlinNoise(x + 45365, 91923 + y, 4) - (-(perlinNoise(x + 10294, 37821 + y, 2) - 128 >> 1) + -(-128 + perlinNoise(x, y, 1) >> 2));
14401440
vertexHeight = 35 + (int) (0.3 * (double) vertexHeight);
14411441

14421442
if(vertexHeight >= 10) {
@@ -1447,4 +1447,39 @@ public static int method888(int x, int y) {
14471447

14481448
return vertexHeight;
14491449
}
1450+
1451+
public static int interpolateForPerlin(int arg0, int arg1, int arg2, boolean arg3, int arg4) {
1452+
if (!arg3)
1453+
return -109;
1454+
int i = 65536 + -Rasterizer3D.cosinetable[1024 * arg4 / arg1] >> 1;
1455+
return ((65536 + -i) * arg0 >> 16) + (arg2 * i >> 16);
1456+
}
1457+
1458+
public static int randomNoiseWeightedSum(int arg1, int arg2) {
1459+
int i = randomNoise(-1 + arg1, -1 + arg2) + randomNoise(1 + arg1, arg2 - 1) + randomNoise(-1 + arg1, 1 + arg2) + randomNoise(1 + arg1, arg2 + 1);
1460+
int i_126_ = randomNoise(arg1 - 1, arg2) + randomNoise(arg1 + 1, arg2) - (-randomNoise(arg1, arg2 - 1) + -randomNoise(arg1, 1 + arg2));
1461+
int i_127_ = randomNoise(arg1, arg2);
1462+
return i / 16 - (-(i_126_ / 8) - i_127_ / 4);
1463+
}
1464+
1465+
public static int perlinNoise(int x, int y, int scale) {
1466+
int muX = x & -1 + scale;
1467+
int scaledY = y / scale;
1468+
int muY = scale - 1 & y;
1469+
int scaledX = x / scale;
1470+
int a = randomNoiseWeightedSum(scaledX, scaledY);
1471+
int b = randomNoiseWeightedSum(1 + scaledX, scaledY);
1472+
int c = randomNoiseWeightedSum(scaledX, 1 + scaledY);
1473+
int d = randomNoiseWeightedSum(1 + scaledX, 1 + scaledY);
1474+
int i1 = interpolateForPerlin(a, scale, b, true, muX);
1475+
int i2 = interpolateForPerlin(c, scale, d, true, muX);
1476+
return interpolateForPerlin(i1, scale, i2, true, muY);
1477+
}
1478+
1479+
public static int randomNoise(int x, int y) {
1480+
int i = 57 * y + x;
1481+
i ^= i << 13;
1482+
int i_2_ = 1376312589 + (i * i * 15731 + 789221) * i & 0x7fffffff;
1483+
return i_2_ >> 19 & 0xff;
1484+
}
14501485
}

src/main/java/org/runejs/client/MovedStatics.java

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -483,20 +483,6 @@ public static RSString intToStr(int arg0) {
483483
return method521(false, 10, arg0);
484484
}
485485

486-
public static int perlinNoise(int x, int y, int scale) {
487-
int muX = x & -1 + scale;
488-
int scaledY = y / scale;
489-
int muY = scale - 1 & y;
490-
int scaledX = x / scale;
491-
int a = CollisionMap.randomNoiseWeightedSum(scaledX, scaledY);
492-
int b = CollisionMap.randomNoiseWeightedSum(1 + scaledX, scaledY);
493-
int c = CollisionMap.randomNoiseWeightedSum(scaledX, 1 + scaledY);
494-
int d = CollisionMap.randomNoiseWeightedSum(1 + scaledX, 1 + scaledY);
495-
int i1 = interpolateForPerlin(a, scale, b, true, muX);
496-
int i2 = interpolateForPerlin(c, scale, d, true, muX);
497-
return interpolateForPerlin(i1, scale, i2, true, muY);
498-
}
499-
500486
public static int calculateCrc8(int offset, int size, byte[] data) {
501487
int crc = -1;
502488
for (int currentByte = offset; currentByte < size; currentByte++) {
@@ -1507,13 +1493,6 @@ public static Point2d getScreenMidpoint() {
15071493
public static int[] anIntArray1847 = new int[2000];
15081494
public static long aLong1841;
15091495

1510-
private static int interpolateForPerlin(int arg0, int arg1, int arg2, boolean arg3, int arg4) {
1511-
if (!arg3)
1512-
return -109;
1513-
int i = 65536 + -Rasterizer3D.cosinetable[1024 * arg4 / arg1] >> 1;
1514-
return ((65536 + -i) * arg0 >> 16) + (arg2 * i >> 16);
1515-
}
1516-
15171496
private static void method344(int arg0) {
15181497
if(aBoolean2083) {
15191498
chatboxLineOffsets = null;

src/main/java/org/runejs/client/scene/util/CollisionMap.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,6 @@ public static void method144(int arg0) {
4141
}
4242

4343

44-
public static int randomNoiseWeightedSum(int arg1, int arg2) {
45-
int i = randomNoise(-1 + arg1, -1 + arg2) + randomNoise(1 + arg1, arg2 - 1) + randomNoise(-1 + arg1, 1 + arg2) + randomNoise(1 + arg1, arg2 + 1);
46-
int i_126_ = randomNoise(arg1 - 1, arg2) + randomNoise(arg1 + 1, arg2) - (-randomNoise(arg1, arg2 - 1) + -randomNoise(arg1, 1 + arg2));
47-
int i_127_ = randomNoise(arg1, arg2);
48-
return i / 16 - (-(i_126_ / 8) - i_127_ / 4);
49-
}
50-
5144
public static void method543(CollisionMap arg0, int arg1, int arg2, int arg3, int arg4, Scene arg5, int arg6, int arg7, int arg8, int arg9) {
5245
int i = Landscape.tile_height[arg2][arg9][arg8];
5346
int i_0_ = Landscape.tile_height[arg2][1 + arg9][arg8];
@@ -221,13 +214,6 @@ public static void method543(CollisionMap arg0, int arg1, int arg2, int arg3, in
221214

222215
}
223216

224-
public static int randomNoise(int x, int y) {
225-
int i = 57 * y + x;
226-
i ^= i << 13;
227-
int i_2_ = 1376312589 + (i * i * 15731 + 789221) * i & 0x7fffffff;
228-
return i_2_ >> 19 & 0xff;
229-
}
230-
231217
public void unset(int x, int y, int i) {
232218
clippingData[x][y] = BitUtils.bitWiseOR(clippingData[x][y], i);
233219
}

0 commit comments

Comments
 (0)