Posted December 28, 20195 yr Popular Post comment_41991 A better guide for runesuite This will add anti-aliasing feature to any 317 client, the naming may be different, thats up to you to sort. Step 1: Mouse Click Area Fix Search for 'l == 519' in client.java int y; int x; if (!this.menuOpen) { x = this.saveClickX - 4; y = this.saveClickY - 4; } else { x = j - 4; y = k - 4; } if (Configuration.anti_aliasing == true) { x <<= 1; y <<= 1; } this.worldController.method312(y, x); Step 2: Anti Aliasing Rendering 1/2 (example image 1) (example image 2) Search for 'method146'; Directly under 'int [] offsets = null'; Add the following int[] offsets = null; if (Configuration.anti_aliasing == true) { Model.currentCursorX <<= 1; Model.currentCursorY <<= 1; WorldController.focalLength <<= 1; pixels = Rasterizer.pixels; Rasterizer.pixels = antialiasingPixels; offsets = Rasterizer.anIntArray1472; Rasterizer.anIntArray1472 = antialiasingOffsets; Rasterizer.bottomX <<= 1; Rasterizer.bottomY <<= 1; DrawingArea.width <<= 1; DrawingArea.height <<= 1; DrawingArea.centerX <<= 1; DrawingArea.centerY <<= 1; DrawingArea.anInt1387 <<= 1; Rasterizer.textureInt1 <<= 1; Rasterizer.textureInt2 <<= 1; } Step 3: Anti Aliasing Render 2/2 Directly under 'worldController.method313'; Add the following; Note if you have fog rendering, the fog rendering should be just above this new code your adding and under 'method313' DrawingArea.setAllPixelsToZero(); worldController.method313(xCameraPos, yCameraPos, xCameraCurve, zCameraPos, j, yCameraCurve); if (Configuration.anti_aliasing == true) { Model.currentCursorX >>= 1; Model.currentCursorY >>= 1; WorldController.focalLength >>= 1; Rasterizer.pixels = pixels; Rasterizer.anIntArray1472 = offsets; Rasterizer.bottomX >>= 1; Rasterizer.bottomY >>= 1; DrawingArea.width >>= 1; DrawingArea.height >>= 1; DrawingArea.centerX >>= 1; DrawingArea.centerY >>= 1; DrawingArea.anInt1387 >>= 1; Rasterizer.textureInt1 >>= 1; Rasterizer.textureInt2 >>= 1; int w = DrawingArea.width; int h = DrawingArea.height; for (int x = 0; x < w; x++) { for (int y = 0; y < h; y++) { int x2 = x << 1; int y2 = y << 1; int w2 = w << 1; int c1 = antialiasingPixels[(x2 + y2 * w2)]; int c2 = antialiasingPixels[(x2 + 1 + y2 * w2)]; int c3 = antialiasingPixels[(x2 + (y2 + 1) * w2)]; int c4 = antialiasingPixels[(x2 + 1 + (y2 + 1) * w2)]; int r = (c1 >> 16 & 0xFF) + (c2 >> 16 & 0xFF) + (c3 >> 16 & 0xFF) + (c4 >> 16 & 0xFF) >> 2; int g = (c1 >> 8 & 0xFF) + (c2 >> 8 & 0xFF) + (c3 >> 8 & 0xFF) + (c4 >> 8 & 0xFF) >> 2; int b = (c1 & 0xFF) + (c2 & 0xFF) + (c3 & 0xFF) + (c4 & 0xFF) >> 2; DrawingArea.pixels[(x + y * DrawingArea.width)] = (r << 16 | g << 8 | b); } } } this code should all be followed with something that looks similar to the following, if you have done all that, congratulations! Make the 'Configuration.anti_aliasing' any boolean you please and test it out and continue below. worldController.clearObj5Cache(); updateEntities(); drawHeadIcon(); method37(k2); draw3dScreen(); aGraphicsBuffer_1165.drawGraphics(4, super.graphics, 4); xCameraPos = l; zCameraPos = i1; yCameraPos = j1; yCameraCurve = k1; xCameraCurve = l1; Grab a redbull, you'll need it. Step 4: The world controller / game scene Open your 'WorldController.java' (or 'Scene.java') Add and declare the following focalLength declarations anywhere (find below) and replace '>> 9' with the 'WorldController.focalLength' in the following methods; method311, method315, method 316; public static int focalLength = 512; static { focalLength = 512; } The following will be my methods using the focalLength, which may vary from yours. private static boolean method311(int i, int j, int k) { int l = j * anInt460 + k * anInt461 >> 16; int i1 = j * anInt461 - k * anInt460 >> 16; int j1 = i * anInt458 + i1 * anInt459 >> 16; int k1 = i * anInt459 - i1 * anInt458 >> 16; if (j1 < 50 || j1 > 3500) return false; int l1 = anInt493 + (l * WorldController.focalLength) / j1; int i2 = anInt494 + (k1 * WorldController.focalLength) / j1; return l1 >= anInt495 && l1 <= anInt497 && i2 >= anInt496 && i2 <= anInt498; } private void method315(Class43 class43, int i, int j, int k, int l, int i1, int j1, int k1) { int l1; int i2 = l1 = (j1 << 7) - anInt455; int j2; int k2 = j2 = (k1 << 7) - anInt457; int l2; int i3 = l2 = i2 + 128; int j3; int k3 = j3 = k2 + 128; int l3 = anIntArrayArrayArray440[i][j1][k1] - anInt456; int i4 = anIntArrayArrayArray440[i][j1 + 1][k1] - anInt456; int j4 = anIntArrayArrayArray440[i][j1 + 1][k1 + 1] - anInt456; int k4 = anIntArrayArrayArray440[i][j1][k1 + 1] - anInt456; int l4 = k2 * l + i2 * i1 >> 16; k2 = k2 * i1 - i2 * l >> 16; i2 = l4; l4 = l3 * k - k2 * j >> 16; k2 = l3 * j + k2 * k >> 16; l3 = l4; if (k2 < 50) return; l4 = j2 * l + i3 * i1 >> 16; j2 = j2 * i1 - i3 * l >> 16; i3 = l4; l4 = i4 * k - j2 * j >> 16; j2 = i4 * j + j2 * k >> 16; i4 = l4; if (j2 < 50) return; l4 = k3 * l + l2 * i1 >> 16; k3 = k3 * i1 - l2 * l >> 16; l2 = l4; l4 = j4 * k - k3 * j >> 16; k3 = j4 * j + k3 * k >> 16; j4 = l4; if (k3 < 50) return; l4 = j3 * l + l1 * i1 >> 16; j3 = j3 * i1 - l1 * l >> 16; l1 = l4; l4 = k4 * k - j3 * j >> 16; j3 = k4 * j + j3 * k >> 16; k4 = l4; if (j3 < 50) return; int i5 = Rasterizer.textureInt1 + (i2 * WorldController.focalLength) / k2; int j5 = Rasterizer.textureInt2 + (l3 * WorldController.focalLength) / k2; int k5 = Rasterizer.textureInt1 + (i3 * WorldController.focalLength) / j2; int l5 = Rasterizer.textureInt2 + (i4 * WorldController.focalLength) / j2; int i6 = Rasterizer.textureInt1 + (l2 * WorldController.focalLength) / k3; int j6 = Rasterizer.textureInt2 + (j4 * WorldController.focalLength) / k3; int k6 = Rasterizer.textureInt1 + (l1 * WorldController.focalLength) / j3; int l6 = Rasterizer.textureInt2 + (k4 * WorldController.focalLength) / j3; Rasterizer.anInt1465 = 0; if ((i6 - k6) * (l5 - l6) - (j6 - l6) * (k5 - k6) > 0) { private void method316(int i, int j, int k, ShapedTile shapedTile, int l, int i1, int j1) { int k1 = shapedTile.origVertexX.length; for (int l1 = 0; l1 < k1; l1++) { int i2 = shapedTile.origVertexX[l1] - anInt455; int k2 = shapedTile.origVertexY[l1] - anInt456; int i3 = shapedTile.origVertexZ[l1] - anInt457; int k3 = i3 * k + i2 * j1 >> 16; i3 = i3 * j1 - i2 * k >> 16; i2 = k3; k3 = k2 * l - i3 * j >> 16; i3 = k2 * j + i3 * l >> 16; k2 = k3; if (i3 < 50) return; if (Configuration.enableHDTextures || shapedTile.triangleTexture != null) { shapedTile.viewSpaceX[l1] = i2; shapedTile.viewSpaceY[l1] = k2; shapedTile.viewSpaceZ[l1] = i3; } shapedTile.screenX[l1] = Rasterizer.textureInt1 + (i2 * WorldController.focalLength) / i3; shapedTile.screenY[l1] = Rasterizer.textureInt2 + (k2 * WorldController.focalLength) / i3; shapedTile.viewSpaceZ[l1] = i3; shapedTile.viewSpaceZ[l1] = i3; } Rasterizer.anInt1465 = 0; k1 = shapedTile.triangleA.length; Step 5: Some model fixes Open 'Model.java' search for 'method443' (or 'renderAtPoint') and look around for some more of those '>> 9' and replace like we did before in 'method443' The following will be my methods using the focalLength, which may vary from yours. @Override public final void method443(int i, int j, int k, int l, int i1, int j1, int k1, int l1, int i2) { int j2 = l1 * i1 - j1 * l >> 16; int k2 = k1 * j + j2 * k >> 16; int l2 = anInt1650 * k >> 16; int i3 = k2 + l2; if (i3 <= 50 || k2 >= 3500) return; int j3 = l1 * l + j1 * i1 >> 16; int k3 = (j3 - anInt1650) * WorldController.focalLength; if (k3 / i3 >= DrawingArea.centerY) return; int l3 = (j3 + anInt1650) * WorldController.focalLength; if (l3 / i3 <= -DrawingArea.centerY) return; int i4 = k1 * k - j2 * j >> 16; int j4 = anInt1650 * j >> 16; int k4 = (i4 + j4) * WorldController.focalLength; if (k4 / i3 <= -DrawingArea.anInt1387) return; int l4 = j4 + (super.modelHeight * k >> 16); int i5 = (i4 - l4) * WorldController.focalLength; if (i5 / i3 >= DrawingArea.anInt1387) return; int j5 = l2 + (super.modelHeight * j >> 16); boolean flag = false; if (k2 - j5 <= 50) flag = true; boolean flag1 = false; if (i2 > 0 && objectExists) { int k5 = k2 - l2; if (k5 <= 50) k5 = 50; if (j3 > 0) { k3 /= i3; l3 /= k5; } else { l3 /= i3; k3 /= k5; } if (i4 > 0) { i5 /= i3; k4 /= k5; } else { k4 /= i3; i5 /= k5; } int i6 = currentCursorX - Rasterizer.textureInt1; int k6 = currentCursorY - Rasterizer.textureInt2; if (i6 > k3 && i6 < l3 && k6 > i5 && k6 < k4) if (aBoolean1659) anIntArray1688[objectsRendered++] = i2; else flag1 = true; } int l5 = Rasterizer.textureInt1; int j6 = Rasterizer.textureInt2; int l6 = 0; int i7 = 0; if (i != 0) { l6 = SINE[i]; i7 = COSINE[i]; } for (int j7 = 0; j7 < numberOfVerticeCoordinates; j7++) { int k7 = verticesXCoordinate[j7]; int l7 = verticesYCoordinate[j7]; int i8 = verticesZCoordinate[j7]; if (i != 0) { int j8 = i8 * l6 + k7 * i7 >> 16; i8 = i8 * i7 - k7 * l6 >> 16; k7 = j8; } k7 += j1; l7 += k1; i8 += l1; int k8 = i8 * l + k7 * i1 >> 16; i8 = i8 * i1 - k7 * l >> 16; k7 = k8; k8 = l7 * k - i8 * j >> 16; i8 = l7 * j + i8 * k >> 16; l7 = k8; anIntArray1667[j7] = i8 - k2; if (i8 >= 50) { projected_vertex_x[j7] = (l5 + k7 * WorldController.focalLength / i8); projected_vertex_y[j7] = (j6 + l7 * WorldController.focalLength / i8); if (Rasterizer.saveDepth) { vertexPerspectiveDepth[j7] = i8; } } else { projected_vertex_x[j7] = -5000; flag = true; } if (flag || numberOfTexturedFaces > 0) { camera_vertex_y[j7] = k7; camera_vertex_x[j7] = l7; camera_vertex_z[j7] = i8; } } try { method483(flag, flag1, i2); return; } catch (Exception _ex) { return; } }
Create an account or sign in to comment