Moved some more methods to utility classes

This commit is contained in:
Pazaz 2022-06-28 04:19:41 -04:00
parent ad45cb829b
commit 4c73508f1f
25 changed files with 817 additions and 805 deletions

View file

@ -233,58 +233,58 @@ public final class ArrayUtils {
} }
@OriginalMember(owner = "client!kg", name = "a", descriptor = "([III)V") @OriginalMember(owner = "client!kg", name = "a", descriptor = "([III)V")
public static void clear(@OriginalArg(0) int[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { public static void clear(@OriginalArg(0) int[] dest, @OriginalArg(1) int off, @OriginalArg(2) int length) {
@Pc(5) int local5 = arg2 - 7; @Pc(5) int len = length - 7;
while (arg1 < local5) { while (off < len) {
arg0[arg1++] = 0; dest[off++] = 0;
arg0[arg1++] = 0; dest[off++] = 0;
arg0[arg1++] = 0; dest[off++] = 0;
arg0[arg1++] = 0; dest[off++] = 0;
arg0[arg1++] = 0; dest[off++] = 0;
arg0[arg1++] = 0; dest[off++] = 0;
arg0[arg1++] = 0; dest[off++] = 0;
arg0[arg1++] = 0; dest[off++] = 0;
} }
local5 += 7; len += 7;
while (arg1 < local5) { while (off < len) {
arg0[arg1++] = 0; dest[off++] = 0;
} }
} }
@OriginalMember(owner = "client!nk", name = "a", descriptor = "(Z[J[I)V") @OriginalMember(owner = "client!nk", name = "a", descriptor = "(Z[J[I)V")
public static void sort(@OriginalArg(1) long[] arg0, @OriginalArg(2) int[] arg1) { public static void sort(@OriginalArg(1) long[] arg0, @OriginalArg(2) int[] arg1) {
method436(arg0, 0, arg0.length - 1, arg1); sort(arg0, 0, arg0.length - 1, arg1);
} }
@OriginalMember(owner = "client!gj", name = "a", descriptor = "([JII[II)V") @OriginalMember(owner = "client!gj", name = "a", descriptor = "([JII[II)V")
public static void method436(@OriginalArg(0) long[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int[] arg3) { public static void sort(@OriginalArg(0) long[] keys, @OriginalArg(1) int lo, @OriginalArg(2) int hi, @OriginalArg(3) int[] values) {
if (arg1 >= arg2) { if (lo >= hi) {
return; return;
} }
@Pc(20) int local20 = arg1; @Pc(20) int i = lo;
@Pc(26) int local26 = (arg2 + arg1) / 2; @Pc(26) int mid = (hi + lo) / 2;
@Pc(30) long local30 = arg0[local26]; @Pc(30) long pivotKey = keys[mid];
arg0[local26] = arg0[arg2]; keys[mid] = keys[hi];
arg0[arg2] = local30; keys[hi] = pivotKey;
@Pc(44) int local44 = arg3[local26]; @Pc(44) int pivotValue = values[mid];
arg3[local26] = arg3[arg2]; values[mid] = values[hi];
arg3[arg2] = local44; values[hi] = pivotValue;
for (@Pc(56) int local56 = arg1; local56 < arg2; local56++) { for (@Pc(56) int j = lo; j < hi; j++) {
if (arg0[local56] < local30 + (long) (local56 & 0x1)) { if (keys[j] < pivotKey + (long) (j & 0x1)) {
@Pc(76) long local76 = arg0[local56]; @Pc(76) long key = keys[j];
arg0[local56] = arg0[local20]; keys[j] = keys[i];
arg0[local20] = local76; keys[i] = key;
@Pc(90) int local90 = arg3[local56]; @Pc(90) int value = values[j];
arg3[local56] = arg3[local20]; values[j] = values[i];
arg3[local20++] = local90; values[i++] = value;
} }
} }
arg0[arg2] = arg0[local20]; keys[hi] = keys[i];
arg0[local20] = local30; keys[i] = pivotKey;
arg3[arg2] = arg3[local20]; values[hi] = values[i];
arg3[local20] = local44; values[i] = pivotValue;
method436(arg0, arg1, local20 - 1, arg3); sort(keys, lo, i - 1, values);
method436(arg0, local20 + 1, arg2, arg3); sort(keys, i + 1, hi, values);
} }
@OriginalMember(owner = "client!ja", name = "a", descriptor = "([II)[I") @OriginalMember(owner = "client!ja", name = "a", descriptor = "([II)[I")
@ -351,4 +351,107 @@ public final class ArrayUtils {
arg0[arg1] = arg3; arg0[arg1] = arg3;
} }
} }
@OriginalMember(owner = "client!ec", name = "a", descriptor = "([Ljava/lang/Object;I[III)V")
public static void sort(@OriginalArg(0) Object[] values, @OriginalArg(1) int hi, @OriginalArg(2) int[] keys, @OriginalArg(4) int lo) {
if (lo >= hi) {
return;
}
@Pc(11) int mid = (lo + hi) / 2;
@Pc(15) int pivotKey = keys[mid];
@Pc(17) int i = lo;
keys[mid] = keys[hi];
keys[hi] = pivotKey;
@Pc(31) Object pivotValue = values[mid];
values[mid] = values[hi];
values[hi] = pivotValue;
for (@Pc(43) int j = lo; j < hi; j++) {
if ((j & 0x1) + pivotKey > keys[j]) {
@Pc(67) int key = keys[j];
keys[j] = keys[i];
keys[i] = key;
@Pc(81) Object value = values[j];
values[j] = values[i];
values[i++] = value;
}
}
keys[hi] = keys[i];
keys[i] = pivotKey;
values[hi] = values[i];
values[i] = pivotValue;
sort(values, i - 1, keys, lo);
sort(values, hi, keys, i + 1);
}
@OriginalMember(owner = "client!oi", name = "a", descriptor = "(I[I[Ljava/lang/Object;)V")
public static void sort(@OriginalArg(1) int[] arg0, @OriginalArg(2) Object[] arg1) {
sort(arg1, arg0.length - 1, arg0, 0);
}
@OriginalMember(owner = "client!nj", name = "a", descriptor = "(IIZ[I[I)V")
public static void sort(@OriginalArg(0) int lo, @OriginalArg(1) int hi, @OriginalArg(3) int[] keys, @OriginalArg(4) int[] values) {
if (lo >= hi) {
return;
}
@Pc(22) int mid = (hi + lo) / 2;
@Pc(24) int i = lo;
@Pc(28) int pivotKey = keys[mid];
keys[mid] = keys[hi];
keys[hi] = pivotKey;
@Pc(42) int pivotValue = values[mid];
values[mid] = values[hi];
values[hi] = pivotValue;
for (@Pc(54) int j = lo; j < hi; j++) {
if (keys[j] > (j & 0x1) + pivotKey) {
@Pc(79) int key = keys[j];
keys[j] = keys[i];
keys[i] = key;
@Pc(93) int value = values[j];
values[j] = values[i];
values[i++] = value;
}
}
keys[hi] = keys[i];
keys[i] = pivotKey;
values[hi] = values[i];
values[i] = pivotValue;
sort(lo, i - 1, keys, values);
sort(i + 1, hi, keys, values);
}
@OriginalMember(owner = "client!sh", name = "a", descriptor = "(I[JII[Ljava/lang/Object;)V")
public static void sort(@OriginalArg(0) int hi, @OriginalArg(1) long[] keys, @OriginalArg(3) int lo, @OriginalArg(4) Object[] values) {
if (lo >= hi) {
return;
}
@Pc(16) int i = lo;
@Pc(23) int mid = (lo + hi) / 2;
@Pc(27) long pivotKey = keys[mid];
keys[mid] = keys[hi];
keys[hi] = pivotKey;
@Pc(41) Object pivotValue = values[mid];
values[mid] = values[hi];
values[hi] = pivotValue;
for (@Pc(53) int j = lo; j < hi; j++) {
if (pivotKey + (long) (j & 0x1) > keys[j]) {
@Pc(72) long key = keys[j];
keys[j] = keys[i];
keys[i] = key;
@Pc(86) Object value = values[j];
values[j] = values[i];
values[i++] = value;
}
}
keys[hi] = keys[i];
keys[i] = pivotKey;
values[hi] = values[i];
values[i] = pivotValue;
sort(i - 1, keys, lo, values);
sort(hi, keys, i + 1, values);
}
@OriginalMember(owner = "client!ac", name = "a", descriptor = "([J[Ljava/lang/Object;I)V")
public static void sort(@OriginalArg(0) long[] arg0, @OriginalArg(1) Object[] arg1) {
sort(arg0.length - 1, arg0, 0, arg1);
}
} }

View file

@ -121,4 +121,61 @@ public class ColorUtils {
return (arg0 & 0xFF80) + arg1; return (arg0 & 0xFF80) + arg1;
} }
} }
@OriginalMember(owner = "client!w", name = "f", descriptor = "(I)I")
public static int method4582(@OriginalArg(0) int arg0) {
if (arg0 < 2) {
arg0 = 2;
} else if (arg0 > 126) {
arg0 = 126;
}
return arg0;
}
@OriginalMember(owner = "client!hf", name = "a", descriptor = "(II)I")
public static int multiplyLightness(@OriginalArg(0) int a, @OriginalArg(1) int b) {
b = b * (a & 0x7F) >> 7;
if (b < 2) {
b = 2;
} else if (b > 126) {
b = 126;
}
return (a & 0xFF80) + b;
}
@OriginalMember(owner = "client!w", name = "a", descriptor = "(II)I")
public static int multiplyLightness2(@OriginalArg(0) int a, @OriginalArg(1) int b) {
b = b * (a & 0x7F) >> 7;
if (b < 2) {
b = 2;
} else if (b > 126) {
b = 126;
}
return (a & 0xFF80) + b;
}
@OriginalMember(owner = "client!ri", name = "a", descriptor = "(II)I")
public static int multiplyLightness3(@OriginalArg(0) int a, @OriginalArg(1) int b) {
b = b * (a & 0x7F) >> 7;
if (b < 2) {
b = 2;
} else if (b > 126) {
b = 126;
}
return (a & 0xFF80) + b;
}
@OriginalMember(owner = "client!ed", name = "a", descriptor = "(IIII)I")
public static int method1309(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2) {
if (arg0 > 243) {
arg1 >>= 0x4;
} else if (arg0 > 217) {
arg1 >>= 0x3;
} else if (arg0 > 192) {
arg1 >>= 0x2;
} else if (arg0 > 179) {
arg1 >>= 0x1;
}
return (arg0 >> 1) + (arg1 >> 5 << 7) + (arg2 >> 2 << 10);
}
} }

View file

@ -806,8 +806,8 @@ public class Cs1ScriptRunner {
if (GlRenderer.enabled) { if (GlRenderer.enabled) {
GlRaster.method1183(local123, local114, component.width + local123, component.height + local114); GlRaster.method1183(local123, local114, component.width + local123, component.height + local114);
@Pc(2274) boolean local2274 = Texture.method3702(sprite.width); @Pc(2274) boolean local2274 = IntUtils.isPowerOfTwo(sprite.width);
@Pc(2279) boolean local2279 = Texture.method3702(sprite.height); @Pc(2279) boolean local2279 = IntUtils.isPowerOfTwo(sprite.height);
@Pc(2282) GlSprite local2282 = (GlSprite) sprite; @Pc(2282) GlSprite local2282 = (GlSprite) sprite;
if (local2274 && local2279) { if (local2274 && local2279) {
if (alpha == 0) { if (alpha == 0) {

View file

@ -267,7 +267,7 @@ public final class DisplayMode {
@Pc(122) DisplayMode local122 = aClass114Array1[local114]; @Pc(122) DisplayMode local122 = aClass114Array1[local114];
local112[local114] = local122.height * local122.width; local112[local114] = local122.height * local122.width;
} }
method3346(local112, aClass114Array1); ArrayUtils.sort(local112, aClass114Array1);
} }
return aClass114Array1; return aClass114Array1;
} }
@ -331,39 +331,4 @@ public final class DisplayMode {
} }
} }
@OriginalMember(owner = "client!oi", name = "a", descriptor = "(I[I[Ljava/lang/Object;)V")
public static void method3346(@OriginalArg(1) int[] arg0, @OriginalArg(2) Object[] arg1) {
method1292(arg1, arg0.length - 1, arg0, 0);
}
@OriginalMember(owner = "client!ec", name = "a", descriptor = "([Ljava/lang/Object;I[III)V")
public static void method1292(@OriginalArg(0) Object[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int[] arg2, @OriginalArg(4) int arg3) {
if (arg3 >= arg1) {
return;
}
@Pc(11) int local11 = (arg3 + arg1) / 2;
@Pc(15) int local15 = arg2[local11];
@Pc(17) int local17 = arg3;
arg2[local11] = arg2[arg1];
arg2[arg1] = local15;
@Pc(31) Object local31 = arg0[local11];
arg0[local11] = arg0[arg1];
arg0[arg1] = local31;
for (@Pc(43) int local43 = arg3; local43 < arg1; local43++) {
if ((local43 & 0x1) + local15 > arg2[local43]) {
@Pc(67) int local67 = arg2[local43];
arg2[local43] = arg2[local17];
arg2[local17] = local67;
@Pc(81) Object local81 = arg0[local43];
arg0[local43] = arg0[local17];
arg0[local17++] = local81;
}
}
arg2[arg1] = arg2[local17];
arg2[local17] = local15;
arg0[arg1] = arg0[local17];
arg0[local17] = local31;
method1292(arg0, local17 - 1, arg2, arg3);
method1292(arg0, arg1, arg2, local17 + 1);
}
} }

View file

@ -713,7 +713,7 @@ public final class GlModel extends Model {
@OriginalMember(owner = "client!td", name = "a", descriptor = "(ISIB)I") @OriginalMember(owner = "client!td", name = "a", descriptor = "(ISIB)I")
public static int method4096(@OriginalArg(0) int arg0, @OriginalArg(1) short arg1, @OriginalArg(2) int arg2, @OriginalArg(3) byte arg3) { public static int method4096(@OriginalArg(0) int arg0, @OriginalArg(1) short arg1, @OriginalArg(2) int arg2, @OriginalArg(3) byte arg3) {
@Pc(5) int local5 = Rasteriser.palette[SoftwareModel.method4585(arg0, arg2)]; @Pc(5) int local5 = Rasteriser.palette[ColorUtils.multiplyLightness2(arg0, arg2)];
if (arg1 != -1) { if (arg1 != -1) {
@Pc(15) int local15 = Rasteriser.textureProvider.method3238(arg1 & 0xFFFF); @Pc(15) int local15 = Rasteriser.textureProvider.method3238(arg1 & 0xFFFF);
@Pc(21) int local21; @Pc(21) int local21;

View file

@ -63,4 +63,30 @@ public class IntUtils {
public static int clamp(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2) { public static int clamp(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2) {
return arg2 > arg1 ? arg2 : arg1 > arg0 ? arg0 : arg1; return arg2 > arg1 ? arg2 : arg1 > arg0 ? arg0 : arg1;
} }
@OriginalMember(owner = "client!bn", name = "a", descriptor = "(III)I")
public static int bitReverse(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1) {
@Pc(8) int local8 = 0;
while (arg0 > 0) {
local8 = local8 << 1 | arg1 & 0x1;
arg1 >>>= 0x1;
arg0--;
}
return local8;
}
@OriginalMember(owner = "client!uc", name = "a", descriptor = "(II)I")
public static int bitCountFast(@OriginalArg(0) int v) {
@Pc(9) int a = (v >>> 1 & 0xD5555555) + (v & 0x55555555);
@Pc(19) int b = (a >>> 2 & 0x33333333) + (a & 0x33333333);
@Pc(31) int c = (b >>> 4) + b & 0xF0F0F0F;
@Pc(37) int d = c + (c >>> 8);
@Pc(43) int e = d + (d >>> 16);
return e & 0xFF;
}
@OriginalMember(owner = "client!ra", name = "a", descriptor = "(BI)Z")
public static boolean isPowerOfTwo(@OriginalArg(1) int v) {
return v == (-v & v);
}
} }

View file

@ -369,7 +369,7 @@ public final class JagString implements StringInterface {
} }
@OriginalMember(owner = "client!na", name = "a", descriptor = "(IILjava/awt/Graphics;B)V") @OriginalMember(owner = "client!na", name = "a", descriptor = "(IILjava/awt/Graphics;B)V")
public final void method3112(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) Graphics arg2) { public final void drawString(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) Graphics arg2) {
@Pc(17) String local17 = new String(this.chars, 0, this.length, StandardCharsets.ISO_8859_1); @Pc(17) String local17 = new String(this.chars, 0, this.length, StandardCharsets.ISO_8859_1);
arg2.drawString(local17, arg1, arg0); arg2.drawString(local17, arg1, arg0);
} }
@ -996,7 +996,7 @@ public final class JagString implements StringInterface {
} }
@OriginalMember(owner = "client!na", name = "a", descriptor = "(ILjava/awt/FontMetrics;)I") @OriginalMember(owner = "client!na", name = "a", descriptor = "(ILjava/awt/FontMetrics;)I")
public final int method3155(@OriginalArg(1) FontMetrics arg0) { public final int stringWidth(@OriginalArg(1) FontMetrics arg0) {
@Pc(14) String local14 = new String(this.chars, 0, this.length, StandardCharsets.ISO_8859_1); @Pc(14) String local14 = new String(this.chars, 0, this.length, StandardCharsets.ISO_8859_1);
return arg0.stringWidth(local14); return arg0.stringWidth(local14);
} }

View file

@ -30,16 +30,6 @@ public final class JavaAudioChannel extends AudioChannel {
@OriginalMember(owner = "client!qa", name = "N", descriptor = "Z") @OriginalMember(owner = "client!qa", name = "N", descriptor = "Z")
private boolean aBoolean230 = false; private boolean aBoolean230 = false;
@OriginalMember(owner = "client!uc", name = "a", descriptor = "(II)I")
public static int method3289(@OriginalArg(0) int arg0) {
@Pc(9) int local9 = (arg0 >>> 1 & 0xD5555555) + (arg0 & 0x55555555);
@Pc(19) int local19 = (local9 >>> 2 & 0x33333333) + (local9 & 0x33333333);
@Pc(31) int local31 = (local19 >>> 4) + local19 & 0xF0F0F0F;
@Pc(37) int local37 = local31 + (local31 >>> 8);
@Pc(43) int local43 = local37 + (local37 >>> 16);
return local43 & 0xFF;
}
@OriginalMember(owner = "client!qa", name = "d", descriptor = "()V") @OriginalMember(owner = "client!qa", name = "d", descriptor = "()V")
@Override @Override
protected final void flush() { protected final void flush() {
@ -78,7 +68,7 @@ public final class JavaAudioChannel extends AudioChannel {
this.aSourceDataLine1.start(); this.aSourceDataLine1.start();
this.anInt4645 = arg0; this.anInt4645 = arg0;
} catch (@Pc(36) LineUnavailableException local36) { } catch (@Pc(36) LineUnavailableException local36) {
if (method3289(arg0) == 1) { if (IntUtils.bitCountFast(arg0) == 1) {
this.aSourceDataLine1 = null; this.aSourceDataLine1 = null;
throw local36; throw local36;
} else { } else {

View file

@ -9,69 +9,71 @@ import java.awt.*;
public class LoadingBarAwt { public class LoadingBarAwt {
@OriginalMember(owner = "client!tg", name = "a", descriptor = "Ljava/awt/FontMetrics;") @OriginalMember(owner = "client!tg", name = "a", descriptor = "Ljava/awt/FontMetrics;")
public static FontMetrics aFontMetrics1; public static FontMetrics fontMetrics;
@OriginalMember(owner = "client!lj", name = "y", descriptor = "Ljava/awt/Image;") @OriginalMember(owner = "client!lj", name = "y", descriptor = "Ljava/awt/Image;")
public static Image anImage3; public static Image loadingBar;
@OriginalMember(owner = "client!sa", name = "R", descriptor = "Ljava/awt/Font;") @OriginalMember(owner = "client!sa", name = "R", descriptor = "Ljava/awt/Font;")
public static Font aFont1; public static Font font;
@OriginalMember(owner = "client!bc", name = "a", descriptor = "(Ljava/awt/Color;ZZLclient!na;I)V") @OriginalMember(owner = "client!bc", name = "a", descriptor = "(Ljava/awt/Color;ZZLclient!na;I)V")
public static void render(@OriginalArg(0) Color arg0, @OriginalArg(2) boolean arg1, @OriginalArg(3) JagString arg2, @OriginalArg(4) int arg3) { public static void render(@OriginalArg(0) Color color, @OriginalArg(2) boolean redraw, @OriginalArg(3) JagString text, @OriginalArg(4) int arg3) {
try { try {
@Pc(6) Graphics local6 = GameShell.canvas.getGraphics(); @Pc(6) Graphics g = GameShell.canvas.getGraphics();
if (aFont1 == null) { if (font == null) {
aFont1 = new Font("Helvetica", 1, 13); font = new Font("Helvetica", 1, 13);
aFontMetrics1 = GameShell.canvas.getFontMetrics(aFont1); fontMetrics = GameShell.canvas.getFontMetrics(font);
} }
if (arg1) { if (redraw) {
local6.setColor(Color.black); g.setColor(Color.black);
local6.fillRect(0, 0, GameShell.canvasWidth, GameShell.canvasHeight); g.fillRect(0, 0, GameShell.canvasWidth, GameShell.canvasHeight);
} }
if (arg0 == null) { if (color == null) {
arg0 = new Color(140, 17, 17); color = new Color(140, 17, 17);
} }
try { try {
if (anImage3 == null) { if (loadingBar == null) {
anImage3 = GameShell.canvas.createImage(304, 34); loadingBar = GameShell.canvas.createImage(304, 34);
} }
@Pc(56) Graphics local56 = anImage3.getGraphics(); @Pc(56) Graphics loadingBarGraphics = loadingBar.getGraphics();
local56.setColor(arg0); loadingBarGraphics.setColor(color);
local56.drawRect(0, 0, 303, 33); loadingBarGraphics.drawRect(0, 0, 303, 33);
local56.fillRect(2, 2, arg3 * 3, 30); loadingBarGraphics.fillRect(2, 2, arg3 * 3, 30);
local56.setColor(Color.black); loadingBarGraphics.setColor(Color.black);
local56.drawRect(1, 1, 301, 31); loadingBarGraphics.drawRect(1, 1, 301, 31);
local56.fillRect(arg3 * 3 + 2, 2, 300 - arg3 * 3, 30); loadingBarGraphics.fillRect(arg3 * 3 + 2, 2, 300 - arg3 * 3, 30);
local56.setFont(aFont1); loadingBarGraphics.setFont(font);
local56.setColor(Color.white); loadingBarGraphics.setColor(Color.white);
arg2.method3112(22, (304 - arg2.method3155(aFontMetrics1)) / 2, local56); text.drawString(22, (304 - text.stringWidth(fontMetrics)) / 2, loadingBarGraphics);
local6.drawImage(anImage3, GameShell.canvasWidth / 2 - 152, GameShell.canvasHeight / 2 + -18, null); g.drawImage(loadingBar, GameShell.canvasWidth / 2 - 152, GameShell.canvasHeight / 2 + -18, null);
} catch (@Pc(134) Exception local134) { } catch (@Pc(134) Exception ignored) {
@Pc(140) int local140 = GameShell.canvasWidth / 2 - 152; @Pc(140) int x = GameShell.canvasWidth / 2 - 152;
@Pc(146) int local146 = GameShell.canvasHeight / 2 - 18; @Pc(146) int y = GameShell.canvasHeight / 2 - 18;
local6.setColor(arg0); g.setColor(color);
local6.drawRect(local140, local146, 303, 33); g.drawRect(x, y, 303, 33);
local6.fillRect(local140 + 2, local146 + 2, arg3 * 3, 30); g.fillRect(x + 2, y + 2, arg3 * 3, 30);
local6.setColor(Color.black); g.setColor(Color.black);
local6.drawRect(local140 + 1, local146 - -1, 301, 31); g.drawRect(x + 1, y - -1, 301, 31);
local6.fillRect(arg3 * 3 + local140 + 2, local146 + 2, 300 - arg3 * 3, 30); g.fillRect(arg3 * 3 + x + 2, y + 2, 300 - arg3 * 3, 30);
local6.setFont(aFont1); g.setFont(font);
local6.setColor(Color.white); g.setColor(Color.white);
arg2.method3112(local146 + 22, local140 + (-arg2.method3155(aFontMetrics1) + 304) / 2, local6); text.drawString(y + 22, x + (-text.stringWidth(fontMetrics) + 304) / 2, g);
} }
if (client.mainLoadPrimaryText != null) { if (client.mainLoadPrimaryText != null) {
local6.setFont(aFont1); g.setFont(font);
local6.setColor(Color.white); g.setColor(Color.white);
client.mainLoadPrimaryText.method3112(GameShell.canvasHeight / 2 - 26, GameShell.canvasWidth / 2 - client.mainLoadPrimaryText.method3155(aFontMetrics1) / 2, local6); client.mainLoadPrimaryText.drawString(GameShell.canvasHeight / 2 - 26, GameShell.canvasWidth / 2 - client.mainLoadPrimaryText.stringWidth(fontMetrics) / 2, g);
} }
} catch (@Pc(252) Exception local252) { } catch (@Pc(252) Exception ignored) {
GameShell.canvas.repaint(); GameShell.canvas.repaint();
} }
} }
@OriginalMember(owner = "client!n", name = "a", descriptor = "(B)V") @OriginalMember(owner = "client!n", name = "a", descriptor = "(B)V")
public static void clear() { public static void clear() {
aFontMetrics1 = null; fontMetrics = null;
aFont1 = null; font = null;
anImage3 = null; loadingBar = null;
} }
} }

View file

@ -10,8 +10,10 @@ public final class Loc extends Entity {
@OriginalMember(owner = "client!kf", name = "h", descriptor = "[I") @OriginalMember(owner = "client!kf", name = "h", descriptor = "[I")
public static final int[] LAYERS = new int[]{0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3}; public static final int[] LAYERS = new int[]{0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3};
@OriginalMember(owner = "client!ci", name = "q", descriptor = "Lclient!ek;") @OriginalMember(owner = "client!ci", name = "q", descriptor = "Lclient!ek;")
public static SoftwareIndexedSprite aClass36_Sub1_1 = null; public static SoftwareIndexedSprite aClass36_Sub1_1 = null;
@OriginalMember(owner = "client!dc", name = "U", descriptor = "Lclient!ga;") @OriginalMember(owner = "client!dc", name = "U", descriptor = "Lclient!ga;")
private ParticleSystem aClass47_Sub1_2; private ParticleSystem aClass47_Sub1_2;

View file

@ -1383,7 +1383,7 @@ public class LoginManager {
@Pc(98) int local98 = (local88 / 8 << 8) + local76 / 8; @Pc(98) int local98 = (local88 / 8 << 8) + local76 / 8;
for (@Pc(100) int local100 = 0; local100 < regionBitPacked.length; local100++) { for (@Pc(100) int local100 = 0; local100 < regionBitPacked.length; local100++) {
if (regionBitPacked[local100] == local98 && local13[local100] != null) { if (regionBitPacked[local100] == local98 && local13[local100] != null) {
method4228(local82, local32 * 8, local21, PathFinder.collisionMaps, local39 * 8, local13[local100], local65, (local76 & 0x7) * 8, (local88 & 0x7) * 8, arg0); SceneGraph.method4228(local82, local32 * 8, local21, PathFinder.collisionMaps, local39 * 8, local13[local100], local65, (local76 & 0x7) * 8, (local88 & 0x7) * 8, arg0);
local54 = true; local54 = true;
break; break;
} }
@ -1391,7 +1391,7 @@ public class LoginManager {
} }
} }
if (!local54) { if (!local54) {
method645(local21, local39 * 8, local32 * 8, 8, 8); SceneGraph.method645(local21, local39 * 8, local32 * 8, 8, 8);
} }
} }
} }
@ -1489,227 +1489,11 @@ public class LoginManager {
Protocol.anInt4247 = 0; Protocol.anInt4247 = 0;
} }
@OriginalMember(owner = "client!tm", name = "a", descriptor = "(III[Lclient!mj;IB[BIIIZ)V")
public static void method4228(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) CollisionMap[] arg3, @OriginalArg(4) int arg4, @OriginalArg(6) byte[] arg5, @OriginalArg(7) int arg6, @OriginalArg(8) int arg7, @OriginalArg(9) int arg8, @OriginalArg(10) boolean arg9) {
@Pc(17) int local17;
if (!arg9) {
for (@Pc(10) int local10 = 0; local10 < 8; local10++) {
for (local17 = 0; local17 < 8; local17++) {
if (arg1 + local10 > 0 && local10 + arg1 < 103 && local17 + arg4 > 0 && arg4 + local17 < 103) {
arg3[arg2].flags[local10 + arg1][local17 + arg4] &= 0xFEFFFFFF;
}
}
}
}
@Pc(87) byte local87;
if (arg9) {
local87 = 1;
} else {
local87 = 4;
}
@Pc(96) Buffer local96 = new Buffer(arg5);
@Pc(103) int local103;
@Pc(108) int local108;
for (local17 = 0; local17 < local87; local17++) {
for (local103 = 0; local103 < 64; local103++) {
for (local108 = 0; local108 < 64; local108++) {
if (arg6 == local17 && arg8 <= local103 && arg8 + 8 > local103 && arg7 <= local108 && local108 < arg7 + 8) {
SceneGraph.readTile(0, 0, arg9, local96, method3659(arg0, local103 & 0x7, local108 & 0x7) + arg4, method4360(arg0, local108 & 0x7, local103 & 0x7) + arg1, arg0, arg2);
} else {
SceneGraph.readTile(0, 0, arg9, local96, -1, -1, 0, 0);
}
}
}
}
@Pc(232) int local232;
@Pc(417) int local417;
@Pc(255) int local255;
@Pc(266) int local266;
@Pc(316) int local316;
while (local96.data.length > local96.offset) {
local103 = local96.g1();
if (local103 != 129) {
local96.offset--;
break;
}
for (local108 = 0; local108 < 4; local108++) {
@Pc(223) byte local223 = local96.g1b();
@Pc(237) int local237;
if (local223 == 0) {
if (local108 <= arg6) {
local237 = arg1 + 7;
local232 = arg1;
local255 = arg4 + 7;
if (local255 < 0) {
local255 = 0;
} else if (local255 >= 104) {
local255 = 104;
}
if (local237 < 0) {
local237 = 0;
} else if (local237 >= 104) {
local237 = 104;
}
local417 = arg4;
if (arg4 < 0) {
local417 = 0;
} else if (arg4 >= 104) {
local417 = 104;
}
if (arg1 < 0) {
local232 = 0;
} else if (arg1 >= 104) {
local232 = 104;
}
while (local237 > local232) {
while (local417 < local255) {
SceneGraph.aByteArrayArrayArray13[arg2][local232][local417] = 0;
local417++;
}
local232++;
}
}
} else if (local223 == 1) {
for (local232 = 0; local232 < 64; local232 += 4) {
for (local237 = 0; local237 < 64; local237 += 4) {
@Pc(246) byte local246 = local96.g1b();
if (local108 <= arg6) {
for (local255 = local232; local255 < local232 + 4; local255++) {
for (local266 = local237; local266 < local237 + 4; local266++) {
if (local255 >= arg8 && local255 < arg8 + 8 && local266 >= arg7 && arg7 + 8 > arg7) {
local316 = arg1 + method4360(arg0, local266 & 0x7, local255 & 0x7);
@Pc(328) int local328 = method3659(arg0, local255 & 0x7, local266 & 0x7) + arg4;
if (local316 >= 0 && local316 < 104 && local328 >= 0 && local328 < 104) {
SceneGraph.aByteArrayArrayArray13[arg2][local316][local328] = local246;
}
}
}
}
}
}
}
} else if (local223 == 2) {
}
}
}
@Pc(497) int local497;
if (GlRenderer.enabled && !arg9) {
@Pc(472) Environment local472 = null;
label207:
while (true) {
label200:
do {
while (local96.data.length > local96.offset) {
local108 = local96.g1();
if (local108 != 0) {
if (local108 != 1) {
throw new IllegalStateException();
}
local497 = local96.g1();
continue label200;
}
local472 = new Environment(local96);
}
if (local472 == null) {
local472 = new Environment();
}
FogManager.chunksAtmosphere[arg1 >> 3][arg4 >> 3] = local472;
break label207;
} while (local497 <= 0);
for (local232 = 0; local232 < local497; local232++) {
@Pc(517) Light local517 = new Light(local96);
if (local517.anInt2243 == 31) {
@Pc(529) LightType local529 = LightTypeList.get(local96.g2());
local517.method1762(local529.anInt2865, local529.anInt2873, local529.anInt2867, local529.anInt2872);
}
local417 = local517.x >> 7;
local255 = local517.z >> 7;
if (arg6 == local517.level && local417 >= arg8 && arg8 + 8 > local417 && arg7 <= local255 && arg7 + 8 > local255) {
local266 = method3675(arg0, local517.x & 0x3FF, local517.z & 0x3FF) + (arg1 << 7);
local316 = method3388(local517.x & 0x3FF, arg0, local517.z & 0x3FF) + (arg4 << 7);
local517.x = local266;
local517.z = local316;
local417 = local517.x >> 7;
local255 = local517.z >> 7;
if (local417 >= 0 && local255 >= 0 && local417 < 104 && local255 < 104) {
local517.aBoolean125 = (SceneGraph.tileFlags[1][local417][local255] & 0x2) != 0;
local517.y = SceneGraph.tileHeights[local517.level][local417][local255] - local517.y;
LightingManager.method2389(local517);
}
}
}
}
}
local103 = arg1 + 7;
local108 = arg4 + 7;
for (local497 = arg1; local497 < local103; local497++) {
for (local232 = arg4; local232 < local108; local232++) {
SceneGraph.aByteArrayArrayArray13[arg2][local497][local232] = 0;
}
}
}
@OriginalMember(owner = "client!tb", name = "h", descriptor = "(I)I") @OriginalMember(owner = "client!tb", name = "h", descriptor = "(I)I")
public static int method4044() { public static int method4044() {
return Cheat.shiftClick && Keyboard.pressedKeys[Keyboard.KEY_SHIFT] && MiniMenu.size > 2 ? MiniMenu.cursors[MiniMenu.size - 2] : MiniMenu.cursors[MiniMenu.size - 1]; return Cheat.shiftClick && Keyboard.pressedKeys[Keyboard.KEY_SHIFT] && MiniMenu.size > 2 ? MiniMenu.cursors[MiniMenu.size - 2] : MiniMenu.cursors[MiniMenu.size - 1];
} }
@OriginalMember(owner = "client!rg", name = "a", descriptor = "(IZII)I")
public static int method4360(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2) {
@Pc(3) int local3 = arg0 & 0x3;
if (local3 == 0) {
return arg2;
} else if (local3 == 1) {
return arg1;
} else if (local3 == 2) {
return 7 - arg2;
} else {
return 7 - arg1;
}
}
@OriginalMember(owner = "client!qg", name = "a", descriptor = "(IBII)I")
public static int method3659(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2) {
@Pc(3) int local3 = arg0 & 0x3;
if (local3 == 0) {
return arg2;
} else if (local3 == 1) {
return 7 - arg1;
} else if (local3 == 2) {
return 7 - arg2;
} else {
return arg1;
}
}
@OriginalMember(owner = "client!qi", name = "a", descriptor = "(IIBI)I")
public static int method3675(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2) {
@Pc(3) int local3 = arg0 & 0x3;
if (local3 == 0) {
return arg1;
} else if (local3 == 1) {
return arg2;
} else if (local3 == 2) {
return 1023 - arg1;
} else {
return 1023 - arg2;
}
}
@OriginalMember(owner = "client!ol", name = "a", descriptor = "(IIZI)I")
public static int method3388(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2) {
@Pc(3) int local3 = arg1 & 0x3;
if (local3 == 0) {
return arg2;
} else if (local3 == 1) {
return 1023 - arg0;
} else if (local3 == 2) {
return 1023 - arg2;
} else {
return arg0;
}
}
@OriginalMember(owner = "client!ij", name = "a", descriptor = "(B)V") @OriginalMember(owner = "client!ij", name = "a", descriptor = "(B)V")
public static void method2297() { public static void method2297() {
@Pc(3) int local3 = InterfaceList.anInt4271; @Pc(3) int local3 = InterfaceList.anInt4271;
@ -1866,7 +1650,7 @@ public class LoginManager {
local53 = local9[local20]; local53 = local9[local20];
if (local53 != null) { if (local53 != null) {
client.audioLoop(); client.audioLoop();
method2203(PathFinder.collisionMaps, arg0, SceneGraph.centralZoneX * 8 - 48, local49, local38, (SceneGraph.centralZoneZ - 6) * 8, local53); SceneGraph.method2203(PathFinder.collisionMaps, arg0, SceneGraph.centralZoneX * 8 - 48, local49, local38, (SceneGraph.centralZoneZ - 6) * 8, local53);
} }
} }
for (local20 = 0; local20 < local18; local20++) { for (local20 = 0; local20 < local18; local20++) {
@ -1876,254 +1660,12 @@ public class LoginManager {
if (local53 == null && SceneGraph.centralZoneZ < 800) { if (local53 == null && SceneGraph.centralZoneZ < 800) {
client.audioLoop(); client.audioLoop();
for (@Pc(130) int local130 = 0; local130 < local7; local130++) { for (@Pc(130) int local130 = 0; local130 < local7; local130++) {
method645(local130, local49, local38, 64, 64); SceneGraph.method645(local130, local49, local38, 64, 64);
} }
} }
} }
} }
@OriginalMember(owner = "client!wa", name = "a", descriptor = "([Lclient!mj;ZIIIII[B)V")
public static void method2203(@OriginalArg(0) CollisionMap[] arg0, @OriginalArg(1) boolean arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) int arg5, @OriginalArg(7) byte[] arg6) {
@Pc(14) int local14;
@Pc(21) int local21;
if (!arg1) {
for (@Pc(9) int local9 = 0; local9 < 4; local9++) {
for (local14 = 0; local14 < 64; local14++) {
for (local21 = 0; local21 < 64; local21++) {
if (arg4 + local14 > 0 && local14 + arg4 < 103 && arg3 + local21 > 0 && local21 + arg3 < 103) {
arg0[local9].flags[local14 + arg4][arg3 + local21] &= 0xFEFFFFFF;
}
}
}
}
}
@Pc(95) Buffer local95 = new Buffer(arg6);
@Pc(99) byte local99;
if (arg1) {
local99 = 1;
} else {
local99 = 4;
}
@Pc(117) int local117;
for (local14 = 0; local14 < local99; local14++) {
for (local21 = 0; local21 < 64; local21++) {
for (local117 = 0; local117 < 64; local117++) {
SceneGraph.readTile(arg2, arg5, arg1, local95, local117 + arg3, arg4 + local21, 0, local14);
}
}
}
@Pc(146) boolean local146 = false;
@Pc(243) int local243;
@Pc(188) int local188;
@Pc(190) int local190;
@Pc(194) int local194;
while (local95.offset < local95.data.length) {
local21 = local95.g1();
if (local21 != 129) {
local95.offset--;
break;
}
for (local117 = 0; local117 < 4; local117++) {
@Pc(168) byte local168 = local95.g1b();
if (local168 == 0) {
local243 = arg4;
if (arg4 < 0) {
local243 = 0;
} else if (arg4 >= 104) {
local243 = 104;
}
local190 = arg3;
if (arg3 < 0) {
local190 = 0;
} else if (arg3 >= 104) {
local190 = 104;
}
local188 = arg4 + 64;
local194 = arg3 + 64;
if (local194 < 0) {
local194 = 0;
} else if (local194 >= 104) {
local194 = 104;
}
if (local188 < 0) {
local188 = 0;
} else if (local188 >= 104) {
local188 = 104;
}
while (local243 < local188) {
while (local190 < local194) {
SceneGraph.aByteArrayArrayArray13[local117][local243][local190] = 0;
local190++;
}
local243++;
}
} else if (local168 == 1) {
for (local243 = 0; local243 < 64; local243 += 4) {
for (local188 = 0; local188 < 64; local188 += 4) {
@Pc(305) byte local305 = local95.g1b();
for (local194 = local243 + arg4; local194 < arg4 + local243 + 4; local194++) {
for (@Pc(320) int local320 = arg3 + local188; local320 < arg3 + local188 + 4; local320++) {
if (local194 >= 0 && local194 < 104 && local320 >= 0 && local320 < 104) {
SceneGraph.aByteArrayArrayArray13[local117][local194][local320] = local305;
}
}
}
}
}
} else if (local168 == 2 && local117 > 0) {
local188 = arg4 + 64;
local190 = arg3;
local194 = arg3 + 64;
if (local188 < 0) {
local188 = 0;
} else if (local188 >= 104) {
local188 = 104;
}
if (arg3 < 0) {
local190 = 0;
} else if (arg3 >= 104) {
local190 = 104;
}
if (local194 < 0) {
local194 = 0;
} else if (local194 >= 104) {
local194 = 104;
}
local243 = arg4;
if (arg4 < 0) {
local243 = 0;
} else if (arg4 >= 104) {
local243 = 104;
}
while (local188 > local243) {
while (local190 < local194) {
SceneGraph.aByteArrayArrayArray13[local117][local243][local190] = SceneGraph.aByteArrayArrayArray13[local117 - 1][local243][local190];
local190++;
}
local243++;
}
}
}
local146 = true;
}
@Pc(515) int local515;
if (GlRenderer.enabled && !arg1) {
@Pc(490) Environment local490 = null;
label270:
while (true) {
label263:
do {
while (local95.offset < local95.data.length) {
local117 = local95.g1();
if (local117 != 0) {
if (local117 != 1) {
throw new IllegalStateException();
}
local515 = local95.g1();
continue label263;
}
local490 = new Environment(local95);
}
if (local490 == null) {
local490 = new Environment();
}
for (local117 = 0; local117 < 8; local117++) {
for (local515 = 0; local515 < 8; local515++) {
local243 = local117 + (arg4 >> 3);
local188 = (arg3 >> 3) + local515;
if (local243 >= 0 && local243 < 13 && local188 >= 0 && local188 < 13) {
FogManager.chunksAtmosphere[local243][local188] = local490;
}
}
}
break label270;
} while (local515 <= 0);
for (local243 = 0; local243 < local515; local243++) {
@Pc(529) Light local529 = new Light(local95);
if (local529.anInt2243 == 31) {
@Pc(541) LightType local541 = LightTypeList.get(local95.g2());
local529.method1762(local541.anInt2865, local541.anInt2873, local541.anInt2867, local541.anInt2872);
}
local529.z += arg3 << 7;
local529.x += arg4 << 7;
local194 = local529.z >> 7;
local190 = local529.x >> 7;
if (local190 >= 0 && local194 >= 0 && local190 < 104 && local194 < 104) {
local529.aBoolean125 = (SceneGraph.tileFlags[1][local190][local194] & 0x2) != 0;
local529.y = SceneGraph.tileHeights[local529.level][local190][local194] - local529.y;
LightingManager.method2389(local529);
}
}
}
}
if (local146) {
return;
}
for (local21 = 0; local21 < 4; local21++) {
for (local117 = 0; local117 < 16; local117++) {
for (local515 = 0; local515 < 16; local515++) {
local243 = (arg4 >> 2) + local117;
local188 = local515 + (arg3 >> 2);
if (local243 >= 0 && local243 < 26 && local188 >= 0 && local188 < 26) {
SceneGraph.aByteArrayArrayArray13[local21][local243][local188] = 0;
}
}
}
}
}
@OriginalMember(owner = "client!bm", name = "a", descriptor = "(IBIIII)V")
public static void method645(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3, @OriginalArg(5) int arg4) {
@Pc(3) int local3;
@Pc(10) int local10;
for (local3 = arg1; local3 <= arg3 + arg1; local3++) {
for (local10 = arg2; local10 <= arg4 + arg2; local10++) {
if (local10 >= 0 && local10 < 104 && local3 >= 0 && local3 < 104) {
SceneGraph.aByteArrayArrayArray9[arg0][local10][local3] = 127;
}
}
}
for (local3 = arg1; local3 < arg3 + arg1; local3++) {
for (local10 = arg2; local10 < arg2 + arg4; local10++) {
if (local10 >= 0 && local10 < 104 && local3 >= 0 && local3 < 104) {
SceneGraph.tileHeights[arg0][local10][local3] = arg0 <= 0 ? 0 : SceneGraph.tileHeights[arg0 - 1][local10][local3];
}
}
}
if (arg2 > 0 && arg2 < 104) {
for (local3 = arg1 + 1; local3 < arg1 + arg3; local3++) {
if (local3 >= 0 && local3 < 104) {
SceneGraph.tileHeights[arg0][arg2][local3] = SceneGraph.tileHeights[arg0][arg2 - 1][local3];
}
}
}
if (arg1 > 0 && arg1 < 104) {
for (local3 = arg2 + 1; local3 < arg2 + arg4; local3++) {
if (local3 >= 0 && local3 < 104) {
SceneGraph.tileHeights[arg0][local3][arg1] = SceneGraph.tileHeights[arg0][local3][arg1 - 1];
}
}
}
if (arg2 < 0 || arg1 < 0 || arg2 >= 104 || arg1 >= 104) {
return;
}
if (arg0 == 0) {
if (arg2 > 0 && SceneGraph.tileHeights[arg0][arg2 - 1][arg1] != 0) {
SceneGraph.tileHeights[arg0][arg2][arg1] = SceneGraph.tileHeights[arg0][arg2 - 1][arg1];
} else if (arg1 > 0 && SceneGraph.tileHeights[arg0][arg2][arg1 - 1] != 0) {
SceneGraph.tileHeights[arg0][arg2][arg1] = SceneGraph.tileHeights[arg0][arg2][arg1 - 1];
} else if (arg2 > 0 && arg1 > 0 && SceneGraph.tileHeights[arg0][arg2 - 1][arg1 - 1] != 0) {
SceneGraph.tileHeights[arg0][arg2][arg1] = SceneGraph.tileHeights[arg0][arg2 - 1][arg1 - 1];
}
} else if (arg2 > 0 && SceneGraph.tileHeights[arg0 - 1][arg2 - 1][arg1] != SceneGraph.tileHeights[arg0][arg2 - 1][arg1]) {
SceneGraph.tileHeights[arg0][arg2][arg1] = SceneGraph.tileHeights[arg0][arg2 - 1][arg1];
} else if (arg1 > 0 && SceneGraph.tileHeights[arg0][arg2][arg1 - 1] != SceneGraph.tileHeights[arg0 - 1][arg2][arg1 - 1]) {
SceneGraph.tileHeights[arg0][arg2][arg1] = SceneGraph.tileHeights[arg0][arg2][arg1 - 1];
} else if (arg2 > 0 && arg1 > 0 && SceneGraph.tileHeights[arg0][arg2 - 1][arg1 - 1] != SceneGraph.tileHeights[arg0 - 1][arg2 - 1][arg1 - 1]) {
SceneGraph.tileHeights[arg0][arg2][arg1] = SceneGraph.tileHeights[arg0][arg2 - 1][arg1 - 1];
}
}
@OriginalMember(owner = "client!j", name = "g", descriptor = "(I)V") @OriginalMember(owner = "client!j", name = "g", descriptor = "(I)V")
public static void method4637() { public static void method4637() {
aClass3_Sub2_Sub1_8 = null; aClass3_Sub2_Sub1_8 = null;

View file

@ -164,7 +164,7 @@ public abstract class MaterialManager_Class106 {
} }
for (local14 = 0; local14 < 255; local14++) { for (local14 = 0; local14 < 255; local14++) {
@Pc(41) int local41 = 255 - local14; @Pc(41) int local41 = 255 - local14;
@Pc(46) int local46 = Texture.method3219(local41, local12); @Pc(46) int local46 = RandomUtils.nextInt(local41, local12);
@Pc(51) short local51 = this.aShortArray69[local46]; @Pc(51) short local51 = this.aShortArray69[local46];
this.aShortArray69[local46] = this.aShortArray69[local41]; this.aShortArray69[local46] = this.aShortArray69[local41];
this.aShortArray69[local41] = this.aShortArray69[local41 + 256] = local51; this.aShortArray69[local41] = this.aShortArray69[local41 + 256] = local51;

View file

@ -0,0 +1,31 @@
package rt4;
import org.openrs2.deob.annotation.OriginalArg;
import org.openrs2.deob.annotation.OriginalMember;
import org.openrs2.deob.annotation.Pc;
import java.util.Random;
public class RandomUtils {
@OriginalMember(owner = "client!d", name = "c", descriptor = "(III)I")
public static int shuffle(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) {
@Pc(11) int local11 = arg1 - 1 & arg0 >> 31;
return local11 + (arg0 + (arg0 >>> 31)) % arg1;
}
@OriginalMember(owner = "client!ni", name = "a", descriptor = "(BILjava/util/Random;)I")
public static int nextInt(@OriginalArg(1) int arg0, @OriginalArg(2) Random arg1) {
if (arg0 <= 0) {
throw new IllegalArgumentException();
} else if (IntUtils.isPowerOfTwo(arg0)) {
return (int) (((long) arg1.nextInt() & 0xFFFFFFFFL) * (long) arg0 >> 32);
} else {
@Pc(38) int local38 = Integer.MIN_VALUE - (int) (0x100000000L % (long) arg0);
@Pc(41) int local41;
do {
local41 = arg1.nextInt();
} while (local38 <= local41);
return shuffle(local41, arg0);
}
}
}

View file

@ -70,7 +70,7 @@ public final class Rasteriser {
@Pc(5) int[] texels = textureProvider.method3232(textureId, brightness); @Pc(5) int[] texels = textureProvider.method3232(textureId, brightness);
if (texels == null) { if (texels == null) {
int averageColor = textureProvider.getAverageColor(textureId); int averageColor = textureProvider.getAverageColor(textureId);
fillGouraudTriangle(yA, yB, yC, xA, xB, xC, multiplyLightness(averageColor, colorA), multiplyLightness(averageColor, colorB), multiplyLightness(averageColor, colorC)); fillGouraudTriangle(yA, yB, yC, xA, xB, xC, ColorUtils.multiplyLightness(averageColor, colorA), ColorUtils.multiplyLightness(averageColor, colorB), ColorUtils.multiplyLightness(averageColor, colorC));
return; return;
} }
@ -682,17 +682,6 @@ public final class Rasteriser {
} }
} }
@OriginalMember(owner = "client!hf", name = "a", descriptor = "(II)I")
private static int multiplyLightness(@OriginalArg(0) int a, @OriginalArg(1) int b) {
b = b * (a & 0x7F) >> 7;
if (b < 2) {
b = 2;
} else if (b > 126) {
b = 126;
}
return (a & 0xFF80) + b;
}
@OriginalMember(owner = "client!hf", name = "a", descriptor = "(F)V") @OriginalMember(owner = "client!hf", name = "a", descriptor = "(F)V")
public static void setBrightness(@OriginalArg(0) float brightness) { public static void setBrightness(@OriginalArg(0) float brightness) {
randBrightness(brightness); randBrightness(brightness);
@ -705,7 +694,7 @@ public final class Rasteriser {
if (texels == null || alpha > 10) { if (texels == null || alpha > 10) {
int average = textureProvider.getAverageColor(textureId); int average = textureProvider.getAverageColor(textureId);
textureHasTransparency = true; textureHasTransparency = true;
fillGouraudTriangle(yA, yB, yC, xA, xB, xC, multiplyLightness(average, colorA), multiplyLightness(average, colorB), multiplyLightness(average, colorC)); fillGouraudTriangle(yA, yB, yC, xA, xB, xC, ColorUtils.multiplyLightness(average, colorA), ColorUtils.multiplyLightness(average, colorB), ColorUtils.multiplyLightness(average, colorC));
return; return;
} }

View file

@ -937,7 +937,7 @@ public class SceneGraph {
overlay -= rowLightness[local234]; overlay -= rowLightness[local234];
} }
if (local209 >= 0 && local202 > 0) { if (local209 >= 0 && local202 > 0) {
local142[local168][local209] = method1309(overlay / local202, local178 / local202, local173 * 256 / local200); local142[local168][local209] = ColorUtils.method1309(overlay / local202, local178 / local202, local173 * 256 / local200);
} }
} }
} }
@ -1535,20 +1535,6 @@ public class SceneGraph {
} }
} }
@OriginalMember(owner = "client!ed", name = "a", descriptor = "(IIII)I")
public static int method1309(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2) {
if (arg0 > 243) {
arg1 >>= 0x4;
} else if (arg0 > 217) {
arg1 >>= 0x3;
} else if (arg0 > 192) {
arg1 >>= 0x2;
} else if (arg0 > 179) {
arg1 >>= 0x1;
}
return (arg0 >> 1) + (arg1 >> 5 << 7) + (arg2 >> 2 << 10);
}
@OriginalMember(owner = "client!sd", name = "c", descriptor = "(II)V") @OriginalMember(owner = "client!sd", name = "c", descriptor = "(II)V")
public static void method3884(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { public static void method3884(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) {
@Pc(7) Tile local7 = tiles[0][arg0][arg1]; @Pc(7) Tile local7 = tiles[0][arg0][arg1];
@ -2452,7 +2438,7 @@ public class SceneGraph {
local201 = local199 - (local213[local112][local133] + local213[local112][local129] + local213[local103][local129] + local213[local103][local133] >> 2); local201 = local199 - (local213[local112][local133] + local213[local112][local129] + local213[local103][local129] + local213[local103][local133] >> 2);
} }
local213 = null; local213 = null;
@Pc(261) long local261 = arg7 | 0x40000000 | arg8 << 7 | arg6 << 14 | arg9 << 20; @Pc(261) long local261 = arg7 | 0x40000000 | (long) arg8 << 7 | (long) arg6 << 14 | (long) arg9 << 20;
if (arg3) { if (arg3) {
local213 = surfaceTileHeights[0]; local213 = surfaceTileHeights[0];
} else if (arg0 < 3) { } else if (arg0 < 3) {
@ -3763,7 +3749,7 @@ public class SceneGraph {
for (local155 = 0; local155 < local16; local155++) { for (local155 = 0; local155 < local16; local155++) {
local1358[local155] = local1348[local155].key; local1358[local155] = local1348[local155].key;
} }
method23(local1358, local1348); ArrayUtils.sort(local1358, local1348);
return local1348; return local1348;
} }
@ -3831,42 +3817,6 @@ public class SceneGraph {
} }
} }
@OriginalMember(owner = "client!ac", name = "a", descriptor = "([J[Ljava/lang/Object;I)V")
public static void method23(@OriginalArg(0) long[] arg0, @OriginalArg(1) Object[] arg1) {
method3909(arg0.length - 1, arg0, 0, arg1);
}
@OriginalMember(owner = "client!sh", name = "a", descriptor = "(I[JII[Ljava/lang/Object;)V")
public static void method3909(@OriginalArg(0) int arg0, @OriginalArg(1) long[] arg1, @OriginalArg(3) int arg2, @OriginalArg(4) Object[] arg3) {
if (arg2 >= arg0) {
return;
}
@Pc(16) int local16 = arg2;
@Pc(23) int local23 = (arg2 + arg0) / 2;
@Pc(27) long local27 = arg1[local23];
arg1[local23] = arg1[arg0];
arg1[arg0] = local27;
@Pc(41) Object local41 = arg3[local23];
arg3[local23] = arg3[arg0];
arg3[arg0] = local41;
for (@Pc(53) int local53 = arg2; local53 < arg0; local53++) {
if (local27 + (long) (local53 & 0x1) > arg1[local53]) {
@Pc(72) long local72 = arg1[local53];
arg1[local53] = arg1[local16];
arg1[local16] = local72;
@Pc(86) Object local86 = arg3[local53];
arg3[local53] = arg3[local16];
arg3[local16++] = local86;
}
}
arg1[arg0] = arg1[local16];
arg1[local16] = local27;
arg3[arg0] = arg3[local16];
arg3[local16] = local41;
method3909(local16 - 1, arg1, arg2, arg3);
method3909(arg0, arg1, local16 + 1, arg3);
}
@OriginalMember(owner = "client!ke", name = "a", descriptor = "(Lclient!rh;IIIIIIIZ)V") @OriginalMember(owner = "client!ke", name = "a", descriptor = "(Lclient!rh;IIIIIIIZ)V")
public static void method2610(@OriginalArg(0) PlainTile arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) boolean arg8) { public static void method2610(@OriginalArg(0) PlainTile arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) boolean arg8) {
@Pc(6) int local6; @Pc(6) int local6;
@ -3939,7 +3889,7 @@ public class SceneGraph {
} }
} else if (!Preferences.manyGroundTextures) { } else if (!Preferences.manyGroundTextures) {
local475 = Rasteriser.textureProvider.getAverageColor(arg0.anInt4869); local475 = Rasteriser.textureProvider.getAverageColor(arg0.anInt4869);
Rasteriser.fillGouraudTriangle(local315, local331, local299, local307, local323, local291, method1640(local475, arg0.anInt4865), method1640(local475, arg0.anInt4864), method1640(local475, arg0.anInt4867)); Rasteriser.fillGouraudTriangle(local315, local331, local299, local307, local323, local291, ColorUtils.multiplyLightness3(local475, arg0.anInt4865), ColorUtils.multiplyLightness3(local475, arg0.anInt4864), ColorUtils.multiplyLightness3(local475, arg0.anInt4867));
} else if (arg0.aBoolean241) { } else if (arg0.aBoolean241) {
Rasteriser.fillTexturedTriangle(local315, local331, local299, local307, local323, local291, arg0.anInt4865, arg0.anInt4864, arg0.anInt4867, local97, local21, local241, local119, local49, local85, local117, local165, local261, arg0.anInt4869); Rasteriser.fillTexturedTriangle(local315, local331, local299, local307, local323, local291, arg0.anInt4865, arg0.anInt4864, arg0.anInt4867, local97, local21, local241, local119, local49, local85, local117, local165, local261, arg0.anInt4869);
} else { } else {
@ -3966,7 +3916,7 @@ public class SceneGraph {
Rasteriser.fillTexturedTriangle(local283, local299, local331, local275, local291, local323, arg0.anInt4872, arg0.anInt4867, arg0.anInt4864, local97, local21, local241, local119, local49, local85, local117, local165, local261, arg0.anInt4869); Rasteriser.fillTexturedTriangle(local283, local299, local331, local275, local291, local323, arg0.anInt4872, arg0.anInt4867, arg0.anInt4864, local97, local21, local241, local119, local49, local85, local117, local165, local261, arg0.anInt4869);
} else { } else {
local475 = Rasteriser.textureProvider.getAverageColor(arg0.anInt4869); local475 = Rasteriser.textureProvider.getAverageColor(arg0.anInt4869);
Rasteriser.fillGouraudTriangle(local283, local299, local331, local275, local291, local323, method1640(local475, arg0.anInt4872), method1640(local475, arg0.anInt4867), method1640(local475, arg0.anInt4864)); Rasteriser.fillGouraudTriangle(local283, local299, local331, local275, local291, local323, ColorUtils.multiplyLightness3(local475, arg0.anInt4872), ColorUtils.multiplyLightness3(local475, arg0.anInt4867), ColorUtils.multiplyLightness3(local475, arg0.anInt4864));
} }
} }
@ -4240,17 +4190,6 @@ public class SceneGraph {
} }
} }
@OriginalMember(owner = "client!ri", name = "a", descriptor = "(II)I")
public static int method1640(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) {
arg1 = arg1 * (arg0 & 0x7F) >> 7;
if (arg1 < 2) {
arg1 = 2;
} else if (arg1 > 126) {
arg1 = 126;
}
return (arg0 & 0xFF80) + arg1;
}
@OriginalMember(owner = "client!lh", name = "a", descriptor = "(Lclient!fg;IIIIIIZ)V") @OriginalMember(owner = "client!lh", name = "a", descriptor = "(Lclient!fg;IIIIIIZ)V")
public static void method2762(@OriginalArg(0) ShapedTile arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) boolean arg7) { public static void method2762(@OriginalArg(0) ShapedTile arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) boolean arg7) {
@Pc(3) int local3 = arg0.anIntArray168.length; @Pc(3) int local3 = arg0.anIntArray168.length;
@ -4303,7 +4242,7 @@ public class SceneGraph {
} }
} else if (!Preferences.manyGroundTextures) { } else if (!Preferences.manyGroundTextures) {
@Pc(373) int local373 = Rasteriser.textureProvider.getAverageColor(arg0.anIntArray161[local5]); @Pc(373) int local373 = Rasteriser.textureProvider.getAverageColor(arg0.anIntArray161[local5]);
Rasteriser.fillGouraudTriangle(local156, local160, local164, local39, local148, local152, method1640(local373, arg0.anIntArray167[local5]), method1640(local373, arg0.anIntArray172[local5]), method1640(local373, arg0.anIntArray171[local5])); Rasteriser.fillGouraudTriangle(local156, local160, local164, local39, local148, local152, ColorUtils.multiplyLightness3(local373, arg0.anIntArray167[local5]), ColorUtils.multiplyLightness3(local373, arg0.anIntArray172[local5]), ColorUtils.multiplyLightness3(local373, arg0.anIntArray171[local5]));
} else if (arg0.aBoolean113) { } else if (arg0.aBoolean113) {
Rasteriser.fillTexturedTriangle(local156, local160, local164, local39, local148, local152, arg0.anIntArray167[local5], arg0.anIntArray172[local5], arg0.anIntArray171[local5], anIntArray159[0], anIntArray159[1], anIntArray159[3], anIntArray170[0], anIntArray170[1], anIntArray170[3], anIntArray169[0], anIntArray169[1], anIntArray169[3], arg0.anIntArray161[local5]); Rasteriser.fillTexturedTriangle(local156, local160, local164, local39, local148, local152, arg0.anIntArray167[local5], arg0.anIntArray172[local5], arg0.anIntArray171[local5], anIntArray159[0], anIntArray159[1], anIntArray159[3], anIntArray170[0], anIntArray170[1], anIntArray170[3], anIntArray169[0], anIntArray169[1], anIntArray169[3], arg0.anIntArray161[local5]);
} else { } else {
@ -4816,7 +4755,7 @@ public class SceneGraph {
for (local38 = 0; local38 < local12; local38++) { for (local38 = 0; local38 < local12; local38++) {
local2826[local38] = local2823[local38].key; local2826[local38] = local2823[local38].key;
} }
method23(local2826, local2823); ArrayUtils.sort(local2826, local2823);
return local2823; return local2823;
} }
@ -4833,7 +4772,7 @@ public class SceneGraph {
@OriginalMember(owner = "client!bi", name = "a", descriptor = "(IIBI)I") @OriginalMember(owner = "client!bi", name = "a", descriptor = "(IIBI)I")
public static int method588(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2) { public static int method588(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2) {
@Pc(19) int local19 = Rasteriser.palette[SoftwareModel.method4585(arg1, arg2)]; @Pc(19) int local19 = Rasteriser.palette[ColorUtils.multiplyLightness2(arg1, arg2)];
if (arg0 > 0) { if (arg0 > 0) {
@Pc(31) int local31 = Rasteriser.textureProvider.method3238(arg0 & 0xFFFF); @Pc(31) int local31 = Rasteriser.textureProvider.method3238(arg0 & 0xFFFF);
@Pc(49) int local49; @Pc(49) int local49;
@ -5074,4 +5013,462 @@ public class SceneGraph {
return local50 + (local65 >> 7); return local50 + (local65 >> 7);
} }
} }
@OriginalMember(owner = "client!bm", name = "a", descriptor = "(IBIIII)V")
public static void method645(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3, @OriginalArg(5) int arg4) {
@Pc(3) int local3;
@Pc(10) int local10;
for (local3 = arg1; local3 <= arg3 + arg1; local3++) {
for (local10 = arg2; local10 <= arg4 + arg2; local10++) {
if (local10 >= 0 && local10 < 104 && local3 >= 0 && local3 < 104) {
aByteArrayArrayArray9[arg0][local10][local3] = 127;
}
}
}
for (local3 = arg1; local3 < arg3 + arg1; local3++) {
for (local10 = arg2; local10 < arg2 + arg4; local10++) {
if (local10 >= 0 && local10 < 104 && local3 >= 0 && local3 < 104) {
tileHeights[arg0][local10][local3] = arg0 <= 0 ? 0 : tileHeights[arg0 - 1][local10][local3];
}
}
}
if (arg2 > 0 && arg2 < 104) {
for (local3 = arg1 + 1; local3 < arg1 + arg3; local3++) {
if (local3 >= 0 && local3 < 104) {
tileHeights[arg0][arg2][local3] = tileHeights[arg0][arg2 - 1][local3];
}
}
}
if (arg1 > 0 && arg1 < 104) {
for (local3 = arg2 + 1; local3 < arg2 + arg4; local3++) {
if (local3 >= 0 && local3 < 104) {
tileHeights[arg0][local3][arg1] = tileHeights[arg0][local3][arg1 - 1];
}
}
}
if (arg2 < 0 || arg1 < 0 || arg2 >= 104 || arg1 >= 104) {
return;
}
if (arg0 == 0) {
if (arg2 > 0 && tileHeights[arg0][arg2 - 1][arg1] != 0) {
tileHeights[arg0][arg2][arg1] = tileHeights[arg0][arg2 - 1][arg1];
} else if (arg1 > 0 && tileHeights[arg0][arg2][arg1 - 1] != 0) {
tileHeights[arg0][arg2][arg1] = tileHeights[arg0][arg2][arg1 - 1];
} else if (arg2 > 0 && arg1 > 0 && tileHeights[arg0][arg2 - 1][arg1 - 1] != 0) {
tileHeights[arg0][arg2][arg1] = tileHeights[arg0][arg2 - 1][arg1 - 1];
}
} else if (arg2 > 0 && tileHeights[arg0 - 1][arg2 - 1][arg1] != tileHeights[arg0][arg2 - 1][arg1]) {
tileHeights[arg0][arg2][arg1] = tileHeights[arg0][arg2 - 1][arg1];
} else if (arg1 > 0 && tileHeights[arg0][arg2][arg1 - 1] != tileHeights[arg0 - 1][arg2][arg1 - 1]) {
tileHeights[arg0][arg2][arg1] = tileHeights[arg0][arg2][arg1 - 1];
} else if (arg2 > 0 && arg1 > 0 && tileHeights[arg0][arg2 - 1][arg1 - 1] != tileHeights[arg0 - 1][arg2 - 1][arg1 - 1]) {
tileHeights[arg0][arg2][arg1] = tileHeights[arg0][arg2 - 1][arg1 - 1];
}
}
@OriginalMember(owner = "client!wa", name = "a", descriptor = "([Lclient!mj;ZIIIII[B)V")
public static void method2203(@OriginalArg(0) CollisionMap[] arg0, @OriginalArg(1) boolean arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) int arg5, @OriginalArg(7) byte[] arg6) {
@Pc(14) int local14;
@Pc(21) int local21;
if (!arg1) {
for (@Pc(9) int local9 = 0; local9 < 4; local9++) {
for (local14 = 0; local14 < 64; local14++) {
for (local21 = 0; local21 < 64; local21++) {
if (arg4 + local14 > 0 && local14 + arg4 < 103 && arg3 + local21 > 0 && local21 + arg3 < 103) {
arg0[local9].flags[local14 + arg4][arg3 + local21] &= 0xFEFFFFFF;
}
}
}
}
}
@Pc(95) Buffer local95 = new Buffer(arg6);
@Pc(99) byte local99;
if (arg1) {
local99 = 1;
} else {
local99 = 4;
}
@Pc(117) int local117;
for (local14 = 0; local14 < local99; local14++) {
for (local21 = 0; local21 < 64; local21++) {
for (local117 = 0; local117 < 64; local117++) {
readTile(arg2, arg5, arg1, local95, local117 + arg3, arg4 + local21, 0, local14);
}
}
}
@Pc(146) boolean local146 = false;
@Pc(243) int local243;
@Pc(188) int local188;
@Pc(190) int local190;
@Pc(194) int local194;
while (local95.offset < local95.data.length) {
local21 = local95.g1();
if (local21 != 129) {
local95.offset--;
break;
}
for (local117 = 0; local117 < 4; local117++) {
@Pc(168) byte local168 = local95.g1b();
if (local168 == 0) {
local243 = arg4;
if (arg4 < 0) {
local243 = 0;
} else if (arg4 >= 104) {
local243 = 104;
}
local190 = arg3;
if (arg3 < 0) {
local190 = 0;
} else if (arg3 >= 104) {
local190 = 104;
}
local188 = arg4 + 64;
local194 = arg3 + 64;
if (local194 < 0) {
local194 = 0;
} else if (local194 >= 104) {
local194 = 104;
}
if (local188 < 0) {
local188 = 0;
} else if (local188 >= 104) {
local188 = 104;
}
while (local243 < local188) {
while (local190 < local194) {
aByteArrayArrayArray13[local117][local243][local190] = 0;
local190++;
}
local243++;
}
} else if (local168 == 1) {
for (local243 = 0; local243 < 64; local243 += 4) {
for (local188 = 0; local188 < 64; local188 += 4) {
@Pc(305) byte local305 = local95.g1b();
for (local194 = local243 + arg4; local194 < arg4 + local243 + 4; local194++) {
for (@Pc(320) int local320 = arg3 + local188; local320 < arg3 + local188 + 4; local320++) {
if (local194 >= 0 && local194 < 104 && local320 >= 0 && local320 < 104) {
aByteArrayArrayArray13[local117][local194][local320] = local305;
}
}
}
}
}
} else if (local168 == 2 && local117 > 0) {
local188 = arg4 + 64;
local190 = arg3;
local194 = arg3 + 64;
if (local188 < 0) {
local188 = 0;
} else if (local188 >= 104) {
local188 = 104;
}
if (arg3 < 0) {
local190 = 0;
} else if (arg3 >= 104) {
local190 = 104;
}
if (local194 < 0) {
local194 = 0;
} else if (local194 >= 104) {
local194 = 104;
}
local243 = arg4;
if (arg4 < 0) {
local243 = 0;
} else if (arg4 >= 104) {
local243 = 104;
}
while (local188 > local243) {
while (local190 < local194) {
aByteArrayArrayArray13[local117][local243][local190] = aByteArrayArrayArray13[local117 - 1][local243][local190];
local190++;
}
local243++;
}
}
}
local146 = true;
}
@Pc(515) int local515;
if (GlRenderer.enabled && !arg1) {
@Pc(490) Environment local490 = null;
label270:
while (true) {
label263:
do {
while (local95.offset < local95.data.length) {
local117 = local95.g1();
if (local117 != 0) {
if (local117 != 1) {
throw new IllegalStateException();
}
local515 = local95.g1();
continue label263;
}
local490 = new Environment(local95);
}
if (local490 == null) {
local490 = new Environment();
}
for (local117 = 0; local117 < 8; local117++) {
for (local515 = 0; local515 < 8; local515++) {
local243 = local117 + (arg4 >> 3);
local188 = (arg3 >> 3) + local515;
if (local243 >= 0 && local243 < 13 && local188 >= 0 && local188 < 13) {
FogManager.chunksAtmosphere[local243][local188] = local490;
}
}
}
break label270;
} while (local515 <= 0);
for (local243 = 0; local243 < local515; local243++) {
@Pc(529) Light local529 = new Light(local95);
if (local529.anInt2243 == 31) {
@Pc(541) LightType local541 = LightTypeList.get(local95.g2());
local529.method1762(local541.anInt2865, local541.anInt2873, local541.anInt2867, local541.anInt2872);
}
local529.z += arg3 << 7;
local529.x += arg4 << 7;
local194 = local529.z >> 7;
local190 = local529.x >> 7;
if (local190 >= 0 && local194 >= 0 && local190 < 104 && local194 < 104) {
local529.aBoolean125 = (tileFlags[1][local190][local194] & 0x2) != 0;
local529.y = tileHeights[local529.level][local190][local194] - local529.y;
LightingManager.method2389(local529);
}
}
}
}
if (local146) {
return;
}
for (local21 = 0; local21 < 4; local21++) {
for (local117 = 0; local117 < 16; local117++) {
for (local515 = 0; local515 < 16; local515++) {
local243 = (arg4 >> 2) + local117;
local188 = local515 + (arg3 >> 2);
if (local243 >= 0 && local243 < 26 && local188 >= 0 && local188 < 26) {
aByteArrayArrayArray13[local21][local243][local188] = 0;
}
}
}
}
}
@OriginalMember(owner = "client!tm", name = "a", descriptor = "(III[Lclient!mj;IB[BIIIZ)V")
public static void method4228(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) CollisionMap[] arg3, @OriginalArg(4) int arg4, @OriginalArg(6) byte[] arg5, @OriginalArg(7) int arg6, @OriginalArg(8) int arg7, @OriginalArg(9) int arg8, @OriginalArg(10) boolean arg9) {
@Pc(17) int local17;
if (!arg9) {
for (@Pc(10) int local10 = 0; local10 < 8; local10++) {
for (local17 = 0; local17 < 8; local17++) {
if (arg1 + local10 > 0 && local10 + arg1 < 103 && local17 + arg4 > 0 && arg4 + local17 < 103) {
arg3[arg2].flags[local10 + arg1][local17 + arg4] &= 0xFEFFFFFF;
}
}
}
}
@Pc(87) byte local87;
if (arg9) {
local87 = 1;
} else {
local87 = 4;
}
@Pc(96) Buffer local96 = new Buffer(arg5);
@Pc(103) int local103;
@Pc(108) int local108;
for (local17 = 0; local17 < local87; local17++) {
for (local103 = 0; local103 < 64; local103++) {
for (local108 = 0; local108 < 64; local108++) {
if (arg6 == local17 && arg8 <= local103 && arg8 + 8 > local103 && arg7 <= local108 && local108 < arg7 + 8) {
readTile(0, 0, arg9, local96, rotateZ(arg0, local103 & 0x7, local108 & 0x7) + arg4, rotateX(arg0, local108 & 0x7, local103 & 0x7) + arg1, arg0, arg2);
} else {
readTile(0, 0, arg9, local96, -1, -1, 0, 0);
}
}
}
}
@Pc(232) int local232;
@Pc(417) int local417;
@Pc(255) int local255;
@Pc(266) int local266;
@Pc(316) int local316;
while (local96.data.length > local96.offset) {
local103 = local96.g1();
if (local103 != 129) {
local96.offset--;
break;
}
for (local108 = 0; local108 < 4; local108++) {
@Pc(223) byte local223 = local96.g1b();
@Pc(237) int local237;
if (local223 == 0) {
if (local108 <= arg6) {
local237 = arg1 + 7;
local232 = arg1;
local255 = arg4 + 7;
if (local255 < 0) {
local255 = 0;
} else if (local255 >= 104) {
local255 = 104;
}
if (local237 < 0) {
local237 = 0;
} else if (local237 >= 104) {
local237 = 104;
}
local417 = arg4;
if (arg4 < 0) {
local417 = 0;
} else if (arg4 >= 104) {
local417 = 104;
}
if (arg1 < 0) {
local232 = 0;
} else if (arg1 >= 104) {
local232 = 104;
}
while (local237 > local232) {
while (local417 < local255) {
aByteArrayArrayArray13[arg2][local232][local417] = 0;
local417++;
}
local232++;
}
}
} else if (local223 == 1) {
for (local232 = 0; local232 < 64; local232 += 4) {
for (local237 = 0; local237 < 64; local237 += 4) {
@Pc(246) byte local246 = local96.g1b();
if (local108 <= arg6) {
for (local255 = local232; local255 < local232 + 4; local255++) {
for (local266 = local237; local266 < local237 + 4; local266++) {
if (local255 >= arg8 && local255 < arg8 + 8 && local266 >= arg7 && arg7 + 8 > arg7) {
local316 = arg1 + rotateX(arg0, local266 & 0x7, local255 & 0x7);
@Pc(328) int local328 = rotateZ(arg0, local255 & 0x7, local266 & 0x7) + arg4;
if (local316 >= 0 && local316 < 104 && local328 >= 0 && local328 < 104) {
aByteArrayArrayArray13[arg2][local316][local328] = local246;
}
}
}
}
}
}
}
} else if (local223 == 2) {
}
}
}
@Pc(497) int local497;
if (GlRenderer.enabled && !arg9) {
@Pc(472) Environment local472 = null;
label207:
while (true) {
label200:
do {
while (local96.data.length > local96.offset) {
local108 = local96.g1();
if (local108 != 0) {
if (local108 != 1) {
throw new IllegalStateException();
}
local497 = local96.g1();
continue label200;
}
local472 = new Environment(local96);
}
if (local472 == null) {
local472 = new Environment();
}
FogManager.chunksAtmosphere[arg1 >> 3][arg4 >> 3] = local472;
break label207;
} while (local497 <= 0);
for (local232 = 0; local232 < local497; local232++) {
@Pc(517) Light local517 = new Light(local96);
if (local517.anInt2243 == 31) {
@Pc(529) LightType local529 = LightTypeList.get(local96.g2());
local517.method1762(local529.anInt2865, local529.anInt2873, local529.anInt2867, local529.anInt2872);
}
local417 = local517.x >> 7;
local255 = local517.z >> 7;
if (arg6 == local517.level && local417 >= arg8 && arg8 + 8 > local417 && arg7 <= local255 && arg7 + 8 > local255) {
local266 = rotateXFine(arg0, local517.x & 0x3FF, local517.z & 0x3FF) + (arg1 << 7);
local316 = rotateZFine(local517.x & 0x3FF, arg0, local517.z & 0x3FF) + (arg4 << 7);
local517.x = local266;
local517.z = local316;
local417 = local517.x >> 7;
local255 = local517.z >> 7;
if (local417 >= 0 && local255 >= 0 && local417 < 104 && local255 < 104) {
local517.aBoolean125 = (tileFlags[1][local417][local255] & 0x2) != 0;
local517.y = tileHeights[local517.level][local417][local255] - local517.y;
LightingManager.method2389(local517);
}
}
}
}
}
local103 = arg1 + 7;
local108 = arg4 + 7;
for (local497 = arg1; local497 < local103; local497++) {
for (local232 = arg4; local232 < local108; local232++) {
aByteArrayArrayArray13[arg2][local497][local232] = 0;
}
}
}
@OriginalMember(owner = "client!rg", name = "a", descriptor = "(IZII)I")
public static int rotateX(@OriginalArg(0) int arg0, @OriginalArg(2) int z, @OriginalArg(3) int x) {
@Pc(3) int angle = arg0 & 0x3;
if (angle == 0) {
return x;
} else if (angle == 1) {
return z;
} else if (angle == 2) {
return 7 - x;
} else {
return 7 - z;
}
}
@OriginalMember(owner = "client!qg", name = "a", descriptor = "(IBII)I")
public static int rotateZ(@OriginalArg(0) int arg0, @OriginalArg(2) int x, @OriginalArg(3) int z) {
@Pc(3) int angle = arg0 & 0x3;
if (angle == 0) {
return z;
} else if (angle == 1) {
return 7 - x;
} else if (angle == 2) {
return 7 - z;
} else {
return x;
}
}
@OriginalMember(owner = "client!qi", name = "a", descriptor = "(IIBI)I")
public static int rotateXFine(@OriginalArg(0) int arg0, @OriginalArg(1) int x, @OriginalArg(3) int z) {
@Pc(3) int angle = arg0 & 0x3;
if (angle == 0) {
return x;
} else if (angle == 1) {
return z;
} else if (angle == 2) {
return 1023 - x;
} else {
return 1023 - z;
}
}
@OriginalMember(owner = "client!ol", name = "a", descriptor = "(IIZI)I")
public static int rotateZFine(@OriginalArg(0) int x, @OriginalArg(1) int arg1, @OriginalArg(3) int z) {
@Pc(3) int angle = arg1 & 0x3;
if (angle == 0) {
return z;
} else if (angle == 1) {
return 1023 - x;
} else if (angle == 2) {
return 1023 - z;
} else {
return x;
}
}
} }

View file

@ -340,25 +340,25 @@ public final class SoftwareModel extends Model {
local435 = arg0.aClass57Array2[this.anIntArray534[local133]]; local435 = arg0.aClass57Array2[this.anIntArray534[local133]];
} }
local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles) << 17; local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles) << 17;
this.anIntArray533[local133] = local468 | method4585(local416, local468 >> 17); this.anIntArray533[local133] = local468 | ColorUtils.multiplyLightness2(local416, local468 >> 17);
if (arg0.aClass57Array2 == null || arg0.aClass57Array2[this.anIntArray524[local133]] == null) { if (arg0.aClass57Array2 == null || arg0.aClass57Array2[this.anIntArray524[local133]] == null) {
local435 = arg0.vertexNormals[this.anIntArray524[local133]]; local435 = arg0.vertexNormals[this.anIntArray524[local133]];
} else { } else {
local435 = arg0.aClass57Array2[this.anIntArray524[local133]]; local435 = arg0.aClass57Array2[this.anIntArray524[local133]];
} }
local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles) << 17; local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles) << 17;
this.anIntArray523[local133] = local468 | method4585(local416, local468 >> 17); this.anIntArray523[local133] = local468 | ColorUtils.multiplyLightness2(local416, local468 >> 17);
if (arg0.aClass57Array2 == null || arg0.aClass57Array2[this.anIntArray529[local133]] == null) { if (arg0.aClass57Array2 == null || arg0.aClass57Array2[this.anIntArray529[local133]] == null) {
local435 = arg0.vertexNormals[this.anIntArray529[local133]]; local435 = arg0.vertexNormals[this.anIntArray529[local133]];
} else { } else {
local435 = arg0.aClass57Array2[this.anIntArray529[local133]]; local435 = arg0.aClass57Array2[this.anIntArray529[local133]];
} }
local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles) << 17; local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles) << 17;
this.anIntArray532[local133] = local468 | method4585(local416, local468 >> 17); this.anIntArray532[local133] = local468 | ColorUtils.multiplyLightness2(local416, local468 >> 17);
} else if (local366 == 1) { } else if (local366 == 1) {
local614 = arg0.triangleNormals[local133]; local614 = arg0.triangleNormals[local133];
local468 = arg1 + (arg3 * local614.anInt4769 + arg4 * local614.anInt4770 + arg5 * local614.anInt4767) / (local108 + local108 / 2) << 17; local468 = arg1 + (arg3 * local614.anInt4769 + arg4 * local614.anInt4770 + arg5 * local614.anInt4767) / (local108 + local108 / 2) << 17;
this.anIntArray533[local133] = local468 | method4585(arg0.triangleColors[local133] & 0xFFFF, local468 >> 17); this.anIntArray533[local133] = local468 | ColorUtils.multiplyLightness2(arg0.triangleColors[local133] & 0xFFFF, local468 >> 17);
this.anIntArray532[local133] = -1; this.anIntArray532[local133] = -1;
} else if (local366 == 3) { } else if (local366 == 3) {
this.anIntArray533[local133] = 128; this.anIntArray533[local133] = 128;
@ -373,25 +373,25 @@ public final class SoftwareModel extends Model {
local435 = arg0.aClass57Array2[this.anIntArray534[local133]]; local435 = arg0.aClass57Array2[this.anIntArray534[local133]];
} }
local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles); local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles);
this.anIntArray533[local133] = method4582(local468); this.anIntArray533[local133] = ColorUtils.method4582(local468);
if (arg0.aClass57Array2 == null || arg0.aClass57Array2[this.anIntArray524[local133]] == null) { if (arg0.aClass57Array2 == null || arg0.aClass57Array2[this.anIntArray524[local133]] == null) {
local435 = arg0.vertexNormals[this.anIntArray524[local133]]; local435 = arg0.vertexNormals[this.anIntArray524[local133]];
} else { } else {
local435 = arg0.aClass57Array2[this.anIntArray524[local133]]; local435 = arg0.aClass57Array2[this.anIntArray524[local133]];
} }
local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles); local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles);
this.anIntArray523[local133] = method4582(local468); this.anIntArray523[local133] = ColorUtils.method4582(local468);
if (arg0.aClass57Array2 == null || arg0.aClass57Array2[this.anIntArray529[local133]] == null) { if (arg0.aClass57Array2 == null || arg0.aClass57Array2[this.anIntArray529[local133]] == null) {
local435 = arg0.vertexNormals[this.anIntArray529[local133]]; local435 = arg0.vertexNormals[this.anIntArray529[local133]];
} else { } else {
local435 = arg0.aClass57Array2[this.anIntArray529[local133]]; local435 = arg0.aClass57Array2[this.anIntArray529[local133]];
} }
local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles); local468 = arg1 + (arg3 * local435.x + arg4 * local435.y + arg5 * local435.z) / (local108 * local435.triangles);
this.anIntArray532[local133] = method4582(local468); this.anIntArray532[local133] = ColorUtils.method4582(local468);
} else if (local366 == 1) { } else if (local366 == 1) {
local614 = arg0.triangleNormals[local133]; local614 = arg0.triangleNormals[local133];
local468 = arg1 + (arg3 * local614.anInt4769 + arg4 * local614.anInt4770 + arg5 * local614.anInt4767) / (local108 + local108 / 2); local468 = arg1 + (arg3 * local614.anInt4769 + arg4 * local614.anInt4770 + arg5 * local614.anInt4767) / (local108 + local108 / 2);
this.anIntArray533[local133] = method4582(local468); this.anIntArray533[local133] = ColorUtils.method4582(local468);
this.anIntArray532[local133] = -1; this.anIntArray532[local133] = -1;
} else { } else {
this.anIntArray532[local133] = -2; this.anIntArray532[local133] = -2;
@ -538,58 +538,6 @@ public final class SoftwareModel extends Model {
anIntArrayArray43 = new int[32][512]; anIntArrayArray43 = new int[32][512];
} }
@OriginalMember(owner = "client!w", name = "f", descriptor = "(I)I")
public static int method4582(@OriginalArg(0) int arg0) {
if (arg0 < 2) {
arg0 = 2;
} else if (arg0 > 126) {
arg0 = 126;
}
return arg0;
}
@OriginalMember(owner = "client!w", name = "a", descriptor = "(II)I")
public static int method4585(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) {
arg1 = arg1 * (arg0 & 0x7F) >> 7;
if (arg1 < 2) {
arg1 = 2;
} else if (arg1 > 126) {
arg1 = 126;
}
return (arg0 & 0xFF80) + arg1;
}
@OriginalMember(owner = "client!nj", name = "a", descriptor = "(IIZ[I[I)V")
public static void method3223(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int[] arg2, @OriginalArg(4) int[] arg3) {
if (arg0 >= arg1) {
return;
}
@Pc(22) int local22 = (arg1 + arg0) / 2;
@Pc(24) int local24 = arg0;
@Pc(28) int local28 = arg2[local22];
arg2[local22] = arg2[arg1];
arg2[arg1] = local28;
@Pc(42) int local42 = arg3[local22];
arg3[local22] = arg3[arg1];
arg3[arg1] = local42;
for (@Pc(54) int local54 = arg0; local54 < arg1; local54++) {
if (arg2[local54] > (local54 & 0x1) + local28) {
@Pc(79) int local79 = arg2[local54];
arg2[local54] = arg2[local24];
arg2[local24] = local79;
@Pc(93) int local93 = arg3[local54];
arg3[local54] = arg3[local24];
arg3[local24++] = local93;
}
}
arg2[arg1] = arg2[local24];
arg2[local24] = local28;
arg3[arg1] = arg3[local24];
arg3[local24] = local42;
method3223(arg0, local24 - 1, arg2, arg3);
method3223(local24 + 1, arg1, arg2, arg3);
}
@OriginalMember(owner = "client!w", name = "e", descriptor = "(I)V") @OriginalMember(owner = "client!w", name = "e", descriptor = "(I)V")
private void method4579(@OriginalArg(0) int arg0) { private void method4579(@OriginalArg(0) int arg0) {
if (aBooleanArray132[arg0]) { if (aBooleanArray132[arg0]) {
@ -650,14 +598,14 @@ public final class SoftwareModel extends Model {
@Pc(38) int local38; @Pc(38) int local38;
if (this.anIntArray532[local1] == -1) { if (this.anIntArray532[local1] == -1) {
local38 = this.anIntArray533[local1] & 0xFFFE0000; local38 = this.anIntArray533[local1] & 0xFFFE0000;
this.anIntArray533[local1] = local38 | method4585(local25, local38 >> 17); this.anIntArray533[local1] = local38 | ColorUtils.multiplyLightness2(local25, local38 >> 17);
} else if (this.anIntArray532[local1] != -2) { } else if (this.anIntArray532[local1] != -2) {
local38 = this.anIntArray533[local1] & 0xFFFE0000; local38 = this.anIntArray533[local1] & 0xFFFE0000;
this.anIntArray533[local1] = local38 | method4585(local25, local38 >> 17); this.anIntArray533[local1] = local38 | ColorUtils.multiplyLightness2(local25, local38 >> 17);
local38 = this.anIntArray523[local1] & 0xFFFE0000; local38 = this.anIntArray523[local1] & 0xFFFE0000;
this.anIntArray523[local1] = local38 | method4585(local25, local38 >> 17); this.anIntArray523[local1] = local38 | ColorUtils.multiplyLightness2(local25, local38 >> 17);
local38 = this.anIntArray532[local1] & 0xFFFE0000; local38 = this.anIntArray532[local1] & 0xFFFE0000;
this.anIntArray532[local1] = local38 | method4585(local25, local38 >> 17); this.anIntArray532[local1] = local38 | ColorUtils.multiplyLightness2(local25, local38 >> 17);
} }
} }
} }
@ -1689,7 +1637,7 @@ public final class SoftwareModel extends Model {
} }
} }
if (aBoolean307) { if (aBoolean307) {
method3223(0, local5 - 1, anIntArray550, anIntArray549); ArrayUtils.sort(0, local5 - 1, anIntArray550, anIntArray549);
if (this.aByteArray73 == null) { if (this.aByteArray73 == null) {
for (local11 = 0; local11 < local5; local11++) { for (local11 = 0; local11 < local5; local11++) {
this.method4579(anIntArray549[local11]); this.method4579(anIntArray549[local11]);

View file

@ -5,8 +5,6 @@ import org.openrs2.deob.annotation.OriginalClass;
import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.OriginalMember;
import org.openrs2.deob.annotation.Pc; import org.openrs2.deob.annotation.Pc;
import java.util.Random;
@OriginalClass("client!lc") @OriginalClass("client!lc")
public final class Texture { public final class Texture {
@ -240,33 +238,6 @@ public final class Texture {
heightMask = height - 1; heightMask = height - 1;
} }
@OriginalMember(owner = "client!ni", name = "a", descriptor = "(BILjava/util/Random;)I")
public static int method3219(@OriginalArg(1) int arg0, @OriginalArg(2) Random arg1) {
if (arg0 <= 0) {
throw new IllegalArgumentException();
} else if (method3702(arg0)) {
return (int) (((long) arg1.nextInt() & 0xFFFFFFFFL) * (long) arg0 >> 32);
} else {
@Pc(38) int local38 = Integer.MIN_VALUE - (int) (0x100000000L % (long) arg0);
@Pc(41) int local41;
do {
local41 = arg1.nextInt();
} while (local38 <= local41);
return method990(local41, arg0);
}
}
@OriginalMember(owner = "client!d", name = "c", descriptor = "(III)I")
public static int method990(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) {
@Pc(11) int local11 = arg1 - 1 & arg0 >> 31;
return local11 + (arg0 + (arg0 >>> 31)) % arg1;
}
@OriginalMember(owner = "client!ra", name = "a", descriptor = "(BI)Z")
public static boolean method3702(@OriginalArg(1) int arg0) {
return arg0 == (-arg0 & arg0);
}
@OriginalMember(owner = "client!lc", name = "a", descriptor = "(IZIDILclient!ve;Lclient!m;Z)[I") @OriginalMember(owner = "client!lc", name = "a", descriptor = "(IZIDILclient!ve;Lclient!m;Z)[I")
public final int[] method2725(@OriginalArg(0) int arg0, @OriginalArg(1) boolean arg1, @OriginalArg(2) int arg2, @OriginalArg(3) double arg3, @OriginalArg(5) Js5 arg4, @OriginalArg(6) TextureProvider arg5, @OriginalArg(7) boolean arg6) { public final int[] method2725(@OriginalArg(0) int arg0, @OriginalArg(1) boolean arg1, @OriginalArg(2) int arg2, @OriginalArg(3) double arg3, @OriginalArg(5) Js5 arg4, @OriginalArg(6) TextureProvider arg5, @OriginalArg(7) boolean arg6) {
setBrightness(arg3); setBrightness(arg3);

View file

@ -61,7 +61,7 @@ public final class TextureOp15 extends TextureOp {
} }
for (local29 = 0; local29 < 255; local29++) { for (local29 = 0; local29 < 255; local29++) {
@Pc(53) int local53 = 255 - local29; @Pc(53) int local53 = 255 - local29;
@Pc(58) int local58 = Texture.method3219(local53, local24); @Pc(58) int local58 = RandomUtils.nextInt(local53, local24);
@Pc(62) byte local62 = local27[local58]; @Pc(62) byte local62 = local27[local58];
local27[local58] = local27[local53]; local27[local58] = local27[local53];
local27[local53] = local27[511 - local29] = local62; local27[local53] = local27[511 - local29] = local62;
@ -78,7 +78,7 @@ public final class TextureOp15 extends TextureOp {
this.aShortArray35 = new short[512]; this.aShortArray35 = new short[512];
if (this.anInt2636 > 0) { if (this.anInt2636 > 0) {
for (@Pc(26) int local26 = 0; local26 < 512; local26++) { for (@Pc(26) int local26 = 0; local26 < 512; local26++) {
this.aShortArray35[local26] = (short) Texture.method3219(this.anInt2636, local12); this.aShortArray35[local26] = (short) RandomUtils.nextInt(this.anInt2636, local12);
} }
} }
} }

View file

@ -81,8 +81,8 @@ public final class TextureOp28 extends TextureOp {
@Pc(113) Random local113 = new Random(this.anInt4354); @Pc(113) Random local113 = new Random(this.anInt4354);
while (true) { while (true) {
while (true) { while (true) {
@Pc(123) int local123 = local54 + Texture.method3219(local61 - local54, local113); @Pc(123) int local123 = local54 + RandomUtils.nextInt(local61 - local54, local113);
@Pc(133) int local133 = Texture.method3219(local68 - local75, local113) + local75; @Pc(133) int local133 = RandomUtils.nextInt(local68 - local75, local113) + local75;
@Pc(137) int local137 = local31 + local123; @Pc(137) int local137 = local31 + local123;
if (Texture.width < local137) { if (Texture.width < local137) {
local137 = Texture.width; local137 = Texture.width;
@ -174,7 +174,7 @@ public final class TextureOp28 extends TextureOp {
local47 = 0; local47 = 0;
local407[2] = local133 + local158; local407[2] = local133 + local158;
local407[1] = local137; local407[1] = local137;
local37 = Texture.method3219(Texture.width, local113); local37 = RandomUtils.nextInt(Texture.width, local113);
local35 = local37 - local33; local35 = local37 - local33;
@Pc(439) int[][] local439 = local102; @Pc(439) int[][] local439 = local102;
local31 = 0; local31 = 0;
@ -211,9 +211,9 @@ public final class TextureOp28 extends TextureOp {
@OriginalMember(owner = "client!ol", name = "a", descriptor = "(ILjava/util/Random;IIBI[[I)V") @OriginalMember(owner = "client!ol", name = "a", descriptor = "(ILjava/util/Random;IIBI[[I)V")
private void method3386(@OriginalArg(0) int arg0, @OriginalArg(1) Random arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) int[][] arg5) { private void method3386(@OriginalArg(0) int arg0, @OriginalArg(1) Random arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) int[][] arg5) {
@Pc(26) int local26 = this.anInt4360 > 0 ? 4096 - Texture.method3219(this.anInt4360, arg1) : 4096; @Pc(26) int local26 = this.anInt4360 > 0 ? 4096 - RandomUtils.nextInt(this.anInt4360, arg1) : 4096;
@Pc(34) int local34 = this.anInt4344 * this.anInt4356 >> 12; @Pc(34) int local34 = this.anInt4344 * this.anInt4356 >> 12;
@Pc(47) int local47 = this.anInt4356 - (local34 > 0 ? Texture.method3219(local34, arg1) : 0); @Pc(47) int local47 = this.anInt4356 - (local34 > 0 ? RandomUtils.nextInt(local34, arg1) : 0);
if (Texture.width <= arg2) { if (Texture.width <= arg2) {
arg2 -= Texture.width; arg2 -= Texture.width;
} }

View file

@ -46,7 +46,7 @@ public final class TextureOp29 extends TextureOp {
if (arg3 >= anInt5773 && arg3 <= anInt2869) { if (arg3 >= anInt5773 && arg3 <= anInt2869) {
@Pc(15) int local15 = IntUtils.clamp(anInt5063, arg0, anInt4164); @Pc(15) int local15 = IntUtils.clamp(anInt5063, arg0, anInt4164);
@Pc(21) int local21 = IntUtils.clamp(anInt5063, arg2, anInt4164); @Pc(21) int local21 = IntUtils.clamp(anInt5063, arg2, anInt4164);
TextureOp29SubOp4.method3826(arg1, arg3, local21, local15); TextureOp29SubOp4.fillRange(arg1, arg3, local21, local15);
} }
} }

View file

@ -150,7 +150,7 @@ public final class TextureOp29SubOp4 extends TextureOp29SubOp {
} }
@OriginalMember(owner = "client!sa", name = "a", descriptor = "(IIIBI)V") @OriginalMember(owner = "client!sa", name = "a", descriptor = "(IIIBI)V")
public static void method3826(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(4) int arg3) { public static void fillRange(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(4) int arg3) {
if (arg3 <= arg2) { if (arg3 <= arg2) {
ArrayUtils.fillRange(anIntArrayArray10[arg1], arg3, arg2, arg0); ArrayUtils.fillRange(anIntArrayArray10[arg1], arg3, arg2, arg0);
} else { } else {
@ -181,7 +181,7 @@ public final class TextureOp29SubOp4 extends TextureOp29SubOp {
method2054(arg2, arg4, arg1, arg0); method2054(arg2, arg4, arg1, arg0);
} }
} else if (local9 == 0) { } else if (local9 == 0) {
method3826(arg0, arg2, arg3, arg4); fillRange(arg0, arg2, arg3, arg4);
} else { } else {
if (local9 < 0) { if (local9 < 0) {
local9 = -local9; local9 = -local9;

View file

@ -61,10 +61,10 @@ public final class TextureOp38 extends TextureOp {
@Pc(33) int[][] local33 = this.monochromeImageCache.method3446(); @Pc(33) int[][] local33 = this.monochromeImageCache.method3446();
@Pc(40) Random local40 = new Random(this.anInt5716); @Pc(40) Random local40 = new Random(this.anInt5716);
for (@Pc(42) int local42 = 0; local42 < this.anInt5712; local42++) { for (@Pc(42) int local42 = 0; local42 < this.anInt5712; local42++) {
@Pc(64) int local64 = this.anInt5714 > 0 ? this.anInt5709 + Texture.method3219(this.anInt5714, local40) - local28 : this.anInt5709; @Pc(64) int local64 = this.anInt5714 > 0 ? this.anInt5709 + RandomUtils.nextInt(this.anInt5714, local40) - local28 : this.anInt5709;
@Pc(69) int local69 = Texture.method3219(Texture.width, local40); @Pc(69) int local69 = RandomUtils.nextInt(Texture.width, local40);
@Pc(75) int local75 = local64 >> 4 & 0xFF; @Pc(75) int local75 = local64 >> 4 & 0xFF;
@Pc(80) int local80 = Texture.method3219(Texture.height, local40); @Pc(80) int local80 = RandomUtils.nextInt(Texture.height, local40);
@Pc(92) int local92 = local69 + (this.anInt5715 * TextureOp.COSINE[local75] >> 12); @Pc(92) int local92 = local69 + (this.anInt5715 * TextureOp.COSINE[local75] >> 12);
@Pc(103) int local103 = local80 + (TextureOp.SINE[local75] * this.anInt5715 >> 12); @Pc(103) int local103 = local80 + (TextureOp.SINE[local75] * this.anInt5715 >> 12);
@Pc(107) int local107 = local92 - local69; @Pc(107) int local107 = local92 - local69;
@ -102,7 +102,7 @@ public final class TextureOp38 extends TextureOp {
local190 = -local190; local190 = -local190;
} }
@Pc(206) int local206 = -local152 / 2; @Pc(206) int local206 = -local152 / 2;
@Pc(216) int local216 = 1024 - (Texture.method3219(4096, local40) >> 2); @Pc(216) int local216 = 1024 - (RandomUtils.nextInt(4096, local40) >> 2);
@Pc(227) int local227 = local103 <= local80 ? -1 : 1; @Pc(227) int local227 = local103 <= local80 ? -1 : 1;
@Pc(231) int local231 = 2048 / local152; @Pc(231) int local231 = 2048 / local152;
for (@Pc(233) int local233 = local69; local233 < local92; local233++) { for (@Pc(233) int local233 = local69; local233 < local92; local233++) {

View file

@ -102,7 +102,7 @@ public final class TextureOp4 extends TextureOp {
@Pc(94) int local94; @Pc(94) int local94;
if (local66 > 0) { if (local66 > 0) {
local82 = this.anInt3670; local82 = this.anInt3670;
local94 = (Texture.method3219(4096, local8) - 2048) * this.anInt3667 >> 12; local94 = (RandomUtils.nextInt(4096, local8) - 2048) * this.anInt3667 >> 12;
@Pc(102) int local102 = local82 + (local94 * local34 >> 12); @Pc(102) int local102 = local82 + (local94 * local34 >> 12);
this.anIntArray352[local66] = this.anIntArray352[local66 - 1] + local102; this.anIntArray352[local66] = this.anIntArray352[local66 - 1] + local102;
} }
@ -110,11 +110,11 @@ public final class TextureOp4 extends TextureOp {
for (local82 = 0; local82 < this.anInt3685; local82++) { for (local82 = 0; local82 < this.anInt3685; local82++) {
if (local82 > 0) { if (local82 > 0) {
local94 = this.anInt3679; local94 = this.anInt3679;
@Pc(150) int local150 = (Texture.method3219(4096, local8) - 2048) * this.anInt3681 >> 12; @Pc(150) int local150 = (RandomUtils.nextInt(4096, local8) - 2048) * this.anInt3681 >> 12;
local94 += local64 * local150 >> 12; local94 += local64 * local150 >> 12;
this.anIntArrayArray26[local66][local82] = this.anIntArrayArray26[local66][local82 - 1] + local94; this.anIntArrayArray26[local66][local82] = this.anIntArrayArray26[local66][local82 - 1] + local94;
} }
this.anIntArrayArray27[local66][local82] = this.anInt3673 <= 0 ? 4096 : 4096 - Texture.method3219(this.anInt3673, local8); this.anIntArrayArray27[local66][local82] = this.anInt3673 <= 0 ? 4096 : 4096 - RandomUtils.nextInt(this.anInt3673, local8);
} }
this.anIntArrayArray26[local66][this.anInt3685] = 4096; this.anIntArrayArray26[local66][this.anInt3685] = 4096;
} }

View file

@ -179,7 +179,7 @@ public final class VorbisSound extends Node {
@Pc(187) int[] local187 = new int[local38]; @Pc(187) int[] local187 = new int[local38];
@Pc(193) int local193 = IntUtils.bitCount(local38 - 1); @Pc(193) int local193 = IntUtils.bitCount(local38 - 1);
for (@Pc(195) int local195 = 0; local195 < local38; local195++) { for (@Pc(195) int local195 = 0; local195 < local38; local195++) {
local187[local195] = method667(local193, local195); local187[local195] = IntUtils.bitReverse(local193, local195);
} }
if (local17 == 0) { if (local17 == 0) {
trigA0 = local41; trigA0 = local41;
@ -250,17 +250,6 @@ public final class VorbisSound extends Node {
return local1; return local1;
} }
@OriginalMember(owner = "client!bn", name = "a", descriptor = "(III)I")
public static int method667(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1) {
@Pc(8) int local8 = 0;
while (arg0 > 0) {
local8 = local8 << 1 | arg1 & 0x1;
arg1 >>>= 0x1;
arg0--;
}
return local8;
}
@OriginalMember(owner = "client!jc", name = "a", descriptor = "([I)Lclient!kj;") @OriginalMember(owner = "client!jc", name = "a", descriptor = "([I)Lclient!kj;")
public final PcmSound toPcmSound(@OriginalArg(0) int[] arg0) { public final PcmSound toPcmSound(@OriginalArg(0) int[] arg0) {
if (arg0 != null && arg0[0] <= 0) { if (arg0 != null && arg0[0] <= 0) {

View file

@ -375,7 +375,7 @@ public class WorldMap {
} }
if (local367 >= 0 && local363 > 0) { if (local367 >= 0 && local363 > 0) {
@Pc(462) int[] local462 = local355[local367 >> 6]; @Pc(462) int[] local462 = local355[local367 >> 6];
@Pc(480) int local480 = local361 == 0 ? 0 : SceneGraph.method1309(local293 / local363, local225 / local363, local114 * 256 / local361); @Pc(480) int local480 = local361 == 0 ? 0 : ColorUtils.method1309(local293 / local363, local225 / local363, local114 * 256 / local361);
if (underlays[local102][local367] != 0) { if (underlays[local102][local367] != 0) {
if (local462 == null) { if (local462 == null) {
local462 = local355[local367 >> 6] = new int[4096]; local462 = local355[local367 >> 6] = new int[4096];